diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/alertify.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/alertify.min.js new file mode 100644 index 0000000000000000000000000000000000000000..3b6549db59f311127dcbd45c21c77942222b2d48 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/alertify.min.js @@ -0,0 +1,2 @@ +define ("local_fliplearning/alertify",["local_fliplearning/config","alertify"],function(a,b){return b}); +//# sourceMappingURL=alertify.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/alertify.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/alertify.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..ef61fd087c6e544f656dda781f7ebe0c19009ae0 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/alertify.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/alertify.js"],"names":["define","unused","alertify"],"mappings":"AAAAA,OAAM,+BAAC,CAAC,2BAAD,CAA8B,UAA9B,CAAD,CAA4C,SAASC,CAAT,CAAiBC,CAAjB,CAA2B,CACrE,MAAOA,CAAAA,CACV,CAFC,CAAN","sourcesContent":["define(['local_fliplearning/config', 'alertify'], function(unused, alertify) {\r\n return alertify;\r\n }\r\n);"],"file":"alertify.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/assignments.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/assignments.min.js new file mode 100644 index 0000000000000000000000000000000000000000..3a1580067c272d350e729f0d931e5b04fe0e0e76 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/assignments.min.js @@ -0,0 +1,2 @@ +define(["local_fliplearning/vue","local_fliplearning/vuetify","local_fliplearning/axios","local_fliplearning/moment","local_fliplearning/pagination","local_fliplearning/chartdynamic","local_fliplearning/pageheader","local_fliplearning/emailform","local_fliplearning/helpdialog"],function(s,e,t,i,n,o,a,r,c){"use strict";return{init:function(i){s.use(e),s.component("pagination",n),s.component("chart",o),s.component("pageheader",a),s.component("emailform",r),s.component("helpdialog",c);let l=new s({delimiters:["[[","]]"],el:"#submissions",vuetify:new e,data:()=>({dialog:!1,selected_users:[],modulename:"",moduleid:!1,strings:i.strings,groups:i.groups,userid:i.userid,courseid:i.courseid,timezone:i.timezone,render_has:i.profile_render,scriptname:i.scriptname,loading:!1,errors:[],pages:i.pages,submissions:i.submissions,email_strings:i.strings.email_strings,access:i.access,assigns_submissions_colors:i.assigns_submissions_colors,access_content_colors:i.access_content_colors,access_chart_categories:[],access_chart_series:[],access_chart_users:[],help_dialog:!1,help_contents:[],email_object_name:""}),beforeMount(){this.generate_access_content_data()},mounted(){document.querySelector("#sessions-loader").style.display="none",document.querySelector("#submissions").style.display="block",setTimeout(function(){l.setGraphicsEventListeners()},1e3)},methods:{get_help_content(){let s=[];return s.push({title:this.strings.section_help_title,description:this.strings.section_help_description}),s},update_interactions(s){this.loading=!0,this.errors=[];let e={action:"assignments",userid:this.userid,courseid:this.courseid,weekcode:s.weekcode,profile:this.render_has};return t({method:"get",url:M.cfg.wwwroot+"/local/fliplearning/ajax.php",params:e}).then(s=>{200==s.status&&s.data.ok?(this.submissions=s.data.data.submissions,this.access=s.data.data.access,this.generate_access_content_data()):this.error_messages.push(this.strings.error_network)}).catch(s=>{this.errors.push(this.strings.api_error_network)}).finally(()=>{this.loading=!1,l.addLogsIntoDB("viewed","week_"+s.weekcode,"week_section","Week section that allows you to obtain information on a specific week"),l.setGraphicsEventListeners()}),this.data},build_assigns_submissions_chart(){let s=new Object;return s.chart={type:"column",backgroundColor:null,style:{fontFamily:"poppins"}},s.title={text:null},s.colors=this.assigns_submissions_colors,s.xAxis={categories:this.submissions.categories,crosshair:!0},s.yAxis={min:0,title:{text:this.strings.assignsubs_chart_yaxis},allowDecimals:!1},s.tooltip={formatter:function(){let s=this.x.split("</b>");s=(s=(s=s[0]||"").split("<b>"))[1]||"";let e=this.series.name,t=this.y,i=l.strings.students_text,n=l.strings.send_mail;return 1==t&&(i=l.strings.student_text),"<b>"+s+"</b><br/><b>"+e+": </b>"+t+" "+i+"<br/>"+n}},s.plotOptions={series:{cursor:"pointer",point:{events:{click:function(){l.email_object_name="assigns_submissions";let s=this.category.split("</b>");s=(s=(s=s[0]||"").split("<b>"))[1]||"",l.email_strings.subject=l.email_strings.subject_prefix+" - "+s;let e=this.x,t=this.series.colorIndex;l.dialog=!0,l.selected_users=l.submissions.users[e][t],l.moduleid=l.submissions.modules[e],l.modulename="assign",l.scriptname="test"}}}}},s.series=this.submissions.data,s},build_access_content_chart(){let s=new Object;return s.chart={type:"bar",backgroundColor:null,style:{fontFamily:"poppins"}},s.title={text:null},s.colors=this.access_content_colors,s.xAxis={categories:this.access_chart_categories,title:{text:null},crosshair:!0},s.yAxis={min:0,title:{text:this.strings.access_chart_yaxis_label},labels:{overflow:"justify"},allowDecimals:!1},s.tooltip={formatter:function(){let s=this.x,e=this.series.name,t=this.y,i=l.strings.students_text,n=l.strings.send_mail;return 1==t&&(i=l.strings.student_text),"<b>"+s+"</b><br/><b>"+e+": </b>"+t+" "+i+"<br/>"+n}},s.plotOptions={bar:{dataLabels:{enabled:!1}},series:{cursor:"pointer",point:{events:{click:function(){l.email_object_name="access_content";let s=this.category;l.email_strings.subject=l.email_strings.subject_prefix+" - "+s;let e=this.x,t=this.series.colorIndex,i=l.get_users(l.access_chart_users[e][t]);l.selected_users=i;let n=l.get_moduletype(this.category);l.modulename=n.type,l.moduleid=n.id,l.dialog=!0,l.scriptname="test"}}}}},s.series=this.access_chart_series,s},update_dialog(s){this.dialog=s},generate_access_content_data(){let s=[];this.access.users.forEach(e=>{s.push(Number(e.id))});let e=[];this.access.types.forEach(s=>{s.show&&e.push(s.type)});let t=[];this.access.modules.forEach(s=>{e.includes(s.type)&&t.push(s)});let i=[],n=[],o=[],a=[];t.forEach(e=>{i.push(e.name);let t=e.users,r=s.filter(s=>!t.includes(s));o.push(t.length),a.push(r.length),n.push([t,r])});let r=[{name:this.strings.access,data:o},{name:this.strings.no_access,data:a}];this.access_chart_categories=i,this.access_chart_series=r,this.access_chart_users=n},get_users(s){let e=[];return this.access.users.forEach(t=>{let i=Number(t.id);s.includes(i)&&e.push(t)}),e},get_moduletype(s){let e;return this.access.modules.forEach(t=>{t.name===s&&(e=t)}),e},open_chart_help(s){let e=[];var t="",i="",n="",o="";"assigns_submissions"==s?(e.push({title:this.strings.assigns_submissions_help_title,description:this.strings.assigns_submissions_help_description_p1}),e.push({description:this.strings.assigns_submissions_help_description_p2}),t="viewed",n="help",i="assigns_submissions",o="Help section that provides information about the invested time chart",l.addLogsIntoDB(t,i,n,o)):"access_content"==s&&(e.push({title:this.strings.access_content_help_title,description:this.strings.access_content_help_description_p1}),e.push({description:this.strings.access_content_help_description_p2}),t="viewed",n="help",i="access_content",o="Help section that provides information about the sessions per hour chart",l.addLogsIntoDB(t,i,n,o)),this.help_contents=e,this.help_contents.length&&(this.help_dialog=!0)},update_help_dialog(s){this.help_dialog=s},get_timezone(){return`${this.strings.ss_change_timezone} ${this.timezone}`},setGraphicsEventListeners(){let s=document.querySelectorAll(".highcharts-container");s.length<1?setTimeout(l.setGraphicsEventListeners,500):(s[0].id="submissions",s[1].id="accessContent",s.forEach(s=>{s.addEventListener("mouseenter",l.addLogsViewGraphic)}))},addLogsViewGraphic(s){event.stopPropagation();var e="",t="",i="",n="";switch(s.target.id){case"submissions":e="viewed",t="assigns_submissions",i="chart",n="Chart showing the work submited by the students";break;case"accessContent":e="viewed",t="access_content",i="chart",n="Chart showing the course content accessed by the students";break;default:e="viewed",t="",i="chart",n="A chart"}l.addLogsIntoDB(e,t,i,n)},addLogsIntoDB(s,e,n,o){let a={courseid:i.courseid,userid:i.userid,action:"addLogs",sectionname:"TASKS_MONITORING",actiontype:s,objectType:n,objectName:e,currentUrl:document.location.href,objectDescription:o};t({method:"get",url:M.cfg.wwwroot+"/local/fliplearning/ajax.php",params:a}).then(s=>{200==s.status&&s.data.ok}).catch(s=>{})}}})}}}); +//# sourceMappingURL=assignments.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/assignments.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/assignments.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..cfa4ee5464b1e2660020ade58df15bf53066637b --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/assignments.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/assignments.js"],"names":["define","Vue","Vuetify","Axios","Moment","Pagination","ChartDynamic","PageHeader","EmailForm","HelpDialog","init","content","use","component","vue","delimiters","el","vuetify","data","dialog","selected_users","modulename","moduleid","strings","groups","userid","courseid","timezone","render_has","profile_render","loading","errors","pages","submissions","email_strings","access","assigns_submissions_colors","access_content_colors","access_chart_categories","access_chart_series","access_chart_users","help_dialog","help_contents","beforeMount","generate_access_content_data","mounted","document","querySelector","style","display","methods","get_help_content","contents","title","section_help_title","description","section_help_description","update_interactions","week","action","weekcode","profile","method","url","M","cfg","wwwroot","params","then","response","status","ok","error_messages","push","error_network","catch","api_error_network","finally","build_assigns_submissions_chart","chart","type","backgroundColor","fontFamily","text","colors","xAxis","categories","crosshair","yAxis","min","assignsubs_chart_yaxis","allowDecimals","tooltip","formatter","label","x","split","serie_name","series","name","value","y","students_label","students_text","send_mail","student_text","plotOptions","cursor","point","events","click","category","subject","subject_prefix","column","colorIndex","users","modules","build_access_content_chart","access_chart_yaxis_label","labels","overflow","bar","dataLabels","enabled","get_users","module","get_moduletype","id","update_dialog","usersIds","forEach","user","selected_types_labels","types","item","show","selected_modules","includes","modules_users","access_users_data","no_access_users_data","access_users","no_access_users","filter","length","no_access","ids","mod","open_chart_help","assigns_submissions_help_title","assigns_submissions_help_description_p1","assigns_submissions_help_description_p2","access_content_help_title","access_content_help_description_p1","access_content_help_description_p2","update_help_dialog","get_timezone","information","ss_change_timezone"],"mappings":"AAAAA,OAAM,kCAAC,CAAC,wBAAD,CACC,4BADD,CAEC,0BAFD,CAGC,2BAHD,CAIC,+BAJD,CAKC,iCALD,CAMC,+BAND,CAOC,8BAPD,CAQC,+BARD,CAAD,CAUF,SAASC,CAAT,CAAcC,CAAd,CAAuBC,CAAvB,CAA8BC,CAA9B,CAAsCC,CAAtC,CAAkDC,CAAlD,CAAgEC,CAAhE,CAA4EC,CAA5E,CAAuFC,CAAvF,CAAmG,CAC/F,aAsUA,MAAO,CACHC,IAAI,CArUR,SAAcC,CAAd,CAAuB,CAEnBV,CAAG,CAACW,GAAJ,CAAQV,CAAR,EACAD,CAAG,CAACY,SAAJ,CAAc,YAAd,CAA4BR,CAA5B,EACAJ,CAAG,CAACY,SAAJ,CAAc,OAAd,CAAuBP,CAAvB,EACAL,CAAG,CAACY,SAAJ,CAAc,YAAd,CAA4BN,CAA5B,EACAN,CAAG,CAACY,SAAJ,CAAc,WAAd,CAA2BL,CAA3B,EACAP,CAAG,CAACY,SAAJ,CAAc,YAAd,CAA4BJ,CAA5B,EACA,GAAIK,CAAAA,CAAG,CAAG,GAAIb,CAAAA,CAAJ,CAAQ,CACdc,UAAU,CAAE,CAAC,IAAD,CAAO,IAAP,CADE,CAEdC,EAAE,CAAE,cAFU,CAGdC,OAAO,CAAE,GAAIf,CAAAA,CAHC,CAIdgB,IAJc,gBAIP,CACH,MAAO,CACHC,MAAM,GADH,CAEHC,cAAc,CAAG,EAFd,CAGHC,UAAU,CAAG,EAHV,CAIHC,QAAQ,GAJL,CAKHC,OAAO,CAAGZ,CAAO,CAACY,OALf,CAMHC,MAAM,CAAGb,CAAO,CAACa,MANd,CAOHC,MAAM,CAAGd,CAAO,CAACc,MAPd,CAQHC,QAAQ,CAAGf,CAAO,CAACe,QARhB,CASHC,QAAQ,CAAGhB,CAAO,CAACgB,QAThB,CAUHC,UAAU,CAAGjB,CAAO,CAACkB,cAVlB,CAWHC,OAAO,GAXJ,CAYHC,MAAM,CAAG,EAZN,CAaHC,KAAK,CAAGrB,CAAO,CAACqB,KAbb,CAcHC,WAAW,CAAEtB,CAAO,CAACsB,WAdlB,CAeHC,aAAa,CAAEvB,CAAO,CAACY,OAAR,CAAgBW,aAf5B,CAiBHC,MAAM,CAAExB,CAAO,CAACwB,MAjBb,CAkBHC,0BAA0B,CAAEzB,CAAO,CAACyB,0BAlBjC,CAmBHC,qBAAqB,CAAE1B,CAAO,CAAC0B,qBAnB5B,CAoBHC,uBAAuB,CAAE,EApBtB,CAqBHC,mBAAmB,CAAE,EArBlB,CAsBHC,kBAAkB,CAAE,EAtBjB,CAwBHC,WAAW,GAxBR,CAyBHC,aAAa,CAAE,EAzBZ,CA2BV,CAhCa,CAiCdC,WAjCc,uBAiCD,CACT,KAAKC,4BAAL,EACH,CAnCa,CAoCdC,OApCc,mBAoCL,CACLC,QAAQ,CAACC,aAAT,CAAuB,kBAAvB,EAA2CC,KAA3C,CAAiDC,OAAjD,CAA2D,MAA3D,CACAH,QAAQ,CAACC,aAAT,CAAuB,cAAvB,EAAuCC,KAAvC,CAA6CC,OAA7C,CAAuD,OAC1D,CAvCa,CAwCdC,OAAO,CAAG,CACNC,gBADM,4BACY,CACd,GAAIC,CAAAA,CAAQ,CAAG,CACD,CACVC,KAAK,CAAE,KAAK9B,OAAL,CAAa+B,kBADV,CAEVC,WAAW,CAAE,KAAKhC,OAAL,CAAaiC,wBAFhB,CADC,CAAf,CAKA,MAAOJ,CAAAA,CACV,CARK,CAUNK,mBAVM,8BAUcC,CAVd,CAUmB,YACrB,KAAK5B,OAAL,IACA,KAAKC,MAAL,CAAc,EAAd,CACA,GAAIb,CAAAA,CAAI,CAAG,CACPyC,MAAM,CAAG,aADF,CAEPlC,MAAM,CAAG,KAAKA,MAFP,CAGPC,QAAQ,CAAG,KAAKA,QAHT,CAIPkC,QAAQ,CAAGF,CAAI,CAACE,QAJT,CAKPC,OAAO,CAAG,KAAKjC,UALR,CAAX,CAOAzB,CAAK,CAAC,CACF2D,MAAM,CAAC,KADL,CAEFC,GAAG,CAAEC,CAAC,CAACC,GAAF,CAAMC,OAAN,CAAgB,8BAFnB,CAGFC,MAAM,CAAGjD,CAHP,CAAD,CAAL,CAIGkD,IAJH,CAIQ,SAACC,CAAD,CAAc,CAClB,GAAuB,GAAnB,EAAAA,CAAQ,CAACC,MAAT,EAA0BD,CAAQ,CAACnD,IAAT,CAAcqD,EAA5C,CAAgD,CAC5C,CAAI,CAACtC,WAAL,CAAmBoC,CAAQ,CAACnD,IAAT,CAAcA,IAAd,CAAmBe,WAAtC,CACA,CAAI,CAACE,MAAL,CAAckC,CAAQ,CAACnD,IAAT,CAAcA,IAAd,CAAmBiB,MAAjC,CACA,CAAI,CAACS,4BAAL,EACH,CAJD,IAIO,CACH,CAAI,CAAC4B,cAAL,CAAoBC,IAApB,CAAyB,CAAI,CAAClD,OAAL,CAAamD,aAAtC,CACH,CACJ,CAZD,EAYGC,KAZH,CAYS,UAAO,CACZ,CAAI,CAAC5C,MAAL,CAAY0C,IAAZ,CAAiB,CAAI,CAAClD,OAAL,CAAaqD,iBAA9B,CACH,CAdD,EAcGC,OAdH,CAcW,UAAM,CACb,CAAI,CAAC/C,OAAL,GACH,CAhBD,EAiBA,MAAO,MAAKZ,IACf,CAtCK,CAwCN4D,+BAxCM,2CAwC4B,CAC9B,GAAIC,CAAAA,CAAK,GAAT,CACAA,CAAK,CAACA,KAAN,CAAc,CACVC,IAAI,CAAE,QADI,CAEVC,eAAe,CAAE,IAFP,CAGVjC,KAAK,CAAE,CAACkC,UAAU,CAAE,SAAb,CAHG,CAAd,CAKAH,CAAK,CAAC1B,KAAN,CAAc,CACV8B,IAAI,CAAE,IADI,CAAd,CAGAJ,CAAK,CAACK,MAAN,CAAe,KAAKhD,0BAApB,CACA2C,CAAK,CAACM,KAAN,CAAc,CACVC,UAAU,CAAE,KAAKrD,WAAL,CAAiBqD,UADnB,CAEVC,SAAS,GAFC,CAAd,CAIAR,CAAK,CAACS,KAAN,CAAc,CACVC,GAAG,CAAE,CADK,CAEVpC,KAAK,CAAE,CACH8B,IAAI,CAAE,KAAK5D,OAAL,CAAamE,sBADhB,CAFG,CAKVC,aAAa,GALH,CAAd,CAOAZ,CAAK,CAACa,OAAN,CAAgB,CACZC,SAAS,CAAE,oBAAY,CACnB,GAAIC,CAAAA,CAAK,CAAG,KAAKC,CAAL,CAAOC,KAAP,CAAa,MAAb,CAAZ,CACAF,CAAK,CAAGA,CAAK,CAAC,CAAD,CAAL,EAAY,EAApB,CACAA,CAAK,CAAGA,CAAK,CAACE,KAAN,CAAY,KAAZ,CAAR,CACAF,CAAK,CAAGA,CAAK,CAAC,CAAD,CAAL,EAAY,EAApB,CAJmB,GAKfG,CAAAA,CAAU,CAAG,KAAKC,MAAL,CAAYC,IALV,CAMfC,CAAK,CAAG,KAAKC,CANE,CAOfC,CAAc,CAAGxF,CAAG,CAACS,OAAJ,CAAYgF,aAPd,CAQfC,CAAS,CAAG1F,CAAG,CAACS,OAAJ,CAAYiF,SART,CASnB,GAAa,CAAT,EAAAJ,CAAJ,CAAgB,CACZE,CAAc,CAAGxF,CAAG,CAACS,OAAJ,CAAYkF,YAChC,CACD,GAAItB,CAAAA,CAAI,CAAG,MAAQW,CAAR,gBAAqCG,CAArC,CAAiD,QAAjD,CACCG,CADD,CACS,GADT,CACeE,CADf,CACgC,OADhC,CAC0CE,CADrD,CAEA,MAAOrB,CAAAA,CACV,CAhBW,CAAhB,CAkBAJ,CAAK,CAAC2B,WAAN,CAAoB,CAChBR,MAAM,CAAE,CACJS,MAAM,CAAE,SADJ,CAEAC,KAAK,CAAE,CACPC,MAAM,CAAE,CACJC,KAAK,CAAE,gBAAY,CACf,GAAIb,CAAAA,CAAU,CAAG,KAAKc,QAAL,CAAcf,KAAd,CAAoB,MAApB,CAAjB,CACAC,CAAU,CAAGA,CAAU,CAAC,CAAD,CAAV,EAAiB,EAA9B,CACAA,CAAU,CAAGA,CAAU,CAACD,KAAX,CAAiB,KAAjB,CAAb,CACAC,CAAU,CAAGA,CAAU,CAAC,CAAD,CAAV,EAAiB,EAA9B,CACAnF,CAAG,CAACoB,aAAJ,CAAkB8E,OAAlB,CAA4BlG,CAAG,CAACoB,aAAJ,CAAkB+E,cAAlB,CAAiC,KAAjC,CAAuChB,CAAnE,CALe,GAOXF,CAAAA,CAAC,CAAG,KAAKA,CAPE,CAQXmB,CAAM,CAAG,KAAKhB,MAAL,CAAYiB,UARV,CASfrG,CAAG,CAACK,MAAJ,IACAL,CAAG,CAACM,cAAJ,CAAqBN,CAAG,CAACmB,WAAJ,CAAgBmF,KAAhB,CAAsBrB,CAAtB,EAAyBmB,CAAzB,CAArB,CACApG,CAAG,CAACQ,QAAJ,CAAeR,CAAG,CAACmB,WAAJ,CAAgBoF,OAAhB,CAAwBtB,CAAxB,CAAf,CACAjF,CAAG,CAACO,UAAJ,CAAiB,QACpB,CAdG,CADD,CAFP,CADQ,CAApB,CAuBA0D,CAAK,CAACmB,MAAN,CAAe,KAAKjE,WAAL,CAAiBf,IAAhC,CACA,MAAO6D,CAAAA,CACV,CAzGK,CA2GNuC,0BA3GM,sCA2GuB,CACzB,GAAIvC,CAAAA,CAAK,GAAT,CACAA,CAAK,CAACA,KAAN,CAAc,CACVC,IAAI,CAAE,KADI,CAEVC,eAAe,CAAE,IAFP,CAGVjC,KAAK,CAAE,CAACkC,UAAU,CAAE,SAAb,CAHG,CAAd,CAKAH,CAAK,CAAC1B,KAAN,CAAc,CAAC8B,IAAI,CAAE,IAAP,CAAd,CACAJ,CAAK,CAACK,MAAN,CAAe,KAAK/C,qBAApB,CACA0C,CAAK,CAACM,KAAN,CAAc,CACVC,UAAU,CAAE,KAAKhD,uBADP,CAEVe,KAAK,CAAE,CAAE8B,IAAI,CAAE,IAAR,CAFG,CAGVI,SAAS,GAHC,CAAd,CAKAR,CAAK,CAACS,KAAN,CAAc,CACVC,GAAG,CAAE,CADK,CAEVpC,KAAK,CAAE,CACH8B,IAAI,CAAE,KAAK5D,OAAL,CAAagG,wBADhB,CAFG,CAKVC,MAAM,CAAE,CACJC,QAAQ,CAAE,SADN,CALE,CAQV9B,aAAa,GARH,CAAd,CAUAZ,CAAK,CAACa,OAAN,CAAgB,CACZC,SAAS,CAAE,oBAAY,IACfC,CAAAA,CAAK,CAAG,KAAKC,CADE,CAEfE,CAAU,CAAG,KAAKC,MAAL,CAAYC,IAFV,CAGfC,CAAK,CAAG,KAAKC,CAHE,CAIfC,CAAc,CAAGxF,CAAG,CAACS,OAAJ,CAAYgF,aAJd,CAKfC,CAAS,CAAG1F,CAAG,CAACS,OAAJ,CAAYiF,SALT,CAMnB,GAAa,CAAT,EAAAJ,CAAJ,CAAgB,CACZE,CAAc,CAAGxF,CAAG,CAACS,OAAJ,CAAYkF,YAChC,CACD,GAAItB,CAAAA,CAAI,CAAG,MAAQW,CAAR,gBAAqCG,CAArC,CAAiD,QAAjD,CACPG,CADO,CACC,GADD,CACOE,CADP,CACwB,OADxB,CACkCE,CAD7C,CAEA,MAAOrB,CAAAA,CACV,CAbW,CAAhB,CAeAJ,CAAK,CAAC2B,WAAN,CAAoB,CAChBgB,GAAG,CAAE,CACDC,UAAU,CAAE,CACRC,OAAO,GADC,CADX,CADW,CAMhB1B,MAAM,CAAE,CACJS,MAAM,CAAE,SADJ,CAEAC,KAAK,CAAE,CACPC,MAAM,CAAE,CACJC,KAAK,CAAE,gBAAY,CACf,GAAIb,CAAAA,CAAU,CAAG,KAAKc,QAAtB,CACAjG,CAAG,CAACoB,aAAJ,CAAkB8E,OAAlB,CAA4BlG,CAAG,CAACoB,aAAJ,CAAkB+E,cAAlB,CAAiC,KAAjC,CAAuChB,CAAnE,CAFe,GAGXF,CAAAA,CAAC,CAAG,KAAKA,CAHE,CAIXmB,CAAM,CAAG,KAAKhB,MAAL,CAAYiB,UAJV,CAKXC,CAAK,CAAGtG,CAAG,CAAC+G,SAAJ,CAAc/G,CAAG,CAAC0B,kBAAJ,CAAuBuD,CAAvB,EAA0BmB,CAA1B,CAAd,CALG,CAMfpG,CAAG,CAACM,cAAJ,CAAqBgG,CAArB,CACA,GAAIU,CAAAA,CAAM,CAAGhH,CAAG,CAACiH,cAAJ,CAAmB,KAAKhB,QAAxB,CAAb,CACAjG,CAAG,CAACO,UAAJ,CAAiByG,CAAM,CAAC9C,IAAxB,CACAlE,CAAG,CAACQ,QAAJ,CAAewG,CAAM,CAACE,EAAtB,CACAlH,CAAG,CAACK,MAAJ,GACH,CAZG,CADD,CAFP,CANQ,CAApB,CA0BA4D,CAAK,CAACmB,MAAN,CAAe,KAAK3D,mBAApB,CACA,MAAOwC,CAAAA,CACV,CA9KK,CAgLNkD,aAhLM,wBAgLS7B,CAhLT,CAgLgB,CAClB,KAAKjF,MAAL,CAAciF,CACjB,CAlLK,CAoLNxD,4BApLM,wCAoLyB,CAC3B,GAAIsF,CAAAA,CAAQ,CAAG,EAAf,CACA,KAAK/F,MAAL,CAAYiF,KAAZ,CAAkBe,OAAlB,CAA0B,SAAAC,CAAI,CAAI,CAC9BF,CAAQ,CAACzD,IAAT,EAAqB2D,CAAI,CAACJ,EAA1B,CACH,CAFD,EAGA,GAAIK,CAAAA,CAAqB,CAAG,EAA5B,CACA,KAAKlG,MAAL,CAAYmG,KAAZ,CAAkBH,OAAlB,CAA0B,SAAAI,CAAI,CAAI,CAC9B,GAAIA,CAAI,CAACC,IAAT,CAAe,CACXH,CAAqB,CAAC5D,IAAtB,CAA2B8D,CAAI,CAACvD,IAAhC,CACH,CACJ,CAJD,EAKA,GAAIyD,CAAAA,CAAgB,CAAG,EAAvB,CACA,KAAKtG,MAAL,CAAYkF,OAAZ,CAAoBc,OAApB,CAA4B,SAAAL,CAAM,CAAI,CAClC,GAAIO,CAAqB,CAACK,QAAtB,CAA+BZ,CAAM,CAAC9C,IAAtC,CAAJ,CAAiD,CAC7CyD,CAAgB,CAAChE,IAAjB,CAAsBqD,CAAtB,CACH,CACJ,CAJD,EAZ2B,GAiBvBxC,CAAAA,CAAU,CAAG,EAjBU,CAkBvBqD,CAAa,CAAG,EAlBO,CAmBvBC,CAAiB,CAAG,EAnBG,CAoBvBC,CAAoB,CAAG,EApBA,CAqB3BJ,CAAgB,CAACN,OAAjB,CAAyB,SAAAL,CAAM,CAAI,CAC/BxC,CAAU,CAACb,IAAX,CAAgBqD,CAAM,CAAC3B,IAAvB,EAD+B,GAE3B2C,CAAAA,CAAY,CAAGhB,CAAM,CAACV,KAFK,CAG3B2B,CAAe,CAAGb,CAAQ,CAACc,MAAT,CAAgB,SAAAjD,CAAC,QAAI,CAAC+C,CAAY,CAACJ,QAAb,CAAsB3C,CAAtB,CAAL,CAAjB,CAHS,CAI/B6C,CAAiB,CAACnE,IAAlB,CAAuBqE,CAAY,CAACG,MAApC,EACAJ,CAAoB,CAACpE,IAArB,CAA0BsE,CAAe,CAACE,MAA1C,EACAN,CAAa,CAAClE,IAAd,CAAmB,CAACqE,CAAD,CAAeC,CAAf,CAAnB,CACH,CAPD,EAQA,GAAI7C,CAAAA,CAAM,CAAG,CACT,CAAEC,IAAI,CAAE,KAAK5E,OAAL,CAAaY,MAArB,CAA6BjB,IAAI,CAAE0H,CAAnC,CADS,CAET,CAAEzC,IAAI,CAAE,KAAK5E,OAAL,CAAa2H,SAArB,CAAgChI,IAAI,CAAE2H,CAAtC,CAFS,CAAb,CAIA,KAAKvG,uBAAL,CAA+BgD,CAA/B,CACA,KAAK/C,mBAAL,CAA2B2D,CAA3B,CACA,KAAK1D,kBAAL,CAA0BmG,CAC7B,CAxNK,CA0NNd,SA1NM,oBA0NIsB,CA1NJ,CA0NS,CACX,GAAI/B,CAAAA,CAAK,CAAG,EAAZ,CACA,KAAKjF,MAAL,CAAYiF,KAAZ,CAAkBe,OAAlB,CAA0B,SAAAC,CAAI,CAAI,CAC9B,GAAI3G,CAAAA,CAAM,EAAU2G,CAAI,CAACJ,EAAzB,CACA,GAAImB,CAAG,CAACT,QAAJ,CAAajH,CAAb,CAAJ,CAA0B,CACtB2F,CAAK,CAAC3C,IAAN,CAAW2D,CAAX,CACH,CACJ,CALD,EAMA,MAAOhB,CAAAA,CACV,CAnOK,CAqONW,cArOM,yBAqOS1G,CArOT,CAqOqB,CACvB,GAAI+H,CAAAA,CAAJ,CACA,KAAKjH,MAAL,CAAYkF,OAAZ,CAAoBc,OAApB,CAA4B,SAAAL,CAAM,CAAI,CAClC,GAAIA,CAAM,CAAC3B,IAAP,GAAgB9E,CAApB,CAAgC,CAC5B+H,CAAG,CAAGtB,CACT,CACJ,CAJD,EAKA,MAAOsB,CAAAA,CACV,CA7OK,CA+ONC,eA/OM,0BA+OUtE,CA/OV,CA+OiB,CACnB,GAAI3B,CAAAA,CAAQ,CAAG,EAAf,CACA,GAAa,qBAAT,EAAA2B,CAAJ,CAAoC,CAChC3B,CAAQ,CAACqB,IAAT,CAAc,CACVpB,KAAK,CAAE,KAAK9B,OAAL,CAAa+H,8BADV,CAEV/F,WAAW,CAAE,KAAKhC,OAAL,CAAagI,uCAFhB,CAAd,EAIAnG,CAAQ,CAACqB,IAAT,CAAc,CACVlB,WAAW,CAAE,KAAKhC,OAAL,CAAaiI,uCADhB,CAAd,CAGH,CARD,IAQO,IAAa,gBAAT,EAAAzE,CAAJ,CAA+B,CAClC3B,CAAQ,CAACqB,IAAT,CAAc,CACVpB,KAAK,CAAE,KAAK9B,OAAL,CAAakI,yBADV,CAEVlG,WAAW,CAAE,KAAKhC,OAAL,CAAamI,kCAFhB,CAAd,EAIAtG,CAAQ,CAACqB,IAAT,CAAc,CACVlB,WAAW,CAAE,KAAKhC,OAAL,CAAaoI,kCADhB,CAAd,CAGH,CACD,KAAKjH,aAAL,CAAqBU,CAArB,CACA,GAAI,KAAKV,aAAL,CAAmBuG,MAAvB,CAA+B,CAC3B,KAAKxG,WAAL,GACH,CACJ,CAtQK,CAwQNmH,kBAxQM,6BAwQcxD,CAxQd,CAwQqB,CACvB,KAAK3D,WAAL,CAAmB2D,CACtB,CA1QK,CA4QNyD,YA5QM,wBA4QQ,CACV,GAAIC,CAAAA,CAAW,WAAM,KAAKvI,OAAL,CAAawI,kBAAnB,aAAyC,KAAKpI,QAA9C,CAAf,CACA,MAAOmI,CAAAA,CACV,CA/QK,CAxCI,CAAR,CA0Tb,CAEM,CAGV,CApVC,CAAN","sourcesContent":["define([\"local_fliplearning/vue\",\r\n \"local_fliplearning/vuetify\",\r\n \"local_fliplearning/axios\",\r\n \"local_fliplearning/moment\",\r\n \"local_fliplearning/pagination\",\r\n \"local_fliplearning/chartdynamic\",\r\n \"local_fliplearning/pageheader\",\r\n \"local_fliplearning/emailform\",\r\n \"local_fliplearning/helpdialog\",\r\n ],\r\n function(Vue, Vuetify, Axios, Moment, Pagination, ChartDynamic, PageHeader, EmailForm, HelpDialog) {\r\n \"use strict\";\r\n\r\n function init(content) {\r\n // console.log(content);\r\n Vue.use(Vuetify)\r\n Vue.component('pagination', Pagination);\r\n Vue.component('chart', ChartDynamic);\r\n Vue.component('pageheader', PageHeader);\r\n Vue.component('emailform', EmailForm);\r\n Vue.component('helpdialog', HelpDialog);\r\n let vue = new Vue({\r\n delimiters: [\"[[\", \"]]\"],\r\n el: \"#submissions\",\r\n vuetify: new Vuetify(),\r\n data() {\r\n return {\r\n dialog : false,\r\n selected_users : [],\r\n modulename : \"\",\r\n moduleid : false,\r\n strings : content.strings,\r\n groups : content.groups,\r\n userid : content.userid,\r\n courseid : content.courseid,\r\n timezone : content.timezone,\r\n render_has : content.profile_render,\r\n loading : false,\r\n errors : [],\r\n pages : content.pages,\r\n submissions: content.submissions,\r\n email_strings: content.strings.email_strings,\r\n\r\n access: content.access,\r\n assigns_submissions_colors: content.assigns_submissions_colors,\r\n access_content_colors: content.access_content_colors,\r\n access_chart_categories: [],\r\n access_chart_series: [],\r\n access_chart_users: [],\r\n\r\n help_dialog: false,\r\n help_contents: [],\r\n }\r\n },\r\n beforeMount(){\r\n this.generate_access_content_data();\r\n },\r\n mounted(){\r\n document.querySelector(\"#sessions-loader\").style.display = \"none\";\r\n document.querySelector(\"#submissions\").style.display = \"block\";\r\n },\r\n methods : {\r\n get_help_content(){\r\n let contents = [];\r\n contents.push({\r\n title: this.strings.section_help_title,\r\n description: this.strings.section_help_description,\r\n });\r\n return contents;\r\n },\r\n\r\n update_interactions(week){\r\n this.loading = true;\r\n this.errors = [];\r\n let data = {\r\n action : \"assignments\",\r\n userid : this.userid,\r\n courseid : this.courseid,\r\n weekcode : week.weekcode,\r\n profile : this.render_has,\r\n }\r\n Axios({\r\n method:'get',\r\n url: M.cfg.wwwroot + \"/local/fliplearning/ajax.php\",\r\n params : data,\r\n }).then((response) => {\r\n if (response.status == 200 && response.data.ok) {\r\n this.submissions = response.data.data.submissions;\r\n this.access = response.data.data.access;\r\n this.generate_access_content_data();\r\n } else {\r\n this.error_messages.push(this.strings.error_network);\r\n }\r\n }).catch((e) => {\r\n this.errors.push(this.strings.api_error_network);\r\n }).finally(() => {\r\n this.loading = false;\r\n });\r\n return this.data;\r\n },\r\n\r\n build_assigns_submissions_chart() {\r\n let chart = new Object();\r\n chart.chart = {\r\n type: 'column',\r\n backgroundColor: null,\r\n style: {fontFamily: 'poppins'},\r\n };\r\n chart.title = {\r\n text: null,\r\n };\r\n chart.colors = this.assigns_submissions_colors;\r\n chart.xAxis = {\r\n categories: this.submissions.categories,\r\n crosshair: true,\r\n };\r\n chart.yAxis = {\r\n min: 0,\r\n title: {\r\n text: this.strings.assignsubs_chart_yaxis\r\n },\r\n allowDecimals: false,\r\n };\r\n chart.tooltip = {\r\n formatter: function () {\r\n let label = this.x.split('</b>');\r\n label = label[0] || '';\r\n label = label.split('<b>');\r\n label = label[1] || '';\r\n let serie_name = this.series.name;\r\n let value = this.y;\r\n let students_label = vue.strings.students_text;\r\n let send_mail = vue.strings.send_mail;\r\n if (value == 1) {\r\n students_label = vue.strings.student_text;\r\n }\r\n let text = '<b>' + label +'</b><br/>' + '<b>' + serie_name +': </b>' +\r\n value + ' ' + students_label + '<br/>' + send_mail;\r\n return text;\r\n }\r\n };\r\n chart.plotOptions = {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: function () {\r\n let serie_name = this.category.split('</b>');\r\n serie_name = serie_name[0] || '';\r\n serie_name = serie_name.split('<b>');\r\n serie_name = serie_name[1] || '';\r\n vue.email_strings.subject = vue.email_strings.subject_prefix+\" - \"+serie_name;\r\n\r\n let x = this.x;\r\n let column = this.series.colorIndex;\r\n vue.dialog = true;\r\n vue.selected_users = vue.submissions.users[x][column];\r\n vue.moduleid = vue.submissions.modules[x];\r\n vue.modulename = \"assign\";\r\n }\r\n }\r\n }\r\n }\r\n };\r\n chart.series = this.submissions.data;\r\n return chart;\r\n },\r\n\r\n build_access_content_chart() {\r\n let chart = new Object();\r\n chart.chart = {\r\n type: 'bar',\r\n backgroundColor: null,\r\n style: {fontFamily: 'poppins'},\r\n };\r\n chart.title = {text: null};\r\n chart.colors = this.access_content_colors;\r\n chart.xAxis = {\r\n categories: this.access_chart_categories,\r\n title: { text: null },\r\n crosshair: true,\r\n };\r\n chart.yAxis = {\r\n min: 0,\r\n title: {\r\n text: this.strings.access_chart_yaxis_label,\r\n },\r\n labels: {\r\n overflow: 'justify'\r\n },\r\n allowDecimals: false,\r\n };\r\n chart.tooltip = {\r\n formatter: function () {\r\n let label = this.x;\r\n let serie_name = this.series.name;\r\n let value = this.y;\r\n let students_label = vue.strings.students_text;\r\n let send_mail = vue.strings.send_mail;\r\n if (value == 1) {\r\n students_label = vue.strings.student_text;\r\n }\r\n let text = '<b>' + label +'</b><br/>' + '<b>' + serie_name +': </b>' +\r\n value + ' ' + students_label + '<br/>' + send_mail;\r\n return text;\r\n }\r\n };\r\n chart.plotOptions = {\r\n bar: {\r\n dataLabels: {\r\n enabled: false\r\n }\r\n },\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: function () {\r\n let serie_name = this.category;\r\n vue.email_strings.subject = vue.email_strings.subject_prefix+\" - \"+serie_name;\r\n let x = this.x;\r\n let column = this.series.colorIndex;\r\n let users = vue.get_users(vue.access_chart_users[x][column]);\r\n vue.selected_users = users;\r\n let module = vue.get_moduletype(this.category);\r\n vue.modulename = module.type;\r\n vue.moduleid = module.id;\r\n vue.dialog = true;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n chart.series = this.access_chart_series;\r\n return chart;\r\n },\r\n\r\n update_dialog (value) {\r\n this.dialog = value;\r\n },\r\n\r\n generate_access_content_data() {\r\n let usersIds = [];\r\n this.access.users.forEach(user => {\r\n usersIds.push(Number(user.id));\r\n });\r\n let selected_types_labels = [];\r\n this.access.types.forEach(item => {\r\n if (item.show) {\r\n selected_types_labels.push(item.type);\r\n }\r\n });\r\n let selected_modules = [];\r\n this.access.modules.forEach(module => {\r\n if (selected_types_labels.includes(module.type)) {\r\n selected_modules.push(module);\r\n }\r\n });\r\n let categories = [];\r\n let modules_users = [];\r\n let access_users_data = [];\r\n let no_access_users_data = [];\r\n selected_modules.forEach(module => {\r\n categories.push(module.name);\r\n let access_users = module.users;\r\n let no_access_users = usersIds.filter(x => !access_users.includes(x));\r\n access_users_data.push(access_users.length);\r\n no_access_users_data.push(no_access_users.length);\r\n modules_users.push([access_users, no_access_users]);\r\n });\r\n let series = [\r\n { name: this.strings.access, data: access_users_data },\r\n { name: this.strings.no_access, data: no_access_users_data },\r\n ];\r\n this.access_chart_categories = categories;\r\n this.access_chart_series = series;\r\n this.access_chart_users = modules_users;\r\n },\r\n\r\n get_users(ids) {\r\n let users = [];\r\n this.access.users.forEach(user => {\r\n let userid = Number(user.id);\r\n if (ids.includes(userid)) {\r\n users.push(user);\r\n }\r\n });\r\n return users;\r\n },\r\n\r\n get_moduletype(modulename) {\r\n let mod;\r\n this.access.modules.forEach(module => {\r\n if (module.name === modulename) {\r\n mod = module;\r\n }\r\n });\r\n return mod;\r\n },\r\n\r\n open_chart_help(chart) {\r\n let contents = [];\r\n if (chart == \"assigns_submissions\") {\r\n contents.push({\r\n title: this.strings.assigns_submissions_help_title,\r\n description: this.strings.assigns_submissions_help_description_p1,\r\n });\r\n contents.push({\r\n description: this.strings.assigns_submissions_help_description_p2,\r\n });\r\n } else if (chart == \"access_content\") {\r\n contents.push({\r\n title: this.strings.access_content_help_title,\r\n description: this.strings.access_content_help_description_p1,\r\n });\r\n contents.push({\r\n description: this.strings.access_content_help_description_p2,\r\n });\r\n }\r\n this.help_contents = contents;\r\n if (this.help_contents.length) {\r\n this.help_dialog = true;\r\n }\r\n },\r\n\r\n update_help_dialog (value) {\r\n this.help_dialog = value;\r\n },\r\n\r\n get_timezone(){\r\n let information = `${this.strings.ss_change_timezone} ${this.timezone}`\r\n return information;\r\n },\r\n }\r\n })\r\n }\r\n\r\n return {\r\n init : init\r\n };\r\n });"],"file":"assignments.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/axios.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/axios.min.js new file mode 100644 index 0000000000000000000000000000000000000000..dd3f4f9ecd295ff058045a7ae0cf749a9c17bbbe --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/axios.min.js @@ -0,0 +1,2 @@ +define ("local_fliplearning/axios",["local_fliplearning/config","axios"],function(a,b){return b}); +//# sourceMappingURL=axios.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/axios.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/axios.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..da216b74807d7b63947197731650a9f9eb9a38d0 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/axios.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/axios.js"],"names":["define","unused","axios"],"mappings":"AAAAA,OAAM,4BAAC,CAAC,2BAAD,CAA8B,OAA9B,CAAD,CAAyC,SAASC,CAAT,CAAiBC,CAAjB,CAAwB,CAC/D,MAAOA,CAAAA,CACV,CAFC,CAAN","sourcesContent":["define(['local_fliplearning/config', 'axios'], function(unused, axios) {\r\n return axios;\r\n }\r\n);"],"file":"axios.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/chartdynamic.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/chartdynamic.min.js new file mode 100644 index 0000000000000000000000000000000000000000..ab0da2852ca4065739c36d85bf7c8482cd2e5eff --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/chartdynamic.min.js @@ -0,0 +1,2 @@ +define(["highcharts","highcharts/highcharts-3d","highcharts/highcharts-more","highcharts/modules/heatmap","highcharts/modules/exporting","highcharts/modules/export-data","highcharts/modules/accessibility","highcharts/modules/no-data-to-display"],function(t){return{template:'<div v-bind:id="container"></div>',props:["container","chart","lang"],data:()=>({}),mounted(){let o=this;this.lang&&t.setOptions({lang:this.lang,credits:{enabled:!1},exporting:{buttons:{contextButton:{menuItems:[{text:this.lang.downloadPNG,onclick:function(){this.exportChart({type:"image/png"}),o.$parent.$root.addLogsIntoDB("downloaded",o.$el.id,"chart","A chart")}},{text:this.lang.downloadJPEG,onclick:function(){this.exportChart({type:"image/jpeg"}),o.$parent.$root.addLogsIntoDB("downloaded",o.$el.id,"chart","A chart")}},{text:this.lang.downloadPDF,onclick:function(){this.exportChart({type:"application/pdf"}),o.$parent.$root.addLogsIntoDB("downloaded",o.$el.id,"chart","A chart")}},{text:this.lang.downloadSVG,onclick:function(){this.exportChart({type:"image/svg+xml"}),o.$parent.$root.addLogsIntoDB("downloaded",o.$el.id,"chart","A chart")}},{text:this.lang.downloadXLS,onclick:function(){this.downloadXLS(),o.$parent.$root.addLogsIntoDB("downloaded",o.$el.id,"chart","A chart")}},{text:this.lang.downloadCSV,onclick:function(){this.downloadCSV(),o.$parent.$root.addLogsIntoDB("downloaded",o.$el.id,"chart","A chart")}}],symbol:"menuball",symbolStroke:"#118AB2"}}}}),this._highchart=t.chart(this.container,this.chart);let a=this._highchart.legend.allItems,e="",n="",d="",h="";a.forEach(t=>{t.legendGroup.element.addEventListener("click",function(){e="filtered",n=o.$el.id,d="chart",h="Filtered a part of the "+n+" chart","function"==typeof o.$parent.$root.addLogsIntoDB&&o.$parent.$root.addLogsIntoDB(e,n,d,h)})})},watch:{chart:{deep:!0,handler(t){this._highchart.update(t);let o=this._highchart.legend.allItems,a=this,e="",n="",d="",h="";o.forEach(t=>{t.legendGroup.element.addEventListener("click",function(){e="filtered",n=a.$el.id,d="chart",h="Filtered a part of the "+n+" chart","function"==typeof a.$parent.$root.addLogsIntoDB&&a.$parent.$root.addLogsIntoDB(e,n,d,h)})})}}}}}); +//# sourceMappingURL=chartdynamic.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/chartdynamic.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/chartdynamic.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..72aab03fc21d6fb9ca0e5c1cf395765f93082251 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/chartdynamic.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/chartdynamic.js"],"names":["define","Highcharts","template","props","data","mounted","lang","setOptions","credits","enabled","exporting","buttons","contextButton","menuItems","text","downloadPNG","onclick","exportChart","type","downloadJPEG","downloadPDF","downloadSVG","downloadXLS","downloadCSV","symbol","symbolStroke","_highchart","chart","container","watch","deep","handler","update"],"mappings":"AAAAA,OAAM,mCAAC,CACC,YADD,CAEC,0BAFD,CAGC,4BAHD,CAIC,4BAJD,CAKC,8BALD,CAMC,gCAND,CAOC,kCAPD,CAQC,uCARD,CAAD,CAUF,SAASC,CAAT,CAAqB,CACrB,MAAO,CACHC,QAAQ,sCADL,CAEHC,KAAK,CAAE,CAAC,WAAD,CAAc,OAAd,CAAuB,MAAvB,CAFJ,CAGHC,IAHG,gBAGI,CACH,MAAO,EACV,CALE,CAMHC,OANG,mBAMO,CACL,KAAKC,IAAN,EAAeL,CAAU,CAACM,UAAX,CAAsB,CACjCD,IAAI,CAAE,KAAKA,IADsB,CAEjCE,OAAO,CAAE,CAAEC,OAAO,GAAT,CAFwB,CAGjCC,SAAS,CAAE,CACPC,OAAO,CAAE,CACLC,aAAa,CAAE,CACXC,SAAS,CAAE,CAAC,CACRC,IAAI,CAAE,KAAKR,IAAL,CAAUS,WADR,CAERC,OAAO,CAAE,kBAAY,CACjB,KAAKC,WAAL,CAAiB,CACbC,IAAI,CAAE,WADO,CAAjB,CAGH,CANO,CAAD,CAOT,CACEJ,IAAI,CAAE,KAAKR,IAAL,CAAUa,YADlB,CAEEH,OAAO,CAAE,kBAAY,CACjB,KAAKC,WAAL,CAAiB,CACbC,IAAI,CAAE,YADO,CAAjB,CAGH,CANH,CAPS,CAcT,CACEJ,IAAI,CAAE,KAAKR,IAAL,CAAUc,WADlB,CAEEJ,OAAO,CAAE,kBAAY,CACjB,KAAKC,WAAL,CAAiB,CACbC,IAAI,CAAE,iBADO,CAAjB,CAGH,CANH,CAdS,CAqBT,CACEJ,IAAI,CAAE,KAAKR,IAAL,CAAUe,WADlB,CAEEL,OAAO,CAAE,kBAAY,CACjB,KAAKC,WAAL,CAAiB,CACbC,IAAI,CAAE,eADO,CAAjB,CAGH,CANH,CArBS,CA4BT,CACEJ,IAAI,CAAE,KAAKR,IAAL,CAAUgB,WADlB,CAEEN,OAAO,CAAE,kBAAY,CACjB,KAAKM,WAAL,EACH,CAJH,CA5BS,CAiCT,CACER,IAAI,CAAE,KAAKR,IAAL,CAAUiB,WADlB,CAEEP,OAAO,CAAE,kBAAY,CACjB,KAAKO,WAAL,EACH,CAJH,CAjCS,CADA,CAwCXC,MAAM,CAAE,UAxCG,CAyCXC,YAAY,CAAE,SAzCH,CADV,CADF,CAHsB,CAAtB,CAAf,CAmDA,KAAKC,UAAL,CAAkBzB,CAAU,CAAC0B,KAAX,CAAiB,KAAKC,SAAtB,CAAiC,KAAKD,KAAtC,CACrB,CA3DE,CA4DHE,KAAK,CAAE,CACHF,KAAK,CAAE,CACHG,IAAI,GADD,CAEHC,OAFG,kBAEKJ,CAFL,CAEY,CACX,KAAKD,UAAL,CAAgBM,MAAhB,CAAuBL,CAAvB,CACH,CAJE,CADJ,CA5DJ,CAsEV,CAjFK,CAAN","sourcesContent":["define([\n 'highcharts',\n 'highcharts/highcharts-3d',\n 'highcharts/highcharts-more',\n 'highcharts/modules/heatmap',\n 'highcharts/modules/exporting',\n 'highcharts/modules/export-data',\n 'highcharts/modules/accessibility',\n 'highcharts/modules/no-data-to-display',\n ],\n function(Highcharts) {\n return {\n template: `<div v-bind:id=\"container\"></div>`,\n props: ['container', 'chart', 'lang'],\n data() {\n return { }\n },\n mounted() {\n (this.lang) && Highcharts.setOptions({\n lang: this.lang,\n credits: { enabled: false },\n exporting: {\n buttons: {\n contextButton: {\n menuItems: [{\n text: this.lang.downloadPNG,\n onclick: function () {\n this.exportChart({\n type: 'image/png'\n });\n }\n },{\n text: this.lang.downloadJPEG,\n onclick: function () {\n this.exportChart({\n type: 'image/jpeg'\n });\n }\n },{\n text: this.lang.downloadPDF,\n onclick: function () {\n this.exportChart({\n type: 'application/pdf'\n });\n }\n },{\n text: this.lang.downloadSVG,\n onclick: function () {\n this.exportChart({\n type: 'image/svg+xml'\n });\n }\n },{\n text: this.lang.downloadXLS,\n onclick: function () {\n this.downloadXLS();\n }\n },{\n text: this.lang.downloadCSV,\n onclick: function () {\n this.downloadCSV();\n }\n }],\n symbol: 'menuball',\n symbolStroke: '#118AB2'\n }\n }\n }\n });\n this._highchart = Highcharts.chart(this.container, this.chart);\n },\n watch: {\n chart: {\n deep: true,\n handler(chart) {\n this._highchart.update(chart);\n },\n }\n }\n\n };\n});"],"file":"chartdynamic.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/chartstatic.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/chartstatic.min.js new file mode 100644 index 0000000000000000000000000000000000000000..0d0f58c546319cbe552bb563a7c860a455184b9c --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/chartstatic.min.js @@ -0,0 +1,2 @@ +define(["highcharts","highcharts/highcharts-3d","highcharts/highcharts-more","highcharts/modules/heatmap","highcharts/modules/exporting","highcharts/modules/export-data","highcharts/modules/accessibility","highcharts/modules/no-data-to-display"],function(t){return{template:'<div v-bind:id="container"></div>',props:["container","chart","lang","test"],data:()=>({}),mounted(){let o=this;this.lang&&t.setOptions({lang:this.lang,credits:{enabled:!1},exporting:{buttons:{contextButton:{menuItems:[{text:this.lang.downloadPNG,onclick:function(){this.exportChart({type:"image/png"}),o.$parent.$root.addLogsIntoDB("downloaded",o.$el.id,"chart","A chart")}},{text:this.lang.downloadJPEG,onclick:function(){this.exportChart({type:"image/jpeg"}),o.$parent.$root.addLogsIntoDB("downloaded",o.$el.id,"chart","A chart")}},{text:this.lang.downloadPDF,onclick:function(){this.exportChart({type:"application/pdf"}),o.$parent.$root.addLogsIntoDB("downloaded",o.$el.id,"chart","A chart")}},{text:this.lang.downloadSVG,onclick:function(){this.exportChart({type:"image/svg+xml"}),o.$parent.$root.addLogsIntoDB("downloaded",o.$el.id,"chart","A chart")}},{text:this.lang.downloadXLS,onclick:function(){this.downloadXLS(),o.$parent.$root.addLogsIntoDB("downloaded",o.$el.id,"chart","A chart")}},{text:this.lang.downloadCSV,onclick:function(){this.downloadCSV(),o.$parent.$root.addLogsIntoDB("downloaded",o.$el.id,"chart","A chart")}}],symbol:"menuball",symbolStroke:"#118AB2"}}}}),this._highchart=t.chart(this.container,this.chart);let a=this._highchart.legend.allItems,n="",e="",d="",h="";a.forEach(t=>{t.legendGroup.element.addEventListener("click",function(){n="filtered",e=o.$el.id,d="chart",h="Filtered a part of the "+e+" chart","function"==typeof o.$parent.$root.addLogsIntoDB&&o.$parent.$root.addLogsIntoDB(n,e,d,h)})})}}}); +//# sourceMappingURL=chartstatic.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/chartstatic.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/chartstatic.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..a6b774808b64d9b308644e8ba785bcce48970ead --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/chartstatic.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/chartstatic.js"],"names":["define","Highcharts","template","props","data","mounted","lang","setOptions","credits","enabled","exporting","buttons","contextButton","menuItems","text","downloadPNG","onclick","exportChart","type","downloadJPEG","downloadPDF","downloadSVG","downloadXLS","downloadCSV","symbol","symbolStroke","_highchart","chart","container"],"mappings":"AAAAA,OAAM,kCAAC,CACC,YADD,CAEC,0BAFD,CAGC,4BAHD,CAIC,4BAJD,CAKC,8BALD,CAMC,gCAND,CAOC,kCAPD,CAQC,uCARD,CAAD,CASF,SAASC,CAAT,CAAqB,CACjB,MAAO,CACHC,QAAQ,sCADL,CAEHC,KAAK,CAAE,CAAC,WAAD,CAAc,OAAd,CAAuB,MAAvB,CAFJ,CAGHC,IAHG,gBAGI,CACH,MAAO,EACV,CALE,CAMHC,OANG,mBAMO,CACL,KAAKC,IAAN,EAAeL,CAAU,CAACM,UAAX,CAAsB,CACjCD,IAAI,CAAE,KAAKA,IADsB,CAEjCE,OAAO,CAAE,CAAEC,OAAO,GAAT,CAFwB,CAGjCC,SAAS,CAAE,CACPC,OAAO,CAAE,CACLC,aAAa,CAAE,CACXC,SAAS,CAAE,CAAC,CACRC,IAAI,CAAE,KAAKR,IAAL,CAAUS,WADR,CAERC,OAAO,CAAE,kBAAY,CACjB,KAAKC,WAAL,CAAiB,CACbC,IAAI,CAAE,WADO,CAAjB,CAGH,CANO,CAAD,CAOT,CACEJ,IAAI,CAAE,KAAKR,IAAL,CAAUa,YADlB,CAEEH,OAAO,CAAE,kBAAY,CACjB,KAAKC,WAAL,CAAiB,CACbC,IAAI,CAAE,YADO,CAAjB,CAGH,CANH,CAPS,CAcT,CACEJ,IAAI,CAAE,KAAKR,IAAL,CAAUc,WADlB,CAEEJ,OAAO,CAAE,kBAAY,CACjB,KAAKC,WAAL,CAAiB,CACbC,IAAI,CAAE,iBADO,CAAjB,CAGH,CANH,CAdS,CAqBT,CACEJ,IAAI,CAAE,KAAKR,IAAL,CAAUe,WADlB,CAEEL,OAAO,CAAE,kBAAY,CACjB,KAAKC,WAAL,CAAiB,CACbC,IAAI,CAAE,eADO,CAAjB,CAGH,CANH,CArBS,CA4BT,CACEJ,IAAI,CAAE,KAAKR,IAAL,CAAUgB,WADlB,CAEEN,OAAO,CAAE,kBAAY,CACjB,KAAKM,WAAL,EACH,CAJH,CA5BS,CAiCT,CACER,IAAI,CAAE,KAAKR,IAAL,CAAUiB,WADlB,CAEEP,OAAO,CAAE,kBAAY,CACjB,KAAKO,WAAL,EACH,CAJH,CAjCS,CADA,CAwCXC,MAAM,CAAE,UAxCG,CAyCXC,YAAY,CAAE,SAzCH,CADV,CADF,CAHsB,CAAtB,CAAf,CAmDA,KAAKC,UAAL,CAAkBzB,CAAU,CAAC0B,KAAX,CAAiB,KAAKC,SAAtB,CAAiC,KAAKD,KAAtC,CACrB,CA3DE,CA6DV,CAvEC,CAAN","sourcesContent":["define([\r\n 'highcharts',\r\n 'highcharts/highcharts-3d',\r\n 'highcharts/highcharts-more',\r\n 'highcharts/modules/heatmap',\r\n 'highcharts/modules/exporting',\r\n 'highcharts/modules/export-data',\r\n 'highcharts/modules/accessibility',\r\n 'highcharts/modules/no-data-to-display'],\r\n function(Highcharts) {\r\n return {\r\n template: `<div v-bind:id=\"container\"></div>`,\r\n props: ['container', 'chart', 'lang'],\r\n data() {\r\n return { }\r\n },\r\n mounted() {\r\n (this.lang) && Highcharts.setOptions({\r\n lang: this.lang,\r\n credits: { enabled: false },\r\n exporting: {\r\n buttons: {\r\n contextButton: {\r\n menuItems: [{\r\n text: this.lang.downloadPNG,\r\n onclick: function () {\r\n this.exportChart({\r\n type: 'image/png'\r\n });\r\n }\r\n },{\r\n text: this.lang.downloadJPEG,\r\n onclick: function () {\r\n this.exportChart({\r\n type: 'image/jpeg'\r\n });\r\n }\r\n },{\r\n text: this.lang.downloadPDF,\r\n onclick: function () {\r\n this.exportChart({\r\n type: 'application/pdf'\r\n });\r\n }\r\n },{\r\n text: this.lang.downloadSVG,\r\n onclick: function () {\r\n this.exportChart({\r\n type: 'image/svg+xml'\r\n });\r\n }\r\n },{\r\n text: this.lang.downloadXLS,\r\n onclick: function () {\r\n this.downloadXLS();\r\n }\r\n },{\r\n text: this.lang.downloadCSV,\r\n onclick: function () {\r\n this.downloadCSV();\r\n }\r\n }],\r\n symbol: 'menuball',\r\n symbolStroke: '#118AB2'\r\n }\r\n }\r\n }\r\n });\r\n this._highchart = Highcharts.chart(this.container, this.chart);\r\n }\r\n };\r\n });"],"file":"chartstatic.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/config.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/config.min.js new file mode 100644 index 0000000000000000000000000000000000000000..763e7412d2cc73fd5c472d95737890415458b551 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/config.min.js @@ -0,0 +1,2 @@ +define ("local_fliplearning/config",[],function(){"use strict";window.requirejs.config({packages:[{name:"highcharts",main:"highcharts"}],paths:{vue:M.cfg.wwwroot+"/local/fliplearning/js/vue",vuetify:M.cfg.wwwroot+"/local/fliplearning/js/vuetify",axios:M.cfg.wwwroot+"/local/fliplearning/js/axios",sortablejs:M.cfg.wwwroot+"/local/fliplearning/js/sortablejs",draggable:M.cfg.wwwroot+"/local/fliplearning/js/draggable",datepicker:M.cfg.wwwroot+"/local/fliplearning/js/datepicker",moment:M.cfg.wwwroot+"/local/fliplearning/js/moment",momenttimezone:M.cfg.wwwroot+"/local/fliplearning/js/moment-timezone",alertify:M.cfg.wwwroot+"/local/fliplearning/js/alertify",highcharts:M.cfg.wwwroot+"/local/fliplearning/js/highcharts/"},shim:{vue:{exports:"vue"},vuetify:{deps:["vue"],exports:"vuetify"},axios:{exports:"axios"},sortablejs:{deps:["vue"],exports:"sortablejs"},draggable:{deps:["sortablejs"],exports:"draggable"},datepicker:{deps:["vue"],exports:"datepicker"},moment:{deps:["vue"],exports:"moment"},momenttimezone:{exports:"momenttimezone"},alertify:{exports:"alertify"}}})}); +//# sourceMappingURL=config.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/config.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/config.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..a3f6db4d046ca4654f52ecfffb956dd3c0250b09 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/config.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/config.js"],"names":["define","window","requirejs","config","packages","name","main","paths","M","cfg","wwwroot","shim","exports","deps"],"mappings":"AAAAA,OAAM,6BAAC,EAAD,CAAI,UAAW,CACjB,aACAC,MAAM,CAACC,SAAP,CAAiBC,MAAjB,CAAwB,CACpBC,QAAQ,CAAE,CAAC,CACPC,IAAI,CAAE,YADC,CAEPC,IAAI,CAAE,YAFC,CAAD,CADU,CAKpBC,KAAK,CAAE,CACH,IAAQC,CAAC,CAACC,GAAF,CAAMC,OAAN,CAAgB,4BADrB,CAEH,QAAYF,CAAC,CAACC,GAAF,CAAMC,OAAN,CAAgB,gCAFzB,CAGH,MAASF,CAAC,CAACC,GAAF,CAAMC,OAAN,CAAgB,8BAHtB,CAIH,WAAcF,CAAC,CAACC,GAAF,CAAMC,OAAN,CAAgB,mCAJ3B,CAKH,UAAaF,CAAC,CAACC,GAAF,CAAMC,OAAN,CAAgB,kCAL1B,CAMH,WAAcF,CAAC,CAACC,GAAF,CAAMC,OAAN,CAAgB,mCAN3B,CAOH,OAAUF,CAAC,CAACC,GAAF,CAAMC,OAAN,CAAgB,+BAPvB,CAQH,eAAkBF,CAAC,CAACC,GAAF,CAAMC,OAAN,CAAgB,wCAR/B,CASH,SAAYF,CAAC,CAACC,GAAF,CAAMC,OAAN,CAAgB,iCATzB,CAUH,WAAcF,CAAC,CAACC,GAAF,CAAMC,OAAN,CAAgB,oCAV3B,CALa,CAiBpBC,IAAI,CAAE,CACF,IAAQ,CAACC,OAAO,CAAE,KAAV,CADN,CAEF,QAAW,CAACC,IAAI,CAAE,CAAC,KAAD,CAAP,CAAiBD,OAAO,CAAE,SAA1B,CAFT,CAGF,MAAS,CAACA,OAAO,CAAE,OAAV,CAHP,CAIF,WAAc,CAACC,IAAI,CAAE,CAAC,KAAD,CAAP,CAAgBD,OAAO,CAAE,YAAzB,CAJZ,CAKF,UAAa,CAACC,IAAI,CAAE,CAAC,YAAD,CAAP,CAAuBD,OAAO,CAAE,WAAhC,CALX,CAMF,WAAc,CAACC,IAAI,CAAE,CAAC,KAAD,CAAP,CAAgBD,OAAO,CAAE,YAAzB,CANZ,CAOF,OAAU,CAACC,IAAI,CAAE,CAAC,KAAD,CAAP,CAAgBD,OAAO,CAAE,QAAzB,CAPR,CAQF,eAAkB,CAACA,OAAO,CAAE,gBAAV,CARhB,CASF,SAAY,CAACA,OAAO,CAAE,UAAV,CATV,CAjBc,CAAxB,CA6BH,CA/BK,CAAN","sourcesContent":["define([],function() {\n \"use strict\";\n window.requirejs.config({\n packages: [{\n name: 'highcharts',\n main: 'highcharts'\n }],\n paths: {\n \"vue\" : M.cfg.wwwroot + '/local/fliplearning/js/vue',\n \"vuetify\" : M.cfg.wwwroot + '/local/fliplearning/js/vuetify',\n \"axios\": M.cfg.wwwroot + '/local/fliplearning/js/axios',\n \"sortablejs\": M.cfg.wwwroot + '/local/fliplearning/js/sortablejs',\n \"draggable\": M.cfg.wwwroot + '/local/fliplearning/js/draggable',\n \"datepicker\": M.cfg.wwwroot + '/local/fliplearning/js/datepicker',\n \"moment\": M.cfg.wwwroot + '/local/fliplearning/js/moment',\n \"momenttimezone\": M.cfg.wwwroot + '/local/fliplearning/js/moment-timezone',\n \"alertify\": M.cfg.wwwroot + '/local/fliplearning/js/alertify',\n \"highcharts\": M.cfg.wwwroot + '/local/fliplearning/js/highcharts/'\n },\n shim: {\n 'vue' : {exports: 'vue'},\n 'vuetify': {deps: ['vue'] , exports: 'vuetify'},\n 'axios': {exports: 'axios'},\n 'sortablejs': {deps: ['vue'], exports: 'sortablejs'},\n 'draggable': {deps: ['sortablejs'], exports: 'draggable'},\n 'datepicker': {deps: ['vue'], exports: 'datepicker'},\n 'moment': {deps: ['vue'], exports: 'moment'},\n 'momenttimezone': {exports: 'momenttimezone'},\n 'alertify': {exports: 'alertify'},\n }\n });\n});\n"],"file":"config.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/datepicker.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/datepicker.min.js new file mode 100644 index 0000000000000000000000000000000000000000..95bf87d0a60f40a3c380623ba2c6a0e1484cc0ac --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/datepicker.min.js @@ -0,0 +1,2 @@ +define ("local_fliplearning/datepicker",["local_fliplearning/config","datepicker"],function(a,b){return b}); +//# sourceMappingURL=datepicker.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/datepicker.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/datepicker.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..8e73d4834baad11ebb99d3ed57ab35dd77c5576c --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/datepicker.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/datepicker.js"],"names":["define","unused","datepicker"],"mappings":"AAAAA,OAAM,iCAAC,CAAC,2BAAD,CAA8B,YAA9B,CAAD,CAA8C,SAASC,CAAT,CAAiBC,CAAjB,CAA6B,CACzE,MAAOA,CAAAA,CACV,CAFC,CAAN","sourcesContent":["define(['local_fliplearning/config', 'datepicker'], function(unused, datepicker) {\r\n return datepicker;\r\n }\r\n);"],"file":"datepicker.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/draggable.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/draggable.min.js new file mode 100644 index 0000000000000000000000000000000000000000..883f39dbcc79418589cff93d5193e439ad35f0bf --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/draggable.min.js @@ -0,0 +1,2 @@ +define ("local_fliplearning/draggable",["local_fliplearning/config","draggable"],function(a,b){return b}); +//# sourceMappingURL=draggable.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/draggable.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/draggable.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..9fde6bd6a9561ac47ea691ab006a138d5fcc9941 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/draggable.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/draggable.js"],"names":["define","unused","draggable"],"mappings":"AAAAA,OAAM,gCAAC,CAAC,2BAAD,CAA8B,WAA9B,CAAD,CAA6C,SAASC,CAAT,CAAiBC,CAAjB,CAA4B,CACvE,MAAOA,CAAAA,CACV,CAFC,CAAN","sourcesContent":["define(['local_fliplearning/config', 'draggable'], function(unused, draggable) {\r\n return draggable;\r\n }\r\n);"],"file":"draggable.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/dropout.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/dropout.min.js new file mode 100644 index 0000000000000000000000000000000000000000..4f02a3b8ce6d06cae4128ec3d6d654d7c6947d0e --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/dropout.min.js @@ -0,0 +1,2 @@ +define(["local_fliplearning/vue","local_fliplearning/vuetify","local_fliplearning/axios","local_fliplearning/moment","local_fliplearning/momenttimezone","local_fliplearning/pagination","local_fliplearning/chartdynamic","local_fliplearning/pageheader","local_fliplearning/emailform","local_fliplearning/modulesform","local_fliplearning/helpdialog"],function(e,s,t,i,o,r,l,n,a,d,u){"use strict";return{init:function(o){e.use(s),e.component("pagination",r),e.component("chart",l),e.component("pageheader",n),e.component("emailform",a),e.component("modulesform",d),e.component("helpdialog",u);let c=new e({delimiters:["[[","]]"],el:"#dropout",vuetify:new s,data:()=>({strings:o.strings,groups:o.groups,userid:o.userid,courseid:o.courseid,timezone:o.timezone,render_has:o.profile_render,loading:!1,errors:[],pages:o.pages,dropout:o.dropout,modules_access_colors:o.modules_access_colors,week_modules_colors:o.week_modules_colors,sessions_evolution_colors:o.sessions_evolution_colors,user_grades_colors:o.user_grades_colors,selected_cluster:[],cluster_users:[],selected_user:null,search:null,week_modules_chart_data:[],week_modules_chart_categories:[],selected_sections:[],sessions_evolution_data:[],user_grades_categories:[],user_grades_data:[],modules_dialog:!1,email_users:[],email_dialog:!1,modulename:"",moduleid:!1,email_strings:o.strings.email_strings,help_dialog:!1,help_contents:[],email_object_name:""}),beforeMount(){this.dropout.clusters.length&&(this.set_modules_in_sections(),this.selected_cluster=this.dropout.clusters[0],this.change_cluster(this.selected_cluster.users))},mounted(){document.querySelector("#sessions-loader").style.display="none",document.querySelector("#dropout").style.display="block",setTimeout(function(){c.setGraphicsEventListeners()})},computed:{},methods:{get_help_content(){let e=[];return e.push({title:this.strings.section_help_title,description:this.strings.section_help_description}),e},set_modules_in_sections(){let e=new Map,s=0;this.dropout.cms.forEach(t=>{s=Number(t.section),e.has(s)?e.get(s).push(t):e.set(s,[t])}),this.dropout.sections.forEach(t=>{s=Number(t.sectionid),t.sectionid=s,t.modules=e.has(s)?e.get(s):[]})},change_cluster(e){let s=[];if(this.dropout.users.forEach(t=>{e.includes(t.id)&&s.push(t)}),s.length){this.cluster_users=s;let e=this.cluster_users[0];isNaN(parseInt(this.selected_cluster.number))||this.addLogsIntoDB("viewed","group_"+parseInt(this.selected_cluster.number)+1,"group","Viewed a group"),this.change_user(e)}else this.cluster_users=[],this.selected_user=null},change_user(e){let s=this.selected_user;this.selected_user=e,this.calculate_week_modules_access(),this.calculate_sessions_evolution(),this.calculate_user_grades(),null!=s&&s.username!=this.selected_user.username&&this.addLogsIntoDB("viewed","user_"+e.username,"user_details","Viewed the "+e.username+" details (charts, statistics, etc.)")},calculate_week_modules_access(){let e,s=0,t=0,i=0,o=0,r=[],l=[],n=[],a=[];this.dropout.weeks.forEach(d=>{i=0,o=0,d.sections.forEach(l=>{s=Number(l.sectionid),l.sectionid=s,(r=this.sections_modules(s)).forEach(s=>{t=Number(s.id),s.id=t,(e=this.selected_user.cms.modules[`cm${s.id}`])&&(e.complete&&i++,e.viewed&&o++)})}),l.push(i),n.push(o),a.push(`${d.name} ${d.position+1}`)}),this.week_modules_chart_categories=a,this.week_modules_chart_data=[{name:this.strings.modules_access_chart_series_viewed,data:n},{name:this.strings.modules_access_chart_series_complete,data:l}]},calculate_sessions_evolution(){let e=[],s=[],t=0,i=0,o=0,r=0;this.selected_user.sessions.forEach(l=>{r=1e3*Number(l.start),o=Number(l.duration)/60,t+=o,i++,e.push({x:r,y:i}),s.push({x:r,y:t})}),this.sessions_evolution_data=[{name:this.strings.sessions_evolution_chart_legend1,yAxis:0,data:e},{name:this.strings.sessions_evolution_chart_legend2,yAxis:1,data:s}]},calculate_user_grades(){let e=[],s=[],t=[],i=0,o=this.selected_user.firstname;this.selected_user.gradeitems&&(this.selected_user.gradeitems.forEach(o=>{i=100*Number(o.finalgrade)/Number(o.grademax),e.push(o.itemname),s.push(o.average_percentage),t.push(i)}),this.user_grades_data=[{name:o,data:t},{name:this.strings.user_grades_chart_legend,data:s}],this.user_grades_categories=e)},build_modules_access_chart(){let e=new Object;return e.chart={type:"bar",backgroundColor:null,style:{fontFamily:"poppins"}},e.title={text:null},e.colors=this.modules_access_colors,e.xAxis={type:"category"},e.yAxis={allowDecimals:!1,title:{enabled:!0,text:this.strings.modules_amount}},e.tooltip={shared:!0,formatter:function(){let e=1==this.y?c.strings.module_label:c.strings.modules_label;return"<b>"+this.points[0].key+"</b>: "+this.y+" "+e+"<br/><i>"+c.strings.modules_details+"<i/>"}},e.plotOptions={series:{cursor:"pointer",point:{events:{click:function(){c.open_modules_modal(this.x),c.addLogsIntoDB("viewed",c.selected_user.username+"_module_access","chart_details","Provide details informations about the consulted resources")}}}}},e.legend={enabled:!1},e.series=[{colorByPoint:!0,data:[{name:this.strings.modules_access_chart_series_viewed,y:this.selected_user.cms.viewed},{name:this.strings.modules_access_chart_series_complete,y:this.selected_user.cms.complete},{name:this.strings.modules_access_chart_series_total,y:this.selected_user.cms.total}]}],e},build_week_modules_chart(){let e=new Object;return e.chart={type:"column",backgroundColor:null,style:{fontFamily:"poppins"}},e.title={text:null},e.colors=this.week_modules_colors,e.xAxis={categories:this.week_modules_chart_categories,title:{text:null},crosshair:!0},e.yAxis={allowDecimals:!1,title:{text:this.strings.modules_amount}},e.tooltip={shared:!0,useHTML:!0,formatter:function(){let e="",s="";if(this.points[0]){let s=1==this.points[0].y?c.strings.module_label:c.strings.modules_label,t=this.points[0].series.name;e=`<b style="color: ${this.points[0].color}">${t}: </b>\n ${this.points[0].y} ${s}<br/>`}if(this.points[1]){let e=1==this.points[1].y?c.strings.module_label:c.strings.modules_label,t=this.points[1].series.name;s=`<b style="color: ${this.points[1].color}">${t}: </b>\n ${this.points[1].y} ${e}<br/>`}return`${this.x} <br/> ${e}${s} <i>${c.strings.modules_details}<i/>`}},e.plotOptions={series:{cursor:"pointer",point:{events:{click:function(){c.open_modules_modal(this.colorIndex,this.x),c.addLogsIntoDB("viewed",c.selected_user.username+"_week_modules","chart_details","Provide details informations about the consulted resources")}}}}},e.series=this.week_modules_chart_data,e},build_sessions_evolution_chart(){let e=new Object;return e.chart={zoomType:"x",backgroundColor:null,style:{fontFamily:"poppins"}},e.title={text:null},e.colors=this.sessions_evolution_colors,e.xAxis={type:"datetime"},e.yAxis=[{allowDecimals:!1,title:{text:this.strings.sessions_evolution_chart_xaxis1}},{title:{text:this.strings.sessions_evolution_chart_xaxis2},opposite:!0}],e.tooltip={shared:!0,useHTML:!0,formatter:function(){return`<small>${c.calculate_timezone_date_string(this.x)}</small><br/>${this.points[0]?c.get_sessions_evolution_tooltip(this.points[0]):""}${this.points[1]?c.get_sessions_evolution_tooltip(this.points[1]):""}`}},e.series=this.sessions_evolution_data,e},build_user_grades_chart(){let e=new Object;return e.chart={type:"column",backgroundColor:null,style:{fontFamily:"poppins"}},e.title={text:null},e.colors=this.user_grades_colors,e.xAxis={crosshair:!0,categories:this.user_grades_categories},e.yAxis={allowDecimals:!1,max:100,labels:{format:"{value} %"},title:{text:this.strings.user_grades_chart_yaxis}},e.tooltip={shared:!0,useHTML:!0,formatter:function(){let e=this.x,s=this.points[0].point.x,t=c.selected_user.gradeitems[s],i=`<small>${e}</small><br/>`,o=`<i>(${c.strings.user_grades_chart_view_activity})</i><br/>`,r="";return r=0==t.gradecount?c.strings.user_grades_chart_tooltip_no_graded:`${this.points[0]?c.get_user_grades_tooltip(this.points[0],t):""}${this.points[1]?c.get_user_grades_tooltip(this.points[1],t):""}${o}`,`${i}${r}`}},e.plotOptions={series:{cursor:"pointer",point:{events:{click:function(){let e=this.x,s=c.selected_user.gradeitems[e],t=`${M.cfg.wwwroot}/mod/${s.itemmodule}/view.php?id=${s.coursemoduleid}`;window.open(t,"_blank"),c.addLogsIntoDB("viewed",c.selected_user.username+"_user_grades","chart_details","Provide informations about a certain test")}}}}},e.series=this.user_grades_data,e},get_sessions_evolution_tooltip(e){let s,t,i,o,r,l="";return 0==e.colorIndex?(t=1==(s=e.y)?c.strings.session_text:c.strings.sessions_text,i=e.series.name,l=`<b style="color: ${e.color}">${i}: </b>\n ${s} ${t}<br/>`):(o=e.series.name,r=this.convert_time(60*e.y),l=`<b style="color: ${e.color}">${o}: </b>\n ${r}<br/>`),l},get_user_grades_tooltip(e,s){let t=e.series.name,i=0,o=Number(s.finalgrade),r=Number(s.average),l=Number(s.grademax);return l=this.isInt(l)?l:l.toFixed(2),i=0==e.colorIndex?this.isInt(o)?o:o.toFixed(2):this.isInt(r)?r:r.toFixed(2),`<b style="color: ${e.color}">${t}: </b>\n ${i}/${l}<br/>`},calculate_timezone_date_string(e){let s,t,o,r,l;if(i.tz.zone(this.timezone))t=(s=i(e).tz(this.timezone)).day(),o=s.date(),r=s.month(),l=s.format("HH:mm:ss");else{let i=Intl.DateTimeFormat().resolvedOptions().timeZone;t=(s=new Date(e)).getDay(),o=s.getDate(),r=s.getMonth(),l=`${s.getHours()}:${s.getMinutes()}:${s.getSeconds()} (${i})`}return`${t=this.strings.chart.weekdays[t]}, ${r=this.strings.chart.shortMonths[r]} ${o}, ${l}`},convert_time(e){e*=60;let s,t=this.strings.hours_short,i=this.strings.minutes_short,o=this.strings.seconds_short,r=Math.floor(e/3600),l=Math.floor(e%3600/60),n=Math.floor(e%60);return s=r>=1?l>=1?`${r}${t} ${l}${i}`:`${r}${t}`:l>=1?n>=1?`${l}${i} ${n}${o}`:`${l}${i}`:`${n}${o}`},open_modules_modal(e,s){let t=this.dropout.sections;if(Number.isInteger(s)){let e;t=[],this.dropout.weeks[s].sections.forEach(s=>{e={sectionid:s.sectionid,name:s.name,modules:this.sections_modules(s.sectionid)},t.push(e)})}t.forEach(e=>{e.modules.forEach(e=>{e.complete=!1,e.viewed=!1,e.interactions=0;let s=this.selected_user.cms.modules[`cm${e.id}`];s&&(e.complete=s.complete,e.viewed=s.viewed,e.interactions=s.interactions)})}),this.selected_sections=t,this.modules_dialog=!0},sections_modules(e){let s=[],t=this.dropout.sections;for(let i=0;i<t.length;i++)if(t[i].sectionid==e){t[i].modules&&(s=t[i].modules);break}return s},get_user_module(e){let s,t=this.selected_user.cms.modules;for(let i=0;i<t.length;i++)if(t[i].id=Number(t[i].id),t[i].id==e){s=t[i];break}return s},table_headers(){return[{text:"",value:"id",align:"center",sortable:!1},{text:this.strings.thead_name,value:"firstname"},{text:this.strings.thead_lastname,value:"lastname"},{text:this.strings.thead_progress,value:"progress_percentage"}]},get_picture_url:e=>`${M.cfg.wwwroot}/user/pix.php?file=/${e}/f1.jpg`,get_user_fullname(){return`${this.selected_user.firstname} ${this.selected_user.lastname}`},get_username(){return`@${this.selected_user.username}`},see_profile(){let e=this.selected_user.id,s=M.cfg.wwwroot+"/user/view.php?id="+e+"&course="+c.courseid;window.open(s)},get_progress_message(){let e=this.strings.modules_label,s=this.strings.finisheds_label;return 1==this.selected_user.cms.complete&&(e=this.strings.module_label,s=this.strings.finished_label),`${this.selected_user.cms.complete} ${e} ${s} ${this.strings.of_conector} ${this.dropout.total_cms}`},get_progress_percentage(){return`${this.selected_user.progress_percentage} %`},get_student_grade(){let e=this.selected_user.coursegrade;return e.finalgrade=Number(e.finalgrade),e.maxgrade=Number(e.maxgrade),`${this.isInt(e.finalgrade)?e.finalgrade:e.finalgrade.toFixed(2)}/${this.isInt(e.maxgrade)?e.maxgrade:e.maxgrade.toFixed(2)}`},get_sendmail_user_text(){return`${this.strings.send_mail_to_user} ${this.selected_user.firstname}`},sendmail(e){this.strings.email_strings.subject=this.strings.email_strings.subject_prefix,this.modulename="course",this.moduleid=this.courseid,1==e?(this.email_object_name=this.selected_user.username,this.email_users=[this.selected_user],this.email_dialog=!0):2==e&&(isNaN(parseInt(this.selected_cluster.number))?this.email_object_name="unknown":this.email_object_name=parseInt(this.selected_cluster.number)+1,this.email_users=this.cluster_users,this.email_dialog=!0)},update_email_dialog(e){this.email_dialog=e},update_modules_dialog(e){this.modules_dialog=e},isInt:e=>e%1==0,generate_dropout_data(){this.loading=!0,this.errors=[];let e={action:"dropoutdata",userid:this.userid,courseid:this.courseid,profile:this.render_has};return t({method:"get",url:M.cfg.wwwroot+"/local/fliplearning/ajax.php",params:e}).then(e=>{200==e.status&&e.data.ok?location.reload():this.error_messages.push(this.strings.error_network)}).catch(e=>{this.errors.push(this.strings.api_error_network)}).finally(()=>{this.loading=!1}),this.data},open_chart_help(e){let s=[],t="",i="",o="",r="";"group_students"==e?(s.push({title:this.strings.group_students_help_title,description:this.strings.group_students_help_description_p1}),s.push({description:this.strings.group_students_help_description_p2}),t="viewed",i="help",o="group_student",r="Help section that provides information about the group students section",this.addLogsIntoDB(t,o,i,r)):"modules_access"==e?(s.push({title:this.strings.modules_access_help_title,description:this.strings.modules_access_help_description_p1}),s.push({description:this.strings.modules_access_help_description_p2}),s.push({description:this.strings.modules_access_help_description_p3}),t="viewed",i="help",o="modules_access",r="Help section that provides information about the modules access chart",this.addLogsIntoDB(t,o,i,r)):"week_modules"==e?(s.push({title:this.strings.week_modules_help_title,description:this.strings.week_modules_help_description_p1}),s.push({description:this.strings.week_modules_help_description_p2}),s.push({description:this.strings.week_modules_help_description_p3}),t="viewed",i="help",o="week_modules",r="Help section that provides information about the week modules chart",this.addLogsIntoDB(t,o,i,r)):"sessions_evolution"==e?(s.push({title:this.strings.sessions_evolution_help_title,description:this.strings.sessions_evolution_help_description_p1}),s.push({description:this.strings.sessions_evolution_help_description_p2}),s.push({description:this.strings.sessions_evolution_help_description_p3}),t="viewed",i="help",o="sessions_evolution",r="Help section that provides information about the sessions evolution chart",this.addLogsIntoDB(t,o,i,r)):"user_grades"==e&&(s.push({title:this.strings.user_grades_help_title,description:this.strings.user_grades_help_description_p1}),s.push({description:this.strings.user_grades_help_description_p2}),s.push({description:this.strings.user_grades_help_description_p3}),t="viewed",i="help",o="user_grades",r="Help section that provides information about the user grades chart",this.addLogsIntoDB(t,o,i,r)),this.help_contents=s,this.help_contents.length&&(this.help_dialog=!0)},update_help_dialog(e){this.help_dialog=e},get_timezone(){return`${this.strings.ss_change_timezone} ${this.timezone}`},setGraphicsEventListeners(){let e=document.querySelectorAll(".highcharts-container");e[0].id="courseRessources",e[1].id="weekRessources",e[2].id="sessionsAndInvestedTime",e[3].id="qualifications",e.forEach(e=>{e.addEventListener("mouseenter",c.addLogsViewGraphic)})},addLogsViewGraphic(e){event.stopPropagation();var s="",t="",i="",o="";switch(e.target.id){case"courseRessources":s="viewed",t=c.selected_user.username+"_modules_access",i="chart",o="Bar chart that shows";break;case"weekRessources":s="viewed",t=c.selected_user.username+"_week_modules",i="chart",o="Chart showing";break;case"sessionsAndInvestedTime":s="viewed",t=c.selected_user.username+"_sessions_evolution",i="chart",o="Chart showing ";break;case"qualifications":s="viewed",t=c.selected_user.username+"_user_grades",i="chart",o="Chart showing ";break;default:s="viewed",t="",i="chart",o="A chart"}c.addLogsIntoDB(s,t,i,o)},addLogsIntoDB(e,s,i,r){let l={courseid:o.courseid,userid:o.userid,action:"addLogs",sectionname:"DROPOUT",actiontype:e,objectType:i,objectName:s,currentUrl:document.location.href,objectDescription:r};t({method:"get",url:M.cfg.wwwroot+"/local/fliplearning/ajax.php",params:l}).then(e=>{200==e.status&&e.data.ok}).catch(e=>{})}}})}}}); +//# sourceMappingURL=dropout.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/dropout.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/dropout.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..5ec8ddffc3c5031a3e9ee81984ef1373e87a5de2 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/dropout.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/dropout.js"],"names":["define","Vue","Vuetify","Axios","Moment","MomentTimezone","Pagination","ChartDynamic","PageHeader","EmailForm","ModulesForm","HelpDialog","init","content","use","component","vue","delimiters","el","vuetify","data","strings","groups","userid","courseid","timezone","render_has","profile_render","loading","errors","pages","dropout","modules_access_colors","week_modules_colors","sessions_evolution_colors","user_grades_colors","selected_cluster","cluster_users","selected_user","search","week_modules_chart_data","week_modules_chart_categories","selected_sections","sessions_evolution_data","user_grades_categories","user_grades_data","modules_dialog","email_users","email_dialog","modulename","moduleid","email_strings","help_dialog","help_contents","beforeMount","clusters","length","set_modules_in_sections","change_cluster","users","mounted","document","querySelector","style","display","computed","methods","get_help_content","contents","title","section_help_title","description","section_help_description","sectionsMap","Map","sectionid","cms","forEach","cm","section","has","set","get","push","sections","modules","selected_users","user","includes","id","change_user","calculate_week_modules_access","calculate_sessions_evolution","calculate_user_grades","weekcompletecms","weekviewedcms","completecms","viewedcms","categories","user_cm","weeks","week","sections_modules","module","complete","viewed","name","position","modules_access_chart_series_viewed","modules_access_chart_series_complete","sessions_data","time_data","sumtime","sumsessions","time","timestamp","sessions","session","start","duration","x","y","sessions_evolution_chart_legend1","yAxis","sessions_evolution_chart_legend2","course_grades","user_grades","user_grade","user_name","firstname","gradeitems","item","finalgrade","grademax","itemname","average_percentage","user_grades_chart_legend","build_modules_access_chart","chart","type","backgroundColor","fontFamily","text","colors","xAxis","allowDecimals","enabled","modules_amount","tooltip","shared","formatter","module_text","module_label","modules_label","points","key","modules_details","plotOptions","series","cursor","point","events","click","open_modules_modal","legend","colorByPoint","modules_access_chart_series_total","total","build_week_modules_chart","crosshair","useHTML","text1","text2","module_text_viewed","viewed_series_name","color","module_text_completed","completed_series_name","colorIndex","build_sessions_evolution_chart","zoomType","sessions_evolution_chart_xaxis1","sessions_evolution_chart_xaxis2","opposite","date_label","calculate_timezone_date_string","get_sessions_evolution_tooltip","build_user_grades_chart","max","labels","format","user_grades_chart_yaxis","header","footer","user_grades_chart_view_activity","body","gradecount","user_grades_chart_tooltip_no_graded","get_user_grades_tooltip","url","M","cfg","wwwroot","itemmodule","coursemoduleid","window","open","sessions_suffix","sessions_prefix","time_prefix","session_text","sessions_text","convert_time","serie_name","average","isInt","toFixed","dat","weekday","monthday","month","tz","zone","day","date","Intl","DateTimeFormat","resolvedOptions","timeZone","Date","getDay","getDate","getMonth","getHours","getMinutes","getSeconds","weekdays","shortMonths","h","hours_short","m","minutes_short","s","seconds_short","hours","Math","floor","minutes","seconds","weekposition","Number","isInteger","interactions","i","get_user_module","table_headers","headers","value","align","sortable","thead_name","thead_lastname","thead_progress","get_picture_url","get_user_fullname","lastname","get_username","username","see_profile","get_progress_message","finished_label","finisheds_label","of_conector","total_cms","get_progress_percentage","progress_percentage","get_student_grade","grade","coursegrade","maxgrade","student_grade","max_grade","get_sendmail_user_text","send_mail_to_user","sendmail","subject","subject_prefix","update_email_dialog","update_modules_dialog","n","generate_dropout_data","action","profile","method","params","then","response","status","ok","location","reload","error_messages","error_network","catch","api_error_network","finally","open_chart_help","group_students_help_title","group_students_help_description_p1","group_students_help_description_p2","modules_access_help_title","modules_access_help_description_p1","modules_access_help_description_p2","modules_access_help_description_p3","week_modules_help_title","week_modules_help_description_p1","week_modules_help_description_p2","week_modules_help_description_p3","sessions_evolution_help_title","sessions_evolution_help_description_p1","sessions_evolution_help_description_p2","sessions_evolution_help_description_p3","user_grades_help_title","user_grades_help_description_p1","user_grades_help_description_p2","user_grades_help_description_p3","update_help_dialog","get_timezone","information","ss_change_timezone"],"mappings":"AAAAA,OAAM,8BAAC,CAAC,wBAAD,CACC,4BADD,CAEC,0BAFD,CAGC,2BAHD,CAIC,mCAJD,CAKC,+BALD,CAMC,iCAND,CAOC,+BAPD,CAQC,8BARD,CASC,gCATD,CAUC,+BAVD,CAAD,CAYF,SAASC,CAAT,CAAcC,CAAd,CAAuBC,CAAvB,CAA8BC,CAA9B,CAAsCC,CAAtC,CAAsDC,CAAtD,CAAkEC,CAAlE,CAAgFC,CAAhF,CAA4FC,CAA5F,CAAuGC,CAAvG,CAAoHC,CAApH,CAAgI,CAC5H,aAssBA,MAAO,CACHC,IAAI,CArsBR,SAAcC,CAAd,CAAuB,CAEnBZ,CAAG,CAACa,GAAJ,CAAQZ,CAAR,EACAD,CAAG,CAACc,SAAJ,CAAc,YAAd,CAA4BT,CAA5B,EACAL,CAAG,CAACc,SAAJ,CAAc,OAAd,CAAuBR,CAAvB,EACAN,CAAG,CAACc,SAAJ,CAAc,YAAd,CAA4BP,CAA5B,EACAP,CAAG,CAACc,SAAJ,CAAc,WAAd,CAA2BN,CAA3B,EACAR,CAAG,CAACc,SAAJ,CAAc,aAAd,CAA6BL,CAA7B,EACAT,CAAG,CAACc,SAAJ,CAAc,YAAd,CAA4BJ,CAA5B,EACA,GAAIK,CAAAA,CAAG,CAAG,GAAIf,CAAAA,CAAJ,CAAQ,CACdgB,UAAU,CAAE,CAAC,IAAD,CAAO,IAAP,CADE,CAEdC,EAAE,CAAE,UAFU,CAGdC,OAAO,CAAE,GAAIjB,CAAAA,CAHC,CAIdkB,IAJc,gBAIP,CACH,MAAO,CACHC,OAAO,CAAGR,CAAO,CAACQ,OADf,CAEHC,MAAM,CAAGT,CAAO,CAACS,MAFd,CAGHC,MAAM,CAAGV,CAAO,CAACU,MAHd,CAIHC,QAAQ,CAAGX,CAAO,CAACW,QAJhB,CAKHC,QAAQ,CAAGZ,CAAO,CAACY,QALhB,CAMHC,UAAU,CAAGb,CAAO,CAACc,cANlB,CAOHC,OAAO,GAPJ,CAQHC,MAAM,CAAG,EARN,CASHC,KAAK,CAAGjB,CAAO,CAACiB,KATb,CAWHC,OAAO,CAAElB,CAAO,CAACkB,OAXd,CAYHC,qBAAqB,CAAEnB,CAAO,CAACmB,qBAZ5B,CAaHC,mBAAmB,CAAEpB,CAAO,CAACoB,mBAb1B,CAcHC,yBAAyB,CAAErB,CAAO,CAACqB,yBAdhC,CAeHC,kBAAkB,CAAEtB,CAAO,CAACsB,kBAfzB,CAgBHC,gBAAgB,CAAE,EAhBf,CAiBHC,aAAa,CAAE,EAjBZ,CAkBHC,aAAa,CAAE,IAlBZ,CAmBHC,MAAM,CAAE,IAnBL,CAoBHC,uBAAuB,CAAE,EApBtB,CAqBHC,6BAA6B,CAAE,EArB5B,CAsBHC,iBAAiB,CAAE,EAtBhB,CAuBHC,uBAAuB,CAAE,EAvBtB,CAwBHC,sBAAsB,CAAE,EAxBrB,CAyBHC,gBAAgB,CAAE,EAzBf,CA0BHC,cAAc,GA1BX,CA4BHC,WAAW,CAAE,EA5BV,CA6BHC,YAAY,GA7BT,CA8BHC,UAAU,CAAG,EA9BV,CA+BHC,QAAQ,GA/BL,CAgCHC,aAAa,CAAEtC,CAAO,CAACQ,OAAR,CAAgB8B,aAhC5B,CAkCHC,WAAW,GAlCR,CAmCHC,aAAa,CAAE,EAnCZ,CAqCV,CA1Ca,CA2CdC,WA3Cc,uBA2CD,CACT,GAAI,KAAKvB,OAAL,CAAawB,QAAb,CAAsBC,MAA1B,CAAkC,CAC9B,KAAKC,uBAAL,GACA,KAAKrB,gBAAL,CAAwB,KAAKL,OAAL,CAAawB,QAAb,CAAsB,CAAtB,CAAxB,CACA,KAAKG,cAAL,CAAoB,KAAKtB,gBAAL,CAAsBuB,KAA1C,CACH,CACJ,CAjDa,CAkDdC,OAlDc,mBAkDL,CACLC,QAAQ,CAACC,aAAT,CAAuB,kBAAvB,EAA2CC,KAA3C,CAAiDC,OAAjD,CAA2D,MAA3D,CACAH,QAAQ,CAACC,aAAT,CAAuB,UAAvB,EAAmCC,KAAnC,CAAyCC,OAAzC,CAAmD,OACtD,CArDa,CAsDdC,QAAQ,CAAE,EAtDI,CAyDdC,OAAO,CAAG,CACNC,gBADM,4BACY,CACd,GAAIC,CAAAA,CAAQ,CAAG,CACD,CACVC,KAAK,CAAE,KAAKhD,OAAL,CAAaiD,kBADV,CAEVC,WAAW,CAAE,KAAKlD,OAAL,CAAamD,wBAFhB,CADC,CAAf,CAKA,MAAOJ,CAAAA,CACV,CARK,CAUNX,uBAVM,mCAUoB,IAClBgB,CAAAA,CAAW,CAAG,GAAIC,CAAAA,GADA,CAElBC,CAAS,CAAG,CAFM,CAGtB,KAAK5C,OAAL,CAAa6C,GAAb,CAAiBC,OAAjB,CAAyB,SAAAC,CAAE,CAAI,CAC3BH,CAAS,EAAUG,CAAE,CAACC,OAAtB,CACA,GAAI,CAACN,CAAW,CAACO,GAAZ,CAAgBL,CAAhB,CAAL,CAAiC,CAC7BF,CAAW,CAACQ,GAAZ,CAAgBN,CAAhB,CAA2B,CAACG,CAAD,CAA3B,CACH,CAFD,IAEO,CACHL,CAAW,CAACS,GAAZ,CAAgBP,CAAhB,EAA2BQ,IAA3B,CAAgCL,CAAhC,CACH,CACJ,CAPD,EAQA,KAAK/C,OAAL,CAAaqD,QAAb,CAAsBP,OAAtB,CAA8B,SAAAE,CAAO,CAAI,CACrCJ,CAAS,EAAUI,CAAO,CAACJ,SAA3B,CACAI,CAAO,CAACJ,SAAR,CAAoBA,CAApB,CACAI,CAAO,CAACM,OAAR,CAAmBZ,CAAW,CAACO,GAAZ,CAAgBL,CAAhB,CAAD,CAA+BF,CAAW,CAACS,GAAZ,CAAgBP,CAAhB,CAA/B,CAA4D,EACjF,CAJD,CAKH,CA1BK,CA4BNjB,cA5BM,yBA4BSC,CA5BT,CA4BgB,CAClB,GAAI2B,CAAAA,CAAc,CAAG,EAArB,CACA,KAAKvD,OAAL,CAAa4B,KAAb,CAAmBkB,OAAnB,CAA2B,SAAAU,CAAI,CAAI,CAC/B,GAAI5B,CAAK,CAAC6B,QAAN,CAAeD,CAAI,CAACE,EAApB,CAAJ,CAA6B,CACzBH,CAAc,CAACH,IAAf,CAAoBI,CAApB,CACH,CACJ,CAJD,EAKA,GAAID,CAAc,CAAC9B,MAAnB,CAA2B,CACvB,KAAKnB,aAAL,CAAqBiD,CAArB,CACA,GAAIC,CAAAA,CAAI,CAAG,KAAKlD,aAAL,CAAmB,CAAnB,CAAX,CACA,KAAKqD,WAAL,CAAiBH,CAAjB,CACH,CAJD,IAIO,CACH,KAAKlD,aAAL,CAAqB,EAArB,CACA,KAAKC,aAAL,CAAqB,IACxB,CACJ,CA3CK,CA6CNoD,WA7CM,sBA6CMH,CA7CN,CA6CY,CACd,KAAKjD,aAAL,CAAqBiD,CAArB,CACA,KAAKI,6BAAL,GACA,KAAKC,4BAAL,GACA,KAAKC,qBAAL,EACH,CAlDK,CAoDNF,6BApDM,yCAoD0B,YACxBhB,CAAS,CAAG,CADY,CACTzB,CAAQ,CAAG,CADF,CACK4C,CAAe,CAAG,CADvB,CAC0BC,CAAa,CAAG,CAD1C,CAExBV,CAAO,CAAG,EAFc,CAEVW,CAAW,CAAG,EAFJ,CAEQC,CAAS,CAAG,EAFpB,CAEwBC,CAAU,CAAG,EAFrC,CAGxBC,CAHwB,CAI5B,KAAKpE,OAAL,CAAaqE,KAAb,CAAmBvB,OAAnB,CAA2B,SAAAwB,CAAI,CAAI,CAC/BP,CAAe,CAAG,CAAlB,CAAqBC,CAAa,CAAG,CAArC,CACAM,CAAI,CAACjB,QAAL,CAAcP,OAAd,CAAsB,SAAAE,CAAO,CAAI,CAC7BJ,CAAS,EAAUI,CAAO,CAACJ,SAA3B,CACAI,CAAO,CAACJ,SAAR,CAAoBA,CAApB,CAEAU,CAAO,CAAG,CAAI,CAACiB,gBAAL,CAAsB3B,CAAtB,CAAV,CACAU,CAAO,CAACR,OAAR,CAAgB,SAAA0B,CAAM,CAAI,CACtBrD,CAAQ,EAAUqD,CAAM,CAACd,EAAzB,CACAc,CAAM,CAACd,EAAP,CAAYvC,CAAZ,CAEAiD,CAAO,CAAG,CAAI,CAAC7D,aAAL,CAAmBsC,GAAnB,CAAuBS,OAAvB,aAAoCkB,CAAM,CAACd,EAA3C,EAAV,CACA,GAAIU,CAAJ,CAAa,CACRA,CAAO,CAACK,QAAT,EAAsBV,CAAe,EAArC,CACCK,CAAO,CAACM,MAAT,EAAoBV,CAAa,EACpC,CACJ,CATD,CAUH,CAfD,EAgBAC,CAAW,CAACb,IAAZ,CAAiBW,CAAjB,EACAG,CAAS,CAACd,IAAV,CAAeY,CAAf,EACAG,CAAU,CAACf,IAAX,WAAmBkB,CAAI,CAACK,IAAxB,aAAiCL,CAAI,CAACM,QAAL,CAAgB,CAAjD,EACH,CArBD,EAsBA,KAAKlE,6BAAL,CAAqCyD,CAArC,CACA,KAAK1D,uBAAL,CAA+B,CAC3B,CAAEkE,IAAI,CAAE,KAAKrF,OAAL,CAAauF,kCAArB,CAAyDxF,IAAI,CAAE6E,CAA/D,CAD2B,CAE3B,CAAES,IAAI,CAAE,KAAKrF,OAAL,CAAawF,oCAArB,CAA2DzF,IAAI,CAAE4E,CAAjE,CAF2B,CAIlC,CAnFK,CAqFNJ,4BArFM,wCAqFyB,IACvBkB,CAAAA,CAAa,CAAG,EADO,CACHC,CAAS,CAAG,EADT,CAEvBC,CAAO,CAAG,CAFa,CAEVC,CAAW,CAAG,CAFJ,CAEOC,CAAI,CAAG,CAFd,CAEiBC,CAAS,CAAG,CAF7B,CAG3B,KAAK7E,aAAL,CAAmB8E,QAAnB,CAA4BvC,OAA5B,CAAoC,SAAAwC,CAAO,CAAI,CAC3CF,CAAS,CAA2B,GAAxB,EAAOE,CAAO,CAACC,KAA3B,CACAJ,CAAI,CAAG,CAAQG,CAAO,CAACE,QAAhB,CAA6B,EAApC,CACAP,CAAO,EAAIE,CAAX,CACAD,CAAW,GACXH,CAAa,CAAC3B,IAAd,CAAmB,CAAEqC,CAAC,CAAEL,CAAL,CAAgBM,CAAC,CAAER,CAAnB,CAAnB,EACAF,CAAS,CAAC5B,IAAV,CAAe,CAAEqC,CAAC,CAAEL,CAAL,CAAgBM,CAAC,CAAET,CAAnB,CAAf,CACH,CAPD,EAQA,KAAKrE,uBAAL,CAA+B,CAC3B,CAAE+D,IAAI,CAAE,KAAKrF,OAAL,CAAaqG,gCAArB,CAAuDC,KAAK,CAAE,CAA9D,CAAiEvG,IAAI,CAAE0F,CAAvE,CAD2B,CAE3B,CAAEJ,IAAI,CAAE,KAAKrF,OAAL,CAAauG,gCAArB,CAAuDD,KAAK,CAAE,CAA9D,CAAiEvG,IAAI,CAAE2F,CAAvE,CAF2B,CAIlC,CApGK,CAsGNlB,qBAtGM,iCAsGkB,IAChBK,CAAAA,CAAU,CAAG,EADG,CACC2B,CAAa,CAAG,EADjB,CACqBC,CAAW,CAAG,EADnC,CAEhBC,CAAU,CAAG,CAFG,CAEAC,CAAS,CAAG,KAAK1F,aAAL,CAAmB2F,SAF/B,CAGpB,GAAI,KAAK3F,aAAL,CAAmB4F,UAAvB,CAAmC,CAC/B,KAAK5F,aAAL,CAAmB4F,UAAnB,CAA8BrD,OAA9B,CAAsC,SAAAsD,CAAI,CAAI,CAC1CJ,CAAU,CAA8B,GAA1B,EAAOI,CAAI,CAACC,UAAb,EAAyCD,CAAI,CAACE,QAA3D,CACAnC,CAAU,CAACf,IAAX,CAAgBgD,CAAI,CAACG,QAArB,EACAT,CAAa,CAAC1C,IAAd,CAAmBgD,CAAI,CAACI,kBAAxB,EACAT,CAAW,CAAC3C,IAAZ,CAAiB4C,CAAjB,CACH,CALD,EAMA,KAAKlF,gBAAL,CAAwB,CACpB,CAAE6D,IAAI,CAAEsB,CAAR,CAAmB5G,IAAI,CAAE0G,CAAzB,CADoB,CAEpB,CAAEpB,IAAI,CAAE,KAAKrF,OAAL,CAAamH,wBAArB,CAA+CpH,IAAI,CAAEyG,CAArD,CAFoB,CAAxB,CAIA,KAAKjF,sBAAL,CAA8BsD,CACjC,CACJ,CAtHK,CAwHNuC,0BAxHM,sCAwHuB,CACzB,GAAIC,CAAAA,CAAK,GAAT,CACAA,CAAK,CAACA,KAAN,CAAc,CACVC,IAAI,CAAE,KADI,CAEVC,eAAe,CAAE,IAFP,CAGV7E,KAAK,CAAE,CAAC8E,UAAU,CAAE,SAAb,CAHG,CAAd,CAKAH,CAAK,CAACrE,KAAN,CAAc,CAAEyE,IAAI,CAAE,IAAR,CAAd,CACAJ,CAAK,CAACK,MAAN,CAAe,KAAK/G,qBAApB,CACA0G,CAAK,CAACM,KAAN,CAAc,CACVL,IAAI,CAAE,UADI,CAAd,CAGAD,CAAK,CAACf,KAAN,CAAc,CACVsB,aAAa,GADH,CAEV5E,KAAK,CAAE,CACH6E,OAAO,GADJ,CAEHJ,IAAI,CAAE,KAAKzH,OAAL,CAAa8H,cAFhB,CAFG,CAAd,CAOAT,CAAK,CAACU,OAAN,CAAgB,CACZC,MAAM,GADM,CAEZC,SAAS,CAAE,oBAAY,CACnB,GAAIC,CAAAA,CAAW,CAAc,CAAV,OAAK9B,CAAN,CAAgBzG,CAAG,CAACK,OAAJ,CAAYmI,YAA5B,CAA2CxI,CAAG,CAACK,OAAJ,CAAYoI,aAAzE,CACA,MAAO,MAAQ,KAAKC,MAAL,CAAY,CAAZ,EAAeC,GAAvB,CAA6B,QAA7B,CAAwC,KAAKlC,CAA7C,CAAiD,GAAjD,CAAuD8B,CAAvD,YACMvI,CAAG,CAACK,OAAJ,CAAYuI,eADlB,CACoC,MAC9C,CANW,CAAhB,CAQAlB,CAAK,CAACmB,WAAN,CAAoB,CAChBC,MAAM,CAAE,CACJC,MAAM,CAAE,SADJ,CAEAC,KAAK,CAAE,CACPC,MAAM,CAAE,CACJC,KAAK,CAAE,gBAAY,CACflJ,CAAG,CAACmJ,kBAAJ,CAAuB,KAAK3C,CAA5B,CACH,CAHG,CADD,CAFP,CADQ,CAApB,CAYAkB,CAAK,CAAC0B,MAAN,CAAe,CACXlB,OAAO,GADI,CAZf,CAeAR,CAAK,CAACoB,MAAN,CAAe,CAAC,CACZO,YAAY,GADA,CAEZjJ,IAAI,CAAE,CACF,CAACsF,IAAI,CAAE,KAAKrF,OAAL,CAAauF,kCAApB,CAAwDa,CAAC,CAAE,KAAKnF,aAAL,CAAmBsC,GAAnB,CAAuB6B,MAAlF,CADE,CAEF,CAACC,IAAI,CAAE,KAAKrF,OAAL,CAAawF,oCAApB,CAA0DY,CAAC,CAAE,KAAKnF,aAAL,CAAmBsC,GAAnB,CAAuB4B,QAApF,CAFE,CAGF,CAACE,IAAI,CAAE,KAAKrF,OAAL,CAAaiJ,iCAApB,CAAuD7C,CAAC,CAAE,KAAKnF,aAAL,CAAmBsC,GAAnB,CAAuB2F,KAAjF,CAHE,CAFM,CAAD,CAAf,CAQA,MAAO7B,CAAAA,CACV,CA3KK,CA6KN8B,wBA7KM,oCA6KqB,CACvB,GAAI9B,CAAAA,CAAK,GAAT,CACAA,CAAK,CAACA,KAAN,CAAc,CACVC,IAAI,CAAE,QADI,CAEVC,eAAe,CAAE,IAFP,CAGV7E,KAAK,CAAE,CAAC8E,UAAU,CAAE,SAAb,CAHG,CAAd,CAKAH,CAAK,CAACrE,KAAN,CAAc,CAACyE,IAAI,CAAE,IAAP,CAAd,CACAJ,CAAK,CAACK,MAAN,CAAe,KAAK9G,mBAApB,CACAyG,CAAK,CAACM,KAAN,CAAc,CACV9C,UAAU,CAAE,KAAKzD,6BADP,CAEV4B,KAAK,CAAE,CACHyE,IAAI,CAAE,IADH,CAFG,CAKV2B,SAAS,GALC,CAAd,CAOA/B,CAAK,CAACf,KAAN,CAAc,CACVsB,aAAa,GADH,CAEV5E,KAAK,CAAE,CACHyE,IAAI,CAAE,KAAKzH,OAAL,CAAa8H,cADhB,CAFG,CAAd,CAMAT,CAAK,CAACU,OAAN,CAAgB,CACZC,MAAM,GADM,CAEZqB,OAAO,GAFK,CAGZpB,SAAS,CAAE,oBAAY,CACnB,GAAIqB,CAAAA,CAAK,CAAG,EAAZ,CAAgBC,CAAK,CAAG,EAAxB,CACA,GAAI,KAAKlB,MAAL,CAAY,CAAZ,CAAJ,CAAoB,IACZmB,CAAAA,CAAkB,CAAwB,CAApB,OAAKnB,MAAL,CAAY,CAAZ,EAAejC,CAAhB,CAA0BzG,CAAG,CAACK,OAAJ,CAAYmI,YAAtC,CAAqDxI,CAAG,CAACK,OAAJ,CAAYoI,aAD1E,CAEZqB,CAAkB,CAAG,KAAKpB,MAAL,CAAY,CAAZ,EAAeI,MAAf,CAAsBpD,IAF/B,CAGhBiE,CAAK,6BAAuB,KAAKjB,MAAL,CAAY,CAAZ,EAAeqB,KAAtC,eAAgDD,CAAhD,gEACK,KAAKpB,MAAL,CAAY,CAAZ,EAAejC,CADpB,aACyBoD,CADzB,SAER,CACD,GAAI,KAAKnB,MAAL,CAAY,CAAZ,CAAJ,CAAoB,IACZsB,CAAAA,CAAqB,CAAwB,CAApB,OAAKtB,MAAL,CAAY,CAAZ,EAAejC,CAAhB,CAA0BzG,CAAG,CAACK,OAAJ,CAAYmI,YAAtC,CAAqDxI,CAAG,CAACK,OAAJ,CAAYoI,aAD7E,CAEZwB,CAAqB,CAAG,KAAKvB,MAAL,CAAY,CAAZ,EAAeI,MAAf,CAAsBpD,IAFlC,CAGhBkE,CAAK,6BAAuB,KAAKlB,MAAL,CAAY,CAAZ,EAAeqB,KAAtC,eAAgDE,CAAhD,gEACK,KAAKvB,MAAL,CAAY,CAAZ,EAAejC,CADpB,aACyBuD,CADzB,SAER,CACD,gBAAU,KAAKxD,CAAf,mBAA0BmD,CAA1B,SAAkCC,CAAlC,gBAA8C5J,CAAG,CAACK,OAAJ,CAAYuI,eAA1D,QACH,CAlBW,CAAhB,CAoBAlB,CAAK,CAACmB,WAAN,CAAoB,CAChBC,MAAM,CAAE,CACJC,MAAM,CAAE,SADJ,CAEJC,KAAK,CAAE,CACHC,MAAM,CAAE,CACJC,KAAK,CAAE,gBAAY,CACflJ,CAAG,CAACmJ,kBAAJ,CAAuB,KAAKe,UAA5B,CAAwC,KAAK1D,CAA7C,CACH,CAHG,CADL,CAFH,CADQ,CAApB,CAYAkB,CAAK,CAACoB,MAAN,CAAe,KAAKtH,uBAApB,CACA,MAAOkG,CAAAA,CACV,CArOK,CAuONyC,8BAvOM,0CAuO2B,CAC7B,GAAIzC,CAAAA,CAAK,GAAT,CACAA,CAAK,CAACA,KAAN,CAAc,CACV0C,QAAQ,CAAE,GADA,CAEVxC,eAAe,CAAE,IAFP,CAGV7E,KAAK,CAAE,CAAC8E,UAAU,CAAE,SAAb,CAHG,CAAd,CAKAH,CAAK,CAACrE,KAAN,CAAc,CAACyE,IAAI,CAAE,IAAP,CAAd,CACAJ,CAAK,CAACK,MAAN,CAAe,KAAK7G,yBAApB,CACAwG,CAAK,CAACM,KAAN,CAAc,CACVL,IAAI,CAAE,UADI,CAAd,CAGAD,CAAK,CAACf,KAAN,CAAc,CAAC,CACXsB,aAAa,GADF,CAEX5E,KAAK,CAAE,CAAEyE,IAAI,CAAE,KAAKzH,OAAL,CAAagK,+BAArB,CAFI,CAAD,CAGX,CACChH,KAAK,CAAE,CAAEyE,IAAI,CAAE,KAAKzH,OAAL,CAAaiK,+BAArB,CADR,CAECC,QAAQ,GAFT,CAHW,CAAd,CAOA7C,CAAK,CAACU,OAAN,CAAgB,CACZC,MAAM,GADM,CAEZqB,OAAO,GAFK,CAGZpB,SAAS,CAAE,oBAAY,IACfkC,CAAAA,CAAU,CAAGxK,CAAG,CAACyK,8BAAJ,CAAmC,KAAKjE,CAAxC,CADE,CAEfmD,CAAK,CAAI,KAAKjB,MAAL,CAAY,CAAZ,CAAD,CAAmB1I,CAAG,CAAC0K,8BAAJ,CAAmC,KAAKhC,MAAL,CAAY,CAAZ,CAAnC,CAAnB,CAAwE,EAFjE,CAGfkB,CAAK,CAAI,KAAKlB,MAAL,CAAY,CAAZ,CAAD,CAAmB1I,CAAG,CAAC0K,8BAAJ,CAAmC,KAAKhC,MAAL,CAAY,CAAZ,CAAnC,CAAnB,CAAwE,EAHjE,CAInB,uBAAiB8B,CAAjB,yBAA2Cb,CAA3C,SAAmDC,CAAnD,CACH,CARW,CAAhB,CAUAlC,CAAK,CAACoB,MAAN,CAAe,KAAKnH,uBAApB,CACA,MAAO+F,CAAAA,CACV,CAtQK,CAwQNiD,uBAxQM,mCAwQoB,CACtB,GAAIjD,CAAAA,CAAK,GAAT,CACAA,CAAK,CAACA,KAAN,CAAc,CACVC,IAAI,CAAE,QADI,CAEVC,eAAe,CAAE,IAFP,CAGV7E,KAAK,CAAE,CAAC8E,UAAU,CAAE,SAAb,CAHG,CAAd,CAKAH,CAAK,CAACrE,KAAN,CAAc,CAACyE,IAAI,CAAE,IAAP,CAAd,CACAJ,CAAK,CAACK,MAAN,CAAe,KAAK5G,kBAApB,CACAuG,CAAK,CAACM,KAAN,CAAc,CACVyB,SAAS,GADC,CAEVvE,UAAU,CAAE,KAAKtD,sBAFP,CAAd,CAIA8F,CAAK,CAACf,KAAN,CAAc,CACVsB,aAAa,GADH,CAEV2C,GAAG,CAAE,GAFK,CAGVC,MAAM,CAAE,CACJC,MAAM,CAAE,WADJ,CAHE,CAMVzH,KAAK,CAAE,CAAEyE,IAAI,CAAE,KAAKzH,OAAL,CAAa0K,uBAArB,CANG,CAAd,CAQArD,CAAK,CAACU,OAAN,CAAgB,CACZC,MAAM,GADM,CAEZqB,OAAO,GAFK,CAGZpB,SAAS,CAAE,oBAAY,IACfhB,CAAAA,CAAQ,CAAG,KAAKd,CADD,CAEfb,CAAQ,CAAG,KAAK+C,MAAL,CAAY,CAAZ,EAAeM,KAAf,CAAqBxC,CAFjB,CAGfW,CAAI,CAAGnH,CAAG,CAACsB,aAAJ,CAAkB4F,UAAlB,CAA6BvB,CAA7B,CAHQ,CAIfqF,CAAM,kBAAa1D,CAAb,iBAJS,CAKf2D,CAAM,eAAUjL,CAAG,CAACK,OAAJ,CAAY6K,+BAAtB,cALS,CAMfC,CAAI,CAAG,EANQ,CAOnB,GAAuB,CAAnB,EAAAhE,CAAI,CAACiE,UAAT,CAA0B,CACtBD,CAAI,CAAGnL,CAAG,CAACK,OAAJ,CAAYgL,mCACtB,CAFD,IAEO,IACC1B,CAAAA,CAAK,CAAI,KAAKjB,MAAL,CAAY,CAAZ,CAAD,CAAmB1I,CAAG,CAACsL,uBAAJ,CAA4B,KAAK5C,MAAL,CAAY,CAAZ,CAA5B,CAA4CvB,CAA5C,CAAnB,CAAuE,EADhF,CAECyC,CAAK,CAAI,KAAKlB,MAAL,CAAY,CAAZ,CAAD,CAAmB1I,CAAG,CAACsL,uBAAJ,CAA4B,KAAK5C,MAAL,CAAY,CAAZ,CAA5B,CAA4CvB,CAA5C,CAAnB,CAAuE,EAFhF,CAGHgE,CAAI,WAAMxB,CAAN,SAAcC,CAAd,SAAsBqB,CAAtB,CACP,CACD,gBAAUD,CAAV,SAAmBG,CAAnB,CACH,CAlBW,CAAhB,CAoBAzD,CAAK,CAACmB,WAAN,CAAoB,CAChBC,MAAM,CAAE,CACJC,MAAM,CAAE,SADJ,CAEJC,KAAK,CAAE,CACHC,MAAM,CAAE,CACJC,KAAK,CAAE,gBAAY,IACXvD,CAAAA,CAAQ,CAAG,KAAKa,CADL,CAEXW,CAAI,CAAGnH,CAAG,CAACsB,aAAJ,CAAkB4F,UAAlB,CAA6BvB,CAA7B,CAFI,CAGX4F,CAAG,WAAMC,CAAC,CAACC,GAAF,CAAMC,OAAZ,iBAA2BvE,CAAI,CAACwE,UAAhC,yBAA0DxE,CAAI,CAACyE,cAA/D,CAHQ,CAIfC,MAAM,CAACC,IAAP,CAAYP,CAAZ,CAAiB,QAAjB,CACH,CANG,CADL,CAFH,CADQ,CAApB,CAeA7D,CAAK,CAACoB,MAAN,CAAe,KAAKjH,gBAApB,CACA,MAAO6F,CAAAA,CACV,CAlUK,CAoUNgD,8BApUM,yCAoU0B1B,CApU1B,CAoUiC,CACnC,GAAIlB,CAAAA,CAAI,CAAG,EAAX,CAAe1B,CAAf,CAAyB2F,CAAzB,CAA0CC,CAA1C,CAA2DC,CAA3D,CAAwE/F,CAAxE,CACA,GAAwB,CAApB,EAAA8C,CAAK,CAACkB,UAAV,CAA2B,CACvB9D,CAAQ,CAAG4C,CAAK,CAACvC,CAAjB,CACAsF,CAAe,CAAgB,CAAZ,EAAA3F,CAAD,CAAkBpG,CAAG,CAACK,OAAJ,CAAY6L,YAA9B,CAA6ClM,CAAG,CAACK,OAAJ,CAAY8L,aAA3E,CACAH,CAAe,CAAGhD,CAAK,CAACF,MAAN,CAAapD,IAA/B,CACAoC,CAAI,6BAAuBkB,CAAK,CAACe,KAA7B,eAAuCiC,CAAvC,yDACO5F,CADP,aACmB2F,CADnB,SAEP,CAND,IAMO,CACHE,CAAW,CAAGjD,CAAK,CAACF,MAAN,CAAapD,IAA3B,CACAQ,CAAI,CAAG,KAAKkG,YAAL,CAA4B,EAAV,CAAApD,CAAK,CAACvC,CAAxB,CAAP,CACAqB,CAAI,6BAAuBkB,CAAK,CAACe,KAA7B,eAAuCkC,CAAvC,wDACM/F,CADN,SAEP,CACD,MAAO4B,CAAAA,CACV,CAnVK,CAqVNwD,uBArVM,kCAqVmBtC,CArVnB,CAqV0B7B,CArV1B,CAqVgC,IAC9BkF,CAAAA,CAAU,CAAGrD,CAAK,CAACF,MAAN,CAAapD,IADI,CACEqB,CAAU,CAAG,CADf,CAE9BK,CAAU,EAAUD,CAAI,CAACC,UAFK,CAEQkF,CAAO,EAAUnF,CAAI,CAACmF,OAF9B,CAEwCjF,CAAQ,EAAUF,CAAI,CAACE,QAF/D,CAGlCA,CAAQ,CAAG,KAAKkF,KAAL,CAAWlF,CAAX,EAAuBA,CAAvB,CAAkCA,CAAQ,CAACmF,OAAT,CAAiB,CAAjB,CAA7C,CACA,GAAwB,CAApB,EAAAxD,CAAK,CAACkB,UAAV,CAA2B,CACvBnD,CAAU,CAAG,KAAKwF,KAAL,CAAWnF,CAAX,EAAyBA,CAAzB,CAAsCA,CAAU,CAACoF,OAAX,CAAmB,CAAnB,CACtD,CAFD,IAEO,CACHzF,CAAU,CAAG,KAAKwF,KAAL,CAAWD,CAAX,EAAsBA,CAAtB,CAAgCA,CAAO,CAACE,OAAR,CAAgB,CAAhB,CAChD,CACD,kCAA2BxD,CAAK,CAACe,KAAjC,eAA2CsC,CAA3C,yDACetF,CADf,aAC6BM,CAD7B,SAEH,CAhWK,CAkWNoD,8BAlWM,yCAkWyBtE,CAlWzB,CAkWoC,CACtC,GAAIsG,CAAAA,CAAJ,CAASC,CAAT,CAAkBC,CAAlB,CAA4BC,CAA5B,CAAmC1G,CAAnC,CACA,GAAI9G,CAAM,CAACyN,EAAP,CAAUC,IAAV,CAAe,KAAKrM,QAApB,CAAJ,CAAmC,CAC/BgM,CAAG,CAAGrN,CAAM,CAAC+G,CAAD,CAAN,CAAkB0G,EAAlB,CAAqB,KAAKpM,QAA1B,CAAN,CACAiM,CAAO,CAAGD,CAAG,CAACM,GAAJ,EAAV,CACAJ,CAAQ,CAAGF,CAAG,CAACO,IAAJ,EAAX,CACAJ,CAAK,CAAGH,CAAG,CAACG,KAAJ,EAAR,CACA1G,CAAI,CAAGuG,CAAG,CAAC3B,MAAJ,CAAW,UAAX,CACV,CAND,IAMO,CACH,GAAI+B,CAAAA,CAAE,CAAGI,IAAI,CAACC,cAAL,GAAsBC,eAAtB,GAAwCC,QAAjD,CACAX,CAAG,CAAI,GAAIY,CAAAA,IAAJ,CAASlH,CAAT,CAAP,CACAuG,CAAO,CAAGD,CAAG,CAACa,MAAJ,EAAV,CACAX,CAAQ,CAAGF,CAAG,CAACc,OAAJ,EAAX,CACAX,CAAK,CAAGH,CAAG,CAACe,QAAJ,EAAR,CACAtH,CAAI,WAAMuG,CAAG,CAACgB,QAAJ,EAAN,aAAwBhB,CAAG,CAACiB,UAAJ,EAAxB,aAA4CjB,CAAG,CAACkB,UAAJ,EAA5C,cAAiEd,CAAjE,KACP,CACDH,CAAO,CAAG,KAAKrM,OAAL,CAAaqH,KAAb,CAAmBkG,QAAnB,CAA4BlB,CAA5B,CAAV,CACAE,CAAK,CAAG,KAAKvM,OAAL,CAAaqH,KAAb,CAAmBmG,WAAnB,CAA+BjB,CAA/B,CAAR,CACA,gBAAUF,CAAV,cAAsBE,CAAtB,aAA+BD,CAA/B,cAA4CzG,CAA5C,CACH,CArXK,CAuXNkG,YAvXM,uBAuXOlG,CAvXP,CAuXa,CACfA,CAAI,EAAI,EAAR,CADe,GAEX4H,CAAAA,CAAC,CAAG,KAAKzN,OAAL,CAAa0N,WAFN,CAGXC,CAAC,CAAG,KAAK3N,OAAL,CAAa4N,aAHN,CAIXC,CAAC,CAAG,KAAK7N,OAAL,CAAa8N,aAJN,CAKXC,CAAK,CAAGC,IAAI,CAACC,KAAL,CAAWpI,CAAI,CAAG,IAAlB,CALG,CAMXqI,CAAO,CAAGF,IAAI,CAACC,KAAL,CAAYpI,CAAI,CAAG,IAAR,CAAgB,EAA3B,CANC,CAOXsI,CAAO,CAAGH,IAAI,CAACC,KAAL,CAAWpI,CAAI,CAAG,EAAlB,CAPC,CAQX4B,CARW,CASf,GAAa,CAAT,EAAAsG,CAAJ,CAAgB,CACZ,GAAe,CAAX,EAAAG,CAAJ,CAAkB,CACdzG,CAAI,WAAMsG,CAAN,SAAcN,CAAd,aAAmBS,CAAnB,SAA6BP,CAA7B,CACP,CAFD,IAEO,CACHlG,CAAI,WAAMsG,CAAN,SAAcN,CAAd,CACP,CACJ,CAND,IAMO,IAAgB,CAAX,EAAAS,CAAL,CAAoB,CACvB,GAAe,CAAX,EAAAC,CAAJ,CAAkB,CACd1G,CAAI,WAAMyG,CAAN,SAAgBP,CAAhB,aAAqBQ,CAArB,SAA+BN,CAA/B,CACP,CAFD,IAEO,CACHpG,CAAI,WAAMyG,CAAN,SAAgBP,CAAhB,CACP,CACJ,CANM,IAMA,CACHlG,CAAI,WAAM0G,CAAN,SAAgBN,CAAhB,CACP,CACD,MAAOpG,CAAAA,CACV,CAhZK,CAkZNqB,kBAlZM,6BAkZaxB,CAlZb,CAkZmB8G,CAlZnB,CAkZgC,YAC9BrK,CAAQ,CAAG,KAAKrD,OAAL,CAAaqD,QADM,CAElC,GAAIsK,MAAM,CAACC,SAAP,CAAiBF,CAAjB,CAAJ,CAAoC,CAChCrK,CAAQ,CAAG,EAAX,CADgC,GAE5BL,CAAAA,CAF4B,CAG5BsB,CAAI,CAAG,KAAKtE,OAAL,CAAaqE,KAAb,CAAmBqJ,CAAnB,CAHqB,CAIhCpJ,CAAI,CAACjB,QAAL,CAAcP,OAAd,CAAsB,SAAAsD,CAAI,CAAI,CAC1BpD,CAAO,CAAG,CACNJ,SAAS,CAAEwD,CAAI,CAACxD,SADV,CAEN+B,IAAI,CAAEyB,CAAI,CAACzB,IAFL,CAGNrB,OAAO,CAAE,CAAI,CAACiB,gBAAL,CAAsB6B,CAAI,CAACxD,SAA3B,CAHH,CAAV,CAKAS,CAAQ,CAACD,IAAT,CAAcJ,CAAd,CACH,CAPD,CAQH,CACDK,CAAQ,CAACP,OAAT,CAAiB,SAAAE,CAAO,CAAI,CACxBA,CAAO,CAACM,OAAR,CAAgBR,OAAhB,CAAwB,SAAA0B,CAAM,CAAI,CAC9BA,CAAM,CAACC,QAAP,IACAD,CAAM,CAACE,MAAP,IACAF,CAAM,CAACqJ,YAAP,CAAsB,CAAtB,CACA,GAAIzJ,CAAAA,CAAO,CAAG,CAAI,CAAC7D,aAAL,CAAmBsC,GAAnB,CAAuBS,OAAvB,aAAoCkB,CAAM,CAACd,EAA3C,EAAd,CACA,GAAIU,CAAJ,CAAa,CACTI,CAAM,CAACC,QAAP,CAAkBL,CAAO,CAACK,QAA1B,CACAD,CAAM,CAACE,MAAP,CAAgBN,CAAO,CAACM,MAAxB,CACAF,CAAM,CAACqJ,YAAP,CAAsBzJ,CAAO,CAACyJ,YACjC,CACJ,CAVD,CAWH,CAZD,EAcA,KAAKlN,iBAAL,CAAyB0C,CAAzB,CACA,KAAKtC,cAAL,GACH,CAjbK,CAmbNwD,gBAnbM,2BAmbW3B,CAnbX,CAmbsB,CAGxB,OAFIU,CAAAA,CAAO,CAAG,EAEd,CADID,CAAQ,CAAG,KAAKrD,OAAL,CAAaqD,QAC5B,CAASyK,CAAC,CAAG,CAAb,CAAgBA,CAAC,CAAGzK,CAAQ,CAAC5B,MAA7B,CAAqCqM,CAAC,EAAtC,CAA0C,CACtC,GAAIzK,CAAQ,CAACyK,CAAD,CAAR,CAAYlL,SAAZ,EAAyBA,CAA7B,CAAwC,CACpC,GAAIS,CAAQ,CAACyK,CAAD,CAAR,CAAYxK,OAAhB,CAAyB,CACrBA,CAAO,CAAGD,CAAQ,CAACyK,CAAD,CAAR,CAAYxK,OACzB,CACD,KACH,CACJ,CACD,MAAOA,CAAAA,CACV,CA/bK,CAicNyK,eAjcM,0BAicU5M,CAjcV,CAicoB,CAGtB,OAFIqD,CAAAA,CAEJ,CADI3B,CAAG,CAAG,KAAKtC,aAAL,CAAmBsC,GAAnB,CAAuBS,OACjC,CAASwK,CAAC,CAAG,CAAb,CAAgBA,CAAC,CAAGjL,CAAG,CAACpB,MAAxB,CAAgCqM,CAAC,EAAjC,CAAqC,CACjCjL,CAAG,CAACiL,CAAD,CAAH,CAAOpK,EAAP,EAAmBb,CAAG,CAACiL,CAAD,CAAH,CAAOpK,EAA1B,CACA,GAAIb,CAAG,CAACiL,CAAD,CAAH,CAAOpK,EAAP,EAAavC,CAAjB,CAA2B,CACvBqD,CAAM,CAAG3B,CAAG,CAACiL,CAAD,CAAZ,CACA,KACH,CACJ,CACD,MAAOtJ,CAAAA,CACV,CA5cK,CA8cNwJ,aA9cM,yBA8cS,CACX,GAAIC,CAAAA,CAAO,CAAG,CACV,CAAElH,IAAI,CAAE,EAAR,CAAYmH,KAAK,CAAG,IAApB,CAA0BC,KAAK,CAAG,QAAlC,CAA4CC,QAAQ,GAApD,CADU,CAEV,CAAErH,IAAI,CAAE,KAAKzH,OAAL,CAAa+O,UAArB,CAAkCH,KAAK,CAAG,WAA1C,CAFU,CAGV,CAAEnH,IAAI,CAAE,KAAKzH,OAAL,CAAagP,cAArB,CAAsCJ,KAAK,CAAG,UAA9C,CAHU,CAIV,CAAEnH,IAAI,CAAE,KAAKzH,OAAL,CAAaiP,cAArB,CAAsCL,KAAK,CAAG,qBAA9C,CAJU,CAAd,CAMA,MAAOD,CAAAA,CACV,CAtdK,CAwdNO,eAxdM,0BAwdUhP,CAxdV,CAwdiB,CACnB,gBAAUiL,CAAC,CAACC,GAAF,CAAMC,OAAhB,gCAA8CnL,CAA9C,WACH,CA1dK,CA4dNiP,iBA5dM,6BA4da,CACf,gBAAU,KAAKlO,aAAL,CAAmB2F,SAA7B,aAA0C,KAAK3F,aAAL,CAAmBmO,QAA7D,CACH,CA9dK,CAgeNC,YAheM,wBAgeQ,CACV,iBAAW,KAAKpO,aAAL,CAAmBqO,QAA9B,CACH,CAleK,CAoeNC,WApeM,uBAoeS,IACPnL,CAAAA,CAAE,CAAG,KAAKnD,aAAL,CAAmBmD,EADjB,CAEP8G,CAAG,CAAGC,CAAC,CAACC,GAAF,CAAMC,OAAN,CAAgB,oBAAhB,CAAqCjH,CAArC,CAAwC,UAAxC,CAAmDzE,CAAG,CAACQ,QAFtD,CAGXqL,MAAM,CAACC,IAAP,CAAYP,CAAZ,CACH,CAxeK,CA0eNsE,oBA1eM,gCA0egB,IACdrH,CAAAA,CAAY,CAAG,KAAKnI,OAAL,CAAaoI,aADd,CAEdqH,CAAc,CAAG,KAAKzP,OAAL,CAAa0P,eAFhB,CAGlB,GAAuC,CAAnC,OAAKzO,aAAL,CAAmBsC,GAAnB,CAAuB4B,QAA3B,CAA0C,CACtCgD,CAAY,CAAG,KAAKnI,OAAL,CAAamI,YAA5B,CACAsH,CAAc,CAAG,KAAKzP,OAAL,CAAayP,cACjC,CACD,gBAAU,KAAKxO,aAAL,CAAmBsC,GAAnB,CAAuB4B,QAAjC,aAA6CgD,CAA7C,aAA6DsH,CAA7D,aAA+E,KAAKzP,OAAL,CAAa2P,WAA5F,aAA2G,KAAKjP,OAAL,CAAakP,SAAxH,CACH,CAlfK,CAofNC,uBApfM,mCAofoB,CACtB,gBAAU,KAAK5O,aAAL,CAAmB6O,mBAA7B,MACH,CAtfK,CAwfNC,iBAxfM,6BAwfc,CAChB,GAAIC,CAAAA,CAAK,CAAG,KAAK/O,aAAL,CAAmBgP,WAA/B,CACAD,CAAK,CAACjJ,UAAN,EAA0BiJ,CAAK,CAACjJ,UAAhC,CACAiJ,CAAK,CAACE,QAAN,EAAwBF,CAAK,CAACE,QAA9B,CAHgB,GAIZC,CAAAA,CAAa,CAAG,KAAKjE,KAAL,CAAW8D,CAAK,CAACjJ,UAAjB,EAA+BiJ,CAAK,CAACjJ,UAArC,CAAkDiJ,CAAK,CAACjJ,UAAN,CAAiBoF,OAAjB,CAAyB,CAAzB,CAJtD,CAKZiE,CAAS,CAAG,KAAKlE,KAAL,CAAW8D,CAAK,CAACE,QAAjB,EAA6BF,CAAK,CAACE,QAAnC,CAA8CF,CAAK,CAACE,QAAN,CAAe/D,OAAf,CAAuB,CAAvB,CAL9C,CAMhB,gBAAUgE,CAAV,aAA2BC,CAA3B,CACH,CA/fK,CAigBNC,sBAjgBM,kCAigBmB,CACrB,gBAAU,KAAKrQ,OAAL,CAAasQ,iBAAvB,aAA4C,KAAKrP,aAAL,CAAmB2F,SAA/D,CACH,CAngBK,CAqgBN2J,QArgBM,mBAqgBGjJ,CArgBH,CAqgBS,CACX,KAAKtH,OAAL,CAAa8B,aAAb,CAA2B0O,OAA3B,CAAqC,KAAKxQ,OAAL,CAAa8B,aAAb,CAA2B2O,cAAhE,CACA,KAAK7O,UAAL,CAAkB,QAAlB,CACA,KAAKC,QAAL,CAAgB,KAAK1B,QAArB,CACA,GAAY,CAAR,EAAAmH,CAAJ,CAAe,CACX,KAAK5F,WAAL,CAAmB,CAAC,KAAKT,aAAN,CAAnB,CACA,KAAKU,YAAL,GACH,CAHD,IAGO,IAAY,CAAR,EAAA2F,CAAJ,CAAe,CAClB,KAAK5F,WAAL,CAAmB,KAAKV,aAAxB,CACA,KAAKW,YAAL,GACH,CACJ,CAhhBK,CAkhBN+O,mBAlhBM,8BAkhBe9B,CAlhBf,CAkhBsB,CACxB,KAAKjN,YAAL,CAAoBiN,CACvB,CAphBK,CAshBN+B,qBAthBM,gCAshBiB/B,CAthBjB,CAshBwB,CAC1B,KAAKnN,cAAL,CAAsBmN,CACzB,CAxhBK,CA0hBN1C,KA1hBM,gBA0hBA0E,CA1hBA,CA0hBG,CACL,MAAiB,EAAV,EAAAA,CAAC,CAAG,CACd,CA5hBK,CA8hBNC,qBA9hBM,iCA8hBiB,YACnB,KAAKtQ,OAAL,IACA,KAAKC,MAAL,CAAc,EAAd,CACA,GAAIT,CAAAA,CAAI,CAAG,CACP+Q,MAAM,CAAG,aADF,CAEP5Q,MAAM,CAAG,KAAKA,MAFP,CAGPC,QAAQ,CAAG,KAAKA,QAHT,CAIP4Q,OAAO,CAAG,KAAK1Q,UAJR,CAAX,CAMAvB,CAAK,CAAC,CACFkS,MAAM,CAAC,KADL,CAEF9F,GAAG,CAAEC,CAAC,CAACC,GAAF,CAAMC,OAAN,CAAgB,8BAFnB,CAGF4F,MAAM,CAAGlR,CAHP,CAAD,CAAL,CAIGmR,IAJH,CAIQ,SAACC,CAAD,CAAc,CAClB,GAAuB,GAAnB,EAAAA,CAAQ,CAACC,MAAT,EAA0BD,CAAQ,CAACpR,IAAT,CAAcsR,EAA5C,CAAgD,CAC5CC,QAAQ,CAACC,MAAT,EACH,CAFD,IAEO,CACH,CAAI,CAACC,cAAL,CAAoB1N,IAApB,CAAyB,CAAI,CAAC9D,OAAL,CAAayR,aAAtC,CACH,CACJ,CAVD,EAUGC,KAVH,CAUS,UAAO,CACZ,CAAI,CAAClR,MAAL,CAAYsD,IAAZ,CAAiB,CAAI,CAAC9D,OAAL,CAAa2R,iBAA9B,CACH,CAZD,EAYGC,OAZH,CAYW,UAAM,CACb,CAAI,CAACrR,OAAL,GACH,CAdD,EAeA,MAAO,MAAKR,IACf,CAvjBK,CAyjBN8R,eAzjBM,0BAyjBUxK,CAzjBV,CAyjBiB,CACnB,GAAItE,CAAAA,CAAQ,CAAG,EAAf,CACA,GAAa,gBAAT,EAAAsE,CAAJ,CAA+B,CAC3BtE,CAAQ,CAACe,IAAT,CAAc,CACVd,KAAK,CAAE,KAAKhD,OAAL,CAAa8R,yBADV,CAEV5O,WAAW,CAAE,KAAKlD,OAAL,CAAa+R,kCAFhB,CAAd,EAIAhP,CAAQ,CAACe,IAAT,CAAc,CACVZ,WAAW,CAAE,KAAKlD,OAAL,CAAagS,kCADhB,CAAd,CAGH,CARD,IAQO,IAAa,gBAAT,EAAA3K,CAAJ,CAA+B,CAClCtE,CAAQ,CAACe,IAAT,CAAc,CACVd,KAAK,CAAE,KAAKhD,OAAL,CAAaiS,yBADV,CAEV/O,WAAW,CAAE,KAAKlD,OAAL,CAAakS,kCAFhB,CAAd,EAIAnP,CAAQ,CAACe,IAAT,CAAc,CACVZ,WAAW,CAAE,KAAKlD,OAAL,CAAamS,kCADhB,CAAd,EAGApP,CAAQ,CAACe,IAAT,CAAc,CACVZ,WAAW,CAAE,KAAKlD,OAAL,CAAaoS,kCADhB,CAAd,CAGH,CAXM,IAWA,IAAa,cAAT,EAAA/K,CAAJ,CAA6B,CAChCtE,CAAQ,CAACe,IAAT,CAAc,CACVd,KAAK,CAAE,KAAKhD,OAAL,CAAaqS,uBADV,CAEVnP,WAAW,CAAE,KAAKlD,OAAL,CAAasS,gCAFhB,CAAd,EAIAvP,CAAQ,CAACe,IAAT,CAAc,CACVZ,WAAW,CAAE,KAAKlD,OAAL,CAAauS,gCADhB,CAAd,EAGAxP,CAAQ,CAACe,IAAT,CAAc,CACVZ,WAAW,CAAE,KAAKlD,OAAL,CAAawS,gCADhB,CAAd,CAGH,CAXM,IAWA,IAAa,oBAAT,EAAAnL,CAAJ,CAAmC,CACtCtE,CAAQ,CAACe,IAAT,CAAc,CACVd,KAAK,CAAE,KAAKhD,OAAL,CAAayS,6BADV,CAEVvP,WAAW,CAAE,KAAKlD,OAAL,CAAa0S,sCAFhB,CAAd,EAIA3P,CAAQ,CAACe,IAAT,CAAc,CACVZ,WAAW,CAAE,KAAKlD,OAAL,CAAa2S,sCADhB,CAAd,EAGA5P,CAAQ,CAACe,IAAT,CAAc,CACVZ,WAAW,CAAE,KAAKlD,OAAL,CAAa4S,sCADhB,CAAd,CAGH,CAXM,IAWA,IAAa,aAAT,EAAAvL,CAAJ,CAA4B,CAC/BtE,CAAQ,CAACe,IAAT,CAAc,CACVd,KAAK,CAAE,KAAKhD,OAAL,CAAa6S,sBADV,CAEV3P,WAAW,CAAE,KAAKlD,OAAL,CAAa8S,+BAFhB,CAAd,EAIA/P,CAAQ,CAACe,IAAT,CAAc,CACVZ,WAAW,CAAE,KAAKlD,OAAL,CAAa+S,+BADhB,CAAd,EAGAhQ,CAAQ,CAACe,IAAT,CAAc,CACVZ,WAAW,CAAE,KAAKlD,OAAL,CAAagT,+BADhB,CAAd,CAGH,CACD,KAAKhR,aAAL,CAAqBe,CAArB,CACA,GAAI,KAAKf,aAAL,CAAmBG,MAAvB,CAA+B,CAC3B,KAAKJ,WAAL,GACH,CACJ,CApnBK,CAsnBNkR,kBAtnBM,6BAsnBcrE,CAtnBd,CAsnBqB,CACvB,KAAK7M,WAAL,CAAmB6M,CACtB,CAxnBK,CA0nBNsE,YA1nBM,wBA0nBQ,CACV,GAAIC,CAAAA,CAAW,WAAM,KAAKnT,OAAL,CAAaoT,kBAAnB,aAAyC,KAAKhT,QAA9C,CAAf,CACA,MAAO+S,CAAAA,CACV,CA7nBK,CAzDI,CAAR,CAyrBb,CAEM,CAGV,CAttBC,CAAN","sourcesContent":["define([\"local_fliplearning/vue\",\r\n \"local_fliplearning/vuetify\",\r\n \"local_fliplearning/axios\",\r\n \"local_fliplearning/moment\",\r\n \"local_fliplearning/momenttimezone\",\r\n \"local_fliplearning/pagination\",\r\n \"local_fliplearning/chartdynamic\",\r\n \"local_fliplearning/pageheader\",\r\n \"local_fliplearning/emailform\",\r\n \"local_fliplearning/modulesform\",\r\n \"local_fliplearning/helpdialog\",\r\n ],\r\n function(Vue, Vuetify, Axios, Moment, MomentTimezone, Pagination, ChartDynamic, PageHeader, EmailForm, ModulesForm, HelpDialog) {\r\n \"use strict\";\r\n\r\n function init(content) {\r\n // console.log(content);\r\n Vue.use(Vuetify);\r\n Vue.component('pagination', Pagination);\r\n Vue.component('chart', ChartDynamic);\r\n Vue.component('pageheader', PageHeader);\r\n Vue.component('emailform', EmailForm);\r\n Vue.component('modulesform', ModulesForm);\r\n Vue.component('helpdialog', HelpDialog);\r\n let vue = new Vue({\r\n delimiters: [\"[[\", \"]]\"],\r\n el: \"#dropout\",\r\n vuetify: new Vuetify(),\r\n data() {\r\n return {\r\n strings : content.strings,\r\n groups : content.groups,\r\n userid : content.userid,\r\n courseid : content.courseid,\r\n timezone : content.timezone,\r\n render_has : content.profile_render,\r\n loading : false,\r\n errors : [],\r\n pages : content.pages,\r\n\r\n dropout: content.dropout,\r\n modules_access_colors: content.modules_access_colors,\r\n week_modules_colors: content.week_modules_colors,\r\n sessions_evolution_colors: content.sessions_evolution_colors,\r\n user_grades_colors: content.user_grades_colors,\r\n selected_cluster: [],\r\n cluster_users: [],\r\n selected_user: null,\r\n search: null,\r\n week_modules_chart_data: [],\r\n week_modules_chart_categories: [],\r\n selected_sections: [],\r\n sessions_evolution_data: [],\r\n user_grades_categories: [],\r\n user_grades_data: [],\r\n modules_dialog: false,\r\n\r\n email_users: [],\r\n email_dialog : false,\r\n modulename : \"\",\r\n moduleid : false,\r\n email_strings: content.strings.email_strings,\r\n\r\n help_dialog: false,\r\n help_contents: [],\r\n }\r\n },\r\n beforeMount(){\r\n if (this.dropout.clusters.length) {\r\n this.set_modules_in_sections();\r\n this.selected_cluster = this.dropout.clusters[0];\r\n this.change_cluster(this.selected_cluster.users);\r\n };\r\n },\r\n mounted(){\r\n document.querySelector(\"#sessions-loader\").style.display = \"none\";\r\n document.querySelector(\"#dropout\").style.display = \"block\";\r\n },\r\n computed :{\r\n\r\n },\r\n methods : {\r\n get_help_content(){\r\n let contents = [];\r\n contents.push({\r\n title: this.strings.section_help_title,\r\n description: this.strings.section_help_description,\r\n });\r\n return contents;\r\n },\r\n\r\n set_modules_in_sections() {\r\n let sectionsMap = new Map();\r\n let sectionid = 0, modules = [];\r\n this.dropout.cms.forEach(cm => {\r\n sectionid = Number(cm.section);\r\n if (!sectionsMap.has(sectionid)) {\r\n sectionsMap.set(sectionid, [cm]);\r\n } else {\r\n sectionsMap.get(sectionid).push(cm);\r\n }\r\n });\r\n this.dropout.sections.forEach(section => {\r\n sectionid = Number(section.sectionid);\r\n section.sectionid = sectionid;\r\n section.modules = (sectionsMap.has(sectionid)) ? sectionsMap.get(sectionid) : [];\r\n });\r\n },\r\n\r\n change_cluster(users) {\r\n let selected_users = [];\r\n this.dropout.users.forEach(user => {\r\n if (users.includes(user.id)) {\r\n selected_users.push(user);\r\n }\r\n });\r\n if (selected_users.length) {\r\n this.cluster_users = selected_users;\r\n let user = this.cluster_users[0];\r\n this.change_user(user);\r\n } else {\r\n this.cluster_users = [];\r\n this.selected_user = null;\r\n }\r\n },\r\n\r\n change_user(user) {\r\n this.selected_user = user;\r\n this.calculate_week_modules_access();\r\n this.calculate_sessions_evolution();\r\n this.calculate_user_grades();\r\n },\r\n\r\n calculate_week_modules_access() {\r\n let sectionid = 0, moduleid = 0, weekcompletecms = 0, weekviewedcms = 0;\r\n let modules = [], completecms = [], viewedcms = [], categories = [];\r\n let user_cm;\r\n this.dropout.weeks.forEach(week => {\r\n weekcompletecms = 0, weekviewedcms = 0;\r\n week.sections.forEach(section => {\r\n sectionid = Number(section.sectionid);\r\n section.sectionid = sectionid;\r\n\r\n modules = this.sections_modules(sectionid);\r\n modules.forEach(module => {\r\n moduleid = Number(module.id);\r\n module.id = moduleid;\r\n\r\n user_cm = this.selected_user.cms.modules[`cm${module.id}`];\r\n if (user_cm) {\r\n (user_cm.complete) && weekcompletecms++;\r\n (user_cm.viewed) && weekviewedcms++;\r\n }\r\n });\r\n });\r\n completecms.push(weekcompletecms);\r\n viewedcms.push(weekviewedcms);\r\n categories.push(`${week.name} ${(week.position + 1)}`);\r\n });\r\n this.week_modules_chart_categories = categories;\r\n this.week_modules_chart_data = [\r\n { name: this.strings.modules_access_chart_series_viewed, data: viewedcms },\r\n { name: this.strings.modules_access_chart_series_complete, data: completecms }\r\n ];\r\n },\r\n\r\n calculate_sessions_evolution() {\r\n let sessions_data = [], time_data = [];\r\n let sumtime = 0, sumsessions = 0, time = 0, timestamp = 0;\r\n this.selected_user.sessions.forEach(session => {\r\n timestamp = Number(session.start) * 1000;\r\n time = (Number(session.duration)) / 60;\r\n sumtime += time;\r\n sumsessions++;\r\n sessions_data.push({ x: timestamp, y: sumsessions });\r\n time_data.push({ x: timestamp, y: sumtime });\r\n });\r\n this.sessions_evolution_data = [\r\n { name: this.strings.sessions_evolution_chart_legend1, yAxis: 0, data: sessions_data },\r\n { name: this.strings.sessions_evolution_chart_legend2, yAxis: 1, data: time_data },\r\n ];\r\n },\r\n\r\n calculate_user_grades() {\r\n let categories = [], course_grades = [], user_grades = [];\r\n let user_grade = 0, user_name = this.selected_user.firstname;\r\n if (this.selected_user.gradeitems) {\r\n this.selected_user.gradeitems.forEach(item => {\r\n user_grade = (Number(item.finalgrade) * 100) / Number(item.grademax);\r\n categories.push(item.itemname);\r\n course_grades.push(item.average_percentage);\r\n user_grades.push(user_grade);\r\n });\r\n this.user_grades_data = [\r\n { name: user_name, data: user_grades },\r\n { name: this.strings.user_grades_chart_legend, data: course_grades },\r\n ];\r\n this.user_grades_categories = categories;\r\n }\r\n },\r\n\r\n build_modules_access_chart() {\r\n let chart = new Object();\r\n chart.chart = {\r\n type: 'bar',\r\n backgroundColor: null,\r\n style: {fontFamily: 'poppins'},\r\n };\r\n chart.title = { text: null};\r\n chart.colors = this.modules_access_colors;\r\n chart.xAxis = {\r\n type: 'category',\r\n };\r\n chart.yAxis = {\r\n allowDecimals: false,\r\n title: {\r\n enabled: true,\r\n text: this.strings.modules_amount,\r\n }\r\n };\r\n chart.tooltip = {\r\n shared: true,\r\n formatter: function () {\r\n let module_text = (this.y == 1) ? vue.strings.module_label : vue.strings.modules_label;\r\n return '<b>' + this.points[0].key + '</b>: ' + this.y + ' ' + module_text + '<br/>'\r\n + '<i>'+ vue.strings.modules_details + '<i/>';\r\n }\r\n };\r\n chart.plotOptions = {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: function () {\r\n vue.open_modules_modal(this.x);\r\n }\r\n }\r\n }\r\n }\r\n },\r\n chart.legend = {\r\n enabled: false\r\n };\r\n chart.series = [{\r\n colorByPoint: true,\r\n data: [\r\n {name: this.strings.modules_access_chart_series_viewed, y: this.selected_user.cms.viewed},\r\n {name: this.strings.modules_access_chart_series_complete, y: this.selected_user.cms.complete},\r\n {name: this.strings.modules_access_chart_series_total, y: this.selected_user.cms.total}\r\n ]\r\n }];\r\n return chart;\r\n },\r\n\r\n build_week_modules_chart() {\r\n let chart = new Object();\r\n chart.chart = {\r\n type: 'column',\r\n backgroundColor: null,\r\n style: {fontFamily: 'poppins'},\r\n };\r\n chart.title = {text: null};\r\n chart.colors = this.week_modules_colors;\r\n chart.xAxis = {\r\n categories: this.week_modules_chart_categories,\r\n title: {\r\n text: null\r\n },\r\n crosshair: true\r\n };\r\n chart.yAxis = {\r\n allowDecimals: false,\r\n title: {\r\n text: this.strings.modules_amount,\r\n }\r\n };\r\n chart.tooltip = {\r\n shared: true,\r\n useHTML: true,\r\n formatter: function () {\r\n let text1 = '', text2 = '';\r\n if (this.points[0]) {\r\n let module_text_viewed = (this.points[0].y == 1) ? vue.strings.module_label : vue.strings.modules_label;\r\n let viewed_series_name = this.points[0].series.name;\r\n text1 = `<b style=\"color: ${this.points[0].color}\">${viewed_series_name}: </b>\r\n ${this.points[0].y} ${module_text_viewed}<br/>`;\r\n }\r\n if (this.points[1]) {\r\n let module_text_completed = (this.points[1].y == 1) ? vue.strings.module_label : vue.strings.modules_label;\r\n let completed_series_name = this.points[1].series.name;\r\n text2 = `<b style=\"color: ${this.points[1].color}\">${completed_series_name}: </b>\r\n ${this.points[1].y} ${module_text_completed}<br/>`;\r\n }\r\n return `${this.x} <br/> ${text1}${text2} <i>${vue.strings.modules_details}<i/>`;\r\n }\r\n };\r\n chart.plotOptions = {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: function () {\r\n vue.open_modules_modal(this.colorIndex, this.x);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n chart.series = this.week_modules_chart_data;\r\n return chart;\r\n },\r\n\r\n build_sessions_evolution_chart() {\r\n let chart = new Object();\r\n chart.chart = {\r\n zoomType: 'x',\r\n backgroundColor: null,\r\n style: {fontFamily: 'poppins'},\r\n };\r\n chart.title = {text: null};\r\n chart.colors = this.sessions_evolution_colors;\r\n chart.xAxis = {\r\n type: 'datetime'\r\n };\r\n chart.yAxis = [{\r\n allowDecimals: false,\r\n title: { text: this.strings.sessions_evolution_chart_xaxis1 }\r\n }, {\r\n title: { text: this.strings.sessions_evolution_chart_xaxis2 },\r\n opposite: true\r\n }];\r\n chart.tooltip = {\r\n shared: true,\r\n useHTML: true,\r\n formatter: function () {\r\n let date_label = vue.calculate_timezone_date_string(this.x);\r\n let text1 = (this.points[0]) ? vue.get_sessions_evolution_tooltip(this.points[0]) : '';\r\n let text2 = (this.points[1]) ? vue.get_sessions_evolution_tooltip(this.points[1]) : '';\r\n return `<small>${date_label}</small><br/>${text1}${text2}`;\r\n }\r\n };\r\n chart.series = this.sessions_evolution_data;\r\n return chart;\r\n },\r\n\r\n build_user_grades_chart() {\r\n let chart = new Object();\r\n chart.chart = {\r\n type: 'column',\r\n backgroundColor: null,\r\n style: {fontFamily: 'poppins'},\r\n };\r\n chart.title = {text: null};\r\n chart.colors = this.user_grades_colors;\r\n chart.xAxis = {\r\n crosshair: true,\r\n categories: this.user_grades_categories,\r\n };\r\n chart.yAxis = {\r\n allowDecimals: false,\r\n max: 100,\r\n labels: {\r\n format: '{value} %',\r\n },\r\n title: { text: this.strings.user_grades_chart_yaxis }\r\n };\r\n chart.tooltip = {\r\n shared: true,\r\n useHTML: true,\r\n formatter: function () {\r\n let itemname = this.x;\r\n let position = this.points[0].point.x;\r\n let item = vue.selected_user.gradeitems[position];\r\n let header = `<small>${itemname}</small><br/>`;\r\n let footer = `<i>(${vue.strings.user_grades_chart_view_activity})</i><br/>`;\r\n let body = '';\r\n if (item.gradecount == 0) {\r\n body = vue.strings.user_grades_chart_tooltip_no_graded;\r\n } else {\r\n let text1 = (this.points[0]) ? vue.get_user_grades_tooltip(this.points[0], item) : '';\r\n let text2 = (this.points[1]) ? vue.get_user_grades_tooltip(this.points[1], item) : '';\r\n body = `${text1}${text2}${footer}`;\r\n }\r\n return `${header}${body}`;\r\n }\r\n };\r\n chart.plotOptions = {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: function () {\r\n let position = this.x;\r\n let item = vue.selected_user.gradeitems[position];\r\n let url = `${M.cfg.wwwroot}/mod/${item.itemmodule}/view.php?id=${item.coursemoduleid}`;\r\n window.open(url, '_blank');\r\n }\r\n }\r\n }\r\n }\r\n };\r\n chart.series = this.user_grades_data;\r\n return chart;\r\n },\r\n\r\n get_sessions_evolution_tooltip (point) {\r\n let text = '', sessions, sessions_suffix, sessions_prefix, time_prefix, time;\r\n if (point.colorIndex == 0) {\r\n sessions = point.y;\r\n sessions_suffix = (sessions == 1) ? vue.strings.session_text : vue.strings.sessions_text;\r\n sessions_prefix = point.series.name;\r\n text = `<b style=\"color: ${point.color}\">${sessions_prefix}: </b>\r\n ${sessions} ${sessions_suffix}<br/>`;\r\n } else {\r\n time_prefix = point.series.name;\r\n time = this.convert_time(point.y * 60);\r\n text = `<b style=\"color: ${point.color}\">${time_prefix}: </b>\r\n ${time}<br/>`;\r\n }\r\n return text;\r\n },\r\n\r\n get_user_grades_tooltip (point, item) {\r\n let serie_name = point.series.name, user_grade = 0;\r\n let finalgrade = Number(item.finalgrade), average = Number(item.average), grademax = Number(item.grademax);\r\n grademax = this.isInt(grademax) ? grademax : grademax.toFixed(2);\r\n if (point.colorIndex == 0) {\r\n user_grade = this.isInt(finalgrade) ? finalgrade : finalgrade.toFixed(2);\r\n } else {\r\n user_grade = this.isInt(average) ? average : average.toFixed(2);\r\n }\r\n return `<b style=\"color: ${point.color}\">${serie_name}: </b>\r\n ${user_grade}/${grademax}<br/>`;\r\n },\r\n\r\n calculate_timezone_date_string(timestamp) {\r\n let dat, weekday, monthday, month, time;\r\n if (Moment.tz.zone(this.timezone)) {\r\n dat = Moment(timestamp).tz(this.timezone);\r\n weekday = dat.day();\r\n monthday = dat.date();\r\n month = dat.month();\r\n time = dat.format('HH:mm:ss');\r\n } else {\r\n let tz = Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n dat = new Date(timestamp);\r\n weekday = dat.getDay();\r\n monthday = dat.getDate();\r\n month = dat.getMonth();\r\n time = `${dat.getHours()}:${dat.getMinutes()}:${dat.getSeconds()} (${tz})`;\r\n }\r\n weekday = this.strings.chart.weekdays[weekday];\r\n month = this.strings.chart.shortMonths[month];\r\n return `${weekday}, ${month} ${monthday}, ${time}`;\r\n },\r\n\r\n convert_time(time) {\r\n time *= 60; // pasar los minutos a segundos\r\n let h = this.strings.hours_short;\r\n let m = this.strings.minutes_short;\r\n let s = this.strings.seconds_short;\r\n let hours = Math.floor(time / 3600);\r\n let minutes = Math.floor((time % 3600) / 60);\r\n let seconds = Math.floor(time % 60);\r\n let text;\r\n if (hours >= 1) {\r\n if (minutes >= 1) {\r\n text = `${hours}${h} ${minutes}${m}`;\r\n } else {\r\n text = `${hours}${h}`;\r\n }\r\n } else if ((minutes >= 1)) {\r\n if (seconds >= 1) {\r\n text = `${minutes}${m} ${seconds}${s}`;\r\n } else {\r\n text = `${minutes}${m}`;\r\n }\r\n } else {\r\n text = `${seconds}${s}`;\r\n }\r\n return text;\r\n },\r\n\r\n open_modules_modal(type, weekposition){\r\n let sections = this.dropout.sections;\r\n if (Number.isInteger(weekposition)) {\r\n sections = [];\r\n let section;\r\n let week = this.dropout.weeks[weekposition];\r\n week.sections.forEach(item => {\r\n section = {\r\n sectionid: item.sectionid,\r\n name: item.name,\r\n modules: this.sections_modules(item.sectionid)\r\n };\r\n sections.push(section);\r\n });\r\n }\r\n sections.forEach(section => {\r\n section.modules.forEach(module => {\r\n module.complete = false;\r\n module.viewed = false;\r\n module.interactions = 0;\r\n let user_cm = this.selected_user.cms.modules[`cm${module.id}`];\r\n if (user_cm) {\r\n module.complete = user_cm.complete;\r\n module.viewed = user_cm.viewed;\r\n module.interactions = user_cm.interactions;\r\n }\r\n });\r\n });\r\n\r\n this.selected_sections = sections;\r\n this.modules_dialog = true;\r\n },\r\n\r\n sections_modules(sectionid) {\r\n let modules = [];\r\n let sections = this.dropout.sections;\r\n for (let i = 0; i < sections.length; i++) {\r\n if (sections[i].sectionid == sectionid) {\r\n if (sections[i].modules) {\r\n modules = sections[i].modules;\r\n }\r\n break;\r\n }\r\n }\r\n return modules;\r\n },\r\n\r\n get_user_module(moduleid) {\r\n let module;\r\n let cms = this.selected_user.cms.modules;\r\n for (let i = 0; i < cms.length; i++) {\r\n cms[i].id = Number(cms[i].id);\r\n if (cms[i].id == moduleid) {\r\n module = cms[i];\r\n break;\r\n }\r\n }\r\n return module;\r\n },\r\n\r\n table_headers(){\r\n let headers = [\r\n { text: '', value : 'id', align : 'center', sortable : false},\r\n { text: this.strings.thead_name , value : 'firstname'},\r\n { text: this.strings.thead_lastname , value : 'lastname'},\r\n { text: this.strings.thead_progress , value : 'progress_percentage'},\r\n ];\r\n return headers;\r\n },\r\n\r\n get_picture_url(userid){\r\n return `${M.cfg.wwwroot}/user/pix.php?file=/${userid}/f1.jpg`;\r\n },\r\n\r\n get_user_fullname(){\r\n return `${this.selected_user.firstname} ${this.selected_user.lastname}`;\r\n },\r\n\r\n get_username(){\r\n return `@${this.selected_user.username}`;\r\n },\r\n\r\n see_profile () {\r\n let id = this.selected_user.id;\r\n let url = M.cfg.wwwroot + '/user/view.php?id='+id+'&course='+vue.courseid;\r\n window.open(url);\r\n },\r\n\r\n get_progress_message(){\r\n let module_label = this.strings.modules_label;\r\n let finished_label = this.strings.finisheds_label;\r\n if (this.selected_user.cms.complete == 1) {\r\n module_label = this.strings.module_label;\r\n finished_label = this.strings.finished_label;\r\n }\r\n return `${this.selected_user.cms.complete} ${module_label} ${finished_label} ${this.strings.of_conector} ${this.dropout.total_cms}`;\r\n },\r\n\r\n get_progress_percentage() {\r\n return `${this.selected_user.progress_percentage} %`;\r\n },\r\n\r\n get_student_grade() {\r\n let grade = this.selected_user.coursegrade;\r\n grade.finalgrade = Number(grade.finalgrade);\r\n grade.maxgrade = Number(grade.maxgrade);\r\n let student_grade = this.isInt(grade.finalgrade) ? grade.finalgrade : grade.finalgrade.toFixed(2);\r\n let max_grade = this.isInt(grade.maxgrade) ? grade.maxgrade : grade.maxgrade.toFixed(2);\r\n return `${student_grade}/${max_grade}`;\r\n },\r\n\r\n get_sendmail_user_text() {\r\n return `${this.strings.send_mail_to_user} ${this.selected_user.firstname}`;\r\n },\r\n\r\n sendmail(type) {\r\n this.strings.email_strings.subject = this.strings.email_strings.subject_prefix;\r\n this.modulename = \"course\";\r\n this.moduleid = this.courseid;\r\n if (type == 1) {\r\n this.email_users = [this.selected_user];\r\n this.email_dialog = true;\r\n } else if (type == 2) {\r\n this.email_users = this.cluster_users;\r\n this.email_dialog = true;\r\n }\r\n },\r\n\r\n update_email_dialog (value) {\r\n this.email_dialog = value;\r\n },\r\n\r\n update_modules_dialog (value) {\r\n this.modules_dialog = value;\r\n },\r\n\r\n isInt(n) {\r\n return n % 1 === 0;\r\n },\r\n\r\n generate_dropout_data(){\r\n this.loading = true;\r\n this.errors = [];\r\n let data = {\r\n action : \"dropoutdata\",\r\n userid : this.userid,\r\n courseid : this.courseid,\r\n profile : this.render_has,\r\n }\r\n Axios({\r\n method:'get',\r\n url: M.cfg.wwwroot + \"/local/fliplearning/ajax.php\",\r\n params : data,\r\n }).then((response) => {\r\n if (response.status == 200 && response.data.ok) {\r\n location.reload();\r\n } else {\r\n this.error_messages.push(this.strings.error_network);\r\n }\r\n }).catch((e) => {\r\n this.errors.push(this.strings.api_error_network);\r\n }).finally(() => {\r\n this.loading = false;\r\n });\r\n return this.data;\r\n },\r\n\r\n open_chart_help(chart) {\r\n let contents = [];\r\n if (chart == \"group_students\") {\r\n contents.push({\r\n title: this.strings.group_students_help_title,\r\n description: this.strings.group_students_help_description_p1,\r\n });\r\n contents.push({\r\n description: this.strings.group_students_help_description_p2,\r\n });\r\n } else if (chart == \"modules_access\") {\r\n contents.push({\r\n title: this.strings.modules_access_help_title,\r\n description: this.strings.modules_access_help_description_p1,\r\n });\r\n contents.push({\r\n description: this.strings.modules_access_help_description_p2,\r\n });\r\n contents.push({\r\n description: this.strings.modules_access_help_description_p3,\r\n });\r\n } else if (chart == \"week_modules\") {\r\n contents.push({\r\n title: this.strings.week_modules_help_title,\r\n description: this.strings.week_modules_help_description_p1,\r\n });\r\n contents.push({\r\n description: this.strings.week_modules_help_description_p2,\r\n });\r\n contents.push({\r\n description: this.strings.week_modules_help_description_p3,\r\n });\r\n } else if (chart == \"sessions_evolution\") {\r\n contents.push({\r\n title: this.strings.sessions_evolution_help_title,\r\n description: this.strings.sessions_evolution_help_description_p1,\r\n });\r\n contents.push({\r\n description: this.strings.sessions_evolution_help_description_p2,\r\n });\r\n contents.push({\r\n description: this.strings.sessions_evolution_help_description_p3,\r\n });\r\n } else if (chart == \"user_grades\") {\r\n contents.push({\r\n title: this.strings.user_grades_help_title,\r\n description: this.strings.user_grades_help_description_p1,\r\n });\r\n contents.push({\r\n description: this.strings.user_grades_help_description_p2,\r\n });\r\n contents.push({\r\n description: this.strings.user_grades_help_description_p3,\r\n });\r\n }\r\n this.help_contents = contents;\r\n if (this.help_contents.length) {\r\n this.help_dialog = true;\r\n }\r\n },\r\n\r\n update_help_dialog (value) {\r\n this.help_dialog = value;\r\n },\r\n\r\n get_timezone(){\r\n let information = `${this.strings.ss_change_timezone} ${this.timezone}`\r\n return information;\r\n },\r\n }\r\n })\r\n }\r\n\r\n return {\r\n init : init\r\n };\r\n });"],"file":"dropout.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/emailform.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/emailform.min.js new file mode 100644 index 0000000000000000000000000000000000000000..4af87b6057de56770db7c666b3366a974b675535 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/emailform.min.js @@ -0,0 +1,2 @@ +define(["local_fliplearning/axios","local_fliplearning/alertify"],function(e,n){return{template:'\n <v-main mt-10>\n <v-row>\n <v-col sm="12">\n <v-dialog\n v-model="dialog"\n width="800"\n @click:outside="closeDialog()"\n @keydown.esc="closeDialog()"\n >\n <v-card>\n <v-toolbar color="#118AB2" dark>\n <span v-text="emailform_title"></span>\n <v-spacer></v-spacer>\n <v-btn icon @click="reset">\n <v-icon v-text="close_icon"></v-icon>\n </v-btn>\n </v-toolbar>\n \n <v-container>\n <v-row>\n <v-col cols="12" sm="12">\n \n <v-chip class="ma-2" color="#118AB2" label dark>\n <span v-text="recipients"></span>\n </v-chip>\n \n <template v-for="(user, index, key) in selected_users">\n <v-chip class="ma-2">\n <v-avatar left>\n <img :src="get_picture_url(user.id)">\n </v-avatar>\n <span>{{user.firstname}} {{user.lastname}}</span>\n </v-chip>\n </template>\n \n </v-col>\n </v-row>\n \n <v-row>\n <v-col cols="12" sm="12">\n <v-form ref="form" v-model="valid_form">\n <v-text-field\n v-model="strings.subject"\n :label="subject_label"\n :rules="subject_rules"\n required\n solo\n ></v-text-field>\n \n <v-textarea\n v-model="message"\n :label="message_label"\n :rules="message_rules"\n required\n solo\n ></v-textarea>\n \n <v-btn @click="submit" :disabled="!valid_form">\n <span v-text="submit_button"></span>\n </v-btn>\n \n <v-btn @click="reset">\n <span v-text="cancel_button"></span>\n </v-btn>\n \n <v-spacer></v-spacer>\n \n </v-form>\n </v-col>\n </v-row>\n </v-container>\n \n </v-card>\n </v-dialog>\n </v-col>\n </v-row>\n \n <v-row>\n <v-col sm="12">\n <div class="text-center">\n <v-dialog\n v-model="loader_dialog"\n persistent\n width="300"\n >\n <v-card color="#118AB2" dark>\n <v-card-text>\n <span v-text="sending_text"></span>\n <v-progress-linear\n indeterminate\n color="white"\n class="mb-0"\n ></v-progress-linear>\n </v-card-text>\n </v-card>\n </v-dialog>\n </div>\n </v-col>\n </v-row>\n </v-main>\n ',props:["dialog","selected_users","strings","moduleid","modulename","courseid","userid"],data(){return{close_icon:"mdi-minus",valid_form:!0,subject_label:this.strings.subject_label,subject_rules:[e=>!!e||this.strings.validation_subject_text],message:"",message_label:this.strings.message_label,message_rules:[e=>!!e||this.strings.validation_message_text],submit_button:this.strings.submit_button,cancel_button:this.strings.cancel_button,emailform_title:this.strings.emailform_title,sending_text:this.strings.sending_text,recipients:this.strings.recipients_label,loader_dialog:!1,mailsended_text:this.strings.mailsended_text}},methods:{get_picture_url:e=>`${M.cfg.wwwroot}/user/pix.php?file=/${e}/f1.jpg`,submit(){let t="";this.selected_users.forEach(e=>{t=t.concat(e.id,",")}),this.loader_dialog=!0,this.errors=[];let s={action:"sendmail",subject:this.strings.subject,recipients:t,text:this.message,userid:this.userid,courseid:this.courseid,moduleid:this.moduleid,modulename:this.modulename};e({method:"get",url:M.cfg.wwwroot+"/local/fliplearning/ajax.php",params:s}).then(e=>{200==e.status&&e.data.ok?(this.$emit("update_dialog",!1),this.$refs.form.reset(),n.success(this.mailsended_text),"function"==typeof this.$parent.$root.addLogsIntoDB&&this.$parent.$root.addLogsIntoDB("sended",this.$parent.$root.email_object_name,"email","Sended an email")):(n.error(this.strings.api_error_network),this.loader_dialog=!1)}).catch(e=>{n.error(this.strings.api_error_network)}).finally(()=>{this.loader_dialog=!1})},reset(){this.$emit("update_dialog",!1),this.$refs.form.resetValidation()},closeDialog(){this.$emit("update_dialog",!1)}}}}); +//# sourceMappingURL=emailform.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/emailform.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/emailform.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..29d1ba29250946bd3f9d33ca17d73782356c2959 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/emailform.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/emailform.js"],"names":["define","Axios","Alertify","template","props","data","close_icon","valid_form","subject_label","strings","subject_rules","v","validation_subject_text","message","message_label","message_rules","validation_message_text","submit_button","cancel_button","emailform_title","sending_text","recipients","recipients_label","loader_dialog","mailsended_text","methods","get_picture_url","userid","url","M","cfg","wwwroot","submit","selected_users","forEach","item","concat","id","errors","action","subject","text","courseid","moduleid","modulename","method","params","then","response","status","ok","$emit","$refs","form","reset","success","error","api_error_network","catch","finally","resetValidation","closeDialog"],"mappings":"AAAAA,OAAM,gCAAC,CACH,0BADG,CAEH,6BAFG,CAAD,CAIF,SAAUC,CAAV,CAAiBC,CAAjB,CAA0B,CAqL1B,MApLsB,CAClBC,QAAQ,8/KADU,CAuGlBC,KAAK,CAAC,CAAC,QAAD,CAAW,gBAAX,CAA6B,SAA7B,CAAwC,UAAxC,CAAoD,YAApD,CAAkE,UAAlE,CAA8E,QAA9E,CAvGY,CAwGlBC,IAxGkB,gBAwGZ,YACF,MAAO,CACHC,UAAU,CAAE,WADT,CAEHC,UAAU,GAFP,CAGHC,aAAa,CAAE,KAAKC,OAAL,CAAaD,aAHzB,CAIHE,aAAa,CAAE,CACX,SAAAC,CAAC,QAAI,CAAC,CAACA,CAAF,EAAO,CAAI,CAACF,OAAL,CAAaG,uBAAxB,CADU,CAJZ,CAOHC,OAAO,CAAE,EAPN,CAQHC,aAAa,CAAE,KAAKL,OAAL,CAAaK,aARzB,CASHC,aAAa,CAAE,CACX,SAAAJ,CAAC,QAAI,CAAC,CAACA,CAAF,EAAO,CAAI,CAACF,OAAL,CAAaO,uBAAxB,CADU,CATZ,CAYHC,aAAa,CAAE,KAAKR,OAAL,CAAaQ,aAZzB,CAaHC,aAAa,CAAE,KAAKT,OAAL,CAAaS,aAbzB,CAcHC,eAAe,CAAE,KAAKV,OAAL,CAAaU,eAd3B,CAeHC,YAAY,CAAE,KAAKX,OAAL,CAAaW,YAfxB,CAgBHC,UAAU,CAAE,KAAKZ,OAAL,CAAaa,gBAhBtB,CAkBHC,aAAa,GAlBV,CAmBHC,eAAe,CAAE,KAAKf,OAAL,CAAae,eAnB3B,CAqBV,CA9HiB,CA+HlBC,OAAO,CAAG,CACNC,eADM,0BACUC,CADV,CACiB,CACnB,GAAIC,CAAAA,CAAG,WAAMC,CAAC,CAACC,GAAF,CAAMC,OAAZ,gCAA0CJ,CAA1C,WAAP,CACA,MAAOC,CAAAA,CACV,CAJK,CAMNI,MANM,kBAMI,YACFX,CAAU,CAAG,EADX,CAEN,KAAKY,cAAL,CAAoBC,OAApB,CAA4B,SAAAC,CAAI,CAAI,CAChCd,CAAU,CAACA,CAAU,CAACe,MAAX,CAAkBD,CAAI,CAACE,EAAvB,CAA0B,GAA1B,CACd,CAFD,EAGA,KAAKd,aAAL,IACA,KAAKe,MAAL,CAAc,EAAd,CACA,GAAIjC,CAAAA,CAAI,CAAG,CACPkC,MAAM,CAAG,UADF,CAEPC,OAAO,CAAG,KAAK/B,OAAL,CAAa+B,OAFhB,CAGPnB,UAAU,CAAGA,CAHN,CAIPoB,IAAI,CAAG,KAAK5B,OAJL,CAKPc,MAAM,CAAG,KAAKA,MALP,CAMPe,QAAQ,CAAG,KAAKA,QANT,CAOPC,QAAQ,CAAG,KAAKA,QAPT,CAQPC,UAAU,CAAG,KAAKA,UARX,CAAX,CAUA3C,CAAK,CAAC,CACF4C,MAAM,CAAC,KADL,CAEFjB,GAAG,CAAEC,CAAC,CAACC,GAAF,CAAMC,OAAN,CAAgB,8BAFnB,CAGFe,MAAM,CAAGzC,CAHP,CAAD,CAAL,CAIG0C,IAJH,CAIQ,SAACC,CAAD,CAAc,CAClB,GAAuB,GAAnB,EAAAA,CAAQ,CAACC,MAAT,EAA0BD,CAAQ,CAAC3C,IAAT,CAAc6C,EAA5C,CAAgD,CAC5C,CAAI,CAACC,KAAL,CAAW,eAAX,KACA,CAAI,CAACC,KAAL,CAAWC,IAAX,CAAgBC,KAAhB,GACApD,CAAQ,CAACqD,OAAT,CAAiB,CAAI,CAAC/B,eAAtB,CACH,CAJD,IAIO,CACHtB,CAAQ,CAACsD,KAAT,CAAe,CAAI,CAAC/C,OAAL,CAAagD,iBAA5B,EACA,CAAI,CAAClC,aAAL,GACH,CACJ,CAbD,EAaGmC,KAbH,CAaS,UAAO,CACZxD,CAAQ,CAACsD,KAAT,CAAe,CAAI,CAAC/C,OAAL,CAAagD,iBAA5B,CACH,CAfD,EAeGE,OAfH,CAeW,UAAM,CACb,CAAI,CAACpC,aAAL,GACH,CAjBD,CAkBH,CAzCK,CA2CN+B,KA3CM,iBA2CG,CACL,KAAKH,KAAL,CAAW,eAAX,KACA,KAAKC,KAAL,CAAWC,IAAX,CAAgBO,eAAhB,EACH,CA9CK,CAgDNC,WAhDM,uBAgDQ,CACV,KAAKV,KAAL,CAAW,eAAX,IACH,CAlDK,CA/HQ,CAqLzB,CA1LK,CAAN","sourcesContent":["define([\r\n \"local_fliplearning/axios\",\r\n \"local_fliplearning/alertify\",\r\n ],\r\n function (Axios, Alertify){\r\n const emailform = {\r\n template:`\r\n <v-main mt-10>\r\n <v-row>\r\n <v-col sm=\"12\">\r\n <v-dialog\r\n v-model=\"dialog\"\r\n width=\"800\"\r\n @click:outside=\"closeDialog()\"\r\n @keydown.esc=\"closeDialog()\"\r\n >\r\n <v-card>\r\n <v-toolbar color=\"#118AB2\" dark>\r\n <span v-text=\"emailform_title\"></span>\r\n <v-spacer></v-spacer>\r\n <v-btn icon @click=\"reset\">\r\n <v-icon v-text=\"close_icon\"></v-icon>\r\n </v-btn>\r\n </v-toolbar>\r\n \r\n <v-container>\r\n <v-row>\r\n <v-col cols=\"12\" sm=\"12\">\r\n \r\n <v-chip class=\"ma-2\" color=\"#118AB2\" label dark>\r\n <span v-text=\"recipients\"></span>\r\n </v-chip>\r\n \r\n <template v-for=\"(user, index, key) in selected_users\">\r\n <v-chip class=\"ma-2\">\r\n <v-avatar left>\r\n <img :src=\"get_picture_url(user.id)\">\r\n </v-avatar>\r\n <span>{{user.firstname}} {{user.lastname}}</span>\r\n </v-chip>\r\n </template>\r\n \r\n </v-col>\r\n </v-row>\r\n \r\n <v-row>\r\n <v-col cols=\"12\" sm=\"12\">\r\n <v-form ref=\"form\" v-model=\"valid_form\">\r\n <v-text-field\r\n v-model=\"strings.subject\"\r\n :label=\"subject_label\"\r\n :rules=\"subject_rules\"\r\n required\r\n solo\r\n ></v-text-field>\r\n \r\n <v-textarea\r\n v-model=\"message\"\r\n :label=\"message_label\"\r\n :rules=\"message_rules\"\r\n required\r\n solo\r\n ></v-textarea>\r\n \r\n <v-btn @click=\"submit\" :disabled=\"!valid_form\">\r\n <span v-text=\"submit_button\"></span>\r\n </v-btn>\r\n \r\n <v-btn @click=\"reset\">\r\n <span v-text=\"cancel_button\"></span>\r\n </v-btn>\r\n \r\n <v-spacer></v-spacer>\r\n \r\n </v-form>\r\n </v-col>\r\n </v-row>\r\n </v-container>\r\n \r\n </v-card>\r\n </v-dialog>\r\n </v-col>\r\n </v-row>\r\n \r\n <v-row>\r\n <v-col sm=\"12\">\r\n <div class=\"text-center\">\r\n <v-dialog\r\n v-model=\"loader_dialog\"\r\n persistent\r\n width=\"300\"\r\n >\r\n <v-card color=\"#118AB2\" dark>\r\n <v-card-text>\r\n <span v-text=\"sending_text\"></span>\r\n <v-progress-linear\r\n indeterminate\r\n color=\"white\"\r\n class=\"mb-0\"\r\n ></v-progress-linear>\r\n </v-card-text>\r\n </v-card>\r\n </v-dialog>\r\n </div>\r\n </v-col>\r\n </v-row>\r\n </v-main>\r\n `,\r\n props:['dialog', 'selected_users', 'strings', 'moduleid', 'modulename', 'courseid', 'userid'],\r\n data(){\r\n return {\r\n close_icon: 'mdi-minus',\r\n valid_form: true,\r\n subject_label: this.strings.subject_label,\r\n subject_rules: [\r\n v => !!v || this.strings.validation_subject_text,\r\n ],\r\n message: '',\r\n message_label: this.strings.message_label,\r\n message_rules: [\r\n v => !!v || this.strings.validation_message_text,\r\n ],\r\n submit_button: this.strings.submit_button,\r\n cancel_button: this.strings.cancel_button,\r\n emailform_title: this.strings.emailform_title,\r\n sending_text: this.strings.sending_text,\r\n recipients: this.strings.recipients_label,\r\n\r\n loader_dialog: false,\r\n mailsended_text: this.strings.mailsended_text,\r\n }\r\n },\r\n methods : {\r\n get_picture_url(userid){\r\n let url = `${M.cfg.wwwroot}/user/pix.php?file=/${userid}/f1.jpg`;\r\n return url;\r\n },\r\n\r\n submit () {\r\n let recipients = \"\";\r\n this.selected_users.forEach(item => {\r\n recipients=recipients.concat(item.id,\",\");\r\n });\r\n this.loader_dialog = true;\r\n this.errors = [];\r\n let data = {\r\n action : \"sendmail\",\r\n subject : this.strings.subject,\r\n recipients : recipients,\r\n text : this.message,\r\n userid : this.userid,\r\n courseid : this.courseid,\r\n moduleid : this.moduleid,\r\n modulename : this.modulename,\r\n };\r\n Axios({\r\n method:'get',\r\n url: M.cfg.wwwroot + \"/local/fliplearning/ajax.php\",\r\n params : data,\r\n }).then((response) => {\r\n if (response.status == 200 && response.data.ok) {\r\n this.$emit('update_dialog', false);\r\n this.$refs.form.reset();\r\n Alertify.success(this.mailsended_text);\r\n } else {\r\n Alertify.error(this.strings.api_error_network);\r\n this.loader_dialog = false;\r\n }\r\n }).catch((e) => {\r\n Alertify.error(this.strings.api_error_network);\r\n }).finally(() => {\r\n this.loader_dialog = false;\r\n });\r\n },\r\n\r\n reset () {\r\n this.$emit('update_dialog', false);\r\n this.$refs.form.resetValidation();\r\n },\r\n\r\n closeDialog() {\r\n this.$emit('update_dialog', false);\r\n }\r\n },\r\n }\r\n return emailform;\r\n})"],"file":"emailform.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/grades.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/grades.min.js new file mode 100644 index 0000000000000000000000000000000000000000..852e0c54b6aec8375787a8aa22c0e3a672684ea1 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/grades.min.js @@ -0,0 +1,2 @@ +define(["local_fliplearning/vue","local_fliplearning/vuetify","local_fliplearning/axios","local_fliplearning/moment","local_fliplearning/pagination","local_fliplearning/chartdynamic","local_fliplearning/pageheader","local_fliplearning/emailform","local_fliplearning/helpdialog"],function(e,t,i,s,a,r,n,d,o){"use strict";return{init:function(s){e.use(t),e.component("pagination",a),e.component("chart",r),e.component("pageheader",n),e.component("emailform",d),e.component("helpdialog",o);let l=new e({delimiters:["[[","]]"],el:"#grades",vuetify:new t,data:()=>({strings:s.strings,groups:s.groups,userid:s.userid,courseid:s.courseid,timezone:s.timezone,render_has:s.profile_render,loading:!1,errors:[],pages:s.pages,grades:s.grades,grade_items_average_colors:s.grade_items_average_colors,item_grades_details_colors:s.item_grades_details_colors,item_grades_distribution_colors:s.item_grades_distribution_colors,default_category:null,average_categories:[],average_data:[],selected_items:[],item_details:[],grade_item_title:"",grade_item_details_categories:[],grade_item_details_data:[],grade_item_distribution_categories:[],grade_item_distribution_data:[],selected_item:null,grade_item_users:null,selected_users:[],dialog:!1,modulename:"",moduleid:!1,email_strings:s.strings.email_strings,help_dialog:!1,help_contents:[],email_object_name:"",course_name:""}),beforeMount(){if(this.grades.categories.length){this.default_category=this.grades.categories[0],this.calculate_chart_items_average(this.default_category.items);let e=this.find_first_grade_item(this.default_category.items);this.update_detail_charts(e),this.course_name=this.grades.categories[0].name.replace(/ /g,"_")}},mounted(){document.querySelector("#sessions-loader").style.display="none",document.querySelector("#grades").style.display="block",setTimeout(function(){l.setGraphicsEventListeners(),l.addListenersCourse()},500)},methods:{get_help_content(){let e=[];return e.push({title:this.strings.section_help_title,description:this.strings.section_help_description}),e},change_category(e){this.calculate_chart_items_average(e);let t=this.find_first_grade_item(e);this.update_detail_charts(t)},addLogsName(e){setTimeout(function(){l.addLogsIntoDB("viewed","course_"+l.course_name,"course","Selected a course")},500),this.change_category(e)},build_grade_items_average_chart(){let e=new Object;return e.chart={type:"column",backgroundColor:null,style:{fontFamily:"poppins"}},e.title={text:null},e.colors=this.grade_items_average_colors,e.xAxis={categories:this.average_categories},e.legend={enabled:!1},e.plotOptions={series:{cursor:"pointer",point:{events:{click:function(){let e=this.x,t=l.selected_items[e];l.update_detail_charts(t)}}}}},e.tooltip={shared:!0,formatter:function(){let e=this.points[0].point.x,t=this.y,i=l.selected_items[e],s=i.gradecount,a=this.x,r=l.strings.view_details,n=Number(i.average),d=l.strings.grades_tooltip_students;1==s&&(d=l.strings.grades_tooltip_student),t=l.isInt(t)?t:t.toFixed(2),n=l.isInt(n)?n:n.toFixed(2);let o=i.grademax;return"<b>"+a+"<b> <br/>"+l.strings.grades_tooltip_average+": "+n+" ("+t+" %)<br/>"+l.strings.grades_tooltip_grade+": "+o+"<br/>"+s+" "+d+" "+l.grades.student_count+"<br/><i>"+r+"</i>"}},e.yAxis=[{allowDecimals:!1,max:100,labels:{format:"{value} %"},title:{text:this.strings.grades_yaxis_title}}],e.series=[{data:this.average_data}],e},build_item_grades_details_chart(){let e=new Object;return e.chart={type:"bar",backgroundColor:null,style:{fontFamily:"poppins"}},e.title={text:null},e.colors=this.item_grades_details_colors,e.xAxis={type:"category"},e.legend={enabled:!1},e.tooltip={shared:!0,formatter:function(){let e=this.points[0].key,t=l.selected_item.itemname,i=l.selected_item.grademax,s=this.y;return"<b>"+t+"<b> <br/>"+e+": "+(s=l.isInt(s)?s:s.toFixed(2))+"/"+i+"<br/>"}},e.yAxis=[{title:{enabled:!1}}],e.series=[{colorByPoint:!0,data:this.grade_item_details_data}],e},build_item_grades_distribution_chart(){let e=new Object;return e.chart={backgroundColor:null,style:{fontFamily:"poppins"}},e.title={text:null},e.colors=this.item_grades_distribution_colors,e.xAxis={categories:this.grade_item_distribution_categories},e.yAxis=[{title:{text:this.strings.grades_distribution_yaxis_title},allowDecimals:!1}],e.legend={enabled:!1},e.tooltip={formatter:function(){let e=l.strings.grades_distribution_tooltip_prefix,t=l.strings.grades_distribution_tooltip_suffix,i=l.strings.send_mail,s=this.x,a=this.y,r=l.strings.students_text;return 1==a&&(r=l.strings.student_text),"<b>"+e+": </b> "+s+" <br/>"+a+" "+r+" "+t+" <br/><i>"+i+"</i>"}},e.plotOptions={series:{stacking:"normal",borderWidth:1,pointPadding:0,groupPadding:0},column:{point:{events:{click:function(){l.email_object_name="item_grades_distribution";let e=this.x;l.selected_users=l.grade_item_users[e],l.email_strings.subject=l.email_strings.subject_prefix+" - "+l.selected_item.itemname,l.dialog=!0}}}}},e.series=[{type:"column",data:this.grade_item_distribution_data},{type:"spline",data:this.grade_item_distribution_data,marker:{lineWidth:1}}],e},calculate_chart_items_average(e){let t=[],i=[];e.forEach(e=>{t.push(e.average_percentage),i.push(e.itemname)}),this.average_categories=i,this.average_data=t,this.selected_items=e},update_detail_charts(e){this.modulename=e.itemmodule,this.moduleid=e.coursemoduleid,this.grade_item_title=e.itemname,this.calculate_chart_item_grade_detail(e),this.calculate_chart_item_grades_distribution(e),this.addLogsIntoDB("viewed",e.itemname,"grade_item","Details about the "+e.itemname+" grade item")},calculate_chart_item_grade_detail(e){this.selected_item=e;let t=[{name:this.strings.grades_best_grade,y:Number(e.maxrating)||0},{name:this.strings.grades_average_grade,y:Number(e.average)||0},{name:this.strings.grades_worst_grade,y:Number(e.minrating)||0}];this.grade_item_details_data=t},calculate_chart_item_grades_distribution(e){let t=this.strings.grades_greater_than,i=[`${t} 90%`,`${t} 80%`,`${t} 70%`,`${t} 60%`,`${t} 50%`,`${this.strings.grades_smaller_than} 50%`],s=[0,0,0,0,0,0],a=[[],[],[],[],[],[]];if(e){let t=[.9,.8,.7,.6,.5,0],r=[],n=e.grademax,d=n;t.forEach(e=>{let t=n*e;r.push({max:d,min:t,count:0}),d=t-.1}),e.grades.forEach(e=>{r.forEach((t,i)=>{e.rawgrade>=t.min&&e.rawgrade<=t.max&&(t.count++,a[i].push(e.user))})}),s=[],r.forEach((e,t)=>{let a=`${this.isInt(e.max)?e.max:e.max.toFixed(1)} - ${this.isInt(e.min)?e.min:e.min.toFixed(1)}<br/>${i[t]}`;i[t]=a,s.push(e.count)})}this.grade_item_users=a,this.grade_item_distribution_categories=i,this.grade_item_distribution_data=s},find_first_grade_item(e){let t;if(e.length){let i=e.length;for(let s=0;s<i;s++)if(e[s].maxrating>0){t=e[s];break}t||(t=e[0])}return t},isInt:e=>e%1==0,update_dialog(e){this.dialog=e},open_chart_help(e){let t=[];var i="",s="",a="",r="";"grade_items_average"==e?(t.push({title:this.strings.grade_items_average_help_title,description:this.strings.grade_items_average_help_description_p1}),t.push({description:this.strings.grade_items_average_help_description_p2}),t.push({description:this.strings.grade_items_average_help_description_p3}),i="viewed",a="help",s="grade_items_average",r="Help section that provides information about the grade items average chart",this.addLogsIntoDB(i,s,a,r)):"item_grades_details"==e?(t.push({title:this.strings.item_grades_details_help_title,description:this.strings.item_grades_details_help_description_p1}),t.push({description:this.strings.item_grades_details_help_description_p2}),i="viewed",a="help",s="item_grades_details",r="Help section that provides information about the item grades details chart",this.addLogsIntoDB(i,s,a,r)):"item_grades_distribution"==e&&(t.push({title:this.strings.item_grades_distribution_help_title,description:this.strings.item_grades_distribution_help_description_p1}),t.push({description:this.strings.item_grades_distribution_help_description_p2}),t.push({description:this.strings.item_grades_distribution_help_description_p3}),i="viewed",a="help",s="item_grades_distribution",r="Help section that provides information about the item grades distribution chart",this.addLogsIntoDB(i,s,a,r)),this.help_contents=t,this.help_contents.length&&(this.help_dialog=!0)},update_help_dialog(e){this.help_dialog=e},get_timezone(){return`${this.strings.ss_change_timezone} ${this.timezone}`},addListenersCourse(){let e=document.getElementsByClassName("v-input__slot");e.length>1?e[1].addEventListener("click",function(){let e=document.getElementsByClassName("v-list v-select-list v-sheet theme--light theme--light")[0].children;for(let t=0;t<e.length;t++)e[t].addEventListener("click",function(){l.course_name=this.children[0].innerText.replace(/ /g,"_")},{once:!0})}):setTimeout(l.addListenersCourse,500)},setGraphicsEventListeners(){let e=document.querySelectorAll(".highcharts-container");e.length<1?setTimeout(l.setGraphicsEventListeners,500):(e[0].id="gradeItemsAverage",e[1].id="itemGradesDetails",e[2].id="itemGradesDistribution",e.forEach(e=>{e.addEventListener("mouseenter",this.addLogsViewGraphic)}))},addLogsViewGraphic(e){event.stopPropagation();var t="",i="",s="",a="";switch(e.target.id){case"gradeItemsAverage":t="viewed",i=l.selected_item.itemname+"_grade_items_average",s="chart",a="Bar chart that shows the average grade for each items of the course";break;case"itemGradesDetails":t="viewed",i=l.selected_item.itemname+"_item_grades_details",s="chart",a="Chart showing details about the selected grades item";break;case"itemGradesDistribution":t="viewed",i=l.selected_item.itemname+"_item_grades_distribution",s="chart",a="Chart showing the distribution of the grades for a selected grades item";break;default:t="viewed",i="",s="chart",a="A chart"}this.addLogsIntoDB(t,i,s,a)},addLogsIntoDB(e,t,a,r){let n={courseid:s.courseid,userid:s.userid,action:"addLogs",sectionname:"GRADES_MONITORING",actiontype:e,objectType:a,objectName:t,currentUrl:document.location.href,objectDescription:r};i({method:"get",url:M.cfg.wwwroot+"/local/fliplearning/ajax.php",params:n}).then(e=>{200==e.status&&e.data.ok}).catch(e=>{})}}})}}}); +//# sourceMappingURL=grades.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/grades.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/grades.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..2073b0db0f794620e92d8bc720c1589eb653320e --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/grades.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/grades.js"],"names":["define","Vue","Vuetify","Axios","Moment","Pagination","ChartDynamic","PageHeader","EmailForm","HelpDialog","init","content","use","component","vue","delimiters","el","vuetify","data","strings","groups","userid","courseid","timezone","render_has","profile_render","loading","errors","pages","grades","grade_items_average_colors","item_grades_details_colors","item_grades_distribution_colors","default_category","average_categories","average_data","selected_items","item_details","grade_item_title","grade_item_details_categories","grade_item_details_data","grade_item_distribution_categories","grade_item_distribution_data","selected_item","grade_item_users","selected_users","dialog","modulename","moduleid","email_strings","help_dialog","help_contents","beforeMount","categories","length","calculate_chart_items_average","items","item","find_first_grade_item","update_detail_charts","mounted","document","querySelector","style","display","methods","get_help_content","contents","title","section_help_title","description","section_help_description","change_category","build_grade_items_average_chart","chart","type","backgroundColor","fontFamily","text","colors","xAxis","legend","enabled","plotOptions","series","cursor","point","events","click","position","x","tooltip","shared","formatter","points","value","y","count","gradecount","name","view_details","average","students_label","grades_tooltip_students","grades_tooltip_student","isInt","toFixed","grademax","grades_tooltip_average","grades_tooltip_grade","student_count","yAxis","allowDecimals","max","labels","format","grades_yaxis_title","build_item_grades_details_chart","category","key","itemname","maxgrade","grade","colorByPoint","build_item_grades_distribution_chart","grades_distribution_yaxis_title","prefix","grades_distribution_tooltip_prefix","suffix","grades_distribution_tooltip_suffix","send_mail","students_text","student_text","stacking","borderWidth","pointPadding","groupPadding","column","subject","subject_prefix","marker","lineWidth","values","forEach","push","average_percentage","itemmodule","coursemoduleid","calculate_chart_item_grade_detail","calculate_chart_item_grades_distribution","item_data","grades_best_grade","maxrating","grades_average_grade","grades_worst_grade","minrating","greater","grades_greater_than","smaller","grades_smaller_than","users","ranges","limit","weight","min","range","index","rawgrade","user","label","i","n","update_dialog","open_chart_help","grade_items_average_help_title","grade_items_average_help_description_p1","grade_items_average_help_description_p2","grade_items_average_help_description_p3","item_grades_details_help_title","item_grades_details_help_description_p1","item_grades_details_help_description_p2","item_grades_distribution_help_title","item_grades_distribution_help_description_p1","item_grades_distribution_help_description_p2","item_grades_distribution_help_description_p3","update_help_dialog","get_timezone","information","ss_change_timezone"],"mappings":"AAAAA,OAAM,6BAAC,CAAC,wBAAD,CACC,4BADD,CAEC,0BAFD,CAGC,2BAHD,CAIC,+BAJD,CAKC,iCALD,CAMC,+BAND,CAOC,8BAPD,CAQC,+BARD,CAAD,CAUF,SAASC,CAAT,CAAcC,CAAd,CAAuBC,CAAvB,CAA8BC,CAA9B,CAAsCC,CAAtC,CAAkDC,CAAlD,CAAgEC,CAAhE,CAA4EC,CAA5E,CAAuFC,CAAvF,CAAmG,CAC/F,aA4aA,MAAO,CACHC,IAAI,CA3aR,SAAcC,CAAd,CAAuB,CAEnBV,CAAG,CAACW,GAAJ,CAAQV,CAAR,EACAD,CAAG,CAACY,SAAJ,CAAc,YAAd,CAA4BR,CAA5B,EACAJ,CAAG,CAACY,SAAJ,CAAc,OAAd,CAAuBP,CAAvB,EACAL,CAAG,CAACY,SAAJ,CAAc,YAAd,CAA4BN,CAA5B,EACAN,CAAG,CAACY,SAAJ,CAAc,WAAd,CAA2BL,CAA3B,EACAP,CAAG,CAACY,SAAJ,CAAc,YAAd,CAA4BJ,CAA5B,EACA,GAAIK,CAAAA,CAAG,CAAG,GAAIb,CAAAA,CAAJ,CAAQ,CACdc,UAAU,CAAE,CAAC,IAAD,CAAO,IAAP,CADE,CAEdC,EAAE,CAAE,SAFU,CAGdC,OAAO,CAAE,GAAIf,CAAAA,CAHC,CAIdgB,IAJc,gBAIP,CACH,MAAO,CACHC,OAAO,CAAGR,CAAO,CAACQ,OADf,CAEHC,MAAM,CAAGT,CAAO,CAACS,MAFd,CAGHC,MAAM,CAAGV,CAAO,CAACU,MAHd,CAIHC,QAAQ,CAAGX,CAAO,CAACW,QAJhB,CAKHC,QAAQ,CAAGZ,CAAO,CAACY,QALhB,CAMHC,UAAU,CAAGb,CAAO,CAACc,cANlB,CAOHC,OAAO,GAPJ,CAQHC,MAAM,CAAG,EARN,CASHC,KAAK,CAAGjB,CAAO,CAACiB,KATb,CAWHC,MAAM,CAAElB,CAAO,CAACkB,MAXb,CAYHC,0BAA0B,CAAEnB,CAAO,CAACmB,0BAZjC,CAaHC,0BAA0B,CAAEpB,CAAO,CAACoB,0BAbjC,CAcHC,+BAA+B,CAAErB,CAAO,CAACqB,+BAdtC,CAeHC,gBAAgB,CAAE,IAff,CAgBHC,kBAAkB,CAAE,EAhBjB,CAiBHC,YAAY,CAAE,EAjBX,CAkBHC,cAAc,CAAE,EAlBb,CAmBHC,YAAY,CAAE,EAnBX,CAqBHC,gBAAgB,CAAE,EArBf,CAsBHC,6BAA6B,CAAE,EAtB5B,CAuBHC,uBAAuB,CAAE,EAvBtB,CAyBHC,kCAAkC,CAAE,EAzBjC,CA0BHC,4BAA4B,CAAE,EA1B3B,CA4BHC,aAAa,CAAE,IA5BZ,CA8BHC,gBAAgB,CAAE,IA9Bf,CA+BHC,cAAc,CAAE,EA/Bb,CAgCHC,MAAM,GAhCH,CAiCHC,UAAU,CAAG,EAjCV,CAkCHC,QAAQ,GAlCL,CAmCHC,aAAa,CAAEtC,CAAO,CAACQ,OAAR,CAAgB8B,aAnC5B,CAqCHC,WAAW,GArCR,CAsCHC,aAAa,CAAE,EAtCZ,CAwCV,CA7Ca,CA8CdC,WA9Cc,uBA8CD,CACT,GAAI,KAAKvB,MAAL,CAAYwB,UAAZ,CAAuBC,MAA3B,CAAmC,CAC/B,KAAKrB,gBAAL,CAAwB,KAAKJ,MAAL,CAAYwB,UAAZ,CAAuB,CAAvB,CAAxB,CACA,KAAKE,6BAAL,CAAmC,KAAKtB,gBAAL,CAAsBuB,KAAzD,EACA,GAAIC,CAAAA,CAAI,CAAG,KAAKC,qBAAL,CAA2B,KAAKzB,gBAAL,CAAsBuB,KAAjD,CAAX,CACA,KAAKG,oBAAL,CAA0BF,CAA1B,CACH,CACJ,CArDa,CAsDdG,OAtDc,mBAsDL,CACLC,QAAQ,CAACC,aAAT,CAAuB,kBAAvB,EAA2CC,KAA3C,CAAiDC,OAAjD,CAA2D,MAA3D,CACAH,QAAQ,CAACC,aAAT,CAAuB,SAAvB,EAAkCC,KAAlC,CAAwCC,OAAxC,CAAkD,OACrD,CAzDa,CA0DdC,OAAO,CAAG,CACNC,gBADM,4BACY,CACd,GAAIC,CAAAA,CAAQ,CAAG,CACD,CACVC,KAAK,CAAE,KAAKjD,OAAL,CAAakD,kBADV,CAEVC,WAAW,CAAE,KAAKnD,OAAL,CAAaoD,wBAFhB,CADC,CAAf,CAKA,MAAOJ,CAAAA,CACV,CARK,CAUNK,eAVM,0BAUUhB,CAVV,CAUiB,CACnB,KAAKD,6BAAL,CAAmCC,CAAnC,EACA,GAAIC,CAAAA,CAAI,CAAG,KAAKC,qBAAL,CAA2BF,CAA3B,CAAX,CACA,KAAKG,oBAAL,CAA0BF,CAA1B,CACH,CAdK,CAgBNgB,+BAhBM,2CAgB4B,CAC9B,GAAIC,CAAAA,CAAK,GAAT,CACAA,CAAK,CAACA,KAAN,CAAc,CACVC,IAAI,CAAE,QADI,CAEVC,eAAe,CAAE,IAFP,CAGVb,KAAK,CAAE,CAACc,UAAU,CAAE,SAAb,CAHG,CAAd,CAKAH,CAAK,CAACN,KAAN,CAAc,CACVU,IAAI,CAAE,IADI,CAAd,CAGAJ,CAAK,CAACK,MAAN,CAAe,KAAKjD,0BAApB,CACA4C,CAAK,CAACM,KAAN,CAAc,CACV3B,UAAU,CAAE,KAAKnB,kBADP,CAAd,CAGAwC,CAAK,CAACO,MAAN,CAAe,CACXC,OAAO,GADI,CAAf,CAGAR,CAAK,CAACS,WAAN,CAAoB,CAChBC,MAAM,CAAE,CACJC,MAAM,CAAE,SADJ,CAEJC,KAAK,CAAE,CACHC,MAAM,CAAE,CACJC,KAAK,CAAE,gBAAY,IACXC,CAAAA,CAAQ,CAAG,KAAKC,CADL,CAEXjC,CAAI,CAAG3C,CAAG,CAACsB,cAAJ,CAAmBqD,CAAnB,CAFI,CAGf3E,CAAG,CAAC6C,oBAAJ,CAAyBF,CAAzB,CACH,CALG,CADL,CAFH,CADQ,CAApB,CAcAiB,CAAK,CAACiB,OAAN,CAAgB,CACZC,MAAM,GADM,CAEZC,SAAS,CAAE,oBAAW,IACdJ,CAAAA,CAAQ,CAAG,KAAKK,MAAL,CAAY,CAAZ,EAAeR,KAAf,CAAqBI,CADlB,CAEdK,CAAK,CAAG,KAAKC,CAFC,CAGdvC,CAAI,CAAG3C,CAAG,CAACsB,cAAJ,CAAmBqD,CAAnB,CAHO,CAIdQ,CAAK,CAAGxC,CAAI,CAACyC,UAJC,CAKdC,CAAI,CAAG,KAAKT,CALE,CAMdU,CAAY,CAAGtF,CAAG,CAACK,OAAJ,CAAYiF,YANb,CAOdC,CAAO,EAAU5C,CAAI,CAAC4C,OAPR,CAQdC,CAAc,CAAGxF,CAAG,CAACK,OAAJ,CAAYoF,uBARf,CASlB,GAAa,CAAT,EAAAN,CAAJ,CAAgB,CACZK,CAAc,CAAGxF,CAAG,CAACK,OAAJ,CAAYqF,sBAChC,CACDT,CAAK,CAAGjF,CAAG,CAAC2F,KAAJ,CAAUV,CAAV,EAAmBA,CAAnB,CAA2BA,CAAK,CAACW,OAAN,CAAc,CAAd,CAAnC,CACAL,CAAO,CAAGvF,CAAG,CAAC2F,KAAJ,CAAUJ,CAAV,EAAqBA,CAArB,CAA+BA,CAAO,CAACK,OAAR,CAAgB,CAAhB,CAAzC,CAbkB,GAcdC,CAAAA,CAAQ,CAAGlD,CAAI,CAACkD,QAdF,CAed7B,CAAI,CAAG,MAAQqB,CAAR,CAAe,WAAf,CACPrF,CAAG,CAACK,OAAJ,CAAYyF,sBADL,CAC8B,IAD9B,CACqCP,CADrC,CAC+C,IAD/C,CACsDN,CADtD,CAC8D,UAD9D,CAEPjF,CAAG,CAACK,OAAJ,CAAY0F,oBAFL,CAE4B,IAF5B,CAEmCF,CAFnC,CAE8C,OAF9C,CAGPV,CAHO,CAGC,GAHD,CAGOK,CAHP,CAGwB,GAHxB,CAG8BxF,CAAG,CAACe,MAAJ,CAAWiF,aAHzC,YAICV,CAJD,CAIgB,MAnBT,CAoBlB,MAAOtB,CAAAA,CACV,CAvBW,CAAhB,CAyBAJ,CAAK,CAACqC,KAAN,CAAc,CAAC,CACXC,aAAa,GADF,CAEXC,GAAG,CAAE,GAFM,CAGXC,MAAM,CAAE,CACJC,MAAM,CAAE,WADJ,CAHG,CAMX/C,KAAK,CAAE,CACHU,IAAI,CAAE,KAAK3D,OAAL,CAAaiG,kBADhB,CANI,CAAD,CAAd,CAUA1C,CAAK,CAACU,MAAN,CAAe,CAAC,CACZlE,IAAI,CAAE,KAAKiB,YADC,CAAD,CAAf,CAGA,MAAOuC,CAAAA,CACV,CAtFK,CAwFN2C,+BAxFM,2CAwF4B,CAC9B,GAAI3C,CAAAA,CAAK,GAAT,CACAA,CAAK,CAACA,KAAN,CAAc,CACVC,IAAI,CAAE,KADI,CAEVC,eAAe,CAAE,IAFP,CAGVb,KAAK,CAAE,CAACc,UAAU,CAAE,SAAb,CAHG,CAAd,CAKAH,CAAK,CAACN,KAAN,CAAc,CACVU,IAAI,CAAE,IADI,CAAd,CAGAJ,CAAK,CAACK,MAAN,CAAe,KAAKhD,0BAApB,CACA2C,CAAK,CAACM,KAAN,CAAc,CACVL,IAAI,CAAE,UADI,CAAd,CAGAD,CAAK,CAACO,MAAN,CAAe,CACXC,OAAO,GADI,CAAf,CAGAR,CAAK,CAACiB,OAAN,CAAgB,CACZC,MAAM,GADM,CAEZC,SAAS,CAAE,oBAAW,IACdyB,CAAAA,CAAQ,CAAG,KAAKxB,MAAL,CAAY,CAAZ,EAAeyB,GADZ,CAEdpB,CAAI,CAAGrF,CAAG,CAAC6B,aAAJ,CAAkB6E,QAFX,CAGdC,CAAQ,CAAG3G,CAAG,CAAC6B,aAAJ,CAAkBgE,QAHf,CAIde,CAAK,CAAG,KAAK1B,CAJC,CAKlB0B,CAAK,CAAG5G,CAAG,CAAC2F,KAAJ,CAAUiB,CAAV,EAAmBA,CAAnB,CAA2BA,CAAK,CAAChB,OAAN,CAAc,CAAd,CAAnC,CACA,GAAI5B,CAAAA,CAAI,CAAG,MAAQqB,CAAR,CAAe,WAAf,CACPmB,CADO,CACI,IADJ,CACWI,CADX,CACmB,GADnB,CACyBD,CADzB,CACoC,OAD/C,CAEA,MAAO3C,CAAAA,CACV,CAXW,CAAhB,CAaAJ,CAAK,CAACqC,KAAN,CAAc,CAAC,CACX3C,KAAK,CAAE,CACHc,OAAO,GADJ,CADI,CAAD,CAAd,CAKAR,CAAK,CAACU,MAAN,CAAe,CAAC,CACZuC,YAAY,GADA,CAEZzG,IAAI,CAAE,KAAKsB,uBAFC,CAAD,CAAf,CAIA,MAAOkC,CAAAA,CACV,CAhIK,CAkINkD,oCAlIM,gDAkIiC,CACnC,GAAIlD,CAAAA,CAAK,GAAT,CACAA,CAAK,CAACA,KAAN,CAAc,CACVE,eAAe,CAAE,IADP,CAEVb,KAAK,CAAE,CAACc,UAAU,CAAE,SAAb,CAFG,CAAd,CAIAH,CAAK,CAACN,KAAN,CAAc,CACVU,IAAI,CAAE,IADI,CAAd,CAGAJ,CAAK,CAACK,MAAN,CAAe,KAAK/C,+BAApB,CACA0C,CAAK,CAACM,KAAN,CAAc,CACV3B,UAAU,CAAE,KAAKZ,kCADP,CAAd,CAGAiC,CAAK,CAACqC,KAAN,CAAc,CAAC,CACX3C,KAAK,CAAE,CACHU,IAAI,CAAE,KAAK3D,OAAL,CAAa0G,+BADhB,CADI,CAIXb,aAAa,GAJF,CAAD,CAAd,CAMAtC,CAAK,CAACO,MAAN,CAAe,CACXC,OAAO,GADI,CAAf,CAGAR,CAAK,CAACiB,OAAN,CAAgB,CACZE,SAAS,CAAE,oBAAW,IACdiC,CAAAA,CAAM,CAAGhH,CAAG,CAACK,OAAJ,CAAY4G,kCADP,CAEdC,CAAM,CAAGlH,CAAG,CAACK,OAAJ,CAAY8G,kCAFP,CAGdC,CAAS,CAAGpH,CAAG,CAACK,OAAJ,CAAY+G,SAHV,CAId/B,CAAI,CAAG,KAAKT,CAJE,CAKdK,CAAK,CAAG,KAAKC,CALC,CAMdM,CAAc,CAAGxF,CAAG,CAACK,OAAJ,CAAYgH,aANf,CAOlB,GAAa,CAAT,EAAApC,CAAJ,CAAgB,CACZO,CAAc,CAAGxF,CAAG,CAACK,OAAJ,CAAYiH,YAChC,CACD,GAAItD,CAAAA,CAAI,CAAG,MAAQgD,CAAR,CAAiB,SAAjB,CAA4B3B,CAA5B,CAAmC,QAAnC,CACLJ,CADK,CACG,GADH,CACSO,CADT,CAC0B,GAD1B,CACgC0B,CADhC,aAEGE,CAFH,CAEe,MAF1B,CAGA,MAAOpD,CAAAA,CACV,CAfW,CAAhB,CAiBAJ,CAAK,CAACS,WAAN,CAAoB,CAChBC,MAAM,CAAE,CACJiD,QAAQ,CAAE,QADN,CAEJC,WAAW,CAAE,CAFT,CAGJC,YAAY,CAAE,CAHV,CAIJC,YAAY,CAAE,CAJV,CADQ,CAOhBC,MAAM,CAAC,CACHnD,KAAK,CAAC,CACFC,MAAM,CAAE,CACJC,KAAK,CAAE,gBAAY,CACf,GAAIC,CAAAA,CAAQ,CAAG,KAAKC,CAApB,CACA5E,CAAG,CAAC+B,cAAJ,CAAqB/B,CAAG,CAAC8B,gBAAJ,CAAqB6C,CAArB,CAArB,CACA3E,CAAG,CAACmC,aAAJ,CAAkByF,OAAlB,CAA4B5H,CAAG,CAACmC,aAAJ,CAAkB0F,cAAlB,CACtB,KADsB,CACd7H,CAAG,CAAC6B,aAAJ,CAAkB6E,QADhC,CAEA1G,CAAG,CAACgC,MAAJ,GACH,CAPG,CADN,CADH,CAPS,CAApB,CAqBA4B,CAAK,CAACU,MAAN,CAAe,CAAC,CACZT,IAAI,CAAE,QADM,CAEZzD,IAAI,CAAE,KAAKwB,4BAFC,CAAD,CAGZ,CACCiC,IAAI,CAAE,QADP,CAECzD,IAAI,CAAE,KAAKwB,4BAFZ,CAGCkG,MAAM,CAAE,CACJC,SAAS,CAAE,CADP,CAHT,CAHY,CAAf,CAUA,MAAOnE,CAAAA,CACV,CAzMK,CA2MNnB,6BA3MM,wCA2MwBC,CA3MxB,CA2M+B,IAC7BsF,CAAAA,CAAM,CAAG,EADoB,CAE7BzF,CAAU,CAAG,EAFgB,CAGjCG,CAAK,CAACuF,OAAN,CAAc,SAAAtF,CAAI,CAAI,CAClBqF,CAAM,CAACE,IAAP,CAAYvF,CAAI,CAACwF,kBAAjB,EACA5F,CAAU,CAAC2F,IAAX,CAAgBvF,CAAI,CAAC+D,QAArB,CACH,CAHD,EAIA,KAAKtF,kBAAL,CAA0BmB,CAA1B,CACA,KAAKlB,YAAL,CAAoB2G,CAApB,CACA,KAAK1G,cAAL,CAAsBoB,CACzB,CArNK,CAuNNG,oBAvNM,+BAuNgBF,CAvNhB,CAuNsB,CACxB,KAAKV,UAAL,CAAkBU,CAAI,CAACyF,UAAvB,CACA,KAAKlG,QAAL,CAAgBS,CAAI,CAAC0F,cAArB,CACA,KAAK7G,gBAAL,CAAwBmB,CAAI,CAAC+D,QAA7B,CACA,KAAK4B,iCAAL,CAAuC3F,CAAvC,EACA,KAAK4F,wCAAL,CAA8C5F,CAA9C,CACH,CA7NK,CA+NN2F,iCA/NM,4CA+N4B3F,CA/N5B,CA+NkC,CACpC,KAAKd,aAAL,CAAqBc,CAArB,CACA,GAAI6F,CAAAA,CAAS,CAAG,CAAC,CACbnD,IAAI,CAAE,KAAKhF,OAAL,CAAaoI,iBADN,CAEbvD,CAAC,CAAE,CAAOvC,CAAI,CAAC+F,SAAZ,EAA0B,CAFhB,CAAD,CAGd,CACErD,IAAI,CAAE,KAAKhF,OAAL,CAAasI,oBADrB,CAEEzD,CAAC,CAAE,CAAOvC,CAAI,CAAC4C,OAAZ,EAAwB,CAF7B,CAHc,CAMb,CACCF,IAAI,CAAE,KAAKhF,OAAL,CAAauI,kBADpB,CAEC1D,CAAC,CAAE,CAAOvC,CAAI,CAACkG,SAAZ,EAA0B,CAF9B,CANa,CAAhB,CAUA,KAAKnH,uBAAL,CAA+B8G,CAClC,CA5OK,CA8OND,wCA9OM,mDA8OmC5F,CA9OnC,CA8OyC,YACvCmG,CAAO,CAAG,KAAKzI,OAAL,CAAa0I,mBADgB,CAEvCC,CAAO,CAAG,KAAK3I,OAAL,CAAa4I,mBAFgB,CAGvC1G,CAAU,CAAG,WACVuG,CADU,mBAEVA,CAFU,mBAGVA,CAHU,mBAIVA,CAJU,mBAKVA,CALU,mBAMVE,CANU,SAH0B,CAUvChB,CAAM,CAAG,CAAC,CAAD,CAAI,CAAJ,CAAO,CAAP,CAAU,CAAV,CAAa,CAAb,CAAgB,CAAhB,CAV8B,CAWvCkB,CAAK,CAAG,CAAC,EAAD,CAAK,EAAL,CAAS,EAAT,CAAa,EAAb,CAAiB,EAAjB,CAAqB,EAArB,CAX+B,CAY3C,GAAIvG,CAAJ,CAAU,IAEFwG,CAAAA,CAAM,CAAG,EAFP,CAGFtD,CAAQ,CAAGlD,CAAI,CAACkD,QAHd,CAIFuD,CAAK,CAAGvD,CAJN,CACQ,CAAC,EAAD,CAAM,EAAN,CAAW,EAAX,CAAgB,EAAhB,CAAqB,EAArB,CAA0B,CAA1B,CAId,CAAQoC,OAAR,CAAgB,SAAAoB,CAAM,CAAI,CACtB,GAAIzC,CAAAA,CAAK,CAAGf,CAAQ,CAAGwD,CAAvB,CACAF,CAAM,CAACjB,IAAP,CAAY,CAAE/B,GAAG,CAAEiD,CAAP,CAAcE,GAAG,CAAE1C,CAAnB,CAA0BzB,KAAK,CAAE,CAAjC,CAAZ,EACAiE,CAAK,CAAGxC,CAAK,CAAG,EACnB,CAJD,EAMAjE,CAAI,CAAC5B,MAAL,CAAYkH,OAAZ,CAAoB,SAAArB,CAAK,CAAI,CACzBuC,CAAM,CAAClB,OAAP,CAAe,SAACsB,CAAD,CAAQC,CAAR,CAAkB,CAC7B,GAAI5C,CAAK,CAAC6C,QAAN,EAAkBF,CAAK,CAACD,GAAxB,EAA+B1C,CAAK,CAAC6C,QAAN,EAAkBF,CAAK,CAACpD,GAA3D,CAAgE,CAC5DoD,CAAK,CAACpE,KAAN,GACA+D,CAAK,CAACM,CAAD,CAAL,CAAatB,IAAb,CAAkBtB,CAAK,CAAC8C,IAAxB,CACH,CACJ,CALD,CAMH,CAPD,EASA1B,CAAM,CAAG,EAAT,CACAmB,CAAM,CAAClB,OAAP,CAAe,SAACsB,CAAD,CAAQC,CAAR,CAAkB,IACzBrD,CAAAA,CAAG,CAAG,CAAI,CAACR,KAAL,CAAW4D,CAAK,CAACpD,GAAjB,EAAwBoD,CAAK,CAACpD,GAA9B,CAAoCoD,CAAK,CAACpD,GAAN,CAAUP,OAAV,CAAkB,CAAlB,CADjB,CAEzB0D,CAAG,CAAG,CAAI,CAAC3D,KAAL,CAAW4D,CAAK,CAACD,GAAjB,EAAwBC,CAAK,CAACD,GAA9B,CAAoCC,CAAK,CAACD,GAAN,CAAU1D,OAAV,CAAkB,CAAlB,CAFjB,CAGzB+D,CAAK,WAAMxD,CAAN,eAAemD,CAAf,iBAA0B/G,CAAU,CAACiH,CAAD,CAApC,CAHoB,CAI7BjH,CAAU,CAACiH,CAAD,CAAV,CAAoBG,CAApB,CACA3B,CAAM,CAACE,IAAP,CAAYqB,CAAK,CAACpE,KAAlB,CACH,CAND,CAOH,CACD,KAAKrD,gBAAL,CAAwBoH,CAAxB,CACA,KAAKvH,kCAAL,CAA0CY,CAA1C,CACA,KAAKX,4BAAL,CAAoCoG,CACvC,CA1RK,CA4RNpF,qBA5RM,gCA4RgBF,CA5RhB,CA4RuB,CACzB,GAAIC,CAAAA,CAAJ,CACA,GAAID,CAAK,CAACF,MAAV,CAAkB,CAEd,OADI2C,CAAAA,CAAK,CAAGzC,CAAK,CAACF,MAClB,CAASoH,CAAC,CAAG,CAAb,CAAgBA,CAAC,CAAGzE,CAApB,CAA2ByE,CAAC,EAA5B,CAAgC,CAC5B,GAAyB,CAArB,CAAAlH,CAAK,CAACkH,CAAD,CAAL,CAASlB,SAAb,CAA4B,CACxB/F,CAAI,CAAGD,CAAK,CAACkH,CAAD,CAAZ,CACA,KACH,CACJ,CACD,GAAI,CAACjH,CAAL,CAAW,CACPA,CAAI,CAAGD,CAAK,CAAC,CAAD,CACf,CACJ,CACD,MAAOC,CAAAA,CACV,CA3SK,CA6SNgD,KA7SM,gBA6SAkE,CA7SA,CA6SG,CACL,MAAiB,EAAV,EAAAA,CAAC,CAAG,CACd,CA/SK,CAiTNC,aAjTM,wBAiTS7E,CAjTT,CAiTgB,CAClB,KAAKjD,MAAL,CAAciD,CACjB,CAnTK,CAqTN8E,eArTM,0BAqTUnG,CArTV,CAqTiB,CACnB,GAAIP,CAAAA,CAAQ,CAAG,EAAf,CACA,GAAa,qBAAT,EAAAO,CAAJ,CAAoC,CAChCP,CAAQ,CAAC6E,IAAT,CAAc,CACV5E,KAAK,CAAE,KAAKjD,OAAL,CAAa2J,8BADV,CAEVxG,WAAW,CAAE,KAAKnD,OAAL,CAAa4J,uCAFhB,CAAd,EAIA5G,CAAQ,CAAC6E,IAAT,CAAc,CACV1E,WAAW,CAAE,KAAKnD,OAAL,CAAa6J,uCADhB,CAAd,EAGA7G,CAAQ,CAAC6E,IAAT,CAAc,CACV1E,WAAW,CAAE,KAAKnD,OAAL,CAAa8J,uCADhB,CAAd,CAGH,CAXD,IAWO,IAAa,qBAAT,EAAAvG,CAAJ,CAAoC,CACvCP,CAAQ,CAAC6E,IAAT,CAAc,CACV5E,KAAK,CAAE,KAAKjD,OAAL,CAAa+J,8BADV,CAEV5G,WAAW,CAAE,KAAKnD,OAAL,CAAagK,uCAFhB,CAAd,EAIAhH,CAAQ,CAAC6E,IAAT,CAAc,CACV1E,WAAW,CAAE,KAAKnD,OAAL,CAAaiK,uCADhB,CAAd,CAGH,CARM,IAQA,IAAa,0BAAT,EAAA1G,CAAJ,CAAyC,CAC5CP,CAAQ,CAAC6E,IAAT,CAAc,CACV5E,KAAK,CAAE,KAAKjD,OAAL,CAAakK,mCADV,CAEV/G,WAAW,CAAE,KAAKnD,OAAL,CAAamK,4CAFhB,CAAd,EAIAnH,CAAQ,CAAC6E,IAAT,CAAc,CACV1E,WAAW,CAAE,KAAKnD,OAAL,CAAaoK,4CADhB,CAAd,EAGApH,CAAQ,CAAC6E,IAAT,CAAc,CACV1E,WAAW,CAAE,KAAKnD,OAAL,CAAaqK,4CADhB,CAAd,CAGH,CACD,KAAKrI,aAAL,CAAqBgB,CAArB,CACA,GAAI,KAAKhB,aAAL,CAAmBG,MAAvB,CAA+B,CAC3B,KAAKJ,WAAL,GACH,CACJ,CA1VK,CA4VNuI,kBA5VM,6BA4Vc1F,CA5Vd,CA4VqB,CACvB,KAAK7C,WAAL,CAAmB6C,CACtB,CA9VK,CAgWN2F,YAhWM,wBAgWQ,CACV,GAAIC,CAAAA,CAAW,WAAM,KAAKxK,OAAL,CAAayK,kBAAnB,aAAyC,KAAKrK,QAA9C,CAAf,CACA,MAAOoK,CAAAA,CACV,CAnWK,CA1DI,CAAR,CAgab,CAEM,CAGV,CA1bC,CAAN","sourcesContent":["define([\"local_fliplearning/vue\",\r\n \"local_fliplearning/vuetify\",\r\n \"local_fliplearning/axios\",\r\n \"local_fliplearning/moment\",\r\n \"local_fliplearning/pagination\",\r\n \"local_fliplearning/chartdynamic\",\r\n \"local_fliplearning/pageheader\",\r\n \"local_fliplearning/emailform\",\r\n \"local_fliplearning/helpdialog\",\r\n ],\r\n function(Vue, Vuetify, Axios, Moment, Pagination, ChartDynamic, PageHeader, EmailForm, HelpDialog) {\r\n \"use strict\";\r\n\r\n function init(content) {\r\n // console.log(content);\r\n Vue.use(Vuetify);\r\n Vue.component('pagination', Pagination);\r\n Vue.component('chart', ChartDynamic);\r\n Vue.component('pageheader', PageHeader);\r\n Vue.component('emailform', EmailForm);\r\n Vue.component('helpdialog', HelpDialog);\r\n let vue = new Vue({\r\n delimiters: [\"[[\", \"]]\"],\r\n el: \"#grades\",\r\n vuetify: new Vuetify(),\r\n data() {\r\n return {\r\n strings : content.strings,\r\n groups : content.groups,\r\n userid : content.userid,\r\n courseid : content.courseid,\r\n timezone : content.timezone,\r\n render_has : content.profile_render,\r\n loading : false,\r\n errors : [],\r\n pages : content.pages,\r\n\r\n grades: content.grades,\r\n grade_items_average_colors: content.grade_items_average_colors,\r\n item_grades_details_colors: content.item_grades_details_colors,\r\n item_grades_distribution_colors: content.item_grades_distribution_colors,\r\n default_category: null,\r\n average_categories: [],\r\n average_data: [],\r\n selected_items: [],\r\n item_details: [],\r\n\r\n grade_item_title: \"\",\r\n grade_item_details_categories: [],\r\n grade_item_details_data: [],\r\n\r\n grade_item_distribution_categories: [],\r\n grade_item_distribution_data: [],\r\n\r\n selected_item: null,\r\n\r\n grade_item_users: null,\r\n selected_users: [],\r\n dialog : false,\r\n modulename : \"\",\r\n moduleid : false,\r\n email_strings: content.strings.email_strings,\r\n\r\n help_dialog: false,\r\n help_contents: [],\r\n }\r\n },\r\n beforeMount(){\r\n if (this.grades.categories.length) {\r\n this.default_category = this.grades.categories[0];\r\n this.calculate_chart_items_average(this.default_category.items);\r\n let item = this.find_first_grade_item(this.default_category.items);\r\n this.update_detail_charts(item);\r\n };\r\n },\r\n mounted(){\r\n document.querySelector(\"#sessions-loader\").style.display = \"none\";\r\n document.querySelector(\"#grades\").style.display = \"block\";\r\n },\r\n methods : {\r\n get_help_content(){\r\n let contents = [];\r\n contents.push({\r\n title: this.strings.section_help_title,\r\n description: this.strings.section_help_description,\r\n });\r\n return contents;\r\n },\r\n\r\n change_category(items) {\r\n this.calculate_chart_items_average(items);\r\n let item = this.find_first_grade_item(items);\r\n this.update_detail_charts(item);\r\n },\r\n\r\n build_grade_items_average_chart() {\r\n let chart = new Object();\r\n chart.chart = {\r\n type: 'column',\r\n backgroundColor: null,\r\n style: {fontFamily: 'poppins'},\r\n };\r\n chart.title = {\r\n text: null\r\n };\r\n chart.colors = this.grade_items_average_colors;\r\n chart.xAxis = {\r\n categories: this.average_categories\r\n };\r\n chart.legend = {\r\n enabled: false\r\n };\r\n chart.plotOptions = {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: function () {\r\n let position = this.x;\r\n let item = vue.selected_items[position];\r\n vue.update_detail_charts(item);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n chart.tooltip = {\r\n shared: true,\r\n formatter: function() {\r\n let position = this.points[0].point.x;\r\n let value = this.y;\r\n let item = vue.selected_items[position];\r\n let count = item.gradecount;\r\n let name = this.x;\r\n let view_details = vue.strings.view_details;\r\n let average = Number(item.average);\r\n let students_label = vue.strings.grades_tooltip_students;\r\n if (count == 1) {\r\n students_label = vue.strings.grades_tooltip_student;\r\n }\r\n value = vue.isInt(value) ? value : value.toFixed(2);\r\n average = vue.isInt(average) ? average : average.toFixed(2);\r\n let grademax = item.grademax;\r\n let text = '<b>' + name + '<b> <br/>' +\r\n vue.strings.grades_tooltip_average + ': ' + average + ' (' + value + ' %)<br/>' +\r\n vue.strings.grades_tooltip_grade + ': ' + grademax + '<br/>' +\r\n count + ' ' + students_label + ' ' + vue.grades.student_count + '<br/>' +\r\n '<i>' + view_details + '</i>';\r\n return text;\r\n }\r\n };\r\n chart.yAxis = [{\r\n allowDecimals: false,\r\n max: 100,\r\n labels: {\r\n format: '{value} %',\r\n },\r\n title: {\r\n text: this.strings.grades_yaxis_title,\r\n }\r\n }];\r\n chart.series = [{\r\n data: this.average_data,\r\n }];\r\n return chart;\r\n },\r\n\r\n build_item_grades_details_chart() {\r\n let chart = new Object();\r\n chart.chart = {\r\n type: 'bar',\r\n backgroundColor: null,\r\n style: {fontFamily: 'poppins'},\r\n };\r\n chart.title = {\r\n text: null,\r\n };\r\n chart.colors = this.item_grades_details_colors;\r\n chart.xAxis = {\r\n type: 'category',\r\n };\r\n chart.legend = {\r\n enabled: false\r\n };\r\n chart.tooltip = {\r\n shared: true,\r\n formatter: function() {\r\n let category = this.points[0].key;\r\n let name = vue.selected_item.itemname;\r\n let maxgrade = vue.selected_item.grademax;\r\n let grade = this.y;\r\n grade = vue.isInt(grade) ? grade : grade.toFixed(2);\r\n let text = '<b>' + name + '<b> <br/>' +\r\n category + ': ' + grade + '/' + maxgrade + '<br/>';\r\n return text;\r\n }\r\n };\r\n chart.yAxis = [{\r\n title: {\r\n enabled: false,\r\n }\r\n }];\r\n chart.series = [{\r\n colorByPoint: true,\r\n data: this.grade_item_details_data,\r\n }];\r\n return chart;\r\n },\r\n\r\n build_item_grades_distribution_chart() {\r\n let chart = new Object();\r\n chart.chart = {\r\n backgroundColor: null,\r\n style: {fontFamily: 'poppins'},\r\n };\r\n chart.title = {\r\n text: null,\r\n };\r\n chart.colors = this.item_grades_distribution_colors;\r\n chart.xAxis = {\r\n categories: this.grade_item_distribution_categories\r\n };\r\n chart.yAxis = [{\r\n title: {\r\n text: this.strings.grades_distribution_yaxis_title,\r\n },\r\n allowDecimals: false,\r\n }];\r\n chart.legend = {\r\n enabled: false\r\n };\r\n chart.tooltip = {\r\n formatter: function() {\r\n let prefix = vue.strings.grades_distribution_tooltip_prefix;\r\n let suffix = vue.strings.grades_distribution_tooltip_suffix;\r\n let send_mail = vue.strings.send_mail;\r\n let name = this.x;\r\n let value = this.y;\r\n let students_label = vue.strings.students_text;\r\n if (value == 1) {\r\n students_label = vue.strings.student_text;\r\n }\r\n let text = '<b>' + prefix + ': </b> '+ name + ' <br/>'\r\n + value + ' ' + students_label + ' ' + suffix + ' <br/>'\r\n + '<i>' + send_mail + '</i>';\r\n return text;\r\n }\r\n };\r\n chart.plotOptions = {\r\n series: {\r\n stacking: 'normal',\r\n borderWidth: 1,\r\n pointPadding: 0,\r\n groupPadding: 0,\r\n },\r\n column:{\r\n point:{\r\n events: {\r\n click: function () {\r\n let position = this.x;\r\n vue.selected_users = vue.grade_item_users[position];\r\n vue.email_strings.subject = vue.email_strings.subject_prefix\r\n + \" - \" + vue.selected_item.itemname;\r\n vue.dialog = true;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n chart.series = [{\r\n type: 'column',\r\n data: this.grade_item_distribution_data\r\n }, {\r\n type: 'spline',\r\n data: this.grade_item_distribution_data,\r\n marker: {\r\n lineWidth: 1,\r\n }\r\n }];\r\n return chart;\r\n },\r\n\r\n calculate_chart_items_average(items) {\r\n let values = [];\r\n let categories = [];\r\n items.forEach(item => {\r\n values.push(item.average_percentage);\r\n categories.push(item.itemname);\r\n });\r\n this.average_categories = categories;\r\n this.average_data = values;\r\n this.selected_items = items;\r\n },\r\n\r\n update_detail_charts (item) {\r\n this.modulename = item.itemmodule;\r\n this.moduleid = item.coursemoduleid;\r\n this.grade_item_title = item.itemname;\r\n this.calculate_chart_item_grade_detail(item);\r\n this.calculate_chart_item_grades_distribution(item);\r\n },\r\n\r\n calculate_chart_item_grade_detail(item) {\r\n this.selected_item = item;\r\n let item_data = [{\r\n name: this.strings.grades_best_grade,\r\n y: Number(item.maxrating) || 0\r\n },{\r\n name: this.strings.grades_average_grade,\r\n y: Number(item.average) || 0\r\n }, {\r\n name: this.strings.grades_worst_grade,\r\n y: Number(item.minrating) || 0\r\n }];\r\n this.grade_item_details_data = item_data;\r\n },\r\n\r\n calculate_chart_item_grades_distribution(item) {\r\n let greater = this.strings.grades_greater_than;\r\n let smaller = this.strings.grades_smaller_than;\r\n let categories = [\r\n `${greater} 90%`,\r\n `${greater} 80%`,\r\n `${greater} 70%`,\r\n `${greater} 60%`,\r\n `${greater} 50%`,\r\n `${smaller} 50%`];\r\n let values = [0, 0, 0, 0, 0, 0];\r\n let users = [[], [], [], [], [], []];\r\n if (item) {\r\n let weights = [0.9, 0.8, 0.7, 0.6, 0.5, 0];\r\n let ranges = [];\r\n let grademax = item.grademax;\r\n let limit = grademax;\r\n weights.forEach(weight => {\r\n let grade = grademax * weight;\r\n ranges.push({ max: limit, min: grade, count: 0});\r\n limit = grade - 0.1;\r\n });\r\n\r\n item.grades.forEach(grade => {\r\n ranges.forEach((range, index) => {\r\n if (grade.rawgrade >= range.min && grade.rawgrade <= range.max) {\r\n range.count++;\r\n users[index].push(grade.user);\r\n }\r\n });\r\n });\r\n\r\n values = [];\r\n ranges.forEach((range, index) => {\r\n let max = this.isInt(range.max) ? range.max : range.max.toFixed(1);\r\n let min = this.isInt(range.min) ? range.min : range.min.toFixed(1);\r\n let label = `${max} - ${min}<br/>${categories[index]}`;\r\n categories[index] = label;\r\n values.push(range.count);\r\n });\r\n }\r\n this.grade_item_users = users;\r\n this.grade_item_distribution_categories = categories,\r\n this.grade_item_distribution_data = values;\r\n },\r\n\r\n find_first_grade_item(items) {\r\n let item;\r\n if (items.length) {\r\n let count = items.length;\r\n for (let i = 0; i < count; i++) {\r\n if (items[i].maxrating > 0) {\r\n item = items[i];\r\n break;\r\n }\r\n }\r\n if (!item) {\r\n item = items[0];\r\n }\r\n }\r\n return item;\r\n },\r\n\r\n isInt(n) {\r\n return n % 1 === 0;\r\n },\r\n\r\n update_dialog (value) {\r\n this.dialog = value;\r\n },\r\n\r\n open_chart_help(chart) {\r\n let contents = [];\r\n if (chart == \"grade_items_average\") {\r\n contents.push({\r\n title: this.strings.grade_items_average_help_title,\r\n description: this.strings.grade_items_average_help_description_p1,\r\n });\r\n contents.push({\r\n description: this.strings.grade_items_average_help_description_p2,\r\n });\r\n contents.push({\r\n description: this.strings.grade_items_average_help_description_p3,\r\n });\r\n } else if (chart == \"item_grades_details\") {\r\n contents.push({\r\n title: this.strings.item_grades_details_help_title,\r\n description: this.strings.item_grades_details_help_description_p1,\r\n });\r\n contents.push({\r\n description: this.strings.item_grades_details_help_description_p2,\r\n });\r\n } else if (chart == \"item_grades_distribution\") {\r\n contents.push({\r\n title: this.strings.item_grades_distribution_help_title,\r\n description: this.strings.item_grades_distribution_help_description_p1,\r\n });\r\n contents.push({\r\n description: this.strings.item_grades_distribution_help_description_p2,\r\n });\r\n contents.push({\r\n description: this.strings.item_grades_distribution_help_description_p3,\r\n });\r\n }\r\n this.help_contents = contents;\r\n if (this.help_contents.length) {\r\n this.help_dialog = true;\r\n }\r\n },\r\n\r\n update_help_dialog (value) {\r\n this.help_dialog = value;\r\n },\r\n\r\n get_timezone(){\r\n let information = `${this.strings.ss_change_timezone} ${this.timezone}`\r\n return information;\r\n },\r\n }\r\n })\r\n }\r\n\r\n return {\r\n init : init\r\n };\r\n });"],"file":"grades.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/graph.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/graph.min.js new file mode 100644 index 0000000000000000000000000000000000000000..49014beecd70f24a6f79675a167a517f3dbc18b4 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/graph.min.js @@ -0,0 +1,2 @@ +define ("local_fliplearning/graph",["local_fliplearning/vue","local_fliplearning/vuetify","local_fliplearning/chartdynamic"],function(a,b,c){"use strict";M.cfg.wwwroot;return{init:function(d){console.log({chart:d.chart});a.use(b);a.component("chart",c);new a({delimiters:["[[","]]"],el:"#graph1",vuetify:new b,data:function data(){return{chart:d.chart}},mounted:function mounted(){document.querySelector("#pd-loader").style.display="none";document.querySelector("#graph1").style.display="block"},methods:{}})}}}); +//# sourceMappingURL=graph.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/graph.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/graph.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..be903b873e9ee748cfc17da5eac1aa42d20be845 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/graph.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/graph.js"],"names":["define","Vue","Vuetify","ChartDynamic","M","cfg","wwwroot","init","content","console","log","chart","use","component","delimiters","el","vuetify","data","mounted","document","querySelector","style","display","methods"],"mappings":"AAAAA,OAAM,4BAAC,CAAC,wBAAD,CACC,4BADD,CAEC,iCAFD,CAAD,CAIF,SAASC,CAAT,CAAcC,CAAd,CAAuBC,CAAvB,CAAqC,CACjC,aACcC,CAAC,CAACC,GAAF,CAAMC,OAFa,CA6BjC,MAAO,CACHC,IAAI,CA1BR,SAAcC,CAAd,CAAuB,CACnBC,OAAO,CAACC,GAAR,CAAY,CAACC,KAAK,CAAEH,CAAO,CAACG,KAAhB,CAAZ,EAEAV,CAAG,CAACW,GAAJ,CAAQV,CAAR,EACAD,CAAG,CAACY,SAAJ,CAAc,OAAd,CAAuBV,CAAvB,EAEA,GAAIF,CAAAA,CAAJ,CAAQ,CACJa,UAAU,CAAE,CAAC,IAAD,CAAO,IAAP,CADR,CAEJC,EAAE,CAAE,SAFA,CAGJC,OAAO,CAAE,GAAId,CAAAA,CAHT,CAIJe,IAJI,gBAIG,CACH,MAAO,CACHN,KAAK,CAAEH,CAAO,CAACG,KADZ,CAGV,CARG,CASJO,OATI,mBASM,CACNC,QAAQ,CAACC,aAAT,CAAuB,YAAvB,EAAqCC,KAArC,CAA2CC,OAA3C,CAAqD,MAArD,CACAH,QAAQ,CAACC,aAAT,CAAuB,SAAvB,EAAkCC,KAAlC,CAAwCC,OAAxC,CAAkD,OACrD,CAZG,CAaJC,OAAO,CAAE,EAbL,CAAR,CAiBH,CAEM,CAGV,CApCC,CAAN","sourcesContent":["define([\"local_fliplearning/vue\",\n \"local_fliplearning/vuetify\",\n \"local_fliplearning/chartdynamic\",\n ],\n function(Vue, Vuetify, ChartDynamic) {\n \"use strict\";\n let wwwroot = M.cfg.wwwroot;\n\n function init(content) {\n console.log({chart: content.chart});\n\n Vue.use(Vuetify);\n Vue.component('chart', ChartDynamic);\n\n new Vue({\n delimiters: [\"[[\", \"]]\"],\n el: \"#graph1\",\n vuetify: new Vuetify(),\n data() {\n return {\n chart: content.chart,\n };\n },\n mounted() {\n document.querySelector(\"#pd-loader\").style.display = \"none\";\n document.querySelector(\"#graph1\").style.display = \"block\";\n },\n methods: {\n }\n });\n\n }\n\n return {\n init: init\n };\n });"],"file":"graph.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/helpdialog.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/helpdialog.min.js new file mode 100644 index 0000000000000000000000000000000000000000..a9bada55950d2c44210f92d94811edf38e2387bc --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/helpdialog.min.js @@ -0,0 +1,2 @@ +define([],function(){return{template:'\n <v-main mt-10>\n <v-row>\n <v-dialog\n v-model="dialog"\n max-width="700px"\n @click:outside="closeDialog()"\n @keydown.esc="closeDialog()"\n > \n <v-card>\n <v-card-title class="headline lighten-2 d-flex justify-center help-dialog-title">\n <span v-text="title" class="help-modal-title mr-2"></span><v-icon color="white">help_outline</v-icon>\n </v-card-title>\n <v-card-text class="pt-4 pb-4 pr-8 pl-8 help-dialog-content">\n <template v-for="(help, index, key) in contents">\n <v-layout class="mb-2" :key="key" column>\n <v-flex class="d-flex justify-center">\n <span class="fliplearning-sub-title mb-2" v-html="help.title"></span>\n </v-flex>\n <p v-html="help.description" class="text-justify"></p>\n </v-layout>\n </template>\n </v-card-text>\n <v-divider class="ma-0"></v-divider>\n <v-card-actions class="d-flex justify-center help-dialog-footer">\n <v-btn text @click="closeDialog" v-text="exit" class="ma-0 fml-btn-secondary"></v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n </v-row>\n </v-main>\n ',props:["dialog","title","contents","exit"],methods:{closeDialog(){this.$emit("update_dialog",!1)}}}}); +//# sourceMappingURL=helpdialog.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/helpdialog.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/helpdialog.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..8bdbdd1acbcdea645518e7dd73d39afcfeb4ebfa --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/helpdialog.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/helpdialog.js"],"names":["define","template","props","methods","closeDialog","$emit"],"mappings":"AAAAA,OAAM,iCAAC,EAAD,CACF,UAAW,CAyCP,MAxCmB,CACfC,QAAQ,y8DADO,CAiCfC,KAAK,CAAC,CAAC,QAAD,CAAW,OAAX,CAAoB,UAApB,CAAgC,MAAhC,CAjCS,CAkCfC,OAAO,CAAG,CACNC,WADM,uBACQ,CACV,KAAKC,KAAL,CAAW,eAAX,IACH,CAHK,CAlCK,CAyCtB,CA3CC,CAAN","sourcesContent":["define([],\r\n function (){\r\n const helpdialog = {\r\n template:`\r\n <v-main mt-10>\r\n <v-row>\r\n <v-dialog\r\n v-model=\"dialog\"\r\n max-width=\"700px\"\r\n @click:outside=\"closeDialog()\"\r\n @keydown.esc=\"closeDialog()\"\r\n > \r\n <v-card>\r\n <v-card-title class=\"headline lighten-2 d-flex justify-center help-dialog-title\">\r\n <span v-text=\"title\" class=\"help-modal-title mr-2\"></span><v-icon color=\"white\">help_outline</v-icon>\r\n </v-card-title>\r\n <v-card-text class=\"pt-4 pb-4 pr-8 pl-8 help-dialog-content\">\r\n <template v-for=\"(help, index, key) in contents\">\r\n <v-layout class=\"mb-2\" :key=\"key\" column>\r\n <v-flex class=\"d-flex justify-center\">\r\n <span class=\"fliplearning-sub-title mb-2\" v-html=\"help.title\"></span>\r\n </v-flex>\r\n <p v-html=\"help.description\" class=\"text-justify\"></p>\r\n </v-layout>\r\n </template>\r\n </v-card-text>\r\n <v-divider class=\"ma-0\"></v-divider>\r\n <v-card-actions class=\"d-flex justify-center help-dialog-footer\">\r\n <v-btn text @click=\"closeDialog\" v-text=\"exit\" class=\"ma-0 fml-btn-secondary\"></v-btn>\r\n </v-card-actions>\r\n </v-card>\r\n </v-dialog>\r\n </v-row>\r\n </v-main>\r\n `,\r\n props:['dialog', 'title', 'contents', 'exit'],\r\n methods : {\r\n closeDialog() {\r\n this.$emit('update_dialog', false);\r\n },\r\n },\r\n }\r\n return helpdialog;\r\n })"],"file":"helpdialog.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/logs.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/logs.min.js new file mode 100644 index 0000000000000000000000000000000000000000..a4ff0d9e87bbabacee06cd3f9435ed4b90667dad --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/logs.min.js @@ -0,0 +1,2 @@ +define(["local_fliplearning/vue","local_fliplearning/vuetify","local_fliplearning/axios","local_fliplearning/moment","local_fliplearning/pagination","local_fliplearning/pageheader","local_fliplearning/helpdialog","local_fliplearning/alertify"],function(e,t,o,l,n,i,s,d){"use strict";return{init:function(l){o.defaults.timeout=72e5,e.use(t),e.component("pagination",n),e.component("pageheader",i),e.component("helpdialog",s),new e({delimiters:["[[","]]"],el:"#logs",vuetify:new t,data(){return{calendarData:{},strings:l.strings,groups:l.groups,userid:l.userid,courseid:l.courseid,timezone:l.timezone,render_has:l.profile_render,courseRole:l.courseRole,loading:!1,errors:[],pages:l.pages,help_dialog:!1,help_contents:[],dateRules:[e=>!!e||this.strings.logs_invalid_date]}},beforeMount(){document.querySelector("#downloadButtonMoodle").style.display="none",document.querySelector("#downloadButtonNMP").style.display="none"},mounted(){document.querySelector(".v-application--wrap").style.minHeight="60vh",document.querySelector("#sessions-loader").style.display="none",document.querySelector("#helpMoodle").style.display="block",document.querySelector("#helpNMP").style.display="block",document.querySelector("#downloadButtonMoodle").style.display="block",document.querySelector("#downloadButtonNMP").style.display="block"},methods:{get_Moodlefile(){let e=document.querySelector("#lastDateMoodle"),t=document.querySelector("#beginDateMoodle"),l=0,n=0,i=[],s=[];this.url=!1,this.loading=!0;var r={action:"downloadMOODLElogs",courseid:this.courseid,userid:this.userid,beginDate:t.value,lastDate:e.value,currentUrl:window.location.href};""!=t.value&&""!=e.value?(i=t.value.split("-"),l=new Date(i[0],i[1]-1,i[2]),s=e.value.split("-"),n=new Date(s[0],s[1]-1,s[2]),l.getTime()<=n.getTime()?l.getTime()<=Date.now()?(document.querySelector("#downloadButtonMoodle").innerHTML=this.strings.logs_download_btn,document.getElementById("downloadButtonMoodle").disabled=!0,o({method:"get",url:M.cfg.wwwroot+"/local/fliplearning/ajax.php",timeout:72e5,params:r}).then(o=>{if(this.loading=!1,200==o.status&&o.data.ok){let n=M.cfg.wwwroot+"/local/fliplearning/downloads/"+o.data.data.filename;this.url=n;var l=document.createElement("a");l.href=this.url,l.download="MoodleLogs_"+t.value+"_"+e.value+".csv",l.click(),document.querySelector("#downloadButtonMoodle").innerHTML=this.strings.logs_valid_Moodlebtn,document.getElementById("downloadButtonMoodle").disabled=!1,d.success(this.strings.logs_success_file_downloaded)}else d.error(this.strings.logs_error_problem_encountered),document.querySelector("#downloadButtonMoodle").innerHTML=this.strings.logs_valid_Moodlebtn,document.getElementById("downloadButtonMoodle").disabled=!1}).catch(e=>{d.error(this.strings.logs_error_problem_encountered),this.loading=!1,document.querySelector("#downloadButtonMoodle").innerHTML=this.strings.logs_valid_Moodlebtn,document.getElementById("downloadButtonMoodle").disabled=!1}).finally(()=>{this.loading=!1,document.querySelector("#downloadButtonMoodle").innerHTML=this.strings.logs_valid_Moodlebtn,document.getElementById("downloadButtonMoodle").disabled=!1})):d.error(this.strings.logs_error_begin_date_superior):d.error(this.strings.logs_error_begin_date_inferior)):d.error(this.strings.logs_error_empty_dates)},getRapport(){d.confirm(this.strings.logs_download_details_description,()=>{let e=M.cfg.wwwroot+"/local/fliplearning/downloads/Details_Informations_LogsNMP.pdf";var t=document.createElement("a");t.href=e,t.download="Details_Informations_LogsNMP.pdf",t.click(),d.success(this.strings.logs_download_details_validation)}).set({title:this.strings.logs_download_details_title}).set({labels:{cancel:this.strings.logs_download_details_cancel,ok:this.strings.logs_download_details_ok}})},get_NMPfile(){let e=document.querySelector("#lastDateNMP"),t=document.querySelector("#beginDateNMP"),l=0,n=0,i=[],s=[];this.url=!1,this.loading=!0;var r={action:"downloadNMPlogs",courseid:this.courseid,userid:this.userid,beginDate:t.value,lastDate:e.value,currentUrl:window.location.href};""!=t.value&&""!=e.value?(i=t.value.split("-"),l=new Date(i[0],i[1]-1,i[2]),s=e.value.split("-"),n=new Date(s[0],s[1]-1,s[2]),l.getTime()<=n.getTime()?l.getTime()<=Date.now()?(document.querySelector("#downloadButtonNMP").innerHTML=this.strings.logs_download_btn,document.getElementById("downloadButtonNMP").disabled=!0,o({method:"get",url:M.cfg.wwwroot+"/local/fliplearning/ajax.php",timeout:72e5,params:r}).then(o=>{if(this.loading=!1,200==o.status&&o.data.ok){if(""!=t.value||""!=e.value){let n=M.cfg.wwwroot+"/local/fliplearning/downloads/"+o.data.data.filename;this.url=n;var l=document.createElement("a");l.href=this.url,l.download="NMPLogs_"+t.value+"_"+e.value+".csv",l.click(),document.querySelector("#downloadButtonNMP").innerHTML=this.strings.logs_valid_NMPbtn,document.getElementById("downloadButtonNMP").disabled=!1,d.success(this.strings.logs_success_file_downloaded)}}else d.error(this.strings.logs_error_problem_encountered),document.querySelector("#downloadButtonNMP").innerHTML=this.strings.logs_valid_NMPbtn,document.getElementById("downloadButtonNMP").disabled=!1}).catch(e=>{d.error(this.strings.logs_error_problem_encountered),this.loading=!1,document.querySelector("#downloadButtonNMP").innerHTML=this.strings.logs_valid_NMPbtn,document.getElementById("downloadButtonNMP").disabled=!1}).finally(()=>{this.loading=!1,document.querySelector("#downloadButtonNMP").innerHTML=this.strings.logs_valid_NMPbtn,document.getElementById("downloadButtonNMP").disabled=!1})):d.error(this.strings.logs_error_begin_date_superior):d.error(this.strings.logs_error_begin_date_inferior)):d.error(this.strings.logs_error_empty_dates)},is_today(e){var t=new Date,o=String(t.getDate()).padStart(2,"0"),l=String(t.getMonth()+1).padStart(2,"0"),n=t.getFullYear();return t=n+"-"+l+"-"+o,(e=new Date(e))>=t},get_help_content(){var e=[],t=new Object;return t.title=this.strings.title,t.description=this.strings.description,e.push(t),e},open_chart_help(e){let t=[];"download_moodle"==e?t.push({title:this.strings.logs_download_moodle_help_title,description:this.strings.logs_download_moodle_help_description}):"download_nmp"==e&&t.push({title:this.strings.logs_download_nmp_help_title,description:this.strings.logs_download_nmp_help_description}),this.help_contents=t,this.help_contents.length&&(this.help_dialog=!0)},update_help_dialog(e){this.help_dialog=e},get_timezone(){return`${this.strings.ss_change_timezone} ${this.timezone}`}}})}}}); +//# sourceMappingURL=logs.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/modulesform.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/modulesform.min.js new file mode 100644 index 0000000000000000000000000000000000000000..1469d4e8243823c417e5cc461ffd108f6de023bf --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/modulesform.min.js @@ -0,0 +1,2 @@ +define([],function(){return{template:'\n <v-main mt-10>\n <v-row>\n <v-dialog\n v-model="dialog"\n max-width="700px"\n @click:outside="closeDialog()"\n @keydown.esc="closeDialog()"\n > \n <v-card>\n <v-card-title v-text="strings.title"></v-card-title>\n <v-card-text v-for="section in sections" :key="section.id">\n <h5 v-text="section.name"></h5>\n <div v-for="module in section.modules" :key="module.id">\n <v-row>\n <v-col cols="6">\n <img :src="get_module_icon(module.modname)" width="25" height="25">\n <a :href="get_module_url(module)" target="_blank">\n <span v-text="module.name"></span>\n </a>\n \n <span v-text="get_interactions_number(module.interactions)"></span>\n </v-col>\n <v-col cols="6" class="text-right">\n <v-chip v-if="!module.viewed" color="#EF476F" text-color="white">\n <v-avatar left>\n <v-icon v-text="\'mdi-eye-off\'" small></v-icon>\n </v-avatar>\n <span class="d-flex justify-space-between caption"\n v-text="strings.modules_no_viewed">\n </span>\n </v-chip>\n \n <v-chip v-if="module.viewed" color="#FFD166" text-color="white">\n <v-avatar left>\n <v-icon v-text="\'mdi-eye\'" small></v-icon>\n </v-avatar>\n <span class="d-flex justify-space-between caption"\n v-text="strings.modules_viewed">\n </span>\n </v-chip>\n \n <v-chip v-if="module.complete" color="#06D6A0" text-color="white">\n <v-avatar left>\n <v-icon v-text="\'mdi-checkbox-marked-circle-outline\'" small>\n </v-icon>\n </v-avatar>\n <span class="d-flex justify-space-between caption"\n v-text="strings.modules_complete">\n </span>\n </v-chip>\n </v-col>\n </v-row>\n </div>\n </v-card-text>\n \n <v-card-actions>\n <v-btn color="primary darken-1" \n text \n @click="closeDialog"\n v-text="strings.close_button">\n </v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n </v-row>\n </v-main>\n ',props:["dialog","sections","strings"],methods:{closeDialog(){this.$emit("update_dialog",!1)},get_module_icon:n=>`${M.cfg.wwwroot}/theme/image.php/boost/${n}/1/icon`,get_module_url:n=>`${M.cfg.wwwroot}/mod/${n.modname}/view.php?id=${n.id}`,get_interactions_number(n){return`(${n} ${1==n?this.strings.modules_interaction:this.strings.modules_interactions})`}}}}); +//# sourceMappingURL=modulesform.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/modulesform.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/modulesform.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..9a26f18e5a8acdc9a9b5baaf3283f50fe7573073 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/modulesform.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/modulesform.js"],"names":["define","template","props","methods","closeDialog","$emit","get_module_icon","modname","M","cfg","wwwroot","get_module_url","module","id","get_interactions_number","interactions","interactions_text","strings","modules_interaction","modules_interactions"],"mappings":"AAAAA,OAAM,kCAAC,EAAD,CACF,UAAW,CA0FX,MAzFwB,CACpBC,QAAQ,wxIADY,CAqEpBC,KAAK,CAAC,CAAC,QAAD,CAAW,UAAX,CAAuB,SAAvB,CArEc,CAsEpBC,OAAO,CAAG,CACNC,WADM,uBACQ,CACV,KAAKC,KAAL,CAAW,eAAX,IACH,CAHK,CAKNC,eALM,0BAKUC,CALV,CAKkB,CACpB,gBAAUC,CAAC,CAACC,GAAF,CAAMC,OAAhB,mCAAiDH,CAAjD,WACH,CAPK,CASNI,cATM,yBASSC,CATT,CASgB,CAClB,gBAAUJ,CAAC,CAACC,GAAF,CAAMC,OAAhB,iBAA+BE,CAAM,CAACL,OAAtC,yBAA6DK,CAAM,CAACC,EAApE,CACH,CAXK,CAaNC,uBAbM,kCAakBC,CAblB,CAa+B,CACjC,GAAIC,CAAAA,CAAiB,CAAoB,CAAhB,EAAAD,CAAD,CAAsB,KAAKE,OAAL,CAAaC,mBAAnC,CAAyD,KAAKD,OAAL,CAAaE,oBAA9F,CACA,iBAAWJ,CAAX,aAA2BC,CAA3B,KACH,CAhBK,CAtEU,CA0F3B,CA5FK,CAAN","sourcesContent":["define([],\r\n function (){\r\n const modulesform = {\r\n template:`\r\n <v-main mt-10>\r\n <v-row>\r\n <v-dialog\r\n v-model=\"dialog\"\r\n max-width=\"700px\"\r\n @click:outside=\"closeDialog()\"\r\n @keydown.esc=\"closeDialog()\"\r\n > \r\n <v-card>\r\n <v-card-title v-text=\"strings.title\"></v-card-title>\r\n <v-card-text v-for=\"section in sections\" :key=\"section.id\">\r\n <h5 v-text=\"section.name\"></h5>\r\n <div v-for=\"module in section.modules\" :key=\"module.id\">\r\n <v-row>\r\n <v-col cols=\"6\">\r\n <img :src=\"get_module_icon(module.modname)\" width=\"25\" height=\"25\">\r\n <a :href=\"get_module_url(module)\" target=\"_blank\">\r\n <span v-text=\"module.name\"></span>\r\n </a>\r\n \r\n <span v-text=\"get_interactions_number(module.interactions)\"></span>\r\n </v-col>\r\n <v-col cols=\"6\" class=\"text-right\">\r\n <v-chip v-if=\"!module.viewed\" color=\"#EF476F\" text-color=\"white\">\r\n <v-avatar left>\r\n <v-icon v-text=\"'mdi-eye-off'\" small></v-icon>\r\n </v-avatar>\r\n <span class=\"d-flex justify-space-between caption\"\r\n v-text=\"strings.modules_no_viewed\">\r\n </span>\r\n </v-chip>\r\n \r\n <v-chip v-if=\"module.viewed\" color=\"#FFD166\" text-color=\"white\">\r\n <v-avatar left>\r\n <v-icon v-text=\"'mdi-eye'\" small></v-icon>\r\n </v-avatar>\r\n <span class=\"d-flex justify-space-between caption\"\r\n v-text=\"strings.modules_viewed\">\r\n </span>\r\n </v-chip>\r\n \r\n <v-chip v-if=\"module.complete\" color=\"#06D6A0\" text-color=\"white\">\r\n <v-avatar left>\r\n <v-icon v-text=\"'mdi-checkbox-marked-circle-outline'\" small>\r\n </v-icon>\r\n </v-avatar>\r\n <span class=\"d-flex justify-space-between caption\"\r\n v-text=\"strings.modules_complete\">\r\n </span>\r\n </v-chip>\r\n </v-col>\r\n </v-row>\r\n </div>\r\n </v-card-text>\r\n \r\n <v-card-actions>\r\n <v-btn color=\"primary darken-1\" \r\n text \r\n @click=\"closeDialog\"\r\n v-text=\"strings.close_button\">\r\n </v-btn>\r\n </v-card-actions>\r\n </v-card>\r\n </v-dialog>\r\n </v-row>\r\n </v-main>\r\n `,\r\n props:['dialog', 'sections', 'strings'],\r\n methods : {\r\n closeDialog() {\r\n this.$emit('update_dialog', false);\r\n },\r\n\r\n get_module_icon(modname){\r\n return `${M.cfg.wwwroot}/theme/image.php/boost/${modname}/1/icon`;\r\n },\r\n\r\n get_module_url(module){\r\n return `${M.cfg.wwwroot}/mod/${module.modname}/view.php?id=${module.id}`;\r\n },\r\n\r\n get_interactions_number(interactions){\r\n let interactions_text = (interactions == 1) ? this.strings.modules_interaction : this.strings.modules_interactions;\r\n return `(${interactions} ${interactions_text})`;\r\n },\r\n },\r\n }\r\n return modulesform;\r\n})"],"file":"modulesform.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/moment.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/moment.min.js new file mode 100644 index 0000000000000000000000000000000000000000..9e088d750bd127048961dcf16c299b7ca2930d65 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/moment.min.js @@ -0,0 +1,2 @@ +define ("local_fliplearning/moment",["local_fliplearning/config","moment"],function(a,b){return b}); +//# sourceMappingURL=moment.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/moment.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/moment.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..d73392a226120fb7b15e3f6998b8fdd4e4b9c70c --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/moment.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/moment.js"],"names":["define","unused","moment"],"mappings":"AAAAA,OAAM,6BAAC,CAAC,2BAAD,CAA8B,QAA9B,CAAD,CAA0C,SAASC,CAAT,CAAiBC,CAAjB,CAAyB,CACjE,MAAOA,CAAAA,CACV,CAFC,CAAN","sourcesContent":["define(['local_fliplearning/config', 'moment'], function(unused, moment) {\r\n return moment;\r\n }\r\n);"],"file":"moment.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/momenttimezone.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/momenttimezone.min.js new file mode 100644 index 0000000000000000000000000000000000000000..842ca635475d4bbd376f98f3fb086f6c35a0eef3 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/momenttimezone.min.js @@ -0,0 +1,2 @@ +define ("local_fliplearning/momenttimezone",["local_fliplearning/config","momenttimezone"],function(a,b){return b}); +//# sourceMappingURL=momenttimezone.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/momenttimezone.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/momenttimezone.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..c6158fb670f479ecb2b8434ce8fe6b73d20d066c --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/momenttimezone.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/momenttimezone.js"],"names":["define","unused","momenttimezone"],"mappings":"AAAAA,OAAM,qCAAC,CAAC,2BAAD,CAA8B,gBAA9B,CAAD,CAAkD,SAASC,CAAT,CAAiBC,CAAjB,CAAiC,CACjF,MAAOA,CAAAA,CACV,CAFC,CAAN","sourcesContent":["define(['local_fliplearning/config', 'momenttimezone'], function(unused, momenttimezone) {\r\n return momenttimezone;\r\n }\r\n);"],"file":"momenttimezone.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/pageheader.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/pageheader.min.js new file mode 100644 index 0000000000000000000000000000000000000000..5dec5923170ecec56853df84cd1cff592dd4533c --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/pageheader.min.js @@ -0,0 +1,2 @@ +define ("local_fliplearning/pageheader",["local_fliplearning/axios"],function(a){return{template:"\n <v-layout class=\"font-weight-bold fliplearning-page-title justify-space-between align-center\" id=\"page-header\">\n <v-flex class=\"d-flex pa-4\">\n <span v-text=\"pagetitle\"></span>\n </v-flex>\n \n <v-flex id=\"fml-group-selector\">\n <v-select\n attach \n v-model=\"selectedgroup\" \n v-if=\"usegroupselector()\" \n prepend-icon=\"group\" \n @change=\"update_group()\"\n :items=\"groups\" \n item-text=\"name\" \n item-value=\"id\">\n </v-select>\n </v-flex>\n \n <v-flex \n class=\"d-flex justify-end align-center flex-grow-0 fliplearning-help-button pa-4 ml-8\" \n @click=\"dialog = !dialog\">\n <span class=\"mr-2 caption\" v-text=\"helptitle\"></span>\n <v-icon :color=\"'#ffffff'\">help_outline</v-icon>\n </v-flex>\n \n <v-dialog v-model=\"dialog\" width=\"500\" class=\"help-dialog\">\n <v-card>\n <v-card-title class=\"headline lighten-2 d-flex justify-center help-dialog-title\">\n <span v-text=\"helptitle\" class=\"help-modal-title mr-2\"></span><v-icon color=\"white\">help_outline</v-icon>\n </v-card-title>\n <v-card-text class=\"pt-4 pb-4 pr-8 pl-8 help-dialog-content\">\n <template v-for=\"(help, index, key) in helpcontents\">\n <v-layout class=\"mb-2\" :key=\"key\" column>\n <v-flex class=\"d-flex justify-center\">\n <span class=\"fliplearning-sub-title mb-2\" v-html=\"help.title\"></span>\n </v-flex>\n <p v-html=\"help.description\" class=\"text-justify\"></p>\n </v-layout>\n </template>\n </v-card-text>\n <v-divider class=\"ma-0\"></v-divider>\n <v-card-actions class=\"d-flex justify-center help-dialog-footer\">\n <v-btn text @click=\"dialog = false\" v-text=\"exitbutton\" class=\"ma-0 fml-btn-secondary\"></v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n </v-layout>",props:["pagetitle","helptitle","helpcontents","exitbutton","groups","courseid","userid"],data:function data(){return{dialog:!1,selectedgroup:null}},mounted:function mounted(){this.set_selected_group()},methods:{update_group:function update_group(){var b={action:"changegroup",courseid:this.courseid,userid:this.userid,groupid:this.selectedgroup};a({method:"get",url:M.cfg.wwwroot+"/local/fliplearning/ajax.php",params:b}).then(function(){location.reload()}).catch(function(){if(confirm("Error al cambiar de grupo. Necesitamos actualizar para evitar errores.")){location.reload()}else{location.reload()}})},usegroupselector:function usegroupselector(){var a=this.groups&&0<this.groups.length;return a},set_selected_group:function set_selected_group(){var a=this;if(!this.usegroupselector()){return null}this.groups.forEach(function(b){if(b.selected){a.selectedgroup=b}});if(!this.selectedgroup&&"undefined"!=typeof this.groups[0]){this.groups[0].selected=!0;this.selectedgroup=this.groups[0]}}}}}); +//# sourceMappingURL=pageheader.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/pageheader.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/pageheader.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..24f93d36f7bfeb2b743d05b61eba1877df5c2d23 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/pageheader.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/pageheader.js"],"names":["define","Axios","template","props","data","dialog","selectedgroup","mounted","set_selected_group","methods","update_group","action","courseid","userid","groupid","method","url","M","cfg","wwwroot","params","then","location","reload","catch","confirm","usegroupselector","use","groups","length","forEach","group","selected"],"mappings":"AAAAA,OAAM,iCAAC,CAAC,0BAAD,CAAD,CAA+B,SAAUC,CAAV,CAAgB,CAwGjD,MAvGmB,CACfC,QAAQ,itFADO,CAiDfC,KAAK,CAAC,CAAC,WAAD,CAAa,WAAb,CAAyB,cAAzB,CAAwC,YAAxC,CAAqD,QAArD,CAA+D,UAA/D,CAA0E,QAA1E,CAjDS,CAkDfC,IAlDe,gBAkDT,CACF,MAAM,CACFC,MAAM,GADJ,CAEFC,aAAa,CAAG,IAFd,CAIT,CAvDc,CAwDfC,OAxDe,mBAwDN,CACL,KAAKC,kBAAL,EACH,CA1Dc,CA2DfC,OAAO,CAAG,CACNC,YADM,wBACQ,CACV,GAAIN,CAAAA,CAAI,CAAG,CACPO,MAAM,CAAG,aADF,CAEPC,QAAQ,CAAG,KAAKA,QAFT,CAGPC,MAAM,CAAG,KAAKA,MAHP,CAIPC,OAAO,CAAG,KAAKR,aAJR,CAAX,CAMAL,CAAK,CAAC,CACFc,MAAM,CAAC,KADL,CAEFC,GAAG,CAAEC,CAAC,CAACC,GAAF,CAAMC,OAAN,CAAgB,8BAFnB,CAGFC,MAAM,CAAGhB,CAHP,CAAD,CAAL,CAIGiB,IAJH,CAIQ,UAAc,CAClBC,QAAQ,CAACC,MAAT,EACH,CAND,EAMGC,KANH,CAMS,UAAO,CACZ,GAAGC,OAAO,CAAC,wEAAD,CAAV,CAAqF,CACjFH,QAAQ,CAACC,MAAT,EACH,CAFD,IAEK,CACDD,QAAQ,CAACC,MAAT,EACH,CACJ,CAZD,CAaH,CArBK,CAuBNG,gBAvBM,4BAuBY,CACd,GAAIC,CAAAA,CAAG,CAAG,KAAKC,MAAL,EAAoC,CAArB,MAAKA,MAAL,CAAYC,MAArC,CACA,MAAOF,CAAAA,CACV,CA1BK,CA4BNnB,kBA5BM,8BA4Bc,YAChB,GAAG,CAAC,KAAKkB,gBAAL,EAAJ,CAA6B,CACzB,MAAO,KACV,CACD,KAAKE,MAAL,CAAYE,OAAZ,CAAoB,SAAAC,CAAK,CAAI,CACzB,GAAGA,CAAK,CAACC,QAAT,CAAkB,CACd,CAAI,CAAC1B,aAAL,CAAqByB,CACxB,CACJ,CAJD,EAKA,GAAG,CAAC,KAAKzB,aAAN,EAAiD,WAA1B,QAAO,MAAKsB,MAAL,CAAY,CAAZ,CAAjC,CAAgE,CAC5D,KAAKA,MAAL,CAAY,CAAZ,EAAeI,QAAf,IACA,KAAK1B,aAAL,CAAqB,KAAKsB,MAAL,CAAY,CAAZ,CACxB,CACJ,CAzCK,CA3DK,CAwGtB,CAzGK,CAAN","sourcesContent":["define(['local_fliplearning/axios'], function (Axios){\r\n const pageheader = {\r\n template:`\r\n <v-layout class=\"font-weight-bold fliplearning-page-title justify-space-between align-center\" id=\"page-header\">\r\n <v-flex class=\"d-flex pa-4\">\r\n <span v-text=\"pagetitle\"></span>\r\n </v-flex>\r\n \r\n <v-flex id=\"fml-group-selector\">\r\n <v-select\r\n attach \r\n v-model=\"selectedgroup\" \r\n v-if=\"usegroupselector()\" \r\n prepend-icon=\"group\" \r\n @change=\"update_group()\"\r\n :items=\"groups\" \r\n item-text=\"name\" \r\n item-value=\"id\">\r\n </v-select>\r\n </v-flex>\r\n \r\n <v-flex \r\n class=\"d-flex justify-end align-center flex-grow-0 fliplearning-help-button pa-4 ml-8\" \r\n @click=\"dialog = !dialog\">\r\n <span class=\"mr-2 caption\" v-text=\"helptitle\"></span>\r\n <v-icon :color=\"'#ffffff'\">help_outline</v-icon>\r\n </v-flex>\r\n \r\n <v-dialog v-model=\"dialog\" width=\"500\" class=\"help-dialog\">\r\n <v-card>\r\n <v-card-title class=\"headline lighten-2 d-flex justify-center help-dialog-title\">\r\n <span v-text=\"helptitle\" class=\"help-modal-title mr-2\"></span><v-icon color=\"white\">help_outline</v-icon>\r\n </v-card-title>\r\n <v-card-text class=\"pt-4 pb-4 pr-8 pl-8 help-dialog-content\">\r\n <template v-for=\"(help, index, key) in helpcontents\">\r\n <v-layout class=\"mb-2\" :key=\"key\" column>\r\n <v-flex class=\"d-flex justify-center\">\r\n <span class=\"fliplearning-sub-title mb-2\" v-html=\"help.title\"></span>\r\n </v-flex>\r\n <p v-html=\"help.description\" class=\"text-justify\"></p>\r\n </v-layout>\r\n </template>\r\n </v-card-text>\r\n <v-divider class=\"ma-0\"></v-divider>\r\n <v-card-actions class=\"d-flex justify-center help-dialog-footer\">\r\n <v-btn text @click=\"dialog = false\" v-text=\"exitbutton\" class=\"ma-0 fml-btn-secondary\"></v-btn>\r\n </v-card-actions>\r\n </v-card>\r\n </v-dialog>\r\n </v-layout>`,\r\n props:['pagetitle','helptitle','helpcontents','exitbutton','groups', 'courseid','userid'],\r\n data(){\r\n return{\r\n dialog : false,\r\n selectedgroup : null,\r\n }\r\n },\r\n mounted(){\r\n this.set_selected_group();\r\n },\r\n methods : {\r\n update_group(){\r\n let data = {\r\n action : \"changegroup\",\r\n courseid : this.courseid,\r\n userid : this.userid,\r\n groupid : this.selectedgroup,\r\n }\r\n Axios({\r\n method:'get',\r\n url: M.cfg.wwwroot + \"/local/fliplearning/ajax.php\",\r\n params : data,\r\n }).then((response) => {\r\n location.reload();\r\n }).catch((e) => {\r\n if(confirm(\"Error al cambiar de grupo. Necesitamos actualizar para evitar errores.\")){\r\n location.reload()\r\n }else{\r\n location.reload()\r\n }\r\n });\r\n },\r\n\r\n usegroupselector(){\r\n let use = this.groups && this.groups.length > 0;\r\n return use;\r\n },\r\n\r\n set_selected_group(){\r\n if(!this.usegroupselector()) {\r\n return null;\r\n }\r\n this.groups.forEach(group => {\r\n if(group.selected){\r\n this.selectedgroup = group;\r\n }\r\n })\r\n if(!this.selectedgroup && typeof(this.groups[0]) != 'undefined'){\r\n this.groups[0].selected = true;\r\n this.selectedgroup = this.groups[0];\r\n }\r\n }\r\n }\r\n }\r\n return pageheader;\r\n})"],"file":"pageheader.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/pagination.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/pagination.min.js new file mode 100644 index 0000000000000000000000000000000000000000..1971b61290bf14fbfc97c3812dd58173f900d27d --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/pagination.min.js @@ -0,0 +1,2 @@ +define ("local_fliplearning/pagination",[],function(){return{template:"\n <v-main mt-10>\n <v-layout class=\"mb-2\" justify-center>\n <span v-text=\"title\" class=\"fliplearning-sub-title\"></span>\n </v-layout>\n <v-layout justify-center>\n <v-flex d-flex justify-end align-center no-wrap id=\"fliplearning-display-weeks\" class=\"flex-grow-0 pl-4\">\n <span class=\"subtitle-1 pr-3\" v-text=\"name\"></span>\n <v-layout v-for=\"(page, index, key) in pages\" :key=\"key\" class=\"flex-grow-0\">\n <v-tooltip top attach>\n <template v-slot:activator=\"{ on }\">\n <span \n v-on=\"on\" \n v-text=\"page.number\" \n :class=\"['pa-1 pr-4 pl-4 page', {'selected-page' : page.selected}]\" \n @click=\"update_selected_week(index)\"></span>\n </template>\n <span v-text=\"get_week_dates(page)\"></span>\n </v-tooltip>\n </v-layout>\n </v-flex>\n </v-layout>\n <v-divider></v-divider>\n </v-main>\n ",props:["pages","name","nameseparator","title"],data:function data(){return{}},methods:{get_week_dates:function get_week_dates(a){return"".concat(a.weekstart," ").concat(this.nameseparator," ").concat(a.weekend)},update_selected_week:function update_selected_week(a){this.loading=!0;this.change_selected_week(a);this.$emit("changepage",this.get_selected_week())},change_selected_week:function change_selected_week(a){var b=this.get_selected_week();b=this.pages.indexOf(b);this.pages[b].selected=!1;this.pages[a].selected=!0;return this.pages[a]},get_selected_week:function get_selected_week(){var a=null;this.pages.forEach(function(b){if(b.selected){a=b}});return a}}}}); +//# sourceMappingURL=pagination.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/pagination.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/pagination.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..9e8d6041359935162a2d84d4964258a9e354ba28 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/pagination.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/pagination.js"],"names":["define","template","props","data","methods","get_week_dates","week","weekstart","nameseparator","weekend","update_selected_week","index_page","loading","change_selected_week","$emit","get_selected_week","selected_page","current_selection","pages","indexOf","selected","forEach","page"],"mappings":"AAAAA,OAAM,iCAAC,EAAD,CAAK,UAAW,CA2DlB,MA1DmB,CACfC,QAAQ,k+CADO,CA0BfC,KAAK,CAAC,CAAC,OAAD,CAAS,MAAT,CAAgB,eAAhB,CAAgC,OAAhC,CA1BS,CA2BfC,IA3Be,gBA2BT,CACF,MAAM,EAET,CA9Bc,CA+BfC,OAAO,CAAG,CACNC,cADM,yBACSC,CADT,CACc,CAChB,gBAAUA,CAAI,CAACC,SAAf,aAA4B,KAAKC,aAAjC,aAAkDF,CAAI,CAACG,OAAvD,CACH,CAHK,CAINC,oBAJM,+BAIeC,CAJf,CAI0B,CAC5B,KAAKC,OAAL,IACW,KAAKC,oBAAL,CAA0BF,CAA1B,CAFiB,CAG5B,KAAKG,KAAL,CAAW,YAAX,CAAwB,KAAKC,iBAAL,EAAxB,CACH,CARK,CASNF,oBATM,+BASeG,CATf,CAS6B,CAC/B,GAAIC,CAAAA,CAAiB,CAAG,KAAKF,iBAAL,EAAxB,CACAE,CAAiB,CAAG,KAAKC,KAAL,CAAWC,OAAX,CAAmBF,CAAnB,CAApB,CACA,KAAKC,KAAL,CAAWD,CAAX,EAA8BG,QAA9B,IACA,KAAKF,KAAL,CAAWF,CAAX,EAA0BI,QAA1B,IACA,MAAO,MAAKF,KAAL,CAAWF,CAAX,CACV,CAfK,CAgBND,iBAhBM,6BAgBa,CACf,GAAIK,CAAAA,CAAQ,CAAG,IAAf,CACA,KAAKF,KAAL,CAAWG,OAAX,CAAmB,SAACC,CAAD,CAAU,CACzB,GAAGA,CAAI,CAACF,QAAR,CAAiB,CACbA,CAAQ,CAAGE,CACd,CACJ,CAJD,EAKA,MAAOF,CAAAA,CACV,CAxBK,CA/BK,CA2DtB,CA5DK,CAAN","sourcesContent":["define([], function (){\r\n const pagination = {\r\n template:`\r\n <v-main mt-10>\r\n <v-layout class=\"mb-2\" justify-center>\r\n <span v-text=\"title\" class=\"fliplearning-sub-title\"></span>\r\n </v-layout>\r\n <v-layout justify-center>\r\n <v-flex d-flex justify-end align-center no-wrap id=\"fliplearning-display-weeks\" class=\"flex-grow-0 pl-4\">\r\n <span class=\"subtitle-1 pr-3\" v-text=\"name\"></span>\r\n <v-layout v-for=\"(page, index, key) in pages\" :key=\"key\" class=\"flex-grow-0\">\r\n <v-tooltip top attach>\r\n <template v-slot:activator=\"{ on }\">\r\n <span \r\n v-on=\"on\" \r\n v-text=\"page.number\" \r\n :class=\"['pa-1 pr-4 pl-4 page', {'selected-page' : page.selected}]\" \r\n @click=\"update_selected_week(index)\"></span>\r\n </template>\r\n <span v-text=\"get_week_dates(page)\"></span>\r\n </v-tooltip>\r\n </v-layout>\r\n </v-flex>\r\n </v-layout>\r\n <v-divider></v-divider>\r\n </v-main>\r\n `,\r\n props:['pages','name','nameseparator','title'],\r\n data(){\r\n return{\r\n }\r\n },\r\n methods : {\r\n get_week_dates(week){\r\n return `${week.weekstart} ${this.nameseparator} ${week.weekend}`;\r\n },\r\n update_selected_week(index_page){\r\n this.loading = true\r\n let page = this.change_selected_week(index_page);\r\n this.$emit('changepage',this.get_selected_week());\r\n },\r\n change_selected_week(selected_page){\r\n let current_selection = this.get_selected_week();\r\n current_selection = this.pages.indexOf(current_selection);\r\n this.pages[current_selection].selected = false;\r\n this.pages[selected_page].selected = true;\r\n return this.pages[selected_page];\r\n },\r\n get_selected_week(){\r\n let selected = null\r\n this.pages.forEach((page) => {\r\n if(page.selected){\r\n selected = page;\r\n }\r\n })\r\n return selected;\r\n },\r\n },\r\n }\r\n return pagination;\r\n})"],"file":"pagination.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/prueba.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/prueba.min.js new file mode 100644 index 0000000000000000000000000000000000000000..72058dd9329ea1f7c531d21e811742796364637a --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/prueba.min.js @@ -0,0 +1,2 @@ +define ("local_fliplearning/prueba",["local_fliplearning/vue","local_fliplearning/vuetify","local_fliplearning/axios","local_fliplearning/moment","local_fliplearning/pagination","local_fliplearning/chartdynamic","local_fliplearning/pageheader"],function(a,b,c,d,e,f,g){"use strict";return{init:function(c){console.log(c);a.use(b);a.component("pagination",e);a.component("chart",f);a.component("pageheader",g);new a({delimiters:["[[","]]"],el:"#prueba",vuetify:new b,data:function data(){return{strings:c.strings,groups:c.groups,userid:c.userid,courseid:c.courseid,timezone:c.timezone,render_has:c.profile_render,loading:!1,errors:[],pages:c.pages}},mounted:function mounted(){document.querySelector("#sessions-loader").style.display="none";document.querySelector("#prueba").style.display="block"},methods:{get_help_content:function get_help_content(){return"Texto de Ayuda"},get_timezone:function get_timezone(){var a="".concat(this.strings.ss_change_timezone," ").concat(this.timezone);return a}}})}}}); +//# sourceMappingURL=prueba.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/prueba.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/prueba.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..8c2a357ec91c219dcfd6f62a9f17b871ef754ecc --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/prueba.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/prueba.js"],"names":["define","Vue","Vuetify","Axios","Moment","Pagination","ChartDynamic","Pageheader","init","content","console","log","use","component","delimiters","el","vuetify","data","strings","groups","userid","courseid","timezone","render_has","profile_render","loading","errors","pages","mounted","document","querySelector","style","display","methods","get_help_content","get_timezone","information","ss_change_timezone"],"mappings":"AAAAA,OAAM,6BAAC,CAAC,wBAAD,CACC,4BADD,CAEC,0BAFD,CAGC,2BAHD,CAIC,+BAJD,CAKC,iCALD,CAMC,+BAND,CAAD,CAQF,SAASC,CAAT,CAAcC,CAAd,CAAuBC,CAAvB,CAA8BC,CAA9B,CAAsCC,CAAtC,CAAkDC,CAAlD,CAAgEC,CAAhE,CAA4E,CACxE,aA2CA,MAAO,CACHC,IAAI,CA1CR,SAAcC,CAAd,CAAuB,CACnBC,OAAO,CAACC,GAAR,CAAYF,CAAZ,EACAR,CAAG,CAACW,GAAJ,CAAQV,CAAR,EACAD,CAAG,CAACY,SAAJ,CAAc,YAAd,CAA4BR,CAA5B,EACAJ,CAAG,CAACY,SAAJ,CAAc,OAAd,CAAuBP,CAAvB,EACAL,CAAG,CAACY,SAAJ,CAAc,YAAd,CAA4BN,CAA5B,EACU,GAAIN,CAAAA,CAAJ,CAAQ,CACda,UAAU,CAAE,CAAC,IAAD,CAAO,IAAP,CADE,CAEdC,EAAE,CAAE,SAFU,CAGdC,OAAO,CAAE,GAAId,CAAAA,CAHC,CAIde,IAJc,gBAIP,CACH,MAAO,CACHC,OAAO,CAAGT,CAAO,CAACS,OADf,CAEHC,MAAM,CAAGV,CAAO,CAACU,MAFd,CAGHC,MAAM,CAAGX,CAAO,CAACW,MAHd,CAIHC,QAAQ,CAAGZ,CAAO,CAACY,QAJhB,CAKHC,QAAQ,CAAGb,CAAO,CAACa,QALhB,CAMHC,UAAU,CAAGd,CAAO,CAACe,cANlB,CAOHC,OAAO,GAPJ,CAQHC,MAAM,CAAG,EARN,CASHC,KAAK,CAAGlB,CAAO,CAACkB,KATb,CAWV,CAhBa,CAiBdC,OAjBc,mBAiBL,CACLC,QAAQ,CAACC,aAAT,CAAuB,kBAAvB,EAA2CC,KAA3C,CAAiDC,OAAjD,CAA2D,MAA3D,CACAH,QAAQ,CAACC,aAAT,CAAuB,SAAvB,EAAkCC,KAAlC,CAAwCC,OAAxC,CAAkD,OACrD,CApBa,CAqBdC,OAAO,CAAG,CACNC,gBADM,4BACY,CAEd,sBACH,CAJK,CAMNC,YANM,wBAMQ,CACV,GAAIC,CAAAA,CAAW,WAAM,KAAKlB,OAAL,CAAamB,kBAAnB,aAAyC,KAAKf,QAA9C,CAAf,CACA,MAAOc,CAAAA,CACV,CATK,CArBI,CAAR,CAiCb,CAEM,CAGV,CAvDC,CAAN","sourcesContent":["define([\"local_fliplearning/vue\",\r\n \"local_fliplearning/vuetify\",\r\n \"local_fliplearning/axios\",\r\n \"local_fliplearning/moment\",\r\n \"local_fliplearning/pagination\",\r\n \"local_fliplearning/chartdynamic\",\r\n \"local_fliplearning/pageheader\",\r\n ],\r\n function(Vue, Vuetify, Axios, Moment, Pagination, ChartDynamic, Pageheader) {\r\n \"use strict\";\r\n\r\n function init(content) {\r\n console.log(content);\r\n Vue.use(Vuetify)\r\n Vue.component('pagination', Pagination);\r\n Vue.component('chart', ChartDynamic);\r\n Vue.component('pageheader', Pageheader);\r\n let vue = new Vue({\r\n delimiters: [\"[[\", \"]]\"],\r\n el: \"#prueba\",\r\n vuetify: new Vuetify(),\r\n data() {\r\n return {\r\n strings : content.strings,\r\n groups : content.groups,\r\n userid : content.userid,\r\n courseid : content.courseid,\r\n timezone : content.timezone,\r\n render_has : content.profile_render,\r\n loading : false,\r\n errors : [],\r\n pages : content.pages,\r\n }\r\n },\r\n mounted(){\r\n document.querySelector(\"#sessions-loader\").style.display = \"none\";\r\n document.querySelector(\"#prueba\").style.display = \"block\";\r\n },\r\n methods : {\r\n get_help_content(){\r\n let helpcontents = `Texto de Ayuda`;\r\n return helpcontents;\r\n },\r\n\r\n get_timezone(){\r\n let information = `${this.strings.ss_change_timezone} ${this.timezone}`\r\n return information;\r\n },\r\n }\r\n })\r\n }\r\n\r\n return {\r\n init : init\r\n };\r\n });"],"file":"prueba.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/quiz.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/quiz.min.js new file mode 100644 index 0000000000000000000000000000000000000000..32b499c8e1b6936efc037e87b462f6375b312ffe --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/quiz.min.js @@ -0,0 +1,2 @@ +define(["local_fliplearning/vue","local_fliplearning/vuetify","local_fliplearning/axios","local_fliplearning/moment","local_fliplearning/pagination","local_fliplearning/chartdynamic","local_fliplearning/pageheader","local_fliplearning/helpdialog"],function(t,e,s,i,n,a,o,r){"use strict";return{init:function(i){t.use(e),t.component("pagination",n),t.component("chart",a),t.component("pageheader",o),t.component("helpdialog",r);let h=new t({delimiters:["[[","]]"],el:"#quiz",vuetify:new e,data:()=>({strings:i.strings,groups:i.groups,userid:i.userid,courseid:i.courseid,timezone:i.timezone,render_has:i.profile_render,loading:!1,errors:[],pages:i.pages,quiz:i.quiz,questions_attempts_colors:i.questions_attempts_colors,hardest_questions_colors:i.hardest_questions_colors,default_quiz:null,attempts_categories:[],attempts_series:[],attempts_questions:[],hardest_categories:[],hardest_series:[],hardest_questions:[],help_dialog:!1,help_contents:[],quiz_name:""}),beforeMount(){this.quiz.length&&(this.default_quiz=this.quiz[0].attempts,this.calculate_questions_attempts(this.default_quiz),this.quiz_name=this.quiz[0].name.replace(/ /g,"_"))},mounted(){document.querySelector("#sessions-loader").style.display="none",document.querySelector("#quiz").style.display="block",setTimeout(function(){h.setGraphicsEventListeners(),h.addListenersQuiz()},500)},methods:{get_help_content(){let t=[];return t.push({title:this.strings.section_help_title,description:this.strings.section_help_description}),t},get_quiz_info_text1(){let t="";if(this.default_quiz){let e=this.default_quiz.details.questions,s=this.strings.questions_text;1==e&&(s=this.strings.question_text),t=`* ${this.strings.quiz_info_text} ${e} ${s}`}return t},get_quiz_info_text2(){let t="";if(this.default_quiz){let e=this.default_quiz.details.attempts,s=this.strings.doing_text_plural;1==e&&(s=this.strings.doing_text_singular);let i=this.default_quiz.details.users,n=this.strings.students_text;1==i&&(n=this.strings.student_text),t=`* ${e} ${s} ${i} ${n}`}return t},build_questions_attempts_chart(){let t=new Object;return t.chart={type:"column",backgroundColor:null,style:{fontFamily:"poppins"}},t.title={text:null},t.colors=this.questions_attempts_colors,t.xAxis={categories:this.attempts_categories},t.yAxis=[{min:0,allowDecimals:!1,title:{text:this.strings.questions_attempts_yaxis_title}}],t.tooltip={formatter:function(){let t=this.x,e=this.y,s=this.total,i=Math.round(Number(this.percentage)),n=this.series.name,a=h.strings.attempts_text;a=a.charAt(0).toUpperCase()+a.slice(1);let o=h.strings.attempts_text,r=h.strings.of_conector,l=h.strings.review_question;return 1==e&&(o=h.strings.attempt_text),"<b>"+t+": </b>"+a+" "+n+"<br/>"+e+" "+o+" "+r+" "+s+" ("+i+"%)<br/>"+l}},t.plotOptions={column:{stacking:"normal"},series:{cursor:"pointer",point:{events:{click:function(){h.addLogsIntoDB("viewed",h.quiz_name+"_questions_attempts","chart_details","Viewed details about the questions attempts chart");let t=h.attempts_questions[this.x].id,e=M.cfg.wwwroot+"/question/preview.php?id="+t+"&courseid="+h.courseid;window.open(e,"_blank","top=50,left=50,width=900,height=600")}}}}},t.series=this.attempts_series,t},build_hardest_questions_chart(){let t=new Object;return t.chart={type:"column",backgroundColor:null,style:{fontFamily:"poppins"}},t.title={text:null},t.colors=this.hardest_questions_colors,t.xAxis={categories:this.hardest_categories},t.legend={enabled:!1},t.tooltip={formatter:function(){let t=this.point.x,e=h.hardest_questions[t],s=this.x,i=this.series.name,n=this.y,a=h.strings.attempts_text,o=h.strings.of_conector,r=h.strings.review_question;return 1==e.ha&&(a=h.strings.attempt_text),"<b>"+s+": </b>"+i+"<br/>"+e.ha+" "+a+" "+o+" "+e.to+" ("+n+"%)<br/>"+r}},t.yAxis=[{min:0,allowDecimals:!1,title:{text:this.strings.hardest_questions_yaxis_title},labels:{format:"{value} %"}}],t.plotOptions={series:{cursor:"pointer",point:{events:{click:function(){h.addLogsIntoDB("viewed",h.quiz_name+"_hardest_questions","chart_details","Viewed details about the hardest questions chart");let t=h.hardest_questions[this.x].id,e=M.cfg.wwwroot+"/question/preview.php?id="+t+"&courseid="+h.courseid;window.open(e,"_blank","top=50,left=50,width=900,height=600")}}}}},t.series=this.hardest_series,t},calculate_questions_attempts(t){let e,s,i,n,a,o,r=t.questions,h=[],l=1,u="",d=[],p=[],_=[],c=[],g=[],m=[],q=[],f=0;r.forEach(t=>{o=0,e=(t.gradedright||0)+(t.mangrright||0),s=(t.gradedpartial||0)+(t.mangrpartial||0),i=(t.gradedwrong||0)+(t.mangrwrong||0),n=(t.gaveup||0)+(t.mangaveup||0),a=(t.needsgrading||0)+(t.mangaveup||0)+(t.finished||0)+(t.manfinished||0),d.push(e),p.push(s),_.push(i),c.push(n),g.push(a),u="P"+l,f=s+i+n,o=e+s+i+n+a,m.push({id:t.id,qu:u,ha:f,to:o,pe:Math.round(100*f/o)}),h.push(u),q.push(t),l++});let w=[];w.push({name:this.strings.correct_attempt,data:d}),w.push({name:this.strings.partcorrect_attempt,data:p}),w.push({name:this.strings.incorrect_attempt,data:_}),w.push({name:this.strings.blank_attempt,data:c}),w.push({name:this.strings.needgraded_attempt,data:g});let z=[],v=[],x=[];m.sort(this.compare_hardest),m.forEach(t=>{t.pe&&(z.push(t.qu),v.push(t.pe),x.push(t))});let b=[{name:this.strings.hardest_questions_yaxis_title,data:v}];this.attempts_categories=h,this.attempts_series=w,this.attempts_questions=q,this.hardest_categories=z,this.hardest_series=b,this.hardest_questions=x},addLogsChangeQuizz(t){this.calculate_questions_attempts(t),setTimeout(function(){h.addLogsIntoDB("viewed",h.quiz_name,"quiz","Selected a quiz")},500)},addListenersQuiz(){let t=document.getElementsByClassName("v-input__slot");t.length>1?t[1].addEventListener("click",function(){let t=document.getElementsByClassName("v-list v-select-list v-sheet theme--light theme--light")[0].children;for(let e=0;e<t.length;e++)t[e].addEventListener("click",function(){h.quiz_name=this.children[0].innerText.replace(/ /g,"_")},{once:!0})}):setTimeout(h.addListenersQuiz,500)},update_interactions(t){this.loading=!0,this.errors=[];let e={action:"quiz",userid:this.userid,courseid:this.courseid,weekcode:t.weekcode,profile:this.render_has};return s({method:"get",url:M.cfg.wwwroot+"/local/fliplearning/ajax.php",params:e}).then(t=>{200==t.status&&t.data.ok?(this.quiz=t.data.data.quiz,this.quiz.length?(this.default_quiz=this.quiz[0].attempts,this.calculate_questions_attempts(this.default_quiz)):this.reset_graphs()):this.error_messages.push(this.strings.error_network)}).catch(t=>{this.errors.push(this.strings.api_error_network)}).finally(()=>{this.loading=!1,h.addLogsIntoDB("viewed","week_"+t.weekcode,"week_section","Week section that allows you to obtain information on a specific week"),h.setGraphicsEventListeners(),h.addListenersQuiz()}),this.data},reset_graphs(){this.default_quiz=null,this.attempts_categories=[],this.attempts_series=[],this.attempts_questions=[],this.hardest_categories=[],this.hardest_series=[],this.hardest_questions=[]},compare_hardest:(t,e)=>t.pe>e.pe?-1:t.pe<e.pe?1:0,open_chart_help(t){let e=[],s="",i="",n="",a="";"questions_attempts"==t?(e.push({title:this.strings.questions_attempts_help_title,description:this.strings.questions_attempts_help_description_p1}),e.push({description:this.strings.questions_attempts_help_description_p2}),e.push({description:this.strings.questions_attempts_help_description_p3}),s="viewed",a="help",n="questions_attempts",i="Help section that provides information about the attempted questions chart",h.addLogsIntoDB(s,n,a,i)):"hardest_questions"==t&&(e.push({title:this.strings.hardest_questions_help_title,description:this.strings.hardest_questions_help_description_p1}),e.push({description:this.strings.hardest_questions_help_description_p2}),e.push({description:this.strings.hardest_questions_help_description_p3}),s="viewed",a="help",n="hardest_questions",i="Help section that provides information about the difficult questions chart",h.addLogsIntoDB(s,n,a,i)),this.help_contents=e,this.help_contents.length&&(this.help_dialog=!0)},update_help_dialog(t){this.help_dialog=t},get_timezone(){return`${this.strings.ss_change_timezone} ${this.timezone}`},setGraphicsEventListeners(){let t=document.querySelectorAll(".highcharts-container");t.length<1?setTimeout(h.setGraphicsEventListeners,500):(t[0].id="attemptedQuestions",t[1].id="difficultQuestions",t.forEach(t=>{t.addEventListener("mouseenter",h.addLogsViewGraphic)}))},addLogsViewGraphic(t){event.stopPropagation();var e="",s="",i="",n="";switch(t.target.id){case"attemptedQuestions":e="viewed",s=this.quiz_name+"_questions_attempts",i="chart",n="Bar chart that shows the attempted questions";break;case"difficultQuestions":e="viewed",s=this.quiz_name+"_hardest_questions",i="chart",n="Chart showing the most difficult questions answered";break;default:e="viewed",s="",i="chart",n="A chart"}this.addLogsIntoDB(e,s,i,n)},addLogsIntoDB(t,e,n,a){let o={courseid:i.courseid,userid:i.userid,action:"addLogs",sectionname:"ASSESSMENT_MONITORING",actiontype:t,objectType:n,objectName:e,currentUrl:document.location.href,objectDescription:a};s({method:"get",url:M.cfg.wwwroot+"/local/fliplearning/ajax.php",params:o}).then(t=>{200==t.status&&t.data.ok}).catch(t=>{})}}})}}}); +//# sourceMappingURL=quiz.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/quiz.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/quiz.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..46627e94ff99bf18feb9a01160b04307cd48965d --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/quiz.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/quiz.js"],"names":["define","Vue","Vuetify","Axios","Moment","Pagination","ChartDynamic","PageHeader","HelpDialog","init","content","use","component","vue","delimiters","el","vuetify","data","strings","groups","userid","courseid","timezone","render_has","profile_render","loading","errors","pages","quiz","questions_attempts_colors","hardest_questions_colors","default_quiz","attempts_categories","attempts_series","attempts_questions","hardest_categories","hardest_series","hardest_questions","help_dialog","help_contents","beforeMount","length","attempts","calculate_questions_attempts","mounted","document","querySelector","style","display","methods","get_help_content","contents","title","section_help_title","description","section_help_description","get_quiz_info_text1","text","questions_number","details","questions","questions_label","questions_text","question_text","quiz_info_text","get_quiz_info_text2","attempts_number","doing_text","doing_text_plural","doing_text_singular","students_number","users","students_label","students_text","student_text","build_questions_attempts_chart","chart","type","backgroundColor","fontFamily","colors","xAxis","categories","yAxis","min","allowDecimals","questions_attempts_yaxis_title","tooltip","formatter","question_name","x","attemps","y","total_attemps","total","percentage","Math","round","series_name","series","name","attempt_preffix","attempts_text","charAt","toUpperCase","slice","attempt_label","of_conector","review_question","attempt_text","plotOptions","column","stacking","cursor","point","events","click","question","id","url","M","cfg","wwwroot","window","open","build_hardest_questions_chart","legend","enabled","position","question_info","serie_name","value","ha","to","hardest_questions_yaxis_title","labels","format","cont","ql","correct","partcorrect","incorr","gaveup","needgrade","hardest","co","pc","ic","ga","ng","forEach","gradedright","mangrright","gradedpartial","mangrpartial","gradedwrong","mangrwrong","mangaveup","needsgrading","finished","manfinished","push","qu","pe","correct_attempt","partcorrect_attempt","incorrect_attempt","blank_attempt","needgraded_attempt","hardest_data","sort","compare_hardest","element","update_interactions","week","action","weekcode","profile","method","params","then","response","status","ok","reset_graphs","error_messages","error_network","catch","api_error_network","finally","a","b","open_chart_help","questions_attempts_help_title","questions_attempts_help_description_p1","questions_attempts_help_description_p2","questions_attempts_help_description_p3","hardest_questions_help_title","hardest_questions_help_description_p1","hardest_questions_help_description_p2","hardest_questions_help_description_p3","update_help_dialog","get_timezone","information","ss_change_timezone"],"mappings":"AAAAA,OAAM,2BAAC,CAAC,wBAAD,CACC,4BADD,CAEC,0BAFD,CAGC,2BAHD,CAIC,+BAJD,CAKC,iCALD,CAMC,+BAND,CAOC,+BAPD,CAAD,CASF,SAASC,CAAT,CAAcC,CAAd,CAAuBC,CAAvB,CAA8BC,CAA9B,CAAsCC,CAAtC,CAAkDC,CAAlD,CAAgEC,CAAhE,CAA4EC,CAA5E,CAAwF,CACpF,aA4YA,MAAO,CACHC,IAAI,CA3YR,SAAcC,CAAd,CAAuB,CAEnBT,CAAG,CAACU,GAAJ,CAAQT,CAAR,EACAD,CAAG,CAACW,SAAJ,CAAc,YAAd,CAA4BP,CAA5B,EACAJ,CAAG,CAACW,SAAJ,CAAc,OAAd,CAAuBN,CAAvB,EACAL,CAAG,CAACW,SAAJ,CAAc,YAAd,CAA4BL,CAA5B,EACAN,CAAG,CAACW,SAAJ,CAAc,YAAd,CAA4BJ,CAA5B,EACA,GAAIK,CAAAA,CAAG,CAAG,GAAIZ,CAAAA,CAAJ,CAAQ,CACda,UAAU,CAAE,CAAC,IAAD,CAAO,IAAP,CADE,CAEdC,EAAE,CAAE,OAFU,CAGdC,OAAO,CAAE,GAAId,CAAAA,CAHC,CAIde,IAJc,gBAIP,CACH,MAAO,CACHC,OAAO,CAAGR,CAAO,CAACQ,OADf,CAEHC,MAAM,CAAGT,CAAO,CAACS,MAFd,CAGHC,MAAM,CAAGV,CAAO,CAACU,MAHd,CAIHC,QAAQ,CAAGX,CAAO,CAACW,QAJhB,CAKHC,QAAQ,CAAGZ,CAAO,CAACY,QALhB,CAMHC,UAAU,CAAGb,CAAO,CAACc,cANlB,CAOHC,OAAO,GAPJ,CAQHC,MAAM,CAAG,EARN,CASHC,KAAK,CAAGjB,CAAO,CAACiB,KATb,CAWHC,IAAI,CAAGlB,CAAO,CAACkB,IAXZ,CAYHC,yBAAyB,CAAEnB,CAAO,CAACmB,yBAZhC,CAaHC,wBAAwB,CAAEpB,CAAO,CAACoB,wBAb/B,CAcHC,YAAY,CAAE,IAdX,CAeHC,mBAAmB,CAAE,EAflB,CAgBHC,eAAe,CAAE,EAhBd,CAiBHC,kBAAkB,CAAE,EAjBjB,CAkBHC,kBAAkB,CAAE,EAlBjB,CAmBHC,cAAc,CAAE,EAnBb,CAoBHC,iBAAiB,CAAE,EApBhB,CAsBHC,WAAW,GAtBR,CAuBHC,aAAa,CAAE,EAvBZ,CAyBV,CA9Ba,CA+BdC,WA/Bc,uBA+BD,CACT,GAAI,KAAKZ,IAAL,CAAUa,MAAd,CAAsB,CAClB,KAAKV,YAAL,CAAoB,KAAKH,IAAL,CAAU,CAAV,EAAac,QAAjC,CACA,KAAKC,4BAAL,CAAkC,KAAKZ,YAAvC,CACH,CACJ,CApCa,CAqCda,OArCc,mBAqCL,CACLC,QAAQ,CAACC,aAAT,CAAuB,kBAAvB,EAA2CC,KAA3C,CAAiDC,OAAjD,CAA2D,MAA3D,CACAH,QAAQ,CAACC,aAAT,CAAuB,OAAvB,EAAgCC,KAAhC,CAAsCC,OAAtC,CAAgD,OACnD,CAxCa,CAyCdC,OAAO,CAAG,CACNC,gBADM,4BACY,CACd,GAAIC,CAAAA,CAAQ,CAAG,CACD,CACVC,KAAK,CAAE,KAAKlC,OAAL,CAAamC,kBADV,CAEVC,WAAW,CAAE,KAAKpC,OAAL,CAAaqC,wBAFhB,CADC,CAAf,CAKA,MAAOJ,CAAAA,CACV,CARK,CAUNK,mBAVM,+BAUgB,CAClB,GAAIC,CAAAA,CAAI,CAAG,EAAX,CACA,GAAI,KAAK1B,YAAT,CAAuB,IACf2B,CAAAA,CAAgB,CAAG,KAAK3B,YAAL,CAAkB4B,OAAlB,CAA0BC,SAD9B,CAEfC,CAAe,CAAG,KAAK3C,OAAL,CAAa4C,cAFhB,CAGnB,GAAwB,CAApB,EAAAJ,CAAJ,CAA2B,CACvBG,CAAe,CAAG,KAAK3C,OAAL,CAAa6C,aAClC,CACDN,CAAI,aAAQ,KAAKvC,OAAL,CAAa8C,cAArB,aAAuCN,CAAvC,aAA2DG,CAA3D,CACP,CACD,MAAOJ,CAAAA,CACV,CArBK,CAuBNQ,mBAvBM,+BAuBgB,CAClB,GAAIR,CAAAA,CAAI,CAAG,EAAX,CACA,GAAI,KAAK1B,YAAT,CAAuB,IACfmC,CAAAA,CAAe,CAAG,KAAKnC,YAAL,CAAkB4B,OAAlB,CAA0BjB,QAD7B,CAEfyB,CAAU,CAAG,KAAKjD,OAAL,CAAakD,iBAFX,CAGnB,GAAuB,CAAnB,EAAAF,CAAJ,CAA0B,CACtBC,CAAU,CAAG,KAAKjD,OAAL,CAAamD,mBAC7B,CALkB,GAMfC,CAAAA,CAAe,CAAG,KAAKvC,YAAL,CAAkB4B,OAAlB,CAA0BY,KAN7B,CAOfC,CAAc,CAAG,KAAKtD,OAAL,CAAauD,aAPf,CAQnB,GAAuB,CAAnB,EAAAH,CAAJ,CAA0B,CACtBE,CAAc,CAAG,KAAKtD,OAAL,CAAawD,YACjC,CACDjB,CAAI,aAAQS,CAAR,aAA2BC,CAA3B,aAAyCG,CAAzC,aAA4DE,CAA5D,CACP,CACD,MAAOf,CAAAA,CACV,CAvCK,CAyCNkB,8BAzCM,0CAyC2B,CAC7B,GAAIC,CAAAA,CAAK,GAAT,CACAA,CAAK,CAACA,KAAN,CAAc,CACVC,IAAI,CAAE,QADI,CAEVC,eAAe,CAAE,IAFP,CAGV/B,KAAK,CAAE,CAACgC,UAAU,CAAE,SAAb,CAHG,CAAd,CAKAH,CAAK,CAACxB,KAAN,CAAc,CACVK,IAAI,CAAE,IADI,CAAd,CAGAmB,CAAK,CAACI,MAAN,CAAe,KAAKnD,yBAApB,CACA+C,CAAK,CAACK,KAAN,CAAc,CACVC,UAAU,CAAE,KAAKlD,mBADP,CAAd,CAGA4C,CAAK,CAACO,KAAN,CAAc,CAAC,CACXC,GAAG,CAAE,CADM,CAEXC,aAAa,GAFF,CAGXjC,KAAK,CAAE,CACHK,IAAI,CAAE,KAAKvC,OAAL,CAAaoE,8BADhB,CAHI,CAAD,CAAd,CAOAV,CAAK,CAACW,OAAN,CAAgB,CACZC,SAAS,CAAE,oBAAW,IACdC,CAAAA,CAAa,CAAG,KAAKC,CADP,CAEdC,CAAO,CAAG,KAAKC,CAFD,CAGdC,CAAa,CAAG,KAAKC,KAHP,CAIdC,CAAU,CAAGC,IAAI,CAACC,KAAL,EAAkB,KAAKF,UAAvB,CAJC,CAKdG,CAAW,CAAG,KAAKC,MAAL,CAAYC,IALZ,CAMdC,CAAe,CAAGxF,CAAG,CAACK,OAAJ,CAAYoF,aANhB,CAOlBD,CAAe,CAAGA,CAAe,CAACE,MAAhB,CAAuB,CAAvB,EAA0BC,WAA1B,GAA0CH,CAAe,CAACI,KAAhB,CAAsB,CAAtB,CAA5D,CAPkB,GAQdC,CAAAA,CAAa,CAAG7F,CAAG,CAACK,OAAJ,CAAYoF,aARd,CASdK,CAAW,CAAG9F,CAAG,CAACK,OAAJ,CAAYyF,WATZ,CAUdC,CAAe,CAAG/F,CAAG,CAACK,OAAJ,CAAY0F,eAVhB,CAWlB,GAAe,CAAX,EAAAjB,CAAJ,CAAkB,CACde,CAAa,CAAG7F,CAAG,CAACK,OAAJ,CAAY2F,YAC/B,CACD,GAAIpD,CAAAA,CAAI,CAAG,MAAQgC,CAAR,CAAwB,QAAxB,CAAmCY,CAAnC,CAAqD,GAArD,CAA2DH,CAA3D,CAAyE,OAAzE,CACAP,CADA,CACU,GADV,CACgBe,CADhB,CACgC,GADhC,CACsCC,CADtC,CACoD,GADpD,CAC0Dd,CAD1D,CAEC,IAFD,CAEQE,CAFR,WAEsCa,CAFjD,CAIA,MAAOnD,CAAAA,CACV,CApBW,CAAhB,CAsBAmB,CAAK,CAACkC,WAAN,CAAoB,CAChBC,MAAM,CAAE,CACJC,QAAQ,CAAE,QADN,CADQ,CAIhBb,MAAM,CAAE,CACJc,MAAM,CAAE,SADJ,CAEJC,KAAK,CAAE,CACHC,MAAM,CAAE,CACJC,KAAK,CAAE,gBAAY,IACXC,CAAAA,CAAQ,CAAGxG,CAAG,CAACqB,kBAAJ,CAAuB,KAAKwD,CAA5B,CADA,CAEX4B,CAAE,CAAGD,CAAQ,CAACC,EAFH,CAGXC,CAAG,CAAGC,CAAC,CAACC,GAAF,CAAMC,OAAN,CAAgB,2BAAhB,CAA4CJ,CAA5C,CAA+C,YAA/C,CAA4DzG,CAAG,CAACQ,QAH3D,CAIfsG,MAAM,CAACC,IAAP,CAAYL,CAAZ,CAAiB,QAAjB,CAA2B,qCAA3B,CACH,CANG,CADL,CAFH,CAJQ,CAApB,CAkBA3C,CAAK,CAACuB,MAAN,CAAe,KAAKlE,eAApB,CACA,MAAO2C,CAAAA,CACV,CAxGK,CA0GNiD,6BA1GM,yCA0G0B,CAC5B,GAAIjD,CAAAA,CAAK,GAAT,CACAA,CAAK,CAACA,KAAN,CAAc,CACVC,IAAI,CAAE,QADI,CAEVC,eAAe,CAAE,IAFP,CAGV/B,KAAK,CAAE,CAACgC,UAAU,CAAE,SAAb,CAHG,CAAd,CAKAH,CAAK,CAACxB,KAAN,CAAc,CACVK,IAAI,CAAE,IADI,CAAd,CAGAmB,CAAK,CAACI,MAAN,CAAe,KAAKlD,wBAApB,CACA8C,CAAK,CAACK,KAAN,CAAc,CACVC,UAAU,CAAE,KAAK/C,kBADP,CAAd,CAGAyC,CAAK,CAACkD,MAAN,CAAe,CACXC,OAAO,GADI,CAAf,CAGAnD,CAAK,CAACW,OAAN,CAAgB,CACZC,SAAS,CAAE,oBAAW,IACdwC,CAAAA,CAAQ,CAAG,KAAKd,KAAL,CAAWxB,CADR,CAEduC,CAAa,CAAGpH,CAAG,CAACwB,iBAAJ,CAAsB2F,CAAtB,CAFF,CAGdvC,CAAa,CAAG,KAAKC,CAHP,CAIdwC,CAAU,CAAG,KAAK/B,MAAL,CAAYC,IAJX,CAKd+B,CAAK,CAAG,KAAKvC,CALC,CAMdc,CAAa,CAAG7F,CAAG,CAACK,OAAJ,CAAYoF,aANd,CAOdK,CAAW,CAAG9F,CAAG,CAACK,OAAJ,CAAYyF,WAPZ,CAQdC,CAAe,CAAG/F,CAAG,CAACK,OAAJ,CAAY0F,eARhB,CASlB,GAAwB,CAApB,EAAAqB,CAAa,CAACG,EAAlB,CAA2B,CACvB1B,CAAa,CAAG7F,CAAG,CAACK,OAAJ,CAAY2F,YAC/B,CACD,GAAIpD,CAAAA,CAAI,CAAG,MAAQgC,CAAR,CAAwB,QAAxB,CAAmCyC,CAAnC,CAAgD,OAAhD,CACCD,CAAa,CAACG,EADf,CACoB,GADpB,CAC0B1B,CAD1B,CAC0C,GAD1C,CACgDC,CADhD,CAC8D,GAD9D,CAEGsB,CAAa,CAACI,EAFjB,CAEsB,IAFtB,CAE6BF,CAF7B,WAEsDvB,CAFjE,CAGA,MAAOnD,CAAAA,CACV,CAjBW,CAAhB,CAmBAmB,CAAK,CAACO,KAAN,CAAc,CAAC,CACXC,GAAG,CAAE,CADM,CAEXC,aAAa,GAFF,CAGXjC,KAAK,CAAE,CACHK,IAAI,CAAE,KAAKvC,OAAL,CAAaoH,6BADhB,CAHI,CAMXC,MAAM,CAAE,CACJC,MAAM,CAAE,WADJ,CANG,CAAD,CAAd,CAUA5D,CAAK,CAACkC,WAAN,CAAoB,CAChBX,MAAM,CAAE,CACJc,MAAM,CAAE,SADJ,CAEAC,KAAK,CAAE,CACPC,MAAM,CAAE,CACJC,KAAK,CAAE,gBAAY,IACXC,CAAAA,CAAQ,CAAGxG,CAAG,CAACwB,iBAAJ,CAAsB,KAAKqD,CAA3B,CADA,CAEX4B,CAAE,CAAGD,CAAQ,CAACC,EAFH,CAGXC,CAAG,CAAGC,CAAC,CAACC,GAAF,CAAMC,OAAN,CAAgB,2BAAhB,CAA4CJ,CAA5C,CAA+C,YAA/C,CAA4DzG,CAAG,CAACQ,QAH3D,CAIfsG,MAAM,CAACC,IAAP,CAAaL,CAAb,CAAkB,QAAlB,CAA4B,qCAA5B,CACH,CANG,CADD,CAFP,CADQ,CAApB,CAeA3C,CAAK,CAACuB,MAAN,CAAe,KAAK/D,cAApB,CACA,MAAOwC,CAAAA,CACV,CAzKK,CA2KNjC,4BA3KM,uCA2KuBf,CA3KvB,CA2K6B,IAC3BgC,CAAAA,CAAS,CAAGhC,CAAI,CAACgC,SADU,CAE3B5B,CAAmB,CAAG,EAFK,CAG3ByG,CAAI,CAAG,CAHoB,CAGjBC,CAAE,CAAG,EAHY,CAK3BC,CAAO,CAAG,EALiB,CAKbC,CAAW,CAAG,EALD,CAKKC,CAAM,CAAG,EALd,CAKkBC,CAAM,CAAG,EAL3B,CAK+BC,CAAS,CAAG,EAL3C,CAK+CC,CAAO,CAAG,EALzD,CAM3B9G,CAAkB,CAAG,EANM,CAO3B+G,CAP2B,CAOvBC,CAPuB,CAOnBC,CAPmB,CAOfC,CAPe,CAOXC,CAPW,CAOPhB,CAPO,CAOHD,CAAE,CAAG,CAPF,CAS/BxE,CAAS,CAAC0F,OAAV,CAAkB,SAAAjC,CAAQ,CAAI,CAC1B4B,CAAE,CAAEC,CAAF,CAAMC,CAAN,CAAUC,CAAV,CAAcC,CAAd,CAAkBhB,CAAE,CAAG,CAAzB,CACAY,CAAE,CAAG,CAAC5B,CAAQ,CAACkC,WAAT,EAAwB,CAAzB,GAA+BlC,CAAQ,CAACmC,UAAT,EAAuB,CAAtD,CAAL,CACAN,CAAE,CAAG,CAAC7B,CAAQ,CAACoC,aAAT,EAA0B,CAA3B,GAAiCpC,CAAQ,CAACqC,YAAT,EAAyB,CAA1D,CAAL,CACAP,CAAE,CAAG,CAAC9B,CAAQ,CAACsC,WAAT,EAAwB,CAAzB,GAA+BtC,CAAQ,CAACuC,UAAT,EAAuB,CAAtD,CAAL,CACAR,CAAE,CAAG,CAAC/B,CAAQ,CAACyB,MAAT,EAAmB,CAApB,GAA0BzB,CAAQ,CAACwC,SAAT,EAAsB,CAAhD,CAAL,CACAR,CAAE,CAAG,CAAChC,CAAQ,CAACyC,YAAT,EAAyB,CAA1B,GAAgCzC,CAAQ,CAACwC,SAAT,EAAsB,CAAtD,GACAxC,CAAQ,CAAC0C,QAAT,EAAqB,CADrB,GAC2B1C,CAAQ,CAAC2C,WAAT,EAAwB,CADnD,CAAL,CAGArB,CAAO,CAACsB,IAAR,CAAahB,CAAb,EACAL,CAAW,CAACqB,IAAZ,CAAiBf,CAAjB,EACAL,CAAM,CAACoB,IAAP,CAAYd,CAAZ,EACAL,CAAM,CAACmB,IAAP,CAAYb,CAAZ,EACAL,CAAS,CAACkB,IAAV,CAAeZ,CAAf,EAEAX,CAAE,CAAG,IAAMD,CAAX,CACAL,CAAE,CAAGc,CAAE,CAAGC,CAAL,CAAUC,CAAf,CACAf,CAAE,CAAGY,CAAE,CAAGC,CAAL,CAAUC,CAAV,CAAeC,CAAf,CAAoBC,CAAzB,CACAL,CAAO,CAACiB,IAAR,CAAa,CAAE3C,EAAE,CAAED,CAAQ,CAACC,EAAf,CAAmB4C,EAAE,CAAExB,CAAvB,CAA2BN,EAAE,CAAEA,CAA/B,CAAmCC,EAAE,CAAEA,CAAvC,CAA2C8B,EAAE,CAAEnE,IAAI,CAACC,KAAL,CAAiB,GAAL,CAAAmC,CAAD,CAAaC,CAAxB,CAA/C,CAAb,EACArG,CAAmB,CAACiI,IAApB,CAAyBvB,CAAzB,EACAxG,CAAkB,CAAC+H,IAAnB,CAAwB5C,CAAxB,EACAoB,CAAI,EACP,CAtBD,EAT+B,GAiC3BxG,CAAAA,CAAe,CAAG,CACD,CACjBmE,IAAI,CAAE,KAAKlF,OAAL,CAAakJ,eADF,CAEjBnJ,IAAI,CAAE0H,CAFW,CADC,CAKD,CACjBvC,IAAI,CAAE,KAAKlF,OAAL,CAAamJ,mBADF,CAEjBpJ,IAAI,CAAE2H,CAFW,CALC,CASD,CACjBxC,IAAI,CAAE,KAAKlF,OAAL,CAAaoJ,iBADF,CAEjBrJ,IAAI,CAAE4H,CAFW,CATC,CAaD,CACjBzC,IAAI,CAAE,KAAKlF,OAAL,CAAaqJ,aADF,CAEjBtJ,IAAI,CAAE6H,CAFW,CAbC,CAiBD,CACjB1C,IAAI,CAAE,KAAKlF,OAAL,CAAasJ,kBADF,CAEjBvJ,IAAI,CAAE8H,CAFW,CAjBC,CAjCS,CAuD3B5G,CAAkB,CAAG,EAvDM,CAuDFsI,CAAY,CAAG,EAvDb,CAuDiBpI,CAAiB,CAAG,EAvDrC,CAwD/B2G,CAAO,CAAC0B,IAAR,CAAa,KAAKC,eAAlB,EACA3B,CAAO,CAACM,OAAR,CAAgB,SAAAsB,CAAO,CAAI,CACvB,GAAIA,CAAO,CAACT,EAAZ,CAAgB,CACZhI,CAAkB,CAAC8H,IAAnB,CAAwBW,CAAO,CAACV,EAAhC,EACAO,CAAY,CAACR,IAAb,CAAkBW,CAAO,CAACT,EAA1B,EACA9H,CAAiB,CAAC4H,IAAlB,CAAuBW,CAAvB,CACH,CACJ,CAND,EAQA,GAAIxI,CAAAA,CAAc,CAAG,CAAC,CAClBgE,IAAI,CAAE,KAAKlF,OAAL,CAAaoH,6BADD,CAElBrH,IAAI,CAAEwJ,CAFY,CAAD,CAArB,CAKA,KAAKzI,mBAAL,CAA2BA,CAA3B,CACA,KAAKC,eAAL,CAAuBA,CAAvB,CACA,KAAKC,kBAAL,CAA0BA,CAA1B,CACA,KAAKC,kBAAL,CAA0BA,CAA1B,CACA,KAAKC,cAAL,CAAsBA,CAAtB,CACA,KAAKC,iBAAL,CAAyBA,CAC5B,CAvPK,CAyPNwI,mBAzPM,8BAyPcC,CAzPd,CAyPmB,YACrB,KAAKrJ,OAAL,IACA,KAAKC,MAAL,CAAc,EAAd,CACA,GAAIT,CAAAA,CAAI,CAAG,CACP8J,MAAM,CAAG,MADF,CAEP3J,MAAM,CAAG,KAAKA,MAFP,CAGPC,QAAQ,CAAG,KAAKA,QAHT,CAIP2J,QAAQ,CAAGF,CAAI,CAACE,QAJT,CAKPC,OAAO,CAAG,KAAK1J,UALR,CAAX,CAOApB,CAAK,CAAC,CACF+K,MAAM,CAAC,KADL,CAEF3D,GAAG,CAAEC,CAAC,CAACC,GAAF,CAAMC,OAAN,CAAgB,8BAFnB,CAGFyD,MAAM,CAAGlK,CAHP,CAAD,CAAL,CAIGmK,IAJH,CAIQ,SAACC,CAAD,CAAc,CAClB,GAAuB,GAAnB,EAAAA,CAAQ,CAACC,MAAT,EAA0BD,CAAQ,CAACpK,IAAT,CAAcsK,EAA5C,CAAgD,CAC5C,CAAI,CAAC3J,IAAL,CAAYyJ,CAAQ,CAACpK,IAAT,CAAcA,IAAd,CAAmBW,IAA/B,CACA,GAAI,CAAI,CAACA,IAAL,CAAUa,MAAd,CAAsB,CAClB,CAAI,CAACV,YAAL,CAAoB,CAAI,CAACH,IAAL,CAAU,CAAV,EAAac,QAAjC,CACA,CAAI,CAACC,4BAAL,CAAkC,CAAI,CAACZ,YAAvC,CACH,CAHD,IAGO,CACH,CAAI,CAACyJ,YAAL,EACH,CACJ,CARD,IAQO,CACH,CAAI,CAACC,cAAL,CAAoBxB,IAApB,CAAyB,CAAI,CAAC/I,OAAL,CAAawK,aAAtC,CACH,CACJ,CAhBD,EAgBGC,KAhBH,CAgBS,UAAO,CACZ,CAAI,CAACjK,MAAL,CAAYuI,IAAZ,CAAiB,CAAI,CAAC/I,OAAL,CAAa0K,iBAA9B,CACH,CAlBD,EAkBGC,OAlBH,CAkBW,UAAM,CACb,CAAI,CAACpK,OAAL,GACH,CApBD,EAqBA,MAAO,MAAKR,IACf,CAzRK,CA2RNuK,YA3RM,wBA2RU,CACZ,KAAKzJ,YAAL,CAAoB,IAApB,CACA,KAAKC,mBAAL,CAA2B,EAA3B,CACA,KAAKC,eAAL,CAAuB,EAAvB,CACA,KAAKC,kBAAL,CAA0B,EAA1B,CACA,KAAKC,kBAAL,CAA0B,EAA1B,CACA,KAAKC,cAAL,CAAsB,EAAtB,CACA,KAAKC,iBAAL,CAAyB,EAC5B,CAnSK,CAqSNsI,eArSM,0BAqSUmB,CArSV,CAqSaC,CArSb,CAqSgB,CAClB,GAAID,CAAC,CAAC3B,EAAF,CAAO4B,CAAC,CAAC5B,EAAb,CAAiB,CACb,MAAO,CAAC,CACX,CACD,GAAI2B,CAAC,CAAC3B,EAAF,CAAO4B,CAAC,CAAC5B,EAAb,CAAiB,CACb,MAAO,EACV,CACD,MAAO,EACV,CA7SK,CA+SN6B,eA/SM,0BA+SUpH,CA/SV,CA+SiB,CACnB,GAAIzB,CAAAA,CAAQ,CAAG,EAAf,CACA,GAAa,oBAAT,EAAAyB,CAAJ,CAAmC,CAC/BzB,CAAQ,CAAC8G,IAAT,CAAc,CACV7G,KAAK,CAAE,KAAKlC,OAAL,CAAa+K,6BADV,CAEV3I,WAAW,CAAE,KAAKpC,OAAL,CAAagL,sCAFhB,CAAd,EAIA/I,CAAQ,CAAC8G,IAAT,CAAc,CACV3G,WAAW,CAAE,KAAKpC,OAAL,CAAaiL,sCADhB,CAAd,EAGAhJ,CAAQ,CAAC8G,IAAT,CAAc,CACV3G,WAAW,CAAE,KAAKpC,OAAL,CAAakL,sCADhB,CAAd,CAGH,CAXD,IAWO,IAAa,mBAAT,EAAAxH,CAAJ,CAAkC,CACrCzB,CAAQ,CAAC8G,IAAT,CAAc,CACV7G,KAAK,CAAE,KAAKlC,OAAL,CAAamL,4BADV,CAEV/I,WAAW,CAAE,KAAKpC,OAAL,CAAaoL,qCAFhB,CAAd,EAIAnJ,CAAQ,CAAC8G,IAAT,CAAc,CACV3G,WAAW,CAAE,KAAKpC,OAAL,CAAaqL,qCADhB,CAAd,EAGApJ,CAAQ,CAAC8G,IAAT,CAAc,CACV3G,WAAW,CAAE,KAAKpC,OAAL,CAAasL,qCADhB,CAAd,CAGH,CACD,KAAKjK,aAAL,CAAqBY,CAArB,CACA,GAAI,KAAKZ,aAAL,CAAmBE,MAAvB,CAA+B,CAC3B,KAAKH,WAAL,GACH,CACJ,CA5UK,CA8UNmK,kBA9UM,6BA8UctE,CA9Ud,CA8UqB,CACvB,KAAK7F,WAAL,CAAmB6F,CACtB,CAhVK,CAkVNuE,YAlVM,wBAkVQ,CACV,GAAIC,CAAAA,CAAW,WAAM,KAAKzL,OAAL,CAAa0L,kBAAnB,aAAyC,KAAKtL,QAA9C,CAAf,CACA,MAAOqL,CAAAA,CACV,CArVK,CAzCI,CAAR,CAiYb,CAEM,CAGV,CAzZC,CAAN","sourcesContent":["define([\"local_fliplearning/vue\",\r\n \"local_fliplearning/vuetify\",\r\n \"local_fliplearning/axios\",\r\n \"local_fliplearning/moment\",\r\n \"local_fliplearning/pagination\",\r\n \"local_fliplearning/chartdynamic\",\r\n \"local_fliplearning/pageheader\",\r\n \"local_fliplearning/helpdialog\",\r\n ],\r\n function(Vue, Vuetify, Axios, Moment, Pagination, ChartDynamic, PageHeader, HelpDialog) {\r\n \"use strict\";\r\n\r\n function init(content) {\r\n // console.log(content);\r\n Vue.use(Vuetify);\r\n Vue.component('pagination', Pagination);\r\n Vue.component('chart', ChartDynamic);\r\n Vue.component('pageheader', PageHeader);\r\n Vue.component('helpdialog', HelpDialog);\r\n let vue = new Vue({\r\n delimiters: [\"[[\", \"]]\"],\r\n el: \"#quiz\",\r\n vuetify: new Vuetify(),\r\n data() {\r\n return {\r\n strings : content.strings,\r\n groups : content.groups,\r\n userid : content.userid,\r\n courseid : content.courseid,\r\n timezone : content.timezone,\r\n render_has : content.profile_render,\r\n loading : false,\r\n errors : [],\r\n pages : content.pages,\r\n\r\n quiz : content.quiz,\r\n questions_attempts_colors: content.questions_attempts_colors,\r\n hardest_questions_colors: content.hardest_questions_colors,\r\n default_quiz: null,\r\n attempts_categories: [],\r\n attempts_series: [],\r\n attempts_questions: [],\r\n hardest_categories: [],\r\n hardest_series: [],\r\n hardest_questions: [],\r\n\r\n help_dialog: false,\r\n help_contents: [],\r\n }\r\n },\r\n beforeMount(){\r\n if (this.quiz.length) {\r\n this.default_quiz = this.quiz[0].attempts;\r\n this.calculate_questions_attempts(this.default_quiz);\r\n };\r\n },\r\n mounted(){\r\n document.querySelector(\"#sessions-loader\").style.display = \"none\";\r\n document.querySelector(\"#quiz\").style.display = \"block\";\r\n },\r\n methods : {\r\n get_help_content(){\r\n let contents = [];\r\n contents.push({\r\n title: this.strings.section_help_title,\r\n description: this.strings.section_help_description,\r\n });\r\n return contents;\r\n },\r\n\r\n get_quiz_info_text1() {\r\n let text = '';\r\n if (this.default_quiz) {\r\n let questions_number = this.default_quiz.details.questions;\r\n let questions_label = this.strings.questions_text;\r\n if (questions_number == 1) {\r\n questions_label = this.strings.question_text;\r\n }\r\n text = `* ${this.strings.quiz_info_text} ${questions_number} ${questions_label}`;\r\n }\r\n return text;\r\n },\r\n\r\n get_quiz_info_text2() {\r\n let text = '';\r\n if (this.default_quiz) {\r\n let attempts_number = this.default_quiz.details.attempts;\r\n let doing_text = this.strings.doing_text_plural;\r\n if (attempts_number == 1) {\r\n doing_text = this.strings.doing_text_singular;\r\n }\r\n let students_number = this.default_quiz.details.users;\r\n let students_label = this.strings.students_text;\r\n if (students_number == 1) {\r\n students_label = this.strings.student_text;\r\n }\r\n text = `* ${attempts_number} ${doing_text} ${students_number} ${students_label}`;\r\n }\r\n return text;\r\n },\r\n\r\n build_questions_attempts_chart() {\r\n let chart = new Object();\r\n chart.chart = {\r\n type: 'column',\r\n backgroundColor: null,\r\n style: {fontFamily: 'poppins'},\r\n };\r\n chart.title = {\r\n text: null\r\n };\r\n chart.colors = this.questions_attempts_colors;\r\n chart.xAxis = {\r\n categories: this.attempts_categories\r\n };\r\n chart.yAxis = [{\r\n min: 0,\r\n allowDecimals: false,\r\n title: {\r\n text: this.strings.questions_attempts_yaxis_title\r\n }\r\n }];\r\n chart.tooltip = {\r\n formatter: function() {\r\n let question_name = this.x;\r\n let attemps = this.y;\r\n let total_attemps = this.total;\r\n let percentage = Math.round(Number(this.percentage));\r\n let series_name = this.series.name;\r\n let attempt_preffix = vue.strings.attempts_text;\r\n attempt_preffix = attempt_preffix.charAt(0).toUpperCase() + attempt_preffix.slice(1);\r\n let attempt_label = vue.strings.attempts_text;\r\n let of_conector = vue.strings.of_conector;\r\n let review_question = vue.strings.review_question;\r\n if (attemps == 1) {\r\n attempt_label = vue.strings.attempt_text;\r\n }\r\n let text = '<b>' + question_name + ': </b>' + attempt_preffix + ' ' + series_name + '<br/>' +\r\n attemps + ' ' + attempt_label + ' ' + of_conector + ' ' + total_attemps +\r\n ' (' + percentage + '%)' + '<br/>' + review_question;\r\n\r\n return text;\r\n }\r\n };\r\n chart.plotOptions = {\r\n column: {\r\n stacking: 'normal'\r\n },\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: function () {\r\n let question = vue.attempts_questions[this.x];\r\n let id = question.id;\r\n let url = M.cfg.wwwroot + '/question/preview.php?id='+id+'&courseid='+vue.courseid;\r\n window.open(url, '_blank', 'top=50,left=50,width=900,height=600');\r\n }\r\n }\r\n }\r\n }\r\n };\r\n chart.series = this.attempts_series;\r\n return chart;\r\n },\r\n\r\n build_hardest_questions_chart() {\r\n let chart = new Object();\r\n chart.chart = {\r\n type: 'column',\r\n backgroundColor: null,\r\n style: {fontFamily: 'poppins'},\r\n };\r\n chart.title = {\r\n text: null,\r\n };\r\n chart.colors = this.hardest_questions_colors;\r\n chart.xAxis = {\r\n categories: this.hardest_categories,\r\n };\r\n chart.legend = {\r\n enabled: false\r\n };\r\n chart.tooltip = {\r\n formatter: function() {\r\n let position = this.point.x;\r\n let question_info = vue.hardest_questions[position];\r\n let question_name = this.x;\r\n let serie_name = this.series.name;\r\n let value = this.y;\r\n let attempt_label = vue.strings.attempts_text;\r\n let of_conector = vue.strings.of_conector;\r\n let review_question = vue.strings.review_question;\r\n if (question_info.ha == 1) {\r\n attempt_label = vue.strings.attempt_text;\r\n }\r\n let text = '<b>' + question_name + ': </b>' + serie_name + '<br/>' +\r\n question_info.ha + ' ' + attempt_label + ' ' + of_conector + ' '\r\n + question_info.to + ' (' + value + '%)' + '<br/>' + review_question;\r\n return text;\r\n }\r\n };\r\n chart.yAxis = [{\r\n min: 0,\r\n allowDecimals: false,\r\n title: {\r\n text: this.strings.hardest_questions_yaxis_title\r\n },\r\n labels: {\r\n format: '{value} %',\r\n },\r\n }];\r\n chart.plotOptions = {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: function () {\r\n let question = vue.hardest_questions[this.x];\r\n let id = question.id;\r\n let url = M.cfg.wwwroot + '/question/preview.php?id='+id+'&courseid='+vue.courseid;\r\n window.open( url, '_blank', 'top=50,left=50,width=900,height=600');\r\n }\r\n }\r\n }\r\n }\r\n };\r\n chart.series = this.hardest_series;\r\n return chart;\r\n },\r\n\r\n calculate_questions_attempts(quiz) {\r\n let questions = quiz.questions;\r\n let attempts_categories = [];\r\n let cont = 1, ql = \"\";\r\n\r\n let correct = [], partcorrect = [], incorr = [], gaveup = [], needgrade = [], hardest = [],\r\n attempts_questions = [];\r\n let co, pc, ic, ga, ng, to, ha = 0;\r\n\r\n questions.forEach(question => {\r\n co, pc, ic, ga, ng, to = 0;\r\n co = (question.gradedright || 0) + (question.mangrright || 0);\r\n pc = (question.gradedpartial || 0) + (question.mangrpartial || 0);\r\n ic = (question.gradedwrong || 0) + (question.mangrwrong || 0);\r\n ga = (question.gaveup || 0) + (question.mangaveup || 0);\r\n ng = (question.needsgrading || 0) + (question.mangaveup || 0) +\r\n (question.finished || 0) + (question.manfinished || 0);\r\n\r\n correct.push(co);\r\n partcorrect.push(pc);\r\n incorr.push(ic);\r\n gaveup.push(ga);\r\n needgrade.push(ng);\r\n\r\n ql = 'P' + cont;\r\n ha = pc + ic + ga;\r\n to = co + pc + ic + ga + ng;\r\n hardest.push({ id: question.id, qu: ql, ha: ha, to: to, pe: Math.round((ha * 100) / to), });\r\n attempts_categories.push(ql);\r\n attempts_questions.push(question);\r\n cont++;\r\n });\r\n\r\n let attempts_series = [];\r\n attempts_series.push({\r\n name: this.strings.correct_attempt,\r\n data: correct\r\n });\r\n attempts_series.push({\r\n name: this.strings.partcorrect_attempt,\r\n data: partcorrect\r\n });\r\n attempts_series.push({\r\n name: this.strings.incorrect_attempt,\r\n data: incorr\r\n });\r\n attempts_series.push({\r\n name: this.strings.blank_attempt,\r\n data: gaveup\r\n });\r\n attempts_series.push({\r\n name: this.strings.needgraded_attempt,\r\n data: needgrade\r\n });\r\n\r\n let hardest_categories = [], hardest_data = [], hardest_questions = [];\r\n hardest.sort(this.compare_hardest);\r\n hardest.forEach(element => {\r\n if (element.pe) {\r\n hardest_categories.push(element.qu);\r\n hardest_data.push(element.pe);\r\n hardest_questions.push(element);\r\n }\r\n });\r\n\r\n let hardest_series = [{\r\n name: this.strings.hardest_questions_yaxis_title,\r\n data: hardest_data\r\n }];\r\n\r\n this.attempts_categories = attempts_categories;\r\n this.attempts_series = attempts_series;\r\n this.attempts_questions = attempts_questions;\r\n this.hardest_categories = hardest_categories;\r\n this.hardest_series = hardest_series;\r\n this.hardest_questions = hardest_questions;\r\n },\r\n\r\n update_interactions(week){\r\n this.loading = true;\r\n this.errors = [];\r\n let data = {\r\n action : \"quiz\",\r\n userid : this.userid,\r\n courseid : this.courseid,\r\n weekcode : week.weekcode,\r\n profile : this.render_has,\r\n }\r\n Axios({\r\n method:'get',\r\n url: M.cfg.wwwroot + \"/local/fliplearning/ajax.php\",\r\n params : data,\r\n }).then((response) => {\r\n if (response.status == 200 && response.data.ok) {\r\n this.quiz = response.data.data.quiz;\r\n if (this.quiz.length) {\r\n this.default_quiz = this.quiz[0].attempts;\r\n this.calculate_questions_attempts(this.default_quiz);\r\n } else {\r\n this.reset_graphs();\r\n };\r\n } else {\r\n this.error_messages.push(this.strings.error_network);\r\n }\r\n }).catch((e) => {\r\n this.errors.push(this.strings.api_error_network);\r\n }).finally(() => {\r\n this.loading = false;\r\n });\r\n return this.data;\r\n },\r\n\r\n reset_graphs () {\r\n this.default_quiz = null;\r\n this.attempts_categories = [];\r\n this.attempts_series = [];\r\n this.attempts_questions = [];\r\n this.hardest_categories = [];\r\n this.hardest_series = [];\r\n this.hardest_questions = [];\r\n },\r\n\r\n compare_hardest(a, b) {\r\n if (a.pe > b.pe) {\r\n return -1;\r\n }\r\n if (a.pe < b.pe) {\r\n return 1;\r\n }\r\n return 0;\r\n },\r\n\r\n open_chart_help(chart) {\r\n let contents = [];\r\n if (chart == \"questions_attempts\") {\r\n contents.push({\r\n title: this.strings.questions_attempts_help_title,\r\n description: this.strings.questions_attempts_help_description_p1,\r\n });\r\n contents.push({\r\n description: this.strings.questions_attempts_help_description_p2,\r\n });\r\n contents.push({\r\n description: this.strings.questions_attempts_help_description_p3,\r\n });\r\n } else if (chart == \"hardest_questions\") {\r\n contents.push({\r\n title: this.strings.hardest_questions_help_title,\r\n description: this.strings.hardest_questions_help_description_p1,\r\n });\r\n contents.push({\r\n description: this.strings.hardest_questions_help_description_p2,\r\n });\r\n contents.push({\r\n description: this.strings.hardest_questions_help_description_p3,\r\n });\r\n }\r\n this.help_contents = contents;\r\n if (this.help_contents.length) {\r\n this.help_dialog = true;\r\n }\r\n },\r\n\r\n update_help_dialog (value) {\r\n this.help_dialog = value;\r\n },\r\n\r\n get_timezone(){\r\n let information = `${this.strings.ss_change_timezone} ${this.timezone}`\r\n return information;\r\n },\r\n }\r\n })\r\n }\r\n\r\n return {\r\n init : init\r\n };\r\n });"],"file":"quiz.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/sessions.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/sessions.min.js new file mode 100644 index 0000000000000000000000000000000000000000..aa85dccf0f8d96f7143b6331281471b02d10c154 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/sessions.min.js @@ -0,0 +1,2 @@ +define(["local_fliplearning/vue","local_fliplearning/vuetify","local_fliplearning/axios","local_fliplearning/moment","local_fliplearning/pagination","local_fliplearning/chartstatic","local_fliplearning/pageheader","local_fliplearning/helpdialog"],function(e,t,s,i,o,n,r,a){"use strict";return{init:function(i){e.use(t),e.component("pagination",o),e.component("chart",n),e.component("pageheader",r),e.component("helpdialog",a);let l=new e({delimiters:["[[","]]"],el:"#work_sessions",vuetify:new t,data:()=>({strings:i.strings,groups:i.groups,userid:i.userid,courseid:i.courseid,timezone:i.timezone,render_has:i.profile_render,loading:!1,errors:[],pages:i.pages,hours_sessions:i.indicators.sessions,session_count:i.indicators.count,inverted_time:i.indicators.time,inverted_time_colors:i.inverted_time_colors,sessions_count_colors:i.sessions_count_colors,search:null,help_dialog:!1,help_contents:[]}),mounted(){document.querySelector("#sessions-loader").style.display="none",document.querySelector("#work_sessions").style.display="block",setTimeout(function(){l.setGraphicsEventListeners()},500)},methods:{get_help_content(){let e=[];return e.push({title:this.strings.section_help_title,description:this.strings.section_help_description}),e},update_interactions(e){this.loading=!0,this.errors=[];let t={action:"worksessions",userid:this.userid,courseid:this.courseid,weekcode:e.weekcode,profile:this.render_has};return s({method:"get",url:M.cfg.wwwroot+"/local/fliplearning/ajax.php",params:t}).then(e=>{200==e.status&&e.data.ok?(this.hours_sessions=e.data.data.indicators.sessions,this.session_count=e.data.data.indicators.count,this.inverted_time=e.data.data.indicators.time):this.error_messages.push(this.strings.error_network)}).catch(e=>{this.errors.push(this.strings.api_error_network)}).finally(()=>{this.loading=!1,l.addLogsIntoDB("viewed","week_"+e.weekcode,"week_section","Week section that allows you to obtain information on a specific week"),l.setGraphicsEventListeners()}),this.data},get_point_category_name(e,t){let s="y"===t;return e.series[s?"yAxis":"xAxis"].categories[e[s?"y":"x"]]},build_hours_sessions_chart(){let e=new Object;return e.title={text:null},e.chart={type:"heatmap",backgroundColor:null,style:{fontFamily:"poppins"}},e.xAxis={categories:this.strings.days},e.yAxis={categories:this.strings.hours,title:null,reversed:!0},e.colorAxis={min:0,minColor:"#E0E0E0",maxColor:"#118AB2"},e.legend={layout:"horizontal",verticalAlign:"bottom"},e.tooltip={formatter:function(){let e=l.get_point_category_name(this.point,"x"),t=l.get_point_category_name(this.point,"y"),s=l.strings.sessions_text;return 1==this.point.value&&(s=l.strings.session_text),"<b>"+e+" "+t+"</b>: "+this.point.value+" "+s}},e.series=[{borderWidth:2,borderColor:"#FAFAFA",data:this.hours_sessions}],e},build_inverted_time_chart(){let e=new Object;return e.chart={type:"bar",backgroundColor:null,style:{fontFamily:"poppins"}},e.title={text:null},e.colors=this.inverted_time_colors,e.xAxis={type:"category",crosshair:!0},e.yAxis={title:{text:this.strings.time_inverted_x_axis}},e.tooltip={shared:!0,useHTML:!0,formatter:function(){return`<b>${this.points[0].key}: </b>${l.convert_time(this.y)}`}},e.legend={enabled:!1},e.series=[{colorByPoint:!0,data:this.inverted_time.data}],e},build_sessions_count_chart(){let e=new Object;return e.chart={backgroundColor:null,style:{fontFamily:"poppins"}},e.title={text:null},e.colors=this.sessions_count_colors,e.yAxis={title:{text:this.strings.session_count_yaxis_title},allowDecimals:!1},e.xAxis={categories:this.session_count.categories},e.tooltip={valueSuffix:this.strings.session_count_tooltip_suffix},e.legend={layout:"horizontal",verticalAlign:"bottom"},e.series=this.session_count.data,e},convert_time(e){e*=3600;let t,s=this.strings.hours_short,i=this.strings.minutes_short,o=this.strings.seconds_short,n=Math.floor(e/3600),r=Math.floor(e%3600/60),a=Math.floor(e%60);return t=n>=1?r>=1?`${n}${s} ${r}${i}`:`${n}${s}`:r>=1?a>=1?`${r}${i} ${a}${o}`:`${r}${i}`:`${a}${o}`},open_chart_help(e){let t=[];var s="",i="",o="",n="";"inverted_time"==e?(t.push({title:this.strings.inverted_time_help_title,description:this.strings.inverted_time_help_description_p1}),t.push({description:this.strings.inverted_time_help_description_p2}),s="viewed",o="help",i="invested_time",n="Help section that provides information about the sessions per week chart",l.addLogsIntoDB(s,i,o,n)):"hours_sessions"==e?(t.push({title:this.strings.hours_sessions_help_title,description:this.strings.hours_sessions_help_description_p1}),t.push({description:this.strings.hours_sessions_help_description_p2}),s="viewed",o="help",i="hours_sessions",n="Help section that provides information about the sessions per hour chart",l.addLogsIntoDB(s,i,o,n)):"sessions_count"==e&&(t.push({title:this.strings.sessions_count_help_title,description:this.strings.sessions_count_help_description_p1}),t.push({description:this.strings.sessions_count_help_description_p2}),s="viewed",o="help",i="sessions_count",n="Help section that provides information about the invested time chart",l.addLogsIntoDB(s,i,o,n)),this.help_contents=t,this.help_contents.length&&(this.help_dialog=!0)},update_help_dialog(e){this.help_dialog=e},get_timezone(){return`${this.strings.ss_change_timezone} ${this.timezone}`},setGraphicsEventListeners(){let e=document.querySelectorAll(".highcharts-container");e.length<1?setTimeout(l.setGraphicsEventListeners,500):(e[0].id="investedTime",e[1].id="sessionsPerHour",e[2].id="sessionsPerWeek",e.forEach(e=>{e.addEventListener("mouseenter",l.addLogsViewGraphic)}))},addLogsViewGraphic(e){event.stopPropagation();var t="",s="",i="",o="";switch(e.target.id){case"investedTime":t="viewed",s="invested_time",i="chart",o="Bar chart that shows the average time invested by students as a function of the expected invested time";break;case"sessionsPerHour":t="viewed",s="hours_sessions",i="chart",o="Chart showing the number of sessions performed according to the time of day";break;case"sessionsPerWeek":t="viewed",s="sessions_count",i="chart",o="Chart showing the number of sessions performed per week";break;default:t="viewed",s="",i="chart",o="A chart"}l.addLogsIntoDB(t,s,i,o)},addLogsIntoDB(e,t,o,n){let r={courseid:i.courseid,userid:i.userid,action:"addLogs",sectionname:"TEACHER_STUDY_SESSIONS",actiontype:e,objectType:o,objectName:t,currentUrl:document.location.href,objectDescription:n};s({method:"get",url:M.cfg.wwwroot+"/local/fliplearning/ajax.php",params:r}).then(e=>{200==e.status&&e.data.ok}).catch(e=>{})}}})}}}); +//# sourceMappingURL=sessions.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/sessions.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/sessions.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..b0910156efddc022400843378a84968fe91fe6ec --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/sessions.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/sessions.js"],"names":["define","Vue","Vuetify","Axios","Moment","Pagination","ChartStatic","PageHeader","HelpDialog","init","content","use","component","vue","delimiters","el","vuetify","data","strings","groups","userid","courseid","timezone","render_has","profile_render","loading","errors","pages","hours_sessions","indicators","sessions","session_count","count","inverted_time","time","inverted_time_colors","sessions_count_colors","search","help_dialog","help_contents","mounted","document","querySelector","style","display","methods","get_help_content","contents","title","section_help_title","description","section_help_description","update_interactions","week","action","weekcode","profile","method","url","M","cfg","wwwroot","params","then","response","status","ok","error_messages","push","error_network","catch","api_error_network","finally","get_point_category_name","point","dimension","series","isY","axis","categories","build_hours_sessions_chart","chart","text","type","backgroundColor","fontFamily","xAxis","days","yAxis","hours","reversed","colorAxis","min","minColor","maxColor","legend","layout","verticalAlign","tooltip","formatter","xCategoryName","yCategoryName","label","sessions_text","value","session_text","borderWidth","borderColor","build_inverted_time_chart","colors","crosshair","time_inverted_x_axis","shared","useHTML","category_name","points","key","convert_time","y","enabled","colorByPoint","build_sessions_count_chart","session_count_yaxis_title","allowDecimals","valueSuffix","session_count_tooltip_suffix","h","hours_short","m","minutes_short","s","seconds_short","Math","floor","minutes","seconds","open_chart_help","inverted_time_help_title","inverted_time_help_description_p1","inverted_time_help_description_p2","hours_sessions_help_title","hours_sessions_help_description_p1","hours_sessions_help_description_p2","sessions_count_help_title","sessions_count_help_description_p1","sessions_count_help_description_p2","length","update_help_dialog","get_timezone","information","ss_change_timezone"],"mappings":"AAAAA,OAAM,+BAAC,CAAC,wBAAD,CACC,4BADD,CAEC,0BAFD,CAGC,2BAHD,CAIC,+BAJD,CAKC,gCALD,CAMC,+BAND,CAOC,+BAPD,CAAD,CASF,SAASC,CAAT,CAAcC,CAAd,CAAuBC,CAAvB,CAA8BC,CAA9B,CAAsCC,CAAtC,CAAkDC,CAAlD,CAA+DC,CAA/D,CAA2EC,CAA3E,CAAuF,CACnF,aAmRA,MAAO,CACHC,IAAI,CAlRR,SAAcC,CAAd,CAAuB,CAEnBT,CAAG,CAACU,GAAJ,CAAQT,CAAR,EACAD,CAAG,CAACW,SAAJ,CAAc,YAAd,CAA4BP,CAA5B,EACAJ,CAAG,CAACW,SAAJ,CAAc,OAAd,CAAuBN,CAAvB,EACAL,CAAG,CAACW,SAAJ,CAAc,YAAd,CAA4BL,CAA5B,EACAN,CAAG,CAACW,SAAJ,CAAc,YAAd,CAA4BJ,CAA5B,EACA,GAAIK,CAAAA,CAAG,CAAG,GAAIZ,CAAAA,CAAJ,CAAQ,CACda,UAAU,CAAE,CAAC,IAAD,CAAO,IAAP,CADE,CAEdC,EAAE,CAAE,gBAFU,CAGdC,OAAO,CAAE,GAAId,CAAAA,CAHC,CAIde,IAJc,gBAIP,CACH,MAAO,CACHC,OAAO,CAAGR,CAAO,CAACQ,OADf,CAEHC,MAAM,CAAGT,CAAO,CAACS,MAFd,CAGHC,MAAM,CAAGV,CAAO,CAACU,MAHd,CAIHC,QAAQ,CAAGX,CAAO,CAACW,QAJhB,CAKHC,QAAQ,CAAGZ,CAAO,CAACY,QALhB,CAMHC,UAAU,CAAGb,CAAO,CAACc,cANlB,CAOHC,OAAO,GAPJ,CAQHC,MAAM,CAAG,EARN,CAUHC,KAAK,CAAGjB,CAAO,CAACiB,KAVb,CAWHC,cAAc,CAAElB,CAAO,CAACmB,UAAR,CAAmBC,QAXhC,CAYHC,aAAa,CAAErB,CAAO,CAACmB,UAAR,CAAmBG,KAZ/B,CAaHC,aAAa,CAAEvB,CAAO,CAACmB,UAAR,CAAmBK,IAb/B,CAcHC,oBAAoB,CAAEzB,CAAO,CAACyB,oBAd3B,CAeHC,qBAAqB,CAAE1B,CAAO,CAAC0B,qBAf5B,CAgBHC,MAAM,CAAE,IAhBL,CAkBHC,WAAW,GAlBR,CAmBHC,aAAa,CAAE,EAnBZ,CAqBV,CA1Ba,CA2BdC,OA3Bc,mBA2BL,CACLC,QAAQ,CAACC,aAAT,CAAuB,kBAAvB,EAA2CC,KAA3C,CAAiDC,OAAjD,CAA2D,MAA3D,CACAH,QAAQ,CAACC,aAAT,CAAuB,gBAAvB,EAAyCC,KAAzC,CAA+CC,OAA/C,CAAyD,OAC5D,CA9Ba,CA+BdC,OAAO,CAAG,CACNC,gBADM,4BACY,CACd,GAAIC,CAAAA,CAAQ,CAAG,CACD,CACVC,KAAK,CAAE,KAAK9B,OAAL,CAAa+B,kBADV,CAEVC,WAAW,CAAE,KAAKhC,OAAL,CAAaiC,wBAFhB,CADC,CAAf,CAKA,MAAOJ,CAAAA,CACV,CARK,CAUNK,mBAVM,8BAUcC,CAVd,CAUmB,YACrB,KAAK5B,OAAL,IACA,KAAKC,MAAL,CAAc,EAAd,CACA,GAAIT,CAAAA,CAAI,CAAG,CACPqC,MAAM,CAAG,cADF,CAEPlC,MAAM,CAAG,KAAKA,MAFP,CAGPC,QAAQ,CAAG,KAAKA,QAHT,CAIPkC,QAAQ,CAAGF,CAAI,CAACE,QAJT,CAKPC,OAAO,CAAG,KAAKjC,UALR,CAAX,CAOApB,CAAK,CAAC,CACFsD,MAAM,CAAC,KADL,CAEFC,GAAG,CAAEC,CAAC,CAACC,GAAF,CAAMC,OAAN,CAAgB,8BAFnB,CAGFC,MAAM,CAAG7C,CAHP,CAAD,CAAL,CAIG8C,IAJH,CAIQ,SAACC,CAAD,CAAc,CAClB,GAAuB,GAAnB,EAAAA,CAAQ,CAACC,MAAT,EAA0BD,CAAQ,CAAC/C,IAAT,CAAciD,EAA5C,CAAgD,CAC5C,CAAI,CAACtC,cAAL,CAAsBoC,CAAQ,CAAC/C,IAAT,CAAcA,IAAd,CAAmBY,UAAnB,CAA8BC,QAApD,CACA,CAAI,CAACC,aAAL,CAAqBiC,CAAQ,CAAC/C,IAAT,CAAcA,IAAd,CAAmBY,UAAnB,CAA8BG,KAAnD,CACA,CAAI,CAACC,aAAL,CAAqB+B,CAAQ,CAAC/C,IAAT,CAAcA,IAAd,CAAmBY,UAAnB,CAA8BK,IACtD,CAJD,IAIO,CACH,CAAI,CAACiC,cAAL,CAAoBC,IAApB,CAAyB,CAAI,CAAClD,OAAL,CAAamD,aAAtC,CACH,CACJ,CAZD,EAYGC,KAZH,CAYS,UAAO,CACZ,CAAI,CAAC5C,MAAL,CAAY0C,IAAZ,CAAiB,CAAI,CAAClD,OAAL,CAAaqD,iBAA9B,CACH,CAdD,EAcGC,OAdH,CAcW,UAAM,CACb,CAAI,CAAC/C,OAAL,GACH,CAhBD,EAiBA,MAAO,MAAKR,IACf,CAtCK,CAwCNwD,uBAxCM,kCAwCkBC,CAxClB,CAwCyBC,CAxCzB,CAwCoC,CACtC,GAAIC,CAAAA,CAAM,CAAGF,CAAK,CAACE,MAAnB,CACIC,CAAG,CAAiB,GAAd,GAAAF,CADV,CAEIG,CAAI,CAAGF,CAAM,CAACC,CAAG,CAAG,OAAH,CAAa,OAAjB,CAFjB,CAGA,MAAOC,CAAAA,CAAI,CAACC,UAAL,CAAgBL,CAAK,CAACG,CAAG,CAAG,GAAH,CAAS,GAAb,CAArB,CACV,CA7CK,CA+CNG,0BA/CM,sCA+CuB,CACzB,GAAIC,CAAAA,CAAK,GAAT,CACAA,CAAK,CAACjC,KAAN,CAAc,CACVkC,IAAI,CAAE,IADI,CAAd,CAGAD,CAAK,CAACA,KAAN,CAAc,CACVE,IAAI,CAAE,SADI,CAEVC,eAAe,CAAE,IAFP,CAGVzC,KAAK,CAAE,CAAC0C,UAAU,CAAE,SAAb,CAHG,CAAd,CAKAJ,CAAK,CAACK,KAAN,CAAc,CACVP,UAAU,CAAE,KAAK7D,OAAL,CAAaqE,IADf,CAAd,CAGAN,CAAK,CAACO,KAAN,CAAc,CACVT,UAAU,CAAE,KAAK7D,OAAL,CAAauE,KADf,CAEVzC,KAAK,CAAE,IAFG,CAGV0C,QAAQ,GAHE,CAAd,CAKAT,CAAK,CAACU,SAAN,CAAkB,CACdC,GAAG,CAAE,CADS,CAEdC,QAAQ,CAAE,SAFI,CAGdC,QAAQ,CAAE,SAHI,CAAlB,CAKAb,CAAK,CAACc,MAAN,CAAe,CACXC,MAAM,CAAE,YADG,CAEXC,aAAa,CAAE,QAFJ,CAAf,CAIAhB,CAAK,CAACiB,OAAN,CAAgB,CACZC,SAAS,CAAE,oBAAY,IACfC,CAAAA,CAAa,CAAGvF,CAAG,CAAC4D,uBAAJ,CAA4B,KAAKC,KAAjC,CAAwC,GAAxC,CADD,CAEf2B,CAAa,CAAGxF,CAAG,CAAC4D,uBAAJ,CAA4B,KAAKC,KAAjC,CAAwC,GAAxC,CAFD,CAGf4B,CAAK,CAAGzF,CAAG,CAACK,OAAJ,CAAYqF,aAHL,CAInB,GAAwB,CAApB,OAAK7B,KAAL,CAAW8B,KAAf,CAA2B,CACvBF,CAAK,CAAGzF,CAAG,CAACK,OAAJ,CAAYuF,YACvB,CACD,MAAO,MAAQL,CAAR,CAAwB,GAAxB,CAA8BC,CAA9B,CAA8C,QAA9C,CACD,KAAK3B,KAAL,CAAW8B,KADV,CACiB,GADjB,CACuBF,CACjC,CAVW,CAAhB,CAYArB,CAAK,CAACL,MAAN,CAAe,CAAC,CACZ8B,WAAW,CAAE,CADD,CAEZC,WAAW,CAAE,SAFD,CAGZ1F,IAAI,CAAE,KAAKW,cAHC,CAAD,CAAf,CAKA,MAAOqD,CAAAA,CACV,CA5FK,CA8FN2B,yBA9FM,qCA8FsB,CACxB,GAAI3B,CAAAA,CAAK,GAAT,CACAA,CAAK,CAACA,KAAN,CAAc,CACVE,IAAI,CAAE,KADI,CAEVC,eAAe,CAAE,IAFP,CAGVzC,KAAK,CAAE,CAAC0C,UAAU,CAAE,SAAb,CAHG,CAAd,CAKAJ,CAAK,CAACjC,KAAN,CAAc,CACVkC,IAAI,CAAE,IADI,CAAd,CAGAD,CAAK,CAAC4B,MAAN,CAAe,KAAK1E,oBAApB,CACA8C,CAAK,CAACK,KAAN,CAAc,CACVH,IAAI,CAAE,UADI,CAEV2B,SAAS,GAFC,CAAd,CAIA7B,CAAK,CAACO,KAAN,CAAc,CACVxC,KAAK,CAAE,CACHkC,IAAI,CAAE,KAAKhE,OAAL,CAAa6F,oBADhB,CADG,CAAd,CAKA9B,CAAK,CAACiB,OAAN,CAAgB,CACZc,MAAM,GADM,CAEZC,OAAO,GAFK,CAGZd,SAAS,CAAE,oBAAY,IACfe,CAAAA,CAAa,CAAG,KAAKC,MAAL,CAAY,CAAZ,EAAeC,GADhB,CAEflF,CAAI,CAAGrB,CAAG,CAACwG,YAAJ,CAAiB,KAAKC,CAAtB,CAFQ,CAGnB,mBAAaJ,CAAb,kBAAmChF,CAAnC,CACH,CAPW,CAAhB,CASA+C,CAAK,CAACc,MAAN,CAAe,CACXwB,OAAO,GADI,CAAf,CAGAtC,CAAK,CAACL,MAAN,CAAe,CAAC,CACZ4C,YAAY,GADA,CAEZvG,IAAI,CAAE,KAAKgB,aAAL,CAAmBhB,IAFb,CAAD,CAAf,CAIA,MAAOgE,CAAAA,CACV,CAnIK,CAqINwC,0BArIM,sCAqIuB,CACzB,GAAIxC,CAAAA,CAAK,GAAT,CACAA,CAAK,CAACA,KAAN,CAAc,CACVG,eAAe,CAAE,IADP,CAEVzC,KAAK,CAAE,CAAC0C,UAAU,CAAE,SAAb,CAFG,CAAd,CAIAJ,CAAK,CAACjC,KAAN,CAAc,CACVkC,IAAI,CAAE,IADI,CAAd,CAGAD,CAAK,CAAC4B,MAAN,CAAe,KAAKzE,qBAApB,CACA6C,CAAK,CAACO,KAAN,CAAc,CACVxC,KAAK,CAAE,CACHkC,IAAI,CAAE,KAAKhE,OAAL,CAAawG,yBADhB,CADG,CAIVC,aAAa,GAJH,CAAd,CAMA1C,CAAK,CAACK,KAAN,CAAc,CACVP,UAAU,CAAE,KAAKhD,aAAL,CAAmBgD,UADrB,CAAd,CAGAE,CAAK,CAACiB,OAAN,CAAgB,CACZ0B,WAAW,CAAE,KAAK1G,OAAL,CAAa2G,4BADd,CAAhB,CAGA5C,CAAK,CAACc,MAAN,CAAe,CACXC,MAAM,CAAE,YADG,CAEXC,aAAa,CAAE,QAFJ,CAAf,CAIAhB,CAAK,CAACL,MAAN,CAAe,KAAK7C,aAAL,CAAmBd,IAAlC,CACA,MAAOgE,CAAAA,CACV,CAjKK,CAmKNoC,YAnKM,uBAmKOnF,CAnKP,CAmKa,CACfA,CAAI,EAAI,IAAR,CADe,GAEX4F,CAAAA,CAAC,CAAG,KAAK5G,OAAL,CAAa6G,WAFN,CAGXC,CAAC,CAAG,KAAK9G,OAAL,CAAa+G,aAHN,CAIXC,CAAC,CAAG,KAAKhH,OAAL,CAAaiH,aAJN,CAKX1C,CAAK,CAAG2C,IAAI,CAACC,KAAL,CAAWnG,CAAI,CAAG,IAAlB,CALG,CAMXoG,CAAO,CAAGF,IAAI,CAACC,KAAL,CAAYnG,CAAI,CAAG,IAAR,CAAgB,EAA3B,CANC,CAOXqG,CAAO,CAAGH,IAAI,CAACC,KAAL,CAAWnG,CAAI,CAAG,EAAlB,CAPC,CAQXgD,CARW,CASf,GAAa,CAAT,EAAAO,CAAJ,CAAgB,CACZ,GAAe,CAAX,EAAA6C,CAAJ,CAAkB,CACdpD,CAAI,WAAMO,CAAN,SAAcqC,CAAd,aAAmBQ,CAAnB,SAA6BN,CAA7B,CACP,CAFD,IAEO,CACH9C,CAAI,WAAMO,CAAN,SAAcqC,CAAd,CACP,CACJ,CAND,IAMO,IAAgB,CAAX,EAAAQ,CAAL,CAAoB,CACvB,GAAe,CAAX,EAAAC,CAAJ,CAAkB,CACdrD,CAAI,WAAMoD,CAAN,SAAgBN,CAAhB,aAAqBO,CAArB,SAA+BL,CAA/B,CACP,CAFD,IAEO,CACHhD,CAAI,WAAMoD,CAAN,SAAgBN,CAAhB,CACP,CACJ,CANM,IAMA,CACH9C,CAAI,WAAMqD,CAAN,SAAgBL,CAAhB,CACP,CACD,MAAOhD,CAAAA,CACV,CA5LK,CA8LNsD,eA9LM,0BA8LUvD,CA9LV,CA8LiB,CACnB,GAAIlC,CAAAA,CAAQ,CAAG,EAAf,CACA,GAAa,eAAT,EAAAkC,CAAJ,CAA8B,CAC1BlC,CAAQ,CAACqB,IAAT,CAAc,CACVpB,KAAK,CAAE,KAAK9B,OAAL,CAAauH,wBADV,CAEVvF,WAAW,CAAE,KAAKhC,OAAL,CAAawH,iCAFhB,CAAd,EAIA3F,CAAQ,CAACqB,IAAT,CAAc,CACVlB,WAAW,CAAE,KAAKhC,OAAL,CAAayH,iCADhB,CAAd,CAGH,CARD,IAQO,IAAa,gBAAT,EAAA1D,CAAJ,CAA+B,CAClClC,CAAQ,CAACqB,IAAT,CAAc,CACVpB,KAAK,CAAE,KAAK9B,OAAL,CAAa0H,yBADV,CAEV1F,WAAW,CAAE,KAAKhC,OAAL,CAAa2H,kCAFhB,CAAd,EAIA9F,CAAQ,CAACqB,IAAT,CAAc,CACVlB,WAAW,CAAE,KAAKhC,OAAL,CAAa4H,kCADhB,CAAd,CAGH,CARM,IAQA,IAAa,gBAAT,EAAA7D,CAAJ,CAA+B,CAClClC,CAAQ,CAACqB,IAAT,CAAc,CACVpB,KAAK,CAAE,KAAK9B,OAAL,CAAa6H,yBADV,CAEV7F,WAAW,CAAE,KAAKhC,OAAL,CAAa8H,kCAFhB,CAAd,EAIAjG,CAAQ,CAACqB,IAAT,CAAc,CACVlB,WAAW,CAAE,KAAKhC,OAAL,CAAa+H,kCADhB,CAAd,CAGH,CACD,KAAK1G,aAAL,CAAqBQ,CAArB,CACA,GAAI,KAAKR,aAAL,CAAmB2G,MAAvB,CAA+B,CAC3B,KAAK5G,WAAL,GACH,CACJ,CA7NK,CA+NN6G,kBA/NM,6BA+Nc3C,CA/Nd,CA+NqB,CACvB,KAAKlE,WAAL,CAAmBkE,CACtB,CAjOK,CAmON4C,YAnOM,wBAmOQ,CACV,GAAIC,CAAAA,CAAW,WAAM,KAAKnI,OAAL,CAAaoI,kBAAnB,aAAyC,KAAKhI,QAA9C,CAAf,CACA,MAAO+H,CAAAA,CACV,CAtOK,CA/BI,CAAR,CAwQb,CAEM,CAGV,CAhSC,CAAN","sourcesContent":["define([\"local_fliplearning/vue\",\r\n \"local_fliplearning/vuetify\",\r\n \"local_fliplearning/axios\",\r\n \"local_fliplearning/moment\",\r\n \"local_fliplearning/pagination\",\r\n \"local_fliplearning/chartstatic\",\r\n \"local_fliplearning/pageheader\",\r\n \"local_fliplearning/helpdialog\",\r\n ],\r\n function(Vue, Vuetify, Axios, Moment, Pagination, ChartStatic, PageHeader, HelpDialog) {\r\n \"use strict\";\r\n\r\n function init(content) {\r\n // console.log(content);\r\n Vue.use(Vuetify);\r\n Vue.component('pagination', Pagination);\r\n Vue.component('chart', ChartStatic);\r\n Vue.component('pageheader', PageHeader);\r\n Vue.component('helpdialog', HelpDialog);\r\n let vue = new Vue({\r\n delimiters: [\"[[\", \"]]\"],\r\n el: \"#work_sessions\",\r\n vuetify: new Vuetify(),\r\n data() {\r\n return {\r\n strings : content.strings,\r\n groups : content.groups,\r\n userid : content.userid,\r\n courseid : content.courseid,\r\n timezone : content.timezone,\r\n render_has : content.profile_render,\r\n loading : false,\r\n errors : [],\r\n\r\n pages : content.pages,\r\n hours_sessions: content.indicators.sessions,\r\n session_count: content.indicators.count,\r\n inverted_time: content.indicators.time,\r\n inverted_time_colors: content.inverted_time_colors,\r\n sessions_count_colors: content.sessions_count_colors,\r\n search: null,\r\n\r\n help_dialog: false,\r\n help_contents: [],\r\n }\r\n },\r\n mounted(){\r\n document.querySelector(\"#sessions-loader\").style.display = \"none\";\r\n document.querySelector(\"#work_sessions\").style.display = \"block\";\r\n },\r\n methods : {\r\n get_help_content(){\r\n let contents = [];\r\n contents.push({\r\n title: this.strings.section_help_title,\r\n description: this.strings.section_help_description,\r\n });\r\n return contents;\r\n },\r\n\r\n update_interactions(week){\r\n this.loading = true;\r\n this.errors = [];\r\n let data = {\r\n action : \"worksessions\",\r\n userid : this.userid,\r\n courseid : this.courseid,\r\n weekcode : week.weekcode,\r\n profile : this.render_has,\r\n }\r\n Axios({\r\n method:'get',\r\n url: M.cfg.wwwroot + \"/local/fliplearning/ajax.php\",\r\n params : data,\r\n }).then((response) => {\r\n if (response.status == 200 && response.data.ok) {\r\n this.hours_sessions = response.data.data.indicators.sessions;\r\n this.session_count = response.data.data.indicators.count;\r\n this.inverted_time = response.data.data.indicators.time;\r\n } else {\r\n this.error_messages.push(this.strings.error_network);\r\n }\r\n }).catch((e) => {\r\n this.errors.push(this.strings.api_error_network);\r\n }).finally(() => {\r\n this.loading = false;\r\n });\r\n return this.data;\r\n },\r\n\r\n get_point_category_name(point, dimension) {\r\n let series = point.series,\r\n isY = dimension === 'y',\r\n axis = series[isY ? 'yAxis' : 'xAxis'];\r\n return axis.categories[point[isY ? 'y' : 'x']];\r\n },\r\n\r\n build_hours_sessions_chart() {\r\n let chart = new Object();\r\n chart.title = {\r\n text: null,\r\n };\r\n chart.chart = {\r\n type: 'heatmap',\r\n backgroundColor: null,\r\n style: {fontFamily: 'poppins'},\r\n };\r\n chart.xAxis = {\r\n categories: this.strings.days,\r\n };\r\n chart.yAxis = {\r\n categories: this.strings.hours,\r\n title: null,\r\n reversed: true,\r\n };\r\n chart.colorAxis = {\r\n min: 0,\r\n minColor: '#E0E0E0',\r\n maxColor: '#118AB2'\r\n };\r\n chart.legend = {\r\n layout: 'horizontal',\r\n verticalAlign: 'bottom',\r\n };\r\n chart.tooltip = {\r\n formatter: function () {\r\n let xCategoryName = vue.get_point_category_name(this.point, 'x');\r\n let yCategoryName = vue.get_point_category_name(this.point, 'y');\r\n let label = vue.strings.sessions_text;\r\n if (this.point.value == 1) {\r\n label = vue.strings.session_text;\r\n }\r\n return '<b>' + xCategoryName + ' ' + yCategoryName + '</b>: '\r\n + this.point.value +' ' + label;\r\n }\r\n };\r\n chart.series = [{\r\n borderWidth: 2,\r\n borderColor: '#FAFAFA',\r\n data: this.hours_sessions,\r\n }];\r\n return chart;\r\n },\r\n\r\n build_inverted_time_chart() {\r\n let chart = new Object();\r\n chart.chart = {\r\n type: 'bar',\r\n backgroundColor: null,\r\n style: {fontFamily: 'poppins'},\r\n };\r\n chart.title = {\r\n text: null,\r\n };\r\n chart.colors = this.inverted_time_colors;\r\n chart.xAxis = {\r\n type: 'category',\r\n crosshair: true,\r\n };\r\n chart.yAxis = {\r\n title: {\r\n text: this.strings.time_inverted_x_axis,\r\n }\r\n };\r\n chart.tooltip = {\r\n shared:true,\r\n useHTML:true,\r\n formatter: function () {\r\n let category_name = this.points[0].key;\r\n let time = vue.convert_time(this.y);\r\n return `<b>${category_name}: </b>${time}`;\r\n }\r\n };\r\n chart.legend = {\r\n enabled: false\r\n };\r\n chart.series = [{\r\n colorByPoint: true,\r\n data: this.inverted_time.data\r\n }];\r\n return chart;\r\n },\r\n\r\n build_sessions_count_chart() {\r\n let chart = new Object();\r\n chart.chart = {\r\n backgroundColor: null,\r\n style: {fontFamily: 'poppins'},\r\n };\r\n chart.title = {\r\n text: null,\r\n };\r\n chart.colors = this.sessions_count_colors;\r\n chart.yAxis = {\r\n title: {\r\n text: this.strings.session_count_yaxis_title,\r\n },\r\n allowDecimals: false\r\n };\r\n chart.xAxis = {\r\n categories: this.session_count.categories,\r\n };\r\n chart.tooltip = {\r\n valueSuffix: this.strings.session_count_tooltip_suffix,\r\n };\r\n chart.legend = {\r\n layout: 'horizontal',\r\n verticalAlign: 'bottom',\r\n };\r\n chart.series = this.session_count.data\r\n return chart;\r\n },\r\n\r\n convert_time(time) {\r\n time *= 3600; // pasar las horas a segundos\r\n let h = this.strings.hours_short;\r\n let m = this.strings.minutes_short;\r\n let s = this.strings.seconds_short;\r\n let hours = Math.floor(time / 3600);\r\n let minutes = Math.floor((time % 3600) / 60);\r\n let seconds = Math.floor(time % 60);\r\n let text;\r\n if (hours >= 1) {\r\n if (minutes >= 1) {\r\n text = `${hours}${h} ${minutes}${m}`;\r\n } else {\r\n text = `${hours}${h}`;\r\n }\r\n } else if ((minutes >= 1)) {\r\n if (seconds >= 1) {\r\n text = `${minutes}${m} ${seconds}${s}`;\r\n } else {\r\n text = `${minutes}${m}`;\r\n }\r\n } else {\r\n text = `${seconds}${s}`;\r\n }\r\n return text;\r\n },\r\n\r\n open_chart_help(chart) {\r\n let contents = [];\r\n if (chart == \"inverted_time\") {\r\n contents.push({\r\n title: this.strings.inverted_time_help_title,\r\n description: this.strings.inverted_time_help_description_p1,\r\n });\r\n contents.push({\r\n description: this.strings.inverted_time_help_description_p2,\r\n });\r\n } else if (chart == \"hours_sessions\") {\r\n contents.push({\r\n title: this.strings.hours_sessions_help_title,\r\n description: this.strings.hours_sessions_help_description_p1,\r\n });\r\n contents.push({\r\n description: this.strings.hours_sessions_help_description_p2,\r\n });\r\n } else if (chart == \"sessions_count\") {\r\n contents.push({\r\n title: this.strings.sessions_count_help_title,\r\n description: this.strings.sessions_count_help_description_p1,\r\n });\r\n contents.push({\r\n description: this.strings.sessions_count_help_description_p2,\r\n });\r\n }\r\n this.help_contents = contents;\r\n if (this.help_contents.length) {\r\n this.help_dialog = true;\r\n }\r\n },\r\n\r\n update_help_dialog (value) {\r\n this.help_dialog = value;\r\n },\r\n\r\n get_timezone(){\r\n let information = `${this.strings.ss_change_timezone} ${this.timezone}`\r\n return information;\r\n },\r\n }\r\n })\r\n }\r\n\r\n return {\r\n init : init\r\n };\r\n });"],"file":"sessions.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/setweeks.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/setweeks.min.js new file mode 100644 index 0000000000000000000000000000000000000000..4df71cd85efe0a4b6962b419427505cf4d97c616 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/setweeks.min.js @@ -0,0 +1,2 @@ +define(["local_fliplearning/vue","local_fliplearning/vuetify","local_fliplearning/axios","local_fliplearning/sortablejs","local_fliplearning/draggable","local_fliplearning/datepicker","local_fliplearning/moment","local_fliplearning/alertify","local_fliplearning/pageheader"],function(e,s,t,r,i,n,o,a,l){"use strict";return{init:function(r){r=function(e){for(let s=0;s<e.weeks.length;s++){let t=e.weeks[s];void 0===t.collapsabled&&(t.collapsabled=!1)}return e}(r),e.use(s),e.component("draggable",i),e.component("datepicker",n),e.component("pageheader",l),new e({delimiters:["[[","]]"],el:"#setweeks",vuetify:new s,data:{display_settings:!1,settings:r.settings,new_group:!1,scroll_mode:!1,weeks_started_at:new Date(o(1e3*Number(r.weeks[0].weekstart))),strings:r.strings,sections:r.sections,courseid:r.courseid,userid:r.userid,raw_weeks:r.weeks,disabled_dates:{days:[0,2,3,4,5,6]},saving_loader:!1,error_messages:[],save_successful:!1},mounted(){document.querySelector("#setweeks-loader").style.display="none",document.querySelector("#setweeks").style.display="block"},computed:{weeks(){for(let e=0;e<this.raw_weeks.length;e++){let s=this.raw_weeks[e];if(0==e){let e=this.weeks_started_at;s.weekstart=e,s.weekend=this.get_end_week(this.weeks_started_at)}else s.weekstart=this.get_start_week(this.raw_weeks[e-1].weekend),s.weekend=this.get_end_week(s.weekstart)}return this.raw_weeks}},methods:{section_name(e){let s=null;return s=void 0!==e.section_name&&e.section_name.length>0?e.section_name:e.name},section_exist(e){let s=!0;return void 0!==e&&void 0!==e.exists&&0==e.exists&&(s=!1),s},format_name:(e,s)=>e+" "+(s+1),customFormatter:e=>o(e).format("YYYY-MM-DD"),add_week(){this.raw_weeks.push({name:this.strings.week,position:this.weeks.length+1,weekstart:null,weekend:null,collapsabled:!1,hours_dedications:0,removable:!0,sections:[]})},has_items:e=>e.length>0,remove_week(e,s){if(0==s)return null;this.close_delete_confirm();for(let s=0;s<e.sections.length;s++)this.sections.push(e.sections[s]);let t=this.raw_weeks.indexOf(e);this.raw_weeks.splice(t,1)},ask_delete_confirm(){this.delete_confirm=!0},close_delete_confirm(){this.delete_confirm=!1},get_start_week:e=>o(o(e).add(1,"days")).format("YYYY-MM-DD"),get_end_week:e=>o(o(e).add(6,"days")).format("YYYY-MM-DD"),get_date_next_day(e,s,t=null){e=e.toLowerCase();let r=o(s).format("dddd").toLowerCase();for(;r!=e;)s=o(s).add(1,"days"),r=o(s).format("dddd").toLowerCase();return t?s=s.format(t):"number"!=typeof s&&(s=parseInt(s.format("x"))),s},position:e=>`${++e} - `,save_changes(){return this.save_successful=!1,this.error_messages=[],this.empty_weeks()?(this.saving_loader=!1,a.error(this.strings.error_empty_week),this.error_messages.push(this.strings.error_empty_week),!1):this.weeks_deleted_from_course()?(this.saving_loader=!1,this.error_messages.push(this.strings.error_section_removed),!1):void a.confirm(this.strings.save_warning_content,()=>{this.saving_loader=!0;var e=this.weeks;e[0].weekstart=o(e[0].weekstart).format("YYYY-MM-DD");var s={action:"saveconfigweek",userid:this.userid,courseid:this.courseid,newinstance:this.new_group,weeks:this.minify_query(e)};t({method:"get",url:M.cfg.wwwroot+"/local/fliplearning/ajax.php",params:s}).then(e=>{console.log("then1"),200==e.status&&e.data.ok?(console.log("then1.2"),this.settings=e.data.data.settings,console.log("then1.3"),a.success(this.strings.save_successful),console.log("then1.4"),this.save_successful=!0,console.log("then1.5")):(console.log("then1.6"),a.error(this.strings.error_network),console.log("then1.7"),this.error_messages.push(this.strings.error_network),console.log("then1.8"))}).catch(e=>{console.log("catch1"),a.error(this.strings.error_network),console.log("catch2"),this.error_messages.push(this.strings.error_network),console.log("catch3")}).finally(()=>{console.log("finally1"),this.saving_loader=!1,console.log("finally2")})},()=>{this.saving_loader=!1,a.warning(this.strings.cancel_action)}).set({title:this.strings.save_warning_title}).set({labels:{cancel:this.strings.confirm_cancel,ok:this.strings.confirm_ok}})},minify_query(e){var s=[];return e.forEach(e=>{var t=new Object;t.h=e.hours_dedications,t.s=e.weekstart,t.e=e.weekend,t.sections=[],e.sections.forEach(e=>{var s=new Object;s.sid=e.sectionid,t.sections.push(s)}),s.push(t)}),JSON.stringify(s)},empty_weeks(){if(this.weeks.length>=2&&this.weeks[0].sections.length<1)return!0;for(let e=0;e<this.weeks.length;e++)if(e>0&&this.weeks[e].sections.length<=0)return!0;return!1},weeks_deleted_from_course(){for(var e=0;e<this.weeks.length;e++)for(var s=0;s<this.weeks[e].sections.length;s++)if(!this.section_exist(this.weeks[e].sections[s]))return!0;return!1},exists_mistakes(){return this.error_messages.length>0},change_collapsabled(e){this.raw_weeks[e].collapsabled=!this.raw_weeks[e].collapsabled},course_finished(){let e=!1,s=this.weeks.length-1,t=o(this.weeks[s].weekend).format("X");return e=o().format("X")>t},get_settings_status(){let e=!0;return Object.keys(this.settings).map(s=>{this.settings[s]||(e=!1)}),e?this.strings.plugin_visible:this.strings.plugin_hidden},get_help_content(){var e=[],s=new Object;return s.title=this.strings.title,s.description=this.strings.description,e.push(s),e},addLogsIntoDB(e,s,i,n){let o={courseid:r.courseid,userid:r.userid,action:"addLogs",sectionname:"CONFIGURATION_COURSE_WEEK",actiontype:e,objectType:i,objectName:s,currentUrl:document.location.href,objectDescription:n};t({method:"get",url:M.cfg.wwwroot+"/local/fliplearning/ajax.php",params:o}).then(e=>{200==e.status&&e.data.ok}).catch(e=>{})}}})}}}); +//# sourceMappingURL=setweeks.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/setweeks.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/setweeks.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..48dcb8c2e8db88443b203d292f34ce1f21708bcd --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/setweeks.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/setweeks.js"],"names":["define","Vue","Vuetify","Axios","Sortable","Draggable","Datepicker","Moment","Alertify","Pageheader","add_collapsabled_property_to_weeks","content","i","week","weeks","length","collapsabled","init","use","component","delimiters","el","vuetify","data","display_settings","settings","new_group","scroll_mode","weeks_started_at","Date","weekstart","strings","sections","courseid","userid","raw_weeks","disabled_dates","days","saving_loader","error_messages","save_successful","mounted","document","querySelector","style","display","computed","start_weeks","weekend","get_end_week","get_start_week","methods","section_name","section","name","section_exist","exist","exists","format_name","position","customFormatter","date","weeks_start_at","format","add_week","push","hours_dedications","removable","has_items","array","remove_week","index","close_delete_confirm","element_index","indexOf","splice","ask_delete_confirm","delete_confirm","pass_week","start_date","add","start_week","end_date","get_date_next_day","requested_day","output_format","toLowerCase","current_day","parseInt","save_changes","empty_weeks","error","error_empty_week","weeks_deleted_from_course","error_section_removed","confirm","save_warning_content","action","newinstance","minify_query","method","url","M","cfg","wwwroot","params","then","response","status","ok","success","error_network","catch","finally","warning","cancel_action","set","title","save_warning_title","labels","cancel","confirm_cancel","confirm_ok","minify","forEach","wk","h","s","e","sid","sectionid","JSON","stringify","week_position","section_position","exists_mistakes","change_collapsabled","course_finished","finished","last","end","now","get_settings_status","visible","Object","keys","map","key","plugin_visible","plugin_hidden","get_help_content","help_contents","help","description"],"mappings":"AAAAA,OAAM,+BAAC,CAAC,wBAAD,CACC,4BADD,CAEC,0BAFD,CAGC,+BAHD,CAIC,8BAJD,CAKC,+BALD,CAMC,2BAND,CAOC,6BAPD,CAQC,+BARD,CAAD,CAUF,SAASC,CAAT,CAAcC,CAAd,CAAuBC,CAAvB,CAA8BC,CAA9B,CAAwCC,CAAxC,CAAmDC,CAAnD,CAA+DC,CAA/D,CAAuEC,CAAvE,CAAiFC,CAAjF,CAA6F,CACzF,aAgSA,QAASC,CAAAA,CAAT,CAA4CC,CAA5C,CAAqD,CACjD,IAAK,GAAIC,CAAAA,CAAC,CAAG,CAAR,CACGC,CADR,CAAgBD,CAAC,CAAGD,CAAO,CAACG,KAAR,CAAcC,MAAlC,CAA0CH,CAAC,EAA3C,CAA+C,CACvCC,CADuC,CAChCF,CAAO,CAACG,KAAR,CAAcF,CAAd,CADgC,CAE3C,GAAkC,WAA9B,QAAQC,CAAAA,CAAI,CAACG,YAAjB,CAA+C,CAC3CH,CAAI,CAACG,YAAL,GACH,CACJ,CACD,MAAOL,CAAAA,CACV,CAED,MAAO,CACHM,IAAI,CAzSR,SAAcN,CAAd,CAAuB,CACnBA,CAAO,CAAGD,CAAkC,CAACC,CAAD,CAA5C,CACAV,CAAG,CAACiB,GAAJ,CAAQhB,CAAR,EACAD,CAAG,CAACkB,SAAJ,CAAc,WAAd,CAA2Bd,CAA3B,EACAJ,CAAG,CAACkB,SAAJ,CAAc,YAAd,CAA4Bb,CAA5B,EACAL,CAAG,CAACkB,SAAJ,CAAc,YAAd,CAA4BV,CAA5B,EACY,GAAIR,CAAAA,CAAJ,CAAQ,CAChBmB,UAAU,CAAE,CAAC,IAAD,CAAO,IAAP,CADI,CAEhBC,EAAE,CAAE,WAFY,CAGhBC,OAAO,CAAE,GAAIpB,CAAAA,CAHG,CAIhBqB,IAAI,CAAE,CACFC,gBAAgB,GADd,CAEFC,QAAQ,CAAEd,CAAO,CAACc,QAFhB,CAGFC,SAAS,GAHP,CAIFC,WAAW,GAJT,CAKFC,gBAAgB,CAAE,GAAIC,CAAAA,IAAJ,CAAStB,CAAM,CAAoC,GAAnC,EAAOI,CAAO,CAACG,KAAR,CAAc,CAAd,EAAiBgB,SAAzB,CAAf,CALhB,CAMFC,OAAO,CAAEpB,CAAO,CAACoB,OANf,CAOFC,QAAQ,CAAErB,CAAO,CAACqB,QAPhB,CAQFC,QAAQ,CAAEtB,CAAO,CAACsB,QARhB,CASFC,MAAM,CAAEvB,CAAO,CAACuB,MATd,CAUFC,SAAS,CAAExB,CAAO,CAACG,KAVjB,CAWFsB,cAAc,CAAE,CACZC,IAAI,CAAE,CAAC,CAAD,CAAI,CAAJ,CAAO,CAAP,CAAU,CAAV,CAAa,CAAb,CAAgB,CAAhB,CADM,CAXd,CAcFC,aAAa,GAdX,CAeFC,cAAc,CAAE,EAfd,CAgBFC,eAAe,GAhBb,CAJU,CAsBhBC,OAtBgB,mBAsBN,CACNC,QAAQ,CAACC,aAAT,CAAuB,kBAAvB,EAA2CC,KAA3C,CAAiDC,OAAjD,CAA2D,MAA3D,CACAH,QAAQ,CAACC,aAAT,CAAuB,WAAvB,EAAoCC,KAApC,CAA0CC,OAA1C,CAAoD,OACvD,CAzBe,CA0BhBC,QAAQ,CAAE,CACNhC,KADM,iBACE,CACJ,IAAK,GAAIF,CAAAA,CAAC,CAAG,CAAR,CACGC,CADR,CAAgBD,CAAC,CAAG,KAAKuB,SAAL,CAAepB,MAAnC,CAA2CH,CAAC,EAA5C,CAAgD,CACxCC,CADwC,CACjC,KAAKsB,SAAL,CAAevB,CAAf,CADiC,CAE5C,GAAS,CAAL,EAAAA,CAAJ,CAAY,CACR,GAAImC,CAAAA,CAAW,CAAG,KAAKnB,gBAAvB,CACAf,CAAI,CAACiB,SAAL,CAAiBiB,CAAjB,CACAlC,CAAI,CAACmC,OAAL,CAAe,KAAKC,YAAL,CAAkB,KAAKrB,gBAAvB,CAClB,CAJD,IAIO,CACHf,CAAI,CAACiB,SAAL,CAAiB,KAAKoB,cAAL,CAAoB,KAAKf,SAAL,CAAevB,CAAC,CAAG,CAAnB,EAAsBoC,OAA1C,CAAjB,CACAnC,CAAI,CAACmC,OAAL,CAAe,KAAKC,YAAL,CAAkBpC,CAAI,CAACiB,SAAvB,CAClB,CACJ,CACD,MAAO,MAAKK,SACf,CAdK,CA1BM,CA0ChBgB,OAAO,CAAE,CACLC,YADK,uBACQC,CADR,CACiB,CAClB,GAAIC,CAAAA,CAAI,CAAG,IAAX,CACA,GAAqC,WAAjC,QAAQD,CAAAA,CAAO,CAACD,YAAhB,EAA8E,CAA9B,CAAAC,CAAO,CAACD,YAAR,CAAqBrC,MAAzE,CAAqF,CACjFuC,CAAI,CAAGD,CAAO,CAACD,YAClB,CAFD,IAEO,CACHE,CAAI,CAAGD,CAAO,CAACC,IAClB,CACD,MAAOA,CAAAA,CACV,CATI,CAWLC,aAXK,wBAWSF,CAXT,CAWkB,CACnB,GAAIG,CAAAA,CAAK,GAAT,CACA,GAAwB,WAApB,QAAQH,CAAAA,CAAR,EAA8D,WAA3B,QAAQA,CAAAA,CAAO,CAACI,MAAnD,EAA6E,IAAAJ,CAAO,CAACI,MAAzF,CAA0G,CACtGD,CAAK,GACR,CACD,MAAOA,CAAAA,CACV,CAjBI,CAmBLE,WAnBK,sBAmBOJ,CAnBP,CAmBaK,CAnBb,CAmBuB,CACxB,MAAOL,CAAAA,CAAI,CAAG,GAAP,EAAcK,CAAQ,CAAG,CAAzB,CACV,CArBI,CAuBLC,eAvBK,0BAuBWC,CAvBX,CAuBiB,CAClB,GAAIC,CAAAA,CAAc,CAAGvD,CAAM,CAACsD,CAAD,CAAN,CAAaE,MAAb,CAAoB,YAApB,CAArB,CACA,MAAOD,CAAAA,CACV,CA1BI,CA4BLE,QA5BK,oBA4BM,CACP,KAAK7B,SAAL,CAAe8B,IAAf,CAAoB,CAChBX,IAAI,CAAE,KAAKvB,OAAL,CAAalB,IADH,CAEhB8C,QAAQ,CAAG,KAAK7C,KAAL,CAAWC,MAAX,CAAoB,CAFf,CAGhBe,SAAS,CAAE,IAHK,CAIhBkB,OAAO,CAAE,IAJO,CAKhBhC,YAAY,GALI,CAMhBkD,iBAAiB,CAAE,CANH,CAOhBC,SAAS,GAPO,CAQhBnC,QAAQ,CAAE,EARM,CAApB,CAUH,CAvCI,CAyCLoC,SAzCK,oBAyCKC,CAzCL,CAyCY,CACb,MAAsB,EAAf,CAAAA,CAAK,CAACtD,MAChB,CA3CI,CA6CLuD,WA7CK,sBA6COzD,CA7CP,CA6Ca0D,CA7Cb,CA6CoB,CACrB,GAAa,CAAT,EAAAA,CAAJ,CAAgB,CACZ,MAAO,KACV,CACD,KAAKC,oBAAL,GACA,IAAK,GAAI5D,CAAAA,CAAC,CAAG,CAAb,CAAgBA,CAAC,CAAGC,CAAI,CAACmB,QAAL,CAAcjB,MAAlC,CAA0CH,CAAC,EAA3C,CAA+C,CAC3C,KAAKoB,QAAL,CAAciC,IAAd,CAAmBpD,CAAI,CAACmB,QAAL,CAAcpB,CAAd,CAAnB,CACH,CACD,GAAI6D,CAAAA,CAAa,CAAG,KAAKtC,SAAL,CAAeuC,OAAf,CAAuB7D,CAAvB,CAApB,CACA,KAAKsB,SAAL,CAAewC,MAAf,CAAsBF,CAAtB,CAAqC,CAArC,CACH,CAvDI,CAyDLG,kBAzDK,8BAyDgB,CACjB,KAAKC,cAAL,GACH,CA3DI,CA6DLL,oBA7DK,gCA6DkB,CACnB,KAAKK,cAAL,GACH,CA/DI,CAiEL3B,cAjEK,yBAiEU4B,CAjEV,CAiEqB,CACtB,GAAIC,CAAAA,CAAU,CAAGxE,CAAM,CAACA,CAAM,CAACuE,CAAD,CAAN,CAAkBE,GAAlB,CAAsB,CAAtB,CAAyB,MAAzB,CAAD,CAAN,CAAyCjB,MAAzC,CAAgD,YAAhD,CAAjB,CACA,MAAOgB,CAAAA,CACV,CApEI,CAsEL9B,YAtEK,uBAsEQgC,CAtER,CAsEoB,CACrB,GAAIC,CAAAA,CAAQ,CAAG3E,CAAM,CAACA,CAAM,CAAC0E,CAAD,CAAN,CAAmBD,GAAnB,CAAuB,CAAvB,CAA0B,MAA1B,CAAD,CAAN,CAA0CjB,MAA1C,CAAiD,YAAjD,CAAf,CACA,MAAOmB,CAAAA,CACV,CAzEI,CA2ELC,iBA3EK,4BA2EaC,CA3Eb,CA2E4BvB,CA3E5B,CA2EwD,IAAtBwB,CAAAA,CAAsB,wDAAN,IAAM,CACzDD,CAAa,CAAGA,CAAa,CAACE,WAAd,EAAhB,CACA,GAAIC,CAAAA,CAAW,CAAGhF,CAAM,CAACsD,CAAD,CAAN,CAAaE,MAAb,CAAoB,MAApB,EAA4BuB,WAA5B,EAAlB,CACA,MAAOC,CAAW,EAAIH,CAAtB,CAAqC,CACjCvB,CAAI,CAAGtD,CAAM,CAACsD,CAAD,CAAN,CAAamB,GAAb,CAAiB,CAAjB,CAAoB,MAApB,CAAP,CACAO,CAAW,CAAGhF,CAAM,CAACsD,CAAD,CAAN,CAAaE,MAAb,CAAoB,MAApB,EAA4BuB,WAA5B,EACjB,CACD,GAAID,CAAJ,CAAmB,CACfxB,CAAI,CAAGA,CAAI,CAACE,MAAL,CAAYsB,CAAZ,CACV,CAFD,IAEO,CACH,GAAqB,QAAjB,QAAQxB,CAAAA,CAAZ,CAA+B,CAC3BA,CAAI,CAAG2B,QAAQ,CAAC3B,CAAI,CAACE,MAAL,CAAY,GAAZ,CAAD,CAClB,CACJ,CACD,MAAOF,CAAAA,CACV,CA1FI,CA4FLF,QA5FK,mBA4FIY,CA5FJ,CA4FW,CACZA,CAAK,GACL,gBAAUA,CAAV,OACH,CA/FI,CAiGLkB,YAjGK,wBAiGU,YACX,KAAKjD,eAAL,IACA,KAAKD,cAAL,CAAsB,EAAtB,CACA,GAAI,KAAKmD,WAAL,EAAJ,CAAwB,CACpB,KAAKpD,aAAL,IACA9B,CAAQ,CAACmF,KAAT,CAAe,KAAK5D,OAAL,CAAa6D,gBAA5B,EACA,KAAKrD,cAAL,CAAoB0B,IAApB,CAAyB,KAAKlC,OAAL,CAAa6D,gBAAtC,EACA,QACH,CACD,GAAI,KAAKC,yBAAL,EAAJ,CAAsC,CAClC,KAAKvD,aAAL,IACA,KAAKC,cAAL,CAAoB0B,IAApB,CAAyB,KAAKlC,OAAL,CAAa+D,qBAAtC,EACA,QACH,CAEDtF,CAAQ,CAACuF,OAAT,CAAiB,KAAKhE,OAAL,CAAaiE,oBAA9B,CACI,UAAI,CACA,CAAI,CAAC1D,aAAL,IACA,GAAIxB,CAAAA,CAAK,CAAG,CAAI,CAACA,KAAjB,CACAA,CAAK,CAAC,CAAD,CAAL,CAASgB,SAAT,CAAqBvB,CAAM,CAACO,CAAK,CAAC,CAAD,CAAL,CAASgB,SAAV,CAAN,CAA2BiC,MAA3B,CAAkC,YAAlC,CAArB,CACA,GAAIxC,CAAAA,CAAI,CAAG,CACP0E,MAAM,CAAE,gBADD,CAEP/D,MAAM,CAAE,CAAI,CAACA,MAFN,CAGPD,QAAQ,CAAE,CAAI,CAACA,QAHR,CAIPiE,WAAW,CAAE,CAAI,CAACxE,SAJX,CAKPZ,KAAK,CAAE,CAAI,CAACqF,YAAL,CAAkBrF,CAAlB,CALA,CAAX,CAQAX,CAAK,CAAC,CACFiG,MAAM,CAAE,KADN,CAEFC,GAAG,CAAEC,CAAC,CAACC,GAAF,CAAMC,OAAN,CAAgB,8BAFnB,CAGFC,MAAM,CAAElF,CAHN,CAAD,CAAL,CAIGmF,IAJH,CAIQ,SAACC,CAAD,CAAc,CAClB,GAAuB,GAAnB,EAAAA,CAAQ,CAACC,MAAT,EAA0BD,CAAQ,CAACpF,IAAT,CAAcsF,EAA5C,CAAgD,CAC5C,CAAI,CAACpF,QAAL,CAAgBkF,CAAQ,CAACpF,IAAT,CAAcA,IAAd,CAAmBE,QAAnC,CACAjB,CAAQ,CAACsG,OAAT,CAAiB,CAAI,CAAC/E,OAAL,CAAaS,eAA9B,EACA,CAAI,CAACA,eAAL,GACH,CAJD,IAIO,CACHhC,CAAQ,CAACmF,KAAT,CAAe,CAAI,CAAC5D,OAAL,CAAagF,aAA5B,EACA,CAAI,CAACxE,cAAL,CAAoB0B,IAApB,CAAyB,CAAI,CAAClC,OAAL,CAAagF,aAAtC,CACH,CACJ,CAbD,EAaGC,KAbH,CAaS,UAAO,CACZxG,CAAQ,CAACmF,KAAT,CAAe,CAAI,CAAC5D,OAAL,CAAagF,aAA5B,EACA,CAAI,CAACxE,cAAL,CAAoB0B,IAApB,CAAyB,CAAI,CAAClC,OAAL,CAAagF,aAAtC,CACH,CAhBD,EAgBGE,OAhBH,CAgBW,UAAM,CACb,CAAI,CAAC3E,aAAL,GACH,CAlBD,CAmBH,CAhCL,CAiCI,UAAI,CACA,CAAI,CAACA,aAAL,IACA9B,CAAQ,CAAC0G,OAAT,CAAiB,CAAI,CAACnF,OAAL,CAAaoF,aAA9B,CACH,CApCL,EAoCOC,GApCP,CAoCW,CAACC,KAAK,CAAE,KAAKtF,OAAL,CAAauF,kBAArB,CApCX,EAqCKF,GArCL,CAqCS,CAACG,MAAM,CAAE,CAACC,MAAM,CAAE,KAAKzF,OAAL,CAAa0F,cAAtB,CAAsCZ,EAAE,CAAE,KAAK9E,OAAL,CAAa2F,UAAvD,CAAT,CArCT,CAsCH,CAtJI,CAwJLvB,YAxJK,uBAwJQrF,CAxJR,CAwJe,CAChB,GAAI6G,CAAAA,CAAM,CAAG,EAAb,CACA7G,CAAK,CAAC8G,OAAN,CAAc,SAAA/G,CAAI,CAAI,CAClB,GAAIgH,CAAAA,CAAE,GAAN,CACAA,CAAE,CAACC,CAAH,CAAOjH,CAAI,CAACqD,iBAAZ,CACA2D,CAAE,CAACE,CAAH,CAAOlH,CAAI,CAACiB,SAAZ,CACA+F,CAAE,CAACG,CAAH,CAAOnH,CAAI,CAACmC,OAAZ,CACA6E,CAAE,CAAC7F,QAAH,CAAc,EAAd,CACAnB,CAAI,CAACmB,QAAL,CAAc4F,OAAd,CAAsB,SAAAvE,CAAO,CAAI,CAC7B,GAAI0E,CAAAA,CAAC,GAAL,CACAA,CAAC,CAACE,GAAF,CAAQ5E,CAAO,CAAC6E,SAAhB,CACAL,CAAE,CAAC7F,QAAH,CAAYiC,IAAZ,CAAiB8D,CAAjB,CACH,CAJD,EAKAJ,CAAM,CAAC1D,IAAP,CAAY4D,CAAZ,CACH,CAZD,EAaA,MAAOM,CAAAA,IAAI,CAACC,SAAL,CAAeT,CAAf,CACV,CAxKI,CA0KLjC,WA1KK,uBA0KS,CACV,GAAyB,CAArB,OAAK5E,KAAL,CAAWC,MAAX,EAA0D,CAAhC,MAAKD,KAAL,CAAW,CAAX,EAAckB,QAAd,CAAuBjB,MAArD,CAAiE,CAC7D,QACH,CACD,IAAK,GAAIH,CAAAA,CAAC,CAAG,CAAb,CAAgBA,CAAC,CAAG,KAAKE,KAAL,CAAWC,MAA/B,CAAuCH,CAAC,EAAxC,CAA4C,CACxC,GAAQ,CAAJ,CAAAA,CAAC,EAAyC,CAAjC,OAAKE,KAAL,CAAWF,CAAX,EAAcoB,QAAd,CAAuBjB,MAApC,CAAiD,CAC7C,QACH,CACJ,CACD,QACH,CApLI,CAsLL8E,yBAtLK,qCAsLuB,CACxB,IAAK,GAAIwC,CAAAA,CAAa,CAAG,CAAzB,CAA4BA,CAAa,CAAG,KAAKvH,KAAL,CAAWC,MAAvD,CAA+DsH,CAAa,EAA5E,CAAgF,CAC5E,IAAK,GAAIC,CAAAA,CAAgB,CAAG,CAA5B,CAA+BA,CAAgB,CAAG,KAAKxH,KAAL,CAAWuH,CAAX,EAA0BrG,QAA1B,CAAmCjB,MAArF,CAA6FuH,CAAgB,EAA7G,CAAiH,CAC7G,GAAI,CAAC,KAAK/E,aAAL,CAAmB,KAAKzC,KAAL,CAAWuH,CAAX,EAA0BrG,QAA1B,CAAmCsG,CAAnC,CAAnB,CAAL,CAA+E,CAC3E,QACH,CACJ,CACJ,CACD,QACH,CA/LI,CAiMLC,eAjMK,WAiMa,CACd,GAAIA,CAAAA,CAAe,CAAgC,CAA7B,MAAKhG,cAAL,CAAoBxB,MAA1C,CACA,MAAOwH,CAAAA,CACV,CApMI,CAsMLC,mBAtMK,8BAsMejE,CAtMf,CAsMsB,CACvB,KAAKpC,SAAL,CAAeoC,CAAf,EAAsBvD,YAAtB,CAAqC,CAAC,KAAKmB,SAAL,CAAeoC,CAAf,EAAsBvD,YAC/D,CAxMI,CA0MLyH,eA1MK,2BA0Ma,IACVC,CAAAA,CAAQ,GADE,CAEVC,CAAI,CAAG,KAAK7H,KAAL,CAAWC,MAAX,CAAoB,CAFjB,CAGV6H,CAAG,CAAGrI,CAAM,CAAC,KAAKO,KAAL,CAAW6H,CAAX,EAAiB3F,OAAlB,CAAN,CAAiCe,MAAjC,CAAwC,GAAxC,CAHI,CAIV8E,CAAG,CAAGtI,CAAM,GAAGwD,MAAT,CAAgB,GAAhB,CAJI,CAKd,GAAI8E,CAAG,CAAGD,CAAV,CAAe,CACXF,CAAQ,GACX,CAFD,IAEO,CACHA,CAAQ,GACX,CACD,MAAOA,CAAAA,CACV,CArNI,CAuNLI,mBAvNK,+BAuNiB,YACdC,CAAO,GADO,CAElBC,MAAM,CAACC,IAAP,CAAY,KAAKxH,QAAjB,EAA2ByH,GAA3B,CAA+B,SAAAC,CAAG,CAAI,CAClC,GAAI,CAAC,CAAI,CAAC1H,QAAL,CAAc0H,CAAd,CAAL,CAAyB,CACrBJ,CAAO,GACV,CACJ,CAJD,EAKA,GAAInC,CAAAA,CAAM,CAAGmC,CAAO,CAAG,KAAKhH,OAAL,CAAaqH,cAAhB,CAAiC,KAAKrH,OAAL,CAAasH,aAAlE,CACA,MAAOzC,CAAAA,CACV,CAhOI,CAkOL0C,gBAlOK,4BAkOc,IACXC,CAAAA,CAAa,CAAG,EADL,CAEXC,CAAI,GAFO,CAGfA,CAAI,CAACnC,KAAL,CAAa,KAAKtF,OAAL,CAAasF,KAA1B,CACAmC,CAAI,CAACC,WAAL,CAAmB,KAAK1H,OAAL,CAAa0H,WAAhC,CACAF,CAAa,CAACtF,IAAd,CAAmBuF,CAAnB,EACA,MAAOD,CAAAA,CACV,CAzOI,CA1CO,CAAR,CAsRf,CAYM,CAGV,CAxTC,CAAN","sourcesContent":["define([\"local_fliplearning/vue\",\r\n \"local_fliplearning/vuetify\",\r\n \"local_fliplearning/axios\",\r\n \"local_fliplearning/sortablejs\",\r\n \"local_fliplearning/draggable\",\r\n \"local_fliplearning/datepicker\",\r\n \"local_fliplearning/moment\",\r\n \"local_fliplearning/alertify\",\r\n \"local_fliplearning/pageheader\",\r\n ],\r\n function(Vue, Vuetify, Axios, Sortable, Draggable, Datepicker, Moment, Alertify, Pageheader) {\r\n \"use strict\";\r\n\r\n function init(content) {\r\n content = add_collapsabled_property_to_weeks(content);\r\n Vue.use(Vuetify);\r\n Vue.component('draggable', Draggable);\r\n Vue.component('datepicker', Datepicker);\r\n Vue.component('pageheader', Pageheader);\r\n const app = new Vue({\r\n delimiters: [\"[[\", \"]]\"],\r\n el: \"#setweeks\",\r\n vuetify: new Vuetify(),\r\n data: {\r\n display_settings: false,\r\n settings: content.settings,\r\n new_group: false,\r\n scroll_mode: false,\r\n weeks_started_at: new Date(Moment(Number(content.weeks[0].weekstart)*1000)),\r\n strings: content.strings,\r\n sections: content.sections,\r\n courseid: content.courseid,\r\n userid: content.userid,\r\n raw_weeks: content.weeks,\r\n disabled_dates: {\r\n days: [0, 2, 3, 4, 5, 6]\r\n },\r\n saving_loader: false,\r\n error_messages: [],\r\n save_successful: false\r\n },\r\n mounted() {\r\n document.querySelector(\"#setweeks-loader\").style.display = \"none\";\r\n document.querySelector(\"#setweeks\").style.display = \"block\";\r\n },\r\n computed: {\r\n weeks() {\r\n for (let i = 0; i < this.raw_weeks.length; i++) {\r\n let week = this.raw_weeks[i];\r\n if (i == 0) {\r\n let start_weeks = this.weeks_started_at;\r\n week.weekstart = start_weeks;\r\n week.weekend = this.get_end_week(this.weeks_started_at);\r\n } else {\r\n week.weekstart = this.get_start_week(this.raw_weeks[i - 1].weekend);\r\n week.weekend = this.get_end_week(week.weekstart);\r\n }\r\n }\r\n return this.raw_weeks;\r\n }\r\n },\r\n methods: {\r\n section_name(section) {\r\n let name = null;\r\n if (typeof (section.section_name) != 'undefined' && section.section_name.length > 0) {\r\n name = section.section_name;\r\n } else {\r\n name = section.name;\r\n }\r\n return name;\r\n },\r\n\r\n section_exist(section) {\r\n let exist = true;\r\n if (typeof (section) != 'undefined' && typeof (section.exists) != 'undefined' && section.exists == false) {\r\n exist = false;\r\n }\r\n return exist;\r\n },\r\n\r\n format_name(name, position) {\r\n return name + \" \" + (position + 1);\r\n },\r\n\r\n customFormatter(date) {\r\n let weeks_start_at = Moment(date).format('YYYY-MM-DD');\r\n return weeks_start_at;\r\n },\r\n\r\n add_week() {\r\n this.raw_weeks.push({\r\n name: this.strings.week,\r\n position: (this.weeks.length + 1),\r\n weekstart: null,\r\n weekend: null,\r\n collapsabled: false,\r\n hours_dedications: 0,\r\n removable: true,\r\n sections: []\r\n });\r\n },\r\n\r\n has_items(array) {\r\n return array.length > 0;\r\n },\r\n\r\n remove_week(week, index) {\r\n if (index == 0) {\r\n return null;\r\n }\r\n this.close_delete_confirm();\r\n for (let i = 0; i < week.sections.length; i++) {\r\n this.sections.push(week.sections[i]);\r\n }\r\n let element_index = this.raw_weeks.indexOf(week);\r\n this.raw_weeks.splice(element_index, 1);\r\n },\r\n\r\n ask_delete_confirm() {\r\n this.delete_confirm = true;\r\n },\r\n\r\n close_delete_confirm() {\r\n this.delete_confirm = false;\r\n },\r\n\r\n get_start_week(pass_week) {\r\n let start_date = Moment(Moment(pass_week).add(1, 'days')).format('YYYY-MM-DD');\r\n return start_date;\r\n },\r\n\r\n get_end_week(start_week) {\r\n let end_date = Moment(Moment(start_week).add(6, 'days')).format('YYYY-MM-DD');\r\n return end_date;\r\n },\r\n\r\n get_date_next_day(requested_day, date, output_format = null) {\r\n requested_day = requested_day.toLowerCase();\r\n let current_day = Moment(date).format('dddd').toLowerCase();\r\n while (current_day != requested_day) {\r\n date = Moment(date).add(1, 'days');\r\n current_day = Moment(date).format('dddd').toLowerCase();\r\n }\r\n if (output_format) {\r\n date = date.format(output_format);\r\n } else {\r\n if (typeof (date) != 'number') {\r\n date = parseInt(date.format(\"x\"));\r\n }\r\n }\r\n return date;\r\n },\r\n\r\n position(index) {\r\n index++;\r\n return `${index} - `;\r\n },\r\n\r\n save_changes() {\r\n this.save_successful = false;\r\n this.error_messages = [];\r\n if (this.empty_weeks()) {\r\n this.saving_loader = false;\r\n Alertify.error(this.strings.error_empty_week);\r\n this.error_messages.push(this.strings.error_empty_week);\r\n return false;\r\n }\r\n if (this.weeks_deleted_from_course()) {\r\n this.saving_loader = false;\r\n this.error_messages.push(this.strings.error_section_removed);\r\n return false;\r\n }\r\n\r\n Alertify.confirm(this.strings.save_warning_content,\r\n ()=>{\r\n this.saving_loader = true;\r\n var weeks = this.weeks;\r\n weeks[0].weekstart = Moment(weeks[0].weekstart).format(\"YYYY-MM-DD\");\r\n var data = {\r\n action: \"saveconfigweek\",\r\n userid: this.userid,\r\n courseid: this.courseid,\r\n newinstance: this.new_group,\r\n weeks: this.minify_query(weeks) // Stringify is a hack to clone object :D\r\n };\r\n\r\n Axios({\r\n method: 'get',\r\n url: M.cfg.wwwroot + \"/local/fliplearning/ajax.php\",\r\n params: data,\r\n }).then((response) => {\r\n if (response.status == 200 && response.data.ok) {\r\n this.settings = response.data.data.settings;\r\n Alertify.success(this.strings.save_successful);\r\n this.save_successful = true;\r\n } else {\r\n Alertify.error(this.strings.error_network);\r\n this.error_messages.push(this.strings.error_network);\r\n }\r\n }).catch((e) => {\r\n Alertify.error(this.strings.error_network);\r\n this.error_messages.push(this.strings.error_network);\r\n }).finally(() => {\r\n this.saving_loader = false;\r\n });\r\n },\r\n ()=>{ // ON CANCEL\r\n this.saving_loader = false;\r\n Alertify.warning(this.strings.cancel_action);\r\n }).set({title: this.strings.save_warning_title})\r\n .set({labels: {cancel: this.strings.confirm_cancel, ok: this.strings.confirm_ok}});\r\n },\r\n\r\n minify_query(weeks) {\r\n var minify = [];\r\n weeks.forEach(week => {\r\n var wk = new Object();\r\n wk.h = week.hours_dedications;\r\n wk.s = week.weekstart;\r\n wk.e = week.weekend;\r\n wk.sections = [];\r\n week.sections.forEach(section => {\r\n var s = new Object();\r\n s.sid = section.sectionid;\r\n wk.sections.push(s);\r\n });\r\n minify.push(wk);\r\n });\r\n return JSON.stringify(minify);\r\n },\r\n\r\n empty_weeks() {\r\n if (this.weeks.length >= 2 && this.weeks[0].sections.length < 1) {\r\n return true;\r\n }\r\n for (let i = 0; i < this.weeks.length; i++) {\r\n if (i > 0 && this.weeks[i].sections.length <= 0) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n\r\n weeks_deleted_from_course() {\r\n for (var week_position = 0; week_position < this.weeks.length; week_position++) {\r\n for (var section_position = 0; section_position < this.weeks[week_position].sections.length; section_position++) {\r\n if (!this.section_exist(this.weeks[week_position].sections[section_position])) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n },\r\n\r\n exists_mistakes() {\r\n let exists_mistakes = this.error_messages.length > 0;\r\n return exists_mistakes;\r\n },\r\n\r\n change_collapsabled(index) {\r\n this.raw_weeks[index].collapsabled = !this.raw_weeks[index].collapsabled;\r\n },\r\n\r\n course_finished() {\r\n let finished = false;\r\n let last = this.weeks.length - 1;\r\n let end = Moment(this.weeks[last].weekend).format(\"X\");\r\n let now = Moment().format(\"X\");\r\n if (now > end) {\r\n finished = true;\r\n } else {\r\n finished = false;\r\n }\r\n return finished;\r\n },\r\n\r\n get_settings_status() {\r\n let visible = true;\r\n Object.keys(this.settings).map(key => {\r\n if (!this.settings[key]) {\r\n visible = false;\r\n }\r\n });\r\n let status = visible ? this.strings.plugin_visible : this.strings.plugin_hidden;\r\n return status;\r\n },\r\n\r\n get_help_content() {\r\n var help_contents = [];\r\n var help = new Object();\r\n help.title = this.strings.title;\r\n help.description = this.strings.description;\r\n help_contents.push(help);\r\n return help_contents;\r\n }\r\n }\r\n });\r\n }\r\n\r\n function add_collapsabled_property_to_weeks(content) {\r\n for (let i = 0; i < content.weeks.length; i++) {\r\n let week = content.weeks[i];\r\n if (typeof (week.collapsabled) == \"undefined\") {\r\n week.collapsabled = false;\r\n }\r\n }\r\n return content;\r\n }\r\n\r\n return {\r\n init: init\r\n };\r\n });"],"file":"setweeks.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/sortablejs.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/sortablejs.min.js new file mode 100644 index 0000000000000000000000000000000000000000..977ad52ab4fc26512781e6dd9b69a766eb3ce406 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/sortablejs.min.js @@ -0,0 +1,2 @@ +define ("local_fliplearning/sortablejs",["local_fliplearning/config","sortablejs"],function(a,b){return b}); +//# sourceMappingURL=sortablejs.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/sortablejs.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/sortablejs.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..9a03428712753ae9a60c1c9bd50d53e8efb24552 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/sortablejs.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/sortablejs.js"],"names":["define","unused","sortablejs"],"mappings":"AAAAA,OAAM,iCAAC,CAAC,2BAAD,CAA8B,YAA9B,CAAD,CAA8C,SAASC,CAAT,CAAiBC,CAAjB,CAA6B,CACzE,MAAOA,CAAAA,CACV,CAFC,CAAN","sourcesContent":["define(['local_fliplearning/config', 'sortablejs'], function(unused, sortablejs) {\r\n return sortablejs;\r\n }\r\n);"],"file":"sortablejs.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/student.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/student.min.js new file mode 100644 index 0000000000000000000000000000000000000000..f82ff3346e49814bc165b3c376fbe8b1d42927db --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/student.min.js @@ -0,0 +1,2 @@ +define(["local_fliplearning/vue","local_fliplearning/vuetify","local_fliplearning/axios","local_fliplearning/moment","local_fliplearning/momenttimezone","local_fliplearning/pagination","local_fliplearning/chartstatic","local_fliplearning/pageheader","local_fliplearning/modulesform","local_fliplearning/helpdialog"],function(e,s,t,i,o,r,n,a,l,c){"use strict";return{init:function(o){e.use(s),e.component("pagination",r),e.component("chart",n),e.component("pageheader",a),e.component("modulesform",l),e.component("helpdialog",c);let _=new e({delimiters:["[[","]]"],el:"#student",vuetify:new s,data:()=>({strings:o.strings,groups:o.groups,userid:o.userid,courseid:o.courseid,timezone:o.timezone,render_has:o.profile_render,loading:!1,modules_dialog:!1,errors:[],indicators:o.indicators,modules_access_colors:o.modules_access_colors,sessions_evolution_colors:o.sessions_evolution_colors,user_grades_colors:o.user_grades_colors,user:o.indicators.user,weeks_sessions:o.indicators.sessions,sessions_evolution_data:[],user_grades_categories:[],user_grades_data:[],course_grades_data:[],selected_sections:[],help_dialog:!1,help_contents:[]}),beforeMount(){this.set_modules_in_sections(),this.calculate_sessions_evolution(),this.calculate_user_grades()},mounted(){document.querySelector("#sessions-loader").style.display="none",document.querySelector("#student").style.display="block",setTimeout(function(){_.setGraphicsEventListeners()})},methods:{get_help_content(){let e=[];return e.push({title:this.strings.section_help_title,description:this.strings.section_help_description}),e},set_modules_in_sections(){let e=new Map,s=0;this.indicators.cms.forEach(t=>{s=Number(t.section),e.has(s)?e.get(s).push(t):e.set(s,[t])}),this.indicators.sections.forEach(t=>{s=Number(t.sectionid),t.sectionid=s,t.modules=e.has(s)?e.get(s):[]})},build_modules_access_chart(){let e=new Object;return e.chart={type:"bar",backgroundColor:null,style:{fontFamily:"poppins"}},e.title={text:null},e.colors=this.modules_access_colors,e.xAxis={type:"category"},e.yAxis={allowDecimals:!1,title:{enabled:!0,text:this.strings.modules_amount}},e.tooltip={shared:!0,formatter:function(){let e=1==this.y?_.strings.module_label:_.strings.modules_label;return"<b>"+this.points[0].key+"</b>: "+this.y+" "+e+"<br/><i>"+_.strings.modules_details+"<i/>"}},e.plotOptions={series:{cursor:"pointer",point:{events:{click:function(){_.addLogsIntoDB("viewed","module_access","chart_details","Provide details informations about the consulted resources"),_.open_modules_modal(this.x)}}}}},e.legend={enabled:!1},e.series=[{colorByPoint:!0,data:[{name:this.strings.modules_access_chart_series_viewed,y:this.user.cms.viewed},{name:this.strings.modules_access_chart_series_complete,y:this.user.cms.complete},{name:this.strings.modules_access_chart_series_total,y:this.user.cms.total}]}],e},build_weeks_session_chart(){let e=new Object;return e.title={text:null},e.chart={type:"heatmap",backgroundColor:null,style:{fontFamily:"poppins"}},e.xAxis={categories:this.strings.weeks},e.yAxis={categories:this.weeks_sessions.categories,title:null,reversed:!0},e.colorAxis={min:0,minColor:"#E0E0E0",maxColor:"#118AB2"},e.legend={layout:"horizontal",verticalAlign:"bottom"},e.tooltip={formatter:function(){let e=_.weeks_sessions.weeks[this.point.y][this.point.x]||"",s=_.get_point_category_name(this.point,"x"),t=_.get_point_category_name(this.point,"y"),i=_.strings.sessions_text;return 1==this.point.value&&(i=_.strings.session_text),"<b>"+t+" "+s+"</b>: "+this.point.value+" "+i+"<br/>"+e}},e.series=[{borderWidth:2,borderColor:"#FAFAFA",data:this.weeks_sessions.data}],e},build_sessions_evolution_chart(){let e=new Object;return e.chart={zoomType:"x",backgroundColor:null,style:{fontFamily:"poppins"}},e.title={text:null},e.colors=this.sessions_evolution_colors,e.xAxis={type:"datetime"},e.yAxis=[{allowDecimals:!1,title:{text:this.strings.sessions_evolution_chart_xaxis1}},{title:{text:this.strings.sessions_evolution_chart_xaxis2},opposite:!0}],e.tooltip={shared:!0,useHTML:!0,formatter:function(){return`<small>${_.calculate_timezone_date_string(this.x)}</small><br/>${this.points[0]?_.get_sessions_evolution_tooltip(this.points[0]):""}${this.points[1]?_.get_sessions_evolution_tooltip(this.points[1]):""}`}},e.series=this.sessions_evolution_data,e},build_user_grades_chart(){let e=new Object;return e.chart={type:"column",backgroundColor:null,style:{fontFamily:"poppins"}},e.title={text:null},e.colors=this.user_grades_colors,e.xAxis={crosshair:!0,categories:this.user_grades_categories},e.yAxis={allowDecimals:!1,max:100,labels:{format:"{value} %"},title:{text:this.strings.user_grades_chart_yaxis}},e.tooltip={shared:!0,useHTML:!0,formatter:function(){let e=this.x,s=this.points[0].point.x,t=_.user.gradeitems[s],i=`<small>${e}</small><br/>`,o=`<i>(${_.strings.user_grades_chart_view_activity})</i><br/>`,r="";return r=0==t.gradecount?_.strings.user_grades_chart_tooltip_no_graded:`${this.points[0]?_.get_user_grades_tooltip(this.points[0],t):""}${this.points[1]?_.get_user_grades_tooltip(this.points[1],t):""}${o}`,`${i}${r}`}},e.plotOptions={series:{cursor:"pointer",point:{events:{click:function(){_.addLogsIntoDB("viewed","user_grades","chart_details","Provide details informations about the consulted resources");let e=this.x,s=_.user.gradeitems[e],t=`${M.cfg.wwwroot}/mod/${s.itemmodule}/view.php?id=${s.coursemoduleid}`;window.open(t,"_blank")}}}}},e.series=this.user_grades_data,e},calculate_sessions_evolution(){let e=[],s=[],t=0,i=0,o=0,r=0;this.user.sessions.forEach(n=>{r=1e3*Number(n.start),o=Number(n.duration)/60,t+=o,i++,e.push({x:r,y:i}),s.push({x:r,y:t})}),this.sessions_evolution_data=[{name:this.strings.sessions_evolution_chart_legend1,yAxis:0,data:e},{name:this.strings.sessions_evolution_chart_legend2,yAxis:1,data:s}]},calculate_user_grades(){let e=[],s=[],t=[],i=0,o=this.user.firstname;this.user.gradeitems&&(this.user.gradeitems.forEach(o=>{i=100*Number(o.finalgrade)/Number(o.grademax),e.push(o.itemname),s.push(o.average_percentage),t.push(i)}),this.user_grades_data=[{name:o,data:t},{name:this.strings.user_grades_chart_legend,data:s}],this.user_grades_categories=e)},calculate_timezone_date_string(e){let s,t,o,r,n;if(i.tz.zone(this.timezone))t=(s=i(e).tz(this.timezone)).day(),o=s.date(),r=s.month(),n=s.format("HH:mm:ss");else{let i=Intl.DateTimeFormat().resolvedOptions().timeZone;t=(s=new Date(e)).getDay(),o=s.getDate(),r=s.getMonth(),n=`${s.getHours()}:${s.getMinutes()}:${s.getSeconds()} (${i})`}return`${t=this.strings.chart.weekdays[t]}, ${r=this.strings.chart.shortMonths[r]} ${o}, ${n}`},get_point_category_name(e,s){let t="y"===s;return e.series[t?"yAxis":"xAxis"].categories[e[t?"y":"x"]]},get_sessions_evolution_tooltip(e){let s,t,i,o,r,n="";return 0==e.colorIndex?(t=1==(s=e.y)?_.strings.session_text:_.strings.sessions_text,i=e.series.name,n=`<b style="color: ${e.color}">${i}: </b>\n ${s} ${t}<br/>`):(o=e.series.name,r=_.convert_time(60*e.y),n=`<b style="color: ${e.color}">${o}: </b>\n ${r}<br/>`),n},get_user_grades_tooltip(e,s){let t=e.series.name,i=0,o=Number(s.finalgrade),r=Number(s.average),n=Number(s.grademax);return n=this.isInt(n)?n:n.toFixed(2),i=0==e.colorIndex?this.isInt(o)?o:o.toFixed(2):this.isInt(r)?r:r.toFixed(2),`<b style="color: ${e.color}">${t}: </b>\n ${i}/${n}<br/>`},open_modules_modal(){let e=this.indicators.sections;e.forEach(e=>{e.modules.forEach(e=>{e.complete=!1,e.viewed=!1,e.interactions=0;let s=this.user.cms.modules[`cm${e.id}`];s&&(e.complete=s.complete,e.viewed=s.viewed,e.interactions=s.interactions)})}),this.modules_dialog=!0,this.selected_sections=e},get_picture_url:e=>`${M.cfg.wwwroot}/user/pix.php?file=/${e}/f1.jpg`,get_user_fullname(){return`${this.user.firstname} ${this.user.lastname}`},get_username(){return`@${this.user.username}`},see_profile(){let e=this.user.id,s=M.cfg.wwwroot+"/user/view.php?id="+e+"&course="+_.courseid;window.open(s)},get_progress_percentage(){return`${this.user.progress_percentage} %`},get_progress_message(){let e=this.strings.modules_label,s=this.strings.finisheds_label;return 1==this.user.cms.complete&&(e=this.strings.module_label,s=this.strings.finished_label),`${this.user.cms.complete} ${e} ${s} ${this.strings.of_conector} ${this.user.cms.total}`},convert_time(e){e*=60;let s,t=this.strings.hours_short,i=this.strings.minutes_short,o=this.strings.seconds_short,r=Math.floor(e/3600),n=Math.floor(e%3600/60),a=Math.floor(e%60);return s=r>=1?n>=1?`${r}${t} ${n}${i}`:`${r}${t}`:n>=1?a>=1?`${n}${i} ${a}${o}`:`${n}${i}`:`${a}${o}`},get_student_grade(){let e=this.user.coursegrade;return e.finalgrade=Number(e.finalgrade),e.maxgrade=Number(e.maxgrade),`${this.isInt(e.finalgrade)?e.finalgrade:e.finalgrade.toFixed(2)}/${this.isInt(e.maxgrade)?e.maxgrade:e.maxgrade.toFixed(2)}`},update_modules_dialog(e){this.modules_dialog=e},isInt:e=>e%1==0,open_chart_help(e){let s=[],t="",i="",o="",r="";"modules_access"==e?(s.push({title:this.strings.modules_access_help_title,description:this.strings.modules_access_help_description_p1}),s.push({description:this.strings.modules_access_help_description_p2}),s.push({description:this.strings.modules_access_help_description_p3}),t="viewed",i="help",o="modules_access",r="Help section that provides information about the modules access chart",this.addLogsIntoDB(t,o,i,r)):"weeks_session"==e?(s.push({title:this.strings.weeks_session_help_title,description:this.strings.weeks_session_help_description_p1}),s.push({description:this.strings.weeks_session_help_description_p2}),t="viewed",i="help",o="week_session",r="Help section that provides information about the week session chart",this.addLogsIntoDB(t,o,i,r)):"sessions_evolution"==e?(s.push({title:this.strings.sessions_evolution_help_title,description:this.strings.sessions_evolution_help_description_p1}),s.push({description:this.strings.sessions_evolution_help_description_p2}),s.push({description:this.strings.sessions_evolution_help_description_p3}),t="viewed",i="help",o="sessions_evolution",r="Help section that provides information about the sessions evolution chart",this.addLogsIntoDB(t,o,i,r)):"user_grades"==e&&(s.push({title:this.strings.user_grades_help_title,description:this.strings.user_grades_help_description_p1}),s.push({description:this.strings.user_grades_help_description_p2}),s.push({description:this.strings.user_grades_help_description_p3}),t="viewed",i="help",o="user_grades",r="Help section that provides information about the user grades chart",this.addLogsIntoDB(t,o,i,r)),this.help_contents=s,this.help_contents.length&&(this.help_dialog=!0)},update_help_dialog(e){this.help_dialog=e},get_timezone(){return`${this.strings.ss_change_timezone} ${this.timezone}`},setGraphicsEventListeners(){let e=document.querySelectorAll(".highcharts-container");e.length<1?setTimeout(_.setGraphicsEventListeners,500):(e[0].id="modules_access",e[1].id="weeks_session",e[2].id="sessions_evolution",e[3].id="user_grades",e.forEach(e=>{e.addEventListener("mouseenter",_.addLogsViewGraphic)}))},addLogsViewGraphic(e){event.stopPropagation();var s="",t="",i="",o="";switch(e.target.id){case"modules_access":s="viewed",t="modules_access",i="chart",o="Bar chart that shows";break;case"weeks_session":s="viewed",t="weeks_session",i="chart",o="Chart showing";break;case"sessions_evolution":s="viewed",t="sessions_evolution",i="chart",o="Chart showing ";break;case"user_grades":s="viewed",t="user_grades",i="chart",o="Chart showing ";break;default:s="viewed",t="",i="chart",o="A chart"}_.addLogsIntoDB(s,t,i,o)},addLogsIntoDB(e,s,i,r){let n={courseid:o.courseid,userid:o.userid,action:"addLogs",sectionname:"STUDENT_GENERAL_INDICATORS",actiontype:e,objectType:i,objectName:s,currentUrl:document.location.href,objectDescription:r};t({method:"get",url:M.cfg.wwwroot+"/local/fliplearning/ajax.php",params:n}).then(e=>{200==e.status&&e.data.ok}).catch(e=>{})}}})}}}); +//# sourceMappingURL=student.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/student.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/student.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..44845d39a01b2c6e135069de7101550d7f5f73ae --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/student.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/student.js"],"names":["define","Vue","Vuetify","Axios","Moment","MomentTimezone","Pagination","ChartStatic","PageHeader","ModulesForm","HelpDialog","init","content","use","component","vue","delimiters","el","vuetify","data","strings","groups","userid","courseid","timezone","render_has","profile_render","loading","modules_dialog","errors","indicators","modules_access_colors","sessions_evolution_colors","user_grades_colors","user","weeks_sessions","sessions","sessions_evolution_data","user_grades_categories","user_grades_data","course_grades_data","selected_sections","help_dialog","help_contents","beforeMount","set_modules_in_sections","calculate_sessions_evolution","calculate_user_grades","mounted","document","querySelector","style","display","methods","get_help_content","contents","title","section_help_title","description","section_help_description","sectionsMap","Map","sectionid","cms","forEach","cm","section","has","set","get","push","sections","modules","build_modules_access_chart","chart","type","backgroundColor","fontFamily","text","colors","xAxis","yAxis","allowDecimals","enabled","modules_amount","tooltip","shared","formatter","module_text","y","module_label","modules_label","points","key","modules_details","plotOptions","series","cursor","point","events","click","open_modules_modal","x","legend","colorByPoint","name","modules_access_chart_series_viewed","viewed","modules_access_chart_series_complete","complete","modules_access_chart_series_total","total","build_weeks_session_chart","categories","weeks","reversed","colorAxis","min","minColor","maxColor","layout","verticalAlign","days","xCategoryName","get_point_category_name","yCategoryName","label","sessions_text","value","session_text","borderWidth","borderColor","build_sessions_evolution_chart","zoomType","sessions_evolution_chart_xaxis1","sessions_evolution_chart_xaxis2","opposite","useHTML","date_label","calculate_timezone_date_string","text1","get_sessions_evolution_tooltip","text2","build_user_grades_chart","crosshair","max","labels","format","user_grades_chart_yaxis","itemname","position","item","gradeitems","header","footer","user_grades_chart_view_activity","body","gradecount","user_grades_chart_tooltip_no_graded","get_user_grades_tooltip","url","M","cfg","wwwroot","itemmodule","coursemoduleid","window","open","sessions_data","time_data","sumtime","sumsessions","time","timestamp","session","start","duration","sessions_evolution_chart_legend1","sessions_evolution_chart_legend2","course_grades","user_grades","user_grade","user_name","firstname","finalgrade","grademax","average_percentage","user_grades_chart_legend","dat","weekday","monthday","month","tz","zone","day","date","Intl","DateTimeFormat","resolvedOptions","timeZone","Date","getDay","getDate","getMonth","getHours","getMinutes","getSeconds","weekdays","shortMonths","dimension","isY","axis","sessions_suffix","sessions_prefix","time_prefix","colorIndex","color","convert_time","serie_name","average","isInt","toFixed","module","interactions","user_cm","id","get_picture_url","get_user_fullname","lastname","get_username","username","see_profile","get_progress_percentage","progress_percentage","get_progress_message","finished_label","finisheds_label","of_conector","h","hours_short","m","minutes_short","s","seconds_short","hours","Math","floor","minutes","seconds","get_student_grade","grade","coursegrade","maxgrade","student_grade","max_grade","update_modules_dialog","n","open_chart_help","modules_access_help_title","modules_access_help_description_p1","modules_access_help_description_p2","modules_access_help_description_p3","weeks_session_help_title","weeks_session_help_description_p1","weeks_session_help_description_p2","sessions_evolution_help_title","sessions_evolution_help_description_p1","sessions_evolution_help_description_p2","sessions_evolution_help_description_p3","user_grades_help_title","user_grades_help_description_p1","user_grades_help_description_p2","user_grades_help_description_p3","length","update_help_dialog","get_timezone","information","ss_change_timezone"],"mappings":"AAAAA,OAAM,8BAAC,CAAC,wBAAD,CACC,4BADD,CAEC,0BAFD,CAGC,2BAHD,CAIC,mCAJD,CAKC,+BALD,CAMC,gCAND,CAOC,+BAPD,CAQC,gCARD,CASC,+BATD,CAAD,CAWF,SAASC,CAAT,CAAcC,CAAd,CAAuBC,CAAvB,CAA8BC,CAA9B,CAAsCC,CAAtC,CAAsDC,CAAtD,CAAkEC,CAAlE,CAA+EC,CAA/E,CAA2FC,CAA3F,CAAwGC,CAAxG,CAAoH,CAChH,aA2gBA,MAAO,CACHC,IAAI,CA1gBR,SAAcC,CAAd,CAAuB,CAEnBX,CAAG,CAACY,GAAJ,CAAQX,CAAR,EACAD,CAAG,CAACa,SAAJ,CAAc,YAAd,CAA4BR,CAA5B,EACAL,CAAG,CAACa,SAAJ,CAAc,OAAd,CAAuBP,CAAvB,EACAN,CAAG,CAACa,SAAJ,CAAc,YAAd,CAA4BN,CAA5B,EACAP,CAAG,CAACa,SAAJ,CAAc,aAAd,CAA6BL,CAA7B,EACAR,CAAG,CAACa,SAAJ,CAAc,YAAd,CAA4BJ,CAA5B,EACA,GAAIK,CAAAA,CAAG,CAAG,GAAId,CAAAA,CAAJ,CAAQ,CACde,UAAU,CAAE,CAAC,IAAD,CAAO,IAAP,CADE,CAEdC,EAAE,CAAE,UAFU,CAGdC,OAAO,CAAE,GAAIhB,CAAAA,CAHC,CAIdiB,IAJc,gBAIP,CACH,MAAO,CACHC,OAAO,CAAGR,CAAO,CAACQ,OADf,CAEHC,MAAM,CAAGT,CAAO,CAACS,MAFd,CAGHC,MAAM,CAAGV,CAAO,CAACU,MAHd,CAIHC,QAAQ,CAAGX,CAAO,CAACW,QAJhB,CAKHC,QAAQ,CAAGZ,CAAO,CAACY,QALhB,CAMHC,UAAU,CAAGb,CAAO,CAACc,cANlB,CAOHC,OAAO,GAPJ,CAQHC,cAAc,GARX,CASHC,MAAM,CAAG,EATN,CAWHC,UAAU,CAAElB,CAAO,CAACkB,UAXjB,CAYHC,qBAAqB,CAAEnB,CAAO,CAACmB,qBAZ5B,CAaHC,yBAAyB,CAAEpB,CAAO,CAACoB,yBAbhC,CAcHC,kBAAkB,CAAErB,CAAO,CAACqB,kBAdzB,CAeHC,IAAI,CAAEtB,CAAO,CAACkB,UAAR,CAAmBI,IAftB,CAgBHC,cAAc,CAAEvB,CAAO,CAACkB,UAAR,CAAmBM,QAhBhC,CAiBHC,uBAAuB,CAAE,EAjBtB,CAkBHC,sBAAsB,CAAE,EAlBrB,CAmBHC,gBAAgB,CAAE,EAnBf,CAoBHC,kBAAkB,CAAE,EApBjB,CAqBHC,iBAAiB,CAAE,EArBhB,CAuBHC,WAAW,GAvBR,CAwBHC,aAAa,CAAE,EAxBZ,CA0BV,CA/Ba,CAgCdC,WAhCc,uBAgCD,CACT,KAAKC,uBAAL,GACA,KAAKC,4BAAL,GACA,KAAKC,qBAAL,EACH,CApCa,CAqCdC,OArCc,mBAqCL,CACLC,QAAQ,CAACC,aAAT,CAAuB,kBAAvB,EAA2CC,KAA3C,CAAiDC,OAAjD,CAA2D,MAA3D,CACAH,QAAQ,CAACC,aAAT,CAAuB,UAAvB,EAAmCC,KAAnC,CAAyCC,OAAzC,CAAmD,OACtD,CAxCa,CAyCdC,OAAO,CAAG,CACNC,gBADM,4BACY,CACd,GAAIC,CAAAA,CAAQ,CAAG,CACD,CACVC,KAAK,CAAE,KAAKpC,OAAL,CAAaqC,kBADV,CAEVC,WAAW,CAAE,KAAKtC,OAAL,CAAauC,wBAFhB,CADC,CAAf,CAKA,MAAOJ,CAAAA,CACV,CARK,CAUNV,uBAVM,mCAUoB,IAClBe,CAAAA,CAAW,CAAG,GAAIC,CAAAA,GADA,CAElBC,CAAS,CAAG,CAFM,CAGtB,KAAKhC,UAAL,CAAgBiC,GAAhB,CAAoBC,OAApB,CAA4B,SAAAC,CAAE,CAAI,CAC9BH,CAAS,EAAUG,CAAE,CAACC,OAAtB,CACA,GAAI,CAACN,CAAW,CAACO,GAAZ,CAAgBL,CAAhB,CAAL,CAAiC,CAC7BF,CAAW,CAACQ,GAAZ,CAAgBN,CAAhB,CAA2B,CAACG,CAAD,CAA3B,CACH,CAFD,IAEO,CACHL,CAAW,CAACS,GAAZ,CAAgBP,CAAhB,EAA2BQ,IAA3B,CAAgCL,CAAhC,CACH,CACJ,CAPD,EAQA,KAAKnC,UAAL,CAAgByC,QAAhB,CAAyBP,OAAzB,CAAiC,SAAAE,CAAO,CAAI,CACxCJ,CAAS,EAAUI,CAAO,CAACJ,SAA3B,CACAI,CAAO,CAACJ,SAAR,CAAoBA,CAApB,CACAI,CAAO,CAACM,OAAR,CAAmBZ,CAAW,CAACO,GAAZ,CAAgBL,CAAhB,CAAD,CAA+BF,CAAW,CAACS,GAAZ,CAAgBP,CAAhB,CAA/B,CAA4D,EACjF,CAJD,CAKH,CA1BK,CA4BNW,0BA5BM,sCA4BuB,CACzB,GAAIC,CAAAA,CAAK,GAAT,CACAA,CAAK,CAACA,KAAN,CAAc,CACVC,IAAI,CAAE,KADI,CAEVC,eAAe,CAAE,IAFP,CAGVzB,KAAK,CAAE,CAAC0B,UAAU,CAAE,SAAb,CAHG,CAAd,CAKAH,CAAK,CAAClB,KAAN,CAAc,CAACsB,IAAI,CAAE,IAAP,CAAd,CACAJ,CAAK,CAACK,MAAN,CAAe,KAAKhD,qBAApB,CACA2C,CAAK,CAACM,KAAN,CAAc,CACVL,IAAI,CAAE,UADI,CADd,CAIAD,CAAK,CAACO,KAAN,CAAc,CACVC,aAAa,GADH,CAEV1B,KAAK,CAAE,CACH2B,OAAO,GADJ,CAEHL,IAAI,CAAE,KAAK1D,OAAL,CAAagE,cAFhB,CAFG,CAAd,CAOAV,CAAK,CAACW,OAAN,CAAgB,CACZC,MAAM,GADM,CAEZC,SAAS,CAAE,oBAAY,CACnB,GAAIC,CAAAA,CAAW,CAAc,CAAV,OAAKC,CAAN,CAAgB1E,CAAG,CAACK,OAAJ,CAAYsE,YAA5B,CAA2C3E,CAAG,CAACK,OAAJ,CAAYuE,aAAzE,CACA,MAAO,MAAQ,KAAKC,MAAL,CAAY,CAAZ,EAAeC,GAAvB,CAA6B,QAA7B,CAAwC,KAAKJ,CAA7C,CAAiD,GAAjD,CAAuDD,CAAvD,YACMzE,CAAG,CAACK,OAAJ,CAAY0E,eADlB,CACoC,MAC9C,CANW,CAAhB,CAQApB,CAAK,CAACqB,WAAN,CAAoB,CAChBC,MAAM,CAAE,CACJC,MAAM,CAAE,SADJ,CAEJC,KAAK,CAAE,CACHC,MAAM,CAAE,CACJC,KAAK,CAAE,gBAAY,CACfrF,CAAG,CAACsF,kBAAJ,CAAuB,KAAKC,CAA5B,CACH,CAHG,CADL,CAFH,CADQ,CAApB,CAYA5B,CAAK,CAAC6B,MAAN,CAAe,CACPpB,OAAO,GADA,CAZf,CAeAT,CAAK,CAACsB,MAAN,CAAe,CAAC,CACZQ,YAAY,GADA,CAEZrF,IAAI,CAAE,CACF,CAACsF,IAAI,CAAE,KAAKrF,OAAL,CAAasF,kCAApB,CAAwDjB,CAAC,CAAE,KAAKvD,IAAL,CAAU6B,GAAV,CAAc4C,MAAzE,CADE,CAEF,CAACF,IAAI,CAAE,KAAKrF,OAAL,CAAawF,oCAApB,CAA0DnB,CAAC,CAAE,KAAKvD,IAAL,CAAU6B,GAAV,CAAc8C,QAA3E,CAFE,CAGF,CAACJ,IAAI,CAAE,KAAKrF,OAAL,CAAa0F,iCAApB,CAAuDrB,CAAC,CAAE,KAAKvD,IAAL,CAAU6B,GAAV,CAAcgD,KAAxE,CAHE,CAFM,CAAD,CAAf,CAQA,MAAOrC,CAAAA,CACV,CA/EK,CAiFNsC,yBAjFM,qCAiFsB,CACxB,GAAItC,CAAAA,CAAK,GAAT,CACAA,CAAK,CAAClB,KAAN,CAAc,CAACsB,IAAI,CAAE,IAAP,CAAd,CACAJ,CAAK,CAACA,KAAN,CAAc,CACVC,IAAI,CAAE,SADI,CAEVC,eAAe,CAAE,IAFP,CAGVzB,KAAK,CAAE,CAAC0B,UAAU,CAAE,SAAb,CAHG,CAAd,CAKAH,CAAK,CAACM,KAAN,CAAc,CACViC,UAAU,CAAE,KAAK7F,OAAL,CAAa8F,KADf,CAAd,CAGAxC,CAAK,CAACO,KAAN,CAAc,CACVgC,UAAU,CAAE,KAAK9E,cAAL,CAAoB8E,UADtB,CAEVzD,KAAK,CAAE,IAFG,CAGV2D,QAAQ,GAHE,CAAd,CAKAzC,CAAK,CAAC0C,SAAN,CAAkB,CACdC,GAAG,CAAE,CADS,CAEdC,QAAQ,CAAE,SAFI,CAGdC,QAAQ,CAAE,SAHI,CAAlB,CAKA7C,CAAK,CAAC6B,MAAN,CAAe,CACXiB,MAAM,CAAE,YADG,CAEXC,aAAa,CAAE,QAFJ,CAAf,CAIA/C,CAAK,CAACW,OAAN,CAAgB,CACZE,SAAS,CAAE,oBAAY,IACfmC,CAAAA,CAAI,CAAG3G,CAAG,CAACoB,cAAJ,CAAmB+E,KAAnB,CAAyB,KAAKhB,KAAL,CAAWT,CAApC,EAAuC,KAAKS,KAAL,CAAWI,CAAlD,GAAwD,EADhD,CAEfqB,CAAa,CAAG5G,CAAG,CAAC6G,uBAAJ,CAA4B,KAAK1B,KAAjC,CAAwC,GAAxC,CAFD,CAGf2B,CAAa,CAAG9G,CAAG,CAAC6G,uBAAJ,CAA4B,KAAK1B,KAAjC,CAAwC,GAAxC,CAHD,CAIf4B,CAAK,CAAG/G,CAAG,CAACK,OAAJ,CAAY2G,aAJL,CAKnB,GAAwB,CAApB,OAAK7B,KAAL,CAAW8B,KAAf,CAA2B,CACvBF,CAAK,CAAG/G,CAAG,CAACK,OAAJ,CAAY6G,YACvB,CACD,MAAO,MAAQJ,CAAR,CAAwB,GAAxB,CAA8BF,CAA9B,CAA8C,QAA9C,CACD,KAAKzB,KAAL,CAAW8B,KADV,CACiB,GADjB,CACuBF,CADvB,CAC+B,OAD/B,CACyCJ,CACnD,CAXW,CAAhB,CAaAhD,CAAK,CAACsB,MAAN,CAAe,CAAC,CACZkC,WAAW,CAAE,CADD,CAEZC,WAAW,CAAE,SAFD,CAGZhH,IAAI,CAAE,KAAKgB,cAAL,CAAoBhB,IAHd,CAAD,CAAf,CAKA,MAAOuD,CAAAA,CACV,CA7HK,CA+HN0D,8BA/HM,0CA+H2B,CAC7B,GAAI1D,CAAAA,CAAK,GAAT,CACAA,CAAK,CAACA,KAAN,CAAc,CACV2D,QAAQ,CAAE,GADA,CAEVzD,eAAe,CAAE,IAFP,CAGVzB,KAAK,CAAE,CAAC0B,UAAU,CAAE,SAAb,CAHG,CAAd,CAKAH,CAAK,CAAClB,KAAN,CAAc,CAACsB,IAAI,CAAE,IAAP,CAAd,CACAJ,CAAK,CAACK,MAAN,CAAe,KAAK/C,yBAApB,CACA0C,CAAK,CAACM,KAAN,CAAc,CACVL,IAAI,CAAE,UADI,CADd,CAIAD,CAAK,CAACO,KAAN,CAAc,CAAC,CACXC,aAAa,GADF,CAEX1B,KAAK,CAAE,CAAEsB,IAAI,CAAE,KAAK1D,OAAL,CAAakH,+BAArB,CAFI,CAAD,CAGX,CACC9E,KAAK,CAAE,CAAEsB,IAAI,CAAE,KAAK1D,OAAL,CAAamH,+BAArB,CADR,CAECC,QAAQ,GAFT,CAHW,CAAd,CAOA9D,CAAK,CAACW,OAAN,CAAgB,CACZC,MAAM,GADM,CAEZmD,OAAO,GAFK,CAGZlD,SAAS,CAAE,oBAAY,IACfmD,CAAAA,CAAU,CAAG3H,CAAG,CAAC4H,8BAAJ,CAAmC,KAAKrC,CAAxC,CADE,CAEfsC,CAAK,CAAI,KAAKhD,MAAL,CAAY,CAAZ,CAAD,CAAmB7E,CAAG,CAAC8H,8BAAJ,CAAmC,KAAKjD,MAAL,CAAY,CAAZ,CAAnC,CAAnB,CAAwE,EAFjE,CAGfkD,CAAK,CAAI,KAAKlD,MAAL,CAAY,CAAZ,CAAD,CAAmB7E,CAAG,CAAC8H,8BAAJ,CAAmC,KAAKjD,MAAL,CAAY,CAAZ,CAAnC,CAAnB,CAAwE,EAHjE,CAInB,uBAAiB8C,CAAjB,yBAA2CE,CAA3C,SAAmDE,CAAnD,CACH,CARW,CAAhB,CAUApE,CAAK,CAACsB,MAAN,CAAe,KAAK3D,uBAApB,CACA,MAAOqC,CAAAA,CACV,CA9JK,CAgKNqE,uBAhKM,mCAgKoB,CACtB,GAAIrE,CAAAA,CAAK,GAAT,CACAA,CAAK,CAACA,KAAN,CAAc,CACVC,IAAI,CAAE,QADI,CAEVC,eAAe,CAAE,IAFP,CAGVzB,KAAK,CAAE,CAAC0B,UAAU,CAAE,SAAb,CAHG,CAAd,CAKAH,CAAK,CAAClB,KAAN,CAAc,CAACsB,IAAI,CAAE,IAAP,CAAd,CACAJ,CAAK,CAACK,MAAN,CAAe,KAAK9C,kBAApB,CACAyC,CAAK,CAACM,KAAN,CAAc,CACVgE,SAAS,GADC,CAEV/B,UAAU,CAAE,KAAK3E,sBAFP,CADd,CAKAoC,CAAK,CAACO,KAAN,CAAc,CACVC,aAAa,GADH,CAEV+D,GAAG,CAAE,GAFK,CAGVC,MAAM,CAAE,CACJC,MAAM,CAAE,WADJ,CAHE,CAMV3F,KAAK,CAAE,CAAEsB,IAAI,CAAE,KAAK1D,OAAL,CAAagI,uBAArB,CANG,CAAd,CAQA1E,CAAK,CAACW,OAAN,CAAgB,CACZC,MAAM,GADM,CAEZmD,OAAO,GAFK,CAGZlD,SAAS,CAAE,oBAAY,IACf8D,CAAAA,CAAQ,CAAG,KAAK/C,CADD,CAEfgD,CAAQ,CAAG,KAAK1D,MAAL,CAAY,CAAZ,EAAeM,KAAf,CAAqBI,CAFjB,CAGfiD,CAAI,CAAGxI,CAAG,CAACmB,IAAJ,CAASsH,UAAT,CAAoBF,CAApB,CAHQ,CAIfG,CAAM,kBAAaJ,CAAb,iBAJS,CAKfK,CAAM,eAAU3I,CAAG,CAACK,OAAJ,CAAYuI,+BAAtB,cALS,CAMfC,CAAI,CAAG,EANQ,CAOnB,GAAuB,CAAnB,EAAAL,CAAI,CAACM,UAAT,CAA0B,CACtBD,CAAI,CAAG7I,CAAG,CAACK,OAAJ,CAAY0I,mCACtB,CAFD,IAEO,IACClB,CAAAA,CAAK,CAAI,KAAKhD,MAAL,CAAY,CAAZ,CAAD,CAAmB7E,CAAG,CAACgJ,uBAAJ,CAA4B,KAAKnE,MAAL,CAAY,CAAZ,CAA5B,CAA4C2D,CAA5C,CAAnB,CAAuE,EADhF,CAECT,CAAK,CAAI,KAAKlD,MAAL,CAAY,CAAZ,CAAD,CAAmB7E,CAAG,CAACgJ,uBAAJ,CAA4B,KAAKnE,MAAL,CAAY,CAAZ,CAA5B,CAA4C2D,CAA5C,CAAnB,CAAuE,EAFhF,CAGHK,CAAI,WAAMhB,CAAN,SAAcE,CAAd,SAAsBY,CAAtB,CACP,CACD,gBAAUD,CAAV,SAAmBG,CAAnB,CACH,CAlBW,CAAhB,CAoBAlF,CAAK,CAACqB,WAAN,CAAoB,CAChBC,MAAM,CAAE,CACJC,MAAM,CAAE,SADJ,CAEJC,KAAK,CAAE,CACHC,MAAM,CAAE,CACJC,KAAK,CAAE,gBAAY,IACXkD,CAAAA,CAAQ,CAAG,KAAKhD,CADL,CAEXiD,CAAI,CAAGxI,CAAG,CAACmB,IAAJ,CAASsH,UAAT,CAAoBF,CAApB,CAFI,CAGXU,CAAG,WAAMC,CAAC,CAACC,GAAF,CAAMC,OAAZ,iBAA2BZ,CAAI,CAACa,UAAhC,yBAA0Db,CAAI,CAACc,cAA/D,CAHQ,CAIfC,MAAM,CAACC,IAAP,CAAYP,CAAZ,CAAiB,QAAjB,CACH,CANG,CADL,CAFH,CADQ,CAApB,CAeAtF,CAAK,CAACsB,MAAN,CAAe,KAAKzD,gBAApB,CACA,MAAOmC,CAAAA,CACV,CA1NK,CA4NN5B,4BA5NM,wCA4NyB,IACvB0H,CAAAA,CAAa,CAAG,EADO,CACHC,CAAS,CAAG,EADT,CAEvBC,CAAO,CAAG,CAFa,CAEVC,CAAW,CAAG,CAFJ,CAEOC,CAAI,CAAG,CAFd,CAEiBC,CAAS,CAAG,CAF7B,CAG3B,KAAK3I,IAAL,CAAUE,QAAV,CAAmB4B,OAAnB,CAA2B,SAAA8G,CAAO,CAAI,CAClCD,CAAS,CAA2B,GAAxB,EAAOC,CAAO,CAACC,KAA3B,CACAH,CAAI,CAAG,CAAQE,CAAO,CAACE,QAAhB,CAA6B,EAApC,CACAN,CAAO,EAAIE,CAAX,CACAD,CAAW,GACXH,CAAa,CAAClG,IAAd,CAAmB,CAAEgC,CAAC,CAAEuE,CAAL,CAAgBpF,CAAC,CAAEkF,CAAnB,CAAnB,EACAF,CAAS,CAACnG,IAAV,CAAe,CAAEgC,CAAC,CAAEuE,CAAL,CAAgBpF,CAAC,CAAEiF,CAAnB,CAAf,CACH,CAPD,EAQA,KAAKrI,uBAAL,CAA+B,CAC3B,CAAEoE,IAAI,CAAE,KAAKrF,OAAL,CAAa6J,gCAArB,CAAuDhG,KAAK,CAAE,CAA9D,CAAiE9D,IAAI,CAAEqJ,CAAvE,CAD2B,CAE3B,CAAE/D,IAAI,CAAE,KAAKrF,OAAL,CAAa8J,gCAArB,CAAuDjG,KAAK,CAAE,CAA9D,CAAiE9D,IAAI,CAAEsJ,CAAvE,CAF2B,CAIlC,CA3OK,CA6ON1H,qBA7OM,iCA6OkB,IAChBkE,CAAAA,CAAU,CAAG,EADG,CACCkE,CAAa,CAAG,EADjB,CACqBC,CAAW,CAAG,EADnC,CAEhBC,CAAU,CAAG,CAFG,CAEAC,CAAS,CAAG,KAAKpJ,IAAL,CAAUqJ,SAFtB,CAGpB,GAAI,KAAKrJ,IAAL,CAAUsH,UAAd,CAA0B,CACtB,KAAKtH,IAAL,CAAUsH,UAAV,CAAqBxF,OAArB,CAA6B,SAAAuF,CAAI,CAAI,CACjC8B,CAAU,CAA8B,GAA1B,EAAO9B,CAAI,CAACiC,UAAb,EAAyCjC,CAAI,CAACkC,QAA3D,CACAxE,CAAU,CAAC3C,IAAX,CAAgBiF,CAAI,CAACF,QAArB,EACA8B,CAAa,CAAC7G,IAAd,CAAmBiF,CAAI,CAACmC,kBAAxB,EACAN,CAAW,CAAC9G,IAAZ,CAAiB+G,CAAjB,CACH,CALD,EAMA,KAAK9I,gBAAL,CAAwB,CACpB,CAAEkE,IAAI,CAAE6E,CAAR,CAAmBnK,IAAI,CAAEiK,CAAzB,CADoB,CAEpB,CAAE3E,IAAI,CAAE,KAAKrF,OAAL,CAAauK,wBAArB,CAA+CxK,IAAI,CAAEgK,CAArD,CAFoB,CAAxB,CAIA,KAAK7I,sBAAL,CAA8B2E,CACjC,CACJ,CA7PK,CA+PN0B,8BA/PM,yCA+PyBkC,CA/PzB,CA+PoC,CACtC,GAAIe,CAAAA,CAAJ,CAASC,CAAT,CAAkBC,CAAlB,CAA4BC,CAA5B,CAAmCnB,CAAnC,CACA,GAAIxK,CAAM,CAAC4L,EAAP,CAAUC,IAAV,CAAe,KAAKzK,QAApB,CAAJ,CAAmC,CAC/BoK,CAAG,CAAGxL,CAAM,CAACyK,CAAD,CAAN,CAAkBmB,EAAlB,CAAqB,KAAKxK,QAA1B,CAAN,CACAqK,CAAO,CAAGD,CAAG,CAACM,GAAJ,EAAV,CACAJ,CAAQ,CAAGF,CAAG,CAACO,IAAJ,EAAX,CACAJ,CAAK,CAAGH,CAAG,CAACG,KAAJ,EAAR,CACAnB,CAAI,CAAGgB,CAAG,CAACzC,MAAJ,CAAW,UAAX,CACV,CAND,IAMO,CACH,GAAI6C,CAAAA,CAAE,CAAGI,IAAI,CAACC,cAAL,GAAsBC,eAAtB,GAAwCC,QAAjD,CACAX,CAAG,CAAI,GAAIY,CAAAA,IAAJ,CAAS3B,CAAT,CAAP,CACAgB,CAAO,CAAGD,CAAG,CAACa,MAAJ,EAAV,CACAX,CAAQ,CAAGF,CAAG,CAACc,OAAJ,EAAX,CACAX,CAAK,CAAGH,CAAG,CAACe,QAAJ,EAAR,CACA/B,CAAI,WAAMgB,CAAG,CAACgB,QAAJ,EAAN,aAAwBhB,CAAG,CAACiB,UAAJ,EAAxB,aAA4CjB,CAAG,CAACkB,UAAJ,EAA5C,cAAiEd,CAAjE,KACP,CACDH,CAAO,CAAG,KAAKzK,OAAL,CAAasD,KAAb,CAAmBqI,QAAnB,CAA4BlB,CAA5B,CAAV,CACAE,CAAK,CAAG,KAAK3K,OAAL,CAAasD,KAAb,CAAmBsI,WAAnB,CAA+BjB,CAA/B,CAAR,CACA,gBAAUF,CAAV,cAAsBE,CAAtB,aAA+BD,CAA/B,cAA4ClB,CAA5C,CACH,CAlRK,CAoRNhD,uBApRM,kCAoRkB1B,CApRlB,CAoRyB+G,CApRzB,CAoRoC,CACtC,GAAIjH,CAAAA,CAAM,CAAGE,CAAK,CAACF,MAAnB,CACIkH,CAAG,CAAiB,GAAd,GAAAD,CADV,CAEIE,CAAI,CAAGnH,CAAM,CAACkH,CAAG,CAAG,OAAH,CAAa,OAAjB,CAFjB,CAGA,MAAOC,CAAAA,CAAI,CAAClG,UAAL,CAAgBf,CAAK,CAACgH,CAAG,CAAG,GAAH,CAAS,GAAb,CAArB,CACV,CAzRK,CA2RNrE,8BA3RM,yCA2R0B3C,CA3R1B,CA2RiC,CACnC,GAAIpB,CAAAA,CAAI,CAAG,EAAX,CAAe1C,CAAf,CAAyBgL,CAAzB,CAA0CC,CAA1C,CAA2DC,CAA3D,CAAwE1C,CAAxE,CACA,GAAwB,CAApB,EAAA1E,CAAK,CAACqH,UAAV,CAA2B,CACvBnL,CAAQ,CAAG8D,CAAK,CAACT,CAAjB,CACA2H,CAAe,CAAgB,CAAZ,EAAAhL,CAAD,CAAkBrB,CAAG,CAACK,OAAJ,CAAY6G,YAA9B,CAA6ClH,CAAG,CAACK,OAAJ,CAAY2G,aAA3E,CACAsF,CAAe,CAAGnH,CAAK,CAACF,MAAN,CAAaS,IAA/B,CACA3B,CAAI,6BAAuBoB,CAAK,CAACsH,KAA7B,eAAuCH,CAAvC,yDACOjL,CADP,aACmBgL,CADnB,SAEP,CAND,IAMO,CACHE,CAAW,CAAGpH,CAAK,CAACF,MAAN,CAAaS,IAA3B,CACAmE,CAAI,CAAG7J,CAAG,CAAC0M,YAAJ,CAA2B,EAAV,CAAAvH,CAAK,CAACT,CAAvB,CAAP,CACAX,CAAI,6BAAuBoB,CAAK,CAACsH,KAA7B,eAAuCF,CAAvC,wDACM1C,CADN,SAEP,CACD,MAAO9F,CAAAA,CACV,CA1SK,CA4SNiF,uBA5SM,kCA4SmB7D,CA5SnB,CA4S0BqD,CA5S1B,CA4SgC,IAC9BmE,CAAAA,CAAU,CAAGxH,CAAK,CAACF,MAAN,CAAaS,IADI,CACE4E,CAAU,CAAG,CADf,CAE9BG,CAAU,EAAUjC,CAAI,CAACiC,UAFK,CAEQmC,CAAO,EAAUpE,CAAI,CAACoE,OAF9B,CAEwClC,CAAQ,EAAUlC,CAAI,CAACkC,QAF/D,CAGlCA,CAAQ,CAAG,KAAKmC,KAAL,CAAWnC,CAAX,EAAuBA,CAAvB,CAAkCA,CAAQ,CAACoC,OAAT,CAAiB,CAAjB,CAA7C,CACA,GAAwB,CAApB,EAAA3H,CAAK,CAACqH,UAAV,CAA2B,CACvBlC,CAAU,CAAG,KAAKuC,KAAL,CAAWpC,CAAX,EAAyBA,CAAzB,CAAsCA,CAAU,CAACqC,OAAX,CAAmB,CAAnB,CACtD,CAFD,IAEO,CACHxC,CAAU,CAAG,KAAKuC,KAAL,CAAWD,CAAX,EAAsBA,CAAtB,CAAgCA,CAAO,CAACE,OAAR,CAAgB,CAAhB,CAChD,CACD,kCAA2B3H,CAAK,CAACsH,KAAjC,eAA2CE,CAA3C,yDACerC,CADf,aAC6BI,CAD7B,SAEH,CAvTK,CAyTNpF,kBAzTM,8BAyTc,YACZ9B,CAAQ,CAAG,KAAKzC,UAAL,CAAgByC,QADf,CAEhBA,CAAQ,CAACP,OAAT,CAAiB,SAAAE,CAAO,CAAI,CACxBA,CAAO,CAACM,OAAR,CAAgBR,OAAhB,CAAwB,SAAA8J,CAAM,CAAI,CAC9BA,CAAM,CAACjH,QAAP,IACAiH,CAAM,CAACnH,MAAP,IACAmH,CAAM,CAACC,YAAP,CAAsB,CAAtB,CACA,GAAIC,CAAAA,CAAO,CAAG,CAAI,CAAC9L,IAAL,CAAU6B,GAAV,CAAcS,OAAd,aAA2BsJ,CAAM,CAACG,EAAlC,EAAd,CACA,GAAID,CAAJ,CAAa,CACTF,CAAM,CAACjH,QAAP,CAAkBmH,CAAO,CAACnH,QAA1B,CACAiH,CAAM,CAACnH,MAAP,CAAgBqH,CAAO,CAACrH,MAAxB,CACAmH,CAAM,CAACC,YAAP,CAAsBC,CAAO,CAACD,YACjC,CACJ,CAVD,CAWH,CAZD,EAcA,KAAKnM,cAAL,IACA,KAAKa,iBAAL,CAAyB8B,CAC5B,CA3UK,CA6UN2J,eA7UM,0BA6UU5M,CA7UV,CA6UiB,CACnB,gBAAU2I,CAAC,CAACC,GAAF,CAAMC,OAAhB,gCAA8C7I,CAA9C,WACH,CA/UK,CAiVN6M,iBAjVM,6BAiVa,CACf,gBAAU,KAAKjM,IAAL,CAAUqJ,SAApB,aAAiC,KAAKrJ,IAAL,CAAUkM,QAA3C,CACH,CAnVK,CAqVNC,YArVM,wBAqVQ,CACV,iBAAW,KAAKnM,IAAL,CAAUoM,QAArB,CACH,CAvVK,CAyVNC,WAzVM,uBAyVS,IACPN,CAAAA,CAAE,CAAG,KAAK/L,IAAL,CAAU+L,EADR,CAEPjE,CAAG,CAAGC,CAAC,CAACC,GAAF,CAAMC,OAAN,CAAgB,oBAAhB,CAAqC8D,CAArC,CAAwC,UAAxC,CAAmDlN,CAAG,CAACQ,QAFtD,CAGX+I,MAAM,CAACC,IAAP,CAAYP,CAAZ,CACH,CA7VK,CA+VNwE,uBA/VM,mCA+VoB,CACtB,gBAAU,KAAKtM,IAAL,CAAUuM,mBAApB,MACH,CAjWK,CAmWNC,oBAnWM,gCAmWgB,IACdhJ,CAAAA,CAAY,CAAG,KAAKtE,OAAL,CAAauE,aADd,CAEdgJ,CAAc,CAAG,KAAKvN,OAAL,CAAawN,eAFhB,CAGlB,GAA8B,CAA1B,OAAK1M,IAAL,CAAU6B,GAAV,CAAc8C,QAAlB,CAAiC,CAC7BnB,CAAY,CAAG,KAAKtE,OAAL,CAAasE,YAA5B,CACAiJ,CAAc,CAAG,KAAKvN,OAAL,CAAauN,cACjC,CACD,gBAAU,KAAKzM,IAAL,CAAU6B,GAAV,CAAc8C,QAAxB,aAAoCnB,CAApC,aAAoDiJ,CAApD,aAAsE,KAAKvN,OAAL,CAAayN,WAAnF,aAAkG,KAAK3M,IAAL,CAAU6B,GAAV,CAAcgD,KAAhH,CACH,CA3WK,CA6WN0G,YA7WM,uBA6WO7C,CA7WP,CA6Wa,CACfA,CAAI,EAAI,EAAR,CADe,GAEXkE,CAAAA,CAAC,CAAG,KAAK1N,OAAL,CAAa2N,WAFN,CAGXC,CAAC,CAAG,KAAK5N,OAAL,CAAa6N,aAHN,CAIXC,CAAC,CAAG,KAAK9N,OAAL,CAAa+N,aAJN,CAKXC,CAAK,CAAGC,IAAI,CAACC,KAAL,CAAW1E,CAAI,CAAG,IAAlB,CALG,CAMX2E,CAAO,CAAGF,IAAI,CAACC,KAAL,CAAY1E,CAAI,CAAG,IAAR,CAAgB,EAA3B,CANC,CAOX4E,CAAO,CAAGH,IAAI,CAACC,KAAL,CAAW1E,CAAI,CAAG,EAAlB,CAPC,CAQX9F,CARW,CASf,GAAa,CAAT,EAAAsK,CAAJ,CAAgB,CACZ,GAAe,CAAX,EAAAG,CAAJ,CAAkB,CACdzK,CAAI,WAAMsK,CAAN,SAAcN,CAAd,aAAmBS,CAAnB,SAA6BP,CAA7B,CACP,CAFD,IAEO,CACHlK,CAAI,WAAMsK,CAAN,SAAcN,CAAd,CACP,CACJ,CAND,IAMO,IAAgB,CAAX,EAAAS,CAAL,CAAoB,CACvB,GAAe,CAAX,EAAAC,CAAJ,CAAkB,CACd1K,CAAI,WAAMyK,CAAN,SAAgBP,CAAhB,aAAqBQ,CAArB,SAA+BN,CAA/B,CACP,CAFD,IAEO,CACHpK,CAAI,WAAMyK,CAAN,SAAgBP,CAAhB,CACP,CACJ,CANM,IAMA,CACHlK,CAAI,WAAM0K,CAAN,SAAgBN,CAAhB,CACP,CACD,MAAOpK,CAAAA,CACV,CAtYK,CAwYN2K,iBAxYM,6BAwYc,CAChB,GAAIC,CAAAA,CAAK,CAAG,KAAKxN,IAAL,CAAUyN,WAAtB,CACAD,CAAK,CAAClE,UAAN,EAA0BkE,CAAK,CAAClE,UAAhC,CACAkE,CAAK,CAACE,QAAN,EAAwBF,CAAK,CAACE,QAA9B,CAHgB,GAIZC,CAAAA,CAAa,CAAG,KAAKjC,KAAL,CAAW8B,CAAK,CAAClE,UAAjB,EAA+BkE,CAAK,CAAClE,UAArC,CAAkDkE,CAAK,CAAClE,UAAN,CAAiBqC,OAAjB,CAAyB,CAAzB,CAJtD,CAKZiC,CAAS,CAAG,KAAKlC,KAAL,CAAW8B,CAAK,CAACE,QAAjB,EAA6BF,CAAK,CAACE,QAAnC,CAA8CF,CAAK,CAACE,QAAN,CAAe/B,OAAf,CAAuB,CAAvB,CAL9C,CAMhB,gBAAUgC,CAAV,aAA2BC,CAA3B,CACH,CA/YK,CAiZNC,qBAjZM,gCAiZgB/H,CAjZhB,CAiZuB,CACzB,KAAKpG,cAAL,CAAsBoG,CACzB,CAnZK,CAqZN4F,KArZM,gBAqZAoC,CArZA,CAqZG,CACL,MAAiB,EAAV,EAAAA,CAAC,CAAG,CACd,CAvZK,CAyZNC,eAzZM,0BAyZUvL,CAzZV,CAyZiB,CACnB,GAAInB,CAAAA,CAAQ,CAAG,EAAf,CACA,GAAa,gBAAT,EAAAmB,CAAJ,CAA+B,CAC3BnB,CAAQ,CAACe,IAAT,CAAc,CACVd,KAAK,CAAE,KAAKpC,OAAL,CAAa8O,yBADV,CAEVxM,WAAW,CAAE,KAAKtC,OAAL,CAAa+O,kCAFhB,CAAd,EAIA5M,CAAQ,CAACe,IAAT,CAAc,CACVZ,WAAW,CAAE,KAAKtC,OAAL,CAAagP,kCADhB,CAAd,EAGA7M,CAAQ,CAACe,IAAT,CAAc,CACVZ,WAAW,CAAE,KAAKtC,OAAL,CAAaiP,kCADhB,CAAd,CAGH,CAXD,IAWO,IAAa,eAAT,EAAA3L,CAAJ,CAA8B,CACjCnB,CAAQ,CAACe,IAAT,CAAc,CACVd,KAAK,CAAE,KAAKpC,OAAL,CAAakP,wBADV,CAEV5M,WAAW,CAAE,KAAKtC,OAAL,CAAamP,iCAFhB,CAAd,EAIAhN,CAAQ,CAACe,IAAT,CAAc,CACVZ,WAAW,CAAE,KAAKtC,OAAL,CAAaoP,iCADhB,CAAd,CAGH,CARM,IAQA,IAAa,oBAAT,EAAA9L,CAAJ,CAAmC,CACtCnB,CAAQ,CAACe,IAAT,CAAc,CACVd,KAAK,CAAE,KAAKpC,OAAL,CAAaqP,6BADV,CAEV/M,WAAW,CAAE,KAAKtC,OAAL,CAAasP,sCAFhB,CAAd,EAIAnN,CAAQ,CAACe,IAAT,CAAc,CACVZ,WAAW,CAAE,KAAKtC,OAAL,CAAauP,sCADhB,CAAd,EAGApN,CAAQ,CAACe,IAAT,CAAc,CACVZ,WAAW,CAAE,KAAKtC,OAAL,CAAawP,sCADhB,CAAd,CAGH,CAXM,IAWA,IAAa,aAAT,EAAAlM,CAAJ,CAA4B,CAC/BnB,CAAQ,CAACe,IAAT,CAAc,CACVd,KAAK,CAAE,KAAKpC,OAAL,CAAayP,sBADV,CAEVnN,WAAW,CAAE,KAAKtC,OAAL,CAAa0P,+BAFhB,CAAd,EAIAvN,CAAQ,CAACe,IAAT,CAAc,CACVZ,WAAW,CAAE,KAAKtC,OAAL,CAAa2P,+BADhB,CAAd,EAGAxN,CAAQ,CAACe,IAAT,CAAc,CACVZ,WAAW,CAAE,KAAKtC,OAAL,CAAa4P,+BADhB,CAAd,CAGH,CACD,KAAKrO,aAAL,CAAqBY,CAArB,CACA,GAAI,KAAKZ,aAAL,CAAmBsO,MAAvB,CAA+B,CAC3B,KAAKvO,WAAL,GACH,CACJ,CAzcK,CA2cNwO,kBA3cM,6BA2cclJ,CA3cd,CA2cqB,CACvB,KAAKtF,WAAL,CAAmBsF,CACtB,CA7cK,CA+cNmJ,YA/cM,wBA+cQ,CACV,GAAIC,CAAAA,CAAW,WAAM,KAAKhQ,OAAL,CAAaiQ,kBAAnB,aAAyC,KAAK7P,QAA9C,CAAf,CACA,MAAO4P,CAAAA,CACV,CAldK,CAzCI,CAAR,CA+fb,CAEM,CAGV,CA1hBC,CAAN","sourcesContent":["define([\"local_fliplearning/vue\",\r\n \"local_fliplearning/vuetify\",\r\n \"local_fliplearning/axios\",\r\n \"local_fliplearning/moment\",\r\n \"local_fliplearning/momenttimezone\",\r\n \"local_fliplearning/pagination\",\r\n \"local_fliplearning/chartstatic\",\r\n \"local_fliplearning/pageheader\",\r\n \"local_fliplearning/modulesform\",\r\n \"local_fliplearning/helpdialog\",\r\n ],\r\n function(Vue, Vuetify, Axios, Moment, MomentTimezone, Pagination, ChartStatic, PageHeader, ModulesForm, HelpDialog) {\r\n \"use strict\";\r\n\r\n function init(content) {\r\n // console.log(content);\r\n Vue.use(Vuetify);\r\n Vue.component('pagination', Pagination);\r\n Vue.component('chart', ChartStatic);\r\n Vue.component('pageheader', PageHeader);\r\n Vue.component('modulesform', ModulesForm);\r\n Vue.component('helpdialog', HelpDialog);\r\n let vue = new Vue({\r\n delimiters: [\"[[\", \"]]\"],\r\n el: \"#student\",\r\n vuetify: new Vuetify(),\r\n data() {\r\n return {\r\n strings : content.strings,\r\n groups : content.groups,\r\n userid : content.userid,\r\n courseid : content.courseid,\r\n timezone : content.timezone,\r\n render_has : content.profile_render,\r\n loading : false,\r\n modules_dialog: false,\r\n errors : [],\r\n\r\n indicators: content.indicators,\r\n modules_access_colors: content.modules_access_colors,\r\n sessions_evolution_colors: content.sessions_evolution_colors,\r\n user_grades_colors: content.user_grades_colors,\r\n user: content.indicators.user,\r\n weeks_sessions: content.indicators.sessions,\r\n sessions_evolution_data: [],\r\n user_grades_categories: [],\r\n user_grades_data: [],\r\n course_grades_data: [],\r\n selected_sections: [],\r\n\r\n help_dialog: false,\r\n help_contents: [],\r\n }\r\n },\r\n beforeMount(){\r\n this.set_modules_in_sections();\r\n this.calculate_sessions_evolution();\r\n this.calculate_user_grades()\r\n },\r\n mounted(){\r\n document.querySelector(\"#sessions-loader\").style.display = \"none\";\r\n document.querySelector(\"#student\").style.display = \"block\";\r\n },\r\n methods : {\r\n get_help_content(){\r\n let contents = [];\r\n contents.push({\r\n title: this.strings.section_help_title,\r\n description: this.strings.section_help_description,\r\n });\r\n return contents;\r\n },\r\n\r\n set_modules_in_sections() {\r\n let sectionsMap = new Map();\r\n let sectionid = 0;\r\n this.indicators.cms.forEach(cm => {\r\n sectionid = Number(cm.section);\r\n if (!sectionsMap.has(sectionid)) {\r\n sectionsMap.set(sectionid, [cm]);\r\n } else {\r\n sectionsMap.get(sectionid).push(cm);\r\n }\r\n });\r\n this.indicators.sections.forEach(section => {\r\n sectionid = Number(section.sectionid);\r\n section.sectionid = sectionid;\r\n section.modules = (sectionsMap.has(sectionid)) ? sectionsMap.get(sectionid) : [];\r\n });\r\n },\r\n\r\n build_modules_access_chart() {\r\n let chart = new Object();\r\n chart.chart = {\r\n type: 'bar',\r\n backgroundColor: null,\r\n style: {fontFamily: 'poppins'},\r\n };\r\n chart.title = {text: null};\r\n chart.colors = this.modules_access_colors,\r\n chart.xAxis = {\r\n type: 'category',\r\n };\r\n chart.yAxis = {\r\n allowDecimals: false,\r\n title: {\r\n enabled: true,\r\n text: this.strings.modules_amount,\r\n }\r\n };\r\n chart.tooltip = {\r\n shared: true,\r\n formatter: function () {\r\n let module_text = (this.y == 1) ? vue.strings.module_label : vue.strings.modules_label;\r\n return '<b>' + this.points[0].key + '</b>: ' + this.y + ' ' + module_text + '<br/>'\r\n + '<i>'+ vue.strings.modules_details + '<i/>';\r\n }\r\n };\r\n chart.plotOptions = {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: function () {\r\n vue.open_modules_modal(this.x);\r\n }\r\n }\r\n }\r\n }\r\n },\r\n chart.legend = {\r\n enabled: false\r\n };\r\n chart.series = [{\r\n colorByPoint: true,\r\n data: [\r\n {name: this.strings.modules_access_chart_series_viewed, y: this.user.cms.viewed},\r\n {name: this.strings.modules_access_chart_series_complete, y: this.user.cms.complete},\r\n {name: this.strings.modules_access_chart_series_total, y: this.user.cms.total}\r\n ]\r\n }];\r\n return chart;\r\n },\r\n\r\n build_weeks_session_chart() {\r\n let chart = new Object();\r\n chart.title = {text: null};\r\n chart.chart = {\r\n type: 'heatmap',\r\n backgroundColor: null,\r\n style: {fontFamily: 'poppins'},\r\n };\r\n chart.xAxis = {\r\n categories: this.strings.weeks,\r\n };\r\n chart.yAxis = {\r\n categories: this.weeks_sessions.categories,\r\n title: null,\r\n reversed: true,\r\n };\r\n chart.colorAxis = {\r\n min: 0,\r\n minColor: '#E0E0E0',\r\n maxColor: '#118AB2'\r\n };\r\n chart.legend = {\r\n layout: 'horizontal',\r\n verticalAlign: 'bottom',\r\n };\r\n chart.tooltip = {\r\n formatter: function () {\r\n let days = vue.weeks_sessions.weeks[this.point.y][this.point.x] || '';\r\n let xCategoryName = vue.get_point_category_name(this.point, 'x');\r\n let yCategoryName = vue.get_point_category_name(this.point, 'y');\r\n let label = vue.strings.sessions_text;\r\n if (this.point.value == 1) {\r\n label = vue.strings.session_text;;\r\n }\r\n return '<b>' + yCategoryName + ' ' + xCategoryName + '</b>: '\r\n + this.point.value +' ' + label + '<br/>' + days;\r\n }\r\n };\r\n chart.series = [{\r\n borderWidth: 2,\r\n borderColor: '#FAFAFA',\r\n data: this.weeks_sessions.data,\r\n }];\r\n return chart;\r\n },\r\n\r\n build_sessions_evolution_chart() {\r\n let chart = new Object();\r\n chart.chart = {\r\n zoomType: 'x',\r\n backgroundColor: null,\r\n style: {fontFamily: 'poppins'},\r\n };\r\n chart.title = {text: null};\r\n chart.colors = this.sessions_evolution_colors,\r\n chart.xAxis = {\r\n type: 'datetime'\r\n };\r\n chart.yAxis = [{\r\n allowDecimals: false,\r\n title: { text: this.strings.sessions_evolution_chart_xaxis1 }\r\n }, {\r\n title: { text: this.strings.sessions_evolution_chart_xaxis2 },\r\n opposite: true\r\n }];\r\n chart.tooltip = {\r\n shared: true,\r\n useHTML: true,\r\n formatter: function () {\r\n let date_label = vue.calculate_timezone_date_string(this.x);\r\n let text1 = (this.points[0]) ? vue.get_sessions_evolution_tooltip(this.points[0]) : '';\r\n let text2 = (this.points[1]) ? vue.get_sessions_evolution_tooltip(this.points[1]) : '';\r\n return `<small>${date_label}</small><br/>${text1}${text2}`;\r\n }\r\n };\r\n chart.series = this.sessions_evolution_data;\r\n return chart;\r\n },\r\n\r\n build_user_grades_chart() {\r\n let chart = new Object();\r\n chart.chart = {\r\n type: 'column',\r\n backgroundColor: null,\r\n style: {fontFamily: 'poppins'},\r\n };\r\n chart.title = {text: null};\r\n chart.colors = this.user_grades_colors,\r\n chart.xAxis = {\r\n crosshair: true,\r\n categories: this.user_grades_categories,\r\n };\r\n chart.yAxis = {\r\n allowDecimals: false,\r\n max: 100,\r\n labels: {\r\n format: '{value} %',\r\n },\r\n title: { text: this.strings.user_grades_chart_yaxis }\r\n };\r\n chart.tooltip = {\r\n shared: true,\r\n useHTML: true,\r\n formatter: function () {\r\n let itemname = this.x;\r\n let position = this.points[0].point.x;\r\n let item = vue.user.gradeitems[position];\r\n let header = `<small>${itemname}</small><br/>`;\r\n let footer = `<i>(${vue.strings.user_grades_chart_view_activity})</i><br/>`;\r\n let body = '';\r\n if (item.gradecount == 0) {\r\n body = vue.strings.user_grades_chart_tooltip_no_graded;\r\n } else {\r\n let text1 = (this.points[0]) ? vue.get_user_grades_tooltip(this.points[0], item) : '';\r\n let text2 = (this.points[1]) ? vue.get_user_grades_tooltip(this.points[1], item) : '';\r\n body = `${text1}${text2}${footer}`;\r\n }\r\n return `${header}${body}`;\r\n }\r\n };\r\n chart.plotOptions = {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: function () {\r\n let position = this.x;\r\n let item = vue.user.gradeitems[position];\r\n let url = `${M.cfg.wwwroot}/mod/${item.itemmodule}/view.php?id=${item.coursemoduleid}`;\r\n window.open(url, '_blank');\r\n }\r\n }\r\n }\r\n }\r\n };\r\n chart.series = this.user_grades_data;\r\n return chart;\r\n },\r\n\r\n calculate_sessions_evolution() {\r\n let sessions_data = [], time_data = [];\r\n let sumtime = 0, sumsessions = 0, time = 0, timestamp = 0;\r\n this.user.sessions.forEach(session => {\r\n timestamp = Number(session.start) * 1000;\r\n time = (Number(session.duration)) / 60;\r\n sumtime += time;\r\n sumsessions++;\r\n sessions_data.push({ x: timestamp, y: sumsessions });\r\n time_data.push({ x: timestamp, y: sumtime });\r\n });\r\n this.sessions_evolution_data = [\r\n { name: this.strings.sessions_evolution_chart_legend1, yAxis: 0, data: sessions_data },\r\n { name: this.strings.sessions_evolution_chart_legend2, yAxis: 1, data: time_data },\r\n ];\r\n },\r\n\r\n calculate_user_grades() {\r\n let categories = [], course_grades = [], user_grades = [];\r\n let user_grade = 0, user_name = this.user.firstname;\r\n if (this.user.gradeitems) {\r\n this.user.gradeitems.forEach(item => {\r\n user_grade = (Number(item.finalgrade) * 100) / Number(item.grademax);\r\n categories.push(item.itemname);\r\n course_grades.push(item.average_percentage);\r\n user_grades.push(user_grade);\r\n });\r\n this.user_grades_data = [\r\n { name: user_name, data: user_grades },\r\n { name: this.strings.user_grades_chart_legend, data: course_grades },\r\n ];\r\n this.user_grades_categories = categories;\r\n }\r\n },\r\n\r\n calculate_timezone_date_string(timestamp) {\r\n let dat, weekday, monthday, month, time;\r\n if (Moment.tz.zone(this.timezone)) {\r\n dat = Moment(timestamp).tz(this.timezone);\r\n weekday = dat.day();\r\n monthday = dat.date();\r\n month = dat.month();\r\n time = dat.format('HH:mm:ss');\r\n } else {\r\n let tz = Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n dat = new Date(timestamp);\r\n weekday = dat.getDay();\r\n monthday = dat.getDate();\r\n month = dat.getMonth();\r\n time = `${dat.getHours()}:${dat.getMinutes()}:${dat.getSeconds()} (${tz})`;\r\n }\r\n weekday = this.strings.chart.weekdays[weekday];\r\n month = this.strings.chart.shortMonths[month];\r\n return `${weekday}, ${month} ${monthday}, ${time}`;\r\n },\r\n\r\n get_point_category_name(point, dimension) {\r\n let series = point.series,\r\n isY = dimension === 'y',\r\n axis = series[isY ? 'yAxis' : 'xAxis'];\r\n return axis.categories[point[isY ? 'y' : 'x']];\r\n },\r\n\r\n get_sessions_evolution_tooltip (point) {\r\n let text = '', sessions, sessions_suffix, sessions_prefix, time_prefix, time;\r\n if (point.colorIndex == 0) {\r\n sessions = point.y;\r\n sessions_suffix = (sessions == 1) ? vue.strings.session_text : vue.strings.sessions_text;\r\n sessions_prefix = point.series.name;\r\n text = `<b style=\"color: ${point.color}\">${sessions_prefix}: </b>\r\n ${sessions} ${sessions_suffix}<br/>`;\r\n } else {\r\n time_prefix = point.series.name;\r\n time = vue.convert_time(point.y * 60);\r\n text = `<b style=\"color: ${point.color}\">${time_prefix}: </b>\r\n ${time}<br/>`;\r\n }\r\n return text;\r\n },\r\n\r\n get_user_grades_tooltip (point, item) {\r\n let serie_name = point.series.name, user_grade = 0;\r\n let finalgrade = Number(item.finalgrade), average = Number(item.average), grademax = Number(item.grademax);\r\n grademax = this.isInt(grademax) ? grademax : grademax.toFixed(2);\r\n if (point.colorIndex == 0) {\r\n user_grade = this.isInt(finalgrade) ? finalgrade : finalgrade.toFixed(2);\r\n } else {\r\n user_grade = this.isInt(average) ? average : average.toFixed(2);\r\n }\r\n return `<b style=\"color: ${point.color}\">${serie_name}: </b>\r\n ${user_grade}/${grademax}<br/>`;\r\n },\r\n\r\n open_modules_modal(){\r\n let sections = this.indicators.sections;\r\n sections.forEach(section => {\r\n section.modules.forEach(module => {\r\n module.complete = false;\r\n module.viewed = false;\r\n module.interactions = 0;\r\n let user_cm = this.user.cms.modules[`cm${module.id}`];\r\n if (user_cm) {\r\n module.complete = user_cm.complete;\r\n module.viewed = user_cm.viewed;\r\n module.interactions = user_cm.interactions;\r\n }\r\n });\r\n });\r\n\r\n this.modules_dialog = true;\r\n this.selected_sections = sections;\r\n },\r\n\r\n get_picture_url(userid){\r\n return `${M.cfg.wwwroot}/user/pix.php?file=/${userid}/f1.jpg`;\r\n },\r\n\r\n get_user_fullname(){\r\n return `${this.user.firstname} ${this.user.lastname}`;\r\n },\r\n\r\n get_username(){\r\n return `@${this.user.username}`;\r\n },\r\n\r\n see_profile () {\r\n let id = this.user.id;\r\n let url = M.cfg.wwwroot + '/user/view.php?id='+id+'&course='+vue.courseid;\r\n window.open(url);\r\n },\r\n\r\n get_progress_percentage() {\r\n return `${this.user.progress_percentage} %`;\r\n },\r\n\r\n get_progress_message(){\r\n let module_label = this.strings.modules_label;\r\n let finished_label = this.strings.finisheds_label;\r\n if (this.user.cms.complete == 1) {\r\n module_label = this.strings.module_label;\r\n finished_label = this.strings.finished_label;\r\n }\r\n return `${this.user.cms.complete} ${module_label} ${finished_label} ${this.strings.of_conector} ${this.user.cms.total}`;\r\n },\r\n\r\n convert_time(time) {\r\n time *= 60; // pasar los minutos a segundos\r\n let h = this.strings.hours_short;\r\n let m = this.strings.minutes_short;\r\n let s = this.strings.seconds_short;\r\n let hours = Math.floor(time / 3600);\r\n let minutes = Math.floor((time % 3600) / 60);\r\n let seconds = Math.floor(time % 60);\r\n let text;\r\n if (hours >= 1) {\r\n if (minutes >= 1) {\r\n text = `${hours}${h} ${minutes}${m}`;\r\n } else {\r\n text = `${hours}${h}`;\r\n }\r\n } else if ((minutes >= 1)) {\r\n if (seconds >= 1) {\r\n text = `${minutes}${m} ${seconds}${s}`;\r\n } else {\r\n text = `${minutes}${m}`;\r\n }\r\n } else {\r\n text = `${seconds}${s}`;\r\n }\r\n return text;\r\n },\r\n\r\n get_student_grade() {\r\n let grade = this.user.coursegrade;\r\n grade.finalgrade = Number(grade.finalgrade);\r\n grade.maxgrade = Number(grade.maxgrade);\r\n let student_grade = this.isInt(grade.finalgrade) ? grade.finalgrade : grade.finalgrade.toFixed(2);\r\n let max_grade = this.isInt(grade.maxgrade) ? grade.maxgrade : grade.maxgrade.toFixed(2);\r\n return `${student_grade}/${max_grade}`;\r\n },\r\n\r\n update_modules_dialog(value) {\r\n this.modules_dialog = value;\r\n },\r\n\r\n isInt(n) {\r\n return n % 1 === 0;\r\n },\r\n\r\n open_chart_help(chart) {\r\n let contents = [];\r\n if (chart == \"modules_access\") {\r\n contents.push({\r\n title: this.strings.modules_access_help_title,\r\n description: this.strings.modules_access_help_description_p1,\r\n });\r\n contents.push({\r\n description: this.strings.modules_access_help_description_p2,\r\n });\r\n contents.push({\r\n description: this.strings.modules_access_help_description_p3,\r\n });\r\n } else if (chart == \"weeks_session\") {\r\n contents.push({\r\n title: this.strings.weeks_session_help_title,\r\n description: this.strings.weeks_session_help_description_p1,\r\n });\r\n contents.push({\r\n description: this.strings.weeks_session_help_description_p2,\r\n });\r\n } else if (chart == \"sessions_evolution\") {\r\n contents.push({\r\n title: this.strings.sessions_evolution_help_title,\r\n description: this.strings.sessions_evolution_help_description_p1,\r\n });\r\n contents.push({\r\n description: this.strings.sessions_evolution_help_description_p2,\r\n });\r\n contents.push({\r\n description: this.strings.sessions_evolution_help_description_p3,\r\n });\r\n } else if (chart == \"user_grades\") {\r\n contents.push({\r\n title: this.strings.user_grades_help_title,\r\n description: this.strings.user_grades_help_description_p1,\r\n });\r\n contents.push({\r\n description: this.strings.user_grades_help_description_p2,\r\n });\r\n contents.push({\r\n description: this.strings.user_grades_help_description_p3,\r\n });\r\n }\r\n this.help_contents = contents;\r\n if (this.help_contents.length) {\r\n this.help_dialog = true;\r\n }\r\n },\r\n\r\n update_help_dialog (value) {\r\n this.help_dialog = value;\r\n },\r\n\r\n get_timezone(){\r\n let information = `${this.strings.ss_change_timezone} ${this.timezone}`\r\n return information;\r\n },\r\n\r\n }\r\n })\r\n }\r\n\r\n return {\r\n init : init\r\n };\r\n });"],"file":"student.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/student_sessions.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/student_sessions.min.js new file mode 100644 index 0000000000000000000000000000000000000000..2a4964ef546750439feb4a04de5764da63a47945 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/student_sessions.min.js @@ -0,0 +1,2 @@ +define(["local_fliplearning/vue","local_fliplearning/vuetify","local_fliplearning/axios","local_fliplearning/moment","local_fliplearning/pagination","local_fliplearning/chartstatic","local_fliplearning/pageheader","local_fliplearning/modulesform","local_fliplearning/helpdialog"],function(e,s,t,i,o,r,n,c,a){"use strict";return{init:function(i){e.use(s),e.component("pagination",o),e.component("chart",r),e.component("pageheader",n),e.component("modulesform",c),e.component("helpdialog",a);let l=new e({delimiters:["[[","]]"],el:"#work_sessions",vuetify:new s,data:()=>({strings:i.strings,groups:i.groups,userid:i.userid,courseid:i.courseid,timezone:i.timezone,render_has:i.profile_render,loading:!1,errors:[],pages:i.pages,indicators:i.indicators,resources_access_colors:i.resources_access_colors,inverted_time_colors:i.inverted_time_colors,inverted_time:i.indicators.inverted_time,hours_sessions:i.indicators.hours_sessions,sections:i.indicators.sections,sections_map:null,week_progress:0,resource_access_categories:[],resource_access_data:[],modules_dialog:!1,help_dialog:!1,help_contents:[]}),beforeMount(){this.create_section_map(),this.set_modules_in_sections(),this.calculate_resources_access()},mounted(){document.querySelector("#sessions-loader").style.display="none",document.querySelector("#work_sessions").style.display="block",setTimeout(function(){l.setGraphicsEventListeners()})},methods:{get_help_content(){let e=[];return e.push({title:this.strings.section_help_title,description:this.strings.section_help_description}),e},build_inverted_time_chart(){let e=new Object;return e.chart={type:"bar",backgroundColor:null,style:{fontFamily:"poppins"}},e.title={text:null},e.colors=this.inverted_time_colors,e.xAxis={type:"category",crosshair:!0},e.yAxis={title:{text:this.strings.inverted_time_chart_x_axis}},e.tooltip={shared:!0,useHTML:!0,formatter:function(){return`<b>${this.points[0].key}: </b>${l.convert_time(this.y)}`}},e.legend={enabled:!1},e.series=[{colorByPoint:!0,data:this.inverted_time.data}],e},build_hours_session_chart(){let e=new Object;return e.title={text:null},e.chart={type:"heatmap",backgroundColor:null,style:{fontFamily:"poppins"}},e.xAxis={categories:this.strings.days},e.yAxis={categories:this.strings.hours,title:null,reversed:!0},e.colorAxis={min:0,minColor:"#E0E0E0",maxColor:"#118AB2"},e.legend={layout:"horizontal",verticalAlign:"bottom"},e.tooltip={formatter:function(){let e=l.get_point_category_name(this.point,"x"),s=l.get_point_category_name(this.point,"y"),t=l.strings.sessions_text;return 1==this.point.value&&(t=l.strings.session_text),"<b>"+e+" "+s+"</b>: "+this.point.value+" "+t}},e.series=[{borderWidth:2,borderColor:"#FAFAFA",data:this.hours_sessions}],e},build_resources_access_chart(){let e=new Object;return e.chart={type:"column",backgroundColor:null,style:{fontFamily:"poppins"}},e.title={text:null},e.colors=this.resources_access_colors,e.xAxis={categories:this.resource_access_categories,crosshair:!0,title:{text:this.strings.resource_access_x_axis}},e.yAxis={min:0,title:{text:this.strings.resource_access_y_axis}},e.plotOptions={column:{stacking:"normal"},series:{cursor:"pointer",point:{events:{click:function(){l.addLogsIntoDB("viewed","resources_access","chart_details","Provide details informations about the consulted resources"),l.modules_dialog=!0}}}}},e.tooltip={shared:!0,useHTML:!0,footerFormat:`<i>${this.strings.modules_details}</i>`},e.series=this.resource_access_data,e},update_interactions(e){this.loading=!0,this.errors=[];let s={action:"studentsessions",userid:this.userid,courseid:this.courseid,weekcode:e.weekcode,profile:this.render_has};return t({method:"get",url:M.cfg.wwwroot+"/local/fliplearning/ajax.php",params:s}).then(e=>{200==e.status&&e.data.ok?(this.inverted_time=e.data.data.indicators.inverted_time,this.hours_sessions=e.data.data.indicators.hours_sessions,this.sections=e.data.data.indicators.sections,this.set_modules_in_sections(),this.calculate_resources_access()):this.error_messages.push(this.strings.error_network)}).catch(e=>{this.errors.push(this.strings.api_error_network)}).finally(()=>{this.loading=!1,l.addLogsIntoDB("viewed","week_"+e.weekcode,"week_section","Week section that allows you to obtain information on a specific week"),l.setGraphicsEventListeners()}),this.data},create_section_map(){let e=new Map,s=0;this.indicators.course_cms.forEach(t=>{s=Number(t.section),e.has(s)?e.get(s).push(t):e.set(s,[t])}),this.sections_map=e},set_modules_in_sections(){let e;this.sections.forEach(s=>{e=Number(s.sectionid),s.sectionid=e,s.modules=this.sections_map.has(e)?this.sections_map.get(e):[]})},calculate_resources_access(){let e,s,t,i=new Map,o=0,r=0,n=this.strings.modules_names;this.sections.forEach(n=>{n.modules.forEach(n=>{!i.has(n.modname)&&i.set(n.modname,{complete:0,pending:0}),t=i.get(n.modname),e=Number(n.id),n.id=e,n.complete=!1,n.viewed=!1,n.interactions=0,(s=this.indicators.user_cms[`cm${n.id}`])?(n.complete=s.complete,n.viewed=s.viewed,n.interactions=s.interactions,s.complete?t.complete++:t.pending++,s.complete&&r++):t.pending++,o++})});let c=[],a=[],l=[];i.forEach(function(e,s){c.push(n[s]||s),a.push(e.complete),l.push(e.pending)}),this.resource_access_categories=c,this.resource_access_data=[{name:this.strings.resource_access_legend1,data:a},{name:this.strings.resource_access_legend2,data:l}],this.week_progress=Math.floor(100*r/o)||0},get_progress_percentage(){return`${this.week_progress} %`},get_point_category_name(e,s){let t="y"===s;return e.series[t?"yAxis":"xAxis"].categories[e[t?"y":"x"]]},get_module_icon:e=>`${M.cfg.wwwroot}/theme/image.php/boost/${e}/1/icon`,get_module_url:e=>`${M.cfg.wwwroot}/mod/${e.modname}/view.php?id=${e.id}`,get_interactions_number(e){return`(${e} ${1==e?this.strings.modules_interaction:this.strings.modules_interactions})`},convert_time(e){e*=3600;let s,t=this.strings.hours_short,i=this.strings.minutes_short,o=this.strings.seconds_short,r=Math.floor(e/3600),n=Math.floor(e%3600/60),c=Math.floor(e%60);return s=r>=1?n>=1?`${r}${t} ${n}${i}`:`${r}${t}`:n>=1?c>=1?`${n}${i} ${c}${o}`:`${n}${i}`:`${c}${o}`},update_modules_dialog(e){this.modules_dialog=e},open_chart_help(e){let s=[],t="",i="",o="",r="";"inverted_time"==e?(s.push({title:this.strings.inverted_time_help_title,description:this.strings.inverted_time_help_description_p1}),s.push({description:this.strings.inverted_time_help_description_p2}),t="viewed",i="help",o="invested_time",r="Help section that provides information about the invested time chart",this.addLogsIntoDB(t,o,i,r)):"hours_session"==e?(s.push({title:this.strings.hours_session_help_title,description:this.strings.hours_session_help_description_p1}),s.push({description:this.strings.hours_session_help_description_p2}),t="viewed",i="help",o="hours_session",r="Help section that provides information about the hours session chart",this.addLogsIntoDB(t,o,i,r)):"resources_access"==e&&(s.push({title:this.strings.resources_access_help_title,description:this.strings.resources_access_help_description_p1}),s.push({description:this.strings.resources_access_help_description_p2}),s.push({description:this.strings.resources_access_help_description_p3}),t="viewed",i="help",o="resources_access",r="Help section that provides information about the resources access chart",this.addLogsIntoDB(t,o,i,r)),this.help_contents=s,this.help_contents.length&&(this.help_dialog=!0)},update_help_dialog(e){this.help_dialog=e},get_timezone(){return`${this.strings.ss_change_timezone} ${this.timezone}`},setGraphicsEventListeners(){let e=document.querySelectorAll(".highcharts-container");e.length<1?setTimeout(l.setGraphicsEventListeners,500):(e[0].id="inverted_time",e[1].id="hours_session",e[2].id="resources_access",e.forEach(e=>{e.addEventListener("mouseenter",l.addLogsViewGraphic)}))},addLogsViewGraphic(e){event.stopPropagation();var s="",t="",i="",o="";switch(e.target.id){case"inverted_time":s="viewed",t="invested_time",i="chart",o="Bar chart that shows";break;case"hours_session":s="viewed",t="hours_session",i="chart",o="Chart showing";break;case"resources_access":s="viewed",t="resources_access",i="chart",o="Chart showing "}l.addLogsIntoDB(s,t,i,o)},addLogsIntoDB(e,s,o,r){let n={courseid:i.courseid,userid:i.userid,action:"addLogs",sectionname:"STUDENT_STUDY_SESSIONS",actiontype:e,objectType:o,objectName:s,currentUrl:document.location.href,objectDescription:r};t({method:"get",url:M.cfg.wwwroot+"/local/fliplearning/ajax.php",params:n}).then(e=>{200==e.status&&e.data.ok}).catch(e=>{})}}})}}}); +//# sourceMappingURL=student_sessions.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/student_sessions.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/student_sessions.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..8a79dae0d81aebe281f0d4a0362e92efabe7265c --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/student_sessions.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/student_sessions.js"],"names":["define","Vue","Vuetify","Axios","Moment","Pagination","ChartStatic","PageHeader","ModulesForm","HelpDialog","init","content","use","component","vue","delimiters","el","vuetify","data","strings","groups","userid","courseid","timezone","render_has","profile_render","loading","errors","pages","indicators","resources_access_colors","inverted_time_colors","inverted_time","hours_sessions","sections","sections_map","week_progress","resource_access_categories","resource_access_data","modules_dialog","help_dialog","help_contents","beforeMount","create_section_map","set_modules_in_sections","calculate_resources_access","mounted","document","querySelector","style","display","methods","get_help_content","contents","title","section_help_title","description","section_help_description","build_inverted_time_chart","chart","type","backgroundColor","fontFamily","text","colors","xAxis","crosshair","yAxis","inverted_time_chart_x_axis","tooltip","shared","useHTML","formatter","category_name","points","key","time","convert_time","y","legend","enabled","series","colorByPoint","build_hours_session_chart","categories","days","hours","reversed","colorAxis","min","minColor","maxColor","layout","verticalAlign","xCategoryName","get_point_category_name","point","yCategoryName","label","sessions_text","value","session_text","borderWidth","borderColor","build_resources_access_chart","resource_access_x_axis","resource_access_y_axis","plotOptions","column","stacking","cursor","events","click","footerFormat","modules_details","update_interactions","week","action","weekcode","profile","method","url","M","cfg","wwwroot","params","then","response","status","ok","error_messages","push","error_network","catch","e","console","log","api_error_network","finally","sectionsMap","Map","sectionid","course_cms","forEach","cm","section","has","set","get","modules","modulesMap","moduleid","user_cm","mod","total_modules","access_modules","modules_names","module","modname","complete","pending","id","viewed","interactions","user_cms","complete_data","pending_data","name","resource_access_legend1","resource_access_legend2","Math","floor","get_progress_percentage","dimension","isY","axis","get_module_icon","get_module_url","get_interactions_number","interactions_text","modules_interaction","modules_interactions","h","hours_short","m","minutes_short","s","seconds_short","minutes","seconds","update_modules_dialog","open_chart_help","inverted_time_help_title","inverted_time_help_description_p1","inverted_time_help_description_p2","hours_session_help_title","hours_session_help_description_p1","hours_session_help_description_p2","resources_access_help_title","resources_access_help_description_p1","resources_access_help_description_p2","resources_access_help_description_p3","length","update_help_dialog","get_timezone","information","ss_change_timezone"],"mappings":"AAAAA,OAAM,uCAAC,CAAC,wBAAD,CACC,4BADD,CAEC,0BAFD,CAGC,2BAHD,CAIC,+BAJD,CAKC,gCALD,CAMC,+BAND,CAOC,gCAPD,CAQC,+BARD,CAAD,CAUF,SAASC,CAAT,CAAcC,CAAd,CAAuBC,CAAvB,CAA8BC,CAA9B,CAAsCC,CAAtC,CAAkDC,CAAlD,CAA+DC,CAA/D,CAA2EC,CAA3E,CAAwFC,CAAxF,CAAoG,CAChG,aAsYA,MAAO,CACHC,IAAI,CArYR,SAAcC,CAAd,CAAuB,CAEnBV,CAAG,CAACW,GAAJ,CAAQV,CAAR,EACAD,CAAG,CAACY,SAAJ,CAAc,YAAd,CAA4BR,CAA5B,EACAJ,CAAG,CAACY,SAAJ,CAAc,OAAd,CAAuBP,CAAvB,EACAL,CAAG,CAACY,SAAJ,CAAc,YAAd,CAA4BN,CAA5B,EACAN,CAAG,CAACY,SAAJ,CAAc,aAAd,CAA6BL,CAA7B,EACAP,CAAG,CAACY,SAAJ,CAAc,YAAd,CAA4BJ,CAA5B,EACA,GAAIK,CAAAA,CAAG,CAAG,GAAIb,CAAAA,CAAJ,CAAQ,CACdc,UAAU,CAAE,CAAC,IAAD,CAAO,IAAP,CADE,CAEdC,EAAE,CAAE,gBAFU,CAGdC,OAAO,CAAE,GAAIf,CAAAA,CAHC,CAIdgB,IAJc,gBAIP,CACH,MAAO,CACHC,OAAO,CAAGR,CAAO,CAACQ,OADf,CAEHC,MAAM,CAAGT,CAAO,CAACS,MAFd,CAGHC,MAAM,CAAGV,CAAO,CAACU,MAHd,CAIHC,QAAQ,CAAGX,CAAO,CAACW,QAJhB,CAKHC,QAAQ,CAAGZ,CAAO,CAACY,QALhB,CAMHC,UAAU,CAAGb,CAAO,CAACc,cANlB,CAOHC,OAAO,GAPJ,CAQHC,MAAM,CAAG,EARN,CASHC,KAAK,CAAGjB,CAAO,CAACiB,KATb,CAWHC,UAAU,CAAElB,CAAO,CAACkB,UAXjB,CAYHC,uBAAuB,CAAEnB,CAAO,CAACmB,uBAZ9B,CAaHC,oBAAoB,CAAEpB,CAAO,CAACoB,oBAb3B,CAcHC,aAAa,CAAErB,CAAO,CAACkB,UAAR,CAAmBG,aAd/B,CAeHC,cAAc,CAAEtB,CAAO,CAACkB,UAAR,CAAmBI,cAfhC,CAgBHC,QAAQ,CAAEvB,CAAO,CAACkB,UAAR,CAAmBK,QAhB1B,CAiBHC,YAAY,CAAE,IAjBX,CAkBHC,aAAa,CAAE,CAlBZ,CAmBHC,0BAA0B,CAAE,EAnBzB,CAoBHC,oBAAoB,CAAE,EApBnB,CAqBHC,cAAc,GArBX,CAuBHC,WAAW,GAvBR,CAwBHC,aAAa,CAAE,EAxBZ,CA0BV,CA/Ba,CAgCdC,WAhCc,uBAgCD,CACT,KAAKC,kBAAL,GACA,KAAKC,uBAAL,GACA,KAAKC,0BAAL,EACH,CApCa,CAqCdC,OArCc,mBAqCL,CACLC,QAAQ,CAACC,aAAT,CAAuB,kBAAvB,EAA2CC,KAA3C,CAAiDC,OAAjD,CAA2D,MAA3D,CACAH,QAAQ,CAACC,aAAT,CAAuB,gBAAvB,EAAyCC,KAAzC,CAA+CC,OAA/C,CAAyD,OAC5D,CAxCa,CAyCdC,OAAO,CAAG,CACNC,gBADM,4BACY,CACd,GAAIC,CAAAA,CAAQ,CAAG,CACD,CACVC,KAAK,CAAE,KAAKnC,OAAL,CAAaoC,kBADV,CAEVC,WAAW,CAAE,KAAKrC,OAAL,CAAasC,wBAFhB,CADC,CAAf,CAKA,MAAOJ,CAAAA,CACV,CARK,CAUNK,yBAVM,qCAUsB,CACxB,GAAIC,CAAAA,CAAK,GAAT,CACAA,CAAK,CAACA,KAAN,CAAc,CACVC,IAAI,CAAE,KADI,CAEVC,eAAe,CAAE,IAFP,CAGVZ,KAAK,CAAE,CAACa,UAAU,CAAE,SAAb,CAHG,CAAd,CAKAH,CAAK,CAACL,KAAN,CAAc,CAACS,IAAI,CAAE,IAAP,CAAd,CACAJ,CAAK,CAACK,MAAN,CAAe,KAAKjC,oBAApB,CACA4B,CAAK,CAACM,KAAN,CAAc,CACVL,IAAI,CAAE,UADI,CAEVM,SAAS,GAFC,CAAd,CAIAP,CAAK,CAACQ,KAAN,CAAc,CACVb,KAAK,CAAE,CACHS,IAAI,CAAE,KAAK5C,OAAL,CAAaiD,0BADhB,CADG,CAAd,CAKAT,CAAK,CAACU,OAAN,CAAgB,CACZC,MAAM,GADM,CAEZC,OAAO,GAFK,CAGZC,SAAS,CAAE,oBAAY,IACfC,CAAAA,CAAa,CAAG,KAAKC,MAAL,CAAY,CAAZ,EAAeC,GADhB,CAEfC,CAAI,CAAG9D,CAAG,CAAC+D,YAAJ,CAAiB,KAAKC,CAAtB,CAFQ,CAGnB,mBAAaL,CAAb,kBAAmCG,CAAnC,CACH,CAPW,CAAhB,CASAjB,CAAK,CAACoB,MAAN,CAAe,CACXC,OAAO,GADI,CAAf,CAGArB,CAAK,CAACsB,MAAN,CAAe,CAAC,CACZC,YAAY,GADA,CAEZhE,IAAI,CAAE,KAAKc,aAAL,CAAmBd,IAFb,CAAD,CAAf,CAIA,MAAOyC,CAAAA,CACV,CA7CK,CA+CNwB,yBA/CM,qCA+CsB,CACxB,GAAIxB,CAAAA,CAAK,GAAT,CACAA,CAAK,CAACL,KAAN,CAAc,CAACS,IAAI,CAAE,IAAP,CAAd,CACAJ,CAAK,CAACA,KAAN,CAAc,CACVC,IAAI,CAAE,SADI,CAEVC,eAAe,CAAE,IAFP,CAGVZ,KAAK,CAAE,CAACa,UAAU,CAAE,SAAb,CAHG,CAAd,CAKAH,CAAK,CAACM,KAAN,CAAc,CACVmB,UAAU,CAAE,KAAKjE,OAAL,CAAakE,IADf,CAAd,CAGA1B,CAAK,CAACQ,KAAN,CAAc,CACViB,UAAU,CAAE,KAAKjE,OAAL,CAAamE,KADf,CAEVhC,KAAK,CAAE,IAFG,CAGViC,QAAQ,GAHE,CAAd,CAKA5B,CAAK,CAAC6B,SAAN,CAAkB,CACdC,GAAG,CAAE,CADS,CAEdC,QAAQ,CAAE,SAFI,CAGdC,QAAQ,CAAE,SAHI,CAAlB,CAKAhC,CAAK,CAACoB,MAAN,CAAe,CACXa,MAAM,CAAE,YADG,CAEXC,aAAa,CAAE,QAFJ,CAAf,CAIAlC,CAAK,CAACU,OAAN,CAAgB,CACZG,SAAS,CAAE,oBAAY,IACfsB,CAAAA,CAAa,CAAGhF,CAAG,CAACiF,uBAAJ,CAA4B,KAAKC,KAAjC,CAAwC,GAAxC,CADD,CAEfC,CAAa,CAAGnF,CAAG,CAACiF,uBAAJ,CAA4B,KAAKC,KAAjC,CAAwC,GAAxC,CAFD,CAGfE,CAAK,CAAGpF,CAAG,CAACK,OAAJ,CAAYgF,aAHL,CAInB,GAAwB,CAApB,OAAKH,KAAL,CAAWI,KAAf,CAA2B,CACvBF,CAAK,CAAGpF,CAAG,CAACK,OAAJ,CAAYkF,YACvB,CACD,MAAO,MAAQP,CAAR,CAAwB,GAAxB,CAA8BG,CAA9B,CAA8C,QAA9C,CACD,KAAKD,KAAL,CAAWI,KADV,CACiB,GADjB,CACuBF,CACjC,CAVW,CAAhB,CAYAvC,CAAK,CAACsB,MAAN,CAAe,CAAC,CACZqB,WAAW,CAAE,CADD,CAEZC,WAAW,CAAE,SAFD,CAGZrF,IAAI,CAAE,KAAKe,cAHC,CAAD,CAAf,CAKA,MAAO0B,CAAAA,CACV,CA1FK,CA4FN6C,4BA5FM,wCA4FyB,CAC3B,GAAI7C,CAAAA,CAAK,GAAT,CACAA,CAAK,CAACA,KAAN,CAAc,CACVC,IAAI,CAAE,QADI,CAEVC,eAAe,CAAE,IAFP,CAGVZ,KAAK,CAAE,CAACa,UAAU,CAAE,SAAb,CAHG,CAAd,CAKAH,CAAK,CAACL,KAAN,CAAc,CAACS,IAAI,CAAE,IAAP,CAAd,CACAJ,CAAK,CAACK,MAAN,CAAe,KAAKlC,uBAApB,CACA6B,CAAK,CAACM,KAAN,CAAc,CACVmB,UAAU,CAAE,KAAK/C,0BADP,CAEV6B,SAAS,GAFC,CAGVZ,KAAK,CAAE,CACHS,IAAI,CAAE,KAAK5C,OAAL,CAAasF,sBADhB,CAHG,CAAd,CAOA9C,CAAK,CAACQ,KAAN,CAAc,CACVsB,GAAG,CAAE,CADK,CAEVnC,KAAK,CAAE,CACHS,IAAI,CAAE,KAAK5C,OAAL,CAAauF,sBADhB,CAFG,CAAd,CAMA/C,CAAK,CAACgD,WAAN,CAAoB,CAChBC,MAAM,CAAE,CACJC,QAAQ,CAAE,QADN,CADQ,CAIhB5B,MAAM,CAAE,CACJ6B,MAAM,CAAE,SADJ,CAEJd,KAAK,CAAE,CACHe,MAAM,CAAE,CACJC,KAAK,CAAE,gBAAY,CACflG,CAAG,CAACyB,cAAJ,GACH,CAHG,CADL,CAFH,CAJQ,CAApB,CAeAoB,CAAK,CAACU,OAAN,CAAgB,CACZC,MAAM,GADM,CAEZC,OAAO,GAFK,CAGZ0C,YAAY,cAAQ,KAAK9F,OAAL,CAAa+F,eAArB,QAHA,CAAhB,CAKAvD,CAAK,CAACsB,MAAN,CAAe,KAAK3C,oBAApB,CACA,MAAOqB,CAAAA,CACV,CAxIK,CA0INwD,mBA1IM,8BA0IcC,CA1Id,CA0ImB,YACrB,KAAK1F,OAAL,IACA,KAAKC,MAAL,CAAc,EAAd,CACA,GAAIT,CAAAA,CAAI,CAAG,CACPmG,MAAM,CAAG,iBADF,CAEPhG,MAAM,CAAG,KAAKA,MAFP,CAGPC,QAAQ,CAAG,KAAKA,QAHT,CAIPgG,QAAQ,CAAGF,CAAI,CAACE,QAJT,CAKPC,OAAO,CAAG,KAAK/F,UALR,CAAX,CAOArB,CAAK,CAAC,CACFqH,MAAM,CAAC,KADL,CAEFC,GAAG,CAAEC,CAAC,CAACC,GAAF,CAAMC,OAAN,CAAgB,8BAFnB,CAGFC,MAAM,CAAG3G,CAHP,CAAD,CAAL,CAIG4G,IAJH,CAIQ,SAACC,CAAD,CAAc,CAClB,GAAuB,GAAnB,EAAAA,CAAQ,CAACC,MAAT,EAA0BD,CAAQ,CAAC7G,IAAT,CAAc+G,EAA5C,CAAgD,CAC5C,CAAI,CAACjG,aAAL,CAAqB+F,CAAQ,CAAC7G,IAAT,CAAcA,IAAd,CAAmBW,UAAnB,CAA8BG,aAAnD,CACA,CAAI,CAACC,cAAL,CAAsB8F,CAAQ,CAAC7G,IAAT,CAAcA,IAAd,CAAmBW,UAAnB,CAA8BI,cAApD,CACA,CAAI,CAACC,QAAL,CAAgB6F,CAAQ,CAAC7G,IAAT,CAAcA,IAAd,CAAmBW,UAAnB,CAA8BK,QAA9C,CACA,CAAI,CAACU,uBAAL,GACA,CAAI,CAACC,0BAAL,EACH,CAND,IAMO,CACH,CAAI,CAACqF,cAAL,CAAoBC,IAApB,CAAyB,CAAI,CAAChH,OAAL,CAAaiH,aAAtC,CACH,CACJ,CAdD,EAcGC,KAdH,CAcS,SAACC,CAAD,CAAO,CACZC,OAAO,CAACC,GAAR,CAAYF,CAAZ,EACA,CAAI,CAAC3G,MAAL,CAAYwG,IAAZ,CAAiB,CAAI,CAAChH,OAAL,CAAasH,iBAA9B,CACH,CAjBD,EAiBGC,OAjBH,CAiBW,UAAM,CACb,CAAI,CAAChH,OAAL,GACH,CAnBD,EAoBA,MAAO,MAAKR,IACf,CAzKK,CA2KNyB,kBA3KM,8BA2Ke,IACbgG,CAAAA,CAAW,CAAG,GAAIC,CAAAA,GADL,CAEbC,CAAS,CAAG,CAFC,CAGjB,KAAKhH,UAAL,CAAgBiH,UAAhB,CAA2BC,OAA3B,CAAmC,SAAAC,CAAE,CAAI,CACrCH,CAAS,EAAUG,CAAE,CAACC,OAAtB,CACA,GAAI,CAACN,CAAW,CAACO,GAAZ,CAAgBL,CAAhB,CAAL,CAAiC,CAC7BF,CAAW,CAACQ,GAAZ,CAAgBN,CAAhB,CAA2B,CAACG,CAAD,CAA3B,CACH,CAFD,IAEO,CACHL,CAAW,CAACS,GAAZ,CAAgBP,CAAhB,EAA2BV,IAA3B,CAAgCa,CAAhC,CACH,CACJ,CAPD,EAQA,KAAK7G,YAAL,CAAoBwG,CACvB,CAvLK,CAyLN/F,uBAzLM,mCAyLoB,YAClBiG,CADkB,CAEtB,KAAK3G,QAAL,CAAc6G,OAAd,CAAsB,SAAAE,CAAO,CAAI,CAC7BJ,CAAS,EAAUI,CAAO,CAACJ,SAA3B,CACAI,CAAO,CAACJ,SAAR,CAAoBA,CAApB,CACAI,CAAO,CAACI,OAAR,CAAmB,CAAI,CAAClH,YAAL,CAAkB+G,GAAlB,CAAsBL,CAAtB,CAAD,CAAqC,CAAI,CAAC1G,YAAL,CAAkBiH,GAAlB,CAAsBP,CAAtB,CAArC,CAAwE,EAC7F,CAJD,CAKH,CAhMK,CAkMNhG,0BAlMM,sCAkMuB,YACrByG,CAAU,CAAG,GAAIV,CAAAA,GADI,CAErBW,CAFqB,CAEXC,CAFW,CAEFC,CAFE,CAEGC,CAAa,CAAG,CAFnB,CAEsBC,CAAc,CAAG,CAFvC,CAGrBC,CAAa,CAAG,KAAKzI,OAAL,CAAayI,aAHR,CAIzB,KAAK1H,QAAL,CAAc6G,OAAd,CAAsB,SAAAE,CAAO,CAAI,CAC7BA,CAAO,CAACI,OAAR,CAAgBN,OAAhB,CAAwB,SAAAc,CAAM,CAAI,CAC5BP,CAAU,CAACJ,GAAX,CAAeW,CAAM,CAACC,OAAtB,CAAF,EAAqCR,CAAU,CAACH,GAAX,CAAeU,CAAM,CAACC,OAAtB,CAA8B,CAACC,QAAQ,CAAC,CAAV,CAAYC,OAAO,CAAC,CAApB,CAA9B,CAArC,CACAP,CAAG,CAAGH,CAAU,CAACF,GAAX,CAAeS,CAAM,CAACC,OAAtB,CAAN,CACAP,CAAQ,EAAUM,CAAM,CAACI,EAAzB,CACAJ,CAAM,CAACI,EAAP,CAAYV,CAAZ,CACAM,CAAM,CAACE,QAAP,IACAF,CAAM,CAACK,MAAP,IACAL,CAAM,CAACM,YAAP,CAAsB,CAAtB,CAEAX,CAAO,CAAG,CAAI,CAAC3H,UAAL,CAAgBuI,QAAhB,aAA8BP,CAAM,CAACI,EAArC,EAAV,CACA,GAAIT,CAAJ,CAAa,CACTK,CAAM,CAACE,QAAP,CAAkBP,CAAO,CAACO,QAA1B,CACAF,CAAM,CAACK,MAAP,CAAgBV,CAAO,CAACU,MAAxB,CACAL,CAAM,CAACM,YAAP,CAAsBX,CAAO,CAACW,YAA9B,CACCX,CAAO,CAACO,QAAT,CAAqBN,CAAG,CAACM,QAAJ,EAArB,CAAsCN,CAAG,CAACO,OAAJ,EAAtC,CACCR,CAAO,CAACO,QAAT,EAAsBJ,CAAc,EACvC,CAND,IAMO,CACHF,CAAG,CAACO,OAAJ,EACH,CACDN,CAAa,EAChB,CApBD,CAqBH,CAtBD,EAuBA,GAAItE,CAAAA,CAAU,CAAG,EAAjB,CAAqBiF,CAAa,CAAG,EAArC,CAAyCC,CAAY,CAAG,EAAxD,CACAhB,CAAU,CAACP,OAAX,CAAmB,SAAS3C,CAAT,CAAgBzB,CAAhB,CAAqB,CACpCS,CAAU,CAAC+C,IAAX,CAAgByB,CAAa,CAACjF,CAAD,CAAb,EAAsBA,CAAtC,EACA0F,CAAa,CAAClC,IAAd,CAAmB/B,CAAK,CAAC2D,QAAzB,EACAO,CAAY,CAACnC,IAAb,CAAkB/B,CAAK,CAAC4D,OAAxB,CACH,CAJD,EAKA,KAAK3H,0BAAL,CAAkC+C,CAAlC,CACA,KAAK9C,oBAAL,CAA4B,CACxB,CAAEiI,IAAI,CAAE,KAAKpJ,OAAL,CAAaqJ,uBAArB,CAA8CtJ,IAAI,CAAEmJ,CAApD,CADwB,CAExB,CAAEE,IAAI,CAAE,KAAKpJ,OAAL,CAAasJ,uBAArB,CAA8CvJ,IAAI,CAAEoJ,CAApD,CAFwB,CAA5B,CAIA,KAAKlI,aAAL,CAAqBsI,IAAI,CAACC,KAAL,CAA2B,GAAf,CAAAhB,CAAD,CAAqBD,CAAhC,GAAkD,CAC1E,CAzOK,CA2ONkB,uBA3OM,mCA2OoB,CACtB,gBAAU,KAAKxI,aAAf,MACH,CA7OK,CA+ON2D,uBA/OM,kCA+OkBC,CA/OlB,CA+OyB6E,CA/OzB,CA+OoC,CACtC,GAAI5F,CAAAA,CAAM,CAAGe,CAAK,CAACf,MAAnB,CACI6F,CAAG,CAAiB,GAAd,GAAAD,CADV,CAEIE,CAAI,CAAG9F,CAAM,CAAC6F,CAAG,CAAG,OAAH,CAAa,OAAjB,CAFjB,CAGA,MAAOC,CAAAA,CAAI,CAAC3F,UAAL,CAAgBY,CAAK,CAAC8E,CAAG,CAAG,GAAH,CAAS,GAAb,CAArB,CACV,CApPK,CAsPNE,eAtPM,0BAsPUlB,CAtPV,CAsPkB,CACpB,gBAAUpC,CAAC,CAACC,GAAF,CAAMC,OAAhB,mCAAiDkC,CAAjD,WACH,CAxPK,CA0PNmB,cA1PM,yBA0PSpB,CA1PT,CA0PgB,CAClB,gBAAUnC,CAAC,CAACC,GAAF,CAAMC,OAAhB,iBAA+BiC,CAAM,CAACC,OAAtC,yBAA6DD,CAAM,CAACI,EAApE,CACH,CA5PK,CA8PNiB,uBA9PM,kCA8PkBf,CA9PlB,CA8P+B,CACjC,GAAIgB,CAAAA,CAAiB,CAAoB,CAAhB,EAAAhB,CAAD,CAAsB,KAAKhJ,OAAL,CAAaiK,mBAAnC,CAAyD,KAAKjK,OAAL,CAAakK,oBAA9F,CACA,iBAAWlB,CAAX,aAA2BgB,CAA3B,KACH,CAjQK,CAmQNtG,YAnQM,uBAmQOD,CAnQP,CAmQa,CACfA,CAAI,EAAI,IAAR,CADe,GAEX0G,CAAAA,CAAC,CAAG,KAAKnK,OAAL,CAAaoK,WAFN,CAGXC,CAAC,CAAG,KAAKrK,OAAL,CAAasK,aAHN,CAIXC,CAAC,CAAG,KAAKvK,OAAL,CAAawK,aAJN,CAKXrG,CAAK,CAAGoF,IAAI,CAACC,KAAL,CAAW/F,CAAI,CAAG,IAAlB,CALG,CAMXgH,CAAO,CAAGlB,IAAI,CAACC,KAAL,CAAY/F,CAAI,CAAG,IAAR,CAAgB,EAA3B,CANC,CAOXiH,CAAO,CAAGnB,IAAI,CAACC,KAAL,CAAW/F,CAAI,CAAG,EAAlB,CAPC,CAQXb,CARW,CASf,GAAa,CAAT,EAAAuB,CAAJ,CAAgB,CACZ,GAAe,CAAX,EAAAsG,CAAJ,CAAkB,CACd7H,CAAI,WAAMuB,CAAN,SAAcgG,CAAd,aAAmBM,CAAnB,SAA6BJ,CAA7B,CACP,CAFD,IAEO,CACHzH,CAAI,WAAMuB,CAAN,SAAcgG,CAAd,CACP,CACJ,CAND,IAMO,IAAgB,CAAX,EAAAM,CAAL,CAAoB,CACvB,GAAe,CAAX,EAAAC,CAAJ,CAAkB,CACd9H,CAAI,WAAM6H,CAAN,SAAgBJ,CAAhB,aAAqBK,CAArB,SAA+BH,CAA/B,CACP,CAFD,IAEO,CACH3H,CAAI,WAAM6H,CAAN,SAAgBJ,CAAhB,CACP,CACJ,CANM,IAMA,CACHzH,CAAI,WAAM8H,CAAN,SAAgBH,CAAhB,CACP,CACD,MAAO3H,CAAAA,CACV,CA5RK,CA8RN+H,qBA9RM,gCA8RiB1F,CA9RjB,CA8RwB,CAC1B,KAAK7D,cAAL,CAAsB6D,CACzB,CAhSK,CAkSN2F,eAlSM,0BAkSUpI,CAlSV,CAkSiB,CACnB,GAAIN,CAAAA,CAAQ,CAAG,EAAf,CACA,GAAa,eAAT,EAAAM,CAAJ,CAA8B,CAC1BN,CAAQ,CAAC8E,IAAT,CAAc,CACV7E,KAAK,CAAE,KAAKnC,OAAL,CAAa6K,wBADV,CAEVxI,WAAW,CAAE,KAAKrC,OAAL,CAAa8K,iCAFhB,CAAd,EAIA5I,CAAQ,CAAC8E,IAAT,CAAc,CACV3E,WAAW,CAAE,KAAKrC,OAAL,CAAa+K,iCADhB,CAAd,CAGH,CARD,IAQO,IAAa,eAAT,EAAAvI,CAAJ,CAA8B,CACjCN,CAAQ,CAAC8E,IAAT,CAAc,CACV7E,KAAK,CAAE,KAAKnC,OAAL,CAAagL,wBADV,CAEV3I,WAAW,CAAE,KAAKrC,OAAL,CAAaiL,iCAFhB,CAAd,EAIA/I,CAAQ,CAAC8E,IAAT,CAAc,CACV3E,WAAW,CAAE,KAAKrC,OAAL,CAAakL,iCADhB,CAAd,CAGH,CARM,IAQA,IAAa,kBAAT,EAAA1I,CAAJ,CAAiC,CACpCN,CAAQ,CAAC8E,IAAT,CAAc,CACV7E,KAAK,CAAE,KAAKnC,OAAL,CAAamL,2BADV,CAEV9I,WAAW,CAAE,KAAKrC,OAAL,CAAaoL,oCAFhB,CAAd,EAIAlJ,CAAQ,CAAC8E,IAAT,CAAc,CACV3E,WAAW,CAAE,KAAKrC,OAAL,CAAaqL,oCADhB,CAAd,EAGAnJ,CAAQ,CAAC8E,IAAT,CAAc,CACV3E,WAAW,CAAE,KAAKrC,OAAL,CAAasL,oCADhB,CAAd,CAGH,CACD,KAAKhK,aAAL,CAAqBY,CAArB,CACA,GAAI,KAAKZ,aAAL,CAAmBiK,MAAvB,CAA+B,CAC3B,KAAKlK,WAAL,GACH,CACJ,CApUK,CAsUNmK,kBAtUM,6BAsUcvG,CAtUd,CAsUqB,CACvB,KAAK5D,WAAL,CAAmB4D,CACtB,CAxUK,CA0UNwG,YA1UM,wBA0UQ,CACV,GAAIC,CAAAA,CAAW,WAAM,KAAK1L,OAAL,CAAa2L,kBAAnB,aAAyC,KAAKvL,QAA9C,CAAf,CACA,MAAOsL,CAAAA,CACV,CA7UK,CAzCI,CAAR,CA0Xb,CAEM,CAGV,CApZC,CAAN","sourcesContent":["define([\"local_fliplearning/vue\",\r\n \"local_fliplearning/vuetify\",\r\n \"local_fliplearning/axios\",\r\n \"local_fliplearning/moment\",\r\n \"local_fliplearning/pagination\",\r\n \"local_fliplearning/chartstatic\",\r\n \"local_fliplearning/pageheader\",\r\n \"local_fliplearning/modulesform\",\r\n \"local_fliplearning/helpdialog\",\r\n ],\r\n function(Vue, Vuetify, Axios, Moment, Pagination, ChartStatic, PageHeader, ModulesForm, HelpDialog) {\r\n \"use strict\";\r\n\r\n function init(content) {\r\n // console.log(content);\r\n Vue.use(Vuetify);\r\n Vue.component('pagination', Pagination);\r\n Vue.component('chart', ChartStatic);\r\n Vue.component('pageheader', PageHeader);\r\n Vue.component('modulesform', ModulesForm);\r\n Vue.component('helpdialog', HelpDialog);\r\n let vue = new Vue({\r\n delimiters: [\"[[\", \"]]\"],\r\n el: \"#work_sessions\",\r\n vuetify: new Vuetify(),\r\n data() {\r\n return {\r\n strings : content.strings,\r\n groups : content.groups,\r\n userid : content.userid,\r\n courseid : content.courseid,\r\n timezone : content.timezone,\r\n render_has : content.profile_render,\r\n loading : false,\r\n errors : [],\r\n pages : content.pages,\r\n\r\n indicators: content.indicators,\r\n resources_access_colors: content.resources_access_colors,\r\n inverted_time_colors: content.inverted_time_colors,\r\n inverted_time: content.indicators.inverted_time,\r\n hours_sessions: content.indicators.hours_sessions,\r\n sections: content.indicators.sections,\r\n sections_map: null,\r\n week_progress: 0,\r\n resource_access_categories: [],\r\n resource_access_data: [],\r\n modules_dialog: false,\r\n\r\n help_dialog: false,\r\n help_contents: [],\r\n }\r\n },\r\n beforeMount(){\r\n this.create_section_map();\r\n this.set_modules_in_sections();\r\n this.calculate_resources_access();\r\n },\r\n mounted(){\r\n document.querySelector(\"#sessions-loader\").style.display = \"none\";\r\n document.querySelector(\"#work_sessions\").style.display = \"block\";\r\n },\r\n methods : {\r\n get_help_content(){\r\n let contents = [];\r\n contents.push({\r\n title: this.strings.section_help_title,\r\n description: this.strings.section_help_description,\r\n });\r\n return contents;\r\n },\r\n\r\n build_inverted_time_chart() {\r\n let chart = new Object();\r\n chart.chart = {\r\n type: 'bar',\r\n backgroundColor: null,\r\n style: {fontFamily: 'poppins'},\r\n };\r\n chart.title = {text: null};\r\n chart.colors = this.inverted_time_colors;\r\n chart.xAxis = {\r\n type: 'category',\r\n crosshair: true,\r\n };\r\n chart.yAxis = {\r\n title: {\r\n text: this.strings.inverted_time_chart_x_axis,\r\n }\r\n };\r\n chart.tooltip = {\r\n shared:true,\r\n useHTML:true,\r\n formatter: function () {\r\n let category_name = this.points[0].key;\r\n let time = vue.convert_time(this.y);\r\n return `<b>${category_name}: </b>${time}`;\r\n }\r\n };\r\n chart.legend = {\r\n enabled: false\r\n };\r\n chart.series = [{\r\n colorByPoint: true,\r\n data: this.inverted_time.data\r\n }];\r\n return chart;\r\n },\r\n\r\n build_hours_session_chart() {\r\n let chart = new Object();\r\n chart.title = {text: null};\r\n chart.chart = {\r\n type: 'heatmap',\r\n backgroundColor: null,\r\n style: {fontFamily: 'poppins'},\r\n };\r\n chart.xAxis = {\r\n categories: this.strings.days,\r\n };\r\n chart.yAxis = {\r\n categories: this.strings.hours,\r\n title: null,\r\n reversed: true,\r\n };\r\n chart.colorAxis = {\r\n min: 0,\r\n minColor: '#E0E0E0',\r\n maxColor: '#118AB2'\r\n };\r\n chart.legend = {\r\n layout: 'horizontal',\r\n verticalAlign: 'bottom',\r\n };\r\n chart.tooltip = {\r\n formatter: function () {\r\n let xCategoryName = vue.get_point_category_name(this.point, 'x');\r\n let yCategoryName = vue.get_point_category_name(this.point, 'y');\r\n let label = vue.strings.sessions_text;\r\n if (this.point.value == 1) {\r\n label = vue.strings.session_text;\r\n }\r\n return '<b>' + xCategoryName + ' ' + yCategoryName + '</b>: '\r\n + this.point.value +' ' + label;\r\n }\r\n };\r\n chart.series = [{\r\n borderWidth: 2,\r\n borderColor: '#FAFAFA',\r\n data: this.hours_sessions,\r\n }];\r\n return chart;\r\n },\r\n\r\n build_resources_access_chart() {\r\n let chart = new Object();\r\n chart.chart = {\r\n type: 'column',\r\n backgroundColor: null,\r\n style: {fontFamily: 'poppins'},\r\n };\r\n chart.title = {text: null};\r\n chart.colors = this.resources_access_colors;\r\n chart.xAxis = {\r\n categories: this.resource_access_categories,\r\n crosshair: true,\r\n title: {\r\n text: this.strings.resource_access_x_axis\r\n },\r\n };\r\n chart.yAxis = {\r\n min: 0,\r\n title: {\r\n text: this.strings.resource_access_y_axis\r\n },\r\n };\r\n chart.plotOptions = {\r\n column: {\r\n stacking: 'normal',\r\n },\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n click: function () {\r\n vue.modules_dialog = true;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n chart.tooltip = {\r\n shared: true,\r\n useHTML: true,\r\n footerFormat: `<i>${this.strings.modules_details}</i>`,\r\n };\r\n chart.series = this.resource_access_data;\r\n return chart;\r\n },\r\n\r\n update_interactions(week){\r\n this.loading = true;\r\n this.errors = [];\r\n let data = {\r\n action : \"studentsessions\",\r\n userid : this.userid,\r\n courseid : this.courseid,\r\n weekcode : week.weekcode,\r\n profile : this.render_has,\r\n }\r\n Axios({\r\n method:'get',\r\n url: M.cfg.wwwroot + \"/local/fliplearning/ajax.php\",\r\n params : data,\r\n }).then((response) => {\r\n if (response.status == 200 && response.data.ok) {\r\n this.inverted_time = response.data.data.indicators.inverted_time;\r\n this.hours_sessions = response.data.data.indicators.hours_sessions;\r\n this.sections = response.data.data.indicators.sections;\r\n this.set_modules_in_sections();\r\n this.calculate_resources_access();\r\n } else {\r\n this.error_messages.push(this.strings.error_network);\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n this.errors.push(this.strings.api_error_network);\r\n }).finally(() => {\r\n this.loading = false;\r\n });\r\n return this.data;\r\n },\r\n\r\n create_section_map() {\r\n let sectionsMap = new Map();\r\n let sectionid = 0;\r\n this.indicators.course_cms.forEach(cm => {\r\n sectionid = Number(cm.section);\r\n if (!sectionsMap.has(sectionid)) {\r\n sectionsMap.set(sectionid, [cm]);\r\n } else {\r\n sectionsMap.get(sectionid).push(cm);\r\n }\r\n });\r\n this.sections_map = sectionsMap;\r\n },\r\n\r\n set_modules_in_sections() {\r\n let sectionid;\r\n this.sections.forEach(section => {\r\n sectionid = Number(section.sectionid);\r\n section.sectionid = sectionid;\r\n section.modules = (this.sections_map.has(sectionid)) ? this.sections_map.get(sectionid) : [];\r\n });\r\n },\r\n\r\n calculate_resources_access() {\r\n let modulesMap = new Map();\r\n let moduleid, user_cm, mod, total_modules = 0, access_modules = 0;\r\n let modules_names = this.strings.modules_names;\r\n this.sections.forEach(section => {\r\n section.modules.forEach(module => {\r\n (!modulesMap.has(module.modname)) && modulesMap.set(module.modname,{complete:0,pending:0});\r\n mod = modulesMap.get(module.modname);\r\n moduleid = Number(module.id);\r\n module.id = moduleid;\r\n module.complete = false;\r\n module.viewed = false;\r\n module.interactions = 0;\r\n\r\n user_cm = this.indicators.user_cms[`cm${module.id}`];\r\n if (user_cm) {\r\n module.complete = user_cm.complete;\r\n module.viewed = user_cm.viewed;\r\n module.interactions = user_cm.interactions;\r\n (user_cm.complete) ? mod.complete++ : mod.pending++;\r\n (user_cm.complete) && access_modules++;\r\n } else {\r\n mod.pending++\r\n }\r\n total_modules++;\r\n });\r\n });\r\n let categories = [], complete_data = [], pending_data = [];\r\n modulesMap.forEach(function(value, key) {\r\n categories.push(modules_names[key] || key);\r\n complete_data.push(value.complete);\r\n pending_data.push(value.pending);\r\n });\r\n this.resource_access_categories = categories;\r\n this.resource_access_data = [\r\n { name: this.strings.resource_access_legend1, data: complete_data },\r\n { name: this.strings.resource_access_legend2, data: pending_data },\r\n ];\r\n this.week_progress = Math.floor((access_modules*100)/total_modules) || 0;\r\n },\r\n\r\n get_progress_percentage() {\r\n return `${this.week_progress} %`;\r\n },\r\n\r\n get_point_category_name(point, dimension) {\r\n let series = point.series,\r\n isY = dimension === 'y',\r\n axis = series[isY ? 'yAxis' : 'xAxis'];\r\n return axis.categories[point[isY ? 'y' : 'x']];\r\n },\r\n\r\n get_module_icon(modname){\r\n return `${M.cfg.wwwroot}/theme/image.php/boost/${modname}/1/icon`;\r\n },\r\n\r\n get_module_url(module){\r\n return `${M.cfg.wwwroot}/mod/${module.modname}/view.php?id=${module.id}`;\r\n },\r\n\r\n get_interactions_number(interactions){\r\n let interactions_text = (interactions == 1) ? this.strings.modules_interaction : this.strings.modules_interactions;\r\n return `(${interactions} ${interactions_text})`;\r\n },\r\n\r\n convert_time(time) {\r\n time *= 3600; // pasar las horas a segundos\r\n let h = this.strings.hours_short;\r\n let m = this.strings.minutes_short;\r\n let s = this.strings.seconds_short;\r\n let hours = Math.floor(time / 3600);\r\n let minutes = Math.floor((time % 3600) / 60);\r\n let seconds = Math.floor(time % 60);\r\n let text;\r\n if (hours >= 1) {\r\n if (minutes >= 1) {\r\n text = `${hours}${h} ${minutes}${m}`;\r\n } else {\r\n text = `${hours}${h}`;\r\n }\r\n } else if ((minutes >= 1)) {\r\n if (seconds >= 1) {\r\n text = `${minutes}${m} ${seconds}${s}`;\r\n } else {\r\n text = `${minutes}${m}`;\r\n }\r\n } else {\r\n text = `${seconds}${s}`;\r\n }\r\n return text;\r\n },\r\n\r\n update_modules_dialog (value) {\r\n this.modules_dialog = value;\r\n },\r\n\r\n open_chart_help(chart) {\r\n let contents = [];\r\n if (chart == \"inverted_time\") {\r\n contents.push({\r\n title: this.strings.inverted_time_help_title,\r\n description: this.strings.inverted_time_help_description_p1,\r\n });\r\n contents.push({\r\n description: this.strings.inverted_time_help_description_p2,\r\n });\r\n } else if (chart == \"hours_session\") {\r\n contents.push({\r\n title: this.strings.hours_session_help_title,\r\n description: this.strings.hours_session_help_description_p1,\r\n });\r\n contents.push({\r\n description: this.strings.hours_session_help_description_p2,\r\n });\r\n } else if (chart == \"resources_access\") {\r\n contents.push({\r\n title: this.strings.resources_access_help_title,\r\n description: this.strings.resources_access_help_description_p1,\r\n });\r\n contents.push({\r\n description: this.strings.resources_access_help_description_p2,\r\n });\r\n contents.push({\r\n description: this.strings.resources_access_help_description_p3,\r\n });\r\n }\r\n this.help_contents = contents;\r\n if (this.help_contents.length) {\r\n this.help_dialog = true;\r\n }\r\n },\r\n\r\n update_help_dialog (value) {\r\n this.help_dialog = value;\r\n },\r\n\r\n get_timezone(){\r\n let information = `${this.strings.ss_change_timezone} ${this.timezone}`\r\n return information;\r\n },\r\n\r\n }\r\n })\r\n }\r\n\r\n return {\r\n init : init\r\n };\r\n });"],"file":"student_sessions.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/teacher.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/teacher.min.js new file mode 100644 index 0000000000000000000000000000000000000000..1722e2b262525b745d555ac595b96cb896d1df9f --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/teacher.min.js @@ -0,0 +1,2 @@ +define(["local_fliplearning/vue","local_fliplearning/vuetify","local_fliplearning/axios","local_fliplearning/pagination","local_fliplearning/chartstatic","local_fliplearning/pageheader","local_fliplearning/helpdialog"],function(e,t,s,i,r,o,n){"use strict";return{init:function(a){e.use(t),e.component("pagination",i),e.component("chart",r),e.component("pageheader",o),e.component("helpdialog",n);let l=new e({delimiters:["[[","]]"],el:"#teacher",vuetify:new t,data:()=>({strings:a.strings,groups:a.groups,userid:a.userid,courseid:a.courseid,timezone:a.timezone,render_has:a.profile_render,indicators:a.indicators,week_resources_colors:a.week_resources_colors,search:null,week_resources_categories:[],week_resources_data:[],help_dialog:!1,help_contents:[]}),beforeMount(){this.calculate_week_resources()},mounted(){document.querySelector("#sessions-loader").style.display="none",document.querySelector("#teacher").style.display="block"},methods:{get_help_content(){let e=[];return e.push({title:this.strings.section_help_title,description:this.strings.section_help_description}),e},get_course_grade(){let e=Number(this.indicators.course.grademax);return this.isInt(e)?e:e.toFixed(2)},calculate_week_resources(){let e,t=[],s=[];this.indicators.weeks.forEach(i=>{e=`${i.name} ${i.position+1}`,t.push(e),s.push(i.cms)});let i=this.capitalizeFirstLetter(this.strings.teacher_indicators_modules);this.week_resources_categories=t,this.week_resources_data=[{name:i,data:s}]},build_week_resources_chart(){let e=new Object;return e.chart={type:"bar",backgroundColor:null,style:{fontFamily:"poppins"}},e.title={text:null},e.colors=this.week_resources_colors,e.xAxis={categories:this.week_resources_categories},e.yAxis={min:0,title:{text:this.strings.teacher_indicators_week_resources_yaxis_title}},e.legend={enabled:!1},e.series=this.week_resources_data,e},build_weeks_sessions_chart(){let e=new Object;return e.chart={type:"heatmap",backgroundColor:null,style:{fontFamily:"poppins"}},e.title={text:null},e.xAxis={categories:this.strings.weeks},e.yAxis={categories:this.indicators.sessions.categories,title:null,reversed:!0},e.colorAxis={min:0,minColor:"#E0E0E0",maxColor:"#118AB2"},e.legend={layout:"horizontal",verticalAlign:"bottom"},e.tooltip={formatter:function(){let e=l.indicators.sessions.weeks[this.point.y][this.point.x]||"",t=l.get_point_category_name(this.point,"x"),s=l.get_point_category_name(this.point,"y"),i=l.strings.teacher_indicators_sessions;return 1==this.point.value&&(i=l.strings.teacher_indicators_session),"<b>"+s+" "+t+"</b>: "+this.point.value+" "+i+"<br/>"+e}},e.series=[{borderWidth:2,borderColor:"#FAFAFA",data:this.indicators.sessions.data}],e},table_headers(){return[{text:"",value:"id",align:"center",sortable:!1},{text:this.strings.thead_name,value:"firstname"},{text:this.strings.thead_lastname,value:"lastname"},{text:this.strings.thead_email,value:"email"},{text:this.strings.thead_progress,value:"progress_percentage",align:"center"},{text:this.strings.thead_sessions,value:"sessions_number",align:"center"},{text:this.strings.thead_time,value:"inverted_time",align:"center"}]},get_picture_url:e=>`${M.cfg.wwwroot}/user/pix.php?file=/${e}/f1.jpg`,get_percentage_progress:e=>`${e} %`,get_progress_tooltip(e){let t=this.strings.teacher_indicators_modules,s=this.strings.teacher_indicators_finished;return 1==e.cms.complete&&(t=this.strings.teacher_indicators_module,s=this.strings.teacher_indicators_finalized),`${e.cms.complete} ${t} ${s} ${this.strings.of_conector} ${e.cms.total}`},get_point_category_name(e,t){let s="y"===t;return e.series[s?"yAxis":"xAxis"].categories[e[s?"y":"x"]]},capitalizeFirstLetter:e=>e.charAt(0).toUpperCase()+e.slice(1),isInt:e=>e%1==0,open_chart_help(e){let t=[];"week_resources"==e?(t.push({title:this.strings.week_resources_help_title,description:this.strings.week_resources_help_description_p1}),t.push({description:this.strings.week_resources_help_description_p2})):"weeks_sessions"==e?(t.push({title:this.strings.weeks_sessions_help_title,description:this.strings.week_sessions_help_description_p1}),t.push({description:this.strings.week_sessions_help_description_p2})):"progress_table"==e&&t.push({title:this.strings.progress_table_help_title,description:this.strings.progress_table_help_description}),this.help_contents=t,this.help_contents.length&&(this.help_dialog=!0)},update_help_dialog(e){this.help_dialog=e},get_timezone(){return`${this.strings.ss_change_timezone} ${this.timezone}`},addLogsIntoDB(e,t,i,r){let o={courseid:a.courseid,userid:a.userid,action:"addLogs",sectionname:"TEACHER_GENERAL_INDICATORS",actiontype:e,objectType:i,objectName:t,currentUrl:document.location.href,objectDescription:r};s({method:"get",url:M.cfg.wwwroot+"/local/fliplearning/ajax.php",params:o}).then(e=>{200==e.status&&e.data.ok}).catch(e=>{})}}})}}}); +//# sourceMappingURL=teacher.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/teacher.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/teacher.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..33bfbe13a516c714d042a0242c0115c8251ab4b6 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/teacher.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/teacher.js"],"names":["define","Vue","Vuetify","Axios","Pagination","ChartStatic","PageHeader","HelpDialog","init","content","use","component","vue","delimiters","el","vuetify","data","strings","groups","userid","courseid","timezone","render_has","profile_render","indicators","week_resources_colors","search","week_resources_categories","week_resources_data","help_dialog","help_contents","beforeMount","calculate_week_resources","mounted","document","querySelector","style","display","methods","get_help_content","contents","title","section_help_title","description","section_help_description","get_course_grade","grade","course","grademax","isInt","toFixed","categories","week_name","weeks","forEach","week","name","position","push","cms","capitalizeFirstLetter","teacher_indicators_modules","build_week_resources_chart","chart","type","backgroundColor","fontFamily","text","colors","xAxis","yAxis","min","teacher_indicators_week_resources_yaxis_title","legend","enabled","series","build_weeks_sessions_chart","sessions","reversed","colorAxis","minColor","maxColor","layout","verticalAlign","tooltip","formatter","days","point","y","x","xCategoryName","get_point_category_name","yCategoryName","label","teacher_indicators_sessions","value","teacher_indicators_session","borderWidth","borderColor","table_headers","headers","align","sortable","thead_name","thead_lastname","thead_email","thead_progress","thead_sessions","thead_time","get_picture_url","url","M","cfg","wwwroot","get_percentage_progress","get_progress_tooltip","item","module_label","finished_label","teacher_indicators_finished","complete","teacher_indicators_module","teacher_indicators_finalized","of_conector","total","dimension","isY","axis","string","charAt","toUpperCase","slice","n","open_chart_help","week_resources_help_title","week_resources_help_description_p1","week_resources_help_description_p2","weeks_sessions_help_title","week_sessions_help_description_p1","week_sessions_help_description_p2","progress_table_help_title","progress_table_help_description","length","update_help_dialog","get_timezone","information","ss_change_timezone"],"mappings":"AAAAA,OAAM,8BAAC,CAAC,wBAAD,CACC,4BADD,CAEC,0BAFD,CAGC,+BAHD,CAIC,gCAJD,CAKC,+BALD,CAMC,+BAND,CAAD,CAQF,SAASC,CAAT,CAAcC,CAAd,CAAuBC,CAAvB,CAA8BC,CAA9B,CAA0CC,CAA1C,CAAuDC,CAAvD,CAAmEC,CAAnE,CAA+E,CAC3E,aAwOA,MAAO,CACHC,IAAI,CAvOR,SAAcC,CAAd,CAAuB,CAEnBR,CAAG,CAACS,GAAJ,CAAQR,CAAR,EACAD,CAAG,CAACU,SAAJ,CAAc,YAAd,CAA4BP,CAA5B,EACAH,CAAG,CAACU,SAAJ,CAAc,OAAd,CAAuBN,CAAvB,EACAJ,CAAG,CAACU,SAAJ,CAAc,YAAd,CAA4BL,CAA5B,EACAL,CAAG,CAACU,SAAJ,CAAc,YAAd,CAA4BJ,CAA5B,EACA,GAAIK,CAAAA,CAAG,CAAG,GAAIX,CAAAA,CAAJ,CAAQ,CACdY,UAAU,CAAE,CAAC,IAAD,CAAO,IAAP,CADE,CAEdC,EAAE,CAAE,UAFU,CAGdC,OAAO,CAAE,GAAIb,CAAAA,CAHC,CAIdc,IAJc,gBAIP,CACH,MAAO,CACHC,OAAO,CAAGR,CAAO,CAACQ,OADf,CAEHC,MAAM,CAAGT,CAAO,CAACS,MAFd,CAGHC,MAAM,CAAGV,CAAO,CAACU,MAHd,CAIHC,QAAQ,CAAGX,CAAO,CAACW,QAJhB,CAKHC,QAAQ,CAAGZ,CAAO,CAACY,QALhB,CAMHC,UAAU,CAAGb,CAAO,CAACc,cANlB,CAQHC,UAAU,CAAEf,CAAO,CAACe,UARjB,CASHC,qBAAqB,CAAEhB,CAAO,CAACgB,qBAT5B,CAUHC,MAAM,CAAE,IAVL,CAWHC,yBAAyB,CAAE,EAXxB,CAYHC,mBAAmB,CAAE,EAZlB,CAcHC,WAAW,GAdR,CAeHC,aAAa,CAAE,EAfZ,CAiBV,CAtBa,CAuBdC,WAvBc,uBAuBD,CACT,KAAKC,wBAAL,EACH,CAzBa,CA0BdC,OA1Bc,mBA0BL,CACLC,QAAQ,CAACC,aAAT,CAAuB,kBAAvB,EAA2CC,KAA3C,CAAiDC,OAAjD,CAA2D,MAA3D,CACAH,QAAQ,CAACC,aAAT,CAAuB,UAAvB,EAAmCC,KAAnC,CAAyCC,OAAzC,CAAmD,OACtD,CA7Ba,CA8BdC,OAAO,CAAG,CACNC,gBADM,4BACY,CACd,GAAIC,CAAAA,CAAQ,CAAG,CACD,CACVC,KAAK,CAAE,KAAKxB,OAAL,CAAayB,kBADV,CAEVC,WAAW,CAAE,KAAK1B,OAAL,CAAa2B,wBAFhB,CADC,CAAf,CAKA,MAAOJ,CAAAA,CACV,CARK,CAUNK,gBAVM,4BAUY,CACd,GAAIC,CAAAA,CAAK,EAAU,KAAKtB,UAAL,CAAgBuB,MAAhB,CAAuBC,QAA1C,CACA,MAAQ,MAAKC,KAAL,CAAWH,CAAX,CAAD,CAAsBA,CAAtB,CAA8BA,CAAK,CAACI,OAAN,CAAc,CAAd,CACxC,CAbK,CAeNlB,wBAfM,oCAeqB,IACnBmB,CAAAA,CAAU,CAAG,EADM,CACFnC,CAAI,CAAG,EADL,CAEnBoC,CAFmB,CAGvB,KAAK5B,UAAL,CAAgB6B,KAAhB,CAAsBC,OAAtB,CAA8B,SAAAC,CAAI,CAAI,CAClCH,CAAS,WAAMG,CAAI,CAACC,IAAX,aAAoBD,CAAI,CAACE,QAAL,CAAc,CAAlC,CAAT,CACAN,CAAU,CAACO,IAAX,CAAgBN,CAAhB,EACApC,CAAI,CAAC0C,IAAL,CAAUH,CAAI,CAACI,GAAf,CACH,CAJD,EAKA,GAAIH,CAAAA,CAAI,CAAG,KAAKI,qBAAL,CAA2B,KAAK3C,OAAL,CAAa4C,0BAAxC,CAAX,CACA,KAAKlC,yBAAL,CAAiCwB,CAAjC,CACA,KAAKvB,mBAAL,CAA2B,CAAC,CAAE4B,IAAI,CAAJA,CAAF,CAAQxC,IAAI,CAAJA,CAAR,CAAD,CAC9B,CA1BK,CA4BN8C,0BA5BM,sCA4BuB,CACzB,GAAIC,CAAAA,CAAK,GAAT,CACAA,CAAK,CAACA,KAAN,CAAc,CACVC,IAAI,CAAE,KADI,CAEVC,eAAe,CAAE,IAFP,CAGV7B,KAAK,CAAE,CAAC8B,UAAU,CAAE,SAAb,CAHG,CAAd,CAKAH,CAAK,CAACtB,KAAN,CAAc,CACV0B,IAAI,CAAE,IADI,CAAd,CAGAJ,CAAK,CAACK,MAAN,CAAe,KAAK3C,qBAApB,CACAsC,CAAK,CAACM,KAAN,CAAc,CACVlB,UAAU,CAAE,KAAKxB,yBADP,CAAd,CAGAoC,CAAK,CAACO,KAAN,CAAc,CACVC,GAAG,CAAE,CADK,CAEN9B,KAAK,CAAE,CACP0B,IAAI,CAAE,KAAKlD,OAAL,CAAauD,6CADZ,CAFD,CAAd,CAMAT,CAAK,CAACU,MAAN,CAAe,CACXC,OAAO,GADI,CAAf,CAGAX,CAAK,CAACY,MAAN,CAAe,KAAK/C,mBAApB,CACA,MAAOmC,CAAAA,CACV,CArDK,CAuDNa,0BAvDM,sCAuDuB,CACzB,GAAIb,CAAAA,CAAK,GAAT,CACAA,CAAK,CAACA,KAAN,CAAc,CACVC,IAAI,CAAE,SADI,CAEVC,eAAe,CAAE,IAFP,CAGV7B,KAAK,CAAE,CAAC8B,UAAU,CAAE,SAAb,CAHG,CAAd,CAKAH,CAAK,CAACtB,KAAN,CAAc,CACV0B,IAAI,CAAE,IADI,CAAd,CAGAJ,CAAK,CAACM,KAAN,CAAc,CACVlB,UAAU,CAAE,KAAKlC,OAAL,CAAaoC,KADf,CAAd,CAGAU,CAAK,CAACO,KAAN,CAAc,CACVnB,UAAU,CAAE,KAAK3B,UAAL,CAAgBqD,QAAhB,CAAyB1B,UAD3B,CAEVV,KAAK,CAAE,IAFG,CAGVqC,QAAQ,GAHE,CAAd,CAKAf,CAAK,CAACgB,SAAN,CAAkB,CACdR,GAAG,CAAE,CADS,CAEdS,QAAQ,CAAE,SAFI,CAGdC,QAAQ,CAAE,SAHI,CAAlB,CAKAlB,CAAK,CAACU,MAAN,CAAe,CACXS,MAAM,CAAE,YADG,CAEXC,aAAa,CAAE,QAFJ,CAAf,CAIApB,CAAK,CAACqB,OAAN,CAAgB,CACZC,SAAS,CAAE,oBAAY,IACfC,CAAAA,CAAI,CAAG1E,CAAG,CAACY,UAAJ,CAAeqD,QAAf,CAAwBxB,KAAxB,CAA8B,KAAKkC,KAAL,CAAWC,CAAzC,EAA4C,KAAKD,KAAL,CAAWE,CAAvD,GAA6D,EADrD,CAEfC,CAAa,CAAG9E,CAAG,CAAC+E,uBAAJ,CAA4B,KAAKJ,KAAjC,CAAwC,GAAxC,CAFD,CAGfK,CAAa,CAAGhF,CAAG,CAAC+E,uBAAJ,CAA4B,KAAKJ,KAAjC,CAAwC,GAAxC,CAHD,CAIfM,CAAK,CAAGjF,CAAG,CAACK,OAAJ,CAAY6E,2BAJL,CAKnB,GAAwB,CAApB,OAAKP,KAAL,CAAWQ,KAAf,CAA2B,CACvBF,CAAK,CAAGjF,CAAG,CAACK,OAAJ,CAAY+E,0BACvB,CACD,MAAO,MAAQJ,CAAR,CAAwB,GAAxB,CAA8BF,CAA9B,CAA8C,QAA9C,CACD,KAAKH,KAAL,CAAWQ,KADV,CACiB,GADjB,CACuBF,CADvB,CAC+B,OAD/B,CACyCP,CACnD,CAXW,CAAhB,CAaAvB,CAAK,CAACY,MAAN,CAAe,CAAC,CACZsB,WAAW,CAAE,CADD,CAEZC,WAAW,CAAE,SAFD,CAGZlF,IAAI,CAAE,KAAKQ,UAAL,CAAgBqD,QAAhB,CAAyB7D,IAHnB,CAAD,CAAf,CAKA,MAAO+C,CAAAA,CACV,CArGK,CAuGNoC,aAvGM,yBAuGS,CACX,GAAIC,CAAAA,CAAO,CAAG,CACV,CAAEjC,IAAI,CAAE,EAAR,CAAY4B,KAAK,CAAG,IAApB,CAA0BM,KAAK,CAAG,QAAlC,CAA4CC,QAAQ,GAApD,CADU,CAEV,CAAEnC,IAAI,CAAE,KAAKlD,OAAL,CAAasF,UAArB,CAAkCR,KAAK,CAAG,WAA1C,CAFU,CAGV,CAAE5B,IAAI,CAAE,KAAKlD,OAAL,CAAauF,cAArB,CAAsCT,KAAK,CAAG,UAA9C,CAHU,CAIV,CAAE5B,IAAI,CAAE,KAAKlD,OAAL,CAAawF,WAArB,CAAmCV,KAAK,CAAG,OAA3C,CAJU,CAKV,CAAE5B,IAAI,CAAE,KAAKlD,OAAL,CAAayF,cAArB,CAAsCX,KAAK,CAAG,qBAA9C,CAAsEM,KAAK,CAAG,QAA9E,CALU,CAMV,CAAElC,IAAI,CAAE,KAAKlD,OAAL,CAAa0F,cAArB,CAAsCZ,KAAK,CAAG,iBAA9C,CAAkEM,KAAK,CAAG,QAA1E,CANU,CAOV,CAAElC,IAAI,CAAE,KAAKlD,OAAL,CAAa2F,UAArB,CAAkCb,KAAK,CAAG,eAA1C,CAA2DM,KAAK,CAAG,QAAnE,CAPU,CAAd,CASA,MAAOD,CAAAA,CACV,CAlHK,CAoHNS,eApHM,0BAoHU1F,CApHV,CAoHiB,CACnB,GAAI2F,CAAAA,CAAG,WAAMC,CAAC,CAACC,GAAF,CAAMC,OAAZ,gCAA0C9F,CAA1C,WAAP,CACA,MAAO2F,CAAAA,CACV,CAvHK,CAyHNI,uBAzHM,kCAyHkBnB,CAzHlB,CAyHwB,CAC1B,gBAAUA,CAAV,MACH,CA3HK,CA6HNoB,oBA7HM,+BA6HeC,CA7Hf,CA6HoB,IAClBC,CAAAA,CAAY,CAAG,KAAKpG,OAAL,CAAa4C,0BADV,CAElByD,CAAc,CAAG,KAAKrG,OAAL,CAAasG,2BAFZ,CAGtB,GAAyB,CAArB,EAAAH,CAAI,CAACzD,GAAL,CAAS6D,QAAb,CAA4B,CACxBH,CAAY,CAAG,KAAKpG,OAAL,CAAawG,yBAA5B,CACAH,CAAc,CAAG,KAAKrG,OAAL,CAAayG,4BACjC,CACD,gBAAUN,CAAI,CAACzD,GAAL,CAAS6D,QAAnB,aAA+BH,CAA/B,aAA+CC,CAA/C,aAAiE,KAAKrG,OAAL,CAAa0G,WAA9E,aAA6FP,CAAI,CAACzD,GAAL,CAASiE,KAAtG,CACH,CArIK,CAuINjC,uBAvIM,kCAuIkBJ,CAvIlB,CAuIyBsC,CAvIzB,CAuIoC,CACtC,GAAIlD,CAAAA,CAAM,CAAGY,CAAK,CAACZ,MAAnB,CACImD,CAAG,CAAiB,GAAd,GAAAD,CADV,CAEIE,CAAI,CAAGpD,CAAM,CAACmD,CAAG,CAAG,OAAH,CAAa,OAAjB,CAFjB,CAGA,MAAOC,CAAAA,CAAI,CAAC5E,UAAL,CAAgBoC,CAAK,CAACuC,CAAG,CAAG,GAAH,CAAS,GAAb,CAArB,CACV,CA5IK,CA8INlE,qBA9IM,gCA8IgBoE,CA9IhB,CA8IwB,CAC1B,MAAOA,CAAAA,CAAM,CAACC,MAAP,CAAc,CAAd,EAAiBC,WAAjB,GAAiCF,CAAM,CAACG,KAAP,CAAa,CAAb,CAC3C,CAhJK,CAkJNlF,KAlJM,gBAkJAmF,CAlJA,CAkJG,CACL,MAAiB,EAAV,EAAAA,CAAC,CAAG,CACd,CApJK,CAsJNC,eAtJM,0BAsJUtE,CAtJV,CAsJiB,CACnB,GAAIvB,CAAAA,CAAQ,CAAG,EAAf,CACA,GAAa,gBAAT,EAAAuB,CAAJ,CAA+B,CAC3BvB,CAAQ,CAACkB,IAAT,CAAc,CACVjB,KAAK,CAAE,KAAKxB,OAAL,CAAaqH,yBADV,CAEV3F,WAAW,CAAE,KAAK1B,OAAL,CAAasH,kCAFhB,CAAd,EAIA/F,CAAQ,CAACkB,IAAT,CAAc,CACVf,WAAW,CAAE,KAAK1B,OAAL,CAAauH,kCADhB,CAAd,CAGH,CARD,IAQO,IAAa,gBAAT,EAAAzE,CAAJ,CAA+B,CAClCvB,CAAQ,CAACkB,IAAT,CAAc,CACVjB,KAAK,CAAE,KAAKxB,OAAL,CAAawH,yBADV,CAEV9F,WAAW,CAAE,KAAK1B,OAAL,CAAayH,iCAFhB,CAAd,EAIAlG,CAAQ,CAACkB,IAAT,CAAc,CACVf,WAAW,CAAE,KAAK1B,OAAL,CAAa0H,iCADhB,CAAd,CAGH,CARM,IAQA,IAAa,gBAAT,EAAA5E,CAAJ,CAA+B,CAClCvB,CAAQ,CAACkB,IAAT,CAAc,CACVjB,KAAK,CAAE,KAAKxB,OAAL,CAAa2H,yBADV,CAEVjG,WAAW,CAAE,KAAK1B,OAAL,CAAa4H,+BAFhB,CAAd,CAIH,CACD,KAAK/G,aAAL,CAAqBU,CAArB,CACA,GAAI,KAAKV,aAAL,CAAmBgH,MAAvB,CAA+B,CAC3B,KAAKjH,WAAL,GACH,CACJ,CAlLK,CAoLNkH,kBApLM,6BAoLchD,CApLd,CAoLqB,CACvB,KAAKlE,WAAL,CAAmBkE,CACtB,CAtLK,CAwLNiD,YAxLM,wBAwLQ,CACV,GAAIC,CAAAA,CAAW,WAAM,KAAKhI,OAAL,CAAaiI,kBAAnB,aAAyC,KAAK7H,QAA9C,CAAf,CACA,MAAO4H,CAAAA,CACV,CA3LK,CA9BI,CAAR,CA6Nb,CAEM,CAGV,CApPC,CAAN","sourcesContent":["define([\"local_fliplearning/vue\",\r\n \"local_fliplearning/vuetify\",\r\n \"local_fliplearning/axios\",\r\n \"local_fliplearning/pagination\",\r\n \"local_fliplearning/chartstatic\",\r\n \"local_fliplearning/pageheader\",\r\n \"local_fliplearning/helpdialog\",\r\n ],\r\n function(Vue, Vuetify, Axios, Pagination, ChartStatic, PageHeader, HelpDialog) {\r\n \"use strict\";\r\n\r\n function init(content) {\r\n // console.log(content);\r\n Vue.use(Vuetify);\r\n Vue.component('pagination', Pagination);\r\n Vue.component('chart', ChartStatic);\r\n Vue.component('pageheader', PageHeader);\r\n Vue.component('helpdialog', HelpDialog);\r\n let vue = new Vue({\r\n delimiters: [\"[[\", \"]]\"],\r\n el: \"#teacher\",\r\n vuetify: new Vuetify(),\r\n data() {\r\n return {\r\n strings : content.strings,\r\n groups : content.groups,\r\n userid : content.userid,\r\n courseid : content.courseid,\r\n timezone : content.timezone,\r\n render_has : content.profile_render,\r\n\r\n indicators: content.indicators,\r\n week_resources_colors: content.week_resources_colors,\r\n search: null,\r\n week_resources_categories: [],\r\n week_resources_data: [],\r\n\r\n help_dialog: false,\r\n help_contents: [],\r\n }\r\n },\r\n beforeMount(){\r\n this.calculate_week_resources();\r\n },\r\n mounted(){\r\n document.querySelector(\"#sessions-loader\").style.display = \"none\";\r\n document.querySelector(\"#teacher\").style.display = \"block\";\r\n },\r\n methods : {\r\n get_help_content(){\r\n let contents = [];\r\n contents.push({\r\n title: this.strings.section_help_title,\r\n description: this.strings.section_help_description,\r\n });\r\n return contents;\r\n },\r\n\r\n get_course_grade(){\r\n let grade = Number(this.indicators.course.grademax);\r\n return (this.isInt(grade)) ? grade : grade.toFixed(2);\r\n },\r\n\r\n calculate_week_resources() {\r\n let categories = [], data = [];\r\n let week_name;\r\n this.indicators.weeks.forEach(week => {\r\n week_name = `${week.name} ${(week.position+1)}`;\r\n categories.push(week_name);\r\n data.push(week.cms);\r\n });\r\n let name = this.capitalizeFirstLetter(this.strings.teacher_indicators_modules);\r\n this.week_resources_categories = categories;\r\n this.week_resources_data = [{ name, data}];\r\n },\r\n\r\n build_week_resources_chart() {\r\n let chart = new Object();\r\n chart.chart = {\r\n type: 'bar',\r\n backgroundColor: null,\r\n style: {fontFamily: 'poppins'},\r\n };\r\n chart.title = {\r\n text: null,\r\n };\r\n chart.colors = this.week_resources_colors;\r\n chart.xAxis = {\r\n categories: this.week_resources_categories\r\n };\r\n chart.yAxis = {\r\n min: 0,\r\n title: {\r\n text: this.strings.teacher_indicators_week_resources_yaxis_title\r\n }\r\n };\r\n chart.legend = {\r\n enabled: false\r\n };\r\n chart.series = this.week_resources_data;\r\n return chart;\r\n },\r\n\r\n build_weeks_sessions_chart() {\r\n let chart = new Object();\r\n chart.chart = {\r\n type: 'heatmap',\r\n backgroundColor: null,\r\n style: {fontFamily: 'poppins'},\r\n };\r\n chart.title = {\r\n text: null,\r\n };\r\n chart.xAxis = {\r\n categories: this.strings.weeks,\r\n };\r\n chart.yAxis = {\r\n categories: this.indicators.sessions.categories,\r\n title: null,\r\n reversed: true,\r\n };\r\n chart.colorAxis = {\r\n min: 0,\r\n minColor: '#E0E0E0',\r\n maxColor: '#118AB2'\r\n };\r\n chart.legend = {\r\n layout: 'horizontal',\r\n verticalAlign: 'bottom',\r\n };\r\n chart.tooltip = {\r\n formatter: function () {\r\n let days = vue.indicators.sessions.weeks[this.point.y][this.point.x] || '';\r\n let xCategoryName = vue.get_point_category_name(this.point, 'x');\r\n let yCategoryName = vue.get_point_category_name(this.point, 'y');\r\n let label = vue.strings.teacher_indicators_sessions;\r\n if (this.point.value == 1) {\r\n label = vue.strings.teacher_indicators_session;\r\n }\r\n return '<b>' + yCategoryName + ' ' + xCategoryName + '</b>: '\r\n + this.point.value +' ' + label + '<br/>' + days;\r\n }\r\n };\r\n chart.series = [{\r\n borderWidth: 2,\r\n borderColor: '#FAFAFA',\r\n data: this.indicators.sessions.data,\r\n }];\r\n return chart;\r\n },\r\n\r\n table_headers(){\r\n let headers = [\r\n { text: '', value : 'id', align : 'center', sortable : false},\r\n { text: this.strings.thead_name , value : 'firstname'},\r\n { text: this.strings.thead_lastname , value : 'lastname'},\r\n { text: this.strings.thead_email , value : 'email'},\r\n { text: this.strings.thead_progress , value : 'progress_percentage', align : 'center'},\r\n { text: this.strings.thead_sessions , value : 'sessions_number', align : 'center'},\r\n { text: this.strings.thead_time , value : 'inverted_time', align : 'center'},\r\n ];\r\n return headers;\r\n },\r\n\r\n get_picture_url(userid){\r\n let url = `${M.cfg.wwwroot}/user/pix.php?file=/${userid}/f1.jpg`;\r\n return url;\r\n },\r\n\r\n get_percentage_progress(value){\r\n return `${value} %`;\r\n },\r\n\r\n get_progress_tooltip(item){\r\n let module_label = this.strings.teacher_indicators_modules;\r\n let finished_label = this.strings.teacher_indicators_finished;\r\n if (item.cms.complete == 1) {\r\n module_label = this.strings.teacher_indicators_module;\r\n finished_label = this.strings.teacher_indicators_finalized;\r\n }\r\n return `${item.cms.complete} ${module_label} ${finished_label} ${this.strings.of_conector} ${item.cms.total}`;\r\n },\r\n\r\n get_point_category_name(point, dimension) {\r\n let series = point.series,\r\n isY = dimension === 'y',\r\n axis = series[isY ? 'yAxis' : 'xAxis'];\r\n return axis.categories[point[isY ? 'y' : 'x']];\r\n },\r\n\r\n capitalizeFirstLetter(string) {\r\n return string.charAt(0).toUpperCase() + string.slice(1);\r\n },\r\n\r\n isInt(n) {\r\n return n % 1 === 0;\r\n },\r\n\r\n open_chart_help(chart) {\r\n let contents = [];\r\n if (chart == \"week_resources\") {\r\n contents.push({\r\n title: this.strings.week_resources_help_title,\r\n description: this.strings.week_resources_help_description_p1,\r\n });\r\n contents.push({\r\n description: this.strings.week_resources_help_description_p2,\r\n });\r\n } else if (chart == \"weeks_sessions\") {\r\n contents.push({\r\n title: this.strings.weeks_sessions_help_title,\r\n description: this.strings.week_sessions_help_description_p1,\r\n });\r\n contents.push({\r\n description: this.strings.week_sessions_help_description_p2,\r\n });\r\n } else if (chart == \"progress_table\") {\r\n contents.push({\r\n title: this.strings.progress_table_help_title,\r\n description: this.strings.progress_table_help_description,\r\n });\r\n }\r\n this.help_contents = contents;\r\n if (this.help_contents.length) {\r\n this.help_dialog = true;\r\n }\r\n },\r\n\r\n update_help_dialog (value) {\r\n this.help_dialog = value;\r\n },\r\n\r\n get_timezone(){\r\n let information = `${this.strings.ss_change_timezone} ${this.timezone}`\r\n return information;\r\n },\r\n\r\n }\r\n })\r\n }\r\n\r\n return {\r\n init : init\r\n };\r\n });"],"file":"teacher.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/vue.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/vue.min.js new file mode 100644 index 0000000000000000000000000000000000000000..77a317c89be33956f1bbd7deec85d9768b3fbc95 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/vue.min.js @@ -0,0 +1,2 @@ +define ("local_fliplearning/vue",["local_fliplearning/config","vue"],function(a,b){return b}); +//# sourceMappingURL=vue.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/vue.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/vue.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..8e76276676f4bbc9e11c0161b008a59b4e388682 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/vue.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/vue.js"],"names":["define","unused","vue"],"mappings":"AAAAA,OAAM,0BAAC,CAAC,2BAAD,CAA8B,KAA9B,CAAD,CAAuC,SAASC,CAAT,CAAiBC,CAAjB,CAAsB,CAC3D,MAAOA,CAAAA,CACV,CAFC,CAAN","sourcesContent":["define(['local_fliplearning/config', 'vue'], function(unused, vue) {\r\n return vue;\r\n }\r\n);"],"file":"vue.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/vuetify.min.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/vuetify.min.js new file mode 100644 index 0000000000000000000000000000000000000000..6902d145f6fc2bf28970c65a945c92600e7760d6 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/vuetify.min.js @@ -0,0 +1,2 @@ +define ("local_fliplearning/vuetify",["local_fliplearning/config","vuetify"],function(a,b){return b}); +//# sourceMappingURL=vuetify.min.js.map diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/vuetify.min.js.map b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/vuetify.min.js.map new file mode 100644 index 0000000000000000000000000000000000000000..fd176c137316b1fbe684b7702a15d284e00f2c23 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/build/vuetify.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/vuetify.js"],"names":["define","unused","vuetify"],"mappings":"AAAAA,OAAM,8BAAC,CAAC,2BAAD,CAA8B,SAA9B,CAAD,CAA2C,SAASC,CAAT,CAAiBC,CAAjB,CAA0B,CACnE,MAAOA,CAAAA,CACV,CAFC,CAAN","sourcesContent":["define(['local_fliplearning/config', 'vuetify'], function(unused, vuetify) {\r\n return vuetify;\r\n }\r\n);"],"file":"vuetify.min.js"} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/alertify.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/alertify.js new file mode 100644 index 0000000000000000000000000000000000000000..3ab9164c92addd72d48614aa1e77a62d5b32ce1d --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/alertify.js @@ -0,0 +1,4 @@ +define(['local_fliplearning/config', 'alertify'], function(unused, alertify) { + return alertify; + } +); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/assignments.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/assignments.js new file mode 100644 index 0000000000000000000000000000000000000000..59feecfbd9f9d3690dca46a5345ba7f0fdd8b0d0 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/assignments.js @@ -0,0 +1,432 @@ +define(["local_fliplearning/vue", + "local_fliplearning/vuetify", + "local_fliplearning/axios", + "local_fliplearning/moment", + "local_fliplearning/pagination", + "local_fliplearning/chartdynamic", + "local_fliplearning/pageheader", + "local_fliplearning/emailform", + "local_fliplearning/helpdialog", + ], + function(Vue, Vuetify, Axios, Moment, Pagination, ChartDynamic, PageHeader, EmailForm, HelpDialog) { + "use strict"; + + function init(content) { + // console.log(content); + Vue.use(Vuetify) + Vue.component('pagination', Pagination); + Vue.component('chart', ChartDynamic); + Vue.component('pageheader', PageHeader); + Vue.component('emailform', EmailForm); + Vue.component('helpdialog', HelpDialog); + let vue = new Vue({ + delimiters: ["[[", "]]"], + el: "#submissions", + vuetify: new Vuetify(), + data() { + return { + dialog : false, + selected_users : [], + modulename : "", + moduleid : false, + strings : content.strings, + groups : content.groups, + userid : content.userid, + courseid : content.courseid, + timezone : content.timezone, + render_has : content.profile_render, + scriptname: content.scriptname, + loading : false, + errors : [], + pages : content.pages, + submissions: content.submissions, + email_strings: content.strings.email_strings, + + access: content.access, + assigns_submissions_colors: content.assigns_submissions_colors, + access_content_colors: content.access_content_colors, + access_chart_categories: [], + access_chart_series: [], + access_chart_users: [], + + help_dialog: false, + help_contents: [], + email_object_name: "", + } + }, + beforeMount(){ + this.generate_access_content_data(); + }, + mounted(){ + document.querySelector("#sessions-loader").style.display = "none"; + document.querySelector("#submissions").style.display = "block"; + setTimeout(function() { + vue.setGraphicsEventListeners(); + }, 1000); + }, + methods : { + get_help_content(){ + let contents = []; + contents.push({ + title: this.strings.section_help_title, + description: this.strings.section_help_description, + }); + return contents; + }, + + update_interactions(week){ + this.loading = true; + this.errors = []; + let data = { + action : "assignments", + userid : this.userid, + courseid : this.courseid, + weekcode : week.weekcode, + profile : this.render_has, + } + Axios({ + method:'get', + url: M.cfg.wwwroot + "/local/fliplearning/ajax.php", + params : data, + }).then((response) => { + if (response.status == 200 && response.data.ok) { + this.submissions = response.data.data.submissions; + this.access = response.data.data.access; + this.generate_access_content_data(); + } else { + this.error_messages.push(this.strings.error_network); + } + }).catch((e) => { + this.errors.push(this.strings.api_error_network); + }).finally(() => { + this.loading = false; + vue.addLogsIntoDB("viewed", "week_"+week.weekcode, "week_section", "Week section that allows you to obtain information on a specific week"); + vue.setGraphicsEventListeners(); + }); + return this.data; + }, + + build_assigns_submissions_chart() { + let chart = new Object(); + chart.chart = { + type: 'column', + backgroundColor: null, + style: {fontFamily: 'poppins'}, + }; + chart.title = { + text: null, + }; + chart.colors = this.assigns_submissions_colors; + chart.xAxis = { + categories: this.submissions.categories, + crosshair: true, + }; + chart.yAxis = { + min: 0, + title: { + text: this.strings.assignsubs_chart_yaxis + }, + allowDecimals: false, + }; + chart.tooltip = { + formatter: function () { + let label = this.x.split('</b>'); + label = label[0] || ''; + label = label.split('<b>'); + label = label[1] || ''; + let serie_name = this.series.name; + let value = this.y; + let students_label = vue.strings.students_text; + let send_mail = vue.strings.send_mail; + if (value == 1) { + students_label = vue.strings.student_text; + } + let text = '<b>' + label +'</b><br/>' + '<b>' + serie_name +': </b>' + + value + ' ' + students_label + '<br/>' + send_mail; + return text; + } + }; + chart.plotOptions = { + series: { + cursor: 'pointer', + point: { + events: { + click: function () { + vue.email_object_name = "assigns_submissions"; + let serie_name = this.category.split('</b>'); + serie_name = serie_name[0] || ''; + serie_name = serie_name.split('<b>'); + serie_name = serie_name[1] || ''; + vue.email_strings.subject = vue.email_strings.subject_prefix+" - "+serie_name; + + let x = this.x; + let column = this.series.colorIndex; + vue.dialog = true; + vue.selected_users = vue.submissions.users[x][column]; + vue.moduleid = vue.submissions.modules[x]; + vue.modulename = "assign"; + vue.scriptname = "test"; + } + } + } + } + }; + chart.series = this.submissions.data; + return chart; + }, + + build_access_content_chart() { + let chart = new Object(); + chart.chart = { + type: 'bar', + backgroundColor: null, + style: {fontFamily: 'poppins'}, + }; + chart.title = {text: null}; + chart.colors = this.access_content_colors; + chart.xAxis = { + categories: this.access_chart_categories, + title: { text: null }, + crosshair: true, + }; + chart.yAxis = { + min: 0, + title: { + text: this.strings.access_chart_yaxis_label, + }, + labels: { + overflow: 'justify' + }, + allowDecimals: false, + }; + chart.tooltip = { + formatter: function () { + let label = this.x; + let serie_name = this.series.name; + let value = this.y; + let students_label = vue.strings.students_text; + let send_mail = vue.strings.send_mail; + if (value == 1) { + students_label = vue.strings.student_text; + } + let text = '<b>' + label +'</b><br/>' + '<b>' + serie_name +': </b>' + + value + ' ' + students_label + '<br/>' + send_mail; + return text; + } + }; + chart.plotOptions = { + bar: { + dataLabels: { + enabled: false + } + }, + series: { + cursor: 'pointer', + point: { + events: { + click: function () { + vue.email_object_name = "access_content"; + let serie_name = this.category; + vue.email_strings.subject = vue.email_strings.subject_prefix+" - "+serie_name; + let x = this.x; + let column = this.series.colorIndex; + let users = vue.get_users(vue.access_chart_users[x][column]); + vue.selected_users = users; + let module = vue.get_moduletype(this.category); + vue.modulename = module.type; + vue.moduleid = module.id; + vue.dialog = true; + vue.scriptname = "test"; + } + } + } + } + }; + chart.series = this.access_chart_series; + return chart; + }, + + update_dialog (value) { + this.dialog = value; + }, + + generate_access_content_data() { + let usersIds = []; + this.access.users.forEach(user => { + usersIds.push(Number(user.id)); + }); + let selected_types_labels = []; + this.access.types.forEach(item => { + if (item.show) { + selected_types_labels.push(item.type); + } + }); + let selected_modules = []; + this.access.modules.forEach(module => { + if (selected_types_labels.includes(module.type)) { + selected_modules.push(module); + } + }); + let categories = []; + let modules_users = []; + let access_users_data = []; + let no_access_users_data = []; + selected_modules.forEach(module => { + categories.push(module.name); + let access_users = module.users; + let no_access_users = usersIds.filter(x => !access_users.includes(x)); + access_users_data.push(access_users.length); + no_access_users_data.push(no_access_users.length); + modules_users.push([access_users, no_access_users]); + }); + let series = [ + { name: this.strings.access, data: access_users_data }, + { name: this.strings.no_access, data: no_access_users_data }, + ]; + this.access_chart_categories = categories; + this.access_chart_series = series; + this.access_chart_users = modules_users; + }, + + get_users(ids) { + let users = []; + this.access.users.forEach(user => { + let userid = Number(user.id); + if (ids.includes(userid)) { + users.push(user); + } + }); + return users; + }, + + get_moduletype(modulename) { + let mod; + this.access.modules.forEach(module => { + if (module.name === modulename) { + mod = module; + } + }); + return mod; + }, + + open_chart_help(chart) { + let contents = []; + var action = ""; + var objectName = ""; + var objectType = ""; + var objectDescription = ""; + if (chart == "assigns_submissions") { + contents.push({ + title: this.strings.assigns_submissions_help_title, + description: this.strings.assigns_submissions_help_description_p1, + }); + contents.push({ + description: this.strings.assigns_submissions_help_description_p2, + }); + action = "viewed"; + objectType = "help"; + objectName = "assigns_submissions" + objectDescription = "Help section that provides information about the invested time chart"; + vue.addLogsIntoDB(action, objectName, objectType, objectDescription); + } else if (chart == "access_content") { + contents.push({ + title: this.strings.access_content_help_title, + description: this.strings.access_content_help_description_p1, + }); + contents.push({ + description: this.strings.access_content_help_description_p2, + }); + action = "viewed"; + objectType = "help"; + objectName = "access_content"; + objectDescription = "Help section that provides information about the sessions per hour chart"; + vue.addLogsIntoDB(action, objectName, objectType, objectDescription); + } + this.help_contents = contents; + if (this.help_contents.length) { + this.help_dialog = true; + } + }, + + update_help_dialog (value) { + this.help_dialog = value; + }, + + get_timezone(){ + let information = `${this.strings.ss_change_timezone} ${this.timezone}` + return information; + }, + + setGraphicsEventListeners() { + let graphics = document.querySelectorAll('.highcharts-container'); + if(graphics.length<1) { + setTimeout(vue.setGraphicsEventListeners, 500); + } else { + graphics[0].id="submissions"; + graphics[1].id="accessContent"; + graphics.forEach((graph) => { + graph.addEventListener('mouseenter', vue.addLogsViewGraphic); + }) + } + }, + + addLogsViewGraphic(e) { + event.stopPropagation(); + var action = ""; + var objectName = ""; + var objectType = ""; + var objectDescription = ""; + switch(e.target.id) { + case "submissions": + action = "viewed"; + objectName = "assigns_submissions"; + objectType = "chart"; + objectDescription = "Chart showing the work submited by the students"; + break; + case "accessContent": + action = "viewed"; + objectName = "access_content"; + objectType = "chart"; + objectDescription = "Chart showing the course content accessed by the students"; + break; + default: + action = "viewed"; + objectName = ""; + objectType = "chart"; + objectDescription = "A chart"; + break; + } + vue.addLogsIntoDB(action, objectName, objectType, objectDescription); + }, + + addLogsIntoDB(action, objectName, objectType, objectDescription) { + let data = { + courseid: content.courseid, + userid: content.userid, + action: "addLogs", + sectionname: "TASKS_MONITORING", + actiontype: action, + objectType: objectType, + objectName: objectName, + currentUrl: document.location.href, + objectDescription: objectDescription, + }; + Axios({ + method:'get', + url: M.cfg.wwwroot + "/local/fliplearning/ajax.php", + params : data, + }).then((response) => { + if (response.status == 200 && response.data.ok) { + } + }).catch((e) => { + }); + }, + + } + }) + + } + return { + init : init + }; + }); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/axios.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/axios.js new file mode 100644 index 0000000000000000000000000000000000000000..0af455f3a47601ce801895d91cf35e33b0b2d175 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/axios.js @@ -0,0 +1,4 @@ +define(['local_fliplearning/config', 'axios'], function(unused, axios) { + return axios; + } +); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/chartdynamic.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/chartdynamic.js new file mode 100644 index 0000000000000000000000000000000000000000..e109c00c5a35eb92d9369b8ec715c1d44315b440 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/chartdynamic.js @@ -0,0 +1,125 @@ +define([ + 'highcharts', + 'highcharts/highcharts-3d', + 'highcharts/highcharts-more', + 'highcharts/modules/heatmap', + 'highcharts/modules/exporting', + 'highcharts/modules/export-data', + 'highcharts/modules/accessibility', + 'highcharts/modules/no-data-to-display', + ], + function(Highcharts) { + return { + template: `<div v-bind:id="container"></div>`, + props: ['container', 'chart', 'lang'], + data() { + return { + } + }, + mounted() { + let self = this; + (this.lang) && Highcharts.setOptions({ + lang: this.lang, + credits: { enabled: false }, + exporting: { + buttons: { + contextButton: { + menuItems: [{ + text: this.lang.downloadPNG, + onclick: function () { + this.exportChart({ + type: 'image/png' + }); + self.$parent.$root.addLogsIntoDB("downloaded", self.$el.id, "chart", "A chart"); + } + },{ + text: this.lang.downloadJPEG, + onclick: function () { + this.exportChart({ + type: 'image/jpeg' + }); + self.$parent.$root.addLogsIntoDB("downloaded", self.$el.id, "chart", "A chart"); + } + },{ + text: this.lang.downloadPDF, + onclick: function () { + this.exportChart({ + type: 'application/pdf' + }); + self.$parent.$root.addLogsIntoDB("downloaded", self.$el.id, "chart", "A chart"); + } + },{ + text: this.lang.downloadSVG, + onclick: function () { + this.exportChart({ + type: 'image/svg+xml' + }); + self.$parent.$root.addLogsIntoDB("downloaded", self.$el.id, "chart", "A chart"); + } + },{ + text: this.lang.downloadXLS, + onclick: function () { + this.downloadXLS(); + self.$parent.$root.addLogsIntoDB("downloaded", self.$el.id, "chart", "A chart"); + } + },{ + text: this.lang.downloadCSV, + onclick: function () { + this.downloadCSV(); + self.$parent.$root.addLogsIntoDB("downloaded", self.$el.id, "chart", "A chart"); + } + }], + symbol: 'menuball', + symbolStroke: '#118AB2' + } + } + } + }); + this._highchart = Highcharts.chart(this.container, this.chart); + + Highcharts.event + let chartLegends = this._highchart.legend.allItems; + let action = ""; + let objectName = ""; + let objectType = ""; + let objectDescription = ""; + chartLegends.forEach(filter => { + filter.legendGroup.element.addEventListener('click', function() { + action = "filtered"; + objectName = self.$el.id; + objectType = "chart"; + objectDescription = "Filtered a part of the "+objectName+" chart"; + if(typeof self.$parent.$root.addLogsIntoDB === "function") { + self.$parent.$root.addLogsIntoDB(action, objectName, objectType, objectDescription); + } + }) + }) + }, + watch: { + chart: { + deep: true, + handler(chart) { + this._highchart.update(chart); + let chartLegends = this._highchart.legend.allItems; + let self = this; + let action = ""; + let objectName = ""; + let objectType = ""; + let objectDescription = ""; + chartLegends.forEach(filter => { + filter.legendGroup.element.addEventListener('click', function() { + action = "filtered"; + objectName = self.$el.id; + objectType = "chart"; + objectDescription = "Filtered a part of the "+objectName+" chart"; + if(typeof self.$parent.$root.addLogsIntoDB === "function") { + self.$parent.$root.addLogsIntoDB(action, objectName, objectType, objectDescription); + } + }) + }) + }, + } + } + + }; +}); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/chartstatic.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/chartstatic.js new file mode 100644 index 0000000000000000000000000000000000000000..613c6324ca2a801b29106f12c86153016cc66ab8 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/chartstatic.js @@ -0,0 +1,95 @@ +define([ + 'highcharts', + 'highcharts/highcharts-3d', + 'highcharts/highcharts-more', + 'highcharts/modules/heatmap', + 'highcharts/modules/exporting', + 'highcharts/modules/export-data', + 'highcharts/modules/accessibility', + 'highcharts/modules/no-data-to-display'], + function(Highcharts) { + return { + template: `<div v-bind:id="container"></div>`, + props: ['container', 'chart', 'lang', 'test'], + data() { + return { } + }, + mounted() { + let self = this; + (this.lang) && Highcharts.setOptions({ + lang: this.lang, + credits: { enabled: false }, + exporting: { + buttons: { + contextButton: { + menuItems: [{ + text: this.lang.downloadPNG, + onclick: function () { + this.exportChart({ + type: 'image/png' + }); + self.$parent.$root.addLogsIntoDB("downloaded", self.$el.id, "chart", "A chart"); + } + },{ + text: this.lang.downloadJPEG, + onclick: function () { + this.exportChart({ + type: 'image/jpeg' + }); + self.$parent.$root.addLogsIntoDB("downloaded", self.$el.id, "chart", "A chart"); + } + },{ + text: this.lang.downloadPDF, + onclick: function () { + this.exportChart({ + type: 'application/pdf' + }); + self.$parent.$root.addLogsIntoDB("downloaded", self.$el.id, "chart", "A chart"); + } + },{ + text: this.lang.downloadSVG, + onclick: function () { + this.exportChart({ + type: 'image/svg+xml' + }); + self.$parent.$root.addLogsIntoDB("downloaded", self.$el.id, "chart", "A chart"); + } + },{ + text: this.lang.downloadXLS, + onclick: function () { + this.downloadXLS(); + self.$parent.$root.addLogsIntoDB("downloaded", self.$el.id, "chart", "A chart"); + } + },{ + text: this.lang.downloadCSV, + onclick: function () { + this.downloadCSV(); + self.$parent.$root.addLogsIntoDB("downloaded", self.$el.id, "chart", "A chart"); + } + }], + symbol: 'menuball', + symbolStroke: '#118AB2' + } + } + } + }); + this._highchart = Highcharts.chart(this.container, this.chart); + let chartLegends = this._highchart.legend.allItems; + let action = ""; + let objectName = ""; + let objectType = ""; + let objectDescription = ""; + chartLegends.forEach(filter => { + filter.legendGroup.element.addEventListener('click', function() { + action = "filtered"; + objectName = self.$el.id; + objectType = "chart"; + objectDescription = "Filtered a part of the "+objectName+" chart"; + if(typeof self.$parent.$root.addLogsIntoDB === "function") { + self.$parent.$root.addLogsIntoDB(action, objectName, objectType, objectDescription); + } + }) + }) + } + }; + }); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/config.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/config.js new file mode 100644 index 0000000000000000000000000000000000000000..0ae5b68654f60f6c22417a92947e1e07bf3ce093 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/config.js @@ -0,0 +1,32 @@ +define([],function() { + "use strict"; + window.requirejs.config({ + packages: [{ + name: 'highcharts', + main: 'highcharts' + }], + paths: { + "vue" : M.cfg.wwwroot + '/local/fliplearning/js/vue', + "vuetify" : M.cfg.wwwroot + '/local/fliplearning/js/vuetify', + "axios": M.cfg.wwwroot + '/local/fliplearning/js/axios', + "sortablejs": M.cfg.wwwroot + '/local/fliplearning/js/sortablejs', + "draggable": M.cfg.wwwroot + '/local/fliplearning/js/draggable', + "datepicker": M.cfg.wwwroot + '/local/fliplearning/js/datepicker', + "moment": M.cfg.wwwroot + '/local/fliplearning/js/moment', + "momenttimezone": M.cfg.wwwroot + '/local/fliplearning/js/moment-timezone', + "alertify": M.cfg.wwwroot + '/local/fliplearning/js/alertify', + "highcharts": M.cfg.wwwroot + '/local/fliplearning/js/highcharts/' + }, + shim: { + 'vue' : {exports: 'vue'}, + 'vuetify': {deps: ['vue'] , exports: 'vuetify'}, + 'axios': {exports: 'axios'}, + 'sortablejs': {deps: ['vue'], exports: 'sortablejs'}, + 'draggable': {deps: ['sortablejs'], exports: 'draggable'}, + 'datepicker': {deps: ['vue'], exports: 'datepicker'}, + 'moment': {deps: ['vue'], exports: 'moment'}, + 'momenttimezone': {exports: 'momenttimezone'}, + 'alertify': {exports: 'alertify'}, + } + }); +}); diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/datepicker.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/datepicker.js new file mode 100644 index 0000000000000000000000000000000000000000..707f9c88a213d527999ab7dfca5d8c5a2b610fb7 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/datepicker.js @@ -0,0 +1,4 @@ +define(['local_fliplearning/config', 'datepicker'], function(unused, datepicker) { + return datepicker; + } +); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/draggable.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/draggable.js new file mode 100644 index 0000000000000000000000000000000000000000..bbc3836730e59dda54ba6c3471b1323aa54d353b --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/draggable.js @@ -0,0 +1,4 @@ +define(['local_fliplearning/config', 'draggable'], function(unused, draggable) { + return draggable; + } +); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/dropout.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/dropout.js new file mode 100644 index 0000000000000000000000000000000000000000..93dbb25c557cd08d3e8b9b82d299006e000b5ae4 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/dropout.js @@ -0,0 +1,853 @@ +define(["local_fliplearning/vue", + "local_fliplearning/vuetify", + "local_fliplearning/axios", + "local_fliplearning/moment", + "local_fliplearning/momenttimezone", + "local_fliplearning/pagination", + "local_fliplearning/chartdynamic", + "local_fliplearning/pageheader", + "local_fliplearning/emailform", + "local_fliplearning/modulesform", + "local_fliplearning/helpdialog", + ], + function(Vue, Vuetify, Axios, Moment, MomentTimezone, Pagination, ChartDynamic, PageHeader, EmailForm, ModulesForm, HelpDialog) { + "use strict"; + + function init(content) { + // console.log(content); + Vue.use(Vuetify); + Vue.component('pagination', Pagination); + Vue.component('chart', ChartDynamic); + Vue.component('pageheader', PageHeader); + Vue.component('emailform', EmailForm); + Vue.component('modulesform', ModulesForm); + Vue.component('helpdialog', HelpDialog); + let vue = new Vue({ + delimiters: ["[[", "]]"], + el: "#dropout", + vuetify: new Vuetify(), + data() { + return { + strings : content.strings, + groups : content.groups, + userid : content.userid, + courseid : content.courseid, + timezone : content.timezone, + render_has : content.profile_render, + loading : false, + errors : [], + pages : content.pages, + + dropout: content.dropout, + modules_access_colors: content.modules_access_colors, + week_modules_colors: content.week_modules_colors, + sessions_evolution_colors: content.sessions_evolution_colors, + user_grades_colors: content.user_grades_colors, + selected_cluster: [], + cluster_users: [], + selected_user: null, + search: null, + week_modules_chart_data: [], + week_modules_chart_categories: [], + selected_sections: [], + sessions_evolution_data: [], + user_grades_categories: [], + user_grades_data: [], + modules_dialog: false, + + email_users: [], + email_dialog : false, + modulename : "", + moduleid : false, + email_strings: content.strings.email_strings, + + help_dialog: false, + help_contents: [], + email_object_name: "", + } + }, + beforeMount(){ + if (this.dropout.clusters.length) { + this.set_modules_in_sections(); + this.selected_cluster = this.dropout.clusters[0]; + this.change_cluster(this.selected_cluster.users); + }; + }, + mounted(){ + document.querySelector("#sessions-loader").style.display = "none"; + document.querySelector("#dropout").style.display = "block"; + setTimeout(function() { + vue.setGraphicsEventListeners(); + }) + + }, + computed :{ + + }, + methods : { + get_help_content(){ + let contents = []; + contents.push({ + title: this.strings.section_help_title, + description: this.strings.section_help_description, + }); + return contents; + }, + + set_modules_in_sections() { + let sectionsMap = new Map(); + let sectionid = 0, modules = []; + this.dropout.cms.forEach(cm => { + sectionid = Number(cm.section); + if (!sectionsMap.has(sectionid)) { + sectionsMap.set(sectionid, [cm]); + } else { + sectionsMap.get(sectionid).push(cm); + } + }); + this.dropout.sections.forEach(section => { + sectionid = Number(section.sectionid); + section.sectionid = sectionid; + section.modules = (sectionsMap.has(sectionid)) ? sectionsMap.get(sectionid) : []; + }); + }, + + change_cluster(users) { + let selected_users = []; + this.dropout.users.forEach(user => { + if (users.includes(user.id)) { + selected_users.push(user); + } + }); + if (selected_users.length) { + this.cluster_users = selected_users; + let user = this.cluster_users[0]; + if(!isNaN(parseInt(this.selected_cluster.number))) { + this.addLogsIntoDB("viewed", "group_"+parseInt(this.selected_cluster.number)+1, "group", "Viewed a group"); + } + this.change_user(user); + } else { + this.cluster_users = []; + this.selected_user = null; + } + }, + + change_user(user) { + let oldUser = this.selected_user; + this.selected_user = user; + this.calculate_week_modules_access(); + this.calculate_sessions_evolution(); + this.calculate_user_grades(); + if(oldUser!=null) { + if(oldUser.username != this.selected_user.username) { + this.addLogsIntoDB("viewed", "user_"+user.username, "user_details", "Viewed the "+ user.username + " details (charts, statistics, etc.)"); + } + } + }, + + calculate_week_modules_access() { + let sectionid = 0, moduleid = 0, weekcompletecms = 0, weekviewedcms = 0; + let modules = [], completecms = [], viewedcms = [], categories = []; + let user_cm; + this.dropout.weeks.forEach(week => { + weekcompletecms = 0, weekviewedcms = 0; + week.sections.forEach(section => { + sectionid = Number(section.sectionid); + section.sectionid = sectionid; + + modules = this.sections_modules(sectionid); + modules.forEach(module => { + moduleid = Number(module.id); + module.id = moduleid; + + user_cm = this.selected_user.cms.modules[`cm${module.id}`]; + if (user_cm) { + (user_cm.complete) && weekcompletecms++; + (user_cm.viewed) && weekviewedcms++; + } + }); + }); + completecms.push(weekcompletecms); + viewedcms.push(weekviewedcms); + categories.push(`${week.name} ${(week.position + 1)}`); + }); + this.week_modules_chart_categories = categories; + this.week_modules_chart_data = [ + { name: this.strings.modules_access_chart_series_viewed, data: viewedcms }, + { name: this.strings.modules_access_chart_series_complete, data: completecms } + ]; + }, + + calculate_sessions_evolution() { + let sessions_data = [], time_data = []; + let sumtime = 0, sumsessions = 0, time = 0, timestamp = 0; + this.selected_user.sessions.forEach(session => { + timestamp = Number(session.start) * 1000; + time = (Number(session.duration)) / 60; + sumtime += time; + sumsessions++; + sessions_data.push({ x: timestamp, y: sumsessions }); + time_data.push({ x: timestamp, y: sumtime }); + }); + this.sessions_evolution_data = [ + { name: this.strings.sessions_evolution_chart_legend1, yAxis: 0, data: sessions_data }, + { name: this.strings.sessions_evolution_chart_legend2, yAxis: 1, data: time_data }, + ]; + }, + + calculate_user_grades() { + let categories = [], course_grades = [], user_grades = []; + let user_grade = 0, user_name = this.selected_user.firstname; + if (this.selected_user.gradeitems) { + this.selected_user.gradeitems.forEach(item => { + user_grade = (Number(item.finalgrade) * 100) / Number(item.grademax); + categories.push(item.itemname); + course_grades.push(item.average_percentage); + user_grades.push(user_grade); + }); + this.user_grades_data = [ + { name: user_name, data: user_grades }, + { name: this.strings.user_grades_chart_legend, data: course_grades }, + ]; + this.user_grades_categories = categories; + } + }, + + build_modules_access_chart() { + let chart = new Object(); + chart.chart = { + type: 'bar', + backgroundColor: null, + style: {fontFamily: 'poppins'}, + }; + chart.title = { text: null}; + chart.colors = this.modules_access_colors; + chart.xAxis = { + type: 'category', + }; + chart.yAxis = { + allowDecimals: false, + title: { + enabled: true, + text: this.strings.modules_amount, + } + }; + chart.tooltip = { + shared: true, + formatter: function () { + let module_text = (this.y == 1) ? vue.strings.module_label : vue.strings.modules_label; + return '<b>' + this.points[0].key + '</b>: ' + this.y + ' ' + module_text + '<br/>' + + '<i>'+ vue.strings.modules_details + '<i/>'; + } + }; + chart.plotOptions = { + series: { + cursor: 'pointer', + point: { + events: { + click: function () { + vue.open_modules_modal(this.x); + vue.addLogsIntoDB("viewed", vue.selected_user.username+"_module_access", "chart_details", "Provide details informations about the consulted resources"); + } + } + } + } + }, + chart.legend = { + enabled: false + }; + chart.series = [{ + colorByPoint: true, + data: [ + {name: this.strings.modules_access_chart_series_viewed, y: this.selected_user.cms.viewed}, + {name: this.strings.modules_access_chart_series_complete, y: this.selected_user.cms.complete}, + {name: this.strings.modules_access_chart_series_total, y: this.selected_user.cms.total} + ] + }]; + return chart; + }, + + build_week_modules_chart() { + let chart = new Object(); + chart.chart = { + type: 'column', + backgroundColor: null, + style: {fontFamily: 'poppins'}, + }; + chart.title = {text: null}; + chart.colors = this.week_modules_colors; + chart.xAxis = { + categories: this.week_modules_chart_categories, + title: { + text: null + }, + crosshair: true + }; + chart.yAxis = { + allowDecimals: false, + title: { + text: this.strings.modules_amount, + } + }; + chart.tooltip = { + shared: true, + useHTML: true, + formatter: function () { + let text1 = '', text2 = ''; + if (this.points[0]) { + let module_text_viewed = (this.points[0].y == 1) ? vue.strings.module_label : vue.strings.modules_label; + let viewed_series_name = this.points[0].series.name; + text1 = `<b style="color: ${this.points[0].color}">${viewed_series_name}: </b> + ${this.points[0].y} ${module_text_viewed}<br/>`; + } + if (this.points[1]) { + let module_text_completed = (this.points[1].y == 1) ? vue.strings.module_label : vue.strings.modules_label; + let completed_series_name = this.points[1].series.name; + text2 = `<b style="color: ${this.points[1].color}">${completed_series_name}: </b> + ${this.points[1].y} ${module_text_completed}<br/>`; + } + return `${this.x} <br/> ${text1}${text2} <i>${vue.strings.modules_details}<i/>`; + } + }; + chart.plotOptions = { + series: { + cursor: 'pointer', + point: { + events: { + click: function () { + vue.open_modules_modal(this.colorIndex, this.x); + vue.addLogsIntoDB("viewed", vue.selected_user.username+"_week_modules", "chart_details", "Provide details informations about the consulted resources"); + } + } + } + } + }; + chart.series = this.week_modules_chart_data; + return chart; + }, + + build_sessions_evolution_chart() { + let chart = new Object(); + chart.chart = { + zoomType: 'x', + backgroundColor: null, + style: {fontFamily: 'poppins'}, + }; + chart.title = {text: null}; + chart.colors = this.sessions_evolution_colors; + chart.xAxis = { + type: 'datetime' + }; + chart.yAxis = [{ + allowDecimals: false, + title: { text: this.strings.sessions_evolution_chart_xaxis1 } + }, { + title: { text: this.strings.sessions_evolution_chart_xaxis2 }, + opposite: true + }]; + chart.tooltip = { + shared: true, + useHTML: true, + formatter: function () { + let date_label = vue.calculate_timezone_date_string(this.x); + let text1 = (this.points[0]) ? vue.get_sessions_evolution_tooltip(this.points[0]) : ''; + let text2 = (this.points[1]) ? vue.get_sessions_evolution_tooltip(this.points[1]) : ''; + return `<small>${date_label}</small><br/>${text1}${text2}`; + } + }; + chart.series = this.sessions_evolution_data; + return chart; + }, + + build_user_grades_chart() { + let chart = new Object(); + chart.chart = { + type: 'column', + backgroundColor: null, + style: {fontFamily: 'poppins'}, + }; + chart.title = {text: null}; + chart.colors = this.user_grades_colors; + chart.xAxis = { + crosshair: true, + categories: this.user_grades_categories, + }; + chart.yAxis = { + allowDecimals: false, + max: 100, + labels: { + format: '{value} %', + }, + title: { text: this.strings.user_grades_chart_yaxis } + }; + chart.tooltip = { + shared: true, + useHTML: true, + formatter: function () { + let itemname = this.x; + let position = this.points[0].point.x; + let item = vue.selected_user.gradeitems[position]; + let header = `<small>${itemname}</small><br/>`; + let footer = `<i>(${vue.strings.user_grades_chart_view_activity})</i><br/>`; + let body = ''; + if (item.gradecount == 0) { + body = vue.strings.user_grades_chart_tooltip_no_graded; + } else { + let text1 = (this.points[0]) ? vue.get_user_grades_tooltip(this.points[0], item) : ''; + let text2 = (this.points[1]) ? vue.get_user_grades_tooltip(this.points[1], item) : ''; + body = `${text1}${text2}${footer}`; + } + return `${header}${body}`; + } + }; + chart.plotOptions = { + series: { + cursor: 'pointer', + point: { + events: { + click: function () { + let position = this.x; + let item = vue.selected_user.gradeitems[position]; + let url = `${M.cfg.wwwroot}/mod/${item.itemmodule}/view.php?id=${item.coursemoduleid}`; + window.open(url, '_blank'); + vue.addLogsIntoDB("viewed", vue.selected_user.username+"_user_grades", "chart_details", "Provide informations about a certain test"); + } + } + } + } + }; + chart.series = this.user_grades_data; + return chart; + }, + + get_sessions_evolution_tooltip (point) { + let text = '', sessions, sessions_suffix, sessions_prefix, time_prefix, time; + if (point.colorIndex == 0) { + sessions = point.y; + sessions_suffix = (sessions == 1) ? vue.strings.session_text : vue.strings.sessions_text; + sessions_prefix = point.series.name; + text = `<b style="color: ${point.color}">${sessions_prefix}: </b> + ${sessions} ${sessions_suffix}<br/>`; + } else { + time_prefix = point.series.name; + time = this.convert_time(point.y * 60); + text = `<b style="color: ${point.color}">${time_prefix}: </b> + ${time}<br/>`; + } + return text; + }, + + get_user_grades_tooltip (point, item) { + let serie_name = point.series.name, user_grade = 0; + let finalgrade = Number(item.finalgrade), average = Number(item.average), grademax = Number(item.grademax); + grademax = this.isInt(grademax) ? grademax : grademax.toFixed(2); + if (point.colorIndex == 0) { + user_grade = this.isInt(finalgrade) ? finalgrade : finalgrade.toFixed(2); + } else { + user_grade = this.isInt(average) ? average : average.toFixed(2); + } + return `<b style="color: ${point.color}">${serie_name}: </b> + ${user_grade}/${grademax}<br/>`; + }, + + calculate_timezone_date_string(timestamp) { + let dat, weekday, monthday, month, time; + if (Moment.tz.zone(this.timezone)) { + dat = Moment(timestamp).tz(this.timezone); + weekday = dat.day(); + monthday = dat.date(); + month = dat.month(); + time = dat.format('HH:mm:ss'); + } else { + let tz = Intl.DateTimeFormat().resolvedOptions().timeZone; + dat = new Date(timestamp); + weekday = dat.getDay(); + monthday = dat.getDate(); + month = dat.getMonth(); + time = `${dat.getHours()}:${dat.getMinutes()}:${dat.getSeconds()} (${tz})`; + } + weekday = this.strings.chart.weekdays[weekday]; + month = this.strings.chart.shortMonths[month]; + return `${weekday}, ${month} ${monthday}, ${time}`; + }, + + convert_time(time) { + time *= 60; // pasar los minutos a segundos + let h = this.strings.hours_short; + let m = this.strings.minutes_short; + let s = this.strings.seconds_short; + let hours = Math.floor(time / 3600); + let minutes = Math.floor((time % 3600) / 60); + let seconds = Math.floor(time % 60); + let text; + if (hours >= 1) { + if (minutes >= 1) { + text = `${hours}${h} ${minutes}${m}`; + } else { + text = `${hours}${h}`; + } + } else if ((minutes >= 1)) { + if (seconds >= 1) { + text = `${minutes}${m} ${seconds}${s}`; + } else { + text = `${minutes}${m}`; + } + } else { + text = `${seconds}${s}`; + } + return text; + }, + + open_modules_modal(type, weekposition){ + let sections = this.dropout.sections; + if (Number.isInteger(weekposition)) { + sections = []; + let section; + let week = this.dropout.weeks[weekposition]; + week.sections.forEach(item => { + section = { + sectionid: item.sectionid, + name: item.name, + modules: this.sections_modules(item.sectionid) + }; + sections.push(section); + }); + } + sections.forEach(section => { + section.modules.forEach(module => { + module.complete = false; + module.viewed = false; + module.interactions = 0; + let user_cm = this.selected_user.cms.modules[`cm${module.id}`]; + if (user_cm) { + module.complete = user_cm.complete; + module.viewed = user_cm.viewed; + module.interactions = user_cm.interactions; + } + }); + }); + + this.selected_sections = sections; + this.modules_dialog = true; + }, + + sections_modules(sectionid) { + let modules = []; + let sections = this.dropout.sections; + for (let i = 0; i < sections.length; i++) { + if (sections[i].sectionid == sectionid) { + if (sections[i].modules) { + modules = sections[i].modules; + } + break; + } + } + return modules; + }, + + get_user_module(moduleid) { + let module; + let cms = this.selected_user.cms.modules; + for (let i = 0; i < cms.length; i++) { + cms[i].id = Number(cms[i].id); + if (cms[i].id == moduleid) { + module = cms[i]; + break; + } + } + return module; + }, + + table_headers(){ + let headers = [ + { text: '', value : 'id', align : 'center', sortable : false}, + { text: this.strings.thead_name , value : 'firstname'}, + { text: this.strings.thead_lastname , value : 'lastname'}, + { text: this.strings.thead_progress , value : 'progress_percentage'}, + ]; + return headers; + }, + + get_picture_url(userid){ + return `${M.cfg.wwwroot}/user/pix.php?file=/${userid}/f1.jpg`; + }, + + get_user_fullname(){ + return `${this.selected_user.firstname} ${this.selected_user.lastname}`; + }, + + get_username(){ + return `@${this.selected_user.username}`; + }, + + see_profile () { + let id = this.selected_user.id; + let url = M.cfg.wwwroot + '/user/view.php?id='+id+'&course='+vue.courseid; + window.open(url); + }, + + get_progress_message(){ + let module_label = this.strings.modules_label; + let finished_label = this.strings.finisheds_label; + if (this.selected_user.cms.complete == 1) { + module_label = this.strings.module_label; + finished_label = this.strings.finished_label; + } + return `${this.selected_user.cms.complete} ${module_label} ${finished_label} ${this.strings.of_conector} ${this.dropout.total_cms}`; + }, + + get_progress_percentage() { + return `${this.selected_user.progress_percentage} %`; + }, + + get_student_grade() { + let grade = this.selected_user.coursegrade; + grade.finalgrade = Number(grade.finalgrade); + grade.maxgrade = Number(grade.maxgrade); + let student_grade = this.isInt(grade.finalgrade) ? grade.finalgrade : grade.finalgrade.toFixed(2); + let max_grade = this.isInt(grade.maxgrade) ? grade.maxgrade : grade.maxgrade.toFixed(2); + return `${student_grade}/${max_grade}`; + }, + + get_sendmail_user_text() { + return `${this.strings.send_mail_to_user} ${this.selected_user.firstname}`; + }, + + sendmail(type) { + this.strings.email_strings.subject = this.strings.email_strings.subject_prefix; + this.modulename = "course"; + this.moduleid = this.courseid; + if (type == 1) { + this.email_object_name = this.selected_user.username; + this.email_users = [this.selected_user]; + this.email_dialog = true; + } else if (type == 2) { + if(!isNaN(parseInt(this.selected_cluster.number))) { + this.email_object_name = parseInt(this.selected_cluster.number)+1; + } else { + this.email_object_name= "unknown"; + } + this.email_users = this.cluster_users; + this.email_dialog = true; + } + }, + + update_email_dialog (value) { + this.email_dialog = value; + }, + + update_modules_dialog (value) { + this.modules_dialog = value; + }, + + isInt(n) { + return n % 1 === 0; + }, + + generate_dropout_data(){ + this.loading = true; + this.errors = []; + let data = { + action : "dropoutdata", + userid : this.userid, + courseid : this.courseid, + profile : this.render_has, + } + Axios({ + method:'get', + url: M.cfg.wwwroot + "/local/fliplearning/ajax.php", + params : data, + }).then((response) => { + if (response.status == 200 && response.data.ok) { + location.reload(); + } else { + this.error_messages.push(this.strings.error_network); + } + }).catch((e) => { + this.errors.push(this.strings.api_error_network); + }).finally(() => { + this.loading = false; + }); + return this.data; + }, + + open_chart_help(chart) { + let contents = []; + let action = ""; + let objectType = ""; + let objectName = ""; + let objectDescription = ""; + if (chart == "group_students") { + contents.push({ + title: this.strings.group_students_help_title, + description: this.strings.group_students_help_description_p1, + }); + contents.push({ + description: this.strings.group_students_help_description_p2, + }); + action = "viewed"; + objectType = "help"; + objectName = "group_student"; + objectDescription = "Help section that provides information about the group students section"; + this.addLogsIntoDB(action, objectName, objectType, objectDescription); + } else if (chart == "modules_access") { + contents.push({ + title: this.strings.modules_access_help_title, + description: this.strings.modules_access_help_description_p1, + }); + contents.push({ + description: this.strings.modules_access_help_description_p2, + }); + contents.push({ + description: this.strings.modules_access_help_description_p3, + }); + action = "viewed"; + objectType = "help"; + objectName = "modules_access"; + objectDescription = "Help section that provides information about the modules access chart"; + this.addLogsIntoDB(action, objectName, objectType, objectDescription); + } else if (chart == "week_modules") { + contents.push({ + title: this.strings.week_modules_help_title, + description: this.strings.week_modules_help_description_p1, + }); + contents.push({ + description: this.strings.week_modules_help_description_p2, + }); + contents.push({ + description: this.strings.week_modules_help_description_p3, + }); + action = "viewed"; + objectType = "help"; + objectName = "week_modules"; + objectDescription = "Help section that provides information about the week modules chart"; + this.addLogsIntoDB(action, objectName, objectType, objectDescription); + } else if (chart == "sessions_evolution") { + contents.push({ + title: this.strings.sessions_evolution_help_title, + description: this.strings.sessions_evolution_help_description_p1, + }); + contents.push({ + description: this.strings.sessions_evolution_help_description_p2, + }); + contents.push({ + description: this.strings.sessions_evolution_help_description_p3, + }); + action = "viewed"; + objectType = "help"; + objectName = "sessions_evolution"; + objectDescription = "Help section that provides information about the sessions evolution chart"; + this.addLogsIntoDB(action, objectName, objectType, objectDescription); + } else if (chart == "user_grades") { + contents.push({ + title: this.strings.user_grades_help_title, + description: this.strings.user_grades_help_description_p1, + }); + contents.push({ + description: this.strings.user_grades_help_description_p2, + }); + contents.push({ + description: this.strings.user_grades_help_description_p3, + }); + action = "viewed"; + objectType = "help"; + objectName = "user_grades"; + objectDescription = "Help section that provides information about the user grades chart"; + this.addLogsIntoDB(action, objectName, objectType, objectDescription); + } + this.help_contents = contents; + if (this.help_contents.length) { + this.help_dialog = true; + } + }, + + update_help_dialog (value) { + this.help_dialog = value; + }, + + get_timezone(){ + let information = `${this.strings.ss_change_timezone} ${this.timezone}` + return information; + }, + + setGraphicsEventListeners() { + let graphics = document.querySelectorAll('.highcharts-container'); + graphics[0].id="courseRessources"; + graphics[1].id="weekRessources"; + graphics[2].id="sessionsAndInvestedTime"; + graphics[3].id="qualifications"; + graphics.forEach((graph) => { + graph.addEventListener('mouseenter', vue.addLogsViewGraphic); + }) + }, + + addLogsViewGraphic(e) { + event.stopPropagation(); + var action = ""; + var objectName = ""; + var objectType = ""; + var objectDescription = ""; + switch(e.target.id) { + case "courseRessources": + action = "viewed"; + objectName = vue.selected_user.username+"_modules_access"; + objectType = "chart"; + objectDescription = "Bar chart that shows"; + break; + case "weekRessources": + action = "viewed"; + objectName = vue.selected_user.username+"_week_modules"; + objectType = "chart"; + objectDescription = "Chart showing"; + break; + case "sessionsAndInvestedTime": + action = "viewed"; + objectName = vue.selected_user.username+"_sessions_evolution"; + objectType = "chart"; + objectDescription = "Chart showing "; + break; + case "qualifications": + action = "viewed"; + objectName = vue.selected_user.username+"_user_grades"; + objectType = "chart"; + objectDescription = "Chart showing "; + break; + default: + action = "viewed"; + objectName = ""; + objectType = "chart"; + objectDescription = "A chart"; + } + vue.addLogsIntoDB(action, objectName, objectType, objectDescription); + }, + + addLogsIntoDB(action, objectName, objectType, objectDescription) { + let data = { + courseid: content.courseid, + userid: content.userid, + action: "addLogs", + sectionname: "DROPOUT", + actiontype: action, + objectType: objectType, + objectName: objectName, + currentUrl: document.location.href, + objectDescription: objectDescription, + }; + Axios({ + method:'get', + url: M.cfg.wwwroot + "/local/fliplearning/ajax.php", + params : data, + }).then((response) => { + if (response.status == 200 && response.data.ok) { + } + }).catch((e) => { + }); + }, + } + }) + } + + return { + init : init + }; + }); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/emailform.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/emailform.js new file mode 100644 index 0000000000000000000000000000000000000000..dcff28fc702555e07b8f6323ce6d4dbb49761238 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/emailform.js @@ -0,0 +1,190 @@ +define([ + "local_fliplearning/axios", + "local_fliplearning/alertify", + ], + function (Axios, Alertify){ + const emailform = { + template:` + <v-main mt-10> + <v-row> + <v-col sm="12"> + <v-dialog + v-model="dialog" + width="800" + @click:outside="closeDialog()" + @keydown.esc="closeDialog()" + > + <v-card> + <v-toolbar color="#118AB2" dark> + <span v-text="emailform_title"></span> + <v-spacer></v-spacer> + <v-btn icon @click="reset"> + <v-icon v-text="close_icon"></v-icon> + </v-btn> + </v-toolbar> + + <v-container> + <v-row> + <v-col cols="12" sm="12"> + + <v-chip class="ma-2" color="#118AB2" label dark> + <span v-text="recipients"></span> + </v-chip> + + <template v-for="(user, index, key) in selected_users"> + <v-chip class="ma-2"> + <v-avatar left> + <img :src="get_picture_url(user.id)"> + </v-avatar> + <span>{{user.firstname}} {{user.lastname}}</span> + </v-chip> + </template> + + </v-col> + </v-row> + + <v-row> + <v-col cols="12" sm="12"> + <v-form ref="form" v-model="valid_form"> + <v-text-field + v-model="strings.subject" + :label="subject_label" + :rules="subject_rules" + required + solo + ></v-text-field> + + <v-textarea + v-model="message" + :label="message_label" + :rules="message_rules" + required + solo + ></v-textarea> + + <v-btn @click="submit" :disabled="!valid_form"> + <span v-text="submit_button"></span> + </v-btn> + + <v-btn @click="reset"> + <span v-text="cancel_button"></span> + </v-btn> + + <v-spacer></v-spacer> + + </v-form> + </v-col> + </v-row> + </v-container> + + </v-card> + </v-dialog> + </v-col> + </v-row> + + <v-row> + <v-col sm="12"> + <div class="text-center"> + <v-dialog + v-model="loader_dialog" + persistent + width="300" + > + <v-card color="#118AB2" dark> + <v-card-text> + <span v-text="sending_text"></span> + <v-progress-linear + indeterminate + color="white" + class="mb-0" + ></v-progress-linear> + </v-card-text> + </v-card> + </v-dialog> + </div> + </v-col> + </v-row> + </v-main> + `, + props:['dialog', 'selected_users', 'strings', 'moduleid', 'modulename', 'courseid', 'userid'], + data(){ + return { + close_icon: 'mdi-minus', + valid_form: true, + subject_label: this.strings.subject_label, + subject_rules: [ + v => !!v || this.strings.validation_subject_text, + ], + message: '', + message_label: this.strings.message_label, + message_rules: [ + v => !!v || this.strings.validation_message_text, + ], + submit_button: this.strings.submit_button, + cancel_button: this.strings.cancel_button, + emailform_title: this.strings.emailform_title, + sending_text: this.strings.sending_text, + recipients: this.strings.recipients_label, + + loader_dialog: false, + mailsended_text: this.strings.mailsended_text, + } + }, + methods : { + get_picture_url(userid){ + let url = `${M.cfg.wwwroot}/user/pix.php?file=/${userid}/f1.jpg`; + return url; + }, + + submit () { + let recipients = ""; + this.selected_users.forEach(item => { + recipients=recipients.concat(item.id,","); + }); + this.loader_dialog = true; + this.errors = []; + let data = { + action : "sendmail", + subject : this.strings.subject, + recipients : recipients, + text : this.message, + userid : this.userid, + courseid : this.courseid, + moduleid : this.moduleid, + modulename : this.modulename, + }; + Axios({ + method:'get', + url: M.cfg.wwwroot + "/local/fliplearning/ajax.php", + params : data, + }).then((response) => { + if (response.status == 200 && response.data.ok) { + this.$emit('update_dialog', false); + this.$refs.form.reset(); + Alertify.success(this.mailsended_text); + if(typeof this.$parent.$root.addLogsIntoDB === "function") { + this.$parent.$root.addLogsIntoDB("sent", this.$parent.$root.email_object_name, "email", "Sent an email"); + } + } else { + Alertify.error(this.strings.api_error_network); + this.loader_dialog = false; + } + }).catch((e) => { + Alertify.error(this.strings.api_error_network); + }).finally(() => { + this.loader_dialog = false; + }); + }, + + reset () { + this.$emit('update_dialog', false); + this.$refs.form.resetValidation(); + }, + + closeDialog() { + this.$emit('update_dialog', false); + } + }, + } + return emailform; +}) \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/grades.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/grades.js new file mode 100644 index 0000000000000000000000000000000000000000..21f365ad074776129d1fb69b0403986b69335047 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/grades.js @@ -0,0 +1,569 @@ +define(["local_fliplearning/vue", + "local_fliplearning/vuetify", + "local_fliplearning/axios", + "local_fliplearning/moment", + "local_fliplearning/pagination", + "local_fliplearning/chartdynamic", + "local_fliplearning/pageheader", + "local_fliplearning/emailform", + "local_fliplearning/helpdialog", + ], + function(Vue, Vuetify, Axios, Moment, Pagination, ChartDynamic, PageHeader, EmailForm, HelpDialog) { + "use strict"; + + function init(content) { + // console.log(content); + Vue.use(Vuetify); + Vue.component('pagination', Pagination); + Vue.component('chart', ChartDynamic); + Vue.component('pageheader', PageHeader); + Vue.component('emailform', EmailForm); + Vue.component('helpdialog', HelpDialog); + let vue = new Vue({ + delimiters: ["[[", "]]"], + el: "#grades", + vuetify: new Vuetify(), + data() { + return { + strings : content.strings, + groups : content.groups, + userid : content.userid, + courseid : content.courseid, + timezone : content.timezone, + render_has : content.profile_render, + loading : false, + errors : [], + pages : content.pages, + + grades: content.grades, + grade_items_average_colors: content.grade_items_average_colors, + item_grades_details_colors: content.item_grades_details_colors, + item_grades_distribution_colors: content.item_grades_distribution_colors, + default_category: null, + average_categories: [], + average_data: [], + selected_items: [], + item_details: [], + + grade_item_title: "", + grade_item_details_categories: [], + grade_item_details_data: [], + + grade_item_distribution_categories: [], + grade_item_distribution_data: [], + + selected_item: null, + + grade_item_users: null, + selected_users: [], + dialog : false, + modulename : "", + moduleid : false, + email_strings: content.strings.email_strings, + + help_dialog: false, + help_contents: [], + email_object_name: "", + + course_name: "", + } + }, + beforeMount(){ + if (this.grades.categories.length) { + this.default_category = this.grades.categories[0]; + this.calculate_chart_items_average(this.default_category.items); + let item = this.find_first_grade_item(this.default_category.items); + this.update_detail_charts(item); + this.course_name = this.grades.categories[0].name.replace(/ /g, "_"); + }; + }, + mounted(){ + document.querySelector("#sessions-loader").style.display = "none"; + document.querySelector("#grades").style.display = "block"; + setTimeout(function() { + vue.setGraphicsEventListeners(); + vue.addListenersCourse(); + }, 500); + }, + methods : { + get_help_content(){ + let contents = []; + contents.push({ + title: this.strings.section_help_title, + description: this.strings.section_help_description, + }); + return contents; + }, + + change_category(items) { + this.calculate_chart_items_average(items); + let item = this.find_first_grade_item(items); + this.update_detail_charts(item); + }, + + addLogsName(items) { + setTimeout(function() { + vue.addLogsIntoDB("viewed", "course_"+vue.course_name, "course", "Selected a course"); + }, 500); + this.change_category(items); + }, + + build_grade_items_average_chart() { + let chart = new Object(); + chart.chart = { + type: 'column', + backgroundColor: null, + style: {fontFamily: 'poppins'}, + }; + chart.title = { + text: null + }; + chart.colors = this.grade_items_average_colors; + chart.xAxis = { + categories: this.average_categories + }; + chart.legend = { + enabled: false + }; + chart.plotOptions = { + series: { + cursor: 'pointer', + point: { + events: { + click: function () { + let position = this.x; + let item = vue.selected_items[position]; + vue.update_detail_charts(item); + } + } + } + } + }; + chart.tooltip = { + shared: true, + formatter: function() { + let position = this.points[0].point.x; + let value = this.y; + let item = vue.selected_items[position]; + let count = item.gradecount; + let name = this.x; + let view_details = vue.strings.view_details; + let average = Number(item.average); + let students_label = vue.strings.grades_tooltip_students; + if (count == 1) { + students_label = vue.strings.grades_tooltip_student; + } + value = vue.isInt(value) ? value : value.toFixed(2); + average = vue.isInt(average) ? average : average.toFixed(2); + let grademax = item.grademax; + let text = '<b>' + name + '<b> <br/>' + + vue.strings.grades_tooltip_average + ': ' + average + ' (' + value + ' %)<br/>' + + vue.strings.grades_tooltip_grade + ': ' + grademax + '<br/>' + + count + ' ' + students_label + ' ' + vue.grades.student_count + '<br/>' + + '<i>' + view_details + '</i>'; + return text; + } + }; + chart.yAxis = [{ + allowDecimals: false, + max: 100, + labels: { + format: '{value} %', + }, + title: { + text: this.strings.grades_yaxis_title, + } + }]; + chart.series = [{ + data: this.average_data, + }]; + return chart; + }, + + build_item_grades_details_chart() { + let chart = new Object(); + chart.chart = { + type: 'bar', + backgroundColor: null, + style: {fontFamily: 'poppins'}, + }; + chart.title = { + text: null, + }; + chart.colors = this.item_grades_details_colors; + chart.xAxis = { + type: 'category', + }; + chart.legend = { + enabled: false + }; + chart.tooltip = { + shared: true, + formatter: function() { + let category = this.points[0].key; + let name = vue.selected_item.itemname; + let maxgrade = vue.selected_item.grademax; + let grade = this.y; + grade = vue.isInt(grade) ? grade : grade.toFixed(2); + let text = '<b>' + name + '<b> <br/>' + + category + ': ' + grade + '/' + maxgrade + '<br/>'; + return text; + } + }; + chart.yAxis = [{ + title: { + enabled: false, + } + }]; + chart.series = [{ + colorByPoint: true, + data: this.grade_item_details_data, + }]; + return chart; + }, + + build_item_grades_distribution_chart() { + let chart = new Object(); + chart.chart = { + backgroundColor: null, + style: {fontFamily: 'poppins'}, + }; + chart.title = { + text: null, + }; + chart.colors = this.item_grades_distribution_colors; + chart.xAxis = { + categories: this.grade_item_distribution_categories + }; + chart.yAxis = [{ + title: { + text: this.strings.grades_distribution_yaxis_title, + }, + allowDecimals: false, + }]; + chart.legend = { + enabled: false + }; + chart.tooltip = { + formatter: function() { + let prefix = vue.strings.grades_distribution_tooltip_prefix; + let suffix = vue.strings.grades_distribution_tooltip_suffix; + let send_mail = vue.strings.send_mail; + let name = this.x; + let value = this.y; + let students_label = vue.strings.students_text; + if (value == 1) { + students_label = vue.strings.student_text; + } + let text = '<b>' + prefix + ': </b> '+ name + ' <br/>' + + value + ' ' + students_label + ' ' + suffix + ' <br/>' + + '<i>' + send_mail + '</i>'; + return text; + } + }; + chart.plotOptions = { + series: { + stacking: 'normal', + borderWidth: 1, + pointPadding: 0, + groupPadding: 0, + }, + column:{ + point:{ + events: { + click: function () { + vue.email_object_name="item_grades_distribution"; + let position = this.x; + vue.selected_users = vue.grade_item_users[position]; + vue.email_strings.subject = vue.email_strings.subject_prefix + + " - " + vue.selected_item.itemname; + vue.dialog = true; + } + } + } + } + }; + chart.series = [{ + type: 'column', + data: this.grade_item_distribution_data + }, { + type: 'spline', + data: this.grade_item_distribution_data, + marker: { + lineWidth: 1, + } + }]; + return chart; + }, + + calculate_chart_items_average(items) { + let values = []; + let categories = []; + items.forEach(item => { + values.push(item.average_percentage); + categories.push(item.itemname); + }); + this.average_categories = categories; + this.average_data = values; + this.selected_items = items; + }, + + update_detail_charts (item) { + this.modulename = item.itemmodule; + this.moduleid = item.coursemoduleid; + this.grade_item_title = item.itemname; + this.calculate_chart_item_grade_detail(item); + this.calculate_chart_item_grades_distribution(item); + this.addLogsIntoDB("viewed", item.itemname, "grade_item", "Details about the "+item.itemname+" grade item"); + }, + + calculate_chart_item_grade_detail(item) { + this.selected_item = item; + let item_data = [{ + name: this.strings.grades_best_grade, + y: Number(item.maxrating) || 0 + },{ + name: this.strings.grades_average_grade, + y: Number(item.average) || 0 + }, { + name: this.strings.grades_worst_grade, + y: Number(item.minrating) || 0 + }]; + this.grade_item_details_data = item_data; + }, + + calculate_chart_item_grades_distribution(item) { + let greater = this.strings.grades_greater_than; + let smaller = this.strings.grades_smaller_than; + let categories = [ + `${greater} 90%`, + `${greater} 80%`, + `${greater} 70%`, + `${greater} 60%`, + `${greater} 50%`, + `${smaller} 50%`]; + let values = [0, 0, 0, 0, 0, 0]; + let users = [[], [], [], [], [], []]; + if (item) { + let weights = [0.9, 0.8, 0.7, 0.6, 0.5, 0]; + let ranges = []; + let grademax = item.grademax; + let limit = grademax; + weights.forEach(weight => { + let grade = grademax * weight; + ranges.push({ max: limit, min: grade, count: 0}); + limit = grade - 0.1; + }); + + item.grades.forEach(grade => { + ranges.forEach((range, index) => { + if (grade.rawgrade >= range.min && grade.rawgrade <= range.max) { + range.count++; + users[index].push(grade.user); + } + }); + }); + + values = []; + ranges.forEach((range, index) => { + let max = this.isInt(range.max) ? range.max : range.max.toFixed(1); + let min = this.isInt(range.min) ? range.min : range.min.toFixed(1); + let label = `${max} - ${min}<br/>${categories[index]}`; + categories[index] = label; + values.push(range.count); + }); + } + this.grade_item_users = users; + this.grade_item_distribution_categories = categories, + this.grade_item_distribution_data = values; + }, + + find_first_grade_item(items) { + let item; + if (items.length) { + let count = items.length; + for (let i = 0; i < count; i++) { + if (items[i].maxrating > 0) { + item = items[i]; + break; + } + } + if (!item) { + item = items[0]; + } + } + return item; + }, + + isInt(n) { + return n % 1 === 0; + }, + + update_dialog (value) { + this.dialog = value; + }, + + open_chart_help(chart) { + let contents = []; + var action = ""; + var objectName = ""; + var objectType = ""; + var objectDescription = ""; + if (chart == "grade_items_average") { + contents.push({ + title: this.strings.grade_items_average_help_title, + description: this.strings.grade_items_average_help_description_p1, + }); + contents.push({ + description: this.strings.grade_items_average_help_description_p2, + }); + contents.push({ + description: this.strings.grade_items_average_help_description_p3, + }); + action = "viewed"; + objectType = "help"; + objectName = "grade_items_average" + objectDescription = "Help section that provides information about the grade items average chart"; + this.addLogsIntoDB(action, objectName, objectType, objectDescription); + } else if (chart == "item_grades_details") { + contents.push({ + title: this.strings.item_grades_details_help_title, + description: this.strings.item_grades_details_help_description_p1, + }); + contents.push({ + description: this.strings.item_grades_details_help_description_p2, + }); + action = "viewed"; + objectType = "help"; + objectName = "item_grades_details"; + objectDescription = "Help section that provides information about the item grades details chart"; + this.addLogsIntoDB(action, objectName, objectType, objectDescription); + } else if (chart == "item_grades_distribution") { + contents.push({ + title: this.strings.item_grades_distribution_help_title, + description: this.strings.item_grades_distribution_help_description_p1, + }); + contents.push({ + description: this.strings.item_grades_distribution_help_description_p2, + }); + contents.push({ + description: this.strings.item_grades_distribution_help_description_p3, + }); + action = "viewed"; + objectType = "help"; + objectName = "item_grades_distribution"; + objectDescription = "Help section that provides information about the item grades distribution chart"; + this.addLogsIntoDB(action, objectName, objectType, objectDescription); + } + this.help_contents = contents; + if (this.help_contents.length) { + this.help_dialog = true; + } + }, + + update_help_dialog (value) { + this.help_dialog = value; + }, + + get_timezone(){ + let information = `${this.strings.ss_change_timezone} ${this.timezone}` + return information; + }, + + addListenersCourse() { + let select = document.getElementsByClassName('v-input__slot'); + if(select.length>1) { + select[1].addEventListener('click', function() { + let childs = document.getElementsByClassName('v-list v-select-list v-sheet theme--light theme--light')[0].children; + for(let i=0; i<childs.length;i++) { + childs[i].addEventListener('click', function() { + vue.course_name = this.children[0].innerText.replace(/ /g, "_"); + }, {once: true}); + } + }) + } else { + setTimeout(vue.addListenersCourse, 500); + } + }, + + setGraphicsEventListeners() { + //Ajoute les sondes pour lorsque l'utilisateur entre sur les différents graphiques + let graphics = document.querySelectorAll('.highcharts-container'); + if(graphics.length<1) { + setTimeout(vue.setGraphicsEventListeners, 500); + } else { + graphics[0].id="gradeItemsAverage"; + graphics[1].id="itemGradesDetails"; + graphics[2].id="itemGradesDistribution"; + graphics.forEach((graph) => { + graph.addEventListener('mouseenter', this.addLogsViewGraphic); + }) + } + }, + + addLogsViewGraphic(e) { + event.stopPropagation(); + var action = ""; + var objectName = ""; + var objectType = ""; + var objectDescription = ""; + switch(e.target.id) { + case "gradeItemsAverage": + action = "viewed"; + objectName = vue.selected_item.itemname+"_grade_items_average"; + objectType = "chart"; + objectDescription = "Bar chart that shows the average grade for each items of the course"; + break; + case "itemGradesDetails": + action = "viewed"; + objectName = vue.selected_item.itemname+"_item_grades_details"; + objectType = "chart"; + objectDescription = "Chart showing details about the selected grades item"; + break; + case "itemGradesDistribution": + action = "viewed"; + objectName = vue.selected_item.itemname+"_item_grades_distribution"; + objectType = "chart"; + objectDescription = "Chart showing the distribution of the grades for a selected grades item"; + break; + default: + action = "viewed"; + objectName = ""; + objectType = "chart"; + objectDescription = "A chart"; + break; + } + this.addLogsIntoDB(action, objectName, objectType, objectDescription); + }, + + addLogsIntoDB(action, objectName, objectType, objectDescription) { + let data = { + courseid: content.courseid, + userid: content.userid, + action: "addLogs", + sectionname: "GRADES_MONITORING", + actiontype: action, + objectType: objectType, + objectName: objectName, + currentUrl: document.location.href, + objectDescription: objectDescription, + }; + Axios({ + method:'get', + url: M.cfg.wwwroot + "/local/fliplearning/ajax.php", + params : data, + }).then((response) => { + if (response.status == 200 && response.data.ok) { + } + }).catch((e) => { + }); + }, + } + }) + + } + + return { + init : init + }; + }); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/graph.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/graph.js new file mode 100644 index 0000000000000000000000000000000000000000..d65d94064f2f3118077cc482fdcc47142d01e162 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/graph.js @@ -0,0 +1,37 @@ +define(["local_fliplearning/vue", + "local_fliplearning/vuetify", + "local_fliplearning/chartdynamic", + ], + function(Vue, Vuetify, ChartDynamic) { + "use strict"; + let wwwroot = M.cfg.wwwroot; + + function init(content) { + console.log({chart: content.chart}); + + Vue.use(Vuetify); + Vue.component('chart', ChartDynamic); + + new Vue({ + delimiters: ["[[", "]]"], + el: "#graph1", + vuetify: new Vuetify(), + data() { + return { + chart: content.chart, + }; + }, + mounted() { + document.querySelector("#pd-loader").style.display = "none"; + document.querySelector("#graph1").style.display = "block"; + }, + methods: { + } + }); + + } + + return { + init: init + }; + }); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/helpdialog.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/helpdialog.js new file mode 100644 index 0000000000000000000000000000000000000000..b77f47bf3f190587569c317d7a1228b82e3945df --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/helpdialog.js @@ -0,0 +1,44 @@ +define([], + function (){ + const helpdialog = { + template:` + <v-main mt-10> + <v-row> + <v-dialog + v-model="dialog" + max-width="700px" + @click:outside="closeDialog()" + @keydown.esc="closeDialog()" + > + <v-card> + <v-card-title class="headline lighten-2 d-flex justify-center help-dialog-title"> + <span v-text="title" class="help-modal-title mr-2"></span><v-icon color="white">help_outline</v-icon> + </v-card-title> + <v-card-text class="pt-4 pb-4 pr-8 pl-8 help-dialog-content"> + <template v-for="(help, index, key) in contents"> + <v-layout class="mb-2" :key="key" column> + <v-flex class="d-flex justify-center"> + <span class="fliplearning-sub-title mb-2" v-html="help.title"></span> + </v-flex> + <p v-html="help.description" class="text-justify"></p> + </v-layout> + </template> + </v-card-text> + <v-divider class="ma-0"></v-divider> + <v-card-actions class="d-flex justify-center help-dialog-footer"> + <v-btn text @click="closeDialog" v-text="exit" class="ma-0 fml-btn-secondary"></v-btn> + </v-card-actions> + </v-card> + </v-dialog> + </v-row> + </v-main> + `, + props:['dialog', 'title', 'contents', 'exit'], + methods : { + closeDialog() { + this.$emit('update_dialog', false); + }, + }, + } + return helpdialog; + }) \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/logs.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/logs.js new file mode 100644 index 0000000000000000000000000000000000000000..b2def24d20bcce09e4d6253f42ac70578873a30f --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/logs.js @@ -0,0 +1,274 @@ +/* +@author 2021 Éric Bart <bart.eric@hotmail.com> + */ + +define(["local_fliplearning/vue", + "local_fliplearning/vuetify", + "local_fliplearning/axios", + "local_fliplearning/moment", + "local_fliplearning/pagination", + "local_fliplearning/pageheader", + "local_fliplearning/helpdialog", + "local_fliplearning/alertify", + + ], + function(Vue, Vuetify, Axios, Moment, Pagination, Pageheader, HelpDialog, Alertify) { + "use strict"; + + function init(content) { + const timeout = 60 * 120 * 1000 + Axios.defaults.timeout = timeout + Vue.use(Vuetify); + Vue.component('pagination', Pagination); + Vue.component('pageheader', Pageheader); + Vue.component('helpdialog', HelpDialog); + let vue = new Vue({ + delimiters: ["[[", "]]"], + el: "#logs", + vuetify: new Vuetify(), + data() { + return { + calendarData: {}, + strings : content.strings, + groups : content.groups, + userid : content.userid, + courseid : content.courseid, + timezone : content.timezone, + render_has : content.profile_render, + courseRole : content.courseRole, + loading : false, + errors : [], + pages : content.pages, + help_dialog: false, + help_contents: [], + dateRules: [ + v => !!v || this.strings.logs_invalid_date + ] + + } + }, + beforeMount() { + document.querySelector("#downloadButtonMoodle").style.display = "none"; + document.querySelector("#downloadButtonNMP").style.display = "none"; + }, + mounted(){ + document.querySelector(".v-application--wrap").style.minHeight = "60vh"; + document.querySelector("#sessions-loader").style.display = "none"; + document.querySelector("#helpMoodle").style.display = "block"; + document.querySelector("#helpNMP").style.display = "block"; + document.querySelector("#downloadButtonMoodle").style.display = "block"; + document.querySelector("#downloadButtonNMP").style.display = "block"; + }, + methods : { + get_Moodlefile() { + let lastDate = document.querySelector("#lastDateMoodle"); + let beginDate = document.querySelector("#beginDateMoodle"); + let timestampBeginDate = 0; + let timestampLastDate = 0; + let parsedBeginDate = []; + let parsedLastDate = []; + this.url = false; + this.loading = true; + var data = { + action : "downloadMOODLElogs", + courseid : this.courseid, + userid : this.userid, + beginDate : beginDate.value, + lastDate : lastDate.value, + currentUrl : window.location.href, + } + if(beginDate.value!="" && lastDate.value!="") { + parsedBeginDate = beginDate.value.split("-"); + timestampBeginDate = new Date(parsedBeginDate[0], parsedBeginDate[1]-1, parsedBeginDate[2]); + parsedLastDate = lastDate.value.split("-"); + timestampLastDate = new Date(parsedLastDate[0], parsedLastDate[1]-1, parsedLastDate[2]); + if(timestampBeginDate.getTime()<=timestampLastDate.getTime()) { + if(timestampBeginDate.getTime()<=Date.now()) { + document.querySelector('#downloadButtonMoodle').innerHTML = this.strings.logs_download_btn; + document.getElementById('downloadButtonMoodle').disabled = true; + Axios({ + method: 'get', + url: M.cfg.wwwroot + "/local/fliplearning/ajax.php", + timeout: timeout, + params: data, + }).then((response) => { + this.loading = false + if (response.status == 200 && response.data.ok) { + let path = M.cfg.wwwroot + "/local/fliplearning/downloads/" + let url = path + response.data.data.filename; + this.url = url + var link = document.createElement('a'); + link.href = this.url; + link.download = "MoodleLogs_" + beginDate.value + "_" + lastDate.value + ".csv"; + link.click(); + document.querySelector('#downloadButtonMoodle').innerHTML = this.strings.logs_valid_Moodlebtn; + document.getElementById('downloadButtonMoodle').disabled = false; + Alertify.success(this.strings.logs_success_file_downloaded); + } else { + Alertify.error(this.strings.logs_error_problem_encountered); + document.querySelector('#downloadButtonMoodle').innerHTML = this.strings.logs_valid_Moodlebtn; + document.getElementById('downloadButtonMoodle').disabled = false; + } + }).catch((e) => { + Alertify.error(this.strings.logs_error_problem_encountered); + this.loading = false; + document.querySelector('#downloadButtonMoodle').innerHTML = this.strings.logs_valid_Moodlebtn; + document.getElementById('downloadButtonMoodle').disabled = false; + }).finally(() => { + this.loading = false; + document.querySelector('#downloadButtonMoodle').innerHTML = this.strings.logs_valid_Moodlebtn; + document.getElementById('downloadButtonMoodle').disabled = false; + }); + } else { + Alertify.error(this.strings.logs_error_begin_date_superior); + } + } else { + Alertify.error(this.strings.logs_error_begin_date_inferior); + } + } else { + Alertify.error(this.strings.logs_error_empty_dates); + } + }, + + getRapport() { + Alertify.confirm(this.strings.logs_download_details_description, + ()=> { //OK + let path = M.cfg.wwwroot + "/local/fliplearning/downloads/Details_Informations_LogsNMP.pdf"; + var link = document.createElement('a'); + link.href = path; + link.download = "Details_Informations_LogsNMP.pdf"; + link.click(); + Alertify.success(this.strings.logs_download_details_validation); + }).set({title: this.strings.logs_download_details_title}) + .set({labels: {cancel: this.strings.logs_download_details_cancel, ok: this.strings.logs_download_details_ok}}); + }, + + get_NMPfile() { + let lastDate = document.querySelector("#lastDateNMP"); + let beginDate = document.querySelector("#beginDateNMP"); + let timestampBeginDate = 0; + let timestampLastDate = 0; + let parsedBeginDate = []; + let parsedLastDate = []; + this.url = false; + this.loading = true; + var data = { + action : "downloadNMPlogs", + courseid : this.courseid, + userid : this.userid, + beginDate : beginDate.value, + lastDate : lastDate.value, + currentUrl : window.location.href, + } + if(beginDate.value!="" && lastDate.value!="") { + parsedBeginDate = beginDate.value.split("-"); + timestampBeginDate = new Date(parsedBeginDate[0], parsedBeginDate[1] - 1, parsedBeginDate[2]); + parsedLastDate = lastDate.value.split("-"); + timestampLastDate = new Date(parsedLastDate[0], parsedLastDate[1] - 1, parsedLastDate[2]); + if (timestampBeginDate.getTime() <= timestampLastDate.getTime()) { + if (timestampBeginDate.getTime() <= Date.now()) { + document.querySelector('#downloadButtonNMP').innerHTML = this.strings.logs_download_btn; + document.getElementById('downloadButtonNMP').disabled = true; + Axios({ + method: 'get', + url: M.cfg.wwwroot + "/local/fliplearning/ajax.php", + timeout: timeout, + params: data, + }).then((response) => { + this.loading = false + if (response.status == 200 && response.data.ok) { + if (beginDate.value != "" || lastDate.value != "") { + let path = M.cfg.wwwroot + "/local/fliplearning/downloads/" + let url = path + response.data.data.filename; + this.url = url + var link = document.createElement('a'); + link.href = this.url; + link.download = "NMPLogs_" + beginDate.value + "_" + lastDate.value + ".csv"; + link.click(); + document.querySelector('#downloadButtonNMP').innerHTML = this.strings.logs_valid_NMPbtn; + document.getElementById('downloadButtonNMP').disabled = false; + Alertify.success(this.strings.logs_success_file_downloaded); + } + } else { + Alertify.error(this.strings.logs_error_problem_encountered); + document.querySelector('#downloadButtonNMP').innerHTML = this.strings.logs_valid_NMPbtn; + document.getElementById('downloadButtonNMP').disabled = false; + } + }).catch((e) => { + Alertify.error(this.strings.logs_error_problem_encountered); + this.loading = false; + document.querySelector('#downloadButtonNMP').innerHTML = this.strings.logs_valid_NMPbtn; + document.getElementById('downloadButtonNMP').disabled = false; + }).finally(() => { + this.loading = false; + document.querySelector('#downloadButtonNMP').innerHTML = this.strings.logs_valid_NMPbtn; + document.getElementById('downloadButtonNMP').disabled = false; + }); + } else { + Alertify.error(this.strings.logs_error_begin_date_superior); + } + } else { + Alertify.error(this.strings.logs_error_begin_date_inferior); + } + } else { + Alertify.error(this.strings.logs_error_empty_dates); + } + }, + + is_today(date) { + var today = new Date(); + var dd= String(today.getDate()).padStart(2,'0'); + var mm= String(today.getMonth() + 1).padStart(2,'0'); + var yyyy = today.getFullYear(); + today = yyyy+"-"+mm+"-"+dd; + var date = new Date(date); + if(date>=today) { + return true; + } + return false; + }, + + get_help_content() { + var help_contents = []; + var help = new Object(); + help.title = this.strings.title; + help.description = this.strings.description; + help_contents.push(help); + return help_contents; + }, + + open_chart_help(chart) { + let contents = []; + if (chart == 'download_moodle') { + contents.push({ + title: this.strings.logs_download_moodle_help_title, + description: this.strings.logs_download_moodle_help_description, + }); + } else if (chart == "download_nmp") { + contents.push({ + title: this.strings.logs_download_nmp_help_title, + description: this.strings.logs_download_nmp_help_description, + }); + } + this.help_contents = contents; + if (this.help_contents.length) { + this.help_dialog = true; + } + }, + + update_help_dialog (value) { + this.help_dialog = value; + }, + + get_timezone(){ + let information = `${this.strings.ss_change_timezone} ${this.timezone}` + return information; + }, + } + }) + } + + return { + init : init + }; + }); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/modulesform.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/modulesform.js new file mode 100644 index 0000000000000000000000000000000000000000..1c8cf81c4d95ee8d1ba577757766e85fa3f0a813 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/modulesform.js @@ -0,0 +1,93 @@ +define([], + function (){ + const modulesform = { + template:` + <v-main mt-10> + <v-row> + <v-dialog + v-model="dialog" + max-width="700px" + @click:outside="closeDialog()" + @keydown.esc="closeDialog()" + > + <v-card> + <v-card-title v-text="strings.title"></v-card-title> + <v-card-text v-for="section in sections" :key="section.id"> + <h5 v-text="section.name"></h5> + <div v-for="module in section.modules" :key="module.id"> + <v-row> + <v-col cols="6"> + <img :src="get_module_icon(module.modname)" width="25" height="25"> + <a :href="get_module_url(module)" target="_blank"> + <span v-text="module.name"></span> + </a> + + <span v-text="get_interactions_number(module.interactions)"></span> + </v-col> + <v-col cols="6" class="text-right"> + <v-chip v-if="!module.viewed" color="#EF476F" text-color="white"> + <v-avatar left> + <v-icon v-text="'mdi-eye-off'" small></v-icon> + </v-avatar> + <span class="d-flex justify-space-between caption" + v-text="strings.modules_no_viewed"> + </span> + </v-chip> + + <v-chip v-if="module.viewed" color="#FFD166" text-color="white"> + <v-avatar left> + <v-icon v-text="'mdi-eye'" small></v-icon> + </v-avatar> + <span class="d-flex justify-space-between caption" + v-text="strings.modules_viewed"> + </span> + </v-chip> + + <v-chip v-if="module.complete" color="#06D6A0" text-color="white"> + <v-avatar left> + <v-icon v-text="'mdi-checkbox-marked-circle-outline'" small> + </v-icon> + </v-avatar> + <span class="d-flex justify-space-between caption" + v-text="strings.modules_complete"> + </span> + </v-chip> + </v-col> + </v-row> + </div> + </v-card-text> + + <v-card-actions> + <v-btn color="primary darken-1" + text + @click="closeDialog" + v-text="strings.close_button"> + </v-btn> + </v-card-actions> + </v-card> + </v-dialog> + </v-row> + </v-main> + `, + props:['dialog', 'sections', 'strings'], + methods : { + closeDialog() { + this.$emit('update_dialog', false); + }, + + get_module_icon(modname){ + return `${M.cfg.wwwroot}/theme/image.php/boost/${modname}/1/icon`; + }, + + get_module_url(module){ + return `${M.cfg.wwwroot}/mod/${module.modname}/view.php?id=${module.id}`; + }, + + get_interactions_number(interactions){ + let interactions_text = (interactions == 1) ? this.strings.modules_interaction : this.strings.modules_interactions; + return `(${interactions} ${interactions_text})`; + }, + }, + } + return modulesform; +}) \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/moment.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/moment.js new file mode 100644 index 0000000000000000000000000000000000000000..42d6e1e3287d2706a3d4219ebf31a8f0d464d31b --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/moment.js @@ -0,0 +1,4 @@ +define(['local_fliplearning/config', 'moment'], function(unused, moment) { + return moment; + } +); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/momenttimezone.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/momenttimezone.js new file mode 100644 index 0000000000000000000000000000000000000000..d2e815c1b8887c1a1da35b251242a51cb37997f6 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/momenttimezone.js @@ -0,0 +1,4 @@ +define(['local_fliplearning/config', 'momenttimezone'], function(unused, momenttimezone) { + return momenttimezone; + } +); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/pageheader.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/pageheader.js new file mode 100644 index 0000000000000000000000000000000000000000..0c26a3af0c642e9fbb205c0aa40922ee4238995c --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/pageheader.js @@ -0,0 +1,106 @@ +define(['local_fliplearning/axios'], function (Axios){ + const pageheader = { + template:` + <v-layout class="font-weight-bold fliplearning-page-title justify-space-between align-center" id="page-header"> + <v-flex class="d-flex pa-4"> + <span v-text="pagetitle"></span> + </v-flex> + + <v-flex id="fml-group-selector"> + <v-select + attach + v-model="selectedgroup" + v-if="usegroupselector()" + prepend-icon="group" + @change="update_group()" + :items="groups" + item-text="name" + item-value="id"> + </v-select> + </v-flex> + + <v-flex + class="d-flex justify-end align-center flex-grow-0 fliplearning-help-button pa-4 ml-8" + @click="dialog = !dialog"> + <span class="mr-2 caption" v-text="helptitle"></span> + <v-icon :color="'#ffffff'">help_outline</v-icon> + </v-flex> + + <v-dialog v-model="dialog" width="500" class="help-dialog"> + <v-card> + <v-card-title class="headline lighten-2 d-flex justify-center help-dialog-title"> + <span v-text="helptitle" class="help-modal-title mr-2"></span><v-icon color="white">help_outline</v-icon> + </v-card-title> + <v-card-text class="pt-4 pb-4 pr-8 pl-8 help-dialog-content"> + <template v-for="(help, index, key) in helpcontents"> + <v-layout class="mb-2" :key="key" column> + <v-flex class="d-flex justify-center"> + <span class="fliplearning-sub-title mb-2" v-html="help.title"></span> + </v-flex> + <p v-html="help.description" class="text-justify"></p> + </v-layout> + </template> + </v-card-text> + <v-divider class="ma-0"></v-divider> + <v-card-actions class="d-flex justify-center help-dialog-footer"> + <v-btn text @click="dialog = false" v-text="exitbutton" class="ma-0 fml-btn-secondary"></v-btn> + </v-card-actions> + </v-card> + </v-dialog> + </v-layout>`, + props:['pagetitle','helptitle','helpcontents','exitbutton','groups', 'courseid','userid'], + data(){ + return{ + dialog : false, + selectedgroup : null, + } + }, + mounted(){ + this.set_selected_group(); + }, + methods : { + update_group(){ + let data = { + action : "changegroup", + courseid : this.courseid, + userid : this.userid, + groupid : this.selectedgroup, + } + Axios({ + method:'get', + url: M.cfg.wwwroot + "/local/fliplearning/ajax.php", + params : data, + }).then((response) => { + location.reload(); + }).catch((e) => { + if(confirm("Error al cambiar de grupo. Necesitamos actualizar para evitar errores.")){ + location.reload() + }else{ + location.reload() + } + }); + }, + + usegroupselector(){ + let use = this.groups && this.groups.length > 0; + return use; + }, + + set_selected_group(){ + if(!this.usegroupselector()) { + return null; + } + this.groups.forEach(group => { + if(group.selected){ + this.selectedgroup = group; + } + }) + if(!this.selectedgroup && typeof(this.groups[0]) != 'undefined'){ + this.groups[0].selected = true; + this.selectedgroup = this.groups[0]; + } + } + } + } + return pageheader; +}) \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/pagination.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/pagination.js new file mode 100644 index 0000000000000000000000000000000000000000..5564d31137bdbb2187f6a73b7996c301411b1725 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/pagination.js @@ -0,0 +1,61 @@ +define([], function (){ + const pagination = { + template:` + <v-main mt-10> + <v-layout class="mb-2" justify-center> + <span v-text="title" class="fliplearning-sub-title"></span> + </v-layout> + <v-layout justify-center> + <v-flex d-flex justify-end align-center no-wrap id="fliplearning-display-weeks" class="flex-grow-0 pl-4"> + <span class="subtitle-1 pr-3" v-text="name"></span> + <v-layout v-for="(page, index, key) in pages" :key="key" class="flex-grow-0"> + <v-tooltip top attach> + <template v-slot:activator="{ on }"> + <span + v-on="on" + v-text="page.number" + :class="['pa-1 pr-4 pl-4 page', {'selected-page' : page.selected}]" + @click="update_selected_week(index)"></span> + </template> + <span v-text="get_week_dates(page)"></span> + </v-tooltip> + </v-layout> + </v-flex> + </v-layout> + <v-divider></v-divider> + </v-main> + `, + props:['pages','name','nameseparator','title'], + data(){ + return{ + } + }, + methods : { + get_week_dates(week){ + return `${week.weekstart} ${this.nameseparator} ${week.weekend}`; + }, + update_selected_week(index_page){ + this.loading = true + let page = this.change_selected_week(index_page); + this.$emit('changepage',this.get_selected_week()); + }, + change_selected_week(selected_page){ + let current_selection = this.get_selected_week(); + current_selection = this.pages.indexOf(current_selection); + this.pages[current_selection].selected = false; + this.pages[selected_page].selected = true; + return this.pages[selected_page]; + }, + get_selected_week(){ + let selected = null + this.pages.forEach((page) => { + if(page.selected){ + selected = page; + } + }) + return selected; + }, + }, + } + return pagination; +}) \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/prueba.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/prueba.js new file mode 100644 index 0000000000000000000000000000000000000000..c6c188fd90080cc801334da9116d5107ae86ac4e --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/prueba.js @@ -0,0 +1,56 @@ +define(["local_fliplearning/vue", + "local_fliplearning/vuetify", + "local_fliplearning/axios", + "local_fliplearning/moment", + "local_fliplearning/pagination", + "local_fliplearning/chartdynamic", + "local_fliplearning/pageheader", + ], + function(Vue, Vuetify, Axios, Moment, Pagination, ChartDynamic, Pageheader) { + "use strict"; + + function init(content) { + console.log(content); + Vue.use(Vuetify) + Vue.component('pagination', Pagination); + Vue.component('chart', ChartDynamic); + Vue.component('pageheader', Pageheader); + let vue = new Vue({ + delimiters: ["[[", "]]"], + el: "#prueba", + vuetify: new Vuetify(), + data() { + return { + strings : content.strings, + groups : content.groups, + userid : content.userid, + courseid : content.courseid, + timezone : content.timezone, + render_has : content.profile_render, + loading : false, + errors : [], + pages : content.pages, + } + }, + mounted(){ + document.querySelector("#sessions-loader").style.display = "none"; + document.querySelector("#prueba").style.display = "block"; + }, + methods : { + get_help_content(){ + let helpcontents = `Texto de Ayuda`; + return helpcontents; + }, + + get_timezone(){ + let information = `${this.strings.ss_change_timezone} ${this.timezone}` + return information; + }, + } + }) + } + + return { + init : init + }; + }); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/quiz.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/quiz.js new file mode 100644 index 0000000000000000000000000000000000000000..b53a9f7c3f8b15deb3e8fa23639564aaafb8b915 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/quiz.js @@ -0,0 +1,527 @@ +define(["local_fliplearning/vue", + "local_fliplearning/vuetify", + "local_fliplearning/axios", + "local_fliplearning/moment", + "local_fliplearning/pagination", + "local_fliplearning/chartdynamic", + "local_fliplearning/pageheader", + "local_fliplearning/helpdialog", + ], + function(Vue, Vuetify, Axios, Moment, Pagination, ChartDynamic, PageHeader, HelpDialog) { + "use strict"; + + function init(content) { + // console.log(content); + Vue.use(Vuetify); + Vue.component('pagination', Pagination); + Vue.component('chart', ChartDynamic); + Vue.component('pageheader', PageHeader); + Vue.component('helpdialog', HelpDialog); + let vue = new Vue({ + delimiters: ["[[", "]]"], + el: "#quiz", + vuetify: new Vuetify(), + data() { + return { + strings : content.strings, + groups : content.groups, + userid : content.userid, + courseid : content.courseid, + timezone : content.timezone, + render_has : content.profile_render, + loading : false, + errors : [], + pages : content.pages, + + quiz : content.quiz, + questions_attempts_colors: content.questions_attempts_colors, + hardest_questions_colors: content.hardest_questions_colors, + default_quiz: null, + attempts_categories: [], + attempts_series: [], + attempts_questions: [], + hardest_categories: [], + hardest_series: [], + hardest_questions: [], + + help_dialog: false, + help_contents: [], + + quiz_name : "", + } + }, + beforeMount(){ + if (this.quiz.length) { + this.default_quiz = this.quiz[0].attempts; + this.calculate_questions_attempts(this.default_quiz); + this.quiz_name = this.quiz[0].name.replace(/ /g, "_"); + }; + }, + mounted(){ + document.querySelector("#sessions-loader").style.display = "none"; + document.querySelector("#quiz").style.display = "block"; + setTimeout(function() { + vue.setGraphicsEventListeners(); + vue.addListenersQuiz(); + }, 500); + }, + + methods : { + get_help_content(){ + let contents = []; + contents.push({ + title: this.strings.section_help_title, + description: this.strings.section_help_description, + }); + return contents; + }, + + get_quiz_info_text1() { + let text = ''; + if (this.default_quiz) { + let questions_number = this.default_quiz.details.questions; + let questions_label = this.strings.questions_text; + if (questions_number == 1) { + questions_label = this.strings.question_text; + } + text = `* ${this.strings.quiz_info_text} ${questions_number} ${questions_label}`; + } + return text; + }, + + get_quiz_info_text2() { + let text = ''; + if (this.default_quiz) { + let attempts_number = this.default_quiz.details.attempts; + let doing_text = this.strings.doing_text_plural; + if (attempts_number == 1) { + doing_text = this.strings.doing_text_singular; + } + let students_number = this.default_quiz.details.users; + let students_label = this.strings.students_text; + if (students_number == 1) { + students_label = this.strings.student_text; + } + text = `* ${attempts_number} ${doing_text} ${students_number} ${students_label}`; + } + return text; + }, + + build_questions_attempts_chart() { + let chart = new Object(); + chart.chart = { + type: 'column', + backgroundColor: null, + style: {fontFamily: 'poppins'}, + }; + chart.title = { + text: null + }; + chart.colors = this.questions_attempts_colors; + chart.xAxis = { + categories: this.attempts_categories + }; + chart.yAxis = [{ + min: 0, + allowDecimals: false, + title: { + text: this.strings.questions_attempts_yaxis_title + } + }]; + chart.tooltip = { + formatter: function() { + let question_name = this.x; + let attemps = this.y; + let total_attemps = this.total; + let percentage = Math.round(Number(this.percentage)); + let series_name = this.series.name; + let attempt_preffix = vue.strings.attempts_text; + attempt_preffix = attempt_preffix.charAt(0).toUpperCase() + attempt_preffix.slice(1); + let attempt_label = vue.strings.attempts_text; + let of_conector = vue.strings.of_conector; + let review_question = vue.strings.review_question; + if (attemps == 1) { + attempt_label = vue.strings.attempt_text; + } + let text = '<b>' + question_name + ': </b>' + attempt_preffix + ' ' + series_name + '<br/>' + + attemps + ' ' + attempt_label + ' ' + of_conector + ' ' + total_attemps + + ' (' + percentage + '%)' + '<br/>' + review_question; + + return text; + } + }; + chart.plotOptions = { + column: { + stacking: 'normal' + }, + series: { + cursor: 'pointer', + point: { + events: { + click: function () { + vue.addLogsIntoDB("viewed", vue.quiz_name+"_questions_attempts", "chart_details", "Viewed details about the questions attempts chart"); + let question = vue.attempts_questions[this.x]; + let id = question.id; + let url = M.cfg.wwwroot + '/question/preview.php?id='+id+'&courseid='+vue.courseid; + window.open(url, '_blank', 'top=50,left=50,width=900,height=600'); + } + } + } + } + }; + chart.series = this.attempts_series; + return chart; + }, + + build_hardest_questions_chart() { + let chart = new Object(); + chart.chart = { + type: 'column', + backgroundColor: null, + style: {fontFamily: 'poppins'}, + }; + chart.title = { + text: null, + }; + chart.colors = this.hardest_questions_colors; + chart.xAxis = { + categories: this.hardest_categories, + }; + chart.legend = { + enabled: false + }; + chart.tooltip = { + formatter: function() { + let position = this.point.x; + let question_info = vue.hardest_questions[position]; + let question_name = this.x; + let serie_name = this.series.name; + let value = this.y; + let attempt_label = vue.strings.attempts_text; + let of_conector = vue.strings.of_conector; + let review_question = vue.strings.review_question; + if (question_info.ha == 1) { + attempt_label = vue.strings.attempt_text; + } + let text = '<b>' + question_name + ': </b>' + serie_name + '<br/>' + + question_info.ha + ' ' + attempt_label + ' ' + of_conector + ' ' + + question_info.to + ' (' + value + '%)' + '<br/>' + review_question; + return text; + } + }; + chart.yAxis = [{ + min: 0, + allowDecimals: false, + title: { + text: this.strings.hardest_questions_yaxis_title + }, + labels: { + format: '{value} %', + }, + }]; + chart.plotOptions = { + series: { + cursor: 'pointer', + point: { + events: { + click: function () { + vue.addLogsIntoDB("viewed", vue.quiz_name+"_hardest_questions", "chart_details", "Viewed details about the hardest questions chart"); + let question = vue.hardest_questions[this.x]; + let id = question.id; + let url = M.cfg.wwwroot + '/question/preview.php?id='+id+'&courseid='+vue.courseid; + window.open( url, '_blank', 'top=50,left=50,width=900,height=600'); + } + } + } + } + }; + chart.series = this.hardest_series; + return chart; + }, + + calculate_questions_attempts(quiz) { + let questions = quiz.questions; + let attempts_categories = []; + let cont = 1, ql = ""; + + let correct = [], partcorrect = [], incorr = [], gaveup = [], needgrade = [], hardest = [], + attempts_questions = []; + let co, pc, ic, ga, ng, to, ha = 0; + + questions.forEach(question => { + co, pc, ic, ga, ng, to = 0; + co = (question.gradedright || 0) + (question.mangrright || 0); + pc = (question.gradedpartial || 0) + (question.mangrpartial || 0); + ic = (question.gradedwrong || 0) + (question.mangrwrong || 0); + ga = (question.gaveup || 0) + (question.mangaveup || 0); + ng = (question.needsgrading || 0) + (question.mangaveup || 0) + + (question.finished || 0) + (question.manfinished || 0); + + correct.push(co); + partcorrect.push(pc); + incorr.push(ic); + gaveup.push(ga); + needgrade.push(ng); + + ql = 'P' + cont; + ha = pc + ic + ga; + to = co + pc + ic + ga + ng; + hardest.push({ id: question.id, qu: ql, ha: ha, to: to, pe: Math.round((ha * 100) / to), }); + attempts_categories.push(ql); + attempts_questions.push(question); + cont++; + }); + + let attempts_series = []; + attempts_series.push({ + name: this.strings.correct_attempt, + data: correct + }); + attempts_series.push({ + name: this.strings.partcorrect_attempt, + data: partcorrect + }); + attempts_series.push({ + name: this.strings.incorrect_attempt, + data: incorr + }); + attempts_series.push({ + name: this.strings.blank_attempt, + data: gaveup + }); + attempts_series.push({ + name: this.strings.needgraded_attempt, + data: needgrade + }); + + let hardest_categories = [], hardest_data = [], hardest_questions = []; + hardest.sort(this.compare_hardest); + hardest.forEach(element => { + if (element.pe) { + hardest_categories.push(element.qu); + hardest_data.push(element.pe); + hardest_questions.push(element); + } + }); + + let hardest_series = [{ + name: this.strings.hardest_questions_yaxis_title, + data: hardest_data + }]; + + this.attempts_categories = attempts_categories; + this.attempts_series = attempts_series; + this.attempts_questions = attempts_questions; + this.hardest_categories = hardest_categories; + this.hardest_series = hardest_series; + this.hardest_questions = hardest_questions; + }, + + addLogsChangeQuizz(quiz) { + this.calculate_questions_attempts(quiz); + setTimeout(function() { + vue.addLogsIntoDB("viewed", vue.quiz_name, "quiz", "Selected a quiz"); + },500); + }, + + addListenersQuiz() { + let select = document.getElementsByClassName('v-input__slot'); + if(select.length>1) { + select[1].addEventListener('click', function() { + let childs = document.getElementsByClassName('v-list v-select-list v-sheet theme--light theme--light')[0].children; + for(let i=0; i<childs.length;i++) { + childs[i].addEventListener('click', function() { + vue.quiz_name = this.children[0].innerText.replace(/ /g, "_"); + }, {once: true}); + } + }) + } else { + setTimeout(vue.addListenersQuiz, 500); + } + }, + + update_interactions(week){ + this.loading = true; + this.errors = []; + let data = { + action : "quiz", + userid : this.userid, + courseid : this.courseid, + weekcode : week.weekcode, + profile : this.render_has, + } + Axios({ + method:'get', + url: M.cfg.wwwroot + "/local/fliplearning/ajax.php", + params : data, + }).then((response) => { + if (response.status == 200 && response.data.ok) { + this.quiz = response.data.data.quiz; + if (this.quiz.length) { + this.default_quiz = this.quiz[0].attempts; + this.calculate_questions_attempts(this.default_quiz); + } else { + this.reset_graphs(); + }; + } else { + this.error_messages.push(this.strings.error_network); + } + }).catch((e) => { + this.errors.push(this.strings.api_error_network); + }).finally(() => { + this.loading = false; + //Ici, la page a fini de charger + vue.addLogsIntoDB("viewed", "week_"+week.weekcode, "week_section", "Week section that allows you to obtain information on a specific week"); + vue.setGraphicsEventListeners(); + vue.addListenersQuiz(); + }); + return this.data; + }, + + reset_graphs () { + this.default_quiz = null; + this.attempts_categories = []; + this.attempts_series = []; + this.attempts_questions = []; + this.hardest_categories = []; + this.hardest_series = []; + this.hardest_questions = []; + }, + + compare_hardest(a, b) { + if (a.pe > b.pe) { + return -1; + } + if (a.pe < b.pe) { + return 1; + } + return 0; + }, + + open_chart_help(chart) { + let contents = []; + let action = ""; + let objectDescription = ""; + let objectName = ""; + let objectType = ""; + if (chart == "questions_attempts") { + contents.push({ + title: this.strings.questions_attempts_help_title, + description: this.strings.questions_attempts_help_description_p1, + }); + contents.push({ + description: this.strings.questions_attempts_help_description_p2, + }); + contents.push({ + description: this.strings.questions_attempts_help_description_p3, + }); + action = "viewed"; + objectType = "help"; + objectName = "questions_attempts" + objectDescription = "Help section that provides information about the attempted questions chart"; + vue.addLogsIntoDB(action, objectName, objectType, objectDescription); + } else if (chart == "hardest_questions") { + contents.push({ + title: this.strings.hardest_questions_help_title, + description: this.strings.hardest_questions_help_description_p1, + }); + contents.push({ + description: this.strings.hardest_questions_help_description_p2, + }); + contents.push({ + description: this.strings.hardest_questions_help_description_p3, + }); + action = "viewed"; + objectType = "help"; + objectName = "hardest_questions"; + objectDescription = "Help section that provides information about the difficult questions chart"; + vue.addLogsIntoDB(action, objectName, objectType, objectDescription); + } + this.help_contents = contents; + if (this.help_contents.length) { + this.help_dialog = true; + } + }, + + update_help_dialog (value) { + this.help_dialog = value; + }, + + get_timezone(){ + let information = `${this.strings.ss_change_timezone} ${this.timezone}` + return information; + }, + + setGraphicsEventListeners() { + //Ajoute les sondes pour lorsque l'utilisateur entre sur les différents graphiques + let graphics = document.querySelectorAll('.highcharts-container'); + if(graphics.length<1) { + setTimeout(vue.setGraphicsEventListeners, 500); + } else { + graphics[0].id="attemptedQuestions"; + graphics[1].id="difficultQuestions"; + graphics.forEach((graph) => { + graph.addEventListener('mouseenter', vue.addLogsViewGraphic); + }) + } + }, + + addLogsViewGraphic(e) { + event.stopPropagation(); + var action = ""; + var objectName = ""; + var objectType = ""; + var objectDescription = ""; + switch(e.target.id) { + case "attemptedQuestions": + action = "viewed"; + objectName = this.quiz_name+"_questions_attempts"; + objectType = "chart"; + objectDescription = "Bar chart that shows the attempted questions"; + break; + case "difficultQuestions": + action = "viewed"; + objectName = this.quiz_name+"_hardest_questions"; + objectType = "chart"; + objectDescription = "Chart showing the most difficult questions answered"; + break; + default: + action = "viewed"; + objectName = ""; + objectType = "chart"; + objectDescription = "A chart"; + break; + } + this.addLogsIntoDB(action, objectName, objectType, objectDescription); + }, + + addLogsIntoDB(action, objectName, objectType, objectDescription) { + let data = { + courseid: content.courseid, + userid: content.userid, + action: "addLogs", + sectionname: "ASSESSMENT_MONITORING", + actiontype: action, + objectType: objectType, + objectName: objectName, + currentUrl: document.location.href, + objectDescription: objectDescription, + }; + Axios({ + method:'get', + url: M.cfg.wwwroot + "/local/fliplearning/ajax.php", + params : data, + }).then((response) => { + if (response.status == 200 && response.data.ok) { + } + }).catch((e) => { + }); + }, + } + }) + } + + return { + init : init + }; + }); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/sessions.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/sessions.js new file mode 100644 index 0000000000000000000000000000000000000000..15eb244ea40da39732abd4ccd611010188e7aac1 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/sessions.js @@ -0,0 +1,388 @@ +define(["local_fliplearning/vue", + "local_fliplearning/vuetify", + "local_fliplearning/axios", + "local_fliplearning/moment", + "local_fliplearning/pagination", + "local_fliplearning/chartstatic", + "local_fliplearning/pageheader", + "local_fliplearning/helpdialog", + ], + function(Vue, Vuetify, Axios, Moment, Pagination, ChartStatic, PageHeader, HelpDialog) { + "use strict"; + + function init(content) { + // console.log(content); + Vue.use(Vuetify); + Vue.component('pagination', Pagination); + Vue.component('chart', ChartStatic); + Vue.component('pageheader', PageHeader); + Vue.component('helpdialog', HelpDialog); + let vue = new Vue({ + delimiters: ["[[", "]]"], + el: "#work_sessions", + vuetify: new Vuetify(), + data() { + return { + strings : content.strings, + groups : content.groups, + userid : content.userid, + courseid : content.courseid, + timezone : content.timezone, + render_has : content.profile_render, + loading : false, + errors : [], + + pages : content.pages, + hours_sessions: content.indicators.sessions, + session_count: content.indicators.count, + inverted_time: content.indicators.time, + inverted_time_colors: content.inverted_time_colors, + sessions_count_colors: content.sessions_count_colors, + + search: null, + + help_dialog: false, + help_contents: [], + } + }, + mounted(){ + document.querySelector("#sessions-loader").style.display = "none"; + document.querySelector("#work_sessions").style.display = "block"; + setTimeout(function() { + vue.setGraphicsEventListeners(); + }, 500); + }, + methods : { + get_help_content(){ + let contents = []; + contents.push({ + title: this.strings.section_help_title, + description: this.strings.section_help_description, + }); + return contents; + }, + + update_interactions(week){ + this.loading = true; + this.errors = []; + let data = { + action : "worksessions", + userid : this.userid, + courseid : this.courseid, + weekcode : week.weekcode, + profile : this.render_has, + } + Axios({ + method:'get', + url: M.cfg.wwwroot + "/local/fliplearning/ajax.php", + params : data, + }).then((response) => { + if (response.status == 200 && response.data.ok) { + this.hours_sessions = response.data.data.indicators.sessions; + this.session_count = response.data.data.indicators.count; + this.inverted_time = response.data.data.indicators.time; + } else { + this.error_messages.push(this.strings.error_network); + } + }).catch((e) => { + this.errors.push(this.strings.api_error_network); + }).finally(() => { + this.loading = false; + //Ici, la page a fini de charger + vue.addLogsIntoDB("viewed", "week_"+week.weekcode, "week_section", "Week section that allows you to obtain information on a specific week"); + vue.setGraphicsEventListeners(); + }); + return this.data; + }, + + get_point_category_name(point, dimension) { + let series = point.series, + isY = dimension === 'y', + axis = series[isY ? 'yAxis' : 'xAxis']; + return axis.categories[point[isY ? 'y' : 'x']]; + }, + + build_hours_sessions_chart() { + let chart = new Object(); + chart.title = { + text: null, + }; + chart.chart = { + type: 'heatmap', + backgroundColor: null, + style: {fontFamily: 'poppins'}, + }; + chart.xAxis = { + categories: this.strings.days, + }; + chart.yAxis = { + categories: this.strings.hours, + title: null, + reversed: true, + }; + chart.colorAxis = { + min: 0, + minColor: '#E0E0E0', + maxColor: '#118AB2' + }; + chart.legend = { + layout: 'horizontal', + verticalAlign: 'bottom', + }; + chart.tooltip = { + formatter: function () { + let xCategoryName = vue.get_point_category_name(this.point, 'x'); + let yCategoryName = vue.get_point_category_name(this.point, 'y'); + let label = vue.strings.sessions_text; + if (this.point.value == 1) { + label = vue.strings.session_text; + } + return '<b>' + xCategoryName + ' ' + yCategoryName + '</b>: ' + + this.point.value +' ' + label; + } + }; + chart.series = [{ + borderWidth: 2, + borderColor: '#FAFAFA', + data: this.hours_sessions, + }]; + return chart; + }, + + build_inverted_time_chart() { + let chart = new Object(); + chart.chart = { + type: 'bar', + backgroundColor: null, + style: {fontFamily: 'poppins'}, + }; + chart.title = { + text: null, + }; + chart.colors = this.inverted_time_colors; + chart.xAxis = { + type: 'category', + crosshair: true, + }; + chart.yAxis = { + title: { + text: this.strings.time_inverted_x_axis, + } + }; + chart.tooltip = { + shared:true, + useHTML:true, + formatter: function () { + let category_name = this.points[0].key; + let time = vue.convert_time(this.y); + return `<b>${category_name}: </b>${time}`; + } + }; + chart.legend = { + enabled: false + }; + chart.series = [{ + colorByPoint: true, + data: this.inverted_time.data + }]; + return chart; + }, + + build_sessions_count_chart() { + let chart = new Object(); + chart.chart = { + backgroundColor: null, + style: {fontFamily: 'poppins'}, + }; + chart.title = { + text: null, + }; + chart.colors = this.sessions_count_colors; + chart.yAxis = { + title: { + text: this.strings.session_count_yaxis_title, + }, + allowDecimals: false + }; + chart.xAxis = { + categories: this.session_count.categories, + }; + chart.tooltip = { + valueSuffix: this.strings.session_count_tooltip_suffix, + }; + chart.legend = { + layout: 'horizontal', + verticalAlign: 'bottom', + }; + chart.series = this.session_count.data + return chart; + }, + + convert_time(time) { + time *= 3600; // pasar las horas a segundos + let h = this.strings.hours_short; + let m = this.strings.minutes_short; + let s = this.strings.seconds_short; + let hours = Math.floor(time / 3600); + let minutes = Math.floor((time % 3600) / 60); + let seconds = Math.floor(time % 60); + let text; + if (hours >= 1) { + if (minutes >= 1) { + text = `${hours}${h} ${minutes}${m}`; + } else { + text = `${hours}${h}`; + } + } else if ((minutes >= 1)) { + if (seconds >= 1) { + text = `${minutes}${m} ${seconds}${s}`; + } else { + text = `${minutes}${m}`; + } + } else { + text = `${seconds}${s}`; + } + return text; + }, + + open_chart_help(chart) { + let contents = []; + var action = ""; + var objectName = ""; + var objectType = ""; + var objectDescription = ""; + if (chart == "inverted_time") { + contents.push({ + title: this.strings.inverted_time_help_title, + description: this.strings.inverted_time_help_description_p1, + }); + contents.push({ + description: this.strings.inverted_time_help_description_p2, + }); + action = "viewed"; + objectType = "help"; + objectName = "invested_time"; + objectDescription = "Help section that provides information about the sessions per week chart"; + vue.addLogsIntoDB(action, objectName, objectType, objectDescription); + } else if (chart == "hours_sessions") { + contents.push({ + title: this.strings.hours_sessions_help_title, + description: this.strings.hours_sessions_help_description_p1, + }); + contents.push({ + description: this.strings.hours_sessions_help_description_p2, + }); + action = "viewed"; + objectType = "help"; + objectName = "hours_sessions"; + objectDescription = "Help section that provides information about the sessions per hour chart"; + vue.addLogsIntoDB(action, objectName, objectType, objectDescription); + } else if (chart == "sessions_count") { + contents.push({ + title: this.strings.sessions_count_help_title, + description: this.strings.sessions_count_help_description_p1, + }); + contents.push({ + description: this.strings.sessions_count_help_description_p2, + }); + action = "viewed"; + objectType = "help"; + objectName = "sessions_count"; + objectDescription = "Help section that provides information about the invested time chart"; + vue.addLogsIntoDB(action, objectName, objectType, objectDescription); + } + this.help_contents = contents; + if (this.help_contents.length) { + this.help_dialog = true; + } + }, + + update_help_dialog (value) { + this.help_dialog = value; + }, + + get_timezone(){ + let information = `${this.strings.ss_change_timezone} ${this.timezone}` + return information; + }, + + setGraphicsEventListeners() { + let graphics = document.querySelectorAll('.highcharts-container'); + if(graphics.length<1) { + setTimeout(vue.setGraphicsEventListeners,500); + } else { + graphics[0].id="investedTime"; + graphics[1].id="sessionsPerHour"; + graphics[2].id="sessionsPerWeek"; + graphics.forEach((graph) => { + graph.addEventListener('mouseenter', vue.addLogsViewGraphic); + }) + } + }, + + addLogsViewGraphic(e) { + event.stopPropagation(); + var action = ""; + var objectName = ""; + var objectType = ""; + var objectDescription = ""; + switch(e.target.id) { + case "investedTime": + action = "viewed"; + objectName = "invested_time"; + objectType = "chart"; + objectDescription = "Bar chart that shows the average time invested by students as a function of the expected invested time"; + break; + case "sessionsPerHour": + action = "viewed"; + objectName = "hours_sessions"; + objectType = "chart"; + objectDescription = "Chart showing the number of sessions performed according to the time of day"; + break; + case "sessionsPerWeek": + action = "viewed"; + objectName = "sessions_count"; + objectType = "chart"; + objectDescription = "Chart showing the number of sessions performed per week"; + break; + default: + action = "viewed"; + objectName = ""; + objectType = "chart"; + objectDescription = "A chart"; + break; + } + vue.addLogsIntoDB(action, objectName, objectType, objectDescription); + }, + + addLogsIntoDB(action, objectName, objectType, objectDescription) { + let data = { + courseid: content.courseid, + userid: content.userid, + action: "addLogs", + sectionname: "TEACHER_STUDY_SESSIONS", + actiontype: action, + objectType: objectType, + objectName: objectName, + currentUrl: document.location.href, + objectDescription: objectDescription, + }; + Axios({ + method:'get', + url: M.cfg.wwwroot + "/local/fliplearning/ajax.php", + params : data, + }).then((response) => { + if (response.status == 200 && response.data.ok) { + } + }).catch((e) => { + }); + }, + } + }) + + } + + return { + init : init + }; + }); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/setweeks.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/setweeks.js new file mode 100644 index 0000000000000000000000000000000000000000..7085db0222c23c44e7393b56ce6fdb3b2b01ad30 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/setweeks.js @@ -0,0 +1,350 @@ +define(["local_fliplearning/vue", + "local_fliplearning/vuetify", + "local_fliplearning/axios", + "local_fliplearning/sortablejs", + "local_fliplearning/draggable", + "local_fliplearning/datepicker", + "local_fliplearning/moment", + "local_fliplearning/alertify", + "local_fliplearning/pageheader", + ], + function(Vue, Vuetify, Axios, Sortable, Draggable, Datepicker, Moment, Alertify, Pageheader) { + "use strict"; + + function init(content) { + content = add_collapsabled_property_to_weeks(content); + Vue.use(Vuetify); + Vue.component('draggable', Draggable); + Vue.component('datepicker', Datepicker); + Vue.component('pageheader', Pageheader); + const app = new Vue({ + delimiters: ["[[", "]]"], + el: "#setweeks", + vuetify: new Vuetify(), + data: { + display_settings: false, + settings: content.settings, + new_group: false, + scroll_mode: false, + weeks_started_at: new Date(Moment(Number(content.weeks[0].weekstart)*1000)), + strings: content.strings, + sections: content.sections, + courseid: content.courseid, + userid: content.userid, + raw_weeks: content.weeks, + disabled_dates: { + days: [0, 2, 3, 4, 5, 6] + }, + saving_loader: false, + error_messages: [], + save_successful: false + }, + mounted() { + document.querySelector("#setweeks-loader").style.display = "none"; + document.querySelector("#setweeks").style.display = "block"; + }, + computed: { + weeks() { + for (let i = 0; i < this.raw_weeks.length; i++) { + let week = this.raw_weeks[i]; + if (i == 0) { + let start_weeks = this.weeks_started_at; + week.weekstart = start_weeks; + week.weekend = this.get_end_week(this.weeks_started_at); + } else { + week.weekstart = this.get_start_week(this.raw_weeks[i - 1].weekend); + week.weekend = this.get_end_week(week.weekstart); + } + } + return this.raw_weeks; + } + }, + methods: { + section_name(section) { + let name = null; + if (typeof (section.section_name) != 'undefined' && section.section_name.length > 0) { + name = section.section_name; + } else { + name = section.name; + } + return name; + }, + + section_exist(section) { + let exist = true; + if (typeof (section) != 'undefined' && typeof (section.exists) != 'undefined' && section.exists == false) { + exist = false; + } + return exist; + }, + + format_name(name, position) { + return name + " " + (position + 1); + }, + + customFormatter(date) { + let weeks_start_at = Moment(date).format('YYYY-MM-DD'); + return weeks_start_at; + }, + + add_week() { + this.raw_weeks.push({ + name: this.strings.week, + position: (this.weeks.length + 1), + weekstart: null, + weekend: null, + collapsabled: false, + hours_dedications: 0, + removable: true, + sections: [] + }); + }, + + has_items(array) { + return array.length > 0; + }, + + remove_week(week, index) { + if (index == 0) { + return null; + } + this.close_delete_confirm(); + for (let i = 0; i < week.sections.length; i++) { + this.sections.push(week.sections[i]); + } + let element_index = this.raw_weeks.indexOf(week); + this.raw_weeks.splice(element_index, 1); + }, + + ask_delete_confirm() { + this.delete_confirm = true; + }, + + close_delete_confirm() { + this.delete_confirm = false; + }, + + get_start_week(pass_week) { + let start_date = Moment(Moment(pass_week).add(1, 'days')).format('YYYY-MM-DD'); + return start_date; + }, + + get_end_week(start_week) { + let end_date = Moment(Moment(start_week).add(6, 'days')).format('YYYY-MM-DD'); + return end_date; + }, + + get_date_next_day(requested_day, date, output_format = null) { + requested_day = requested_day.toLowerCase(); + let current_day = Moment(date).format('dddd').toLowerCase(); + while (current_day != requested_day) { + date = Moment(date).add(1, 'days'); + current_day = Moment(date).format('dddd').toLowerCase(); + } + if (output_format) { + date = date.format(output_format); + } else { + if (typeof (date) != 'number') { + date = parseInt(date.format("x")); + } + } + return date; + }, + + position(index) { + index++; + return `${index} - `; + }, + + save_changes() { + this.save_successful = false; + this.error_messages = []; + if (this.empty_weeks()) { + this.saving_loader = false; + Alertify.error(this.strings.error_empty_week); + this.error_messages.push(this.strings.error_empty_week); + return false; + } + if (this.weeks_deleted_from_course()) { + this.saving_loader = false; + this.error_messages.push(this.strings.error_section_removed); + return false; + } + + Alertify.confirm(this.strings.save_warning_content, + ()=>{ + this.saving_loader = true; + var weeks = this.weeks; + weeks[0].weekstart = Moment(weeks[0].weekstart).format("YYYY-MM-DD"); + var data = { + action: "saveconfigweek", + userid: this.userid, + courseid: this.courseid, + newinstance: this.new_group, + weeks: this.minify_query(weeks), // Stringify is a hack to clone object :D + }; + + Axios({ + method: 'get', + url: M.cfg.wwwroot + "/local/fliplearning/ajax.php", + params: data, + }).then((response) => { + console.log("then1"); + if (response.status == 200 && response.data.ok) { + console.log("then1.2"); + this.settings = response.data.data.settings; + console.log("then1.3"); + Alertify.success(this.strings.save_successful); + console.log("then1.4"); + this.save_successful = true; + console.log("then1.5"); + } else { + console.log("then1.6"); + Alertify.error(this.strings.error_network); + console.log("then1.7"); + this.error_messages.push(this.strings.error_network); + console.log("then1.8"); + } + }).catch((e) => { + console.log("catch1"); + Alertify.error(this.strings.error_network); + console.log("catch2"); + this.error_messages.push(this.strings.error_network); + console.log("catch3"); + }).finally(() => { + console.log("finally1"); + this.saving_loader = false; + console.log("finally2"); + //this.addLogsIntoDB("saved", "configuration", "weeks", "Saved a new configuration for the weeks !"); + }); + }, + ()=>{ // ON CANCEL + this.saving_loader = false; + Alertify.warning(this.strings.cancel_action); + }).set({title: this.strings.save_warning_title}) + .set({labels: {cancel: this.strings.confirm_cancel, ok: this.strings.confirm_ok}}); + }, + + minify_query(weeks) { + var minify = []; + weeks.forEach(week => { + var wk = new Object(); + wk.h = week.hours_dedications; + wk.s = week.weekstart; + wk.e = week.weekend; + wk.sections = []; + week.sections.forEach(section => { + var s = new Object(); + s.sid = section.sectionid; + wk.sections.push(s); + }); + minify.push(wk); + }); + return JSON.stringify(minify); + }, + + empty_weeks() { + if (this.weeks.length >= 2 && this.weeks[0].sections.length < 1) { + return true; + } + for (let i = 0; i < this.weeks.length; i++) { + if (i > 0 && this.weeks[i].sections.length <= 0) { + return true; + } + } + return false; + }, + + weeks_deleted_from_course() { + for (var week_position = 0; week_position < this.weeks.length; week_position++) { + for (var section_position = 0; section_position < this.weeks[week_position].sections.length; section_position++) { + if (!this.section_exist(this.weeks[week_position].sections[section_position])) { + return true; + } + } + } + return false; + }, + + exists_mistakes() { + let exists_mistakes = this.error_messages.length > 0; + return exists_mistakes; + }, + + change_collapsabled(index) { + this.raw_weeks[index].collapsabled = !this.raw_weeks[index].collapsabled; + }, + + course_finished() { + let finished = false; + let last = this.weeks.length - 1; + let end = Moment(this.weeks[last].weekend).format("X"); + let now = Moment().format("X"); + if (now > end) { + finished = true; + } else { + finished = false; + } + return finished; + }, + + get_settings_status() { + let visible = true; + Object.keys(this.settings).map(key => { + if (!this.settings[key]) { + visible = false; + } + }); + let status = visible ? this.strings.plugin_visible : this.strings.plugin_hidden; + return status; + }, + + get_help_content() { + var help_contents = []; + var help = new Object(); + help.title = this.strings.title; + help.description = this.strings.description; + help_contents.push(help); + return help_contents; + }, + + addLogsIntoDB(action, objectName, objectType, objectDescription) { + let data = { + courseid: content.courseid, + userid: content.userid, + action: "addLogs", + sectionname: "CONFIGURATION_COURSE_WEEK", + actiontype: action, + objectType: objectType, + objectName: objectName, + currentUrl: document.location.href, + objectDescription: objectDescription, + }; + Axios({ + method:'get', + url: M.cfg.wwwroot + "/local/fliplearning/ajax.php", + params : data, + }).then((response) => { + if (response.status == 200 && response.data.ok) { + } + }).catch((e) => { + }); + }, + } + }); + } + + function add_collapsabled_property_to_weeks(content) { + for (let i = 0; i < content.weeks.length; i++) { + let week = content.weeks[i]; + if (typeof (week.collapsabled) == "undefined") { + week.collapsabled = false; + } + } + return content; + } + + return { + init: init + }; + }); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/sortablejs.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/sortablejs.js new file mode 100644 index 0000000000000000000000000000000000000000..823d6def3fbfaec75706ecbc9ca8508cb8fa09ca --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/sortablejs.js @@ -0,0 +1,4 @@ +define(['local_fliplearning/config', 'sortablejs'], function(unused, sortablejs) { + return sortablejs; + } +); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/student.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/student.js new file mode 100644 index 0000000000000000000000000000000000000000..06320d7e67fc6cee6de7c6ff2a30abe803a5bff4 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/student.js @@ -0,0 +1,647 @@ +define(["local_fliplearning/vue", + "local_fliplearning/vuetify", + "local_fliplearning/axios", + "local_fliplearning/moment", + "local_fliplearning/momenttimezone", + "local_fliplearning/pagination", + "local_fliplearning/chartstatic", + "local_fliplearning/pageheader", + "local_fliplearning/modulesform", + "local_fliplearning/helpdialog", + ], + function(Vue, Vuetify, Axios, Moment, MomentTimezone, Pagination, ChartStatic, PageHeader, ModulesForm, HelpDialog) { + "use strict"; + + function init(content) { + // console.log(content); + Vue.use(Vuetify); + Vue.component('pagination', Pagination); + Vue.component('chart', ChartStatic); + Vue.component('pageheader', PageHeader); + Vue.component('modulesform', ModulesForm); + Vue.component('helpdialog', HelpDialog); + let vue = new Vue({ + delimiters: ["[[", "]]"], + el: "#student", + vuetify: new Vuetify(), + data() { + return { + strings : content.strings, + groups : content.groups, + userid : content.userid, + courseid : content.courseid, + timezone : content.timezone, + render_has : content.profile_render, + loading : false, + modules_dialog: false, + errors : [], + + indicators: content.indicators, + modules_access_colors: content.modules_access_colors, + sessions_evolution_colors: content.sessions_evolution_colors, + user_grades_colors: content.user_grades_colors, + user: content.indicators.user, + weeks_sessions: content.indicators.sessions, + sessions_evolution_data: [], + user_grades_categories: [], + user_grades_data: [], + course_grades_data: [], + selected_sections: [], + + help_dialog: false, + help_contents: [], + } + }, + beforeMount(){ + this.set_modules_in_sections(); + this.calculate_sessions_evolution(); + this.calculate_user_grades() + }, + mounted(){ + document.querySelector("#sessions-loader").style.display = "none"; + document.querySelector("#student").style.display = "block"; + setTimeout(function() { + vue.setGraphicsEventListeners(); + }) + + }, + methods : { + get_help_content(){ + let contents = []; + contents.push({ + title: this.strings.section_help_title, + description: this.strings.section_help_description, + }); + return contents; + }, + + set_modules_in_sections() { + let sectionsMap = new Map(); + let sectionid = 0; + this.indicators.cms.forEach(cm => { + sectionid = Number(cm.section); + if (!sectionsMap.has(sectionid)) { + sectionsMap.set(sectionid, [cm]); + } else { + sectionsMap.get(sectionid).push(cm); + } + }); + this.indicators.sections.forEach(section => { + sectionid = Number(section.sectionid); + section.sectionid = sectionid; + section.modules = (sectionsMap.has(sectionid)) ? sectionsMap.get(sectionid) : []; + }); + }, + + build_modules_access_chart() { + let chart = new Object(); + chart.chart = { + type: 'bar', + backgroundColor: null, + style: {fontFamily: 'poppins'}, + }; + chart.title = {text: null}; + chart.colors = this.modules_access_colors, + chart.xAxis = { + type: 'category', + }; + chart.yAxis = { + allowDecimals: false, + title: { + enabled: true, + text: this.strings.modules_amount, + } + }; + chart.tooltip = { + shared: true, + formatter: function () { + let module_text = (this.y == 1) ? vue.strings.module_label : vue.strings.modules_label; + return '<b>' + this.points[0].key + '</b>: ' + this.y + ' ' + module_text + '<br/>' + + '<i>'+ vue.strings.modules_details + '<i/>'; + } + }; + chart.plotOptions = { + series: { + cursor: 'pointer', + point: { + events: { + click: function () { + vue.addLogsIntoDB("viewed", "module_access", "chart_details", "Provide details informations about the consulted resources"); + vue.open_modules_modal(this.x); + } + } + } + } + }, + chart.legend = { + enabled: false + }; + chart.series = [{ + colorByPoint: true, + data: [ + {name: this.strings.modules_access_chart_series_viewed, y: this.user.cms.viewed}, + {name: this.strings.modules_access_chart_series_complete, y: this.user.cms.complete}, + {name: this.strings.modules_access_chart_series_total, y: this.user.cms.total} + ] + }]; + return chart; + }, + + build_weeks_session_chart() { + let chart = new Object(); + chart.title = {text: null}; + chart.chart = { + type: 'heatmap', + backgroundColor: null, + style: {fontFamily: 'poppins'}, + }; + chart.xAxis = { + categories: this.strings.weeks, + }; + chart.yAxis = { + categories: this.weeks_sessions.categories, + title: null, + reversed: true, + }; + chart.colorAxis = { + min: 0, + minColor: '#E0E0E0', + maxColor: '#118AB2' + }; + chart.legend = { + layout: 'horizontal', + verticalAlign: 'bottom', + }; + chart.tooltip = { + formatter: function () { + let days = vue.weeks_sessions.weeks[this.point.y][this.point.x] || ''; + let xCategoryName = vue.get_point_category_name(this.point, 'x'); + let yCategoryName = vue.get_point_category_name(this.point, 'y'); + let label = vue.strings.sessions_text; + if (this.point.value == 1) { + label = vue.strings.session_text;; + } + return '<b>' + yCategoryName + ' ' + xCategoryName + '</b>: ' + + this.point.value +' ' + label + '<br/>' + days; + } + }; + chart.series = [{ + borderWidth: 2, + borderColor: '#FAFAFA', + data: this.weeks_sessions.data, + }]; + return chart; + }, + + build_sessions_evolution_chart() { + let chart = new Object(); + chart.chart = { + zoomType: 'x', + backgroundColor: null, + style: {fontFamily: 'poppins'}, + }; + chart.title = {text: null}; + chart.colors = this.sessions_evolution_colors, + chart.xAxis = { + type: 'datetime' + }; + chart.yAxis = [{ + allowDecimals: false, + title: { text: this.strings.sessions_evolution_chart_xaxis1 } + }, { + title: { text: this.strings.sessions_evolution_chart_xaxis2 }, + opposite: true + }]; + chart.tooltip = { + shared: true, + useHTML: true, + formatter: function () { + let date_label = vue.calculate_timezone_date_string(this.x); + let text1 = (this.points[0]) ? vue.get_sessions_evolution_tooltip(this.points[0]) : ''; + let text2 = (this.points[1]) ? vue.get_sessions_evolution_tooltip(this.points[1]) : ''; + return `<small>${date_label}</small><br/>${text1}${text2}`; + } + }; + chart.series = this.sessions_evolution_data; + return chart; + }, + + build_user_grades_chart() { + let chart = new Object(); + chart.chart = { + type: 'column', + backgroundColor: null, + style: {fontFamily: 'poppins'}, + }; + chart.title = {text: null}; + chart.colors = this.user_grades_colors, + chart.xAxis = { + crosshair: true, + categories: this.user_grades_categories, + }; + chart.yAxis = { + allowDecimals: false, + max: 100, + labels: { + format: '{value} %', + }, + title: { text: this.strings.user_grades_chart_yaxis } + }; + chart.tooltip = { + shared: true, + useHTML: true, + formatter: function () { + let itemname = this.x; + let position = this.points[0].point.x; + let item = vue.user.gradeitems[position]; + let header = `<small>${itemname}</small><br/>`; + let footer = `<i>(${vue.strings.user_grades_chart_view_activity})</i><br/>`; + let body = ''; + if (item.gradecount == 0) { + body = vue.strings.user_grades_chart_tooltip_no_graded; + } else { + let text1 = (this.points[0]) ? vue.get_user_grades_tooltip(this.points[0], item) : ''; + let text2 = (this.points[1]) ? vue.get_user_grades_tooltip(this.points[1], item) : ''; + body = `${text1}${text2}${footer}`; + } + return `${header}${body}`; + } + }; + chart.plotOptions = { + series: { + cursor: 'pointer', + point: { + events: { + click: function () { + vue.addLogsIntoDB("viewed", "user_grades", "chart_details", "Provide details informations about the consulted resources"); + let position = this.x; + let item = vue.user.gradeitems[position]; + let url = `${M.cfg.wwwroot}/mod/${item.itemmodule}/view.php?id=${item.coursemoduleid}`; + window.open(url, '_blank'); + } + } + } + } + }; + chart.series = this.user_grades_data; + return chart; + }, + + calculate_sessions_evolution() { + let sessions_data = [], time_data = []; + let sumtime = 0, sumsessions = 0, time = 0, timestamp = 0; + this.user.sessions.forEach(session => { + timestamp = Number(session.start) * 1000; + time = (Number(session.duration)) / 60; + sumtime += time; + sumsessions++; + sessions_data.push({ x: timestamp, y: sumsessions }); + time_data.push({ x: timestamp, y: sumtime }); + }); + this.sessions_evolution_data = [ + { name: this.strings.sessions_evolution_chart_legend1, yAxis: 0, data: sessions_data }, + { name: this.strings.sessions_evolution_chart_legend2, yAxis: 1, data: time_data }, + ]; + }, + + calculate_user_grades() { + let categories = [], course_grades = [], user_grades = []; + let user_grade = 0, user_name = this.user.firstname; + if (this.user.gradeitems) { + this.user.gradeitems.forEach(item => { + user_grade = (Number(item.finalgrade) * 100) / Number(item.grademax); + categories.push(item.itemname); + course_grades.push(item.average_percentage); + user_grades.push(user_grade); + }); + this.user_grades_data = [ + { name: user_name, data: user_grades }, + { name: this.strings.user_grades_chart_legend, data: course_grades }, + ]; + this.user_grades_categories = categories; + } + }, + + calculate_timezone_date_string(timestamp) { + let dat, weekday, monthday, month, time; + if (Moment.tz.zone(this.timezone)) { + dat = Moment(timestamp).tz(this.timezone); + weekday = dat.day(); + monthday = dat.date(); + month = dat.month(); + time = dat.format('HH:mm:ss'); + } else { + let tz = Intl.DateTimeFormat().resolvedOptions().timeZone; + dat = new Date(timestamp); + weekday = dat.getDay(); + monthday = dat.getDate(); + month = dat.getMonth(); + time = `${dat.getHours()}:${dat.getMinutes()}:${dat.getSeconds()} (${tz})`; + } + weekday = this.strings.chart.weekdays[weekday]; + month = this.strings.chart.shortMonths[month]; + return `${weekday}, ${month} ${monthday}, ${time}`; + }, + + get_point_category_name(point, dimension) { + let series = point.series, + isY = dimension === 'y', + axis = series[isY ? 'yAxis' : 'xAxis']; + return axis.categories[point[isY ? 'y' : 'x']]; + }, + + get_sessions_evolution_tooltip (point) { + let text = '', sessions, sessions_suffix, sessions_prefix, time_prefix, time; + if (point.colorIndex == 0) { + sessions = point.y; + sessions_suffix = (sessions == 1) ? vue.strings.session_text : vue.strings.sessions_text; + sessions_prefix = point.series.name; + text = `<b style="color: ${point.color}">${sessions_prefix}: </b> + ${sessions} ${sessions_suffix}<br/>`; + } else { + time_prefix = point.series.name; + time = vue.convert_time(point.y * 60); + text = `<b style="color: ${point.color}">${time_prefix}: </b> + ${time}<br/>`; + } + return text; + }, + + get_user_grades_tooltip (point, item) { + let serie_name = point.series.name, user_grade = 0; + let finalgrade = Number(item.finalgrade), average = Number(item.average), grademax = Number(item.grademax); + grademax = this.isInt(grademax) ? grademax : grademax.toFixed(2); + if (point.colorIndex == 0) { + user_grade = this.isInt(finalgrade) ? finalgrade : finalgrade.toFixed(2); + } else { + user_grade = this.isInt(average) ? average : average.toFixed(2); + } + return `<b style="color: ${point.color}">${serie_name}: </b> + ${user_grade}/${grademax}<br/>`; + }, + + open_modules_modal(){ + let sections = this.indicators.sections; + sections.forEach(section => { + section.modules.forEach(module => { + module.complete = false; + module.viewed = false; + module.interactions = 0; + let user_cm = this.user.cms.modules[`cm${module.id}`]; + if (user_cm) { + module.complete = user_cm.complete; + module.viewed = user_cm.viewed; + module.interactions = user_cm.interactions; + } + }); + }); + + this.modules_dialog = true; + this.selected_sections = sections; + }, + + get_picture_url(userid){ + return `${M.cfg.wwwroot}/user/pix.php?file=/${userid}/f1.jpg`; + }, + + get_user_fullname(){ + return `${this.user.firstname} ${this.user.lastname}`; + }, + + get_username(){ + return `@${this.user.username}`; + }, + + see_profile () { + let id = this.user.id; + let url = M.cfg.wwwroot + '/user/view.php?id='+id+'&course='+vue.courseid; + window.open(url); + }, + + get_progress_percentage() { + return `${this.user.progress_percentage} %`; + }, + + get_progress_message(){ + let module_label = this.strings.modules_label; + let finished_label = this.strings.finisheds_label; + if (this.user.cms.complete == 1) { + module_label = this.strings.module_label; + finished_label = this.strings.finished_label; + } + return `${this.user.cms.complete} ${module_label} ${finished_label} ${this.strings.of_conector} ${this.user.cms.total}`; + }, + + convert_time(time) { + time *= 60; // pasar los minutos a segundos + let h = this.strings.hours_short; + let m = this.strings.minutes_short; + let s = this.strings.seconds_short; + let hours = Math.floor(time / 3600); + let minutes = Math.floor((time % 3600) / 60); + let seconds = Math.floor(time % 60); + let text; + if (hours >= 1) { + if (minutes >= 1) { + text = `${hours}${h} ${minutes}${m}`; + } else { + text = `${hours}${h}`; + } + } else if ((minutes >= 1)) { + if (seconds >= 1) { + text = `${minutes}${m} ${seconds}${s}`; + } else { + text = `${minutes}${m}`; + } + } else { + text = `${seconds}${s}`; + } + return text; + }, + + get_student_grade() { + let grade = this.user.coursegrade; + grade.finalgrade = Number(grade.finalgrade); + grade.maxgrade = Number(grade.maxgrade); + let student_grade = this.isInt(grade.finalgrade) ? grade.finalgrade : grade.finalgrade.toFixed(2); + let max_grade = this.isInt(grade.maxgrade) ? grade.maxgrade : grade.maxgrade.toFixed(2); + return `${student_grade}/${max_grade}`; + }, + + update_modules_dialog(value) { + this.modules_dialog = value; + }, + + isInt(n) { + return n % 1 === 0; + }, + + open_chart_help(chart) { + let contents = []; + let action = ""; + let objectType = ""; + let objectName = ""; + let objectDescription = ""; + if (chart == "modules_access") { + contents.push({ + title: this.strings.modules_access_help_title, + description: this.strings.modules_access_help_description_p1, + }); + contents.push({ + description: this.strings.modules_access_help_description_p2, + }); + contents.push({ + description: this.strings.modules_access_help_description_p3, + }); + action = "viewed"; + objectType = "help"; + objectName = "modules_access"; + objectDescription = "Help section that provides information about the modules access chart"; + this.addLogsIntoDB(action, objectName, objectType, objectDescription); + } else if (chart == "weeks_session") { + contents.push({ + title: this.strings.weeks_session_help_title, + description: this.strings.weeks_session_help_description_p1, + }); + contents.push({ + description: this.strings.weeks_session_help_description_p2, + }); + action = "viewed"; + objectType = "help"; + objectName = "week_session"; + objectDescription = "Help section that provides information about the week session chart"; + this.addLogsIntoDB(action, objectName, objectType, objectDescription); + } else if (chart == "sessions_evolution") { + contents.push({ + title: this.strings.sessions_evolution_help_title, + description: this.strings.sessions_evolution_help_description_p1, + }); + contents.push({ + description: this.strings.sessions_evolution_help_description_p2, + }); + contents.push({ + description: this.strings.sessions_evolution_help_description_p3, + }); + action = "viewed"; + objectType = "help"; + objectName = "sessions_evolution"; + objectDescription = "Help section that provides information about the sessions evolution chart"; + this.addLogsIntoDB(action, objectName, objectType, objectDescription); + } else if (chart == "user_grades") { + contents.push({ + title: this.strings.user_grades_help_title, + description: this.strings.user_grades_help_description_p1, + }); + contents.push({ + description: this.strings.user_grades_help_description_p2, + }); + contents.push({ + description: this.strings.user_grades_help_description_p3, + }); + action = "viewed"; + objectType = "help"; + objectName = "user_grades"; + objectDescription = "Help section that provides information about the user grades chart"; + this.addLogsIntoDB(action, objectName, objectType, objectDescription); + } + this.help_contents = contents; + if (this.help_contents.length) { + this.help_dialog = true; + } + }, + + update_help_dialog (value) { + this.help_dialog = value; + }, + + get_timezone(){ + let information = `${this.strings.ss_change_timezone} ${this.timezone}` + return information; + }, + + setGraphicsEventListeners() { + let graphics = document.querySelectorAll('.highcharts-container'); + if(graphics.length<1) { + setTimeout(vue.setGraphicsEventListeners,500); + } else { + graphics[0].id = "modules_access"; + graphics[1].id = "weeks_session"; + graphics[2].id = "sessions_evolution"; + graphics[3].id = "user_grades"; + graphics.forEach((graph) => { + graph.addEventListener('mouseenter', vue.addLogsViewGraphic); + }) + } + }, + + addLogsViewGraphic(e) { + event.stopPropagation(); + var action = ""; + var objectName = ""; + var objectType = ""; + var objectDescription = ""; + switch(e.target.id) { + case "modules_access": + action = "viewed"; + objectName = "modules_access"; + objectType = "chart"; + objectDescription = "Bar chart that shows"; + break; + case "weeks_session": + action = "viewed"; + objectName = "weeks_session"; + objectType = "chart"; + objectDescription = "Chart showing"; + break; + case "sessions_evolution": + action = "viewed"; + objectName = "sessions_evolution"; + objectType = "chart"; + objectDescription = "Chart showing "; + break; + case "user_grades": + action = "viewed"; + objectName = "user_grades"; + objectType = "chart"; + objectDescription = "Chart showing "; + break; + default: + action = "viewed"; + objectName = ""; + objectType = "chart"; + objectDescription = "A chart"; + } + vue.addLogsIntoDB(action, objectName, objectType, objectDescription); + }, + + addLogsIntoDB(action, objectName, objectType, objectDescription) { + let data = { + courseid: content.courseid, + userid: content.userid, + action: "addLogs", + sectionname: "STUDENT_GENERAL_INDICATORS", + actiontype: action, + objectType: objectType, + objectName: objectName, + currentUrl: document.location.href, + objectDescription: objectDescription, + }; + Axios({ + method:'get', + url: M.cfg.wwwroot + "/local/fliplearning/ajax.php", + params : data, + }).then((response) => { + if (response.status == 200 && response.data.ok) { + } + }).catch((e) => { + }); + }, + + } + }) + } + + return { + init : init + }; + }); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/student_sessions.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/student_sessions.js new file mode 100644 index 0000000000000000000000000000000000000000..6ed8cb1501120998e6122b5dd8539f417e5e06e9 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/student_sessions.js @@ -0,0 +1,495 @@ +define(["local_fliplearning/vue", + "local_fliplearning/vuetify", + "local_fliplearning/axios", + "local_fliplearning/moment", + "local_fliplearning/pagination", + "local_fliplearning/chartstatic", + "local_fliplearning/pageheader", + "local_fliplearning/modulesform", + "local_fliplearning/helpdialog", + ], + function(Vue, Vuetify, Axios, Moment, Pagination, ChartStatic, PageHeader, ModulesForm, HelpDialog) { + "use strict"; + + function init(content) { + // console.log(content); + Vue.use(Vuetify); + Vue.component('pagination', Pagination); + Vue.component('chart', ChartStatic); + Vue.component('pageheader', PageHeader); + Vue.component('modulesform', ModulesForm); + Vue.component('helpdialog', HelpDialog); + let vue = new Vue({ + delimiters: ["[[", "]]"], + el: "#work_sessions", + vuetify: new Vuetify(), + data() { + return { + strings : content.strings, + groups : content.groups, + userid : content.userid, + courseid : content.courseid, + timezone : content.timezone, + render_has : content.profile_render, + loading : false, + errors : [], + pages : content.pages, + + indicators: content.indicators, + resources_access_colors: content.resources_access_colors, + inverted_time_colors: content.inverted_time_colors, + inverted_time: content.indicators.inverted_time, + hours_sessions: content.indicators.hours_sessions, + sections: content.indicators.sections, + sections_map: null, + week_progress: 0, + resource_access_categories: [], + resource_access_data: [], + modules_dialog: false, + + help_dialog: false, + help_contents: [], + } + }, + beforeMount(){ + this.create_section_map(); + this.set_modules_in_sections(); + this.calculate_resources_access(); + }, + mounted(){ + document.querySelector("#sessions-loader").style.display = "none"; + document.querySelector("#work_sessions").style.display = "block"; + setTimeout(function() { + vue.setGraphicsEventListeners(); + }) + }, + methods : { + get_help_content(){ + let contents = []; + contents.push({ + title: this.strings.section_help_title, + description: this.strings.section_help_description, + }); + return contents; + }, + + build_inverted_time_chart() { + let chart = new Object(); + chart.chart = { + type: 'bar', + backgroundColor: null, + style: {fontFamily: 'poppins'}, + }; + chart.title = {text: null}; + chart.colors = this.inverted_time_colors; + chart.xAxis = { + type: 'category', + crosshair: true, + }; + chart.yAxis = { + title: { + text: this.strings.inverted_time_chart_x_axis, + } + }; + chart.tooltip = { + shared:true, + useHTML:true, + formatter: function () { + let category_name = this.points[0].key; + let time = vue.convert_time(this.y); + return `<b>${category_name}: </b>${time}`; + } + }; + chart.legend = { + enabled: false + }; + chart.series = [{ + colorByPoint: true, + data: this.inverted_time.data + }]; + return chart; + }, + + build_hours_session_chart() { + let chart = new Object(); + chart.title = {text: null}; + chart.chart = { + type: 'heatmap', + backgroundColor: null, + style: {fontFamily: 'poppins'}, + }; + chart.xAxis = { + categories: this.strings.days, + }; + chart.yAxis = { + categories: this.strings.hours, + title: null, + reversed: true, + }; + chart.colorAxis = { + min: 0, + minColor: '#E0E0E0', + maxColor: '#118AB2' + }; + chart.legend = { + layout: 'horizontal', + verticalAlign: 'bottom', + }; + chart.tooltip = { + formatter: function () { + let xCategoryName = vue.get_point_category_name(this.point, 'x'); + let yCategoryName = vue.get_point_category_name(this.point, 'y'); + let label = vue.strings.sessions_text; + if (this.point.value == 1) { + label = vue.strings.session_text; + } + return '<b>' + xCategoryName + ' ' + yCategoryName + '</b>: ' + + this.point.value +' ' + label; + } + }; + chart.series = [{ + borderWidth: 2, + borderColor: '#FAFAFA', + data: this.hours_sessions, + }]; + return chart; + }, + + build_resources_access_chart() { + let chart = new Object(); + chart.chart = { + type: 'column', + backgroundColor: null, + style: {fontFamily: 'poppins'}, + }; + chart.title = {text: null}; + chart.colors = this.resources_access_colors; + chart.xAxis = { + categories: this.resource_access_categories, + crosshair: true, + title: { + text: this.strings.resource_access_x_axis + }, + }; + chart.yAxis = { + min: 0, + title: { + text: this.strings.resource_access_y_axis + }, + }; + chart.plotOptions = { + column: { + stacking: 'normal', + }, + series: { + cursor: 'pointer', + point: { + events: { + click: function () { + vue.addLogsIntoDB("viewed", "resources_access", "chart_details", "Provide details informations about the consulted resources"); + vue.modules_dialog = true; + } + } + } + } + }; + chart.tooltip = { + shared: true, + useHTML: true, + footerFormat: `<i>${this.strings.modules_details}</i>`, + }; + chart.series = this.resource_access_data; + return chart; + }, + + update_interactions(week){ + this.loading = true; + this.errors = []; + let data = { + action : "studentsessions", + userid : this.userid, + courseid : this.courseid, + weekcode : week.weekcode, + profile : this.render_has, + } + Axios({ + method:'get', + url: M.cfg.wwwroot + "/local/fliplearning/ajax.php", + params : data, + }).then((response) => { + if (response.status == 200 && response.data.ok) { + this.inverted_time = response.data.data.indicators.inverted_time; + this.hours_sessions = response.data.data.indicators.hours_sessions; + this.sections = response.data.data.indicators.sections; + this.set_modules_in_sections(); + this.calculate_resources_access(); + } else { + this.error_messages.push(this.strings.error_network); + } + }).catch((e) => { + this.errors.push(this.strings.api_error_network); + }).finally(() => { + this.loading = false; + vue.addLogsIntoDB("viewed", "week_"+week.weekcode, "week_section", "Week section that allows you to obtain information on a specific week"); + vue.setGraphicsEventListeners(); + }); + return this.data; + }, + + create_section_map() { + let sectionsMap = new Map(); + let sectionid = 0; + this.indicators.course_cms.forEach(cm => { + sectionid = Number(cm.section); + if (!sectionsMap.has(sectionid)) { + sectionsMap.set(sectionid, [cm]); + } else { + sectionsMap.get(sectionid).push(cm); + } + }); + this.sections_map = sectionsMap; + }, + + set_modules_in_sections() { + let sectionid; + this.sections.forEach(section => { + sectionid = Number(section.sectionid); + section.sectionid = sectionid; + section.modules = (this.sections_map.has(sectionid)) ? this.sections_map.get(sectionid) : []; + }); + }, + + calculate_resources_access() { + let modulesMap = new Map(); + let moduleid, user_cm, mod, total_modules = 0, access_modules = 0; + let modules_names = this.strings.modules_names; + this.sections.forEach(section => { + section.modules.forEach(module => { + (!modulesMap.has(module.modname)) && modulesMap.set(module.modname,{complete:0,pending:0}); + mod = modulesMap.get(module.modname); + moduleid = Number(module.id); + module.id = moduleid; + module.complete = false; + module.viewed = false; + module.interactions = 0; + + user_cm = this.indicators.user_cms[`cm${module.id}`]; + if (user_cm) { + module.complete = user_cm.complete; + module.viewed = user_cm.viewed; + module.interactions = user_cm.interactions; + (user_cm.complete) ? mod.complete++ : mod.pending++; + (user_cm.complete) && access_modules++; + } else { + mod.pending++ + } + total_modules++; + }); + }); + let categories = [], complete_data = [], pending_data = []; + modulesMap.forEach(function(value, key) { + categories.push(modules_names[key] || key); + complete_data.push(value.complete); + pending_data.push(value.pending); + }); + this.resource_access_categories = categories; + this.resource_access_data = [ + { name: this.strings.resource_access_legend1, data: complete_data }, + { name: this.strings.resource_access_legend2, data: pending_data }, + ]; + this.week_progress = Math.floor((access_modules*100)/total_modules) || 0; + }, + + get_progress_percentage() { + return `${this.week_progress} %`; + }, + + get_point_category_name(point, dimension) { + let series = point.series, + isY = dimension === 'y', + axis = series[isY ? 'yAxis' : 'xAxis']; + return axis.categories[point[isY ? 'y' : 'x']]; + }, + + get_module_icon(modname){ + return `${M.cfg.wwwroot}/theme/image.php/boost/${modname}/1/icon`; + }, + + get_module_url(module){ + return `${M.cfg.wwwroot}/mod/${module.modname}/view.php?id=${module.id}`; + }, + + get_interactions_number(interactions){ + let interactions_text = (interactions == 1) ? this.strings.modules_interaction : this.strings.modules_interactions; + return `(${interactions} ${interactions_text})`; + }, + + convert_time(time) { + time *= 3600; // pasar las horas a segundos + let h = this.strings.hours_short; + let m = this.strings.minutes_short; + let s = this.strings.seconds_short; + let hours = Math.floor(time / 3600); + let minutes = Math.floor((time % 3600) / 60); + let seconds = Math.floor(time % 60); + let text; + if (hours >= 1) { + if (minutes >= 1) { + text = `${hours}${h} ${minutes}${m}`; + } else { + text = `${hours}${h}`; + } + } else if ((minutes >= 1)) { + if (seconds >= 1) { + text = `${minutes}${m} ${seconds}${s}`; + } else { + text = `${minutes}${m}`; + } + } else { + text = `${seconds}${s}`; + } + return text; + }, + + update_modules_dialog (value) { + this.modules_dialog = value; + }, + + open_chart_help(chart) { + let contents = []; + let action = ""; + let objectType = ""; + let objectName = ""; + let objectDescription = ""; + if (chart == "inverted_time") { + contents.push({ + title: this.strings.inverted_time_help_title, + description: this.strings.inverted_time_help_description_p1, + }); + contents.push({ + description: this.strings.inverted_time_help_description_p2, + }); + action = "viewed"; + objectType = "help"; + objectName = "invested_time"; + objectDescription = "Help section that provides information about the invested time chart"; + this.addLogsIntoDB(action, objectName, objectType, objectDescription); + } else if (chart == "hours_session") { + contents.push({ + title: this.strings.hours_session_help_title, + description: this.strings.hours_session_help_description_p1, + }); + contents.push({ + description: this.strings.hours_session_help_description_p2, + }); + action = "viewed"; + objectType = "help"; + objectName = "hours_session"; + objectDescription = "Help section that provides information about the hours session chart"; + this.addLogsIntoDB(action, objectName, objectType, objectDescription); + } else if (chart == "resources_access") { + contents.push({ + title: this.strings.resources_access_help_title, + description: this.strings.resources_access_help_description_p1, + }); + contents.push({ + description: this.strings.resources_access_help_description_p2, + }); + contents.push({ + description: this.strings.resources_access_help_description_p3, + }); + action = "viewed"; + objectType = "help"; + objectName = "resources_access"; + objectDescription = "Help section that provides information about the resources access chart"; + this.addLogsIntoDB(action, objectName, objectType, objectDescription); + } + this.help_contents = contents; + if (this.help_contents.length) { + this.help_dialog = true; + } + }, + + update_help_dialog (value) { + this.help_dialog = value; + }, + + get_timezone(){ + let information = `${this.strings.ss_change_timezone} ${this.timezone}` + return information; + }, + + setGraphicsEventListeners() { + let graphics = document.querySelectorAll('.highcharts-container'); + if(graphics.length<1) { + setTimeout(vue.setGraphicsEventListeners,500); + } else { + graphics[0].id = "inverted_time"; + graphics[1].id = "hours_session"; + graphics[2].id = "resources_access"; + graphics.forEach((graph) => { + graph.addEventListener('mouseenter', vue.addLogsViewGraphic); + }) + } + }, + + addLogsViewGraphic(e) { + event.stopPropagation(); + var action = ""; + var objectName = ""; + var objectType = ""; + var objectDescription = ""; + switch(e.target.id) { + case "inverted_time": + action = "viewed"; + objectName = "invested_time"; + objectType = "chart"; + objectDescription = "Bar chart that shows"; + break; + case "hours_session": + action = "viewed"; + objectName = "hours_session"; + objectType = "chart"; + objectDescription = "Chart showing"; + break; + case "resources_access": + action = "viewed"; + objectName = "resources_access"; + objectType = "chart"; + objectDescription = "Chart showing "; + break; + } + vue.addLogsIntoDB(action, objectName, objectType, objectDescription); + }, + + addLogsIntoDB(action, objectName, objectType, objectDescription) { + let data = { + courseid: content.courseid, + userid: content.userid, + action: "addLogs", + sectionname: "STUDENT_STUDY_SESSIONS", + actiontype: action, + objectType: objectType, + objectName: objectName, + currentUrl: document.location.href, + objectDescription: objectDescription, + }; + Axios({ + method:'get', + url: M.cfg.wwwroot + "/local/fliplearning/ajax.php", + params : data, + }).then((response) => { + if (response.status == 200 && response.data.ok) { + } + }).catch((e) => { + }); + }, + + } + }) + } + + return { + init : init + }; + }); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/teacher.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/teacher.js new file mode 100644 index 0000000000000000000000000000000000000000..0578d0c504de760bdaa74f5b945c61ead39e8340 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/teacher.js @@ -0,0 +1,268 @@ +define(["local_fliplearning/vue", + "local_fliplearning/vuetify", + "local_fliplearning/axios", + "local_fliplearning/pagination", + "local_fliplearning/chartstatic", + "local_fliplearning/pageheader", + "local_fliplearning/helpdialog", + ], + function(Vue, Vuetify, Axios, Pagination, ChartStatic, PageHeader, HelpDialog) { + "use strict"; + + function init(content) { + // console.log(content); + Vue.use(Vuetify); + Vue.component('pagination', Pagination); + Vue.component('chart', ChartStatic); + Vue.component('pageheader', PageHeader); + Vue.component('helpdialog', HelpDialog); + let vue = new Vue({ + delimiters: ["[[", "]]"], + el: "#teacher", + vuetify: new Vuetify(), + data() { + return { + strings : content.strings, + groups : content.groups, + userid : content.userid, + courseid : content.courseid, + timezone : content.timezone, + render_has : content.profile_render, + + indicators: content.indicators, + week_resources_colors: content.week_resources_colors, + search: null, + week_resources_categories: [], + week_resources_data: [], + + help_dialog: false, + help_contents: [], + } + }, + beforeMount(){ + this.calculate_week_resources(); + }, + mounted(){ + document.querySelector("#sessions-loader").style.display = "none"; + document.querySelector("#teacher").style.display = "block"; + }, + methods : { + get_help_content(){ + let contents = []; + contents.push({ + title: this.strings.section_help_title, + description: this.strings.section_help_description, + }); + return contents; + }, + + get_course_grade(){ + let grade = Number(this.indicators.course.grademax); + return (this.isInt(grade)) ? grade : grade.toFixed(2); + }, + + calculate_week_resources() { + let categories = [], data = []; + let week_name; + this.indicators.weeks.forEach(week => { + week_name = `${week.name} ${(week.position+1)}`; + categories.push(week_name); + data.push(week.cms); + }); + let name = this.capitalizeFirstLetter(this.strings.teacher_indicators_modules); + this.week_resources_categories = categories; + this.week_resources_data = [{ name, data}]; + }, + + build_week_resources_chart() { + let chart = new Object(); + chart.chart = { + type: 'bar', + backgroundColor: null, + style: {fontFamily: 'poppins'}, + }; + chart.title = { + text: null, + }; + chart.colors = this.week_resources_colors; + chart.xAxis = { + categories: this.week_resources_categories + }; + chart.yAxis = { + min: 0, + title: { + text: this.strings.teacher_indicators_week_resources_yaxis_title + } + }; + chart.legend = { + enabled: false + }; + chart.series = this.week_resources_data; + return chart; + }, + + build_weeks_sessions_chart() { + let chart = new Object(); + chart.chart = { + type: 'heatmap', + backgroundColor: null, + style: {fontFamily: 'poppins'}, + }; + chart.title = { + text: null, + }; + chart.xAxis = { + categories: this.strings.weeks, + }; + chart.yAxis = { + categories: this.indicators.sessions.categories, + title: null, + reversed: true, + }; + chart.colorAxis = { + min: 0, + minColor: '#E0E0E0', + maxColor: '#118AB2' + }; + chart.legend = { + layout: 'horizontal', + verticalAlign: 'bottom', + }; + chart.tooltip = { + formatter: function () { + let days = vue.indicators.sessions.weeks[this.point.y][this.point.x] || ''; + let xCategoryName = vue.get_point_category_name(this.point, 'x'); + let yCategoryName = vue.get_point_category_name(this.point, 'y'); + let label = vue.strings.teacher_indicators_sessions; + if (this.point.value == 1) { + label = vue.strings.teacher_indicators_session; + } + return '<b>' + yCategoryName + ' ' + xCategoryName + '</b>: ' + + this.point.value +' ' + label + '<br/>' + days; + } + }; + chart.series = [{ + borderWidth: 2, + borderColor: '#FAFAFA', + data: this.indicators.sessions.data, + }]; + return chart; + }, + + table_headers(){ + let headers = [ + { text: '', value : 'id', align : 'center', sortable : false}, + { text: this.strings.thead_name , value : 'firstname'}, + { text: this.strings.thead_lastname , value : 'lastname'}, + { text: this.strings.thead_email , value : 'email'}, + { text: this.strings.thead_progress , value : 'progress_percentage', align : 'center'}, + { text: this.strings.thead_sessions , value : 'sessions_number', align : 'center'}, + { text: this.strings.thead_time , value : 'inverted_time', align : 'center'}, + ]; + return headers; + }, + + get_picture_url(userid){ + let url = `${M.cfg.wwwroot}/user/pix.php?file=/${userid}/f1.jpg`; + return url; + }, + + get_percentage_progress(value){ + return `${value} %`; + }, + + get_progress_tooltip(item){ + let module_label = this.strings.teacher_indicators_modules; + let finished_label = this.strings.teacher_indicators_finished; + if (item.cms.complete == 1) { + module_label = this.strings.teacher_indicators_module; + finished_label = this.strings.teacher_indicators_finalized; + } + return `${item.cms.complete} ${module_label} ${finished_label} ${this.strings.of_conector} ${item.cms.total}`; + }, + + get_point_category_name(point, dimension) { + let series = point.series, + isY = dimension === 'y', + axis = series[isY ? 'yAxis' : 'xAxis']; + return axis.categories[point[isY ? 'y' : 'x']]; + }, + + capitalizeFirstLetter(string) { + return string.charAt(0).toUpperCase() + string.slice(1); + }, + + isInt(n) { + return n % 1 === 0; + }, + + open_chart_help(chart) { + let contents = []; + if (chart == "week_resources") { + contents.push({ + title: this.strings.week_resources_help_title, + description: this.strings.week_resources_help_description_p1, + }); + contents.push({ + description: this.strings.week_resources_help_description_p2, + }); + } else if (chart == "weeks_sessions") { + contents.push({ + title: this.strings.weeks_sessions_help_title, + description: this.strings.week_sessions_help_description_p1, + }); + contents.push({ + description: this.strings.week_sessions_help_description_p2, + }); + } else if (chart == "progress_table") { + contents.push({ + title: this.strings.progress_table_help_title, + description: this.strings.progress_table_help_description, + }); + } + this.help_contents = contents; + if (this.help_contents.length) { + this.help_dialog = true; + } + }, + + update_help_dialog (value) { + this.help_dialog = value; + }, + + get_timezone(){ + let information = `${this.strings.ss_change_timezone} ${this.timezone}` + return information; + }, + + addLogsIntoDB(action, objectName, objectType, objectDescription) { + let data = { + courseid: content.courseid, + userid: content.userid, + action: "addLogs", + sectionname: "TEACHER_GENERAL_INDICATORS", + actiontype: action, + objectType: objectType, + objectName: objectName, + currentUrl: document.location.href, + objectDescription: objectDescription, + }; + Axios({ + method:'get', + url: M.cfg.wwwroot + "/local/fliplearning/ajax.php", + params : data, + }).then((response) => { + if (response.status == 200 && response.data.ok) { + } + }).catch((e) => { + }); + }, + + } + }) + } + + return { + init : init + }; + }); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/vue.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/vue.js new file mode 100644 index 0000000000000000000000000000000000000000..71c7edce4b2c80c0ef36f538d0370f73b21185c3 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/vue.js @@ -0,0 +1,4 @@ +define(['local_fliplearning/config', 'vue'], function(unused, vue) { + return vue; + } +); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/vuetify.js b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/vuetify.js new file mode 100644 index 0000000000000000000000000000000000000000..9ac24e86466dacd46f254a92a9ea5727954f41e3 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/amd/src/vuetify.js @@ -0,0 +1,4 @@ +define(['local_fliplearning/config', 'vuetify'], function(unused, vuetify) { + return vuetify; + } +); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/classes/configweeks.php b/NMP 3.0 Moodle Pluggin/fliplearning/classes/configweeks.php new file mode 100644 index 0000000000000000000000000000000000000000..b6820846f06a4c5e84bdfe22a8594d0d2d47997f --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/classes/configweeks.php @@ -0,0 +1,510 @@ +<?php +// This file is part of Moodle - http://moodle.org/ +// +// Moodle is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Moodle is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Moodle. If not, see <http://www.gnu.org/licenses/>. + +/** + * Config Weeks + * + * @package local_fliplearning + * @autor Edisson Sigua, Bryan Aguilar + * @copyright 2020 Edisson Sigua <edissonf.sigua@gmail.com>, Bryan Aguilar <bryan.aguilar6174@gmail.com> + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace local_fliplearning; + +require_once("lib_trait.php"); + +use stdClass; + +class configweeks { + use \lib_trait; + + public $course; + public $user; + public $weeks; + public $instance; + public $current_sections; + public $startin; + + function __construct($course, $userid){ + global $DB; + $this->course = self::get_course($course); + $this->user = self::get_user($userid); + $this->instance = self::last_instance(); + $this->weeks = self::get_weeks(); + $this->current_sections = self::get_course_sections(); + $this->startin = isset($this->weeks[0]) ? $this->weeks[0]->weekstart : 999999999999; + $this->weeks = self::get_weeks_with_sections(); + } + + /** + * Obtiene la última instancia configurada para las semanas de Fliplearning. Si aun no se han + * configurado semanas en un curso, la última instacia es la que crea por defecto el plugin. + * + * @return mixed un objeto fieldset que contiene el primer registro que hace match con la consulta + */ + public function last_instance(){ + global $DB; + $sql = "select * from {fliplearning_instances} where courseid = ? order by id desc LIMIT 1"; + $instance = $DB->get_record_sql($sql, array($this->course->id)); + if(!isset($instance) || empty($instance)){ + $instance = self::create_instance($this->course->id); + } + return $instance; + } + + /** + * Crea una nueva instancia para la configuración de semanas de Fliplearning. Esta es la instancia + * que se crea por defecto. + * + * @return mixed un objeto fieldset que contiene el registro creado + */ + public function create_instance(){ + global $DB; + $instance = new stdClass(); + $instance->courseid = $this->course->id; + $instance->year = date("Y"); + $id = $DB->insert_record("fliplearning_instances", $instance, true); + $instance->id = $id; + $this->instance = $instance; + return $instance; + } + + /** + * Obtiene las semanas configuradas en Fliplearning en base a los ids de los atributos de clase + * $course e $intance. Se puede especificar + * + * @return array una lista con las semanas configuradas en un curso + */ + public function get_weeks(){ + global $DB; + $sql = "SELECT * FROM {fliplearning_weeks} + WHERE courseid = ? AND instanceid = ? AND timedeleted IS NULL ORDER BY POSITION ASC"; + $weeks = $DB->get_records_sql($sql, array($this->course->id, $this->instance->id)); + $weeks = array_values($weeks); + return $weeks; + } + + /** + * Agrega el campo sections a la variable de clase semanas para almacenar las secciones asignadas a cada semana. + * + * @return array una lista con las semanas del curso y las secciones asignadas a cada una + * @throws coding_exception | dml_exception + */ + public function get_weeks_with_sections(){ + $weeks = $this->weeks; + if(count($weeks) == 0){ + $weeks[] = self::create_first_week(); + $this->weeks = $weeks; + } + $course_sections = self::get_course_sections(); + foreach($weeks as $position => $week){ + $week->removable = true; + if($position == 0){ + $week->removable = false; + } + $week->sections = array(); + $week->name = get_string('setweeks_week', 'local_fliplearning'); + if(!isset($week->date_format)) { + $week->date_format = "Y-m-d"; + $week->weekstartlabel = self::to_format("Y-m-d", $week->weekstart); + $week->weekendlabel = self::to_format("Y-m-d", $week->weekend); + } + $week->weekstart = intval($week->weekstart); + $week->weekend = intval($week->weekend); + $week->position = $position; + $week->delete_confirm = false; + $sections = self::get_week_sections($week->weekcode); + foreach($sections as $key => $section){ + $section->name = $section->section_name; + $section->visible = self::get_current_visibility($section->sectionid); + $section = self::validate_section($section, $course_sections); + $week->sections[] = $section; + } + } + return $weeks; + } + + /** + * Crea la primera semana (semana por defecto) de Fliplearning en un curso. Esta funcion se ejecuta + * de manera automática para cada curso. + * + * @return stdClass un objeto con la semana creada + * @throws dml_exception + */ + private function create_first_week(){ + global $DB; + $start = strtotime('next monday'); + $end = strtotime('next monday + 6 day') + 86399; + $week = new stdClass(); + $week->hours_dedications = 0; + $week->courseid = $this->course->id; + $week->weekstart = $start; + $week->weekend = $end; + $week->position = 0; + $week->modified_by = $this->user->id; + $week->created_by = $this->user->id; + $week->timecreated = self::now_timestamp(); + $week->timemodified = self::now_timestamp(); + $week->weekcode = self::generate_week_code(0); + $week->instanceid = $this->instance->id; + $id = $DB->insert_record("fliplearning_weeks", $week, true); + $week->id = $id; + return $week; + } + + /** + * Genera un código de identificación para una semana de Fliplearning. El código se forma + * en base al año actual, id de la instancia de Fliplearning en el curso y posición de la semana + * + * @return int entero que representa el identificador de la semana + */ + private function generate_week_code($weekposition){ + $code = $this->instance->year . $this->instance->id . $this->course->id . $weekposition; + $code = (int) $code; + return $code; + } + + /** + * Obtiene las secciones de una la semana identificada por el parámetro $weekcode + * + * @param string $weekcode identificador de la semana de la que se debe obtener las semanas + * + * @return array lista con las secciones asignadas a la semana + */ + public function get_week_sections ($weekcode){ + global $DB; + $sql = "select * from {fliplearning_sections} where weekcode = ? and timedeleted IS NULL order by position asc"; + $week_sections = $DB->get_records_sql($sql, array($weekcode)); + return $week_sections; + } + + /** + * Devuelve un valor booleano que representa si la semana es visible o no + * + * @param int $sectionid id de la sección + * + * @return boolean valor booleano que representa si la sección es visible o no. Retorna null en caso de + * no encontrar la sección + */ + private function get_current_visibility($sectionid){ + foreach($this->current_sections as $section){ + if($section['sectionid'] == $sectionid){ + return $section['visible']; + } + } + return null; + } + + /** + * Actualiza el nombre de una sección (parámetro $section) si existe en la lista de secciones del + * parámetro $course_sections. En caso de que la sección ya tenga un nombre, no se actualiza su nombre. + * + * @param object $section objeto para verificar existencia + * @param object $course_sections lista de secciones para validar + * + * @return object objeto con la sección actualizada + */ + private function validate_section($section, $course_sections){ + $exist = false; + foreach($course_sections as $key => $course_section){ + if($section->sectionid == $course_section['sectionid']){ + $exist = true; + if($section->name != $course_section['name']){ + self::update_section_name($section->sectionid, $course_section['name']); + $section->name = $course_section['name']; + } + break; + } + } + $section->exists = $exist; + return $section; + } + + /** + * Actualiza el nombre de una sección de Fliplearning + * + * @param object $sectionid id de la seccion para actualizar + * @param object $name nuevo nombre para la sección + * + * @return void + */ + private function update_section_name($sectionid, $name){ + global $DB; + $sql = "update {fliplearning_sections} set section_name = ? where sectionid = ?"; + $DB->execute($sql, array($name, $sectionid)); + } + + /** + * Verifica si un curso tiene configurada las semanas de Fliplearning + * + * @return boolean valor booleano que representa si las semanas han sido configuradas + */ + public function is_set(){ + $is_set = true; + $settings = self::get_settings(); + foreach($settings as $configured){ + if(!$configured){ + $is_set = false; + break; + } + } + return $is_set; + } + + /** + * Obtiene las configuraciones de Fliplearning en un curso + * + * @return array lista de valores booleanos con las configuraciones del curso + */ + public function get_settings(){ + $tz = self::get_timezone(); + date_default_timezone_set($tz); + $course_start = $this->startin; + $weeks = self::get_weeks_with_sections(); + $settings = [ + "weeks" => false, + "course_start" => false, + "has_students" => false + ]; + $first_week = new stdClass(); + $first_week->has_sections = isset($weeks[0]) && !empty($weeks[0]->sections); + $first_week->started = time() >= $course_start; + if($first_week->has_sections){ + $settings['weeks'] = true; + } + if($first_week->started){ + $settings['course_start'] = true; + } + $students = self::get_student_ids(); + if(!empty($students)){ + $settings['has_students'] = true; + } + return $settings; + } + + /** + * Obtiene una lista de las secciones de un curso (sin la configuración de + * las semanas de Fliplearning) + * + * @return array lista de secciones del curso + */ + public function get_sections_without_week(){ + $course_sections = self::get_course_sections(); + $weeks = self::get_weeks_with_sections(); + foreach($weeks as $key => $week){ + foreach($week->sections as $section){ + foreach($course_sections as $index => $course_section){ + if($course_section['sectionid'] == $section->sectionid){ + unset($course_sections[$index]); + } + } + } + } + $course_sections = array_values($course_sections); + return $course_sections; + } + + /** + * Guarda las semanas de Fliplearning configuradas en un curso + * + * @param array $weeks semanas a guardar + * + * @return void + * @throws Exception + */ + public function save_weeks($weeks){ + global $DB; + self::delete_weeks(); + foreach($weeks as $key => $week){ + $week = self::save_week($week, $key); + self::save_week_sections($week->weekcode, $week->sections); + } + } + + /** + * Elimina las semanas de Fliplearning configuradas en un curso + * + * @return void + * @throws dml_exception + */ + public function delete_weeks(){ + global $DB; + $weeks = $this->weeks; + foreach($weeks as $week){ + self::delete_week_sections($week->weekcode); + $sql = "update {fliplearning_weeks} set timedeleted = ? where id = ?"; + $DB->execute($sql, array(self::now_timestamp() , $week->id)); + } + } + + /** + * Elimina las secciones asignadas a una semana de Fliplearning + * + * @param string $weekcode id de la semana a eliminar + * + * @return void + * @throws dml_exception + */ + public function delete_week_sections($weekcode){ + global $DB; + $sql = "update {fliplearning_sections} set timedeleted = ? where weekcode = ?"; + $DB->execute($sql, array(self::now_timestamp() , $weekcode)); + } + + /** + * Guarda una semana de Fliplearning configurada en un curso + * + * @param object $week semana a guardar + * @param int $position posicion de la semana + * + * @return void + * @throws Exception + */ + private function save_week($week, $position){ + global $DB; + $week->weekcode = self::generate_week_code($position); + $week->position = $position; + $week->weekstart = self::to_timestamp($week->s); + $week->weekend = self::to_timestamp($week->e) + 86399; + $week->hours_dedications = $week->h; + $week->courseid = $this->course->id; + $week->created_by = $this->user->id; + $week->modified_by = $this->user->id; + $week->timecreated = self::now_timestamp(); + $week->timemodified = self::now_timestamp(); + $week->instanceid = $this->instance->id; + $id = $DB->insert_record("fliplearning_weeks", $week, true); + $week->id = $id; + return $week; + } + + /** + * Guarda las secciones asignadas a una semana de Fliplearning + * + * @param string $weekcode id de la semana a la que pertenece las secciones + * @param array $sections lista de secciones a guardar + * + * @return void + * @throws dml_exception + */ + public function save_week_sections($weekcode, $sections){ + self::delete_week_sections($weekcode); + foreach ($sections as $position => $section){ + self::save_week_section($section, $weekcode, $position); + } + } + + /** + * Guarda una seccion asignada a una semana de Fliplearning + * + * @param object $section sección a guardar + * @param int $weekcode id de la semana a la que pertenece la sección + * @param int $position posición de la sección + * + * @return void + */ + private function save_week_section($section, $weekcode, $position){ + global $DB; + $section->sectionid = $section->sid; + $section->section_name = self::get_section_name_from_id($section->sectionid, $position); + $section->weekcode = $weekcode; + $section->position = $position; + $section->timecreated = self::now_timestamp(); + $section->timemodified = self::now_timestamp(); + $id = $DB->insert_record("fliplearning_sections", $section, true); + $section->id = $id; + return $section; + } + + /** + * Obtiene el nombre de una sección dado su id + * + * @param int $sectionid id de sección + * @param int $position posición de la sección + * + * @return void + */ + private function get_section_name_from_id($sectionid, $position){ + global $DB; + $result = $DB->get_record("course_sections", ["id" => $sectionid]); + $name = self::get_section_name($result, $position); + return $name; + } + + /** + * Devuelve la semana actual de las semanas configuradas de Fliplearning. En caso de que la consulta + * se realice despues de que el curso haya terminado, se retorna la última semana configurada + * + * @param int $last_if_course_finished parámetro entero opcional para devolver la última semana configurada + * en caso de que el curso haya terminado + * + * @return object objeto con la semana actual a la última semana + */ + public function get_current_week($last_if_course_finished = true){ + $current = null; + $now = time(); + $lastweek = null; + foreach($this->weeks as $week){ + $lastweek = $week; + if($now >= $week->weekstart && $now <= $week->weekend){ + $current = $week; + break; + } + } + if($last_if_course_finished){ + $current = $lastweek; + } + return $current; + } + + /** + * Toma la fecha actual al momento de hacer la llamada a la funcion y le resta 7 días para obtener + * el día de la peticion de la semana pasada. Si el día obtenido esta dentro de alguna de las semanas + * configuradas de Fliplearning entonces se retorna esa semana, de lo contratio se retorna null + * + * @return object objeto con la semana a la que corresponde la fecha actual menos 7 días. En caso de + * no encontrarlo se retorna null + */ + public function get_past_week(){ + $past = null; + $day_past_week = strtotime("-7 day", time()); + foreach($this->weeks as $week){ + if($day_past_week >= $week->weekstart && $day_past_week <= $week->weekend){ + $past = $week; + break; + } + } + return $past; + } + + public function get_weeks_paginator(){ + $pages = array(); + $current_week = self::get_current_week(); + foreach($this->weeks as $key => $week){ + $page = new stdClass(); + $page->number = $key + 1; + $page->weekcode = $week->weekcode; + $page->weekid = $week->id; + $page->weekstart = $week->weekstartlabel; + $page->weekend = $week->weekendlabel; + $page->selected = $week->weekcode == $current_week->weekcode ? true : false; + $page->is_current_week = $week->weekcode == $current_week->weekcode ? true : false; + array_push($pages, $page); + } + return $pages; + } +} diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/classes/course_participant.php b/NMP 3.0 Moodle Pluggin/fliplearning/classes/course_participant.php new file mode 100644 index 0000000000000000000000000000000000000000..27ea9721020d5b36ebc9a9357cc8e51eba966ed4 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/classes/course_participant.php @@ -0,0 +1,231 @@ +<?php +// This file is part of Moodle - http://moodle.org/ +// +// Moodle is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Moodle is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Moodle. If not, see <http://www.gnu.org/licenses/>. + +/** + * local_fliplearning + * + * @package local_fliplearning + * @autor Edisson Sigua, Bryan Aguilar + * @copyright 2020 Edisson Sigua <edissonf.sigua@gmail.com>, Bryan Aguilar <bryan.aguilar6174@gmail.com> + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace local_fliplearning; + +use context_course; + +use stdClass; + +class course_participant{ + const USER_FIELDS = ["id", "username", "firstname", "lastname", "email"]; + const ALL_STUDENT = 0; + protected $course; + protected $user; + protected $context; + + public function __construct($userid, $courseid){ + $this->course = self::get_course_from_id($courseid); + $this->user = self::get_user_from_id($userid); + $this->context = context_course::instance($this->course->id); + } + + protected function get_course_from_id($courseid, $strictness = MUST_EXIST){ + global $DB; + $course = $DB->get_record("course", array("id" => $courseid), '*', $strictness); + return $course; + } + + protected function get_user_from_id($userid, $strictness = MUST_EXIST){ + global $DB; + $user = $DB->get_record("user", array("id" => $userid), '*', $strictness); + return $user; + } + + public function is_student(){ + $student_role = 5; + $is_student = false; + $users_with_role = get_role_users($student_role, $this->context); + if(!empty($users_with_role) && isset($users_with_role[$this->user->id])){ + $is_student = true; + } + return $is_student; + } + + public function group_has_student($groupid){ + $has_student = false; + $student_role = 5; + $course_students = get_role_users($student_role, $this->context); + $group_members = groups_get_members($groupid); + foreach($group_members as $member){ + if(isset($course_students[$member->id])){ + $has_student = true; + break; + } + } + return $has_student; + } + + public function current_user_groups_with_all_group($groupmode, $exclude_witout_student = true){ + $context = context_course::instance($this->course->id); + $groups = new stdClass(); + $groups->all = groups_get_all_groups($this->course->id); + if(self::current_user_is_admin()){ + if(has_capability('local/fliplearning:seegroupwithallstudent', $context)){ + array_unshift($groups->all, self::default_group()); + } + if($exclude_witout_student){ + $groups->all = self::exclude_witout_student($groups->all); + } + return $groups->all; + } + $groups->current_user_is_member = array(); + foreach($groups->all as $group){ + $prefix = "u."; + $members = groups_get_members($group->id, self::sql_query_user_fields($prefix)); + if(isset($members[$this->user->id])){ + $groups->current_user_is_member[$group->id] = $group; + } + } + if(has_capability('local/fliplearning:seegroupwithallstudent', $context)){ + array_unshift($groups->current_user_is_member, self::default_group()); + } + if((self::is_student() && $groupmode != SEPARATEGROUPS) || (self::is_student() && $groupmode == SEPARATEGROUPS && empty($groups->current_user_is_member))){ + $groups->current_user_is_member = array(self::default_group()); + } + if($exclude_witout_student){ + $groups->current_user_is_member = self::exclude_witout_student($groups->current_user_is_member); + } + return $groups->current_user_is_member; + } + + private function default_group(){ + $group = new stdClass(); + $group->id = self::ALL_STUDENT; + $group->courseid = $this->course->id; + $group->idnumber = 'allstudent'; + $group->name = get_string("group_allstudent", "local_fliplearning"); + $group->description = ""; + $group->descriptionformat = 1; + $group->enrolmentkey = ""; + $group->picture = 0; + $group->hidepicture = 0; + $group->timecreated = time(); + $group->timemodified = time(); + return $group; + } + + public function all_groups_with_members(){ + $groups = array(); + foreach(self::all_groups() as $group){ + $prefix = "u."; + $group->members = groups_get_members($group->id, self::sql_query_user_fields($prefix)); + $groups[$group->id] = $group; + } + return $groups; + } + + public function all_groups(){ + $groups = groups_get_all_groups($this->course->id); + $groups = self::filter_groups_by_group_mode($groups); + $groups = self::arrayCopy($groups); + return $groups; + } + + private function filter_groups_by_group_mode($all_groups){ + $groups = new stdClass(); + $groups->all = $all_groups; + $groups->is_member = array(); + if(self::current_user_is_admin()){ + return $groups->all; + } + if(self::separated_group()){ + $groups->is_member = self::current_user_groups(); + } + return $groups->is_member; + } + + private function current_user_is_admin(){ + $admins = get_admins(); + $is_admin = isset($admins[$this->user->id]); + return $is_admin; + } + + private function separated_group(){ + $enabled = $this->course->groupmode == SEPARATEGROUPS; + return $enabled; + } + + public function current_user_groups(){ + $groups = new stdClass(); + $groups->all = groups_get_all_groups($this->course->id); + if(self::current_user_is_admin()){ + return $groups->all; + } + $groups->current_user_is_member = array(); + foreach($groups->all as $group){ + $prefix = "u."; + $members = groups_get_members($group->id, self::sql_query_user_fields($prefix)); + if(isset($members[$this->user->id])){ + $groups->current_user_is_member[$group->id] = $group; + } + } + return $groups->current_user_is_member; + } + + protected function sql_query_user_fields ($prefix = null, $renameid = null){ + $query = ""; + $fields = self::USER_FIELDS; + $last = count($fields) - 1; + foreach ($fields as $iteration => $field) { + if ($iteration == 0 && $renameid) { + $query .= "$prefix$renameid"; + } else { + $query .= "$prefix$field"; + } + if ($iteration < $last) { + $query .= ", "; + } + } + return $query; + } + + protected function arrayCopy(array $array){ + $result = array(); + foreach ($array as $key => $val) { + if (is_array($val)) { + $result[$key] = self::arrayCopy($val); + } elseif (is_object($val)) { + $result[$key] = clone $val; + } else { + $result[$key] = $val; + } + } + return $result; + } + + private function exclude_witout_student($groups){ + $filtered = array(); + foreach($groups as $group){ + if($group->id == 0){ + array_push($filtered, $group); + } + if(self::group_has_student($group->id)){ + array_push($filtered, $group); + } + } + return $filtered; + } +} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/classes/dropout.php b/NMP 3.0 Moodle Pluggin/fliplearning/classes/dropout.php new file mode 100644 index 0000000000000000000000000000000000000000..b440791333f13278c2cbdd5d5df787fbab8f5c37 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/classes/dropout.php @@ -0,0 +1,1031 @@ +<?php + +// This file is part of Moodle - http://moodle.org/ +// +// Moodle is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Moodle is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Moodle. If not, see <http://www.gnu.org/licenses/>. + +/** + * FlipLearning Logs component + * + * @package local_fliplearning + * @autor Edisson Sigua, Bryan Aguilar + * @copyright 2020 Edisson Sigua <edissonf.sigua@gmail.com>, Bryan Aguilar <bryan.aguilar6174@gmail.com> + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace local_fliplearning; + +require_once("lib_trait.php"); + +use stdClass; + +class dropout extends report { + use \lib_trait; + + function __construct($courseid, $userid){ + parent::__construct($courseid, $userid); + self::set_profile(); + self::set_users(); + } + + public function set_profile(){ + $this->profile = "teacher"; + } + + public function set_users(){ + $this->users = self::get_student_ids(false); + return $this->users; + } + + public function generate_data(){ + $start = $this->course->startdate; + $end = null; + if(isset($this->course->enddate) && ((int)$this->course->enddate) > 0) { + $end = $this->course->enddate; + } + $conditions = self::conditions_for_work_sessions($start, $end); + $users_sessions = self::get_sessions_from_logs($conditions); + $cms = self::get_course_modules(false, false); + $cms = array_filter($cms, function($module){ return $module->visible == 1 && $module->modname != 'label';}); + $cms = self::calculate_indicators($cms, $users_sessions); + $cms = self::format_data($cms); + $cms = self::normalize_data($cms); + self::clustering($cms); + return $cms; + } + + private function calculate_indicators($cms, $users){ + + foreach ($cms as $cm) { + if ($cm->modname == 'assign' || $cm->modname == 'assignment') { + $users = self::get_assign_indicators($cm, $users); + } else if ($cm->modname == 'book') { + $users = self::get_book_indicators($cm, $users); + } else if ($cm->modname == 'chat') { + $users = self::get_chat_indicators($cm, $users); + } else if ($cm->modname == 'choice') { + $users = self::get_choice_indicators($cm, $users); + } else if ($cm->modname == 'data') { + $users = self::get_data_indicators($cm, $users); + } else if ($cm->modname == 'feedback') { + $users = self::get_feedback_indicators($cm, $users); + } else if ($cm->modname == 'folder') { + $users = self::get_folder_indicators($cm, $users); + } else if ($cm->modname == 'forum') { + $users = self::get_forum_indicators($cm, $users); + } else if ($cm->modname == 'glossary') { + $users = self::get_glossary_indicators($cm, $users); + } else if ($cm->modname == 'imscp') { + $users = self::get_imscp_indicators($cm, $users); + } else if ($cm->modname == 'lesson') { + $users = self::get_lesson_indicators($cm, $users); + } else if ($cm->modname == 'lti') { + $users = self::get_lti_indicators($cm, $users); + } else if ($cm->modname == 'page') { + $users = self::get_page_indicators($cm, $users); + } else if ($cm->modname == 'quiz') { + $users = self::get_quiz_indicators($cm, $users); + } else if ($cm->modname == 'resource') { + $users = self::get_resource_indicators($cm, $users); + } else if ($cm->modname == 'scorm') { + $users = self::get_scorm_indicators($cm, $users); + } else if ($cm->modname == 'survey') { + $users = self::get_survey_indicators($cm, $users); + } else if ($cm->modname == 'url') { + $users = self::get_url_indicators($cm, $users); + } else if ($cm->modname == 'wiki') { + $users = self::get_wiki_indicators($cm, $users); + } else if ($cm->modname == 'workshop') { + $users = self::get_workshop_indicators($cm, $users); + } + } + return $users; + } + + private function get_assign_indicators ($cm, $users) { + $cognitive = new \mod_assign\analytics\indicator\cognitive_depth(); + $social = new \mod_assign\analytics\indicator\social_breadth(); + $cm_cognitive_depth = $cognitive->get_cognitive_depth_level($cm); + $cm_social_breadth = $social->get_social_breadth_level($cm); + foreach ($users as $user) { + $cm_logs = array(); + $logs = $user->logs; + foreach ($logs as $log) { + if ($log->contextlevel == "70" && $log->contextinstanceid == $cm->id) { + array_push($cm_logs, $log); + } + } + + $cognitive_first_level = 0; + $cognitive_second_level = 0; + $cognitive_third_level = 0; + $cognitive_fourth_level = 0; + $social_first_level = 0; + $social_second_level = 0; + foreach ($cm_logs as $log) { + if ($log->component == "mod_assign" && $log->action == "viewed" && $log->target == "course_module") { + $cognitive_first_level = 1; + $social_first_level = 1; + } else if ($log->component == "mod_assign" && $log->action == "submitted" && $log->target == "assessable") { + $cognitive_second_level++; + } else if ($log->component == "mod_assign" && $log->action == "viewed" && $log->target == "feedback") { + $cognitive_third_level = 1; + } else if ($log->component == "assignsubmission_comments" && $log->action == "created" && $log->target == "comment") { + $social_second_level = 1; + } + } + if ($cognitive_second_level > 1) { + $cognitive_fourth_level = 1; + $cognitive_second_level = 1; + } + $user_cognitive_level = $cognitive_first_level + $cognitive_second_level + $cognitive_third_level + $cognitive_fourth_level; + $user_social_breadth = $social_first_level + $social_second_level; + $user_cognitive_level_value = $user_cognitive_level/$cm_cognitive_depth; + $user_social_breadth_value = $user_social_breadth/$cm_social_breadth; + $indicator = new stdClass(); + $indicator->cognitive =$user_cognitive_level_value; + $indicator->social =$user_social_breadth_value; + + if (!isset($user->cms)) { + $user->cms = array(); + } + $label = $cm->modname.$cm->id; + $user->cms[$label] = $indicator; + } + return $users; + } + + private function get_book_indicators ($cm, $users) { + $cognitive = new \mod_book\analytics\indicator\cognitive_depth(); + $social = new \mod_book\analytics\indicator\social_breadth(); + $cm_cognitive_depth = $cognitive->get_cognitive_depth_level($cm); + $cm_social_breadth = $social->get_social_breadth_level($cm); + foreach ($users as $user) { + $cm_logs = array(); + $logs = $user->logs; + foreach ($logs as $log) { + if ($log->contextlevel == "70" && $log->contextinstanceid == $cm->id) { + array_push($cm_logs, $log); + } + } + + $cognitive_first_level = 0; + $social_first_level = 0; + foreach ($cm_logs as $log) { + if ($log->component == "mod_book" && $log->action == "viewed" && $log->target == "course_module") { + $cognitive_first_level = 1; + $social_first_level = 1; + } + } + $user_cognitive_level_value = $cognitive_first_level/$cm_cognitive_depth; + $user_social_breadth_value = $social_first_level/$cm_social_breadth; + $indicator = new stdClass(); + $indicator->cognitive =$user_cognitive_level_value; + $indicator->social =$user_social_breadth_value; + if (!isset($user->cms)) { + $user->cms = array(); + } + $label = $cm->modname.$cm->id; + $user->cms[$label] = $indicator; + } + return $users; + } + + private function get_chat_indicators ($cm, $users) { + $cognitive = new \mod_chat\analytics\indicator\cognitive_depth(); + $social = new \mod_chat\analytics\indicator\social_breadth(); + $cm_cognitive_depth = $cognitive->get_cognitive_depth_level($cm); + $cm_social_breadth = $social->get_social_breadth_level($cm); + foreach ($users as $user) { + $cm_logs = array(); + $logs = $user->logs; + foreach ($logs as $log) { + if ($log->contextlevel == "70" && $log->contextinstanceid == $cm->id) { + array_push($cm_logs, $log); + } + } + + $cognitive_first_level = 0; + $cognitive_second_level = 0; + $social_first_level = 0; + $social_second_level = 0; + foreach ($cm_logs as $log) { + if ($log->component == "mod_chat" && $log->action == "viewed" && $log->target == "course_module") { + $cognitive_first_level = 1; + $social_first_level = 1; + } else if ($log->component == "mod_chat" && $log->action == "sent" && $log->target == "message") { + $cognitive_second_level = 3; + $social_second_level = 1; + } + } + $user_cognitive_level = $cognitive_first_level + $cognitive_second_level; + $user_social_breadth = $social_first_level + $social_second_level; + $user_cognitive_level_value = $user_cognitive_level/$cm_cognitive_depth; + $user_social_breadth_value = $user_social_breadth/$cm_social_breadth; + $indicator = new stdClass(); + $indicator->cognitive =$user_cognitive_level_value; + $indicator->social =$user_social_breadth_value; + + if (!isset($user->cms)) { + $user->cms = array(); + } + $label = $cm->modname.$cm->id; + $user->cms[$label] = $indicator; + } + return $users; + } + + private function get_choice_indicators ($cm, $users) { + $cognitive = new \mod_choice\analytics\indicator\cognitive_depth(); + $social = new \mod_choice\analytics\indicator\social_breadth(); + $cm_cognitive_depth = $cognitive->get_cognitive_depth_level($cm); + $cm_social_breadth = $social->get_social_breadth_level($cm); + foreach ($users as $user) { + $cm_logs = array(); + $logs = $user->logs; + foreach ($logs as $log) { + if ($log->contextlevel == "70" && $log->contextinstanceid == $cm->id) { + array_push($cm_logs, $log); + } + } + + $cognitive_first_level = 0; + $cognitive_second_level = 0; + $social_first_level = 0; + $social_second_level = 0; + foreach ($cm_logs as $log) { + if ($log->component == "mod_choice" && $log->action == "viewed" && $log->target == "course_module") { + $cognitive_first_level = 1; + $social_first_level = 1; + } else if ($log->component == "mod_choice" && $log->action == "created" && $log->target == "answer") { + $cognitive_second_level = 1; + $social_second_level = 1; + } + } + $user_cognitive_level = $cognitive_first_level + $cognitive_second_level; + $user_social_breadth = $social_first_level + $social_second_level; + $user_cognitive_level_value = $user_cognitive_level/$cm_cognitive_depth; + $user_social_breadth_value = $user_social_breadth/$cm_social_breadth; + $indicator = new stdClass(); + $indicator->cognitive =$user_cognitive_level_value; + $indicator->social =$user_social_breadth_value; + if (!isset($user->cms)) { + $user->cms = array(); + } + $label = $cm->modname.$cm->id; + $user->cms[$label] = $indicator; + } + return $users; + } + + private function get_data_indicators ($cm, $users) { + $cognitive = new \mod_data\analytics\indicator\cognitive_depth(); + $social = new \mod_data\analytics\indicator\social_breadth(); + $cm_cognitive_depth = $cognitive->get_cognitive_depth_level($cm); + $cm_social_breadth = $social->get_social_breadth_level($cm); + foreach ($users as $user) { + $cm_logs = array(); + $logs = $user->logs; + foreach ($logs as $log) { + if ($log->contextlevel == "70" && $log->contextinstanceid == $cm->id) { + array_push($cm_logs, $log); + } + } + + $cognitive_first_level = 0; + $cognitive_second_level = 0; + $social_first_level = 0; + foreach ($cm_logs as $log) { + if ($log->component == "mod_data" && $log->action == "viewed" && $log->target == "course_module") { + $cognitive_first_level = 1; + $social_first_level = 1; + } else if ($log->component == "mod_data" && $log->action == "created" && $log->target == "record") { + $cognitive_second_level = 1; + } + } + $user_cognitive_level = $cognitive_first_level + $cognitive_second_level; + $user_cognitive_level_value = $user_cognitive_level/$cm_cognitive_depth; + $user_social_breadth_value = $social_first_level/$cm_social_breadth; + $indicator = new stdClass(); + $indicator->cognitive =$user_cognitive_level_value; + $indicator->social =$user_social_breadth_value; + + if (!isset($user->cms)) { + $user->cms = array(); + } + $label = $cm->modname.$cm->id; + $user->cms[$label] = $indicator; + } + return $users; + } + + private function get_feedback_indicators ($cm, $users) { + $cognitive = new \mod_feedback\analytics\indicator\cognitive_depth(); + $social = new \mod_feedback\analytics\indicator\social_breadth(); + $cm_cognitive_depth = $cognitive->get_cognitive_depth_level($cm); + $cm_social_breadth = $social->get_social_breadth_level($cm); + foreach ($users as $user) { + $cm_logs = array(); + $logs = $user->logs; + foreach ($logs as $log) { + if ($log->contextlevel == "70" && $log->contextinstanceid == $cm->id) { + array_push($cm_logs, $log); + } + } + + $cognitive_first_level = 0; + $cognitive_second_level = 0; + $social_first_level = 0; + $social_second_level = 0; + foreach ($cm_logs as $log) { + if ($log->component == "mod_feedback" && $log->action == "viewed" && $log->target == "course_module") { + $cognitive_first_level = 1; + $social_first_level = 1; + } else if ($log->component == "mod_feedback" && $log->action == "submitted" && $log->target == "response") { + $cognitive_second_level = 1; + $social_second_level = 1; + } + } + $user_cognitive_level = $cognitive_first_level + $cognitive_second_level; + $user_social_breadth = $social_first_level + $social_second_level; + $user_cognitive_level_value = $user_cognitive_level/$cm_cognitive_depth; + $user_social_breadth_value = $user_social_breadth/$cm_social_breadth; + $indicator = new stdClass(); + $indicator->cognitive =$user_cognitive_level_value; + $indicator->social =$user_social_breadth_value; + + if (!isset($user->cms)) { + $user->cms = array(); + } + $label = $cm->modname.$cm->id; + $user->cms[$label] = $indicator; + } + return $users; + } + + private function get_folder_indicators ($cm, $users) { + $cognitive = new \mod_folder\analytics\indicator\cognitive_depth(); + $social = new \mod_folder\analytics\indicator\social_breadth(); + $cm_cognitive_depth = $cognitive->get_cognitive_depth_level($cm); + $cm_social_breadth = $social->get_social_breadth_level($cm); + foreach ($users as $user) { + $cm_logs = array(); + $logs = $user->logs; + foreach ($logs as $log) { + if ($log->contextlevel == "70" && $log->contextinstanceid == $cm->id) { + array_push($cm_logs, $log); + } + } + + $cognitive_first_level = 0; + $social_first_level = 0; + foreach ($cm_logs as $log) { + if ($log->component == "mod_folder" && $log->action == "viewed" && $log->target == "course_module") { + $cognitive_first_level = 1; + $social_first_level = 1; + } + } + $user_cognitive_level_value = $cognitive_first_level/$cm_cognitive_depth; + $user_social_breadth_value = $social_first_level/$cm_social_breadth; + $indicator = new stdClass(); + $indicator->cognitive =$user_cognitive_level_value; + $indicator->social =$user_social_breadth_value; + if (!isset($user->cms)) { + $user->cms = array(); + } + $label = $cm->modname.$cm->id; + $user->cms[$label] = $indicator; + } + return $users; + } + + private function get_forum_indicators ($cm, $users) { + $cognitive = new \mod_forum\analytics\indicator\cognitive_depth(); + $social = new \mod_forum\analytics\indicator\social_breadth(); + $cm_cognitive_depth = $cognitive->get_cognitive_depth_level($cm); + $cm_social_breadth = $social->get_social_breadth_level($cm); + foreach ($users as $user) { + $cm_logs = array(); + $logs = $user->logs; + foreach ($logs as $log) { + if ($log->contextlevel == "70" && $log->contextinstanceid == $cm->id) { + array_push($cm_logs, $log); + } + } + + $cognitive_first_level = 0; + $cognitive_second_level = 0; + $cognitive_third_level = 0; + $social_first_level = 0; + $social_second_level = 0; + foreach ($cm_logs as $log) { + if ($log->component == "mod_forum" && $log->action == "viewed" && $log->target == "discussion") { + $cognitive_first_level = 1; + $social_first_level = 1; + } else if ($log->component == "mod_forum" && $log->action == "created" && $log->target == "post") { + $cognitive_second_level = 1; + $social_second_level = 1; + } else if ($log->component == "mod_forum" && $log->action == "created" && $log->target == "discussion") { + $cognitive_third_level = 2; + } + } + $user_cognitive_level = $cognitive_first_level + $cognitive_second_level + $cognitive_third_level; + $user_social_breadth = $social_first_level + $social_second_level; + $user_cognitive_level_value = $user_cognitive_level/$cm_cognitive_depth; + $user_social_breadth_value = $user_social_breadth/$cm_social_breadth; + $indicator = new stdClass(); + $indicator->cognitive =$user_cognitive_level_value; + $indicator->social =$user_social_breadth_value; + + if (!isset($user->cms)) { + $user->cms = array(); + } + $label = $cm->modname.$cm->id; + $user->cms[$label] = $indicator; + } + return $users; + } + + private function get_glossary_indicators ($cm, $users) { + $cognitive = new \mod_glossary\analytics\indicator\cognitive_depth(); + $social = new \mod_glossary\analytics\indicator\social_breadth(); + $cm_cognitive_depth = $cognitive->get_cognitive_depth_level($cm); + $cm_social_breadth = $social->get_social_breadth_level($cm); + foreach ($users as $user) { + $cm_logs = array(); + $logs = $user->logs; + foreach ($logs as $log) { + if ($log->contextlevel == "70" && $log->contextinstanceid == $cm->id) { + array_push($cm_logs, $log); + } + } + + $cognitive_first_level = 0; + $cognitive_second_level = 0; + $social_first_level = 0; + foreach ($cm_logs as $log) { + if ($log->component == "mod_glossary" && $log->action == "viewed" && $log->target == "course_module") { + $cognitive_first_level = 1; + $social_first_level = 1; + } else if ($log->component == "mod_glossary" && $log->action == "created" && $log->target == "entry") { + $cognitive_second_level = 1; + } + } + $user_cognitive_level = $cognitive_first_level + $cognitive_second_level; + $user_social_breadth = $social_first_level; + $user_cognitive_level_value = $user_cognitive_level/$cm_cognitive_depth; + $user_social_breadth_value = $user_social_breadth/$cm_social_breadth; + $indicator = new stdClass(); + $indicator->cognitive =$user_cognitive_level_value; + $indicator->social =$user_social_breadth_value; + + if (!isset($user->cms)) { + $user->cms = array(); + } + $label = $cm->modname.$cm->id; + $user->cms[$label] = $indicator; + } + return $users; + } + + private function get_imscp_indicators ($cm, $users) { + $cognitive = new \mod_imscp\analytics\indicator\cognitive_depth(); + $social = new \mod_imscp\analytics\indicator\social_breadth(); + $cm_cognitive_depth = $cognitive->get_cognitive_depth_level($cm); + $cm_social_breadth = $social->get_social_breadth_level($cm); + foreach ($users as $user) { + $cm_logs = array(); + $logs = $user->logs; + foreach ($logs as $log) { + if ($log->contextlevel == "70" && $log->contextinstanceid == $cm->id) { + array_push($cm_logs, $log); + } + } + + $cognitive_first_level = 0; + $social_first_level = 0; + foreach ($cm_logs as $log) { + if ($log->component == "mod_imscp" && $log->action == "viewed" && $log->target == "course_module") { + $cognitive_first_level = 1; + $social_first_level = 1; + } + } + $user_cognitive_level_value = $cognitive_first_level/$cm_cognitive_depth; + $user_social_breadth_value = $social_first_level/$cm_social_breadth; + $indicator = new stdClass(); + $indicator->cognitive =$user_cognitive_level_value; + $indicator->social =$user_social_breadth_value; + if (!isset($user->cms)) { + $user->cms = array(); + } + $label = $cm->modname.$cm->id; + $user->cms[$label] = $indicator; + } + return $users; + } + + private function get_lesson_indicators ($cm, $users) { + $cognitive = new \mod_lesson\analytics\indicator\cognitive_depth(); + $social = new \mod_lesson\analytics\indicator\social_breadth(); + $cm_cognitive_depth = $cognitive->get_cognitive_depth_level($cm); + $cm_social_breadth = $social->get_social_breadth_level($cm); + foreach ($users as $user) { + $cm_logs = array(); + $logs = $user->logs; + foreach ($logs as $log) { + if ($log->contextlevel == "70" && $log->contextinstanceid == $cm->id) { + array_push($cm_logs, $log); + } + } + + $cognitive_first_level = 0; + $cognitive_second_level = 0; + $cognitive_third_level = 0; + $cognitive_fourth_level = 0; + $social_first_level = 0; + $social_second_level = 0; + $first_attempt_ended = false; + foreach ($cm_logs as $log) { + if ($log->component == "mod_lesson" && $log->action == "viewed" && $log->target == "course_module") { + $cognitive_first_level = 1; + $social_first_level = 1; + } else if ($log->component == "mod_lesson" && $log->action == "ended" && $log->target == "lesson") { + if (!$first_attempt_ended) { + $cognitive_second_level = 1; + $first_attempt_ended = true; + } else { + $cognitive_third_level = 1; + } + $social_second_level = 1; + } + + if ($first_attempt_ended) { + if ($log->component == "mod_lesson" && $log->action == "viewed" && $log->objecttable == "lesson_pages") { + $cognitive_fourth_level = 1; + } + } + } + $user_cognitive_level = $cognitive_first_level + $cognitive_second_level + $cognitive_third_level + $cognitive_fourth_level; + $user_social_breadth = $social_first_level + $social_second_level; + $user_cognitive_level_value = $user_cognitive_level/$cm_cognitive_depth; + $user_social_breadth_value = $user_social_breadth/$cm_social_breadth; + $indicator = new stdClass(); + $indicator->cognitive =$user_cognitive_level_value; + $indicator->social =$user_social_breadth_value; + + if (!isset($user->cms)) { + $user->cms = array(); + } + $label = $cm->modname.$cm->id; + $user->cms[$label] = $indicator; + } + return $users; + } + + private function get_lti_indicators ($cm, $users) { + $cognitive = new \mod_lti\analytics\indicator\cognitive_depth(); + $social = new \mod_lti\analytics\indicator\social_breadth(); + $cm_cognitive_depth = $cognitive->get_cognitive_depth_level($cm); + $cm_social_breadth = $social->get_social_breadth_level($cm); + foreach ($users as $user) { + $cm_logs = array(); + $logs = $user->logs; + foreach ($logs as $log) { + if ($log->contextlevel == "70" && $log->contextinstanceid == $cm->id) { + array_push($cm_logs, $log); + } + } + + $cognitive_first_level = 0; + $social_first_level = 0; + foreach ($cm_logs as $log) { + if ($log->component == "mod_lti" && $log->action == "viewed" && $log->target == "course_module") { + $cognitive_first_level = 1; + $social_first_level = 1; + } + } + $user_cognitive_level_value = $cognitive_first_level/$cm_cognitive_depth; + $user_social_breadth_value = $social_first_level/$cm_social_breadth; + $indicator = new stdClass(); + $indicator->cognitive =$user_cognitive_level_value; + $indicator->social =$user_social_breadth_value; + if (!isset($user->cms)) { + $user->cms = array(); + } + $label = $cm->modname.$cm->id; + $user->cms[$label] = $indicator; + } + return $users; + } + + private function get_page_indicators ($cm, $users) { + $cognitive = new \mod_page\analytics\indicator\cognitive_depth(); + $social = new \mod_page\analytics\indicator\social_breadth(); + $cm_cognitive_depth = $cognitive->get_cognitive_depth_level($cm); + $cm_social_breadth = $social->get_social_breadth_level($cm); + foreach ($users as $user) { + $cm_logs = array(); + $logs = $user->logs; + foreach ($logs as $log) { + if ($log->contextlevel == "70" && $log->contextinstanceid == $cm->id) { + array_push($cm_logs, $log); + } + } + + $cognitive_first_level = 0; + $social_first_level = 0; + foreach ($cm_logs as $log) { + if ($log->component == "mod_page" && $log->action == "viewed" && $log->target == "course_module") { + $cognitive_first_level = 1; + $social_first_level = 1; + } + } + $user_cognitive_level_value = $cognitive_first_level/$cm_cognitive_depth; + $user_social_breadth_value = $social_first_level/$cm_social_breadth; + $indicator = new stdClass(); + $indicator->cognitive =$user_cognitive_level_value; + $indicator->social =$user_social_breadth_value; + if (!isset($user->cms)) { + $user->cms = array(); + } + $label = $cm->modname.$cm->id; + $user->cms[$label] = $indicator; + } + return $users; + } + + private function get_quiz_indicators ($cm, $users) { + $cognitive = new \mod_quiz\analytics\indicator\cognitive_depth(); + $social = new \mod_quiz\analytics\indicator\social_breadth(); + $cm_cognitive_depth = $cognitive->get_cognitive_depth_level($cm); + $cm_social_breadth = $social->get_social_breadth_level($cm); + foreach ($users as $user) { + $cm_logs = array(); + $logs = $user->logs; + foreach ($logs as $log) { + if ($log->contextlevel == "70" && $log->contextinstanceid == $cm->id) { + array_push($cm_logs, $log); + } + } + + $cognitive_first_level = 0; + $cognitive_second_level = 0; + $cognitive_third_level = 0; + $cognitive_fourth_level = 0; + $social_first_level = 0; + $social_second_level = 0; + $first_attempt_ended = false; + foreach ($cm_logs as $log) { + if ($log->component == "mod_quiz" && $log->action == "viewed" && $log->target == "course_module") { + $cognitive_first_level = 1; + $social_first_level = 1; + } else if ($log->component == "mod_quiz" && $log->action == "submitted" && $log->target == "attempt") { + if (!$first_attempt_ended) { + $cognitive_second_level = 1; + $first_attempt_ended = true; + } else { + $cognitive_fourth_level = 1; + } + $social_second_level = 1; + } else if ($log->component == "mod_quiz" && $log->action == "reviewed" && $log->target == "attempt") { + $cognitive_third_level = 1; + } + } + $user_cognitive_level = $cognitive_first_level + $cognitive_second_level + $cognitive_third_level + $cognitive_fourth_level; + $user_social_breadth = $social_first_level + $social_second_level; + $user_cognitive_level_value = $user_cognitive_level/$cm_cognitive_depth; + $user_social_breadth_value = $user_social_breadth/$cm_social_breadth; + $indicator = new stdClass(); + $indicator->cognitive =$user_cognitive_level_value; + $indicator->social =$user_social_breadth_value; + + if (!isset($user->cms)) { + $user->cms = array(); + } + $label = $cm->modname.$cm->id; + $user->cms[$label] = $indicator; + } + return $users; + } + + private function get_resource_indicators ($cm, $users) { + $cognitive = new \mod_resource\analytics\indicator\cognitive_depth(); + $social = new \mod_resource\analytics\indicator\social_breadth(); + $cm_cognitive_depth = $cognitive->get_cognitive_depth_level($cm); + $cm_social_breadth = $social->get_social_breadth_level($cm); + foreach ($users as $user) { + $cm_logs = array(); + $logs = $user->logs; + foreach ($logs as $log) { + if ($log->contextlevel == "70" && $log->contextinstanceid == $cm->id) { + array_push($cm_logs, $log); + } + } + + $cognitive_first_level = 0; + $social_first_level = 0; + foreach ($cm_logs as $log) { + if ($log->component == "mod_resource" && $log->action == "viewed" && $log->target == "course_module") { + $cognitive_first_level = 1; + $social_first_level = 1; + } + } + $user_cognitive_level_value = $cognitive_first_level/$cm_cognitive_depth; + $user_social_breadth_value = $social_first_level/$cm_social_breadth; + $indicator = new stdClass(); + $indicator->cognitive =$user_cognitive_level_value; + $indicator->social =$user_social_breadth_value; + if (!isset($user->cms)) { + $user->cms = array(); + } + $label = $cm->modname.$cm->id; + $user->cms[$label] = $indicator; + } + return $users; + } + + private function get_scorm_indicators ($cm, $users) { + $cognitive = new \mod_scorm\analytics\indicator\cognitive_depth(); + $social = new \mod_scorm\analytics\indicator\social_breadth(); + $cm_cognitive_depth = $cognitive->get_cognitive_depth_level($cm); + $cm_social_breadth = $social->get_social_breadth_level($cm); + foreach ($users as $user) { + $cm_logs = array(); + $logs = $user->logs; + foreach ($logs as $log) { + if ($log->contextlevel == "70" && $log->contextinstanceid == $cm->id) { + array_push($cm_logs, $log); + } + } + + $cognitive_first_level = 0; + $cognitive_second_level = 0; + $social_first_level = 0; + $social_second_level = 0; + foreach ($cm_logs as $log) { + if ($log->component == "mod_scorm" && $log->action == "viewed" && $log->target == "course_module") { + $cognitive_first_level = 1; + $social_first_level = 1; + } else if ($log->component == "mod_scorm" && $log->action == "submitted") { + $cognitive_second_level = 1; + $social_second_level = 1; + } + } + $user_cognitive_level = $cognitive_first_level + $cognitive_second_level; + $user_social_breadth = $social_first_level + $social_second_level; + $user_cognitive_level_value = $user_cognitive_level/$cm_cognitive_depth; + $user_social_breadth_value = $user_social_breadth/$cm_social_breadth; + $indicator = new stdClass(); + $indicator->cognitive =$user_cognitive_level_value; + $indicator->social =$user_social_breadth_value; + + if (!isset($user->cms)) { + $user->cms = array(); + } + $label = $cm->modname.$cm->id; + $user->cms[$label] = $indicator; + } + return $users; + } + + private function get_survey_indicators ($cm, $users) { + $cognitive = new \mod_survey\analytics\indicator\cognitive_depth(); + $social = new \mod_survey\analytics\indicator\social_breadth(); + $cm_cognitive_depth = $cognitive->get_cognitive_depth_level($cm); + $cm_social_breadth = $social->get_social_breadth_level($cm); + foreach ($users as $user) { + $cm_logs = array(); + $logs = $user->logs; + foreach ($logs as $log) { + if ($log->contextlevel == "70" && $log->contextinstanceid == $cm->id) { + array_push($cm_logs, $log); + } + } + + $cognitive_first_level = 0; + $cognitive_second_level = 0; + $social_first_level = 0; + foreach ($cm_logs as $log) { + if ($log->component == "mod_survey" && $log->action == "viewed" && $log->target == "course_module") { + $cognitive_first_level = 1; + $social_first_level = 1; + } else if ($log->component == "mod_survey" && $log->action == "submitted" && $log->target == "response") { + $cognitive_second_level = 1; + } + } + $user_cognitive_level = $cognitive_first_level + $cognitive_second_level; + $user_social_breadth = $social_first_level; + $user_cognitive_level_value = $user_cognitive_level/$cm_cognitive_depth; + $user_social_breadth_value = $user_social_breadth/$cm_social_breadth; + $indicator = new stdClass(); + $indicator->cognitive =$user_cognitive_level_value; + $indicator->social =$user_social_breadth_value; + + if (!isset($user->cms)) { + $user->cms = array(); + } + $label = $cm->modname.$cm->id; + $user->cms[$label] = $indicator; + } + return $users; + } + + private function get_url_indicators ($cm, $users) { + $cognitive = new \mod_url\analytics\indicator\cognitive_depth(); + $social = new \mod_url\analytics\indicator\social_breadth(); + $cm_cognitive_depth = $cognitive->get_cognitive_depth_level($cm); + $cm_social_breadth = $social->get_social_breadth_level($cm); + foreach ($users as $user) { + $cm_logs = array(); + $logs = $user->logs; + foreach ($logs as $log) { + if ($log->contextlevel == "70" && $log->contextinstanceid == $cm->id) { + array_push($cm_logs, $log); + } + } + + $cognitive_first_level = 0; + $social_first_level = 0; + foreach ($cm_logs as $log) { + if ($log->component == "mod_url" && $log->action == "viewed" && $log->target == "course_module") { + $cognitive_first_level = 1; + $social_first_level = 1; + } + } + $user_cognitive_level_value = $cognitive_first_level/$cm_cognitive_depth; + $user_social_breadth_value = $social_first_level/$cm_social_breadth; + $indicator = new stdClass(); + $indicator->cognitive =$user_cognitive_level_value; + $indicator->social =$user_social_breadth_value; + if (!isset($user->cms)) { + $user->cms = array(); + } + $label = $cm->modname.$cm->id; + $user->cms[$label] = $indicator; + } + return $users; + } + + private function get_wiki_indicators ($cm, $users) { + $cognitive = new \mod_wiki\analytics\indicator\cognitive_depth(); + $social = new \mod_wiki\analytics\indicator\social_breadth(); + $cm_cognitive_depth = $cognitive->get_cognitive_depth_level($cm); + $cm_social_breadth = $social->get_social_breadth_level($cm); + foreach ($users as $user) { + $cm_logs = array(); + $logs = $user->logs; + foreach ($logs as $log) { + if ($log->contextlevel == "70" && $log->contextinstanceid == $cm->id) { + array_push($cm_logs, $log); + } + } + + $cognitive_first_level = 0; + $cognitive_second_level = 0; + $social_first_level = 0; + foreach ($cm_logs as $log) { + if ($log->component == "mod_wiki" && $log->action == "viewed" && $log->target == "course_module") { + $cognitive_first_level = 1; + $social_first_level = 1; + } else if ($log->component == "mod_wiki" && ($log->action == "created" || $log->action == "updated") && $log->target == "page") { + $cognitive_second_level = 1; + } + } + $user_cognitive_level = $cognitive_first_level + $cognitive_second_level; + $user_social_breadth = $social_first_level; + $user_cognitive_level_value = $user_cognitive_level/$cm_cognitive_depth; + $user_social_breadth_value = $user_social_breadth/$cm_social_breadth; + $indicator = new stdClass(); + $indicator->cognitive =$user_cognitive_level_value; + $indicator->social =$user_social_breadth_value; + + if (!isset($user->cms)) { + $user->cms = array(); + } + $label = $cm->modname.$cm->id; + $user->cms[$label] = $indicator; + } + return $users; + } + + private function get_workshop_indicators ($cm, $users) { + $cognitive = new \mod_workshop\analytics\indicator\cognitive_depth(); + $social = new \mod_workshop\analytics\indicator\social_breadth(); + $cm_cognitive_depth = $cognitive->get_cognitive_depth_level($cm); + $cm_social_breadth = $social->get_social_breadth_level($cm); + foreach ($users as $user) { + $cm_logs = array(); + $logs = $user->logs; + foreach ($logs as $log) { + if ($log->contextlevel == "70" && $log->contextinstanceid == $cm->id) { + array_push($cm_logs, $log); + } + } + + $cognitive_first_level = 0; + $cognitive_second_level = 0; + $cognitive_third_level = 0; + $social_first_level = 0; + $social_second_level = 0; + foreach ($cm_logs as $log) { + if ($log->component == "mod_workshop" && $log->action == "viewed" && $log->target == "course_module") { + $cognitive_first_level = 1; + $social_first_level = 1; + } else if ($log->component == "mod_workshop" && $log->action == "created" && $log->target == "submission") { + $cognitive_second_level = 1; + } else if ($log->component == "mod_workshop" && $log->action == "assessed" && $log->target == "submission") { + $cognitive_third_level = 1; + $social_second_level = 1; + } + } + $user_cognitive_level = $cognitive_first_level + $cognitive_second_level + $cognitive_third_level; + $user_social_breadth = $social_first_level + $social_second_level; + $user_cognitive_level_value = $user_cognitive_level/$cm_cognitive_depth; + $user_social_breadth_value = $user_social_breadth/$cm_social_breadth; + $indicator = new stdClass(); + $indicator->cognitive =$user_cognitive_level_value; + $indicator->social =$user_social_breadth_value; + + if (!isset($user->cms)) { + $user->cms = array(); + } + $label = $cm->modname.$cm->id; + $user->cms[$label] = $indicator; + } + return $users; + } + + private function format_data($users) { + $data = array(); + foreach ($users as $user) { + $userdata = array(); + array_push($userdata, $user->active_days); + array_push($userdata, $user->summary->added); + array_push($userdata, $user->summary->count); + foreach ($user->cms as $cm) { + array_push($userdata, $cm->cognitive); + array_push($userdata, $cm->social); + } + $data[$user->userid] = $userdata; + + } + return $data; + } + + private function normalize_data($data) { + $normalized = array(); + if (count($data) > 0) { + $keys = array_keys($data); + $normalizer = new \local_fliplearning\phpml\Preprocessing\Normalizer(); + $data = self::transpose($data); + if (count($keys) == 1) { + $data = array($data); + } + $normalizer->transform($data); + $data = self::transpose($data); + if (count($keys) == 1) { + $data = array($data); + } + foreach ($data as $index => $record) { + $normalized[$keys[$index]] = $record; + } + } + return $normalized; + } + + private function transpose($array) { + return array_map(null, ...$array); + } + + private function clustering($data) { + global $DB; + $sql = "UPDATE {fliplearning_clustering} SET active = 0 WHERE courseid = {$this->course->id}"; + $DB->execute($sql); + + $kmeans = new \local_fliplearning\phpml\Clustering\KMeans(2); + $clusters = $kmeans->cluster($data); + + foreach ($clusters as $index => $users) { + foreach ($users as $userid => $user) { + $record = new stdClass(); + $record->courseid = $this->course->id; + $record->userid = $userid; + $record->cluster = $index; + $record->active = 1; + $record->timecreated = time(); + $DB->insert_record("fliplearning_clustering", $record); + } + } + } +} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/classes/email.php b/NMP 3.0 Moodle Pluggin/fliplearning/classes/email.php new file mode 100644 index 0000000000000000000000000000000000000000..1ade003baec65b0fa098538eeaae3ba3e3035198 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/classes/email.php @@ -0,0 +1,92 @@ +<?php + +// This file is part of Moodle - http://moodle.org/ +// +// Moodle is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Moodle is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Moodle. If not, see <http://www.gnu.org/licenses/>. + +/** + * User sessions visualizations + * + * @package local_fliplearning + * @autor Edisson Sigua, Bryan Aguilar + * @copyright 2020 Edisson Sigua <edissonf.sigua@gmail.com>, Bryan Aguilar <bryan.aguilar6174@gmail.com> + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace local_fliplearning; + +defined('MOODLE_INTERNAL') || die; + +require_once(dirname(__FILE__) . '/../../../config.php'); + +use stdClass; + +/** + * Class report + * + * @author Edisson Sigua + * @author Bryan Aguilar + * @copyright 2020 Edisson Sigua <edissonf.sigua@gmail.com>, Bryan Aguilar <bryan.aguilar6174@gmail.com> + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class email { + + protected $course; + protected $user; + + function __construct($course, $user){ + $this->user = $user; + $this->course = $course; + } + + public function sendmail($subject, $recipients, $text, $moduleid, $modulename) { + global $DB, $CFG; + $recipients = explode(',', $recipients); + + $sender = new stdClass(); + $sender->id = $this->user->id; + $sender->firstname = $this->user->firstname; + $sender->lastname = $this->user->lastname; + $sender->email = $this->user->email; + + $footer_prefix = get_string("fml_email_footer_prefix","local_fliplearning"); + $footer_suffix = get_string("fml_email_footer_suffix","local_fliplearning"); + $footer_text = get_string("fml_email_footer_text","local_fliplearning"); + $url=""; + if (isset($modulename) && strlen(trim($modulename))>0) { + $identifier = "fml_{$modulename}_url"; + if (get_string_manager()->string_exists($identifier, "local_fliplearning")) { + $module_url = get_string($identifier, "local_fliplearning"); + $url = "{$CFG->wwwroot}{$module_url}{$moduleid}"; + } + } + $footer = "\n\n---------------------------------------------------------------------------------\n"; + if (strlen($url)){ + $footer = $footer."{$footer_prefix} {$CFG->wwwroot}{$module_url}{$moduleid} {$footer_suffix}.\n"; + } + $footer = $footer."{$footer_text}"; + $text = $text.$footer; + + foreach ($recipients as $id) { + if(!empty($id)) { + $recipient = new stdClass(); + $recipient->id = $id; + $recipient->email = $DB->get_field('user', 'email', array('id' => $id)); + email_to_user($recipient, $sender, $subject, $text, $text, '', '', true); + + } + } + } + +} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/classes/group_manager.php b/NMP 3.0 Moodle Pluggin/fliplearning/classes/group_manager.php new file mode 100644 index 0000000000000000000000000000000000000000..7a5e889a71c8a640c1584ba5d43347ae8744df06 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/classes/group_manager.php @@ -0,0 +1,150 @@ +<?php +// This file is part of Moodle - http://moodle.org/ +// +// Moodle is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Moodle is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Moodle. If not, see <http://www.gnu.org/licenses/>. + +/** + * local_fliplearning + * + * @package local_fliplearning + * @autor Edisson Sigua, Bryan Aguilar + * @copyright 2020 Edisson Sigua <edissonf.sigua@gmail.com>, Bryan Aguilar <bryan.aguilar6174@gmail.com> + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace local_fliplearning; + +class group_manager { + public $course; + public $user; + public $groupid; + public $groupname; + public $groupmode; + const SELECTED_COURSE_GROUPS = "local_fliplearning_group_selected"; + const ALL_STUDENT = 0; + + function __construct($course, $user){ + $this->user = $user; + $this->course = $course; + $this->groupmode = $course->groupmode; + self::create_course_session_if_not_exist(); + self::set_default_group(); + } + + private function create_course_session_if_not_exist(){ + if(!self::session_was_created()){ + $_SESSION[self::SELECTED_COURSE_GROUPS] = array(); + } + if(!self::course_session_was_created()){ + $_SESSION[self::SELECTED_COURSE_GROUPS][$this->course->id] = new \local_fliplearning\sessiongroup(); + } + } + + private function session_was_created(){ + $created = isset($_SESSION[self::SELECTED_COURSE_GROUPS]); + return $created; + } + + private function course_session_was_created(){ + $created = isset($_SESSION[self::SELECTED_COURSE_GROUPS][$this->course->id]); + return $created; + } + + private function set_default_group(){ + if(self::is_valid_group()){ + return true; + } + $participants = new \local_fliplearning\course_participant($this->user->id, $this->course->id); + $groups = $participants->current_user_groups_with_all_group($this->groupmode); + $groups = array_values($groups); + if($this->course->groupmode == SEPARATEGROUPS && isset($groups[0])){ // use the first group, if user have the capacity the first group will be all students + self::set_group($groups[0]->id); + }else{ + self::set_all_student(); + } + } + + public function set_group($groupid){ + $this->groupid = $groupid; + $this->groupmode = $this->course->groupmode; + $default_name = get_string('group_allstudent', 'local_fliplearning'); + $group_name = $groupid > 0 ? groups_get_group_name($groupid) : $default_name; + $this->groupname = $group_name; + self::update_course_session(); + } + + private function set_all_student(){ + $this->groupid = self::ALL_STUDENT; + $this->groupname = get_string('group_allstudent', 'local_fliplearning'); + $this->groupmode = $this->course->groupmode; + self::update_course_session(); + } + + private function update_course_session(){ + $session = $_SESSION[self::SELECTED_COURSE_GROUPS][$this->course->id]; + $session->courseid = $this->course->id; + $session->groupid = $this->groupid; + $session->groupname = $this->groupname; + $session->groupmode = $this->groupmode; + } + + private function is_valid_group(){ + $valid = false; + if(self::session_was_created() && self::course_session_was_created()){ + $group = $_SESSION[self::SELECTED_COURSE_GROUPS][$this->course->id]; + if(!is_null($group->courseid) && !is_null($group->groupid) && !is_null($group->groupmode)){ + $valid = true; + } + } + + $participant = new \local_fliplearning\course_participant($this->user->id, $this->course->id); + if($participant->is_student() && self::different_group_mode() || self::group_selection_not_allowed()){ + $valid = false; + } + + if(self::session_was_created() && self::course_session_was_created()){ + $course_session = $_SESSION[self::SELECTED_COURSE_GROUPS][$this->course->id]; + if(!empty($course_session->groupid) && $course_session->groupid > self::ALL_STUDENT && !$participant->group_has_student($course_session->groupid)){ + $valid = false; + } + } + return $valid; + } + + private function different_group_mode(){ + $change = true; + if(self::session_was_created() && self::course_session_was_created()){ + $course_session = $_SESSION[self::SELECTED_COURSE_GROUPS][$this->course->id]; + $change = $this->course->groupmode != $course_session->groupmode; + } + return $change; + } + + private function group_selection_not_allowed(){ + $not_allowed = false; + if(self::session_was_created() && self::course_session_was_created()){ + $session = $_SESSION[self::SELECTED_COURSE_GROUPS][$this->course->id]; + $participant = new \local_fliplearning\course_participant($this->user->id, $this->course->id); + if($participant->is_student() && $session->groupmode != SEPARATEGROUPS && $session->groupid > self::ALL_STUDENT){ + $not_allowed = true; + } + } + return $not_allowed; + } + + public function selected_group(){ + $group = $_SESSION[self::SELECTED_COURSE_GROUPS][$this->course->id]; + return $group; + } +} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/classes/lib_trait.php b/NMP 3.0 Moodle Pluggin/fliplearning/classes/lib_trait.php new file mode 100644 index 0000000000000000000000000000000000000000..ef15dae7130d4f40d4d4fae48b212a1bcc3277f1 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/classes/lib_trait.php @@ -0,0 +1,594 @@ +<?php +// This file is part of Moodle - http://moodle.org/ +// +// Moodle is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Moodle is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Moodle. If not, see <http://www.gnu.org/licenses/>. + +/** + * Trait con funciones comunes para todas las clases + * Las clases que usen este trait requieren de una propiedad $course y $user con el objeto respectivo + * + * @package local_fliplearning + * @autor Edisson Sigua, Bryan Aguilar + * @copyright 2020 Edisson Sigua <edissonf.sigua@gmail.com>, Bryan Aguilar <bryan.aguilar6174@gmail.com> + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +require_once(dirname(__FILE__) . '/../../../config.php'); + +trait lib_trait { + + /** + * Obtiene el registro de un curso en base al parámetro $course. + * + * Si el parámetro $course no es string ni entero, se retorma el mismo valor del + * parámetro recibido + * + * @param string $course id del curso que se desea buscar en formato string, entero u objeto + * + * @return mixed un objeto fieldset que contiene el primer registro que hace match a la consulta + */ + public function get_course($course){ + if(gettype($course) == "string"){ + $course = (int) $course; + } + if(gettype($course) == "integer"){ + $course = self::get_course_from_id($course); + } + return $course; + } + + /** + * Obtiene el registro de un curso dado su id + * + * @param int $courseid id del curso a obtener + * + * @return mixed un objeto fieldset que contiene el primer registro que hace match a la consulta + */ + public static function get_course_from_id($courseid){ + global $DB; + $course = $DB->get_record('course', array('id' => $courseid), '*', MUST_EXIST); + return $course; + } + + /** + * Obtiene el registro de un usuario en base al parámetro $user. + * + * Si el parámetro $user no es string ni entero, se retorma el mismo valor del + * parámetro recibido + * + * @param string $user id del curso que se desea buscar en formato string, entero u objeto + * + * @return mixed un objeto fieldset que contiene el primer registro que hace match a la consulta + */ + public function get_user($user){ + if(gettype($user) == "string"){ + $user = (int) $user; + } + if(gettype($user) == "integer"){ + $user = self::get_user_from_id($user); + } + return $user; + } + + /** + * Obtiene el registro de un usuario dado su id + * + * @param int $userid id del usuario a obtener + * + * @return mixed un objeto fieldset que contiene el primer registro que hace match a la consulta + */ + public static function get_user_from_id($userid){ + global $DB; + $user = $DB->get_record('user', array('id' => $userid), '*', MUST_EXIST); + return $user; + } + + protected function get_full_users(){ + global $DB; + $users = []; + list($in, $invalues) = $DB->get_in_or_equal($this->users); + $fields = self::USER_FIELDS; + $sql = "SELECT $fields FROM {user} WHERE id $in ORDER BY lastname ASC"; + $rows = $DB->get_recordset_sql($sql, $invalues); + foreach($rows as $key => $row){ + $users[$row->id] = $row; + } + $rows->close(); + return $users; + } + + protected function get_users_last_access(){ + global $DB; + $user_access = []; + list($in, $invalues) = $DB->get_in_or_equal($this->users); + $sql = "SELECT * FROM {user_lastaccess} WHERE courseid = {$this->course->id} AND userid $in"; + $rows = $DB->get_recordset_sql($sql, $invalues); + foreach($rows as $row){ + $user_access[$row->userid] = $row; + } + $rows->close(); + return $user_access; + } + + /** + * Obtiene un conjunto de campos (sectionid, section, name, visibility, availability) de las secciones del + * curso almacenado en la variable $course de esta clase + * + * @return array con las secciones del curso + */ + public function get_course_sections(){ + $modinfo = get_fast_modinfo($this->course->id); + $sections = $modinfo->get_section_info_all(); + $sections = self::format_sections($sections); + return $sections; + } + + /** + * Obtiene ciertos un conjunto menor de campos (sectionid, section, name, visibility, availability) de cada + * seccion en un vector con las secciones de un curso (parámetro $sections) + * + * @param array $sections vector con las secciones de un curso + * + * @return array un vector que contiene las secciones de un curso con un grupo de campos reducido + */ + private function format_sections($sections){ + $full_sections = array(); + foreach ($sections as $index => $section){ + $full_section = [ + 'sectionid' => $section->id, + 'section' => $section->section, + 'name' => self::get_section_name($section, $index), + 'visible' => $section->visible, + 'availability' => $section->availability, + ]; + $full_sections[] = $full_section; + } + return $full_sections; + } + + /** + * Verifica que la seccion enviada por parámetro ($section) tenga configurado un nombre. En caso de tenerlo, + * se retorna tal nombre. En caso de no tenerlo, se configura un nombre genérico y se retorna ese valor. + * + * @param $section object objeto que representa una sección de un curso + * @param $current_index int entero que representa la posicion de la sección en el curso + * + * @return string cadena de texto que contiene el nombre de las sección + */ + private function get_section_name($section, $current_index){ + if(isset($section->name) ){ + return $section->name; + } + $build_name = get_string("course_format_{$this->course->format}", 'local_fliplearning'); + $name = "$build_name $current_index"; + return $name; + } + + public function get_course_modules($include_hidden_cms = false, $formatted = true){ + $modinfo = get_fast_modinfo($this->course->id); + $modules = $modinfo->get_cms(); + if (!$include_hidden_cms) { + $modules = array_filter($modules, function($module){ return $module->visible == 1;}); + } + if ($formatted) { + $modules = self::format_course_module($modules); + } + return $modules; + } + + public function get_course_module($id){ + $cm = get_course_and_cm_from_cmid($id)[1]; + return $cm; + } + + private function format_course_module($modules){ + $full_modules = array(); + foreach ($modules as $module){ + $full_module = [ + 'id' => $module->id, + 'module' => $module->module, + 'instance' => $module->instance, + 'visible' => $module->visible, + 'modname' => $module->modname, + 'module' => $module->module, + 'name' => $module->name, + 'completion' => $module->completion, + 'sectionnum' => $module->sectionnum, + 'section' => $module->section, + ]; + $full_modules[] = $full_module; + } + return $full_modules; + } + + protected function get_course_modules_from_sections($sections, $include_hidden_cms = false, $formatted = false){ + $cms = array(); + foreach($sections as $key => $section){ + if($section->visible != 1){ + continue; + } + $modules = self::get_sequence_section($section->sectionid); + $cms = array_merge($cms, $modules); + } + if (count($cms)) { + if (!$include_hidden_cms) { + $cms = array_filter($cms, function($module){ return ($module && $module->visible == 1);}); + } + if ($formatted) { + $cms = self::format_course_module($cms); + } + } + return $cms; + } + + public function get_sequence_section($sectionid) { + global $DB; + $sql = "select sequence from {course_sections} where id = ?"; + $sequence = $DB->get_record_sql($sql, array($sectionid)); + $course_modules = self::get_course_module_section($sequence->sequence); + return $course_modules; + } + + public function get_course_module_section($sequence) { + $sequence = explode(',', $sequence); + $course_modules = array(); + foreach ($sequence as $key => $course_module_id) { + $module = get_coursemodule_from_id( '', $course_module_id, $this->course->id, MUST_EXIST); + array_push($course_modules, $module); + } + return $course_modules; + } + + /** + * Retorna un string que representa la fecha ($timestamp) Unix formateada usando el parámetro $format + * y tomando como referencia la zona horaria obtenida con la función 'get_timezone' + * + * @param $format string objeto que representa una sección de un curso + * @param $timestamp int entero que representa una marca temporal de Unix + * + * @return string cadena de texto con la fecha formateada + */ + public function to_format($format, $timestamp){ + $tz = self::get_timezone(); + date_default_timezone_set($tz); + if(gettype($timestamp) == "string"){ + $timestamp = (int) $timestamp; + } + $date = date($format, $timestamp); + return $date; + } + + /** + * Retorna un entero que representa la cantidad de segundos desde la Época Unix (January 1 1970 00:00:00 GMT) + * hasta la fecha actual. La fecha actual se calcula en base a la zona horaria obtenida con la función + * 'get_timezone'. + * + * @return int entero que representa la cantidad de segundos desde la Época Unix hasta la fecha actual + */ + public function now_timestamp(){ + $tz = self::get_timezone(); + date_default_timezone_set($tz); + $now = new DateTime(); + $now = $now->format('U'); + return $now; + } + + /** + * Retorna un entero que representa la cantidad de segundos desde la Época Unix (January 1 1970 00:00:00 GMT) + * hasta la fecha enviada por parámetro ($date). La fecha se calcula en base a la zona horaria obtenida con + * la función 'get_timezone' + * + * @param $date string cadena de texto que representa una fecha + * + * @return int entero que representa la cantidad de segundos desde la Época Unix hasta la fecha enviada + * @throws Exception + */ + public function to_timestamp($date){ + $tz = self::get_timezone(); + date_default_timezone_set($tz); + $fecha = new DateTime($date); + $date = $fecha->format('U'); + return $date; + } + + /** + * Retorna una cadena de texto con la zona horaria del usuario. En caso de que el usuario no tenga una + * zona horaria configurada, se retorna la del servidor. + * + * @return string cadena de texto con una zona horaria + */ + public function get_timezone(){ + $timezone = usertimezone($this->user->timezone); + $timezone = self::accent_remover($timezone); + if(!self::is_valid_timezone($timezone)){ + $timezone = self::get_server_timezone(); + } + return $timezone; + } + + public function get_server_timezone(){ + $date = new DateTime(); + $timeZone = $date->getTimezone(); + return $timeZone->getName(); + } + + /** + * Reemplaza los acentos de una cadena de texto que contiene una zona horaria + * + * @param $cadena string cadena de texto que representa una zona horaria + * + * @return string cadena de texto con una zona horaria sin acentos + */ + public function accent_remover($cadena){ + $cadena = str_replace( + array('á', 'à', 'ä', 'â', 'ª', 'Á', 'À', 'Â', 'Ä'), + array('a', 'a', 'a', 'a', 'a', 'A', 'A', 'A', 'A'), + $cadena + ); + $cadena = str_replace( + array('é', 'è', 'ë', 'ê', 'É', 'È', 'Ê', 'Ë'), + array('e', 'e', 'e', 'e', 'E', 'E', 'E', 'E'), + $cadena ); + $cadena = str_replace( + array('í', 'ì', 'ï', 'î', 'Í', 'Ì', 'Ï', 'Î'), + array('i', 'i', 'i', 'i', 'I', 'I', 'I', 'I'), + $cadena ); + $cadena = str_replace( + array('ó', 'ò', 'ö', 'ô', 'Ó', 'Ò', 'Ö', 'Ô'), + array('o', 'o', 'o', 'o', 'O', 'O', 'O', 'O'), + $cadena ); + $cadena = str_replace( + array('ú', 'ù', 'ü', 'û', 'Ú', 'Ù', 'Û', 'Ü'), + array('u', 'u', 'u', 'u', 'U', 'U', 'U', 'U'), + $cadena ); + $cadena = str_replace( + array('ñ', 'Ñ', 'ç', 'Ç'), + array('n', 'N', 'c', 'C'), + $cadena + ); + return $cadena; + } + + /** + * Verifica si una cadena con una zona horaria es válida comparandola con una lista de zonas + * horarias válidas obtenidas del sistema + * + * @param $timezone string cadena de texto que representa una zona horaria + * + * @return boolean valor booleano que representa si la zona horaria es válida + */ + public function is_valid_timezone($timezone) { + return in_array($timezone, timezone_identifiers_list()); + } + + /** + * Obtiene los ids de todos los usuarios con rol estudiante en el contexto + * + * @return array lista con todos los ids de los estudiantes + */ + public function get_student_ids($filtered_with_groups = true){ + $roles = array(5); + $students = array(); + $users = array(); + $context = context_course::instance($this->course->id); + foreach($roles as $role){ + $users = array_merge($users, get_role_users($role, $context)); + } + foreach($users as $user){ + if(!in_array($user->id, $students)){ + $students[] = $user->id; + } + } + if ($filtered_with_groups) { + $students = self::filter_users_by_selected_group($students); + } + return $students; + } + + protected function filter_users_by_selected_group($users) { + global $COURSE, $USER; + $group_manager = new \local_fliplearning\group_manager($COURSE, $USER); + $participants = new \local_fliplearning\course_participant($USER->id, $COURSE->id); + $groups = $participants->all_groups_with_members($COURSE->groupmode); + $selectedgroup = $group_manager->selected_group(); + if(!isset($selectedgroup->groupid) || $selectedgroup->groupid == 0 ){ + return $users; + } + foreach ($groups as $group) { + if($selectedgroup->groupid == $group->id){ + $users = self::extract_users_in_group($users, $group->members); + } + } + return $users; + } + + private function extract_users_in_group($allusers, $ingroup){ + $extracted = array(); + foreach($allusers as $userid){ + if(isset($ingroup[$userid]) && !in_array($userid, $extracted)){ + array_push($extracted, $userid); + } + } + return $extracted; + } + + protected function get_users_from_ids($ids){ + global $DB; + list($in, $invalues) = $DB->get_in_or_equal($ids); + $fields = self::USER_FIELDS; + $sql = "select $fields from {user} where id $in order by lastname asc"; + $rows = $DB->get_records_sql($sql, $invalues); + $users = array_values($rows); + return $users; + } + + public function extract_ids ($elements){ + $ids = array(); + if(gettype($elements) == 'array' && count($elements)>0){ + foreach($elements as $key => $element){ + if(gettype($element) == "array"){ + if(isset($element['id'])){ + $ids[] = $element['id']; + } + }elseif(gettype($element) == "object"){ + if(isset($element->id)){ + $ids[] = $element->id; + } + } + } + } + return $ids; + } + + public function extract_elements_field($elements, $field){ + $list = array(); + if(gettype($elements) == 'array'){ + foreach($elements as $key => $element){ + if(gettype($element) == "array"){ + if(isset($element[$field])){ + $list[] = $element[$field]; + } + }elseif(gettype($element) == "object"){ + if(isset($element->$field)){ + $list[] = $element->$field; + } + } + } + } + return $list; + } + + public function convert_time($measure, $time, $type = "hour"){ + $response = false; + $valid_params = true; + if ($measure == 'minutes') { + $time = $time * 60; + } elseif ($measure == 'hours') { + $time = $time * 3600; + } else { + $valid_params = false; + } + if($valid_params){ + $horas = floor($time / 3600); + $minutos = floor(($time % 3600) / 60); + $segundos = $time % 60; + if ($type == "hour") { + $response = self::convert_time_as_hour($horas, $minutos, $segundos); + } else { + $response = self::convert_time_as_string($horas, $minutos, $segundos); + } + } + return $response; + } + + protected function convert_time_as_string($hours, $minutes, $seconds = null){ + $text = [ + 'minute' => get_string("fml_minute", "local_fliplearning"), + 'minutes' => get_string("fml_minutes", "local_fliplearning"), + 'hour' => get_string("fml_hour", "local_fliplearning"), + 'hours' => get_string("fml_hours", "local_fliplearning"), + 'second' => get_string("fml_second", "local_fliplearning"), + 'seconds' => get_string("fml_seconds", "local_fliplearning") + ]; + $hour = new stdClass(); + $hour->text = $hours == 1 ? $text['hour'] : $text['hours']; + $hour->stringify_value = $hours <= 9 ? "0$hours" : $hours ; + $hour->output = $hours == 0 ? "" : "$hour->stringify_value $hour->text"; + + $minute = new stdClass(); + $minute->text = $minutes == 1 ? $text['minute'] : $text['minutes']; + $minute->stringify_value = $minutes <= 9 ? "0$minutes" : $minutes; + $minute->output = $minutes == 0 ? "" : "$minute->stringify_value $minute->text"; + $response = "$hour->output $minute->output"; + + $hidde_seconds = ($minutes > 0 && $seconds == 0) || ($hours > 0); + + $second = new stdClass(); + $second->text = $seconds == 1 ? $text['second'] : $text['seconds']; + $second->stringify_value = $seconds <= 9 ? "0$seconds" : $seconds; + $second->output = $hidde_seconds ? "" : "$second->stringify_value $second->text"; + + $response = "$hour->output $minute->output $second->output"; + $response = trim($response); + return $response; + } + + protected function convert_time_as_hour($hours, $minutes, $seconds = null){ + $hour = $hours <= 9 ? "0$hours" : $hours ; + $minute = $minutes <= 9 ? "0$minutes" : $minutes; + $second = $seconds <= 9 ? "0$seconds" : $seconds; + $response = "$hour:$minute:$second"; + $response = trim($response); + return $response; + } + + public function minutes_to_hours($minutes, $decimals = 2){ + $hours = 0; + if($minutes <= 0){ + return $hours; + }else{ + if($decimals > 0){ + $hours = number_format($minutes / 60, 2); + }else{ + $hours = $minutes / 60; + } + } + return $hours; + } + + protected function get_date_label($date) { + $date = (int) $date; + $tz = self::get_timezone(); + date_default_timezone_set($tz); + $day_number = date('d', $date); + $day_code = strtolower(date('D',$date)); + $day_name = get_string("fml_{$day_code}_short", 'local_fliplearning'); + $month_code = strtolower(date('M',$date)); + $month_name = get_string("fml_{$month_code}_short", 'local_fliplearning'); + $year = date('Y', $date); + $hour = date('g', $date); + $min = date('i', $date); + $format = date('A', $date); + $label = "$day_name, $month_name $day_number $year, $hour:$min $format"; + return $label; + } + + /** + * Obtiene un objeto con las condiciones de busqueda para obtener los logs de interacciones en + * la semana configurada + * + * @param int $start cantidad de segundos desde de la fecha que representa el inicio de la semana + * @param int $end cantidad de segundos desde de la fecha que representa el fin de la semana + * + * @return object objecto con las condiciones de busqueda para los logs de interacciones + */ + protected function conditions_for_work_sessions($start, $end){ + $conditions = array(); + if (isset($start)) { + $condition = new stdClass(); + $condition->field = "timecreated"; + $condition->value = $start; + $condition->operator = ">="; + $conditions[] = $condition; + } + if (isset($start) && isset($end)) { + $condition = new stdClass(); + $condition->field = "timecreated"; + $condition->value = $end; + $condition->operator = "<="; + $conditions[] = $condition; + } + return $conditions; + } +} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/classes/log.php b/NMP 3.0 Moodle Pluggin/fliplearning/classes/log.php new file mode 100644 index 0000000000000000000000000000000000000000..5a0008a474100843018adf7dbefe6e69c0d26315 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/classes/log.php @@ -0,0 +1,87 @@ +<?php +// This file is part of Moodle - http://moodle.org/ +// +// Moodle is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Moodle is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Moodle. If not, see <http://www.gnu.org/licenses/>. + +/** + * FlipLearning Logs component + * + * @package local_fliplearning + * @autor Edisson Sigua, Bryan Aguilar + * @copyright 2020 Edisson Sigua <edissonf.sigua@gmail.com>, Bryan Aguilar <bryan.aguilar6174@gmail.com> + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace local_fliplearning; + +require_once dirname(__FILE__) . '/../../../course/lib.php'; + +use context_course; +use stdClass; + +class log { + + public static function create($component, $action, $userid, $courseid){ + global $DB; + $user = self::get_user($userid); + $course = self::get_course($courseid); + $log = new stdClass(); + $log->userid = $user->id; + $log->username = $user->username; + $log->name = $user->firstname; + $log->lastname = $user->lastname; + $log->email = $user->email; + $log->current_roles = self::get_user_roles($courseid, $userid); + $log->courseid = $course->id; + $log->coursename = $course->fullname; + $log->courseshortname = $course->shortname; + $log->component = $component; + $log->action = $action; + $log->timecreated = time(); + $id = $DB->insert_record("fliplearning_logs", $log, true); + $log->id = $id; + return $log; + } + + public static function get_user($userid){ + global $DB; + $sql = "select * from {user} where id = ?"; + $user = $DB->get_record_sql($sql, array($userid)); + return $user; + } + + public static function get_course($courseid){ + global $DB; + $sql = "select * from {course} where id = ?"; + $user = $DB->get_record_sql($sql, array($courseid)); + return $user; + } + + public static function get_user_roles($courseid, $userid){ + $user_roles = array(); + $admins = array_values(get_admins()); + foreach($admins as $admin){ + if($admin->id == $userid){ + $user_roles[] = 'admin'; + } + } + $context = context_course::instance($courseid); + $roles = get_user_roles($context, $userid); + foreach ($roles as $role) { + $user_roles[] = $role->shortname; + } + $user_roles = implode(', ', $user_roles); + return $user_roles; + } +} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/classes/logs.php b/NMP 3.0 Moodle Pluggin/fliplearning/classes/logs.php new file mode 100644 index 0000000000000000000000000000000000000000..483ef2f56acd7a134313471538e0a1833cae9499 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/classes/logs.php @@ -0,0 +1,421 @@ +<?php + + +/** + * Plugin logs functions are defined here. + * + * @package local_fliplearning + * @author 2021 Éric Bart <bart.eric@hotmail.com> + * @copyright 2020 Edisson Sigua <edissonf.sigua@gmail.com>, Bryan Aguilar <bryan.aguilar6174@gmail.com> + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +namespace local_fliplearning; + +require_once dirname(__FILE__) . '/../../../course/lib.php'; +require 'server/vendor/autoload.php'; +defined('MOODLE_INTERNAL') || die(); + +use MongoDB\Client as MongoDBLink; +use context_course; + +class logs { + + public $beginDate; + public $lastDate; + public $courseid; + public $userid; + public $client; + + public function __construct($courseid, $userid) { + $this->courseid=$courseid; + $this->userid=$userid; + self::connectmongoDB(); + } + + public function connectmongoDB() { + global $DB; + $connexionInfo = $DB->get_records("config_plugins", array("plugin" => "local_notemyprogress"), "name, value"); + foreach($connexionInfo as $co) { + if($co->name == "mongoDBlink") { + $dbLink = $co; + } + if($co->name == "mongoDBname") { + $dbName = $co; + } + if($co->name === "mongoDBpassword") { + $dbPassword = $co; + } + if($co->name == "mongoDBport") { + $dbPort = $co; + } + if($co->name == "mongoDBusername") { + $dbUsername = $co; + } + } + if($dbLink->value=="") { + $dbLink->value = "localhost"; + } + if($dbPort->value=="") { + $dbPort->value = "27017"; + } + $dbPortSize = str_split($dbPort->value); + if(count($dbPortSize)<=5) { + if($dbUsername->value=="") { + $this->client = new MongoDBLink("mongodb://$dbLink->value:$dbPort->value"); + } else if(!empty($dbUsername->value)){ + $this->client = new MongoDBLink("mongodb://$dbUsername->value:$dbPassword->value@$dbLink->value:$dbPort->value/?authSource=$dbName->value"); + } + } + } + + public function addLogsNMP($actionType, $objectType, $sectionName, $objectName, $currentLink, $objectDescription = null) { + $context = context_course::instance($this->courseid); + $roles = get_user_roles($context, $this->userid); + $rolename = ""; + foreach ($roles as $role) { + $rolename = $role->shortname; + } + + if(is_siteadmin($this->userid)) { + $rolename = "administrator"; + } + + $userInformations=self::getUserIdentification($this->userid); + $nmpDB = $this->client->nmpDB; + $nmpDBCollection = $nmpDB->logsNMP; + $nmpDBCollection->insertOne(['actor' => + ['objectType'=>$rolename, + 'mbox'=>$userInformations['email'], + 'name'=>$userInformations['firstname'].' '.$userInformations['lastname'], + 'account' => + ['name'=>$userInformations['username']] + ], + 'verb' => + ['id'=>'https://www.irit.fr/laser/nmp/xapi/verbs/'.$actionType, + 'display'=> + ['en-US'=>$actionType] + ], + 'object' => + ['id'=>'https://www.irit.fr/laser/nmp/xapi/object/'.$objectType, + 'objectType'=>$objectType, + 'definition' => [ + 'name'=> + ['en-US'=>$objectName], + 'description'=> + ['en-US'=>$objectDescription] + ], + 'context'=> + [ 'contextActivities'=> + ['grouping'=>$sectionName] + ] + ] + , + 'context'=> + ['platform' => 'Moodle', + 'contextActivities'=> + ['grouping'=> + ['id'=>$currentLink] + ] + ], + 'timestamp'=>time() + ] + ); + } + + public function searchLogsNMP($beginDate, $lastDate) + { + $nmpDB = $this->client->nmpDB; + $nmpDBCollection = $nmpDB->logsNMP; + $this->beginDate=$beginDate; + $this->lastDate=$lastDate; + $lastDate = strtotime("+1 day", strtotime($lastDate)); + $beginDate = strtotime($beginDate); + $find = $nmpDBCollection->find( + ['timestamp' => ['$gt'=>$beginDate,'$lt'=>$lastDate]] + ); + return self::generateLogsNMP($find); + } + + public function generateLogsNMP($data) { + self::remove_old_logs($this->courseid); + $filename = "ActivityLogsNMP_Course". $this->courseid . ".csv"; + $path = dirname(__FILE__) . "/../downloads/"; + $csv = fopen($path.$filename, "w+"); + $entetes = array(self::accent_remover(get_string("fml_logs_nmp_csv_headers_role", "local_fliplearning")), + self::accent_remover(get_string("fml_logs_nmp_csv_headers_email","local_fliplearning")), + self::accent_remover(get_string("fml_logs_nmp_csv_headers_username","local_fliplearning")), + self::accent_remover(get_string("fml_logs_nmp_csv_headers_fullname","local_fliplearning")), + self::accent_remover(get_string("fml_logs_nmp_csv_headers_date","local_fliplearning")), + self::accent_remover(get_string("fml_logs_nmp_csv_headers_hour","local_fliplearning")), + self::accent_remover(get_string("fml_logs_nmp_csv_headers_courseid","local_fliplearning")), + self::accent_remover(get_string("fml_logs_nmp_csv_headers_section_name", "local_fliplearning")), + self::accent_remover(get_string("fml_logs_nmp_csv_headers_action_type", "local_fliplearning")), + ); + fputcsv($csv, $entetes, ";"); + foreach ($data as $row) { + $row->object->definition->name->{'en-US'} = self::accent_remover($row->object->definition->name->{'en-US'}); + if(str_contains($row->object->definition->name->{'en-US'}, '-') || str_contains($row->object->definition->name->{'en-US'}, ' ')) { + $row->object->definition->name->{'en-US'} = str_replace(array(' ', '-'), array('_','_'), $row->object->definition->name->{'en-US'}); + } + $rolename = $row->actor->objectType; + $url = parse_url($row->context->contextActivities->grouping->id); + $url = parse_str($url['query'], $params); + $tabData = array($rolename, + $row->actor->mbox, + $row->actor->account->name, + $row->actor->name, + date('d-m-y', $row->timestamp), + date("H:i:s", $row->timestamp), + $params['courseid'], + $row->object->context->contextActivities->grouping, + $row->verb->display->{'en-US'} . '-' . $row->object->definition->name->{'en-US'} . '-' . $row->object->objectType, + ); + fputcsv($csv, $tabData, ";"); + } + fclose($csv); + return $filename; + } + + /** + * Cette fonction a pour but d'aller chercher dans la base de donnée toutes les logs qui sont contenues entre + * les deux dates qui sont spécifiées par l'utilisateur ($beginDate & $lastDate) + * + * @param $beginDate Date minimum de la recherche + * @param $lastDate Date maximum de la recherche + * @return mixed Tous les logs contenus entre cet interval + */ + public function searchLogsMoodle($beginDate, $lastDate) + { + global $DB; + $this->beginDate=$beginDate; + $this->lastDate=$lastDate; + $lastDate = strtotime("+1 day", strtotime($lastDate)); + $beginDate = strtotime($beginDate); + $sql = "SELECT * from {logstore_standard_log} WHERE timecreated>={$beginDate} AND timecreated<={$lastDate} AND courseid={$this->courseid}"; + $find = $DB->get_records_sql($sql); + return self::generateLogsMoodle($find); + } + + /** + * Génère un fichier .csv contenant toutes les logs d'une date donnée + * + * @param array $data Tableau contenant les données + */ + public function generateLogsMoodle($data) + { + self::remove_old_logs($this->courseid); + $context = context_course::instance($this->courseid); + $roles = get_user_roles($context, $this->userid); + $rolename = ""; + foreach ($roles as $role) { + $rolename = $role->shortname; + } + if(is_siteadmin($this->userid)) { + $rolename = "administrator"; + } + $filename = "ActivityLogsMoodle_Course". $this->courseid . ".csv"; + $path = dirname(__FILE__) . "/../downloads/"; + $csv = fopen($path.$filename, "w+"); + $entetes = array(self::accent_remover(get_string("fml_logs_moodle_csv_headers_role", "local_fliplearning")), + self::accent_remover(get_string("fml_logs_moodle_csv_headers_email", "local_fliplearning")), + self::accent_remover(get_string("fml_logs_moodle_csv_headers_username", "local_fliplearning")), + self::accent_remover(get_string("fml_logs_moodle_csv_headers_fullname", "local_fliplearning")), + self::accent_remover(get_string("fml_logs_moodle_csv_headers_date", "local_fliplearning")), + self::accent_remover(get_string("fml_logs_moodle_csv_headers_hour", "local_fliplearning")), + self::accent_remover(get_string("fml_logs_moodle_csv_headers_action", "local_fliplearning")), + self::accent_remover(get_string("fml_logs_moodle_csv_headers_courseid", "local_fliplearning")), + self::accent_remover(get_string("fml_logs_moodle_csv_headers_coursename", "local_fliplearning")), + "OBJECT_ID", + "OBJECT_NAME", + "OBJECT_TYPE"); + fputcsv($csv, $entetes, ";"); + foreach ($data as $res => $val) { + $name = self::getUserIdentification($val->userid); + $course = self::getCourse($val->courseid); + $detail = self::getDetail($val->objectid, $val->objecttable); + //$val->timecreated += 3600; //3600 correspond à 1h de notre temps, on ajoute 1h à l'heure de création car l'heure de création a un décalage de -1h. + $tabData = array( + $rolename, + $name['email'], + $name['username'], + $name['firstname'].' '.$name['lastname'], + date("d-m-y", $val->timecreated), + date("H:i:s", $val->timecreated), + $val->action, + $val->courseid, + $course, + $val->objectid, + $detail, + $val->objecttable); + fputcsv($csv, $tabData, ";"); + } + fclose($csv); + return $filename; + } + + /** + * Retourne un tableau associatif contenant l'username, le nom ainsi que le prénom de la personne visée + * + * @param $userid Identifiant de l'utilisateur + * @return array Tableau associatif contenant username, firstname & lastname de l'utilisateur + */ + public function getUserIdentification($userid) + { + global $DB; + $name = (array)$DB->get_record("user", array("id" => $userid), "id, username, lastname, firstname, email"); //On cherche le nom de la personne qui a fait la log + if ($name) { + if (empty($name['username'])) { + $name['username'] = "Undefined"; + } + if (empty($name['lastname'])) { + $name['lastname'] = "Undefined"; + } + if (empty($name['firstname'])) { + $name['firstname'] = "Undefined"; + } + if (empty($name['email'])) { + $name['email'] = "Undefined"; + } + return $name; + } + $name['username'] = "Not found"; + $name['username'] = "Not found"; + $name['firstname'] = "Not found"; + return $name; + } + + /** + * Retourne un tableau associatif contenant le nom complet du cours visé + * + * @param $courseid Identifiant du cours + * @return array Tableau associatif contenant le nom complet du cours + */ + public function getCourse($courseid) + { + global $DB; + $course = (array)$DB->get_record("course", array("id" => $courseid), "fullname"); + $course = self::accent_remover($course['fullname']); + if ($course) { + return $course; + } + $course = ""; + return $course; + } + + /** + * Fonction permettant de récupérer les informations précises des actions des utilisateurs + * + * @param $objectid id de l'objet visé (test, dépôt, etc..) + * @param $datatable base de données où aller chercher l'information + * @return string|string[] informations retournées + */ + public function getDetail($objectid, $datatable) + { + global $DB; + if (!empty($objectid) && !empty($datatable)) { + if ($datatable == 'assign' || $datatable == 'assignment' || $datatable == 'book' + || $datatable == 'chat' || $datatable == 'choice' || $datatable == 'data' || $datatable == 'forum' + || $datatable == 'glossary' || $datatable == 'imscp' || $datatable == 'lesson' || $datatable == 'label' + || $datatable == 'lti' || $datatable == 'page' || $datatable == 'quiz' || $datatable == 'resource' + || $datatable == 'scorm' || $datatable == 'url' || $datatable == 'wiki' || $datatable == 'workshop' + || $datatable == 'folder' || $datatable == 'course_sections' || $datatable == "enrol") { + $detail = (array)$DB->get_record($datatable, array("id" => $objectid), "name", "id"); + $detail = self::accent_remover($detail['name']); + } else if ($datatable == 'grade_items') { + $detail = (array)$DB->get_record($datatable, array("id" => $objectid), "itemname", "id"); + $detail = self::accent_remover($detail['itemname']); + } + return $detail; + } + } + + /** + * Fonction permettant d'harmoniser le fichier csv avec un encodage sans accent, permet d'éviter d'eventuels + * bugs de rendu + * + * @param $cadena chaîne à vérifier + * @return string|string[] chaîne $cadena sans accent + */ + public function accent_remover($cadena) + { + $cadena = str_replace( + array('á', 'à', 'ä', 'â', 'ª', 'Á', 'À', 'Â', 'Ä'), + array('a', 'a', 'a', 'a', 'a', 'A', 'A', 'A', 'A'), + $cadena + ); + $cadena = str_replace( + array('é', 'è', 'ë', 'ê', 'É', 'È', 'Ê', 'Ë'), + array('e', 'e', 'e', 'e', 'E', 'E', 'E', 'E'), + $cadena); + $cadena = str_replace( + array('í', 'ì', 'ï', 'î', 'Í', 'Ì', 'Ï', 'Î'), + array('i', 'i', 'i', 'i', 'I', 'I', 'I', 'I'), + $cadena); + $cadena = str_replace( + array('ó', 'ò', 'ö', 'ô', 'Ó', 'Ò', 'Ö', 'Ô'), + array('o', 'o', 'o', 'o', 'O', 'O', 'O', 'O'), + $cadena); + $cadena = str_replace( + array('ú', 'ù', 'ü', 'û', 'Ú', 'Ù', 'Û', 'Ü'), + array('u', 'u', 'u', 'u', 'U', 'U', 'U', 'U'), + $cadena); + $cadena = str_replace( + array('ñ', 'Ñ', 'ç', 'Ç'), + array('n', 'N', 'c', 'C'), + $cadena + ); + return $cadena; + } + + /** + * Enlève l'ancien fichier de logs généré ayant le même identifiant de cours dans un souci d'éviter les + * duplications dans le disque du serveur. + * + * @param $courseid l'identifiant du cours contenu dans le nom du fichier à supprimer + * + */ + public static function remove_old_logs($courseid){ + $path = dirname(__FILE__) . "/../downloads"; + $files = glob($path . '/*'); + foreach($files as $file){ + if(is_file($file)){ + $route_parts = explode(".", $file); + foreach($route_parts as $route_part){ + if($route_part == $courseid){ + unlink($file); + } + } + } + } + } + + /** + * Fonction permettant d'enlever les identifiants inutiles + * /!\ Retirée car finalement inutile dans le traitement du CSV. + * @param $value valeur à vérifier + * @return string valeur vide si id inutile + */ + //public function clearCSV($value) + //{ + // if ($value == 0 || $value == "0") { + // $value = ""; + // } + // return $value; + //} + + /** + * Fonction permettant de télécharger le fichier de logs directement grace à du code php (utile pour debug) + */ + //public function downloadFile() + //{ + // $file = "Logs_" . $_GET['file']; + // $tempDir = sys_get_temp_dir(); + // header("Cache-Control: private"); + // header("Content-Description: File Transfer"); + // header("Content-Disposition: attachment; filename=$file.csv"); + // header("Content-Type: application/csv"); + // header("Content-Transfer-Emcoding: binary"); + // readfile("$tempDir" . DIRECTORY_SEPARATOR . "data.csv"); + //} +} +?> diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/classes/report.php b/NMP 3.0 Moodle Pluggin/fliplearning/classes/report.php new file mode 100644 index 0000000000000000000000000000000000000000..0eb0976586c5715d60ebf5203fae7bb537278520 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/classes/report.php @@ -0,0 +1,836 @@ +<?php +// This file is part of Moodle - http://moodle.org/ +// +// Moodle is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Moodle is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Moodle. If not, see <http://www.gnu.org/licenses/>. + +/** + * User sessions visualizations + * + * @package local_fliplearning + * @autor Edisson Sigua, Bryan Aguilar + * @copyright 2020 Edisson Sigua <edissonf.sigua@gmail.com>, Bryan Aguilar <bryan.aguilar6174@gmail.com> + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace local_fliplearning; + +defined('MOODLE_INTERNAL') || die; + +require_once('lib_trait.php'); + +use stdClass; + +/** + * Class report + * + * @author Edisson Sigua + * @author Bryan Aguilar + * @copyright 2020 Edisson Sigua <edissonf.sigua@gmail.com>, Bryan Aguilar <bryan.aguilar6174@gmail.com> + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +abstract class report { + use \lib_trait; + + const MINUTES_TO_NEW_SESSION = 30; + const USER_FIELDS = "id, username, firstname, lastname, email, lastaccess, picture, deleted"; + protected $course; + protected $user; + protected $profile; + protected $users; + protected $current_week; + protected $past_week; + protected $weeks; + protected $current_sections; + public $timezone; + + function __construct($courseid, $userid){ + $this->user = self::get_user($userid); + $this->course = self::get_course($courseid); + $this->timezone = self::get_timezone($userid); + date_default_timezone_set($this->timezone); + $this->users = array(); + $configweeks = new \local_fliplearning\configweeks($this->course->id, $this->user->id); + $this->weeks = $configweeks->weeks; + $this->current_sections = $configweeks->current_sections; + $this->current_week = $configweeks->get_current_week(); + $this->past_week = $configweeks->get_past_week(); + } + + abstract public function set_users(); + + abstract public function set_profile(); + + public function render_has(){ + return $this->profile; + } + + protected function course_is_valid(){ + $in_transit = isset($this->current_week) || isset($this->past_week) ? true : false; + $has_users = count($this->users) > 0 ? true : false; + return $in_transit && $has_users; + } + + /** + * Verifica si el curso aún no ha terminado o si el tiempo transcurrido desde que ha terminado las + * semanas configuradas de Fliplearning es menor a una semana + * + * @return boolean valor booleano que indica si el curso aun sigue activo + */ + protected function course_in_transit(){ + $in_transit = isset($this->current_week) || isset($this->past_week) ? true : false; + return $in_transit; + } + + /** + * Verifica si el curso tiene estudiantes + * + * @return boolean valor booleano que indica si el curso tiene estudiantes + */ + protected function course_has_users(){ + $has_users = count($this->users) > 0 ? true : false; + return $has_users; + } + + /** + * Busca la semana con codigo igual al parametro $weekcode y lo retorna. En caso de no encontrar + * la semana con el codigo de paramtero, se imprime un error + * + * @param string $weekcode identificador de la semana que se desea obtener + * + * @return object objecto con la semana que hace match con el parametro + */ + protected function find_week($weekcode){ + foreach($this->weeks as $week){ + if($weekcode == $week->weekcode){ + return $week; + } + } + print_error("Weekcode not found"); + } + + protected function get_progress_table($users, $cms, $enable_completion, $include_sessions = false) { + $table = array(); + $total_cms = count($cms); + if ($total_cms > 0) { + foreach ($users as $user) { + $cms_interaction = self::cms_interactions($cms, $user, $enable_completion); + $progress_percentage = (int)(($cms_interaction->complete * 100)/$total_cms); + $inverted_time_label = self::convert_time($user->time_format, $user->summary->added, "hour"); + $user_record = self::get_user($user->userid); + + $record = new stdClass(); + $record->id = $user_record->id; + $record->firstname = $user_record->firstname; + $record->lastname = $user_record->lastname; + $record->username = $user_record->username; + $record->email = $user_record->email; + $record->progress_percentage = $progress_percentage; + $record->cms = $cms_interaction; + $record->sessions_number = $user->summary->count; + $record->inverted_time = $user->summary->added; + $record->inverted_time_label = $inverted_time_label; + + if ($include_sessions) { + $record->sessions = $user->sessions; + } + array_push($table, $record); + } + } + return $table; + } + + private function cms_interactions($cms, $user, $cms_completion_enabled){ + $complete_cms = 0; + $cms_ids = array(); + $viewed_cms = 0; + foreach ($cms as $module) { + $finished = null; + if ($cms_completion_enabled) { + $module_completion_configure = $module['completion'] != 0; + if ($module_completion_configure) { + $finished = self::finished_cm_by_conditions($user->userid, $module['id']); + } + } + $interactions = self::count_cm_interactions($user, $module['id']); + $viewed = ($interactions > 0); + $finished = (!isset($finished)) ? $viewed : $finished; + + $cm = new stdClass(); + $cm->id = $module['id']; + $cm->interactions = $interactions; + $cm->complete = false; + $cm->viewed = false; + if ($viewed) { + $viewed_cms++; + $cm->viewed = true; + } + if ($finished) { + $complete_cms++; + $cm->complete = true; + } + if ($viewed || $finished) { + $cmid = "cm".$module['id']; + $cms_ids[$cmid] = $cm; + } + } + $interaction = new stdClass(); + $interaction->complete = $complete_cms; + $interaction->viewed = $viewed_cms; + $interaction->modules = $cms_ids; + $interaction->total = count($cms); + return $interaction; + } + + private function finished_cm_by_conditions($userid, $cm_id){ + global $DB; + $complete = false; + $item = $DB->get_record('course_modules_completion', + array('coursemoduleid' => $cm_id, 'userid' => $userid), 'id, timemodified'); + if ($item) { + $complete = true; + } + return $complete; + } + + private function count_cm_interactions($user, $cm_id){ + $cm_logs = 0; + foreach ($user->logs as $log) { + if ($log->contextlevel == 70 && $log->contextinstanceid == $cm_id) { + $cm_logs++; + } + } + return $cm_logs; + } + + protected function get_sessions_by_weeks($user_sessions) { + $months = array(); + foreach($user_sessions as $sessions){ + foreach($sessions as $session){ + $resp = self::get_month_and_week_number((int) $session->start); + $month = $resp->month; + $week = $resp->week; + + if(!isset($months[$month])){ + $months[$month] = array(); + } + if(!isset($months[$month][$week])){ + $months[$month][$week] = 1; + } else { + $months[$month][$week]++; + } + } + } + return $months; + } + + protected function get_sessions_by_weeks_summary($months, $startdate) { + $startdate = strtotime('first day of this month', $startdate); + $month_number = ((int) date("n", $startdate)) - 1; + + $summary = array(); + $categories = array(); + $week_dates = array(); + if (!empty($months)) { + for ($y = 0; $y <= 11; $y++) { + $month_code = self::get_month_code($month_number); + if (isset($months[$month_code])) { + $weeks = $months[$month_code]; + } + for ($x = 0; $x <= 4; $x++) { + $value = 0; + if(isset($weeks)) { + if (isset($weeks[$x])) { + $value=$weeks[$x]; + } + } + $element = array("x" => $x, "y" => $y, "value" => $value); + array_push($summary, $element); + } + $weeks = null; + + $dates = self::get_weeks_of_month($startdate); + array_push($week_dates, $dates); + + $month_number++; + if ($month_number > 11) { + $month_number = 0; + } + + $month_name = get_string("fml_".$month_code."_short", "local_fliplearning"); + $year = date("Y", $startdate); + $category_name = "$month_name $year"; + array_push($categories, $category_name); + + $startdate = strtotime('first day of +1 month',$startdate); + } + } + $response = new stdClass(); + $response->data = $summary; + $response->categories = $categories; + $response->weeks = $week_dates; + return $response; + } + + private function get_month_code($key) { + $months = array("jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"); + return $months[$key]; + } + + private function get_weeks_of_month($date) { + $weeks = array(); + $month_code = strtolower(date("M", $date)); + $date = strtotime("first monday of this month", $date); + while (strtolower(date("M", $date)) == $month_code) { + + $day_code = strtolower(date("D", $date)); + $start_day_name = get_string("fml_$day_code", "local_fliplearning"); + $start_day_number = strtolower(date("d", $date)); + + $end = strtotime("+ 7 days", $date) - 1; + $day_code = strtolower(date("D", $end)); + $end_day_name = get_string("fml_$day_code", "local_fliplearning"); + $end_day_number = strtolower(date("d", $end)); + + $label = "$start_day_name $start_day_number - $end_day_name $end_day_number"; + array_push($weeks, $label); + $month_code = strtolower(date("M", $date)); + $date = strtotime("+ 7 days", $date); + } + return $weeks; + } + + private function get_month_and_week_number($date) { + $monday_of_week = strtotime( 'monday this week', $date); + $first_monday_month = strtotime("first monday of this month", $monday_of_week); + $first_sunday_month = strtotime("+ 7 days", $first_monday_month) - 1; + $week_number = 0; + while ($first_sunday_month < $date) { + $first_sunday_month = strtotime("+ 7 days", $first_sunday_month); + $week_number++; + } + $resp = new stdClass(); + $resp->month = strtolower(date("M", $first_monday_month)); + $resp->week = $week_number; + return $resp; + } + + protected function get_sessions_by_hours($user_sessions) { + $schedules = array(); + foreach($user_sessions as $sessions){ + foreach($sessions as $session){ + $start = (int) $session->start; + $day = strtolower(date("D", $start)); + $hour = date("G", $start); + + if(!isset($schedules[$day])){ + $schedules[$day] = array(); + } + if(!isset($schedules[$day][$hour])){ + $schedules[$day][$hour] = 1; + } else { + $schedules[$day][$hour]++; + } + } + } + return $schedules; + } + + protected function get_sessions_by_hours_summary($schedules) { + $summary = array(); + if (!empty($schedules)) { + for ($x = 0; $x <= 6; $x++) { + $day_code = self::get_day_code($x); + if (isset($schedules[$day_code])) { + $hours = $schedules[$day_code]; + } + for ($y = 0; $y <= 23; $y++) { + $value = 0; + if(isset($hours)) { + if (isset($hours[$y])) { + $value=$hours[$y]; + } + } + $element = array( + "x" => $x, + "y" => $y, + "value" => $value, + ); + array_push($summary, $element); + } + $hours = null; + } + } + return $summary; + } + + public function get_inverted_time_summary($inverted_time, $expected_time, $average_time = true){ + $response = new stdClass(); + $response->expected_time = $expected_time; + $response->expected_time_converted = self::convert_time("hours", $expected_time, "string"); + $response->inverted_time = self::minutes_to_hours($inverted_time->average, -1); + $response->inverted_time_converted = self::convert_time("hours", $response->inverted_time, "string"); + + $inverted_time = new stdClass(); + $inverted_time->name = get_string("fml_inverted_time","local_fliplearning"); + $inverted_time->y = $response->inverted_time; + + $expected_time = new stdClass(); + $expected_time->name = get_string("fml_expected_time","local_fliplearning"); + $expected_time->y = $response->expected_time; + + if (!$average_time) { + $inverted_time->name = get_string("fml_student_inverted_time","local_fliplearning"); + $expected_time->name = get_string("fml_student_expected_time","local_fliplearning"); + } + $data[] = $inverted_time; + $data[] = $expected_time; + + $response->data = $data; + return $response; + } + + protected function get_day_code($key) { + $days = array("mon", "tue", "wed", "thu", "fri", "sat", "sun"); + return $days[$key]; + } + + protected function get_work_sessions($start, $end){ + $conditions = self::conditions_for_work_sessions($start, $end); + $sessions_users = self::get_sessions_from_logs($conditions); + return $sessions_users; + } + + protected function get_sessions_from_logs($conditions){ + $users = array(); + $user_logs = self::get_logs($conditions); + foreach($user_logs as $userid => $logs){ + $sessions = self::get_sessions($logs); + $summary = self::calculate_average("duration", $sessions); + $active_days = self::get_active_days($logs); + $user = new stdClass(); + $user->userid = $userid; + $user->count_logs = count($logs); + $user->active_days = $active_days; + $user->time_format = "minutes"; + $user->summary = $summary; + $user->sessions = $sessions; + $user->logs = $logs; + $users[] = $user; + } + return $users; + } + + /** + * Obtiene una lista indexada por el id de usuario que contiene en cada posicion los logs + * del usuario. + * + * @param array $filters lista de condiciones para la busqueda de los logs, en caso de no especificarse, + * se toma como una lista vacía + * + * @return array lista de usuarios con sus logs + */ + protected function get_logs($filters = array()){ + global $DB; + $users = array(); + $conditions = self::get_query_from_conditions($filters); + list($in, $invalues) = $DB->get_in_or_equal($this->users); + $sql = "SELECT * FROM {logstore_standard_log} + WHERE courseid = {$this->course->id} {$conditions} AND userid $in ORDER BY timecreated ASC"; + $logs = $DB->get_recordset_sql($sql, $invalues); + foreach($logs as $key => $log){ + if(!isset($users[$log->userid])){ + $users[$log->userid] = array(); + } + $users[$log->userid][] = $log; + } + $logs->close(); + foreach($this->users as $userid){ + if(!isset($users[$userid])){ + $users[$userid] = array(); + } + } + return $users; + } + + /** + * Obtiene una cadena de texto que representa una condicion 'where' de busqueda en lenguaje sql + * cuyos campos se concatenan en base al parámetro $filters con el prefijo $prefix + * + * @param array $filters lista de condiciones para la cadena de texto que representa la condicion + * @param string $prefix prefijo con el que se une cada condicion de la variable $filters. Si se + * omite, por defecto toma el valor de and + * + * @return string cadena de texto que representa una condicional 'where' el lenguaje sql + */ + private function get_query_from_conditions($filters = array(), $prefix = "and"){ + $conditions = ""; + foreach($filters as $filter){ + $operator = isset($filter->operator) ? $filter->operator : "="; + $conditions .= " {$prefix} {$filter->field} {$operator} '{$filter->value}' "; + } + return $conditions; + } + + private function get_sessions($logs){ + $sessions = array(); + if(count($logs) == 0){ + return $sessions; + } + $session = new stdClass(); + $session->duration = 0; + $session->start = $logs[0]->timecreated; + $session->end = null;; + $previous = $logs[0]; + foreach($logs as $key => $log){ + $time_difference = self::diff_in_minutes($log->timecreated, $previous->timecreated); + if($time_difference >= self::MINUTES_TO_NEW_SESSION){ + $session->end = $previous->timecreated; + $session->duration = self::diff_in_minutes($session->end, $session->start); + $sessions[] = $session; + + $session = new stdClass(); + $session->duration = 0; + $session->start = $log->timecreated; + $session->end = null; + } + $previous = $log; + } + if(!isset($session->end)){ + $session->end = $previous->timecreated; + $time_difference = self::diff_in_minutes($session->end, $session->start); + $session->duration = $time_difference; + $sessions[] = $session; + } + return $sessions; + } + + private function diff_in_minutes($timestamp1, $timestamp2){ + if(gettype($timestamp1) == "string"){ + $timestamp1 = (int) $timestamp1; + } + if(gettype($timestamp2) == "string"){ + $timestamp2 = (int) $timestamp2; + } + $interval = ($timestamp1 - $timestamp2) / 60; + return $interval; + } + + protected function calculate_average($field , $values, $consider_zero_elements = true){ + $counter = 0; + $total = 0; + foreach($values as $value){ + if(gettype($value) == "object"){ + if(isset($value->$field)){ + if(!$consider_zero_elements && $value->$field == 0){ + continue; + } + $counter++; + $total += $value->$field; + } + }elseif(gettype($value) == "array"){ + if(isset($value[$field])){ + if(!$consider_zero_elements && $value[$field] == 0){ + continue; + } + $counter++; + $total += $value[$field]; + } + } + } + + $average = $counter > 0 ? ($total / $counter) : 0; + $result = new stdClass(); + $result->count = $counter; + $result->added = $total; + $result->average = $average; + return $result; + } + + private function get_active_days($logs){ + $days_count = 0; + if(count($logs) == 0){ + return $days_count; + } + $days = array(); + foreach($logs as $key => $log){ + $year = date("Y", $log->timecreated); + $month = date("m", $log->timecreated); + $day = date("d", $log->timecreated); + $label = $year.$month.$day; + if (!isset($days[$label])) { + $days[$label] = 1; + } + } + $days_count = count($days); + return $days_count; + } + + protected function get_users_course_grade($users) { + global $DB; + $item = $DB->get_record('grade_items', + array('courseid' => $this->course->id, 'itemtype' => 'course'), 'id, courseid, grademax'); + if ($item) { + $sql = "SELECT id, userid, rawgrademax, finalgrade FROM {grade_grades} + WHERE itemid = {$item->id} AND finalgrade IS NOT NULL"; + $rows = $DB->get_records_sql($sql); + $grades = array(); + foreach ($rows as $row) { + $grades[$row->userid] = $row; + } + + foreach ($users as $user) { + $grade = new stdClass(); + $grade->finalgrade = 0; + $grade->maxgrade = $item->grademax; + if (isset($grades[$user->id])) { + $grade->finalgrade = $grades[$user->id]->finalgrade; + } + $user->coursegrade = $grade; + } + } else { + foreach ($users as $user) { + $grade = new stdClass(); + $grade->finalgrade = 0; + $grade->maxgrade = 0; + $user->coursegrade = $grade; + } + } + return $users; + } + + protected function get_users_items_grades($users) { + global $DB; + $items = $this->get_grade_items(); + $items = $this->format_items($items); + $items = $this->set_average_max_min_grade($items, $users); + + $itemsids = $this->extract_elements_field($items, 'id'); + if (count($itemsids) > 0) { + list($in, $invalues) = $DB->get_in_or_equal($itemsids); + $sql = "SELECT id, itemid, userid, finalgrade FROM {grade_grades} + WHERE itemid $in AND finalgrade IS NOT NULL ORDER BY itemid, userid"; + $rows = $DB->get_recordset_sql($sql, $invalues); + + $itemsgraded = array(); + foreach($rows as $row){ + $itemsgraded[$row->itemid][$row->userid] = $row; + } + $rows->close(); + + foreach ($users as $user) { + $useritems = array(); + foreach ($items as $item) { + $useritem = new stdClass(); + $useritem->average = $item->average; + $useritem->average_percentage = $item->average_percentage; + $useritem->categoryid = $item->categoryid; + $useritem->coursemoduleid = $item->coursemoduleid; + $useritem->finalgrade = 0; + $useritem->gradecount = $item->gradecount; + $useritem->grademax = $item->grademax; + $useritem->grademin = $item->grademin; + $useritem->id = $item->id; + $useritem->iteminstance = $item->iteminstance; + $useritem->itemmodule = $item->itemmodule; + $useritem->itemname = $item->itemname; + $useritem->maxrating = $item->maxrating; + $useritem->minrating = $item->minrating; + if (isset($itemsgraded[$item->id][$user->id])) { + $useritem->finalgrade = $itemsgraded[$item->id][$user->id]->finalgrade; + } + array_push($useritems, $useritem); + } + $user->gradeitems = $useritems; + } + } + return $users; + } + + protected function get_grade_categories () { + global $DB; + $sql = "SELECT * FROM {grade_categories} WHERE courseid = {$this->course->id} ORDER BY path"; + $result = $DB->get_records_sql($sql); + $result = array_values($result); + return $result; + } + + protected function get_grade_items () { + global $DB; + $items = $DB->get_records('grade_items', + array('courseid' => $this->course->id, 'itemtype' => 'mod')); + if (!$items) { + $items = array(); + } + +// $sql = "SELECT * FROM {grade_items} WHERE courseid = {$this->course->id} AND itemtype = 'mod' and gradetype = 1"; +// $result = $DB->get_records_sql($sql); +// $result = array_values($result); + return $items; + } + + protected function format_items ($items) { + $response = array(); + foreach ($items as $item) { + $format_item = new stdClass(); + $format_item->id = (int) $item->id; + $format_item->categoryid = (int) $item->categoryid; + $format_item->itemname = $item->itemname; + $format_item->itemmodule = $item->itemmodule; + $format_item->iteminstance = (int) $item->iteminstance; + $format_item->grademax = (int) $item->grademax; + $format_item->grademin = (int) $item->grademin; + $coursemoduleid = $this->get_course_module_id($item); + $format_item->coursemoduleid = $coursemoduleid; + array_push($response, $format_item); + } + return $response; + } + + protected function get_course_module_id($item) { + global $DB; + $coursemoduleid = false; + if (isset($item->itemmodule)) { + $result = $DB->get_record('modules', array('name' => $item->itemmodule), 'id', MUST_EXIST); + $moduleid = $result->id; + $result = $DB->get_record('course_modules', + array('course' => $this->course->id, 'module' => $moduleid, 'instance' => $item->iteminstance), + 'id', MUST_EXIST); + $coursemoduleid = (int) $result->id; + } + return $coursemoduleid; + } + + protected function set_average_max_min_grade ($items, $users) { + foreach ($items as $item) { + $result = $this->get_average_max_min_grade($item->id); + $grades = $this->get_item_grades($item->id, $users); + $item->average_percentage = $this->convert_value_to_percentage($result->avg, $item->grademax); + $item->average = $result->avg; + $item->maxrating = $result->max; + $item->minrating = $result->min; + $item->gradecount = (int) $result->count; + $item->grades = $grades; + } + return $items; + } + + private function get_item_grades($itemid, $users) { + global $DB; + list($in, $invalues) = $DB->get_in_or_equal($this->users); + $sql = "SELECT id, rawgrade, rawgrademax, rawgrademin, userid FROM {grade_grades} + WHERE itemid = {$itemid} AND rawgrade IS NOT NULL AND userid {$in}"; + $grades = $DB->get_records_sql($sql, $invalues); + $grades = array_values($grades); + foreach ($grades as $grade) { + $grade->rawgrade = (int) $grade->rawgrade; + $grade->rawgrademax = (int) $grade->rawgrademax; + $grade->rawgrademin = (int) $grade->rawgrademin; + $grade->userid = (int) $grade->userid; + if (isset($users[$grade->userid])) { + $grade->user = $users[$grade->userid]; + } + } + return $grades; + } + + private function convert_value_to_percentage($value, $maxvalue) { + $percentage = 0; + if ($maxvalue > 0) { + $percentage = ($value * 100)/$maxvalue; + } + return $percentage; + } + + private function get_average_max_min_grade($itemid) { + global $DB; + list($in, $invalues) = $DB->get_in_or_equal($this->users); + $sql = "SELECT COUNT(*) as count, MAX(rawgrade) as max, MIN(rawgrade) as min, AVG(rawgrade) as avg + FROM {grade_grades} WHERE itemid = {$itemid} AND rawgrade IS NOT NULL AND userid {$in}"; + $result = $DB->get_records_sql($sql, $invalues); + $result = array_values($result); + return $result[0]; + } + + public function get_chart_langs() { + $langs = array( + "loading" => get_string("chart_loading", "local_fliplearning"), + "exportButtonTitle" => get_string("chart_exportButtonTitle", "local_fliplearning"), + "printButtonTitle" => get_string("chart_printButtonTitle", "local_fliplearning"), + "rangeSelectorFrom" => get_string("chart_rangeSelectorFrom", "local_fliplearning"), + "rangeSelectorTo" => get_string("chart_rangeSelectorTo", "local_fliplearning"), + "rangeSelectorZoom" => get_string("chart_rangeSelectorZoom", "local_fliplearning"), + "downloadPNG" => get_string("chart_downloadPNG", "local_fliplearning"), + "downloadJPEG" => get_string("chart_downloadJPEG", "local_fliplearning"), + "downloadPDF" => get_string("chart_downloadPDF", "local_fliplearning"), + "downloadSVG" => get_string("chart_downloadSVG", "local_fliplearning"), + "downloadCSV" => get_string("chart_downloadCSV", "local_fliplearning"), + "downloadXLS" => get_string("chart_downloadXLS", "local_fliplearning"), + "exitFullscreen" => get_string("chart_exitFullscreen", "local_fliplearning"), + "hideData" => get_string("chart_hideData", "local_fliplearning"), + "noData" => get_string("chart_noData", "local_fliplearning"), + "printChart" => get_string("chart_printChart", "local_fliplearning"), + "viewData" => get_string("chart_viewData", "local_fliplearning"), + "viewFullscreen" => get_string("chart_viewFullscreen", "local_fliplearning"), + "resetZoom" => get_string("chart_resetZoom", "local_fliplearning"), + "resetZoomTitle" => get_string("chart_resetZoomTitle", "local_fliplearning"), + "months" => array( + get_string("fml_jan", "local_fliplearning"), + get_string("fml_feb", "local_fliplearning"), + get_string("fml_mar", "local_fliplearning"), + get_string("fml_apr", "local_fliplearning"), + get_string("fml_may", "local_fliplearning"), + get_string("fml_jun", "local_fliplearning"), + get_string("fml_jul", "local_fliplearning"), + get_string("fml_aug", "local_fliplearning"), + get_string("fml_sep", "local_fliplearning"), + get_string("fml_oct", "local_fliplearning"), + get_string("fml_nov", "local_fliplearning"), + get_string("fml_dec", "local_fliplearning"), + ), + "shortMonths" => array( + get_string("fml_jan_short", "local_fliplearning"), + get_string("fml_feb_short", "local_fliplearning"), + get_string("fml_mar_short", "local_fliplearning"), + get_string("fml_apr_short", "local_fliplearning"), + get_string("fml_may_short", "local_fliplearning"), + get_string("fml_jun_short", "local_fliplearning"), + get_string("fml_jul_short", "local_fliplearning"), + get_string("fml_aug_short", "local_fliplearning"), + get_string("fml_sep_short", "local_fliplearning"), + get_string("fml_oct_short", "local_fliplearning"), + get_string("fml_nov_short", "local_fliplearning"), + get_string("fml_dec_short", "local_fliplearning"), + ), + "weekdays" => array( + get_string("fml_sun", "local_fliplearning"), + get_string("fml_mon", "local_fliplearning"), + get_string("fml_tue", "local_fliplearning"), + get_string("fml_wed", "local_fliplearning"), + get_string("fml_thu", "local_fliplearning"), + get_string("fml_fri", "local_fliplearning"), + get_string("fml_sat", "local_fliplearning"), + ), + "shortWeekdays" => array( + get_string("fml_sun_short", "local_fliplearning"), + get_string("fml_mon_short", "local_fliplearning"), + get_string("fml_tue_short", "local_fliplearning"), + get_string("fml_wed_short", "local_fliplearning"), + get_string("fml_thu_short", "local_fliplearning"), + get_string("fml_fri_short", "local_fliplearning"), + get_string("fml_sat_short", "local_fliplearning"), + ), + ); + return $langs; + } +} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/classes/sessiongroup.php b/NMP 3.0 Moodle Pluggin/fliplearning/classes/sessiongroup.php new file mode 100644 index 0000000000000000000000000000000000000000..b371f15df9185129d88abb7c52ed3fdddbf12594 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/classes/sessiongroup.php @@ -0,0 +1,33 @@ +<?php +// This file is part of Moodle - http://moodle.org/ +// +// Moodle is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Moodle is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Moodle. If not, see <http://www.gnu.org/licenses/>. + +/** + * local_fliplearning + * + * @package local_fliplearning + * @autor Edisson Sigua, Bryan Aguilar + * @copyright 2020 Edisson Sigua <edissonf.sigua@gmail.com>, Bryan Aguilar <bryan.aguilar6174@gmail.com> + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace local_fliplearning; + +class sessiongroup{ + public $courseid; + public $groupid; + public $groupname; + public $groupmode; +} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/classes/student.php b/NMP 3.0 Moodle Pluggin/fliplearning/classes/student.php new file mode 100644 index 0000000000000000000000000000000000000000..f48dd024d2624ab18eaab0035d73472028dd85a9 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/classes/student.php @@ -0,0 +1,153 @@ +<?php +// This file is part of Moodle - http://moodle.org/ +// +// Moodle is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Moodle is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Moodle. If not, see <http://www.gnu.org/licenses/>. + +/** + * local_fliplearning + * + * @package local_fliplearning + * @autor Edisson Sigua, Bryan Aguilar + * @copyright 2020 Edisson Sigua <edissonf.sigua@gmail.com>, Bryan Aguilar <bryan.aguilar6174@gmail.com> + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace local_fliplearning; + +use stdClass; + +class student extends report { + + function __construct($courseid, $userid){ + parent::__construct($courseid, $userid); + self::set_profile(); + self::set_users(); + } + + /** + * Almacena el perfil de visualización de la clase en la variable $profile de clase + */ + public function set_profile(){ + $this->profile = "student"; + } + + /** + * Almacena el id del estudiante en la variable $users de la clase + */ + public function set_users(){ + $this->users = array($this->user->id); + return $this->users; + } + + public function get_general_indicators () { + if(!self::course_in_transit()){ + return null; + } + if(!self::course_has_users()){ + return null; + } + + $start = null; + if(isset($this->course->startdate) && ((int)$this->course->startdate) > 0) { + $start = $this->course->startdate; + } + $end = null; + if(isset($this->course->enddate) && ((int)$this->course->enddate) > 0) { + $end = $this->course->enddate; + } + $enable_completion = false; + if(isset($this->course->enablecompletion) && ((int)$this->course->enablecompletion) == 1) { + $enable_completion = true; + } + + $cms = self::get_course_modules(); + $cms = array_filter($cms, function($cm){ return $cm['modname'] != 'label';}); + $cms = array_values($cms); + + $user_sessions = self::get_work_sessions($start, $end); + + $user = self::get_progress_table($user_sessions, $cms, $enable_completion, true); + $user = $this->get_users_course_grade($user); + $user = $this->get_users_items_grades($user); + + $sessions = array_map(function($user_sessions){ return $user_sessions->sessions;}, $user_sessions); + $sessions = self::get_sessions_by_weeks($sessions); + $sessions = self::get_sessions_by_weeks_summary($sessions, (int) $this->course->startdate); + + $configweeks = new \local_fliplearning\configweeks($this->course->id, $this->user->id); + + $response = new stdClass(); + $response->cms = $cms; + $response->user = $user[0]; + $response->sessions = $sessions; + $response->sections = $configweeks->current_sections; + + return $response; + } + + public function get_sessions($weekcode = null, $include_weeks = true){ + if(!self::course_in_transit()){ + return null; + } + if(!self::course_has_users()){ + return null; + } + + $week = $this->current_week; + if(!empty($weekcode)){ + $week = self::find_week($weekcode); + } + + $work_sessions = self::get_work_sessions($week->weekstart, $week->weekend); + $sessions = array_map(function($user_sessions){ return $user_sessions->sessions;}, $work_sessions); + $sessions = self::get_sessions_by_hours($sessions); + $sessions = self::get_sessions_by_hours_summary($sessions); + + $inverted_time = array_map(function($user_sessions){ return $user_sessions->summary;}, $work_sessions); + $inverted_time = self::calculate_average("added", $inverted_time); + $inverted_time = self::get_inverted_time_summary($inverted_time, (int) $week->hours_dedications, false); + + $response = new stdClass(); + $response->hours_sessions = $sessions; + $response->inverted_time = $inverted_time; + + if ($include_weeks) { + $start = null; + if(isset($this->course->startdate) && ((int)$this->course->startdate) > 0) { + $start = $this->course->startdate; + } + $end = null; + if(isset($this->course->enddate) && ((int)$this->course->enddate) > 0) { + $end = $this->course->enddate; + } + $enable_completion = false; + if(isset($this->course->enablecompletion) && ((int)$this->course->enablecompletion) == 1) { + $enable_completion = true; + } + + $work_sessions = self::get_work_sessions($start, $end); + $cms = self::get_course_modules(); + $cms = array_filter($cms, function($cm){ return $cm['modname'] != 'label';}); + $cms = array_values($cms); + $user = self::get_progress_table($work_sessions, $cms, $enable_completion); + + $response->course_cms = $cms; + $response->user_cms = $user[0]->cms->modules; +// $response->weeks = $this->weeks; +// $response->sections = $this->current_sections; + } + $response->sections = $week->sections; + return $response; + } +} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/classes/teacher.php b/NMP 3.0 Moodle Pluggin/fliplearning/classes/teacher.php new file mode 100644 index 0000000000000000000000000000000000000000..c80327c06a190712a3ba8ab2e6abc44df47102e9 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/classes/teacher.php @@ -0,0 +1,990 @@ +<?php +// This file is part of Moodle - http://moodle.org/ +// +// Moodle is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Moodle is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Moodle. If not, see <http://www.gnu.org/licenses/>. + +/** + * local_fliplearning + * + * @package local_fliplearning + * @autor Edisson Sigua, Bryan Aguilar + * @copyright 2020 Edisson Sigua <edissonf.sigua@gmail.com>, Bryan Aguilar <bryan.aguilar6174@gmail.com> + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace local_fliplearning; + +use stdClass; + +class teacher extends report { + + function __construct($courseid, $userid){ + parent::__construct($courseid, $userid); + self::set_profile(); + self::set_users(); + } + + /** + * Almacena el perfil de visualización de la clase en la variable $profile de clase + */ + public function set_profile(){ + $this->profile = "teacher"; + } + + /** + * Almacena los ids de los estudiantes en la variable $users de la clase + */ + public function set_users(){ + $this->users = self::get_student_ids(); + return $this->users; + } + + public function get_general_indicators(){ + if(!self::course_is_valid()){ + return null; + } + $start = null; + if(isset($this->course->startdate) && ((int)$this->course->startdate) > 0) { + $start = $this->course->startdate; + } + $end = null; + if(isset($this->course->enddate) && ((int)$this->course->enddate) > 0) { + $end = $this->course->enddate; + } + $enable_completion = false; + if(isset($this->course->enablecompletion) && ((int)$this->course->enablecompletion) == 1) { + $enable_completion = true; + } + + $work_sessions = self::get_work_sessions($start, $end); + + $sessions = array_map(function($user_sessions){ return $user_sessions->sessions;}, $work_sessions); + $sessions = self::get_sessions_by_weeks($sessions); + $sessions = self::get_sessions_by_weeks_summary($sessions, (int) $this->course->startdate); + + $cms = self::get_course_modules(); + $cms = array_filter($cms, function($cm){ return $cm['modname'] != 'label';}); + $table = self::get_progress_table($work_sessions, $cms, $enable_completion); + + $weeks_cms = $this->count_week_cms($cms); + $students = $this->get_student_ids(false); + + $response = new stdClass(); + $response->sessions = $sessions; + $response->table = $table; + $response->weeks = $weeks_cms; + $response->course = $this->get_course_details(); + $response->total_cms = count($cms); + $response->total_weeks = count($weeks_cms); + $response->total_students = count($students); + return $response; + } + + private function count_week_cms ($cms) { + $sections_cms = array(); + foreach ($cms as $cm) { + $sectionid = $cm['section']; + if (!isset($sections_cms[$sectionid])) { + $sections_cms[$sectionid] = 0; + } + $sections_cms[$sectionid]++; + } + $weeks = array(); + foreach ($this->weeks as $week) { + $total_cms = 0; + foreach ($week->sections as $section) { + $sectionid = $section->sectionid; + if (isset($sections_cms[$sectionid])) { + $total_cms += $sections_cms[$sectionid]; + } + } + $element = new stdClass(); + $element->name = $week->name; + $element->position = $week->position; + $element->cms = $total_cms; + array_push($weeks, $element); + } + return $weeks; + } + + private function get_course_details() { + $course = new stdClass(); + $course->fullname = $this->course->fullname; + $course->shortname = $this->course->shortname; + + $startdate = get_string("fml_not_configured", "local_fliplearning"); + if (!empty($this->course->startdate)) { + $startdate = $this->format_date($this->course->startdate); + } + $enddate = get_string("fml_not_configured", "local_fliplearning"); + if (!empty($this->course->enddate)) { + $enddate = $this->format_date($this->course->enddate); + } + $completion = get_string("fml_disabled", "local_fliplearning"); + if ($this->course->enablecompletion == "1") { + $completion = get_string("fml_activated", "local_fliplearning"); + } + $format = $this->course->format; + $identifier = "course_format_$format"; + if (get_string_manager()->string_exists($identifier, "local_fliplearning")) { + $format = get_string($identifier, "local_fliplearning"); + } + + $course->startdate = $startdate; + $course->enddate = $enddate; + $course->completion = $completion; + $course->format = $format; + $course->grademax = $this->get_course_grade(); + return $course; + } + + private function format_date($date) { + $date = (int) $date; + $year = date("Y", $date); + $month = strtolower(date("M", $date)); + $month = get_string("fml_$month", "local_fliplearning"); + $day = strtolower(date("D", $date)); + $day = get_string("fml_$day", "local_fliplearning"); + $day_number = date("j", $date); + $hour = date("G", $date); + $min = date("i", $date); + $date = "$day, $month $day_number $year, $hour:$min"; + return $date; + } + + protected function get_course_grade() { + global $DB; + $item = $DB->get_record('grade_items', + array('courseid' => $this->course->id, 'itemtype' => 'course'), 'id, grademax'); + $grade = 0; + if ($item) { + $grade = $item->grademax; + } + return $grade; + } + + /** + * Obtiene un objeto con los datos para la visualizacion del gráfico + * sesiones de estudiantes + * + * @param string $weekcode identificador de la semana de la que se debe obtener las semanas + * si no se especifica, se toma la semana configurada como la actual + * + * @return object objeto con los datos para la visualizacion + */ + public function get_sessions($weekcode = null){ + if(!self::course_is_valid()){ + return null; + } + $week = $this->current_week; + if(!empty($weekcode)){ + $week = self::find_week($weekcode); + } + + $work_sessions = self::get_work_sessions($week->weekstart, $week->weekend); + $sessions = array_map(function($user_sessions){ return $user_sessions->sessions;}, $work_sessions); + + $sessions_count = self::count_sessions_by_duration($sessions); + $sessions_count = self::count_sessions_by_duration_summary($sessions_count, $week->weekstart, $week->weekend); + + $sessions = self::get_sessions_by_hours($sessions); + $sessions = self::get_sessions_by_hours_summary($sessions); + + $inverted_time = array_map(function($user_sessions){ return $user_sessions->summary;}, $work_sessions); + $inverted_time = self::calculate_average("added", $inverted_time); + $inverted_time = self::get_inverted_time_summary($inverted_time, (int) $week->hours_dedications); + + $response = new stdClass(); + $response->count = $sessions_count; + $response->sessions = $sessions; + $response->time = $inverted_time; + + return $response; + } + +// public function weeks_sessions(){ +// if(!self::course_in_transit()){ +// return null; +// } +// if(!self::course_has_users()){ +// return null; +// } +// $start = null; +// if(isset($this->course->startdate) && ((int)$this->course->startdate) > 0) { +// $start = $this->course->startdate; +// } +// $end = null; +// if(isset($this->course->enddate) && ((int)$this->course->enddate) > 0) { +// $end = $this->course->enddate; +// } +// $work_sessions = self::get_work_sessions($start, $end); +// $work_sessions = array_map(function($user_sessions){ return $user_sessions->sessions;}, $work_sessions); +// $months = self::get_sessions_by_weeks($work_sessions); +// $response = self::get_sessions_by_weeks_summary($months, (int) $this->course->startdate); +// return $response; +// } +// +// public function progress_table(){ +// if(!self::course_in_transit()){ +// return null; +// } +// if(!self::course_has_users()){ +// return null; +// } +// $start = null; +// if(isset($this->course->startdate) && ((int)$this->course->startdate) > 0) { +// $start = $this->course->startdate; +// } +// $end = null; +// if(isset($this->course->enddate) && ((int)$this->course->enddate) > 0) { +// $end = $this->course->enddate; +// } +// +// $enable_completion = false; +// if(isset($this->course->enablecompletion) && ((int)$this->course->enablecompletion) == 1) { +// $enable_completion = true; +// } +// +// $users_sessions = self::get_work_sessions($start, $end); +// $cms = self::get_course_modules(); +// $table = self::get_progress_table($users_sessions, $cms, $enable_completion); +// return $table; +// } + + public function count_sessions($weekcode = null){ + if(!self::course_in_transit()){ + return null; + } + if(!self::course_has_users()){ + return null; + } + $week = $this->current_week; + if(!empty($weekcode)){ + $week = self::find_week($weekcode); + } + + $work_sessions = self::get_work_sessions($week->weekstart, $week->weekend); + $work_sessions = array_map(function($user_sessions){ return $user_sessions->sessions;}, $work_sessions); + $sessions_count = self::count_sessions_by_duration($work_sessions); + $response = self::count_sessions_by_duration_summary($sessions_count, $week->weekstart, $week->weekend); + return $response; + } + + private function count_sessions_by_duration($user_sessions) { + $summary = array(); + foreach($user_sessions as $sessions){ + foreach($sessions as $session){ + $month = strtolower(date("M", (int) $session->start)); + $day = strtolower(date("j", (int) $session->start)); + $day = "$month $day"; + + $session_label = "greater60"; + if ($session->duration < 30) { + $session_label='smaller30'; + } elseif ($session->duration < 60) { + $session_label='greater60'; + } + + if(!isset($summary[$day])){ + $summary[$day] = array(); + } + if (!isset($summary[$day][$session_label])) { + $summary[$day][$session_label] = 1; + } else { + $summary[$day][$session_label]++; + } + } + } + return $summary; + } + + private function count_sessions_by_duration_summary($sessions_count, $start) { + $categories = array(); + + $data = new stdClass(); + $data->smaller30 = array(); + $data->greater30 = array(); + $data->greater60 = array(); + + $names = new stdClass; + $names->smaller30 = get_string("fml_smaller30", "local_fliplearning"); + $names->greater30 = get_string("fml_greater30", "local_fliplearning"); + $names->greater60 = get_string("fml_greater60", "local_fliplearning"); + + for ($i = 0; $i < 7; $i++ ) { + $month = strtolower(date("M", $start)); + $day = strtolower(date("j", $start)); + $label = "$month $day"; + + if (isset($sessions_count[$label])) { + $count = $sessions_count[$label]; + $value = 0; + if(isset($count['smaller30'])){ + $value = $count['smaller30']; + } + $data->smaller30[] = $value; + + $value = 0; + if(isset($count['greater30'])){ + $value = $count['greater30']; + } + $data->greater30[] = $value; + + $value = 0; + if(isset($count['greater60'])){ + $value = $count['greater60']; + } + $data->greater60[] = $value; + } else { + $data->smaller30[] = 0; + $data->greater30[] = 0; + $data->greater60[] = 0; + } + + $month_name = self::get_month_name($month); + $categories[] = "$month_name $day"; + $start += 86400; + } + + $data_object[] = array( + "name" => $names->smaller30, + "data" => $data->smaller30 + ); + $data_object[] = array( + "name" => $names->greater30, + "data" => $data->greater30 + ); + $data_object[] = array( + "name" => $names->greater60, + "data" => $data->greater60 + ); + + $summary = new stdClass(); + $summary->categories = $categories; + $summary->data = $data_object; + + return $summary; + } + + private function get_month_name($month_code) { + $text = "fml_".$month_code."_short"; + $month_name = get_string($text, "local_fliplearning"); + return $month_name; + } + + public function inverted_time($weekcode = null){ + if(!self::course_in_transit()){ + return null; + } + if(!self::course_has_users()){ + return null; + } + $week = $this->current_week; + if(!empty($weekcode)){ + $week = self::find_week($weekcode); + } + + $work_sessions = self::get_work_sessions($week->weekstart, $week->weekend); + $inverted_time = array_map(function($user_sessions){ return $user_sessions->summary;}, $work_sessions); + $inverted_time = self::calculate_average("added", $inverted_time); + + $response = self::get_inverted_time_summary($inverted_time, (int) $week->hours_dedications); + return $response; + } + + public function assignments_submissions($weekcode = null){ + if(!self::course_in_transit()){ + return null; + } + if(!self::course_has_users()){ + return null; + } + $week = $this->current_week; + if(!empty($weekcode)){ + $week = self::find_week($weekcode); + } + + $week_modules = self::get_course_modules_from_sections($week->sections); + $assign_modules = array_filter($week_modules, function($module){ return $module->modname == 'assign';}); + $assign_ids = self::extract_elements_field($assign_modules, "instance"); + $valid_assigns = self::get_valid_assigns($assign_ids); + $assign_ids = self::extract_ids($valid_assigns); + $submissions = self::get_assigns_submissions($assign_ids, $this->users); + $response = self::get_submissions($valid_assigns, $submissions, $this->users); + return $response; + } + + private function get_valid_assigns($assign_ids){ + global $DB; + $assigns = array(); + if (count($assign_ids) > 0) { + list($in, $invalues) = $DB->get_in_or_equal($assign_ids); + $sql = "SELECT * FROM {assign} WHERE course = {$this->course->id} AND id $in AND nosubmissions <> 1"; + $result = $DB->get_records_sql($sql, $invalues); + $assigns = array_values($result); + } + return $assigns; + } + + private function get_assigns_submissions($assign_ids, $user_ids){ + global $DB; + $submissions = array(); + if (!empty($assign_ids)) { + list($in_assigns, $invalues_assigns) = $DB->get_in_or_equal($assign_ids); + list($in_users, $invalues_users) = $DB->get_in_or_equal($user_ids); + $params = array_merge($invalues_assigns, $invalues_users); + $sql = " + SELECT s.id, a.id as assign, a.course, a.name, a.duedate, s.userid, s.timemodified as timecreated, s.status + FROM {assign} a + INNER JOIN mdl_assign_submission s ON a.id = s.assignment + WHERE a.course = {$this->course->id} AND a.id $in_assigns AND a.nosubmissions <> 1 + AND s.userid $in_users AND s.status = 'submitted' + ORDER BY a.id; + "; + $result = $DB->get_records_sql($sql, $params); + foreach ($result as $submission) { + if (!isset($submissions[$submission->assign])) { + $submissions[$submission->assign] = array(); + } + array_push($submissions[$submission->assign], $submission); + } + } + return $submissions; + } + + private function get_submissions($assigns, $assign_submissions, $users){ + global $DB; + + $categories = array(); + $modules = array(); + $submissions_users = array(); + $assignmoduleid=1; + + $data = new stdClass(); + $data->intime_sub = array(); + $data->late_sub = array(); + $data->no_sub = array(); + + $names = new stdClass; + $names->intime_sub = get_string("fml_intime_sub", "local_fliplearning"); + $names->late_sub = get_string("fml_late_sub", "local_fliplearning"); + $names->no_sub = get_string("fml_no_sub", "local_fliplearning"); + + foreach ($assigns as $assign) { + if (isset($assign_submissions[$assign->id])) { + $submissions = self::count_submissions($assign_submissions[$assign->id], $users); + } else { + $submissions = array(); + $submissions['intime_sub'] = array(); + $submissions['late_sub'] = array(); + $submissions['no_sub'] = $users; + } + + array_push($data->intime_sub, count($submissions['intime_sub'])); + array_push($data->late_sub, count($submissions['late_sub'])); + array_push($data->no_sub, count($submissions['no_sub'])); + + $submissions = self::get_submissions_with_users($submissions); + array_push($submissions_users, $submissions); + + $date_label = get_string("fml_assign_nodue", 'local_fliplearning'); + if ($assign->duedate != "0") { + $date_label = self::get_date_label($assign->duedate); + } + $category_name = "<b>$assign->name</b><br>$date_label"; + array_push($categories, $category_name); + + $module = $DB->get_field('course_modules', 'id', + array('course' => $assign->course, 'module' => $assignmoduleid, 'instance' => $assign->id)); + array_push($modules, $module); + } + + $series = array(); + + $obj = new stdClass(); + $obj->name = $names->intime_sub; + $obj->data = $data->intime_sub; + array_push($series, $obj); + + $obj = new stdClass(); + $obj->name = $names->late_sub; + $obj->data = $data->late_sub; + array_push($series, $obj); + + $obj = new stdClass(); + $obj->name = $names->no_sub; + $obj->data = $data->no_sub; + array_push($series, $obj); + + $response = new stdClass(); + $response->data = $series; + $response->categories = $categories; + $response->modules = $modules; + $response->users = $submissions_users; + + return $response; + } + + private function count_submissions($submissions, $users_ids) { + $submitted_users = array(); + $data = array(); + $data['intime_sub'] = array(); + $data['late_sub'] = array(); + $data['no_sub'] = array(); + + foreach ($submissions as $submission) { + if ( ($submission->duedate == "0") || ( ((int) $submission->timecreated) <= ((int) $submission->duedate) ) ) { + array_push($data['intime_sub'], $submission->userid); + } else { + array_push($data['late_sub'], $submission->userid); + } + array_push($submitted_users, $submission->userid); + } + $data['no_sub'] = array_diff($users_ids, $submitted_users); + return $data; + } + + private function get_submissions_with_users($submissions) { + $data = array(); + foreach ($submissions as $index => $users) { + $values = array(); + if (count($users) > 0) { + $values = self::get_users_from_ids($users); + } + $data[$index]=$values; + } + $data = array_values($data); + return $data; + } + + public function resources_access($weekcode = null){ + if(!self::course_in_transit()){ + return null; + } + if(!self::course_has_users()){ + return null; + } + $week = $this->current_week; + if(!empty($weekcode)){ + $week = self::find_week($weekcode); + } + + $week_modules = self::get_course_modules_from_sections($week->sections); + $week_modules = array_filter($week_modules, function($module){ return $module->modname != 'label';}); + $week_modules = self::set_resources_access_users($week_modules, $this->users, $this->course->id); + $response = self::get_access_modules_summary($week_modules); + $users = self::get_users_from_ids($this->users); + $response->users = $users; + return $response; + } + + private function set_resources_access_users($modules, $user_ids, $course_id){ + foreach ($modules as $module) { + $access_users = self::get_access_modules($course_id, $module->id, $user_ids); + $module->users = $access_users; + } + return $modules; + } + + private function get_access_modules($course_id, $module_id, $user_ids){ + global $DB; + $contextlevel = 70; + list($in_users, $invalues_users) = $DB->get_in_or_equal($user_ids); + $sql = " + SELECT DISTINCT(userid) FROM {logstore_standard_log} a + WHERE courseid = {$course_id} AND contextlevel = {$contextlevel} + AND contextinstanceid = {$module_id} AND userid $in_users + ORDER BY userid; + "; + $result = $DB->get_records_sql($sql, $invalues_users); + $ids = array(); + foreach ($result as $record) { + array_push($ids, (int) $record->userid); + } + return $ids; + } + + private function get_access_modules_summary($modules){ + $summary = array(); + $types = array(); + foreach ($modules as $module) { + $item = new stdClass(); + $item->id = $module->id; + $item->name = $module->name; + $item->type = $module->modname; + $item->users = $module->users; + array_push($summary, $item); + + if (!isset($types[$module->modname])) { + $type_name = $module->modname; + $identifier = "fml_{$module->modname}"; + if (get_string_manager()->string_exists($identifier,"local_fliplearning")) { + $type_name = get_string($identifier,"local_fliplearning"); + } + $element = new stdClass(); + $element->type = $module->modname; + $element->name = $type_name; + $element->show = true; + $types[$module->modname] = $element; + } + } + $types = array_values($types); + $response = new stdClass(); + $response->types = $types; + $response->modules = $summary; + return $response; + } + + public function grade_items() { + $categories = $this->get_grade_categories(); + $items = $this->get_grade_items(); + $items = $this->format_items($items); + $users = $this->get_full_users(); + $items = $this->set_average_max_min_grade($items, $users); + $categories = $this->get_grade_categories_with_items($categories, $items); + + $response = new stdClass(); + $response->categories = $categories; + $response->student_count = count($this->users); + return $response; + } + + private function get_grade_categories_with_items ($categories, $items) { + $categories_items = array(); + foreach ($categories as $category) { + $category_items = $this->get_grade_items_from_category($categories, $items, $category->id); + + $name = $category->fullname; + if (!isset($category->parent)) { + $name = $this->course->fullname; + } + $element = new stdClass(); + $element->name = $name; + $element->items = $category_items; + array_push($categories_items, $element); + } + return $categories_items; + } + + private function get_grade_items_from_category($categories, $items, $categoryid) { + $selected_items = $this->filter_items_by_category($items, $categoryid); + $child_categories = $this->get_child_categories($categories, $categoryid); + foreach ($child_categories as $categoryid) { + $child_items = $this->get_grade_items_from_category($categories, $items, $categoryid); + $selected_items = array_merge($selected_items, $child_items); + } + return $selected_items; + } + + private function filter_items_by_category ($items, $categoryid) { + $selected_items = []; + foreach ($items as $item) { + if ($item->categoryid == $categoryid) { + array_push($selected_items, $item); + } + } + return $selected_items; + } + + private function get_child_categories($categories, $categoryid) { + $child_categories = array(); + foreach ($categories as $category) { + if ($category->parent == $categoryid) { + array_push($child_categories, $category->id); + } + } + return $child_categories; + } + + public function quiz_attempts($weekcode = null){ + if(!self::course_in_transit()){ + return null; + } + if(!self::course_has_users()){ + return null; + } + $week = $this->current_week; + if(!empty($weekcode)){ + $week = self::find_week($weekcode); + } + + $week_modules = self::get_course_modules_from_sections($week->sections); + $quiz_modules = array_filter($week_modules, function($module){ return $module->modname == 'quiz';}); + $response = $this->get_quiz_attempts_summary($quiz_modules); + return $response; + } + + private function get_quiz_attempts_summary($quiz_modules) { + $quizzes = array(); + foreach ($quiz_modules as $module) { + $quiz = new stdClass(); + $quiz->id = $module->instance; + $quiz->moduleid = $module->id; + $quiz->name = $module->name; + $quiz->modname = $module->modname; + + $attempts = new stdClass(); + $attempts->details = $this->get_quiz_attempts($module->instance); + $attempts->questions = $this->get_questions_attempts($module->instance); + + $quiz->attempts = $attempts; + array_push($quizzes, $quiz); + } + return $quizzes; + } + + private function get_quiz_attempts($quizid) { + global $DB; + list($in, $invalues) = $DB->get_in_or_equal($this->users); + $sql = "SELECT id, quiz, userid, attempt, uniqueid, currentpage, state, sumgrades FROM {quiz_attempts} + WHERE state = 'finished' AND sumgrades IS NOT NULL AND quiz = {$quizid} AND userid {$in} + ORDER BY userid, attempt"; + $rows = $DB->get_records_sql($sql, $invalues); + $rows = array_values($rows); + + $sql = "SELECT count(*) as count FROM {quiz_slots} WHERE quizid = ?"; + $result = $DB->get_record_sql($sql, array($quizid)); + + $attempt = new stdClass(); + $attempt->questions = (int) $result->count; + $attempt->users = 0; + $attempt->attempts = 0; + if (count($rows) > 0) { + $previoususerid = $rows[0]->userid; + $previousattempt = $rows[0]->attempt; + $totalusers = 1; + $totalattemps = 1; + foreach ($rows as $row) { + if ($row->userid != $previoususerid) { + $totalusers++; + $totalattemps++; + } else { + if ($row->attempt != $previousattempt) { + $totalattemps++; + } + } + $previousattempt = $row->attempt; + $previoususerid = $row->userid; + } + $attempt->users = $totalusers; + $attempt->attempts = $totalattemps; + } + return $attempt; + } + + private function get_questions_attempts($quizid) { + global $DB; + list($in, $invalues) = $DB->get_in_or_equal($this->users); + $sql = "SELECT qattstep.id as id, quizatt.id as quizattid, quizatt.quiz, quizatt.userid, quizatt.attempt, + quizatt.uniqueid, qatt.id as qattid, qatt.questionid, q.name, qattstep.sequencenumber, qattstep.state + FROM {quiz_attempts} quizatt + JOIN {question_attempts} qatt ON quizatt.uniqueid = qatt.questionusageid + JOIN {question} q ON qatt.questionid= q.id + JOIN {question_attempt_steps} qattstep ON qatt.id = qattstep.questionattemptid + WHERE quizatt.quiz = {$quizid} AND quizatt.state = 'finished' AND quizatt.sumgrades IS NOT NULL + AND q.qtype != 'description' AND quizatt.userid {$in} + ORDER BY quizatt.userid, qatt.id, qattstep.sequencenumber DESC"; + $rows = $DB->get_records_sql($sql, $invalues); + $rows = array_values($rows); + + $questions = array(); + if (count($rows) > 0) { + $qattempts = array(); + $previousqattid = $rows[0]->qattid; + $qasteps = array(); + foreach ($rows as $row) { + if ($row->qattid != $previousqattid) { + $qattempts[$previousqattid] = $qasteps[0]; + $qasteps = array(); + } + $qasteps[] = $row; + $previousqattid = $row->qattid; + } + $qattempts[$previousqattid] = $qasteps[0]; + + + foreach ($qattempts as $attempt) { + if (!isset($questions[$attempt->questionid])) { + $question = array(); + $question["id"] = $attempt->questionid; + $question["name"] = $attempt->name; + $question["total_attempts"] = 1; + $question[$attempt->state] = 1; + $questions[$attempt->questionid] = $question; + } else { + if (!isset($questions[$attempt->questionid][$attempt->state])) { + $questions[$attempt->questionid][$attempt->state] = 1; + } else { + $questions[$attempt->questionid][$attempt->state]++; + } + $questions[$attempt->questionid]["total_attempts"]++; + } + } + $questions = array_values($questions); + } + return $questions; + } + + public function get_dropout_clusters() { + if(!self::course_in_transit()){ + return null; + } + if(!self::course_has_users()){ + return null; + } + + $clusters = $this->get_clusters(); + $response = new stdClass(); + $response->clusters = $clusters; + if (count($clusters)) { + $response->clusters = $clusters; + $start = null; + if(isset($this->course->startdate) && ((int)$this->course->startdate) > 0) { + $start = $this->course->startdate; + } + $end = null; + if(isset($this->course->enddate) && ((int)$this->course->enddate) > 0) { + $end = $this->course->enddate; + } + $enable_completion = false; + if(isset($this->course->enablecompletion) && ((int)$this->course->enablecompletion) == 1) { + $enable_completion = true; + } + + $cms = self::get_course_modules(); + $cms = array_filter($cms, function($cm){ return $cm['modname'] != 'label';}); + $cms = array_values($cms); + + $users = self::get_work_sessions($start, $end); + $users = self::get_progress_table($users, $cms, $enable_completion, true); + + $users_access = $this->get_users_last_access(); + $users = $this->get_users_details($users, $cms, $users_access); + $users = $this->get_users_course_grade($users); + $users = $this->get_users_items_grades($users); + + $response->users = $users; + $response->total_cms = count($cms); + $response->cms = $cms; + $response->weeks = $this->weeks; + $response->sections = $this->current_sections; + } + return $response; + } + + public function get_clusters() { + global $DB; + $sql = "SELECT * FROM {fliplearning_clustering} WHERE courseid = {$this->course->id} AND active = 1"; + $rows = $DB->get_records_sql($sql); + $rows = array_values($rows); + + $clusters = array(); + $cluster_text = get_string("fml_cluster_label", "local_fliplearning"); + foreach ($rows as $row) { + if (!isset($clusters[$row->cluster])) { + $cluster = new stdClass(); + $cluster->name = $cluster_text." ".($row->cluster+1); + $cluster->number = $row->cluster; + $cluster->users = array(); + array_push($cluster->users, $row->userid); + array_push($clusters, $cluster); + } else { + array_push($clusters[$row->cluster]->users, $row->userid); + } + } + return $clusters; + } + + private function get_users_details($users, $cms, $users_access) { + date_default_timezone_set(self::get_timezone()); + $total_cms = count($cms); + if ($total_cms > 0) { + foreach ($users as $user) { + $user->course_lastaccess = $this->get_user_last_access($user->id, $users_access); + } + } + return $users; + } + + private function get_user_last_access($userid, $users_access) { + $access = new stdClass(); + $access->label = get_string("fml_dropout_user_never_access", "local_fliplearning"); + $access->timestamp = 0; + if (isset($users_access[$userid])) { + $timestamp = (int)$users_access[$userid]->timeaccess; + $str = strtolower(date("D", $timestamp)); + $day_text = get_string("fml_$str", "local_fliplearning"); + $month_day = date("d", $timestamp); + $str = strtolower(date("M", $timestamp)); + $month_text = get_string("fml_$str", "local_fliplearning"); + $year = date("Y", $timestamp); + $hour = date("h", $timestamp); + $min = date("i", $timestamp); + $form = date("A", $timestamp); + $timeago = $this->time_elapsed_string($timestamp); + $str = "$day_text, $month_day $month_text $year, $hour:$min $form ($timeago)"; + $access->timestamp = $timestamp; + $access->label = $str; + } + return $access; + } + + private function time_elapsed_string($timestamp) { + $now = (int) date("U"); + $diff = $now - $timestamp; + $ago = get_string("fml_ago", "local_fliplearning"); + + $interval = $diff / 86400; + if ($interval >= 1) { + $interval = floor($interval); + $text = get_string("fml_days", "local_fliplearning"); + if ($interval == 1) { + $text = get_string("fml_day", "local_fliplearning"); + } + return "$interval $text $ago"; + } + + $interval = $diff / 3600; + if ($interval >= 1) { + $interval = floor($interval); + $text = get_string("fml_hours", "local_fliplearning"); + if ($interval == 1) { + $text = get_string("fml_hour", "local_fliplearning"); + } + return "$interval $text $ago"; + } + + $interval = $diff / 60; + if ($interval >= 1) { + $interval = floor($interval); + $text = get_string("fml_minutes", "local_fliplearning"); + if ($interval == 1) { + $text = get_string("fml_minute", "local_fliplearning"); + } + return "$interval $text $ago"; + } + + if ($diff >= 1) { + $text = get_string("fml_seconds", "local_fliplearning"); + if ($diff == 1) { + $text = get_string("fml_second", "local_fliplearning"); + } + return "$diff $text $ago"; + } + + $text = get_string("fml_now", "local_fliplearning"); + return "$text"; + } + +} diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/css/alertify.css b/NMP 3.0 Moodle Pluggin/fliplearning/css/alertify.css new file mode 100644 index 0000000000000000000000000000000000000000..2eaad994b646f27bdd4c8aa7922bbe23566ba4f1 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/css/alertify.css @@ -0,0 +1,938 @@ +/** + * alertifyjs 1.11.4 http://alertifyjs.com + * AlertifyJS is a javascript framework for developing pretty browser dialogs and notifications. + * Copyright 2019 Mohammad Younes <Mohammad@alertifyjs.com> (http://alertifyjs.com) + * Licensed under GPL 3 <https://opensource.org/licenses/gpl-3.0>*/ +.alertify .ajs-dimmer { + position: fixed; + z-index: 1981; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 0; + margin: 0; + background-color: #252525; + opacity: .5; +} +.alertify .ajs-modal { + position: fixed; + top: 0; + right: 0; + left: 0; + bottom: 0; + padding: 0; + overflow-y: auto; + z-index: 1981; +} +.alertify .ajs-dialog { + position: relative; + margin: 5% auto; + min-height: 110px; + max-width: 500px; + padding: 24px 24px 0 24px; + outline: 0; + background-color: #fff; +} +.alertify .ajs-dialog.ajs-capture:before { + content: ''; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + display: block; + z-index: 1; +} +.alertify .ajs-reset { + position: absolute !important; + display: inline !important; + width: 0 !important; + height: 0 !important; + opacity: 0 !important; +} +.alertify .ajs-commands { + position: absolute; + right: 4px; + margin: -14px 24px 0 0; + z-index: 2; +} +.alertify .ajs-commands button { + display: none; + width: 10px; + height: 10px; + margin-left: 10px; + padding: 10px; + border: 0; + background-color: transparent; + background-repeat: no-repeat; + background-position: center; + cursor: pointer; +} +.alertify .ajs-commands button.ajs-close { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAh0lEQVQYlY2QsQ0EIQwEB9cBAR1CJUaI/gigDnwR6NBL/7/xWLNrZ2b8EwGotVpr7eOitWa1VjugiNB7R1UPrKrWe0dEAHBbXUqxMQbeewDmnHjvyTm7C3zDwAUd9c63YQdUVdu6EAJzzquz7HXvTiklt+H9DQFYaxFjvDqllFyMkbXWvfpXHjJrWFgdBq/hAAAAAElFTkSuQmCC); +} +.alertify .ajs-commands button.ajs-maximize { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAOUlEQVQYlWP8//8/AzGAhYGBgaG4uBiv6t7eXkYmooxjYGAgWiELsvHYFMCcRX2rSXcjoSBiJDbAAeD+EGu+8BZcAAAAAElFTkSuQmCC); +} +.alertify .ajs-header { + margin: -24px; + margin-bottom: 0; + padding: 16px 24px; + background-color: #fff; +} +.alertify .ajs-body { + min-height: 56px; +} +.alertify .ajs-body .ajs-content { + padding: 16px 24px 16px 16px; +} +.alertify .ajs-footer { + padding: 4px; + margin-left: -24px; + margin-right: -24px; + min-height: 43px; + background-color: #fff; +} +.alertify .ajs-footer .ajs-buttons.ajs-primary { + text-align: right; +} +.alertify .ajs-footer .ajs-buttons.ajs-primary .ajs-button { + margin: 4px; +} +.alertify .ajs-footer .ajs-buttons.ajs-auxiliary { + float: left; + clear: none; + text-align: left; +} +.alertify .ajs-footer .ajs-buttons.ajs-auxiliary .ajs-button { + margin: 4px; +} +.alertify .ajs-footer .ajs-buttons .ajs-button { + min-width: 88px; + min-height: 35px; +} +.alertify .ajs-handle { + position: absolute; + display: none; + width: 10px; + height: 10px; + right: 0; + bottom: 0; + z-index: 1; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMS8xNEDQYmMAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAQ0lEQVQYlaXNMQoAIAxD0dT7H657l0KX3iJuUlBUNOsPPCGJm7VDp6ryeMxMuDsAQH7owW3pyn3RS26iKxERMLN3ugOaAkaL3sWVigAAAABJRU5ErkJggg==); + -webkit-transform: scaleX(1) /*rtl:scaleX(-1)*/; + transform: scaleX(1) /*rtl:scaleX(-1)*/; + cursor: se-resize; +} +.alertify.ajs-no-overflow .ajs-body .ajs-content { + overflow: hidden !important; +} +.alertify.ajs-no-padding.ajs-maximized .ajs-body .ajs-content { + left: 0; + right: 0; + padding: 0; +} +.alertify.ajs-no-padding:not(.ajs-maximized) .ajs-body { + margin-left: -24px; + margin-right: -24px; +} +.alertify.ajs-no-padding:not(.ajs-maximized) .ajs-body .ajs-content { + padding: 0; +} +.alertify.ajs-no-padding.ajs-resizable .ajs-body .ajs-content { + left: 0; + right: 0; +} +.alertify.ajs-maximizable .ajs-commands button.ajs-maximize, +.alertify.ajs-maximizable .ajs-commands button.ajs-restore { + display: inline-block; +} +.alertify.ajs-closable .ajs-commands button.ajs-close { + display: inline-block; +} +.alertify.ajs-maximized .ajs-dialog { + width: 100% !important; + height: 100% !important; + max-width: none !important; + margin: 0 auto !important; + top: 0 !important; + left: 0 !important; +} +.alertify.ajs-maximized.ajs-modeless .ajs-modal { + position: fixed !important; + min-height: 100% !important; + max-height: none !important; + margin: 0 !important; +} +.alertify.ajs-maximized .ajs-commands button.ajs-maximize { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAASklEQVQYlZWQ0QkAMQhDtXRincOZX78KVtrDCwgqJNEoIB3MPLj7lRUROlpyVXGzby6zWuY+kz6tj5sBMTMAyVV3/595RbOh3cAXsww1raeiOcoAAAAASUVORK5CYII=); +} +.alertify.ajs-resizable .ajs-dialog, +.alertify.ajs-maximized .ajs-dialog { + padding: 0; +} +.alertify.ajs-resizable .ajs-commands, +.alertify.ajs-maximized .ajs-commands { + margin: 14px 24px 0 0; +} +.alertify.ajs-resizable .ajs-header, +.alertify.ajs-maximized .ajs-header { + position: absolute; + top: 0; + left: 0; + right: 0; + margin: 0; + padding: 16px 24px; +} +.alertify.ajs-resizable .ajs-body, +.alertify.ajs-maximized .ajs-body { + min-height: 224px; + display: inline-block; +} +.alertify.ajs-resizable .ajs-body .ajs-content, +.alertify.ajs-maximized .ajs-body .ajs-content { + position: absolute; + top: 50px; + right: 24px; + bottom: 50px; + left: 24px; + overflow: auto; +} +.alertify.ajs-resizable .ajs-footer, +.alertify.ajs-maximized .ajs-footer { + position: absolute; + left: 0; + right: 0; + bottom: 0; + margin: 0; +} +.alertify.ajs-resizable:not(.ajs-maximized) .ajs-dialog { + min-width: 548px; +} +.alertify.ajs-resizable:not(.ajs-maximized) .ajs-handle { + display: block; +} +.alertify.ajs-movable:not(.ajs-maximized) .ajs-header { + cursor: move; +} +.alertify.ajs-modeless .ajs-dimmer, +.alertify.ajs-modeless .ajs-reset { + display: none; +} +.alertify.ajs-modeless .ajs-modal { + overflow: visible; + max-width: none; + max-height: 0; +} +.alertify.ajs-modeless.ajs-pinnable .ajs-commands button.ajs-pin { + display: inline-block; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAQklEQVQYlcWPMQ4AIAwCqU9u38GbcbHRWN1MvKQDhQFMEpKImGJA0gCgnYw0V0rwxseg5erT4oSkQVI5d9f+e9+xA0NbLpWfitPXAAAAAElFTkSuQmCC); +} +.alertify.ajs-modeless.ajs-unpinned .ajs-modal { + position: absolute; +} +.alertify.ajs-modeless.ajs-unpinned .ajs-commands button.ajs-pin { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAO0lEQVQYlWP8//8/AzGAiShV6AqLi4txGs+CLoBLMYbC3t5eRmyaWfBZhwwYkX2NTxPRvibKjRhW4wMAhxkYGbLu3pEAAAAASUVORK5CYII=); +} +.alertify.ajs-modeless:not(.ajs-unpinned) .ajs-body { + max-height: 500px; + overflow: auto; +} +.alertify.ajs-basic .ajs-header { + opacity: 0; +} +.alertify.ajs-basic .ajs-footer { + visibility: hidden; +} +.alertify.ajs-frameless .ajs-header { + position: absolute; + top: 0; + left: 0; + right: 0; + min-height: 60px; + margin: 0; + padding: 0; + opacity: 0; + z-index: 1; +} +.alertify.ajs-frameless .ajs-footer { + display: none; +} +.alertify.ajs-frameless .ajs-body .ajs-content { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; +} +.alertify.ajs-frameless:not(.ajs-resizable) .ajs-dialog { + padding-top: 0; +} +.alertify.ajs-frameless:not(.ajs-resizable) .ajs-dialog .ajs-commands { + margin-top: 0; +} +.ajs-no-overflow { + overflow: hidden !important; + outline: none; +} +.ajs-no-overflow.ajs-fixed { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + overflow-y: scroll!important; +} +.ajs-no-selection, +.ajs-no-selection * { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +@media screen and (max-width: 568px) { + .alertify .ajs-dialog { + min-width: 150px; + } + .alertify:not(.ajs-maximized) .ajs-modal { + padding: 0 5%; + } + .alertify:not(.ajs-maximized).ajs-resizable .ajs-dialog { + min-width: initial; + min-width: auto /*IE fallback*/; + } +} +@-moz-document url-prefix() { + .alertify button:focus { + outline: 1px dotted #3593D2; + } +} +.alertify .ajs-dimmer, +.alertify .ajs-modal { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + -webkit-transition-property: opacity, visibility; + transition-property: opacity, visibility; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transition-duration: 250ms; + transition-duration: 250ms; +} +.alertify.ajs-hidden .ajs-dimmer, +.alertify.ajs-hidden .ajs-modal { + visibility: hidden; + opacity: 0; +} +.alertify.ajs-in:not(.ajs-hidden) .ajs-dialog { + -webkit-animation-duration: 500ms; + animation-duration: 500ms; +} +.alertify.ajs-out.ajs-hidden .ajs-dialog { + -webkit-animation-duration: 250ms; + animation-duration: 250ms; +} +.alertify .ajs-dialog.ajs-shake { + -webkit-animation-name: ajs-shake; + animation-name: ajs-shake; + -webkit-animation-duration: .1s; + animation-duration: .1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} +@-webkit-keyframes ajs-shake { + 0%, + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + 10%, + 30%, + 50%, + 70%, + 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + 20%, + 40%, + 60%, + 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} +@keyframes ajs-shake { + 0%, + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + 10%, + 30%, + 50%, + 70%, + 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + 20%, + 40%, + 60%, + 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} +.alertify.ajs-slide.ajs-in:not(.ajs-hidden) .ajs-dialog { + -webkit-animation-name: ajs-slideIn; + animation-name: ajs-slideIn; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275); +} +.alertify.ajs-slide.ajs-out.ajs-hidden .ajs-dialog { + -webkit-animation-name: ajs-slideOut; + animation-name: ajs-slideOut; + -webkit-animation-timing-function: cubic-bezier(0.6, -0.28, 0.735, 0.045); + animation-timing-function: cubic-bezier(0.6, -0.28, 0.735, 0.045); +} +.alertify.ajs-zoom.ajs-in:not(.ajs-hidden) .ajs-dialog { + -webkit-animation-name: ajs-zoomIn; + animation-name: ajs-zoomIn; +} +.alertify.ajs-zoom.ajs-out.ajs-hidden .ajs-dialog { + -webkit-animation-name: ajs-zoomOut; + animation-name: ajs-zoomOut; +} +.alertify.ajs-fade.ajs-in:not(.ajs-hidden) .ajs-dialog { + -webkit-animation-name: ajs-fadeIn; + animation-name: ajs-fadeIn; +} +.alertify.ajs-fade.ajs-out.ajs-hidden .ajs-dialog { + -webkit-animation-name: ajs-fadeOut; + animation-name: ajs-fadeOut; +} +.alertify.ajs-pulse.ajs-in:not(.ajs-hidden) .ajs-dialog { + -webkit-animation-name: ajs-pulseIn; + animation-name: ajs-pulseIn; +} +.alertify.ajs-pulse.ajs-out.ajs-hidden .ajs-dialog { + -webkit-animation-name: ajs-pulseOut; + animation-name: ajs-pulseOut; +} +.alertify.ajs-flipx.ajs-in:not(.ajs-hidden) .ajs-dialog { + -webkit-animation-name: ajs-flipInX; + animation-name: ajs-flipInX; +} +.alertify.ajs-flipx.ajs-out.ajs-hidden .ajs-dialog { + -webkit-animation-name: ajs-flipOutX; + animation-name: ajs-flipOutX; +} +.alertify.ajs-flipy.ajs-in:not(.ajs-hidden) .ajs-dialog { + -webkit-animation-name: ajs-flipInY; + animation-name: ajs-flipInY; +} +.alertify.ajs-flipy.ajs-out.ajs-hidden .ajs-dialog { + -webkit-animation-name: ajs-flipOutY; + animation-name: ajs-flipOutY; +} +@-webkit-keyframes ajs-pulseIn { + 0%, + 20%, + 40%, + 60%, + 80%, + 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + 0% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + 40% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); + } + 80% { + -webkit-transform: scale3d(0.97, 0.97, 0.97); + transform: scale3d(0.97, 0.97, 0.97); + } + 100% { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} +@keyframes ajs-pulseIn { + 0%, + 20%, + 40%, + 60%, + 80%, + 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + 0% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + 40% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); + } + 80% { + -webkit-transform: scale3d(0.97, 0.97, 0.97); + transform: scale3d(0.97, 0.97, 0.97); + } + 100% { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} +@-webkit-keyframes ajs-pulseOut { + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); + } + 50%, + 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } +} +@keyframes ajs-pulseOut { + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); + } + 50%, + 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } +} +@-webkit-keyframes ajs-zoomIn { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.25, 0.25, 0.25); + transform: scale3d(0.25, 0.25, 0.25); + } + 100% { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} +@keyframes ajs-zoomIn { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.25, 0.25, 0.25); + transform: scale3d(0.25, 0.25, 0.25); + } + 100% { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} +@-webkit-keyframes ajs-zoomOut { + 0% { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.25, 0.25, 0.25); + transform: scale3d(0.25, 0.25, 0.25); + } +} +@keyframes ajs-zoomOut { + 0% { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.25, 0.25, 0.25); + transform: scale3d(0.25, 0.25, 0.25); + } +} +@-webkit-keyframes ajs-fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@keyframes ajs-fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@-webkit-keyframes ajs-fadeOut { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} +@keyframes ajs-fadeOut { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} +@-webkit-keyframes ajs-flipInX { + 0% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + } + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; + } + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + } + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} +@keyframes ajs-flipInX { + 0% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + } + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; + } + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + } + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} +@-webkit-keyframes ajs-flipOutX { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; + } +} +@keyframes ajs-flipOutX { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; + } +} +@-webkit-keyframes ajs-flipInY { + 0% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + } + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; + } + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + } + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} +@keyframes ajs-flipInY { + 0% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + } + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; + } + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + } + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} +@-webkit-keyframes ajs-flipOutY { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; + } +} +@keyframes ajs-flipOutY { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; + } +} +@-webkit-keyframes ajs-slideIn { + 0% { + margin-top: -100%; + } + 100% { + margin-top: 5%; + } +} +@keyframes ajs-slideIn { + 0% { + margin-top: -100%; + } + 100% { + margin-top: 5%; + } +} +@-webkit-keyframes ajs-slideOut { + 0% { + margin-top: 5%; + } + 100% { + margin-top: -100%; + } +} +@keyframes ajs-slideOut { + 0% { + margin-top: 5%; + } + 100% { + margin-top: -100%; + } +} +.alertify-notifier { + position: fixed; + width: 0; + overflow: visible; + z-index: 1982; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); +} +.alertify-notifier .ajs-message { + position: relative; + width: 260px; + max-height: 0; + padding: 0; + opacity: 0; + margin: 0; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + -webkit-transition-duration: 250ms; + transition-duration: 250ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; +} +.alertify-notifier .ajs-message.ajs-visible { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275); + transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275); + opacity: 1; + max-height: 100%; + padding: 15px; + margin-top: 10px; +} +.alertify-notifier .ajs-message.ajs-success { + background: rgba(91, 189, 114, 0.95); +} +.alertify-notifier .ajs-message.ajs-error { + background: rgba(217, 92, 92, 0.95); +} +.alertify-notifier .ajs-message.ajs-warning { + background: rgba(252, 248, 215, 0.95); +} +.alertify-notifier .ajs-message .ajs-close { + position: absolute; + top: 0; + right: 0; + width: 16px; + height: 16px; + cursor: pointer; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAABGdBTUEAALGPC/xhBQAAAFBJREFUGBl1j0EKADEIA+ve/P9f9bh1hEihNBfjVCO1v7RKVqJK4h8gM5cAPR42AkQEpSXPwMTyoi13n5N9YqJehm3Fnr7nL1D0ZEbD5OubGyC7a9gx+9eNAAAAAElFTkSuQmCC); + background-repeat: no-repeat; + background-position: center center; + background-color: rgba(0, 0, 0, 0.5); + border-top-right-radius: 2px; +} +.alertify-notifier.ajs-top { + top: 10px; +} +.alertify-notifier.ajs-bottom { + bottom: 10px; +} +.alertify-notifier.ajs-right { + right: 10px; +} +.alertify-notifier.ajs-right .ajs-message { + right: -320px; +} +.alertify-notifier.ajs-right .ajs-message.ajs-visible { + right: 290px; +} +.alertify-notifier.ajs-left { + left: 10px; +} +.alertify-notifier.ajs-left .ajs-message { + left: -300px; +} +.alertify-notifier.ajs-left .ajs-message.ajs-visible { + left: 0; +} +.alertify-notifier.ajs-center { + left: 50%; +} +.alertify-notifier.ajs-center .ajs-message { + -webkit-transform: translateX(-50%); + transform: translateX(-50%); +} +.alertify-notifier.ajs-center .ajs-message.ajs-visible { + left: 50%; + -webkit-transition-timing-function: cubic-bezier(0.57, 0.43, 0.1, 0.65); + transition-timing-function: cubic-bezier(0.57, 0.43, 0.1, 0.65); +} +.alertify-notifier.ajs-center.ajs-top .ajs-message { + top: -300px; +} +.alertify-notifier.ajs-center.ajs-top .ajs-message.ajs-visible { + top: 0; +} +.alertify-notifier.ajs-center.ajs-bottom .ajs-message { + bottom: -300px; +} +.alertify-notifier.ajs-center.ajs-bottom .ajs-message.ajs-visible { + bottom: 0; +} diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/css/googlefonts.css b/NMP 3.0 Moodle Pluggin/fliplearning/css/googlefonts.css new file mode 100644 index 0000000000000000000000000000000000000000..2f097ca529c918bca14da07a7c73e7c1df351b30 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/css/googlefonts.css @@ -0,0 +1,336 @@ +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 100; + src: local('Roboto Thin'), local('Roboto-Thin'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1MmgVxFIzIFKw.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 100; + src: local('Roboto Thin'), local('Roboto-Thin'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1MmgVxMIzIFKw.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 100; + src: local('Roboto Thin'), local('Roboto-Thin'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1MmgVxEIzIFKw.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 100; + src: local('Roboto Thin'), local('Roboto-Thin'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1MmgVxLIzIFKw.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 100; + src: local('Roboto Thin'), local('Roboto-Thin'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1MmgVxHIzIFKw.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 100; + src: local('Roboto Thin'), local('Roboto-Thin'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1MmgVxGIzIFKw.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 100; + src: local('Roboto Thin'), local('Roboto-Thin'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1MmgVxIIzI.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmSU5fBBc4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu72xKOzY.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu5mxKOzY.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu7mxKOzY.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu4WxKOzY.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu7WxKOzY.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9fCRc4EsA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9fABc4EsA.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9fCBc4EsA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9fBxc4EsA.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9fCxc4EsA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9fChc4EsA.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9fBBc4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfBBc4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmYUtfCRc4EsA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmYUtfABc4EsA.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmYUtfCBc4EsA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmYUtfBxc4EsA.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmYUtfCxc4EsA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmYUtfChc4EsA.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmYUtfBBc4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/css/materialdesignicons.css b/NMP 3.0 Moodle Pluggin/fliplearning/css/materialdesignicons.css new file mode 100644 index 0000000000000000000000000000000000000000..ed9afe17a2126e23ac18d703285c1bc72aa03a02 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/css/materialdesignicons.css @@ -0,0 +1,3 @@ +@font-face{font-family:"Material Design Icons";src:url("../fonts/materialdesignicons-webfont.eot?v=3.9.97");src:url("../fonts/materialdesignicons-webfont.eot?#iefix&v=3.9.97") format("embedded-opentype"),url("../fonts/materialdesignicons-webfont.woff2?v=3.9.97") format("woff2"),url("../fonts/materialdesignicons-webfont.woff?v=3.9.97") format("woff"),url("../fonts/materialdesignicons-webfont.ttf?v=3.9.97") format("truetype");font-weight:normal;font-style:normal}.mdi:before,.mdi-set{display:inline-block;font:normal normal normal 24px/1 "Material Design Icons";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.mdi-access-point::before{content:"\F002"}.mdi-access-point-network::before{content:"\F003"}.mdi-access-point-network-off::before{content:"\FBBD"}.mdi-account::before{content:"\F004"}.mdi-account-alert::before{content:"\F005"}.mdi-account-alert-outline::before{content:"\FB2C"}.mdi-account-arrow-left::before{content:"\FB2D"}.mdi-account-arrow-left-outline::before{content:"\FB2E"}.mdi-account-arrow-right::before{content:"\FB2F"}.mdi-account-arrow-right-outline::before{content:"\FB30"}.mdi-account-badge::before{content:"\FD83"}.mdi-account-badge-alert::before{content:"\FD84"}.mdi-account-badge-alert-outline::before{content:"\FD85"}.mdi-account-badge-horizontal::before{content:"\FDF0"}.mdi-account-badge-horizontal-outline::before{content:"\FDF1"}.mdi-account-badge-outline::before{content:"\FD86"}.mdi-account-box::before{content:"\F006"}.mdi-account-box-multiple::before{content:"\F933"}.mdi-account-box-outline::before{content:"\F007"}.mdi-account-card-details::before{content:"\F5D2"}.mdi-account-card-details-outline::before{content:"\FD87"}.mdi-account-check::before{content:"\F008"}.mdi-account-check-outline::before{content:"\FBBE"}.mdi-account-child::before{content:"\FA88"}.mdi-account-child-circle::before{content:"\FA89"}.mdi-account-circle::before{content:"\F009"}.mdi-account-circle-outline::before{content:"\FB31"}.mdi-account-clock::before{content:"\FB32"}.mdi-account-clock-outline::before{content:"\FB33"}.mdi-account-convert::before{content:"\F00A"}.mdi-account-details::before{content:"\F631"}.mdi-account-edit::before{content:"\F6BB"}.mdi-account-group::before{content:"\F848"}.mdi-account-group-outline::before{content:"\FB34"}.mdi-account-heart::before{content:"\F898"}.mdi-account-heart-outline::before{content:"\FBBF"}.mdi-account-key::before{content:"\F00B"}.mdi-account-key-outline::before{content:"\FBC0"}.mdi-account-minus::before{content:"\F00D"}.mdi-account-minus-outline::before{content:"\FAEB"}.mdi-account-multiple::before{content:"\F00E"}.mdi-account-multiple-check::before{content:"\F8C4"}.mdi-account-multiple-minus::before{content:"\F5D3"}.mdi-account-multiple-minus-outline::before{content:"\FBC1"}.mdi-account-multiple-outline::before{content:"\F00F"}.mdi-account-multiple-plus::before{content:"\F010"}.mdi-account-multiple-plus-outline::before{content:"\F7FF"}.mdi-account-network::before{content:"\F011"}.mdi-account-network-outline::before{content:"\FBC2"}.mdi-account-off::before{content:"\F012"}.mdi-account-off-outline::before{content:"\FBC3"}.mdi-account-outline::before{content:"\F013"}.mdi-account-plus::before{content:"\F014"}.mdi-account-plus-outline::before{content:"\F800"}.mdi-account-question::before{content:"\FB35"}.mdi-account-question-outline::before{content:"\FB36"}.mdi-account-remove::before{content:"\F015"}.mdi-account-remove-outline::before{content:"\FAEC"}.mdi-account-search::before{content:"\F016"}.mdi-account-search-outline::before{content:"\F934"}.mdi-account-settings::before{content:"\F630"}.mdi-account-star::before{content:"\F017"}.mdi-account-star-outline::before{content:"\FBC4"}.mdi-account-supervisor::before{content:"\FA8A"}.mdi-account-supervisor-circle::before{content:"\FA8B"}.mdi-account-switch::before{content:"\F019"}.mdi-account-tie::before{content:"\FCBF"}.mdi-accusoft::before{content:"\F849"}.mdi-adchoices::before{content:"\FD1E"}.mdi-adjust::before{content:"\F01A"}.mdi-adobe::before{content:"\F935"}.mdi-air-conditioner::before{content:"\F01B"}.mdi-air-filter::before{content:"\FD1F"}.mdi-air-horn::before{content:"\FD88"}.mdi-air-purifier::before{content:"\FD20"}.mdi-airbag::before{content:"\FBC5"}.mdi-airballoon::before{content:"\F01C"}.mdi-airplane::before{content:"\F01D"}.mdi-airplane-landing::before{content:"\F5D4"}.mdi-airplane-off::before{content:"\F01E"}.mdi-airplane-takeoff::before{content:"\F5D5"}.mdi-airplay::before{content:"\F01F"}.mdi-airport::before{content:"\F84A"}.mdi-alarm::before{content:"\F020"}.mdi-alarm-bell::before{content:"\F78D"}.mdi-alarm-check::before{content:"\F021"}.mdi-alarm-light::before{content:"\F78E"}.mdi-alarm-light-outline::before{content:"\FBC6"}.mdi-alarm-multiple::before{content:"\F022"}.mdi-alarm-note::before{content:"\FE8E"}.mdi-alarm-note-off::before{content:"\FE8F"}.mdi-alarm-off::before{content:"\F023"}.mdi-alarm-plus::before{content:"\F024"}.mdi-alarm-snooze::before{content:"\F68D"}.mdi-album::before{content:"\F025"}.mdi-alert::before{content:"\F026"}.mdi-alert-box::before{content:"\F027"}.mdi-alert-box-outline::before{content:"\FCC0"}.mdi-alert-circle::before{content:"\F028"}.mdi-alert-circle-outline::before{content:"\F5D6"}.mdi-alert-decagram::before{content:"\F6BC"}.mdi-alert-decagram-outline::before{content:"\FCC1"}.mdi-alert-octagon::before{content:"\F029"}.mdi-alert-octagon-outline::before{content:"\FCC2"}.mdi-alert-octagram::before{content:"\F766"}.mdi-alert-octagram-outline::before{content:"\FCC3"}.mdi-alert-outline::before{content:"\F02A"}.mdi-alien::before{content:"\F899"}.mdi-all-inclusive::before{content:"\F6BD"}.mdi-alpha::before{content:"\F02B"}.mdi-alpha-a::before{content:"\41"}.mdi-alpha-a-box::before{content:"\FAED"}.mdi-alpha-a-box-outline::before{content:"\FBC7"}.mdi-alpha-a-circle::before{content:"\FBC8"}.mdi-alpha-a-circle-outline::before{content:"\FBC9"}.mdi-alpha-b::before{content:"\42"}.mdi-alpha-b-box::before{content:"\FAEE"}.mdi-alpha-b-box-outline::before{content:"\FBCA"}.mdi-alpha-b-circle::before{content:"\FBCB"}.mdi-alpha-b-circle-outline::before{content:"\FBCC"}.mdi-alpha-c::before{content:"\43"}.mdi-alpha-c-box::before{content:"\FAEF"}.mdi-alpha-c-box-outline::before{content:"\FBCD"}.mdi-alpha-c-circle::before{content:"\FBCE"}.mdi-alpha-c-circle-outline::before{content:"\FBCF"}.mdi-alpha-d::before{content:"\44"}.mdi-alpha-d-box::before{content:"\FAF0"}.mdi-alpha-d-box-outline::before{content:"\FBD0"}.mdi-alpha-d-circle::before{content:"\FBD1"}.mdi-alpha-d-circle-outline::before{content:"\FBD2"}.mdi-alpha-e::before{content:"\45"}.mdi-alpha-e-box::before{content:"\FAF1"}.mdi-alpha-e-box-outline::before{content:"\FBD3"}.mdi-alpha-e-circle::before{content:"\FBD4"}.mdi-alpha-e-circle-outline::before{content:"\FBD5"}.mdi-alpha-f::before{content:"\46"}.mdi-alpha-f-box::before{content:"\FAF2"}.mdi-alpha-f-box-outline::before{content:"\FBD6"}.mdi-alpha-f-circle::before{content:"\FBD7"}.mdi-alpha-f-circle-outline::before{content:"\FBD8"}.mdi-alpha-g::before{content:"\47"}.mdi-alpha-g-box::before{content:"\FAF3"}.mdi-alpha-g-box-outline::before{content:"\FBD9"}.mdi-alpha-g-circle::before{content:"\FBDA"}.mdi-alpha-g-circle-outline::before{content:"\FBDB"}.mdi-alpha-h::before{content:"\48"}.mdi-alpha-h-box::before{content:"\FAF4"}.mdi-alpha-h-box-outline::before{content:"\FBDC"}.mdi-alpha-h-circle::before{content:"\FBDD"}.mdi-alpha-h-circle-outline::before{content:"\FBDE"}.mdi-alpha-i::before{content:"\49"}.mdi-alpha-i-box::before{content:"\FAF5"}.mdi-alpha-i-box-outline::before{content:"\FBDF"}.mdi-alpha-i-circle::before{content:"\FBE0"}.mdi-alpha-i-circle-outline::before{content:"\FBE1"}.mdi-alpha-j::before{content:"\4A"}.mdi-alpha-j-box::before{content:"\FAF6"}.mdi-alpha-j-box-outline::before{content:"\FBE2"}.mdi-alpha-j-circle::before{content:"\FBE3"}.mdi-alpha-j-circle-outline::before{content:"\FBE4"}.mdi-alpha-k::before{content:"\4B"}.mdi-alpha-k-box::before{content:"\FAF7"}.mdi-alpha-k-box-outline::before{content:"\FBE5"}.mdi-alpha-k-circle::before{content:"\FBE6"}.mdi-alpha-k-circle-outline::before{content:"\FBE7"}.mdi-alpha-l::before{content:"\4C"}.mdi-alpha-l-box::before{content:"\FAF8"}.mdi-alpha-l-box-outline::before{content:"\FBE8"}.mdi-alpha-l-circle::before{content:"\FBE9"}.mdi-alpha-l-circle-outline::before{content:"\FBEA"}.mdi-alpha-m::before{content:"\4D"}.mdi-alpha-m-box::before{content:"\FAF9"}.mdi-alpha-m-box-outline::before{content:"\FBEB"}.mdi-alpha-m-circle::before{content:"\FBEC"}.mdi-alpha-m-circle-outline::before{content:"\FBED"}.mdi-alpha-n::before{content:"\4E"}.mdi-alpha-n-box::before{content:"\FAFA"}.mdi-alpha-n-box-outline::before{content:"\FBEE"}.mdi-alpha-n-circle::before{content:"\FBEF"}.mdi-alpha-n-circle-outline::before{content:"\FBF0"}.mdi-alpha-o::before{content:"\4F"}.mdi-alpha-o-box::before{content:"\FAFB"}.mdi-alpha-o-box-outline::before{content:"\FBF1"}.mdi-alpha-o-circle::before{content:"\FBF2"}.mdi-alpha-o-circle-outline::before{content:"\FBF3"}.mdi-alpha-p::before{content:"\50"}.mdi-alpha-p-box::before{content:"\FAFC"}.mdi-alpha-p-box-outline::before{content:"\FBF4"}.mdi-alpha-p-circle::before{content:"\FBF5"}.mdi-alpha-p-circle-outline::before{content:"\FBF6"}.mdi-alpha-q::before{content:"\51"}.mdi-alpha-q-box::before{content:"\FAFD"}.mdi-alpha-q-box-outline::before{content:"\FBF7"}.mdi-alpha-q-circle::before{content:"\FBF8"}.mdi-alpha-q-circle-outline::before{content:"\FBF9"}.mdi-alpha-r::before{content:"\52"}.mdi-alpha-r-box::before{content:"\FAFE"}.mdi-alpha-r-box-outline::before{content:"\FBFA"}.mdi-alpha-r-circle::before{content:"\FBFB"}.mdi-alpha-r-circle-outline::before{content:"\FBFC"}.mdi-alpha-s::before{content:"\53"}.mdi-alpha-s-box::before{content:"\FAFF"}.mdi-alpha-s-box-outline::before{content:"\FBFD"}.mdi-alpha-s-circle::before{content:"\FBFE"}.mdi-alpha-s-circle-outline::before{content:"\FBFF"}.mdi-alpha-t::before{content:"\54"}.mdi-alpha-t-box::before{content:"\FB00"}.mdi-alpha-t-box-outline::before{content:"\FC00"}.mdi-alpha-t-circle::before{content:"\FC01"}.mdi-alpha-t-circle-outline::before{content:"\FC02"}.mdi-alpha-u::before{content:"\55"}.mdi-alpha-u-box::before{content:"\FB01"}.mdi-alpha-u-box-outline::before{content:"\FC03"}.mdi-alpha-u-circle::before{content:"\FC04"}.mdi-alpha-u-circle-outline::before{content:"\FC05"}.mdi-alpha-v::before{content:"\56"}.mdi-alpha-v-box::before{content:"\FB02"}.mdi-alpha-v-box-outline::before{content:"\FC06"}.mdi-alpha-v-circle::before{content:"\FC07"}.mdi-alpha-v-circle-outline::before{content:"\FC08"}.mdi-alpha-w::before{content:"\57"}.mdi-alpha-w-box::before{content:"\FB03"}.mdi-alpha-w-box-outline::before{content:"\FC09"}.mdi-alpha-w-circle::before{content:"\FC0A"}.mdi-alpha-w-circle-outline::before{content:"\FC0B"}.mdi-alpha-x::before{content:"\58"}.mdi-alpha-x-box::before{content:"\FB04"}.mdi-alpha-x-box-outline::before{content:"\FC0C"}.mdi-alpha-x-circle::before{content:"\FC0D"}.mdi-alpha-x-circle-outline::before{content:"\FC0E"}.mdi-alpha-y::before{content:"\59"}.mdi-alpha-y-box::before{content:"\FB05"}.mdi-alpha-y-box-outline::before{content:"\FC0F"}.mdi-alpha-y-circle::before{content:"\FC10"}.mdi-alpha-y-circle-outline::before{content:"\FC11"}.mdi-alpha-z::before{content:"\5A"}.mdi-alpha-z-box::before{content:"\FB06"}.mdi-alpha-z-box-outline::before{content:"\FC12"}.mdi-alpha-z-circle::before{content:"\FC13"}.mdi-alpha-z-circle-outline::before{content:"\FC14"}.mdi-alphabetical::before{content:"\F02C"}.mdi-altimeter::before{content:"\F5D7"}.mdi-amazon::before{content:"\F02D"}.mdi-amazon-alexa::before{content:"\F8C5"}.mdi-amazon-drive::before{content:"\F02E"}.mdi-ambulance::before{content:"\F02F"}.mdi-ammunition::before{content:"\FCC4"}.mdi-ampersand::before{content:"\FA8C"}.mdi-amplifier::before{content:"\F030"}.mdi-anchor::before{content:"\F031"}.mdi-android::before{content:"\F032"}.mdi-android-auto::before{content:"\FA8D"}.mdi-android-debug-bridge::before{content:"\F033"}.mdi-android-head::before{content:"\F78F"}.mdi-android-messages::before{content:"\FD21"}.mdi-android-studio::before{content:"\F034"}.mdi-angle-acute::before{content:"\F936"}.mdi-angle-obtuse::before{content:"\F937"}.mdi-angle-right::before{content:"\F938"}.mdi-angular::before{content:"\F6B1"}.mdi-angularjs::before{content:"\F6BE"}.mdi-animation::before{content:"\F5D8"}.mdi-animation-outline::before{content:"\FA8E"}.mdi-animation-play::before{content:"\F939"}.mdi-animation-play-outline::before{content:"\FA8F"}.mdi-anvil::before{content:"\F89A"}.mdi-apple::before{content:"\F035"}.mdi-apple-finder::before{content:"\F036"}.mdi-apple-icloud::before{content:"\F038"}.mdi-apple-ios::before{content:"\F037"}.mdi-apple-keyboard-caps::before{content:"\F632"}.mdi-apple-keyboard-command::before{content:"\F633"}.mdi-apple-keyboard-control::before{content:"\F634"}.mdi-apple-keyboard-option::before{content:"\F635"}.mdi-apple-keyboard-shift::before{content:"\F636"}.mdi-apple-safari::before{content:"\F039"}.mdi-application::before{content:"\F614"}.mdi-application-export::before{content:"\FD89"}.mdi-application-import::before{content:"\FD8A"}.mdi-apps::before{content:"\F03B"}.mdi-apps-box::before{content:"\FD22"}.mdi-arch::before{content:"\F8C6"}.mdi-archive::before{content:"\F03C"}.mdi-arrange-bring-forward::before{content:"\F03D"}.mdi-arrange-bring-to-front::before{content:"\F03E"}.mdi-arrange-send-backward::before{content:"\F03F"}.mdi-arrange-send-to-back::before{content:"\F040"}.mdi-arrow-all::before{content:"\F041"}.mdi-arrow-bottom-left::before{content:"\F042"}.mdi-arrow-bottom-left-bold-outline::before{content:"\F9B6"}.mdi-arrow-bottom-left-thick::before{content:"\F9B7"}.mdi-arrow-bottom-right::before{content:"\F043"}.mdi-arrow-bottom-right-bold-outline::before{content:"\F9B8"}.mdi-arrow-bottom-right-thick::before{content:"\F9B9"}.mdi-arrow-collapse::before{content:"\F615"}.mdi-arrow-collapse-all::before{content:"\F044"}.mdi-arrow-collapse-down::before{content:"\F791"}.mdi-arrow-collapse-horizontal::before{content:"\F84B"}.mdi-arrow-collapse-left::before{content:"\F792"}.mdi-arrow-collapse-right::before{content:"\F793"}.mdi-arrow-collapse-up::before{content:"\F794"}.mdi-arrow-collapse-vertical::before{content:"\F84C"}.mdi-arrow-decision::before{content:"\F9BA"}.mdi-arrow-decision-auto::before{content:"\F9BB"}.mdi-arrow-decision-auto-outline::before{content:"\F9BC"}.mdi-arrow-decision-outline::before{content:"\F9BD"}.mdi-arrow-down::before{content:"\F045"}.mdi-arrow-down-bold::before{content:"\F72D"}.mdi-arrow-down-bold-box::before{content:"\F72E"}.mdi-arrow-down-bold-box-outline::before{content:"\F72F"}.mdi-arrow-down-bold-circle::before{content:"\F047"}.mdi-arrow-down-bold-circle-outline::before{content:"\F048"}.mdi-arrow-down-bold-hexagon-outline::before{content:"\F049"}.mdi-arrow-down-bold-outline::before{content:"\F9BE"}.mdi-arrow-down-box::before{content:"\F6BF"}.mdi-arrow-down-circle::before{content:"\FCB7"}.mdi-arrow-down-circle-outline::before{content:"\FCB8"}.mdi-arrow-down-drop-circle::before{content:"\F04A"}.mdi-arrow-down-drop-circle-outline::before{content:"\F04B"}.mdi-arrow-down-thick::before{content:"\F046"}.mdi-arrow-expand::before{content:"\F616"}.mdi-arrow-expand-all::before{content:"\F04C"}.mdi-arrow-expand-down::before{content:"\F795"}.mdi-arrow-expand-horizontal::before{content:"\F84D"}.mdi-arrow-expand-left::before{content:"\F796"}.mdi-arrow-expand-right::before{content:"\F797"}.mdi-arrow-expand-up::before{content:"\F798"}.mdi-arrow-expand-vertical::before{content:"\F84E"}.mdi-arrow-left::before{content:"\F04D"}.mdi-arrow-left-bold::before{content:"\F730"}.mdi-arrow-left-bold-box::before{content:"\F731"}.mdi-arrow-left-bold-box-outline::before{content:"\F732"}.mdi-arrow-left-bold-circle::before{content:"\F04F"}.mdi-arrow-left-bold-circle-outline::before{content:"\F050"}.mdi-arrow-left-bold-hexagon-outline::before{content:"\F051"}.mdi-arrow-left-bold-outline::before{content:"\F9BF"}.mdi-arrow-left-box::before{content:"\F6C0"}.mdi-arrow-left-circle::before{content:"\FCB9"}.mdi-arrow-left-circle-outline::before{content:"\FCBA"}.mdi-arrow-left-drop-circle::before{content:"\F052"}.mdi-arrow-left-drop-circle-outline::before{content:"\F053"}.mdi-arrow-left-right::before{content:"\FE90"}.mdi-arrow-left-right-bold::before{content:"\FE91"}.mdi-arrow-left-right-bold-outline::before{content:"\F9C0"}.mdi-arrow-left-thick::before{content:"\F04E"}.mdi-arrow-right::before{content:"\F054"}.mdi-arrow-right-bold::before{content:"\F733"}.mdi-arrow-right-bold-box::before{content:"\F734"}.mdi-arrow-right-bold-box-outline::before{content:"\F735"}.mdi-arrow-right-bold-circle::before{content:"\F056"}.mdi-arrow-right-bold-circle-outline::before{content:"\F057"}.mdi-arrow-right-bold-hexagon-outline::before{content:"\F058"}.mdi-arrow-right-bold-outline::before{content:"\F9C1"}.mdi-arrow-right-box::before{content:"\F6C1"}.mdi-arrow-right-circle::before{content:"\FCBB"}.mdi-arrow-right-circle-outline::before{content:"\FCBC"}.mdi-arrow-right-drop-circle::before{content:"\F059"}.mdi-arrow-right-drop-circle-outline::before{content:"\F05A"}.mdi-arrow-right-thick::before{content:"\F055"}.mdi-arrow-split-horizontal::before{content:"\F93A"}.mdi-arrow-split-vertical::before{content:"\F93B"}.mdi-arrow-top-left::before{content:"\F05B"}.mdi-arrow-top-left-bold-outline::before{content:"\F9C2"}.mdi-arrow-top-left-bottom-right::before{content:"\FE92"}.mdi-arrow-top-left-bottom-right-bold::before{content:"\FE93"}.mdi-arrow-top-left-thick::before{content:"\F9C3"}.mdi-arrow-top-right::before{content:"\F05C"}.mdi-arrow-top-right-bold-outline::before{content:"\F9C4"}.mdi-arrow-top-right-bottom-left::before{content:"\FE94"}.mdi-arrow-top-right-bottom-left-bold::before{content:"\FE95"}.mdi-arrow-top-right-thick::before{content:"\F9C5"}.mdi-arrow-up::before{content:"\F05D"}.mdi-arrow-up-bold::before{content:"\F736"}.mdi-arrow-up-bold-box::before{content:"\F737"}.mdi-arrow-up-bold-box-outline::before{content:"\F738"}.mdi-arrow-up-bold-circle::before{content:"\F05F"}.mdi-arrow-up-bold-circle-outline::before{content:"\F060"}.mdi-arrow-up-bold-hexagon-outline::before{content:"\F061"}.mdi-arrow-up-bold-outline::before{content:"\F9C6"}.mdi-arrow-up-box::before{content:"\F6C2"}.mdi-arrow-up-circle::before{content:"\FCBD"}.mdi-arrow-up-circle-outline::before{content:"\FCBE"}.mdi-arrow-up-down::before{content:"\FE96"}.mdi-arrow-up-down-bold::before{content:"\FE97"}.mdi-arrow-up-down-bold-outline::before{content:"\F9C7"}.mdi-arrow-up-drop-circle::before{content:"\F062"}.mdi-arrow-up-drop-circle-outline::before{content:"\F063"}.mdi-arrow-up-thick::before{content:"\F05E"}.mdi-artist::before{content:"\F802"}.mdi-artist-outline::before{content:"\FCC5"}.mdi-artstation::before{content:"\FB37"}.mdi-aspect-ratio::before{content:"\FA23"}.mdi-assistant::before{content:"\F064"}.mdi-asterisk::before{content:"\F6C3"}.mdi-at::before{content:"\F065"}.mdi-atlassian::before{content:"\F803"}.mdi-atm::before{content:"\FD23"}.mdi-atom::before{content:"\F767"}.mdi-atom-variant::before{content:"\FE98"}.mdi-attachment::before{content:"\F066"}.mdi-audio-video::before{content:"\F93C"}.mdi-audiobook::before{content:"\F067"}.mdi-augmented-reality::before{content:"\F84F"}.mdi-auto-fix::before{content:"\F068"}.mdi-auto-upload::before{content:"\F069"}.mdi-autorenew::before{content:"\F06A"}.mdi-av-timer::before{content:"\F06B"}.mdi-aws::before{content:"\FDF2"}.mdi-axe::before{content:"\F8C7"}.mdi-axis::before{content:"\FD24"}.mdi-axis-arrow::before{content:"\FD25"}.mdi-axis-arrow-lock::before{content:"\FD26"}.mdi-axis-lock::before{content:"\FD27"}.mdi-axis-x-arrow::before{content:"\FD28"}.mdi-axis-x-arrow-lock::before{content:"\FD29"}.mdi-axis-x-rotate-clockwise::before{content:"\FD2A"}.mdi-axis-x-rotate-counterclockwise::before{content:"\FD2B"}.mdi-axis-x-y-arrow-lock::before{content:"\FD2C"}.mdi-axis-y-arrow::before{content:"\FD2D"}.mdi-axis-y-arrow-lock::before{content:"\FD2E"}.mdi-axis-y-rotate-clockwise::before{content:"\FD2F"}.mdi-axis-y-rotate-counterclockwise::before{content:"\FD30"}.mdi-axis-z-arrow::before{content:"\FD31"}.mdi-axis-z-arrow-lock::before{content:"\FD32"}.mdi-axis-z-rotate-clockwise::before{content:"\FD33"}.mdi-axis-z-rotate-counterclockwise::before{content:"\FD34"}.mdi-azure::before{content:"\F804"}.mdi-babel::before{content:"\FA24"}.mdi-baby::before{content:"\F06C"}.mdi-baby-bottle::before{content:"\FF56"}.mdi-baby-bottle-outline::before{content:"\FF57"}.mdi-baby-buggy::before{content:"\F68E"}.mdi-baby-face::before{content:"\FE99"}.mdi-baby-face-outline::before{content:"\FE9A"}.mdi-backburger::before{content:"\F06D"}.mdi-backspace::before{content:"\F06E"}.mdi-backspace-outline::before{content:"\FB38"}.mdi-backspace-reverse::before{content:"\FE9B"}.mdi-backspace-reverse-outline::before{content:"\FE9C"}.mdi-backup-restore::before{content:"\F06F"}.mdi-bacteria::before{content:"\FEF2"}.mdi-bacteria-outline::before{content:"\FEF3"}.mdi-badminton::before{content:"\F850"}.mdi-bag-carry-on::before{content:"\FF58"}.mdi-bag-carry-on-check::before{content:"\FD41"}.mdi-bag-carry-on-off::before{content:"\FF59"}.mdi-bag-checked::before{content:"\FF5A"}.mdi-bag-personal::before{content:"\FDF3"}.mdi-bag-personal-off::before{content:"\FDF4"}.mdi-bag-personal-off-outline::before{content:"\FDF5"}.mdi-bag-personal-outline::before{content:"\FDF6"}.mdi-baguette::before{content:"\FF5B"}.mdi-balloon::before{content:"\FA25"}.mdi-ballot::before{content:"\F9C8"}.mdi-ballot-outline::before{content:"\F9C9"}.mdi-ballot-recount::before{content:"\FC15"}.mdi-ballot-recount-outline::before{content:"\FC16"}.mdi-bandage::before{content:"\FD8B"}.mdi-bandcamp::before{content:"\F674"}.mdi-bank::before{content:"\F070"}.mdi-bank-minus::before{content:"\FD8C"}.mdi-bank-outline::before{content:"\FE9D"}.mdi-bank-plus::before{content:"\FD8D"}.mdi-bank-remove::before{content:"\FD8E"}.mdi-bank-transfer::before{content:"\FA26"}.mdi-bank-transfer-in::before{content:"\FA27"}.mdi-bank-transfer-out::before{content:"\FA28"}.mdi-barcode::before{content:"\F071"}.mdi-barcode-scan::before{content:"\F072"}.mdi-barley::before{content:"\F073"}.mdi-barley-off::before{content:"\FB39"}.mdi-barn::before{content:"\FB3A"}.mdi-barrel::before{content:"\F074"}.mdi-baseball::before{content:"\F851"}.mdi-baseball-bat::before{content:"\F852"}.mdi-basecamp::before{content:"\F075"}.mdi-basket::before{content:"\F076"}.mdi-basket-fill::before{content:"\F077"}.mdi-basket-unfill::before{content:"\F078"}.mdi-basketball::before{content:"\F805"}.mdi-basketball-hoop::before{content:"\FC17"}.mdi-basketball-hoop-outline::before{content:"\FC18"}.mdi-bat::before{content:"\FB3B"}.mdi-battery::before{content:"\F079"}.mdi-battery-10::before{content:"\F07A"}.mdi-battery-10-bluetooth::before{content:"\F93D"}.mdi-battery-20::before{content:"\F07B"}.mdi-battery-20-bluetooth::before{content:"\F93E"}.mdi-battery-30::before{content:"\F07C"}.mdi-battery-30-bluetooth::before{content:"\F93F"}.mdi-battery-40::before{content:"\F07D"}.mdi-battery-40-bluetooth::before{content:"\F940"}.mdi-battery-50::before{content:"\F07E"}.mdi-battery-50-bluetooth::before{content:"\F941"}.mdi-battery-60::before{content:"\F07F"}.mdi-battery-60-bluetooth::before{content:"\F942"}.mdi-battery-70::before{content:"\F080"}.mdi-battery-70-bluetooth::before{content:"\F943"}.mdi-battery-80::before{content:"\F081"}.mdi-battery-80-bluetooth::before{content:"\F944"}.mdi-battery-90::before{content:"\F082"}.mdi-battery-90-bluetooth::before{content:"\F945"}.mdi-battery-alert::before{content:"\F083"}.mdi-battery-alert-bluetooth::before{content:"\F946"}.mdi-battery-bluetooth::before{content:"\F947"}.mdi-battery-bluetooth-variant::before{content:"\F948"}.mdi-battery-charging::before{content:"\F084"}.mdi-battery-charging-10::before{content:"\F89B"}.mdi-battery-charging-100::before{content:"\F085"}.mdi-battery-charging-20::before{content:"\F086"}.mdi-battery-charging-30::before{content:"\F087"}.mdi-battery-charging-40::before{content:"\F088"}.mdi-battery-charging-50::before{content:"\F89C"}.mdi-battery-charging-60::before{content:"\F089"}.mdi-battery-charging-70::before{content:"\F89D"}.mdi-battery-charging-80::before{content:"\F08A"}.mdi-battery-charging-90::before{content:"\F08B"}.mdi-battery-charging-outline::before{content:"\F89E"}.mdi-battery-charging-wireless::before{content:"\F806"}.mdi-battery-charging-wireless-10::before{content:"\F807"}.mdi-battery-charging-wireless-20::before{content:"\F808"}.mdi-battery-charging-wireless-30::before{content:"\F809"}.mdi-battery-charging-wireless-40::before{content:"\F80A"}.mdi-battery-charging-wireless-50::before{content:"\F80B"}.mdi-battery-charging-wireless-60::before{content:"\F80C"}.mdi-battery-charging-wireless-70::before{content:"\F80D"}.mdi-battery-charging-wireless-80::before{content:"\F80E"}.mdi-battery-charging-wireless-90::before{content:"\F80F"}.mdi-battery-charging-wireless-alert::before{content:"\F810"}.mdi-battery-charging-wireless-outline::before{content:"\F811"}.mdi-battery-minus::before{content:"\F08C"}.mdi-battery-negative::before{content:"\F08D"}.mdi-battery-outline::before{content:"\F08E"}.mdi-battery-plus::before{content:"\F08F"}.mdi-battery-positive::before{content:"\F090"}.mdi-battery-unknown::before{content:"\F091"}.mdi-battery-unknown-bluetooth::before{content:"\F949"}.mdi-battlenet::before{content:"\FB3C"}.mdi-beach::before{content:"\F092"}.mdi-beaker::before{content:"\FCC6"}.mdi-beaker-outline::before{content:"\F68F"}.mdi-beats::before{content:"\F097"}.mdi-bed-empty::before{content:"\F89F"}.mdi-beer::before{content:"\F098"}.mdi-behance::before{content:"\F099"}.mdi-bell::before{content:"\F09A"}.mdi-bell-alert::before{content:"\FD35"}.mdi-bell-alert-outline::before{content:"\FE9E"}.mdi-bell-circle::before{content:"\FD36"}.mdi-bell-circle-outline::before{content:"\FD37"}.mdi-bell-off::before{content:"\F09B"}.mdi-bell-off-outline::before{content:"\FA90"}.mdi-bell-outline::before{content:"\F09C"}.mdi-bell-plus::before{content:"\F09D"}.mdi-bell-plus-outline::before{content:"\FA91"}.mdi-bell-ring::before{content:"\F09E"}.mdi-bell-ring-outline::before{content:"\F09F"}.mdi-bell-sleep::before{content:"\F0A0"}.mdi-bell-sleep-outline::before{content:"\FA92"}.mdi-beta::before{content:"\F0A1"}.mdi-betamax::before{content:"\F9CA"}.mdi-biathlon::before{content:"\FDF7"}.mdi-bible::before{content:"\F0A2"}.mdi-bike::before{content:"\F0A3"}.mdi-billiards::before{content:"\FB3D"}.mdi-billiards-rack::before{content:"\FB3E"}.mdi-bing::before{content:"\F0A4"}.mdi-binoculars::before{content:"\F0A5"}.mdi-bio::before{content:"\F0A6"}.mdi-biohazard::before{content:"\F0A7"}.mdi-bitbucket::before{content:"\F0A8"}.mdi-bitcoin::before{content:"\F812"}.mdi-black-mesa::before{content:"\F0A9"}.mdi-blackberry::before{content:"\F0AA"}.mdi-blender::before{content:"\FCC7"}.mdi-blender-software::before{content:"\F0AB"}.mdi-blinds::before{content:"\F0AC"}.mdi-block-helper::before{content:"\F0AD"}.mdi-blogger::before{content:"\F0AE"}.mdi-blood-bag::before{content:"\FCC8"}.mdi-bluetooth::before{content:"\F0AF"}.mdi-bluetooth-audio::before{content:"\F0B0"}.mdi-bluetooth-connect::before{content:"\F0B1"}.mdi-bluetooth-off::before{content:"\F0B2"}.mdi-bluetooth-settings::before{content:"\F0B3"}.mdi-bluetooth-transfer::before{content:"\F0B4"}.mdi-blur::before{content:"\F0B5"}.mdi-blur-linear::before{content:"\F0B6"}.mdi-blur-off::before{content:"\F0B7"}.mdi-blur-radial::before{content:"\F0B8"}.mdi-bolnisi-cross::before{content:"\FCC9"}.mdi-bolt::before{content:"\FD8F"}.mdi-bomb::before{content:"\F690"}.mdi-bomb-off::before{content:"\F6C4"}.mdi-bone::before{content:"\F0B9"}.mdi-book::before{content:"\F0BA"}.mdi-book-lock::before{content:"\F799"}.mdi-book-lock-open::before{content:"\F79A"}.mdi-book-minus::before{content:"\F5D9"}.mdi-book-minus-multiple::before{content:"\FA93"}.mdi-book-multiple::before{content:"\F0BB"}.mdi-book-open::before{content:"\F0BD"}.mdi-book-open-outline::before{content:"\FB3F"}.mdi-book-open-page-variant::before{content:"\F5DA"}.mdi-book-open-variant::before{content:"\F0BE"}.mdi-book-outline::before{content:"\FB40"}.mdi-book-play::before{content:"\FE9F"}.mdi-book-play-outline::before{content:"\FEA0"}.mdi-book-plus::before{content:"\F5DB"}.mdi-book-plus-multiple::before{content:"\FA94"}.mdi-book-remove::before{content:"\FA96"}.mdi-book-remove-multiple::before{content:"\FA95"}.mdi-book-search::before{content:"\FEA1"}.mdi-book-search-outline::before{content:"\FEA2"}.mdi-book-variant::before{content:"\F0BF"}.mdi-book-variant-multiple::before{content:"\F0BC"}.mdi-bookmark::before{content:"\F0C0"}.mdi-bookmark-check::before{content:"\F0C1"}.mdi-bookmark-minus::before{content:"\F9CB"}.mdi-bookmark-minus-outline::before{content:"\F9CC"}.mdi-bookmark-multiple::before{content:"\FDF8"}.mdi-bookmark-multiple-outline::before{content:"\FDF9"}.mdi-bookmark-music::before{content:"\F0C2"}.mdi-bookmark-off::before{content:"\F9CD"}.mdi-bookmark-off-outline::before{content:"\F9CE"}.mdi-bookmark-outline::before{content:"\F0C3"}.mdi-bookmark-plus::before{content:"\F0C5"}.mdi-bookmark-plus-outline::before{content:"\F0C4"}.mdi-bookmark-remove::before{content:"\F0C6"}.mdi-boom-gate::before{content:"\FEA3"}.mdi-boom-gate-alert::before{content:"\FEA4"}.mdi-boom-gate-alert-outline::before{content:"\FEA5"}.mdi-boom-gate-down::before{content:"\FEA6"}.mdi-boom-gate-down-outline::before{content:"\FEA7"}.mdi-boom-gate-outline::before{content:"\FEA8"}.mdi-boom-gate-up::before{content:"\FEA9"}.mdi-boom-gate-up-outline::before{content:"\FEAA"}.mdi-boombox::before{content:"\F5DC"}.mdi-bootstrap::before{content:"\F6C5"}.mdi-border-all::before{content:"\F0C7"}.mdi-border-all-variant::before{content:"\F8A0"}.mdi-border-bottom::before{content:"\F0C8"}.mdi-border-bottom-variant::before{content:"\F8A1"}.mdi-border-color::before{content:"\F0C9"}.mdi-border-horizontal::before{content:"\F0CA"}.mdi-border-inside::before{content:"\F0CB"}.mdi-border-left::before{content:"\F0CC"}.mdi-border-left-variant::before{content:"\F8A2"}.mdi-border-none::before{content:"\F0CD"}.mdi-border-none-variant::before{content:"\F8A3"}.mdi-border-outside::before{content:"\F0CE"}.mdi-border-right::before{content:"\F0CF"}.mdi-border-right-variant::before{content:"\F8A4"}.mdi-border-style::before{content:"\F0D0"}.mdi-border-top::before{content:"\F0D1"}.mdi-border-top-variant::before{content:"\F8A5"}.mdi-border-vertical::before{content:"\F0D2"}.mdi-bottle-wine::before{content:"\F853"}.mdi-bow-tie::before{content:"\F677"}.mdi-bowl::before{content:"\F617"}.mdi-bowling::before{content:"\F0D3"}.mdi-box::before{content:"\F0D4"}.mdi-box-cutter::before{content:"\F0D5"}.mdi-box-shadow::before{content:"\F637"}.mdi-boxing-glove::before{content:"\FB41"}.mdi-braille::before{content:"\F9CF"}.mdi-brain::before{content:"\F9D0"}.mdi-bread-slice::before{content:"\FCCA"}.mdi-bread-slice-outline::before{content:"\FCCB"}.mdi-bridge::before{content:"\F618"}.mdi-briefcase::before{content:"\F0D6"}.mdi-briefcase-account::before{content:"\FCCC"}.mdi-briefcase-account-outline::before{content:"\FCCD"}.mdi-briefcase-check::before{content:"\F0D7"}.mdi-briefcase-download::before{content:"\F0D8"}.mdi-briefcase-download-outline::before{content:"\FC19"}.mdi-briefcase-edit::before{content:"\FA97"}.mdi-briefcase-edit-outline::before{content:"\FC1A"}.mdi-briefcase-minus::before{content:"\FA29"}.mdi-briefcase-minus-outline::before{content:"\FC1B"}.mdi-briefcase-outline::before{content:"\F813"}.mdi-briefcase-plus::before{content:"\FA2A"}.mdi-briefcase-plus-outline::before{content:"\FC1C"}.mdi-briefcase-remove::before{content:"\FA2B"}.mdi-briefcase-remove-outline::before{content:"\FC1D"}.mdi-briefcase-search::before{content:"\FA2C"}.mdi-briefcase-search-outline::before{content:"\FC1E"}.mdi-briefcase-upload::before{content:"\F0D9"}.mdi-briefcase-upload-outline::before{content:"\FC1F"}.mdi-brightness-1::before{content:"\F0DA"}.mdi-brightness-2::before{content:"\F0DB"}.mdi-brightness-3::before{content:"\F0DC"}.mdi-brightness-4::before{content:"\F0DD"}.mdi-brightness-5::before{content:"\F0DE"}.mdi-brightness-6::before{content:"\F0DF"}.mdi-brightness-7::before{content:"\F0E0"}.mdi-brightness-auto::before{content:"\F0E1"}.mdi-brightness-percent::before{content:"\FCCE"}.mdi-broom::before{content:"\F0E2"}.mdi-brush::before{content:"\F0E3"}.mdi-buddhism::before{content:"\F94A"}.mdi-buffer::before{content:"\F619"}.mdi-bug::before{content:"\F0E4"}.mdi-bug-check::before{content:"\FA2D"}.mdi-bug-check-outline::before{content:"\FA2E"}.mdi-bug-outline::before{content:"\FA2F"}.mdi-bugle::before{content:"\FD90"}.mdi-bulldozer::before{content:"\FB07"}.mdi-bullet::before{content:"\FCCF"}.mdi-bulletin-board::before{content:"\F0E5"}.mdi-bullhorn::before{content:"\F0E6"}.mdi-bullhorn-outline::before{content:"\FB08"}.mdi-bullseye::before{content:"\F5DD"}.mdi-bullseye-arrow::before{content:"\F8C8"}.mdi-bus::before{content:"\F0E7"}.mdi-bus-alert::before{content:"\FA98"}.mdi-bus-articulated-end::before{content:"\F79B"}.mdi-bus-articulated-front::before{content:"\F79C"}.mdi-bus-clock::before{content:"\F8C9"}.mdi-bus-double-decker::before{content:"\F79D"}.mdi-bus-multiple::before{content:"\FF5C"}.mdi-bus-school::before{content:"\F79E"}.mdi-bus-side::before{content:"\F79F"}.mdi-cached::before{content:"\F0E8"}.mdi-cactus::before{content:"\FD91"}.mdi-cake::before{content:"\F0E9"}.mdi-cake-layered::before{content:"\F0EA"}.mdi-cake-variant::before{content:"\F0EB"}.mdi-calculator::before{content:"\F0EC"}.mdi-calculator-variant::before{content:"\FA99"}.mdi-calendar::before{content:"\F0ED"}.mdi-calendar-account::before{content:"\FEF4"}.mdi-calendar-account-outline::before{content:"\FEF5"}.mdi-calendar-alert::before{content:"\FA30"}.mdi-calendar-blank::before{content:"\F0EE"}.mdi-calendar-blank-outline::before{content:"\FB42"}.mdi-calendar-check::before{content:"\F0EF"}.mdi-calendar-check-outline::before{content:"\FC20"}.mdi-calendar-clock::before{content:"\F0F0"}.mdi-calendar-edit::before{content:"\F8A6"}.mdi-calendar-export::before{content:"\FB09"}.mdi-calendar-heart::before{content:"\F9D1"}.mdi-calendar-import::before{content:"\FB0A"}.mdi-calendar-minus::before{content:"\FD38"}.mdi-calendar-month::before{content:"\FDFA"}.mdi-calendar-month-outline::before{content:"\FDFB"}.mdi-calendar-multiple::before{content:"\F0F1"}.mdi-calendar-multiple-check::before{content:"\F0F2"}.mdi-calendar-multiselect::before{content:"\FA31"}.mdi-calendar-outline::before{content:"\FB43"}.mdi-calendar-plus::before{content:"\F0F3"}.mdi-calendar-question::before{content:"\F691"}.mdi-calendar-range::before{content:"\F678"}.mdi-calendar-range-outline::before{content:"\FB44"}.mdi-calendar-remove::before{content:"\F0F4"}.mdi-calendar-remove-outline::before{content:"\FC21"}.mdi-calendar-repeat::before{content:"\FEAB"}.mdi-calendar-repeat-outline::before{content:"\FEAC"}.mdi-calendar-search::before{content:"\F94B"}.mdi-calendar-star::before{content:"\F9D2"}.mdi-calendar-text::before{content:"\F0F5"}.mdi-calendar-text-outline::before{content:"\FC22"}.mdi-calendar-today::before{content:"\F0F6"}.mdi-calendar-week::before{content:"\FA32"}.mdi-calendar-week-begin::before{content:"\FA33"}.mdi-calendar-weekend::before{content:"\FEF6"}.mdi-calendar-weekend-outline::before{content:"\FEF7"}.mdi-call-made::before{content:"\F0F7"}.mdi-call-merge::before{content:"\F0F8"}.mdi-call-missed::before{content:"\F0F9"}.mdi-call-received::before{content:"\F0FA"}.mdi-call-split::before{content:"\F0FB"}.mdi-camcorder::before{content:"\F0FC"}.mdi-camcorder-box::before{content:"\F0FD"}.mdi-camcorder-box-off::before{content:"\F0FE"}.mdi-camcorder-off::before{content:"\F0FF"}.mdi-camera::before{content:"\F100"}.mdi-camera-account::before{content:"\F8CA"}.mdi-camera-burst::before{content:"\F692"}.mdi-camera-control::before{content:"\FB45"}.mdi-camera-enhance::before{content:"\F101"}.mdi-camera-enhance-outline::before{content:"\FB46"}.mdi-camera-front::before{content:"\F102"}.mdi-camera-front-variant::before{content:"\F103"}.mdi-camera-gopro::before{content:"\F7A0"}.mdi-camera-image::before{content:"\F8CB"}.mdi-camera-iris::before{content:"\F104"}.mdi-camera-metering-center::before{content:"\F7A1"}.mdi-camera-metering-matrix::before{content:"\F7A2"}.mdi-camera-metering-partial::before{content:"\F7A3"}.mdi-camera-metering-spot::before{content:"\F7A4"}.mdi-camera-off::before{content:"\F5DF"}.mdi-camera-outline::before{content:"\FD39"}.mdi-camera-party-mode::before{content:"\F105"}.mdi-camera-plus::before{content:"\FEF8"}.mdi-camera-plus-outline::before{content:"\FEF9"}.mdi-camera-rear::before{content:"\F106"}.mdi-camera-rear-variant::before{content:"\F107"}.mdi-camera-retake::before{content:"\FDFC"}.mdi-camera-retake-outline::before{content:"\FDFD"}.mdi-camera-switch::before{content:"\F108"}.mdi-camera-timer::before{content:"\F109"}.mdi-camera-wireless::before{content:"\FD92"}.mdi-camera-wireless-outline::before{content:"\FD93"}.mdi-campfire::before{content:"\FEFA"}.mdi-cancel::before{content:"\F739"}.mdi-candle::before{content:"\F5E2"}.mdi-candycane::before{content:"\F10A"}.mdi-cannabis::before{content:"\F7A5"}.mdi-caps-lock::before{content:"\FA9A"}.mdi-car::before{content:"\F10B"}.mdi-car-back::before{content:"\FDFE"}.mdi-car-battery::before{content:"\F10C"}.mdi-car-brake-abs::before{content:"\FC23"}.mdi-car-brake-alert::before{content:"\FC24"}.mdi-car-brake-hold::before{content:"\FD3A"}.mdi-car-brake-parking::before{content:"\FD3B"}.mdi-car-connected::before{content:"\F10D"}.mdi-car-convertible::before{content:"\F7A6"}.mdi-car-cruise-control::before{content:"\FD3C"}.mdi-car-defrost-front::before{content:"\FD3D"}.mdi-car-defrost-rear::before{content:"\FD3E"}.mdi-car-door::before{content:"\FB47"}.mdi-car-electric::before{content:"\FB48"}.mdi-car-esp::before{content:"\FC25"}.mdi-car-estate::before{content:"\F7A7"}.mdi-car-hatchback::before{content:"\F7A8"}.mdi-car-key::before{content:"\FB49"}.mdi-car-light-dimmed::before{content:"\FC26"}.mdi-car-light-fog::before{content:"\FC27"}.mdi-car-light-high::before{content:"\FC28"}.mdi-car-limousine::before{content:"\F8CC"}.mdi-car-multiple::before{content:"\FB4A"}.mdi-car-off::before{content:"\FDFF"}.mdi-car-parking-lights::before{content:"\FD3F"}.mdi-car-pickup::before{content:"\F7A9"}.mdi-car-shift-pattern::before{content:"\FF5D"}.mdi-car-side::before{content:"\F7AA"}.mdi-car-sports::before{content:"\F7AB"}.mdi-car-tire-alert::before{content:"\FC29"}.mdi-car-traction-control::before{content:"\FD40"}.mdi-car-wash::before{content:"\F10E"}.mdi-caravan::before{content:"\F7AC"}.mdi-card::before{content:"\FB4B"}.mdi-card-bulleted::before{content:"\FB4C"}.mdi-card-bulleted-off::before{content:"\FB4D"}.mdi-card-bulleted-off-outline::before{content:"\FB4E"}.mdi-card-bulleted-outline::before{content:"\FB4F"}.mdi-card-bulleted-settings::before{content:"\FB50"}.mdi-card-bulleted-settings-outline::before{content:"\FB51"}.mdi-card-outline::before{content:"\FB52"}.mdi-card-text::before{content:"\FB53"}.mdi-card-text-outline::before{content:"\FB54"}.mdi-cards::before{content:"\F638"}.mdi-cards-club::before{content:"\F8CD"}.mdi-cards-diamond::before{content:"\F8CE"}.mdi-cards-heart::before{content:"\F8CF"}.mdi-cards-outline::before{content:"\F639"}.mdi-cards-playing-outline::before{content:"\F63A"}.mdi-cards-spade::before{content:"\F8D0"}.mdi-cards-variant::before{content:"\F6C6"}.mdi-carrot::before{content:"\F10F"}.mdi-cart::before{content:"\F110"}.mdi-cart-arrow-down::before{content:"\FD42"}.mdi-cart-arrow-right::before{content:"\FC2A"}.mdi-cart-arrow-up::before{content:"\FD43"}.mdi-cart-minus::before{content:"\FD44"}.mdi-cart-off::before{content:"\F66B"}.mdi-cart-outline::before{content:"\F111"}.mdi-cart-plus::before{content:"\F112"}.mdi-cart-remove::before{content:"\FD45"}.mdi-case-sensitive-alt::before{content:"\F113"}.mdi-cash::before{content:"\F114"}.mdi-cash-100::before{content:"\F115"}.mdi-cash-marker::before{content:"\FD94"}.mdi-cash-multiple::before{content:"\F116"}.mdi-cash-refund::before{content:"\FA9B"}.mdi-cash-register::before{content:"\FCD0"}.mdi-cash-usd::before{content:"\F117"}.mdi-cassette::before{content:"\F9D3"}.mdi-cast::before{content:"\F118"}.mdi-cast-connected::before{content:"\F119"}.mdi-cast-education::before{content:"\FE6D"}.mdi-cast-off::before{content:"\F789"}.mdi-castle::before{content:"\F11A"}.mdi-cat::before{content:"\F11B"}.mdi-cctv::before{content:"\F7AD"}.mdi-ceiling-light::before{content:"\F768"}.mdi-cellphone::before{content:"\F11C"}.mdi-cellphone-android::before{content:"\F11D"}.mdi-cellphone-arrow-down::before{content:"\F9D4"}.mdi-cellphone-basic::before{content:"\F11E"}.mdi-cellphone-dock::before{content:"\F11F"}.mdi-cellphone-erase::before{content:"\F94C"}.mdi-cellphone-information::before{content:"\FF5E"}.mdi-cellphone-iphone::before{content:"\F120"}.mdi-cellphone-key::before{content:"\F94D"}.mdi-cellphone-link::before{content:"\F121"}.mdi-cellphone-link-off::before{content:"\F122"}.mdi-cellphone-lock::before{content:"\F94E"}.mdi-cellphone-message::before{content:"\F8D2"}.mdi-cellphone-nfc::before{content:"\FEAD"}.mdi-cellphone-off::before{content:"\F94F"}.mdi-cellphone-screenshot::before{content:"\FA34"}.mdi-cellphone-settings::before{content:"\F123"}.mdi-cellphone-settings-variant::before{content:"\F950"}.mdi-cellphone-sound::before{content:"\F951"}.mdi-cellphone-text::before{content:"\F8D1"}.mdi-cellphone-wireless::before{content:"\F814"}.mdi-celtic-cross::before{content:"\FCD1"}.mdi-certificate::before{content:"\F124"}.mdi-chair-rolling::before{content:"\FFBA"}.mdi-chair-school::before{content:"\F125"}.mdi-charity::before{content:"\FC2B"}.mdi-chart-arc::before{content:"\F126"}.mdi-chart-areaspline::before{content:"\F127"}.mdi-chart-areaspline-variant::before{content:"\FEAE"}.mdi-chart-bar::before{content:"\F128"}.mdi-chart-bar-stacked::before{content:"\F769"}.mdi-chart-bell-curve::before{content:"\FC2C"}.mdi-chart-bubble::before{content:"\F5E3"}.mdi-chart-donut::before{content:"\F7AE"}.mdi-chart-donut-variant::before{content:"\F7AF"}.mdi-chart-gantt::before{content:"\F66C"}.mdi-chart-histogram::before{content:"\F129"}.mdi-chart-line::before{content:"\F12A"}.mdi-chart-line-stacked::before{content:"\F76A"}.mdi-chart-line-variant::before{content:"\F7B0"}.mdi-chart-multiline::before{content:"\F8D3"}.mdi-chart-pie::before{content:"\F12B"}.mdi-chart-scatter-plot::before{content:"\FEAF"}.mdi-chart-scatter-plot-hexbin::before{content:"\F66D"}.mdi-chart-timeline::before{content:"\F66E"}.mdi-chart-timeline-variant::before{content:"\FEB0"}.mdi-chart-tree::before{content:"\FEB1"}.mdi-chat::before{content:"\FB55"}.mdi-chat-alert::before{content:"\FB56"}.mdi-chat-outline::before{content:"\FEFB"}.mdi-chat-processing::before{content:"\FB57"}.mdi-check::before{content:"\F12C"}.mdi-check-all::before{content:"\F12D"}.mdi-check-bold::before{content:"\FE6E"}.mdi-check-box-multiple-outline::before{content:"\FC2D"}.mdi-check-box-outline::before{content:"\FC2E"}.mdi-check-circle::before{content:"\F5E0"}.mdi-check-circle-outline::before{content:"\F5E1"}.mdi-check-decagram::before{content:"\F790"}.mdi-check-network::before{content:"\FC2F"}.mdi-check-network-outline::before{content:"\FC30"}.mdi-check-outline::before{content:"\F854"}.mdi-check-underline::before{content:"\FE70"}.mdi-check-underline-circle::before{content:"\FE71"}.mdi-check-underline-circle-outline::before{content:"\FE72"}.mdi-checkbook::before{content:"\FA9C"}.mdi-checkbox-blank::before{content:"\F12E"}.mdi-checkbox-blank-circle::before{content:"\F12F"}.mdi-checkbox-blank-circle-outline::before{content:"\F130"}.mdi-checkbox-blank-outline::before{content:"\F131"}.mdi-checkbox-intermediate::before{content:"\F855"}.mdi-checkbox-marked::before{content:"\F132"}.mdi-checkbox-marked-circle::before{content:"\F133"}.mdi-checkbox-marked-circle-outline::before{content:"\F134"}.mdi-checkbox-marked-outline::before{content:"\F135"}.mdi-checkbox-multiple-blank::before{content:"\F136"}.mdi-checkbox-multiple-blank-circle::before{content:"\F63B"}.mdi-checkbox-multiple-blank-circle-outline::before{content:"\F63C"}.mdi-checkbox-multiple-blank-outline::before{content:"\F137"}.mdi-checkbox-multiple-marked::before{content:"\F138"}.mdi-checkbox-multiple-marked-circle::before{content:"\F63D"}.mdi-checkbox-multiple-marked-circle-outline::before{content:"\F63E"}.mdi-checkbox-multiple-marked-outline::before{content:"\F139"}.mdi-checkerboard::before{content:"\F13A"}.mdi-chef-hat::before{content:"\FB58"}.mdi-chemical-weapon::before{content:"\F13B"}.mdi-chess-bishop::before{content:"\F85B"}.mdi-chess-king::before{content:"\F856"}.mdi-chess-knight::before{content:"\F857"}.mdi-chess-pawn::before{content:"\F858"}.mdi-chess-queen::before{content:"\F859"}.mdi-chess-rook::before{content:"\F85A"}.mdi-chevron-double-down::before{content:"\F13C"}.mdi-chevron-double-left::before{content:"\F13D"}.mdi-chevron-double-right::before{content:"\F13E"}.mdi-chevron-double-up::before{content:"\F13F"}.mdi-chevron-down::before{content:"\F140"}.mdi-chevron-down-box::before{content:"\F9D5"}.mdi-chevron-down-box-outline::before{content:"\F9D6"}.mdi-chevron-down-circle::before{content:"\FB0B"}.mdi-chevron-down-circle-outline::before{content:"\FB0C"}.mdi-chevron-left::before{content:"\F141"}.mdi-chevron-left-box::before{content:"\F9D7"}.mdi-chevron-left-box-outline::before{content:"\F9D8"}.mdi-chevron-left-circle::before{content:"\FB0D"}.mdi-chevron-left-circle-outline::before{content:"\FB0E"}.mdi-chevron-right::before{content:"\F142"}.mdi-chevron-right-box::before{content:"\F9D9"}.mdi-chevron-right-box-outline::before{content:"\F9DA"}.mdi-chevron-right-circle::before{content:"\FB0F"}.mdi-chevron-right-circle-outline::before{content:"\FB10"}.mdi-chevron-triple-down::before{content:"\FD95"}.mdi-chevron-triple-left::before{content:"\FD96"}.mdi-chevron-triple-right::before{content:"\FD97"}.mdi-chevron-triple-up::before{content:"\FD98"}.mdi-chevron-up::before{content:"\F143"}.mdi-chevron-up-box::before{content:"\F9DB"}.mdi-chevron-up-box-outline::before{content:"\F9DC"}.mdi-chevron-up-circle::before{content:"\FB11"}.mdi-chevron-up-circle-outline::before{content:"\FB12"}.mdi-chili-hot::before{content:"\F7B1"}.mdi-chili-medium::before{content:"\F7B2"}.mdi-chili-mild::before{content:"\F7B3"}.mdi-chip::before{content:"\F61A"}.mdi-christianity::before{content:"\F952"}.mdi-christianity-outline::before{content:"\FCD2"}.mdi-church::before{content:"\F144"}.mdi-circle::before{content:"\F764"}.mdi-circle-double::before{content:"\FEB2"}.mdi-circle-edit-outline::before{content:"\F8D4"}.mdi-circle-expand::before{content:"\FEB3"}.mdi-circle-medium::before{content:"\F9DD"}.mdi-circle-outline::before{content:"\F765"}.mdi-circle-slice-1::before{content:"\FA9D"}.mdi-circle-slice-2::before{content:"\FA9E"}.mdi-circle-slice-3::before{content:"\FA9F"}.mdi-circle-slice-4::before{content:"\FAA0"}.mdi-circle-slice-5::before{content:"\FAA1"}.mdi-circle-slice-6::before{content:"\FAA2"}.mdi-circle-slice-7::before{content:"\FAA3"}.mdi-circle-slice-8::before{content:"\FAA4"}.mdi-circle-small::before{content:"\F9DE"}.mdi-circular-saw::before{content:"\FE73"}.mdi-cisco-webex::before{content:"\F145"}.mdi-city::before{content:"\F146"}.mdi-city-variant::before{content:"\FA35"}.mdi-city-variant-outline::before{content:"\FA36"}.mdi-clipboard::before{content:"\F147"}.mdi-clipboard-account::before{content:"\F148"}.mdi-clipboard-account-outline::before{content:"\FC31"}.mdi-clipboard-alert::before{content:"\F149"}.mdi-clipboard-alert-outline::before{content:"\FCD3"}.mdi-clipboard-arrow-down::before{content:"\F14A"}.mdi-clipboard-arrow-down-outline::before{content:"\FC32"}.mdi-clipboard-arrow-left::before{content:"\F14B"}.mdi-clipboard-arrow-left-outline::before{content:"\FCD4"}.mdi-clipboard-arrow-right::before{content:"\FCD5"}.mdi-clipboard-arrow-right-outline::before{content:"\FCD6"}.mdi-clipboard-arrow-up::before{content:"\FC33"}.mdi-clipboard-arrow-up-outline::before{content:"\FC34"}.mdi-clipboard-check::before{content:"\F14C"}.mdi-clipboard-check-outline::before{content:"\F8A7"}.mdi-clipboard-flow::before{content:"\F6C7"}.mdi-clipboard-outline::before{content:"\F14D"}.mdi-clipboard-play::before{content:"\FC35"}.mdi-clipboard-play-outline::before{content:"\FC36"}.mdi-clipboard-plus::before{content:"\F750"}.mdi-clipboard-pulse::before{content:"\F85C"}.mdi-clipboard-pulse-outline::before{content:"\F85D"}.mdi-clipboard-text::before{content:"\F14E"}.mdi-clipboard-text-outline::before{content:"\FA37"}.mdi-clipboard-text-play::before{content:"\FC37"}.mdi-clipboard-text-play-outline::before{content:"\FC38"}.mdi-clippy::before{content:"\F14F"}.mdi-clock::before{content:"\F953"}.mdi-clock-alert::before{content:"\F954"}.mdi-clock-alert-outline::before{content:"\F5CE"}.mdi-clock-digital::before{content:"\FEB4"}.mdi-clock-end::before{content:"\F151"}.mdi-clock-fast::before{content:"\F152"}.mdi-clock-in::before{content:"\F153"}.mdi-clock-out::before{content:"\F154"}.mdi-clock-outline::before{content:"\F150"}.mdi-clock-start::before{content:"\F155"}.mdi-close::before{content:"\F156"}.mdi-close-box::before{content:"\F157"}.mdi-close-box-multiple::before{content:"\FC39"}.mdi-close-box-multiple-outline::before{content:"\FC3A"}.mdi-close-box-outline::before{content:"\F158"}.mdi-close-circle::before{content:"\F159"}.mdi-close-circle-outline::before{content:"\F15A"}.mdi-close-network::before{content:"\F15B"}.mdi-close-network-outline::before{content:"\FC3B"}.mdi-close-octagon::before{content:"\F15C"}.mdi-close-octagon-outline::before{content:"\F15D"}.mdi-close-outline::before{content:"\F6C8"}.mdi-closed-caption::before{content:"\F15E"}.mdi-closed-caption-outline::before{content:"\FD99"}.mdi-cloud::before{content:"\F15F"}.mdi-cloud-alert::before{content:"\F9DF"}.mdi-cloud-braces::before{content:"\F7B4"}.mdi-cloud-check::before{content:"\F160"}.mdi-cloud-circle::before{content:"\F161"}.mdi-cloud-download::before{content:"\F162"}.mdi-cloud-download-outline::before{content:"\FB59"}.mdi-cloud-off-outline::before{content:"\F164"}.mdi-cloud-outline::before{content:"\F163"}.mdi-cloud-print::before{content:"\F165"}.mdi-cloud-print-outline::before{content:"\F166"}.mdi-cloud-question::before{content:"\FA38"}.mdi-cloud-search::before{content:"\F955"}.mdi-cloud-search-outline::before{content:"\F956"}.mdi-cloud-sync::before{content:"\F63F"}.mdi-cloud-tags::before{content:"\F7B5"}.mdi-cloud-upload::before{content:"\F167"}.mdi-cloud-upload-outline::before{content:"\FB5A"}.mdi-clover::before{content:"\F815"}.mdi-code-array::before{content:"\F168"}.mdi-code-braces::before{content:"\F169"}.mdi-code-brackets::before{content:"\F16A"}.mdi-code-equal::before{content:"\F16B"}.mdi-code-greater-than::before{content:"\F16C"}.mdi-code-greater-than-or-equal::before{content:"\F16D"}.mdi-code-less-than::before{content:"\F16E"}.mdi-code-less-than-or-equal::before{content:"\F16F"}.mdi-code-not-equal::before{content:"\F170"}.mdi-code-not-equal-variant::before{content:"\F171"}.mdi-code-parentheses::before{content:"\F172"}.mdi-code-string::before{content:"\F173"}.mdi-code-tags::before{content:"\F174"}.mdi-code-tags-check::before{content:"\F693"}.mdi-codepen::before{content:"\F175"}.mdi-coffee::before{content:"\F176"}.mdi-coffee-off::before{content:"\FFCA"}.mdi-coffee-off-outline::before{content:"\FFCB"}.mdi-coffee-outline::before{content:"\F6C9"}.mdi-coffee-to-go::before{content:"\F177"}.mdi-coffin::before{content:"\FB5B"}.mdi-cogs::before{content:"\F8D5"}.mdi-coin::before{content:"\F178"}.mdi-coins::before{content:"\F694"}.mdi-collage::before{content:"\F640"}.mdi-collapse-all::before{content:"\FAA5"}.mdi-collapse-all-outline::before{content:"\FAA6"}.mdi-color-helper::before{content:"\F179"}.mdi-comma::before{content:"\FE74"}.mdi-comma-box::before{content:"\FE75"}.mdi-comma-box-outline::before{content:"\FE76"}.mdi-comma-circle::before{content:"\FE77"}.mdi-comma-circle-outline::before{content:"\FE78"}.mdi-comment::before{content:"\F17A"}.mdi-comment-account::before{content:"\F17B"}.mdi-comment-account-outline::before{content:"\F17C"}.mdi-comment-alert::before{content:"\F17D"}.mdi-comment-alert-outline::before{content:"\F17E"}.mdi-comment-arrow-left::before{content:"\F9E0"}.mdi-comment-arrow-left-outline::before{content:"\F9E1"}.mdi-comment-arrow-right::before{content:"\F9E2"}.mdi-comment-arrow-right-outline::before{content:"\F9E3"}.mdi-comment-check::before{content:"\F17F"}.mdi-comment-check-outline::before{content:"\F180"}.mdi-comment-eye::before{content:"\FA39"}.mdi-comment-eye-outline::before{content:"\FA3A"}.mdi-comment-multiple::before{content:"\F85E"}.mdi-comment-multiple-outline::before{content:"\F181"}.mdi-comment-outline::before{content:"\F182"}.mdi-comment-plus::before{content:"\F9E4"}.mdi-comment-plus-outline::before{content:"\F183"}.mdi-comment-processing::before{content:"\F184"}.mdi-comment-processing-outline::before{content:"\F185"}.mdi-comment-question::before{content:"\F816"}.mdi-comment-question-outline::before{content:"\F186"}.mdi-comment-remove::before{content:"\F5DE"}.mdi-comment-remove-outline::before{content:"\F187"}.mdi-comment-search::before{content:"\FA3B"}.mdi-comment-search-outline::before{content:"\FA3C"}.mdi-comment-text::before{content:"\F188"}.mdi-comment-text-multiple::before{content:"\F85F"}.mdi-comment-text-multiple-outline::before{content:"\F860"}.mdi-comment-text-outline::before{content:"\F189"}.mdi-compare::before{content:"\F18A"}.mdi-compass::before{content:"\F18B"}.mdi-compass-off::before{content:"\FB5C"}.mdi-compass-off-outline::before{content:"\FB5D"}.mdi-compass-outline::before{content:"\F18C"}.mdi-console::before{content:"\F18D"}.mdi-console-line::before{content:"\F7B6"}.mdi-console-network::before{content:"\F8A8"}.mdi-console-network-outline::before{content:"\FC3C"}.mdi-contact-mail::before{content:"\F18E"}.mdi-contact-mail-outline::before{content:"\FEB5"}.mdi-contact-phone::before{content:"\FEB6"}.mdi-contact-phone-outline::before{content:"\FEB7"}.mdi-contactless-payment::before{content:"\FD46"}.mdi-contacts::before{content:"\F6CA"}.mdi-contain::before{content:"\FA3D"}.mdi-contain-end::before{content:"\FA3E"}.mdi-contain-start::before{content:"\FA3F"}.mdi-content-copy::before{content:"\F18F"}.mdi-content-cut::before{content:"\F190"}.mdi-content-duplicate::before{content:"\F191"}.mdi-content-paste::before{content:"\F192"}.mdi-content-save::before{content:"\F193"}.mdi-content-save-alert::before{content:"\FF5F"}.mdi-content-save-alert-outline::before{content:"\FF60"}.mdi-content-save-all::before{content:"\F194"}.mdi-content-save-all-outline::before{content:"\FF61"}.mdi-content-save-edit::before{content:"\FCD7"}.mdi-content-save-edit-outline::before{content:"\FCD8"}.mdi-content-save-move::before{content:"\FE79"}.mdi-content-save-move-outline::before{content:"\FE7A"}.mdi-content-save-outline::before{content:"\F817"}.mdi-content-save-settings::before{content:"\F61B"}.mdi-content-save-settings-outline::before{content:"\FB13"}.mdi-contrast::before{content:"\F195"}.mdi-contrast-box::before{content:"\F196"}.mdi-contrast-circle::before{content:"\F197"}.mdi-controller-classic::before{content:"\FB5E"}.mdi-controller-classic-outline::before{content:"\FB5F"}.mdi-cookie::before{content:"\F198"}.mdi-copyright::before{content:"\F5E6"}.mdi-cordova::before{content:"\F957"}.mdi-corn::before{content:"\F7B7"}.mdi-counter::before{content:"\F199"}.mdi-cow::before{content:"\F19A"}.mdi-cowboy::before{content:"\FEB8"}.mdi-cpu-32-bit::before{content:"\FEFC"}.mdi-cpu-64-bit::before{content:"\FEFD"}.mdi-crane::before{content:"\F861"}.mdi-creation::before{content:"\F1C9"}.mdi-creative-commons::before{content:"\FD47"}.mdi-credit-card::before{content:"\F19B"}.mdi-credit-card-clock::before{content:"\FEFE"}.mdi-credit-card-clock-outline::before{content:"\FFBC"}.mdi-credit-card-marker::before{content:"\FD9A"}.mdi-credit-card-multiple::before{content:"\F19C"}.mdi-credit-card-off::before{content:"\F5E4"}.mdi-credit-card-plus::before{content:"\F675"}.mdi-credit-card-refund::before{content:"\FAA7"}.mdi-credit-card-scan::before{content:"\F19D"}.mdi-credit-card-settings::before{content:"\F8D6"}.mdi-credit-card-wireless::before{content:"\FD48"}.mdi-cricket::before{content:"\FD49"}.mdi-crop::before{content:"\F19E"}.mdi-crop-free::before{content:"\F19F"}.mdi-crop-landscape::before{content:"\F1A0"}.mdi-crop-portrait::before{content:"\F1A1"}.mdi-crop-rotate::before{content:"\F695"}.mdi-crop-square::before{content:"\F1A2"}.mdi-crosshairs::before{content:"\F1A3"}.mdi-crosshairs-gps::before{content:"\F1A4"}.mdi-crosshairs-off::before{content:"\FF62"}.mdi-crown::before{content:"\F1A5"}.mdi-cryengine::before{content:"\F958"}.mdi-crystal-ball::before{content:"\FB14"}.mdi-cube::before{content:"\F1A6"}.mdi-cube-outline::before{content:"\F1A7"}.mdi-cube-scan::before{content:"\FB60"}.mdi-cube-send::before{content:"\F1A8"}.mdi-cube-unfolded::before{content:"\F1A9"}.mdi-cup::before{content:"\F1AA"}.mdi-cup-off::before{content:"\F5E5"}.mdi-cup-water::before{content:"\F1AB"}.mdi-cupboard::before{content:"\FF63"}.mdi-cupboard-outline::before{content:"\FF64"}.mdi-cupcake::before{content:"\F959"}.mdi-curling::before{content:"\F862"}.mdi-currency-bdt::before{content:"\F863"}.mdi-currency-brl::before{content:"\FB61"}.mdi-currency-btc::before{content:"\F1AC"}.mdi-currency-chf::before{content:"\F7B8"}.mdi-currency-cny::before{content:"\F7B9"}.mdi-currency-eth::before{content:"\F7BA"}.mdi-currency-eur::before{content:"\F1AD"}.mdi-currency-gbp::before{content:"\F1AE"}.mdi-currency-ils::before{content:"\FC3D"}.mdi-currency-inr::before{content:"\F1AF"}.mdi-currency-jpy::before{content:"\F7BB"}.mdi-currency-krw::before{content:"\F7BC"}.mdi-currency-kzt::before{content:"\F864"}.mdi-currency-ngn::before{content:"\F1B0"}.mdi-currency-php::before{content:"\F9E5"}.mdi-currency-rial::before{content:"\FEB9"}.mdi-currency-rub::before{content:"\F1B1"}.mdi-currency-sign::before{content:"\F7BD"}.mdi-currency-try::before{content:"\F1B2"}.mdi-currency-twd::before{content:"\F7BE"}.mdi-currency-usd::before{content:"\F1B3"}.mdi-currency-usd-off::before{content:"\F679"}.mdi-current-ac::before{content:"\F95A"}.mdi-current-dc::before{content:"\F95B"}.mdi-cursor-default::before{content:"\F1B4"}.mdi-cursor-default-click::before{content:"\FCD9"}.mdi-cursor-default-click-outline::before{content:"\FCDA"}.mdi-cursor-default-outline::before{content:"\F1B5"}.mdi-cursor-move::before{content:"\F1B6"}.mdi-cursor-pointer::before{content:"\F1B7"}.mdi-cursor-text::before{content:"\F5E7"}.mdi-database::before{content:"\F1B8"}.mdi-database-check::before{content:"\FAA8"}.mdi-database-edit::before{content:"\FB62"}.mdi-database-export::before{content:"\F95D"}.mdi-database-import::before{content:"\F95C"}.mdi-database-lock::before{content:"\FAA9"}.mdi-database-minus::before{content:"\F1B9"}.mdi-database-plus::before{content:"\F1BA"}.mdi-database-refresh::before{content:"\FCDB"}.mdi-database-remove::before{content:"\FCDC"}.mdi-database-search::before{content:"\F865"}.mdi-database-settings::before{content:"\FCDD"}.mdi-death-star::before{content:"\F8D7"}.mdi-death-star-variant::before{content:"\F8D8"}.mdi-deathly-hallows::before{content:"\FB63"}.mdi-debian::before{content:"\F8D9"}.mdi-debug-step-into::before{content:"\F1BB"}.mdi-debug-step-out::before{content:"\F1BC"}.mdi-debug-step-over::before{content:"\F1BD"}.mdi-decagram::before{content:"\F76B"}.mdi-decagram-outline::before{content:"\F76C"}.mdi-decimal-decrease::before{content:"\F1BE"}.mdi-decimal-increase::before{content:"\F1BF"}.mdi-delete::before{content:"\F1C0"}.mdi-delete-circle::before{content:"\F682"}.mdi-delete-circle-outline::before{content:"\FB64"}.mdi-delete-empty::before{content:"\F6CB"}.mdi-delete-empty-outline::before{content:"\FEBA"}.mdi-delete-forever::before{content:"\F5E8"}.mdi-delete-forever-outline::before{content:"\FB65"}.mdi-delete-outline::before{content:"\F9E6"}.mdi-delete-restore::before{content:"\F818"}.mdi-delete-sweep::before{content:"\F5E9"}.mdi-delete-sweep-outline::before{content:"\FC3E"}.mdi-delete-variant::before{content:"\F1C1"}.mdi-delta::before{content:"\F1C2"}.mdi-desk-lamp::before{content:"\F95E"}.mdi-deskphone::before{content:"\F1C3"}.mdi-desktop-classic::before{content:"\F7BF"}.mdi-desktop-mac::before{content:"\F1C4"}.mdi-desktop-mac-dashboard::before{content:"\F9E7"}.mdi-desktop-tower::before{content:"\F1C5"}.mdi-desktop-tower-monitor::before{content:"\FAAA"}.mdi-details::before{content:"\F1C6"}.mdi-dev-to::before{content:"\FD4A"}.mdi-developer-board::before{content:"\F696"}.mdi-deviantart::before{content:"\F1C7"}.mdi-dialpad::before{content:"\F61C"}.mdi-diameter::before{content:"\FC3F"}.mdi-diameter-outline::before{content:"\FC40"}.mdi-diameter-variant::before{content:"\FC41"}.mdi-diamond::before{content:"\FB66"}.mdi-diamond-outline::before{content:"\FB67"}.mdi-diamond-stone::before{content:"\F1C8"}.mdi-dice-1::before{content:"\F1CA"}.mdi-dice-2::before{content:"\F1CB"}.mdi-dice-3::before{content:"\F1CC"}.mdi-dice-4::before{content:"\F1CD"}.mdi-dice-5::before{content:"\F1CE"}.mdi-dice-6::before{content:"\F1CF"}.mdi-dice-d10::before{content:"\F76E"}.mdi-dice-d12::before{content:"\F866"}.mdi-dice-d20::before{content:"\F5EA"}.mdi-dice-d4::before{content:"\F5EB"}.mdi-dice-d6::before{content:"\F5EC"}.mdi-dice-d8::before{content:"\F5ED"}.mdi-dice-multiple::before{content:"\F76D"}.mdi-dictionary::before{content:"\F61D"}.mdi-dip-switch::before{content:"\F7C0"}.mdi-directions::before{content:"\F1D0"}.mdi-directions-fork::before{content:"\F641"}.mdi-disc::before{content:"\F5EE"}.mdi-disc-alert::before{content:"\F1D1"}.mdi-disc-player::before{content:"\F95F"}.mdi-discord::before{content:"\F66F"}.mdi-dishwasher::before{content:"\FAAB"}.mdi-disqus::before{content:"\F1D2"}.mdi-disqus-outline::before{content:"\F1D3"}.mdi-diving-flippers::before{content:"\FD9B"}.mdi-diving-helmet::before{content:"\FD9C"}.mdi-diving-scuba::before{content:"\FD9D"}.mdi-diving-scuba-flag::before{content:"\FD9E"}.mdi-diving-scuba-tank::before{content:"\FD9F"}.mdi-diving-scuba-tank-multiple::before{content:"\FDA0"}.mdi-diving-snorkel::before{content:"\FDA1"}.mdi-division::before{content:"\F1D4"}.mdi-division-box::before{content:"\F1D5"}.mdi-dlna::before{content:"\FA40"}.mdi-dna::before{content:"\F683"}.mdi-dns::before{content:"\F1D6"}.mdi-dns-outline::before{content:"\FB68"}.mdi-do-not-disturb::before{content:"\F697"}.mdi-do-not-disturb-off::before{content:"\F698"}.mdi-docker::before{content:"\F867"}.mdi-doctor::before{content:"\FA41"}.mdi-dog::before{content:"\FA42"}.mdi-dog-service::before{content:"\FAAC"}.mdi-dog-side::before{content:"\FA43"}.mdi-dolby::before{content:"\F6B2"}.mdi-dolly::before{content:"\FEBB"}.mdi-domain::before{content:"\F1D7"}.mdi-domain-off::before{content:"\FD4B"}.mdi-donkey::before{content:"\F7C1"}.mdi-door::before{content:"\F819"}.mdi-door-closed::before{content:"\F81A"}.mdi-door-open::before{content:"\F81B"}.mdi-doorbell-video::before{content:"\F868"}.mdi-dot-net::before{content:"\FAAD"}.mdi-dots-horizontal::before{content:"\F1D8"}.mdi-dots-horizontal-circle::before{content:"\F7C2"}.mdi-dots-horizontal-circle-outline::before{content:"\FB69"}.mdi-dots-vertical::before{content:"\F1D9"}.mdi-dots-vertical-circle::before{content:"\F7C3"}.mdi-dots-vertical-circle-outline::before{content:"\FB6A"}.mdi-douban::before{content:"\F699"}.mdi-download::before{content:"\F1DA"}.mdi-download-multiple::before{content:"\F9E8"}.mdi-download-network::before{content:"\F6F3"}.mdi-download-network-outline::before{content:"\FC42"}.mdi-download-outline::before{content:"\FB6B"}.mdi-drag::before{content:"\F1DB"}.mdi-drag-horizontal::before{content:"\F1DC"}.mdi-drag-variant::before{content:"\FB6C"}.mdi-drag-vertical::before{content:"\F1DD"}.mdi-drama-masks::before{content:"\FCDE"}.mdi-draw::before{content:"\FF66"}.mdi-drawing::before{content:"\F1DE"}.mdi-drawing-box::before{content:"\F1DF"}.mdi-dresser::before{content:"\FF67"}.mdi-dresser-outline::before{content:"\FF68"}.mdi-dribbble::before{content:"\F1E0"}.mdi-dribbble-box::before{content:"\F1E1"}.mdi-drone::before{content:"\F1E2"}.mdi-dropbox::before{content:"\F1E3"}.mdi-drupal::before{content:"\F1E4"}.mdi-duck::before{content:"\F1E5"}.mdi-dumbbell::before{content:"\F1E6"}.mdi-dump-truck::before{content:"\FC43"}.mdi-ear-hearing::before{content:"\F7C4"}.mdi-ear-hearing-off::before{content:"\FA44"}.mdi-earth::before{content:"\F1E7"}.mdi-earth-box::before{content:"\F6CC"}.mdi-earth-box-off::before{content:"\F6CD"}.mdi-earth-off::before{content:"\F1E8"}.mdi-edge::before{content:"\F1E9"}.mdi-egg::before{content:"\FAAE"}.mdi-egg-easter::before{content:"\FAAF"}.mdi-eight-track::before{content:"\F9E9"}.mdi-eject::before{content:"\F1EA"}.mdi-eject-outline::before{content:"\FB6D"}.mdi-electric-switch::before{content:"\FEBC"}.mdi-elephant::before{content:"\F7C5"}.mdi-elevation-decline::before{content:"\F1EB"}.mdi-elevation-rise::before{content:"\F1EC"}.mdi-elevator::before{content:"\F1ED"}.mdi-ellipse::before{content:"\FEBD"}.mdi-ellipse-outline::before{content:"\FEBE"}.mdi-email::before{content:"\F1EE"}.mdi-email-alert::before{content:"\F6CE"}.mdi-email-box::before{content:"\FCDF"}.mdi-email-check::before{content:"\FAB0"}.mdi-email-check-outline::before{content:"\FAB1"}.mdi-email-edit::before{content:"\FF00"}.mdi-email-edit-outline::before{content:"\FF01"}.mdi-email-lock::before{content:"\F1F1"}.mdi-email-mark-as-unread::before{content:"\FB6E"}.mdi-email-minus::before{content:"\FF02"}.mdi-email-minus-outline::before{content:"\FF03"}.mdi-email-multiple::before{content:"\FF04"}.mdi-email-multiple-outline::before{content:"\FF05"}.mdi-email-open::before{content:"\F1EF"}.mdi-email-open-multiple::before{content:"\FF06"}.mdi-email-open-multiple-outline::before{content:"\FF07"}.mdi-email-open-outline::before{content:"\F5EF"}.mdi-email-outline::before{content:"\F1F0"}.mdi-email-plus::before{content:"\F9EA"}.mdi-email-plus-outline::before{content:"\F9EB"}.mdi-email-search::before{content:"\F960"}.mdi-email-search-outline::before{content:"\F961"}.mdi-email-variant::before{content:"\F5F0"}.mdi-ember::before{content:"\FB15"}.mdi-emby::before{content:"\F6B3"}.mdi-emoticon::before{content:"\FC44"}.mdi-emoticon-angry::before{content:"\FC45"}.mdi-emoticon-angry-outline::before{content:"\FC46"}.mdi-emoticon-cool::before{content:"\FC47"}.mdi-emoticon-cool-outline::before{content:"\F1F3"}.mdi-emoticon-cry::before{content:"\FC48"}.mdi-emoticon-cry-outline::before{content:"\FC49"}.mdi-emoticon-dead::before{content:"\FC4A"}.mdi-emoticon-dead-outline::before{content:"\F69A"}.mdi-emoticon-devil::before{content:"\FC4B"}.mdi-emoticon-devil-outline::before{content:"\F1F4"}.mdi-emoticon-excited::before{content:"\FC4C"}.mdi-emoticon-excited-outline::before{content:"\F69B"}.mdi-emoticon-frown::before{content:"\FF69"}.mdi-emoticon-frown-outline::before{content:"\FF6A"}.mdi-emoticon-happy::before{content:"\FC4D"}.mdi-emoticon-happy-outline::before{content:"\F1F5"}.mdi-emoticon-kiss::before{content:"\FC4E"}.mdi-emoticon-kiss-outline::before{content:"\FC4F"}.mdi-emoticon-neutral::before{content:"\FC50"}.mdi-emoticon-neutral-outline::before{content:"\F1F6"}.mdi-emoticon-outline::before{content:"\F1F2"}.mdi-emoticon-poop::before{content:"\F1F7"}.mdi-emoticon-poop-outline::before{content:"\FC51"}.mdi-emoticon-sad::before{content:"\FC52"}.mdi-emoticon-sad-outline::before{content:"\F1F8"}.mdi-emoticon-tongue::before{content:"\F1F9"}.mdi-emoticon-tongue-outline::before{content:"\FC53"}.mdi-emoticon-wink::before{content:"\FC54"}.mdi-emoticon-wink-outline::before{content:"\FC55"}.mdi-engine::before{content:"\F1FA"}.mdi-engine-off::before{content:"\FA45"}.mdi-engine-off-outline::before{content:"\FA46"}.mdi-engine-outline::before{content:"\F1FB"}.mdi-equal::before{content:"\F1FC"}.mdi-equal-box::before{content:"\F1FD"}.mdi-equalizer::before{content:"\FEBF"}.mdi-equalizer-outline::before{content:"\FEC0"}.mdi-eraser::before{content:"\F1FE"}.mdi-eraser-variant::before{content:"\F642"}.mdi-escalator::before{content:"\F1FF"}.mdi-eslint::before{content:"\FC56"}.mdi-et::before{content:"\FAB2"}.mdi-ethereum::before{content:"\F869"}.mdi-ethernet::before{content:"\F200"}.mdi-ethernet-cable::before{content:"\F201"}.mdi-ethernet-cable-off::before{content:"\F202"}.mdi-etsy::before{content:"\F203"}.mdi-ev-station::before{content:"\F5F1"}.mdi-eventbrite::before{content:"\F7C6"}.mdi-evernote::before{content:"\F204"}.mdi-exclamation::before{content:"\F205"}.mdi-exit-run::before{content:"\FA47"}.mdi-exit-to-app::before{content:"\F206"}.mdi-expand-all::before{content:"\FAB3"}.mdi-expand-all-outline::before{content:"\FAB4"}.mdi-exponent::before{content:"\F962"}.mdi-exponent-box::before{content:"\F963"}.mdi-export::before{content:"\F207"}.mdi-export-variant::before{content:"\FB6F"}.mdi-eye::before{content:"\F208"}.mdi-eye-check::before{content:"\FCE0"}.mdi-eye-check-outline::before{content:"\FCE1"}.mdi-eye-circle::before{content:"\FB70"}.mdi-eye-circle-outline::before{content:"\FB71"}.mdi-eye-off::before{content:"\F209"}.mdi-eye-off-outline::before{content:"\F6D0"}.mdi-eye-outline::before{content:"\F6CF"}.mdi-eye-plus::before{content:"\F86A"}.mdi-eye-plus-outline::before{content:"\F86B"}.mdi-eye-settings::before{content:"\F86C"}.mdi-eye-settings-outline::before{content:"\F86D"}.mdi-eyedropper::before{content:"\F20A"}.mdi-eyedropper-variant::before{content:"\F20B"}.mdi-face::before{content:"\F643"}.mdi-face-agent::before{content:"\FD4C"}.mdi-face-outline::before{content:"\FB72"}.mdi-face-profile::before{content:"\F644"}.mdi-face-recognition::before{content:"\FC57"}.mdi-facebook::before{content:"\F20C"}.mdi-facebook-box::before{content:"\F20D"}.mdi-facebook-messenger::before{content:"\F20E"}.mdi-facebook-workplace::before{content:"\FB16"}.mdi-factory::before{content:"\F20F"}.mdi-fan::before{content:"\F210"}.mdi-fan-off::before{content:"\F81C"}.mdi-fast-forward::before{content:"\F211"}.mdi-fast-forward-10::before{content:"\FD4D"}.mdi-fast-forward-30::before{content:"\FCE2"}.mdi-fast-forward-outline::before{content:"\F6D1"}.mdi-fax::before{content:"\F212"}.mdi-feather::before{content:"\F6D2"}.mdi-feature-search::before{content:"\FA48"}.mdi-feature-search-outline::before{content:"\FA49"}.mdi-fedora::before{content:"\F8DA"}.mdi-ferris-wheel::before{content:"\FEC1"}.mdi-ferry::before{content:"\F213"}.mdi-file::before{content:"\F214"}.mdi-file-account::before{content:"\F73A"}.mdi-file-alert::before{content:"\FA4A"}.mdi-file-alert-outline::before{content:"\FA4B"}.mdi-file-cabinet::before{content:"\FAB5"}.mdi-file-cad::before{content:"\FF08"}.mdi-file-cad-box::before{content:"\FF09"}.mdi-file-cancel::before{content:"\FDA2"}.mdi-file-cancel-outline::before{content:"\FDA3"}.mdi-file-chart::before{content:"\F215"}.mdi-file-check::before{content:"\F216"}.mdi-file-check-outline::before{content:"\FE7B"}.mdi-file-cloud::before{content:"\F217"}.mdi-file-compare::before{content:"\F8A9"}.mdi-file-delimited::before{content:"\F218"}.mdi-file-delimited-outline::before{content:"\FEC2"}.mdi-file-document::before{content:"\F219"}.mdi-file-document-box::before{content:"\F21A"}.mdi-file-document-box-check::before{content:"\FEC3"}.mdi-file-document-box-check-outline::before{content:"\FEC4"}.mdi-file-document-box-minus::before{content:"\FEC5"}.mdi-file-document-box-minus-outline::before{content:"\FEC6"}.mdi-file-document-box-multiple::before{content:"\FAB6"}.mdi-file-document-box-multiple-outline::before{content:"\FAB7"}.mdi-file-document-box-outline::before{content:"\F9EC"}.mdi-file-document-box-plus::before{content:"\FEC7"}.mdi-file-document-box-plus-outline::before{content:"\FEC8"}.mdi-file-document-box-remove::before{content:"\FEC9"}.mdi-file-document-box-remove-outline::before{content:"\FECA"}.mdi-file-document-box-search::before{content:"\FECB"}.mdi-file-document-box-search-outline::before{content:"\FECC"}.mdi-file-document-edit::before{content:"\FDA4"}.mdi-file-document-edit-outline::before{content:"\FDA5"}.mdi-file-document-outline::before{content:"\F9ED"}.mdi-file-download::before{content:"\F964"}.mdi-file-download-outline::before{content:"\F965"}.mdi-file-excel::before{content:"\F21B"}.mdi-file-excel-box::before{content:"\F21C"}.mdi-file-export::before{content:"\F21D"}.mdi-file-eye::before{content:"\FDA6"}.mdi-file-eye-outline::before{content:"\FDA7"}.mdi-file-find::before{content:"\F21E"}.mdi-file-find-outline::before{content:"\FB73"}.mdi-file-hidden::before{content:"\F613"}.mdi-file-image::before{content:"\F21F"}.mdi-file-image-outline::before{content:"\FECD"}.mdi-file-import::before{content:"\F220"}.mdi-file-lock::before{content:"\F221"}.mdi-file-move::before{content:"\FAB8"}.mdi-file-multiple::before{content:"\F222"}.mdi-file-music::before{content:"\F223"}.mdi-file-music-outline::before{content:"\FE7C"}.mdi-file-outline::before{content:"\F224"}.mdi-file-pdf::before{content:"\F225"}.mdi-file-pdf-box::before{content:"\F226"}.mdi-file-pdf-outline::before{content:"\FE7D"}.mdi-file-percent::before{content:"\F81D"}.mdi-file-plus::before{content:"\F751"}.mdi-file-plus-outline::before{content:"\FF0A"}.mdi-file-powerpoint::before{content:"\F227"}.mdi-file-powerpoint-box::before{content:"\F228"}.mdi-file-presentation-box::before{content:"\F229"}.mdi-file-question::before{content:"\F86E"}.mdi-file-remove::before{content:"\FB74"}.mdi-file-replace::before{content:"\FB17"}.mdi-file-replace-outline::before{content:"\FB18"}.mdi-file-restore::before{content:"\F670"}.mdi-file-search::before{content:"\FC58"}.mdi-file-search-outline::before{content:"\FC59"}.mdi-file-send::before{content:"\F22A"}.mdi-file-table::before{content:"\FC5A"}.mdi-file-table-outline::before{content:"\FC5B"}.mdi-file-tree::before{content:"\F645"}.mdi-file-undo::before{content:"\F8DB"}.mdi-file-upload::before{content:"\FA4C"}.mdi-file-upload-outline::before{content:"\FA4D"}.mdi-file-video::before{content:"\F22B"}.mdi-file-video-outline::before{content:"\FE10"}.mdi-file-word::before{content:"\F22C"}.mdi-file-word-box::before{content:"\F22D"}.mdi-file-xml::before{content:"\F22E"}.mdi-film::before{content:"\F22F"}.mdi-filmstrip::before{content:"\F230"}.mdi-filmstrip-off::before{content:"\F231"}.mdi-filter::before{content:"\F232"}.mdi-filter-minus::before{content:"\FF0B"}.mdi-filter-minus-outline::before{content:"\FF0C"}.mdi-filter-outline::before{content:"\F233"}.mdi-filter-plus::before{content:"\FF0D"}.mdi-filter-plus-outline::before{content:"\FF0E"}.mdi-filter-remove::before{content:"\F234"}.mdi-filter-remove-outline::before{content:"\F235"}.mdi-filter-variant::before{content:"\F236"}.mdi-finance::before{content:"\F81E"}.mdi-find-replace::before{content:"\F6D3"}.mdi-fingerprint::before{content:"\F237"}.mdi-fingerprint-off::before{content:"\FECE"}.mdi-fire::before{content:"\F238"}.mdi-fire-extinguisher::before{content:"\FF0F"}.mdi-fire-truck::before{content:"\F8AA"}.mdi-firebase::before{content:"\F966"}.mdi-firefox::before{content:"\F239"}.mdi-fireplace::before{content:"\FE11"}.mdi-fireplace-off::before{content:"\FE12"}.mdi-firework::before{content:"\FE13"}.mdi-fish::before{content:"\F23A"}.mdi-fishbowl::before{content:"\FF10"}.mdi-fishbowl-outline::before{content:"\FF11"}.mdi-fit-to-page::before{content:"\FF12"}.mdi-fit-to-page-outline::before{content:"\FF13"}.mdi-flag::before{content:"\F23B"}.mdi-flag-checkered::before{content:"\F23C"}.mdi-flag-minus::before{content:"\FB75"}.mdi-flag-outline::before{content:"\F23D"}.mdi-flag-plus::before{content:"\FB76"}.mdi-flag-remove::before{content:"\FB77"}.mdi-flag-triangle::before{content:"\F23F"}.mdi-flag-variant::before{content:"\F240"}.mdi-flag-variant-outline::before{content:"\F23E"}.mdi-flare::before{content:"\FD4E"}.mdi-flash::before{content:"\F241"}.mdi-flash-alert::before{content:"\FF14"}.mdi-flash-alert-outline::before{content:"\FF15"}.mdi-flash-auto::before{content:"\F242"}.mdi-flash-circle::before{content:"\F81F"}.mdi-flash-off::before{content:"\F243"}.mdi-flash-outline::before{content:"\F6D4"}.mdi-flash-red-eye::before{content:"\F67A"}.mdi-flashlight::before{content:"\F244"}.mdi-flashlight-off::before{content:"\F245"}.mdi-flask::before{content:"\F093"}.mdi-flask-empty::before{content:"\F094"}.mdi-flask-empty-outline::before{content:"\F095"}.mdi-flask-outline::before{content:"\F096"}.mdi-flattr::before{content:"\F246"}.mdi-flickr::before{content:"\FCE3"}.mdi-flip-to-back::before{content:"\F247"}.mdi-flip-to-front::before{content:"\F248"}.mdi-floor-lamp::before{content:"\F8DC"}.mdi-floor-plan::before{content:"\F820"}.mdi-floppy::before{content:"\F249"}.mdi-floppy-variant::before{content:"\F9EE"}.mdi-flower::before{content:"\F24A"}.mdi-flower-outline::before{content:"\F9EF"}.mdi-flower-poppy::before{content:"\FCE4"}.mdi-flower-tulip::before{content:"\F9F0"}.mdi-flower-tulip-outline::before{content:"\F9F1"}.mdi-focus-auto::before{content:"\FF6B"}.mdi-focus-field::before{content:"\FF6C"}.mdi-focus-field-horizontal::before{content:"\FF6D"}.mdi-focus-field-vertical::before{content:"\FF6E"}.mdi-folder::before{content:"\F24B"}.mdi-folder-account::before{content:"\F24C"}.mdi-folder-account-outline::before{content:"\FB78"}.mdi-folder-alert::before{content:"\FDA8"}.mdi-folder-alert-outline::before{content:"\FDA9"}.mdi-folder-clock::before{content:"\FAB9"}.mdi-folder-clock-outline::before{content:"\FABA"}.mdi-folder-download::before{content:"\F24D"}.mdi-folder-edit::before{content:"\F8DD"}.mdi-folder-edit-outline::before{content:"\FDAA"}.mdi-folder-google-drive::before{content:"\F24E"}.mdi-folder-image::before{content:"\F24F"}.mdi-folder-key::before{content:"\F8AB"}.mdi-folder-key-network::before{content:"\F8AC"}.mdi-folder-key-network-outline::before{content:"\FC5C"}.mdi-folder-lock::before{content:"\F250"}.mdi-folder-lock-open::before{content:"\F251"}.mdi-folder-move::before{content:"\F252"}.mdi-folder-multiple::before{content:"\F253"}.mdi-folder-multiple-image::before{content:"\F254"}.mdi-folder-multiple-outline::before{content:"\F255"}.mdi-folder-network::before{content:"\F86F"}.mdi-folder-network-outline::before{content:"\FC5D"}.mdi-folder-open::before{content:"\F76F"}.mdi-folder-open-outline::before{content:"\FDAB"}.mdi-folder-outline::before{content:"\F256"}.mdi-folder-plus::before{content:"\F257"}.mdi-folder-plus-outline::before{content:"\FB79"}.mdi-folder-pound::before{content:"\FCE5"}.mdi-folder-pound-outline::before{content:"\FCE6"}.mdi-folder-remove::before{content:"\F258"}.mdi-folder-remove-outline::before{content:"\FB7A"}.mdi-folder-search::before{content:"\F967"}.mdi-folder-search-outline::before{content:"\F968"}.mdi-folder-star::before{content:"\F69C"}.mdi-folder-star-outline::before{content:"\FB7B"}.mdi-folder-sync::before{content:"\FCE7"}.mdi-folder-sync-outline::before{content:"\FCE8"}.mdi-folder-text::before{content:"\FC5E"}.mdi-folder-text-outline::before{content:"\FC5F"}.mdi-folder-upload::before{content:"\F259"}.mdi-font-awesome::before{content:"\F03A"}.mdi-food::before{content:"\F25A"}.mdi-food-apple::before{content:"\F25B"}.mdi-food-apple-outline::before{content:"\FC60"}.mdi-food-croissant::before{content:"\F7C7"}.mdi-food-fork-drink::before{content:"\F5F2"}.mdi-food-off::before{content:"\F5F3"}.mdi-food-variant::before{content:"\F25C"}.mdi-foot-print::before{content:"\FF6F"}.mdi-football::before{content:"\F25D"}.mdi-football-australian::before{content:"\F25E"}.mdi-football-helmet::before{content:"\F25F"}.mdi-forklift::before{content:"\F7C8"}.mdi-format-align-bottom::before{content:"\F752"}.mdi-format-align-center::before{content:"\F260"}.mdi-format-align-justify::before{content:"\F261"}.mdi-format-align-left::before{content:"\F262"}.mdi-format-align-middle::before{content:"\F753"}.mdi-format-align-right::before{content:"\F263"}.mdi-format-align-top::before{content:"\F754"}.mdi-format-annotation-minus::before{content:"\FABB"}.mdi-format-annotation-plus::before{content:"\F646"}.mdi-format-bold::before{content:"\F264"}.mdi-format-clear::before{content:"\F265"}.mdi-format-color-fill::before{content:"\F266"}.mdi-format-color-highlight::before{content:"\FE14"}.mdi-format-color-text::before{content:"\F69D"}.mdi-format-columns::before{content:"\F8DE"}.mdi-format-float-center::before{content:"\F267"}.mdi-format-float-left::before{content:"\F268"}.mdi-format-float-none::before{content:"\F269"}.mdi-format-float-right::before{content:"\F26A"}.mdi-format-font::before{content:"\F6D5"}.mdi-format-font-size-decrease::before{content:"\F9F2"}.mdi-format-font-size-increase::before{content:"\F9F3"}.mdi-format-header-1::before{content:"\F26B"}.mdi-format-header-2::before{content:"\F26C"}.mdi-format-header-3::before{content:"\F26D"}.mdi-format-header-4::before{content:"\F26E"}.mdi-format-header-5::before{content:"\F26F"}.mdi-format-header-6::before{content:"\F270"}.mdi-format-header-decrease::before{content:"\F271"}.mdi-format-header-equal::before{content:"\F272"}.mdi-format-header-increase::before{content:"\F273"}.mdi-format-header-pound::before{content:"\F274"}.mdi-format-horizontal-align-center::before{content:"\F61E"}.mdi-format-horizontal-align-left::before{content:"\F61F"}.mdi-format-horizontal-align-right::before{content:"\F620"}.mdi-format-indent-decrease::before{content:"\F275"}.mdi-format-indent-increase::before{content:"\F276"}.mdi-format-italic::before{content:"\F277"}.mdi-format-letter-case::before{content:"\FB19"}.mdi-format-letter-case-lower::before{content:"\FB1A"}.mdi-format-letter-case-upper::before{content:"\FB1B"}.mdi-format-line-spacing::before{content:"\F278"}.mdi-format-line-style::before{content:"\F5C8"}.mdi-format-line-weight::before{content:"\F5C9"}.mdi-format-list-bulleted::before{content:"\F279"}.mdi-format-list-bulleted-square::before{content:"\FDAC"}.mdi-format-list-bulleted-type::before{content:"\F27A"}.mdi-format-list-checkbox::before{content:"\F969"}.mdi-format-list-checks::before{content:"\F755"}.mdi-format-list-numbered::before{content:"\F27B"}.mdi-format-list-numbered-rtl::before{content:"\FCE9"}.mdi-format-list-triangle::before{content:"\FECF"}.mdi-format-overline::before{content:"\FED0"}.mdi-format-page-break::before{content:"\F6D6"}.mdi-format-paint::before{content:"\F27C"}.mdi-format-paragraph::before{content:"\F27D"}.mdi-format-pilcrow::before{content:"\F6D7"}.mdi-format-quote-close::before{content:"\F27E"}.mdi-format-quote-open::before{content:"\F756"}.mdi-format-rotate-90::before{content:"\F6A9"}.mdi-format-section::before{content:"\F69E"}.mdi-format-size::before{content:"\F27F"}.mdi-format-strikethrough::before{content:"\F280"}.mdi-format-strikethrough-variant::before{content:"\F281"}.mdi-format-subscript::before{content:"\F282"}.mdi-format-superscript::before{content:"\F283"}.mdi-format-text::before{content:"\F284"}.mdi-format-text-rotation-down::before{content:"\FD4F"}.mdi-format-text-rotation-none::before{content:"\FD50"}.mdi-format-text-variant::before{content:"\FE15"}.mdi-format-text-wrapping-clip::before{content:"\FCEA"}.mdi-format-text-wrapping-overflow::before{content:"\FCEB"}.mdi-format-text-wrapping-wrap::before{content:"\FCEC"}.mdi-format-textbox::before{content:"\FCED"}.mdi-format-textdirection-l-to-r::before{content:"\F285"}.mdi-format-textdirection-r-to-l::before{content:"\F286"}.mdi-format-title::before{content:"\F5F4"}.mdi-format-underline::before{content:"\F287"}.mdi-format-vertical-align-bottom::before{content:"\F621"}.mdi-format-vertical-align-center::before{content:"\F622"}.mdi-format-vertical-align-top::before{content:"\F623"}.mdi-format-wrap-inline::before{content:"\F288"}.mdi-format-wrap-square::before{content:"\F289"}.mdi-format-wrap-tight::before{content:"\F28A"}.mdi-format-wrap-top-bottom::before{content:"\F28B"}.mdi-forum::before{content:"\F28C"}.mdi-forum-outline::before{content:"\F821"}.mdi-forward::before{content:"\F28D"}.mdi-forwardburger::before{content:"\FD51"}.mdi-fountain::before{content:"\F96A"}.mdi-fountain-pen::before{content:"\FCEE"}.mdi-fountain-pen-tip::before{content:"\FCEF"}.mdi-foursquare::before{content:"\F28E"}.mdi-freebsd::before{content:"\F8DF"}.mdi-frequently-asked-questions::before{content:"\FED1"}.mdi-fridge::before{content:"\F290"}.mdi-fridge-bottom::before{content:"\F292"}.mdi-fridge-outline::before{content:"\F28F"}.mdi-fridge-top::before{content:"\F291"}.mdi-fuel::before{content:"\F7C9"}.mdi-fullscreen::before{content:"\F293"}.mdi-fullscreen-exit::before{content:"\F294"}.mdi-function::before{content:"\F295"}.mdi-function-variant::before{content:"\F870"}.mdi-fuse::before{content:"\FC61"}.mdi-fuse-blade::before{content:"\FC62"}.mdi-gamepad::before{content:"\F296"}.mdi-gamepad-circle::before{content:"\FE16"}.mdi-gamepad-circle-down::before{content:"\FE17"}.mdi-gamepad-circle-left::before{content:"\FE18"}.mdi-gamepad-circle-outline::before{content:"\FE19"}.mdi-gamepad-circle-right::before{content:"\FE1A"}.mdi-gamepad-circle-up::before{content:"\FE1B"}.mdi-gamepad-down::before{content:"\FE1C"}.mdi-gamepad-left::before{content:"\FE1D"}.mdi-gamepad-right::before{content:"\FE1E"}.mdi-gamepad-round::before{content:"\FE1F"}.mdi-gamepad-round-down::before{content:"\FE7E"}.mdi-gamepad-round-left::before{content:"\FE7F"}.mdi-gamepad-round-outline::before{content:"\FE80"}.mdi-gamepad-round-right::before{content:"\FE81"}.mdi-gamepad-round-up::before{content:"\FE82"}.mdi-gamepad-square::before{content:"\FED2"}.mdi-gamepad-square-outline::before{content:"\FED3"}.mdi-gamepad-up::before{content:"\FE83"}.mdi-gamepad-variant::before{content:"\F297"}.mdi-gamepad-variant-outline::before{content:"\FED4"}.mdi-gantry-crane::before{content:"\FDAD"}.mdi-garage::before{content:"\F6D8"}.mdi-garage-alert::before{content:"\F871"}.mdi-garage-open::before{content:"\F6D9"}.mdi-gas-cylinder::before{content:"\F647"}.mdi-gas-station::before{content:"\F298"}.mdi-gas-station-outline::before{content:"\FED5"}.mdi-gate::before{content:"\F299"}.mdi-gate-and::before{content:"\F8E0"}.mdi-gate-nand::before{content:"\F8E1"}.mdi-gate-nor::before{content:"\F8E2"}.mdi-gate-not::before{content:"\F8E3"}.mdi-gate-or::before{content:"\F8E4"}.mdi-gate-xnor::before{content:"\F8E5"}.mdi-gate-xor::before{content:"\F8E6"}.mdi-gatsby::before{content:"\FE84"}.mdi-gauge::before{content:"\F29A"}.mdi-gauge-empty::before{content:"\F872"}.mdi-gauge-full::before{content:"\F873"}.mdi-gauge-low::before{content:"\F874"}.mdi-gavel::before{content:"\F29B"}.mdi-gender-female::before{content:"\F29C"}.mdi-gender-male::before{content:"\F29D"}.mdi-gender-male-female::before{content:"\F29E"}.mdi-gender-transgender::before{content:"\F29F"}.mdi-gentoo::before{content:"\F8E7"}.mdi-gesture::before{content:"\F7CA"}.mdi-gesture-double-tap::before{content:"\F73B"}.mdi-gesture-pinch::before{content:"\FABC"}.mdi-gesture-spread::before{content:"\FABD"}.mdi-gesture-swipe::before{content:"\FD52"}.mdi-gesture-swipe-down::before{content:"\F73C"}.mdi-gesture-swipe-horizontal::before{content:"\FABE"}.mdi-gesture-swipe-left::before{content:"\F73D"}.mdi-gesture-swipe-right::before{content:"\F73E"}.mdi-gesture-swipe-up::before{content:"\F73F"}.mdi-gesture-swipe-vertical::before{content:"\FABF"}.mdi-gesture-tap::before{content:"\F740"}.mdi-gesture-tap-hold::before{content:"\FD53"}.mdi-gesture-two-double-tap::before{content:"\F741"}.mdi-gesture-two-tap::before{content:"\F742"}.mdi-ghost::before{content:"\F2A0"}.mdi-ghost-off::before{content:"\F9F4"}.mdi-gif::before{content:"\FD54"}.mdi-gift::before{content:"\FE85"}.mdi-gift-outline::before{content:"\F2A1"}.mdi-git::before{content:"\F2A2"}.mdi-github-box::before{content:"\F2A3"}.mdi-github-circle::before{content:"\F2A4"}.mdi-github-face::before{content:"\F6DA"}.mdi-gitlab::before{content:"\FB7C"}.mdi-glass-cocktail::before{content:"\F356"}.mdi-glass-flute::before{content:"\F2A5"}.mdi-glass-mug::before{content:"\F2A6"}.mdi-glass-stange::before{content:"\F2A7"}.mdi-glass-tulip::before{content:"\F2A8"}.mdi-glass-wine::before{content:"\F875"}.mdi-glassdoor::before{content:"\F2A9"}.mdi-glasses::before{content:"\F2AA"}.mdi-globe-model::before{content:"\F8E8"}.mdi-gmail::before{content:"\F2AB"}.mdi-gnome::before{content:"\F2AC"}.mdi-go-kart::before{content:"\FD55"}.mdi-go-kart-track::before{content:"\FD56"}.mdi-gog::before{content:"\FB7D"}.mdi-golf::before{content:"\F822"}.mdi-gondola::before{content:"\F685"}.mdi-goodreads::before{content:"\FD57"}.mdi-google::before{content:"\F2AD"}.mdi-google-adwords::before{content:"\FC63"}.mdi-google-allo::before{content:"\F801"}.mdi-google-analytics::before{content:"\F7CB"}.mdi-google-assistant::before{content:"\F7CC"}.mdi-google-cardboard::before{content:"\F2AE"}.mdi-google-chrome::before{content:"\F2AF"}.mdi-google-circles::before{content:"\F2B0"}.mdi-google-circles-communities::before{content:"\F2B1"}.mdi-google-circles-extended::before{content:"\F2B2"}.mdi-google-circles-group::before{content:"\F2B3"}.mdi-google-classroom::before{content:"\F2C0"}.mdi-google-controller::before{content:"\F2B4"}.mdi-google-controller-off::before{content:"\F2B5"}.mdi-google-drive::before{content:"\F2B6"}.mdi-google-earth::before{content:"\F2B7"}.mdi-google-fit::before{content:"\F96B"}.mdi-google-glass::before{content:"\F2B8"}.mdi-google-hangouts::before{content:"\F2C9"}.mdi-google-home::before{content:"\F823"}.mdi-google-keep::before{content:"\F6DB"}.mdi-google-lens::before{content:"\F9F5"}.mdi-google-maps::before{content:"\F5F5"}.mdi-google-nearby::before{content:"\F2B9"}.mdi-google-pages::before{content:"\F2BA"}.mdi-google-photos::before{content:"\F6DC"}.mdi-google-physical-web::before{content:"\F2BB"}.mdi-google-play::before{content:"\F2BC"}.mdi-google-plus::before{content:"\F2BD"}.mdi-google-plus-box::before{content:"\F2BE"}.mdi-google-podcast::before{content:"\FED6"}.mdi-google-spreadsheet::before{content:"\F9F6"}.mdi-google-street-view::before{content:"\FC64"}.mdi-google-translate::before{content:"\F2BF"}.mdi-gpu::before{content:"\F8AD"}.mdi-gradient::before{content:"\F69F"}.mdi-grain::before{content:"\FD58"}.mdi-graphql::before{content:"\F876"}.mdi-grave-stone::before{content:"\FB7E"}.mdi-grease-pencil::before{content:"\F648"}.mdi-greater-than::before{content:"\F96C"}.mdi-greater-than-or-equal::before{content:"\F96D"}.mdi-grid::before{content:"\F2C1"}.mdi-grid-large::before{content:"\F757"}.mdi-grid-off::before{content:"\F2C2"}.mdi-grill::before{content:"\FE86"}.mdi-group::before{content:"\F2C3"}.mdi-guitar-acoustic::before{content:"\F770"}.mdi-guitar-electric::before{content:"\F2C4"}.mdi-guitar-pick::before{content:"\F2C5"}.mdi-guitar-pick-outline::before{content:"\F2C6"}.mdi-guy-fawkes-mask::before{content:"\F824"}.mdi-hackernews::before{content:"\F624"}.mdi-hail::before{content:"\FAC0"}.mdi-halloween::before{content:"\FB7F"}.mdi-hamburger::before{content:"\F684"}.mdi-hammer::before{content:"\F8E9"}.mdi-hand::before{content:"\FA4E"}.mdi-hand-left::before{content:"\FE87"}.mdi-hand-okay::before{content:"\FA4F"}.mdi-hand-peace::before{content:"\FA50"}.mdi-hand-peace-variant::before{content:"\FA51"}.mdi-hand-pointing-down::before{content:"\FA52"}.mdi-hand-pointing-left::before{content:"\FA53"}.mdi-hand-pointing-right::before{content:"\F2C7"}.mdi-hand-pointing-up::before{content:"\FA54"}.mdi-hand-right::before{content:"\FE88"}.mdi-hand-saw::before{content:"\FE89"}.mdi-handball::before{content:"\FF70"}.mdi-hanger::before{content:"\F2C8"}.mdi-hard-hat::before{content:"\F96E"}.mdi-harddisk::before{content:"\F2CA"}.mdi-hat-fedora::before{content:"\FB80"}.mdi-hazard-lights::before{content:"\FC65"}.mdi-hdr::before{content:"\FD59"}.mdi-hdr-off::before{content:"\FD5A"}.mdi-headphones::before{content:"\F2CB"}.mdi-headphones-bluetooth::before{content:"\F96F"}.mdi-headphones-box::before{content:"\F2CC"}.mdi-headphones-off::before{content:"\F7CD"}.mdi-headphones-settings::before{content:"\F2CD"}.mdi-headset::before{content:"\F2CE"}.mdi-headset-dock::before{content:"\F2CF"}.mdi-headset-off::before{content:"\F2D0"}.mdi-heart::before{content:"\F2D1"}.mdi-heart-box::before{content:"\F2D2"}.mdi-heart-box-outline::before{content:"\F2D3"}.mdi-heart-broken::before{content:"\F2D4"}.mdi-heart-broken-outline::before{content:"\FCF0"}.mdi-heart-circle::before{content:"\F970"}.mdi-heart-circle-outline::before{content:"\F971"}.mdi-heart-flash::before{content:"\FF16"}.mdi-heart-half::before{content:"\F6DE"}.mdi-heart-half-full::before{content:"\F6DD"}.mdi-heart-half-outline::before{content:"\F6DF"}.mdi-heart-multiple::before{content:"\FA55"}.mdi-heart-multiple-outline::before{content:"\FA56"}.mdi-heart-off::before{content:"\F758"}.mdi-heart-outline::before{content:"\F2D5"}.mdi-heart-pulse::before{content:"\F5F6"}.mdi-helicopter::before{content:"\FAC1"}.mdi-help::before{content:"\F2D6"}.mdi-help-box::before{content:"\F78A"}.mdi-help-circle::before{content:"\F2D7"}.mdi-help-circle-outline::before{content:"\F625"}.mdi-help-network::before{content:"\F6F4"}.mdi-help-network-outline::before{content:"\FC66"}.mdi-help-rhombus::before{content:"\FB81"}.mdi-help-rhombus-outline::before{content:"\FB82"}.mdi-hexagon::before{content:"\F2D8"}.mdi-hexagon-multiple::before{content:"\F6E0"}.mdi-hexagon-outline::before{content:"\F2D9"}.mdi-hexagon-slice-1::before{content:"\FAC2"}.mdi-hexagon-slice-2::before{content:"\FAC3"}.mdi-hexagon-slice-3::before{content:"\FAC4"}.mdi-hexagon-slice-4::before{content:"\FAC5"}.mdi-hexagon-slice-5::before{content:"\FAC6"}.mdi-hexagon-slice-6::before{content:"\FAC7"}.mdi-hexagram::before{content:"\FAC8"}.mdi-hexagram-outline::before{content:"\FAC9"}.mdi-high-definition::before{content:"\F7CE"}.mdi-high-definition-box::before{content:"\F877"}.mdi-highway::before{content:"\F5F7"}.mdi-hiking::before{content:"\FD5B"}.mdi-hinduism::before{content:"\F972"}.mdi-history::before{content:"\F2DA"}.mdi-hockey-puck::before{content:"\F878"}.mdi-hockey-sticks::before{content:"\F879"}.mdi-hololens::before{content:"\F2DB"}.mdi-home::before{content:"\F2DC"}.mdi-home-account::before{content:"\F825"}.mdi-home-alert::before{content:"\F87A"}.mdi-home-analytics::before{content:"\FED7"}.mdi-home-assistant::before{content:"\F7CF"}.mdi-home-automation::before{content:"\F7D0"}.mdi-home-circle::before{content:"\F7D1"}.mdi-home-city::before{content:"\FCF1"}.mdi-home-city-outline::before{content:"\FCF2"}.mdi-home-currency-usd::before{content:"\F8AE"}.mdi-home-export-outline::before{content:"\FFB8"}.mdi-home-flood::before{content:"\FF17"}.mdi-home-floor-0::before{content:"\FDAE"}.mdi-home-floor-1::before{content:"\FD5C"}.mdi-home-floor-2::before{content:"\FD5D"}.mdi-home-floor-3::before{content:"\FD5E"}.mdi-home-floor-a::before{content:"\FD5F"}.mdi-home-floor-b::before{content:"\FD60"}.mdi-home-floor-g::before{content:"\FD61"}.mdi-home-floor-l::before{content:"\FD62"}.mdi-home-floor-negative-1::before{content:"\FDAF"}.mdi-home-group::before{content:"\FDB0"}.mdi-home-heart::before{content:"\F826"}.mdi-home-import-outline::before{content:"\FFB9"}.mdi-home-lock::before{content:"\F8EA"}.mdi-home-lock-open::before{content:"\F8EB"}.mdi-home-map-marker::before{content:"\F5F8"}.mdi-home-minus::before{content:"\F973"}.mdi-home-modern::before{content:"\F2DD"}.mdi-home-outline::before{content:"\F6A0"}.mdi-home-plus::before{content:"\F974"}.mdi-home-thermometer::before{content:"\FF71"}.mdi-home-thermometer-outline::before{content:"\FF72"}.mdi-home-variant::before{content:"\F2DE"}.mdi-home-variant-outline::before{content:"\FB83"}.mdi-hook::before{content:"\F6E1"}.mdi-hook-off::before{content:"\F6E2"}.mdi-hops::before{content:"\F2DF"}.mdi-horseshoe::before{content:"\FA57"}.mdi-hospital::before{content:"\F2E0"}.mdi-hospital-building::before{content:"\F2E1"}.mdi-hospital-marker::before{content:"\F2E2"}.mdi-hot-tub::before{content:"\F827"}.mdi-hotel::before{content:"\F2E3"}.mdi-houzz::before{content:"\F2E4"}.mdi-houzz-box::before{content:"\F2E5"}.mdi-hubspot::before{content:"\FCF3"}.mdi-hulu::before{content:"\F828"}.mdi-human::before{content:"\F2E6"}.mdi-human-child::before{content:"\F2E7"}.mdi-human-female::before{content:"\F649"}.mdi-human-female-boy::before{content:"\FA58"}.mdi-human-female-female::before{content:"\FA59"}.mdi-human-female-girl::before{content:"\FA5A"}.mdi-human-greeting::before{content:"\F64A"}.mdi-human-handsdown::before{content:"\F64B"}.mdi-human-handsup::before{content:"\F64C"}.mdi-human-male::before{content:"\F64D"}.mdi-human-male-boy::before{content:"\FA5B"}.mdi-human-male-female::before{content:"\F2E8"}.mdi-human-male-girl::before{content:"\FA5C"}.mdi-human-male-height::before{content:"\FF18"}.mdi-human-male-height-variant::before{content:"\FF19"}.mdi-human-male-male::before{content:"\FA5D"}.mdi-human-pregnant::before{content:"\F5CF"}.mdi-humble-bundle::before{content:"\F743"}.mdi-ice-cream::before{content:"\F829"}.mdi-ice-pop::before{content:"\FF1A"}.mdi-identifier::before{content:"\FF1B"}.mdi-iframe::before{content:"\FC67"}.mdi-iframe-outline::before{content:"\FC68"}.mdi-image::before{content:"\F2E9"}.mdi-image-album::before{content:"\F2EA"}.mdi-image-area::before{content:"\F2EB"}.mdi-image-area-close::before{content:"\F2EC"}.mdi-image-broken::before{content:"\F2ED"}.mdi-image-broken-variant::before{content:"\F2EE"}.mdi-image-filter::before{content:"\F2EF"}.mdi-image-filter-black-white::before{content:"\F2F0"}.mdi-image-filter-center-focus::before{content:"\F2F1"}.mdi-image-filter-center-focus-strong::before{content:"\FF1C"}.mdi-image-filter-center-focus-strong-outline::before{content:"\FF1D"}.mdi-image-filter-center-focus-weak::before{content:"\F2F2"}.mdi-image-filter-drama::before{content:"\F2F3"}.mdi-image-filter-frames::before{content:"\F2F4"}.mdi-image-filter-hdr::before{content:"\F2F5"}.mdi-image-filter-none::before{content:"\F2F6"}.mdi-image-filter-tilt-shift::before{content:"\F2F7"}.mdi-image-filter-vintage::before{content:"\F2F8"}.mdi-image-frame::before{content:"\FE8A"}.mdi-image-move::before{content:"\F9F7"}.mdi-image-multiple::before{content:"\F2F9"}.mdi-image-off::before{content:"\F82A"}.mdi-image-outline::before{content:"\F975"}.mdi-image-plus::before{content:"\F87B"}.mdi-image-search::before{content:"\F976"}.mdi-image-search-outline::before{content:"\F977"}.mdi-image-size-select-actual::before{content:"\FC69"}.mdi-image-size-select-large::before{content:"\FC6A"}.mdi-image-size-select-small::before{content:"\FC6B"}.mdi-import::before{content:"\F2FA"}.mdi-inbox::before{content:"\F686"}.mdi-inbox-arrow-down::before{content:"\F2FB"}.mdi-inbox-arrow-up::before{content:"\F3D1"}.mdi-inbox-multiple::before{content:"\F8AF"}.mdi-inbox-multiple-outline::before{content:"\FB84"}.mdi-incognito::before{content:"\F5F9"}.mdi-infinity::before{content:"\F6E3"}.mdi-information::before{content:"\F2FC"}.mdi-information-outline::before{content:"\F2FD"}.mdi-information-variant::before{content:"\F64E"}.mdi-instagram::before{content:"\F2FE"}.mdi-instapaper::before{content:"\F2FF"}.mdi-internet-explorer::before{content:"\F300"}.mdi-invert-colors::before{content:"\F301"}.mdi-invert-colors-off::before{content:"\FE8B"}.mdi-ip::before{content:"\FA5E"}.mdi-ip-network::before{content:"\FA5F"}.mdi-ip-network-outline::before{content:"\FC6C"}.mdi-ipod::before{content:"\FC6D"}.mdi-islam::before{content:"\F978"}.mdi-itunes::before{content:"\F676"}.mdi-jabber::before{content:"\FDB1"}.mdi-jeepney::before{content:"\F302"}.mdi-jellyfish::before{content:"\FF1E"}.mdi-jellyfish-outline::before{content:"\FF1F"}.mdi-jira::before{content:"\F303"}.mdi-jquery::before{content:"\F87C"}.mdi-jsfiddle::before{content:"\F304"}.mdi-json::before{content:"\F626"}.mdi-judaism::before{content:"\F979"}.mdi-kabaddi::before{content:"\FD63"}.mdi-karate::before{content:"\F82B"}.mdi-keg::before{content:"\F305"}.mdi-kettle::before{content:"\F5FA"}.mdi-kettle-outline::before{content:"\FF73"}.mdi-key::before{content:"\F306"}.mdi-key-change::before{content:"\F307"}.mdi-key-minus::before{content:"\F308"}.mdi-key-outline::before{content:"\FDB2"}.mdi-key-plus::before{content:"\F309"}.mdi-key-remove::before{content:"\F30A"}.mdi-key-variant::before{content:"\F30B"}.mdi-keyboard::before{content:"\F30C"}.mdi-keyboard-backspace::before{content:"\F30D"}.mdi-keyboard-caps::before{content:"\F30E"}.mdi-keyboard-close::before{content:"\F30F"}.mdi-keyboard-off::before{content:"\F310"}.mdi-keyboard-off-outline::before{content:"\FE8C"}.mdi-keyboard-outline::before{content:"\F97A"}.mdi-keyboard-return::before{content:"\F311"}.mdi-keyboard-settings::before{content:"\F9F8"}.mdi-keyboard-settings-outline::before{content:"\F9F9"}.mdi-keyboard-tab::before{content:"\F312"}.mdi-keyboard-variant::before{content:"\F313"}.mdi-kickstarter::before{content:"\F744"}.mdi-knife::before{content:"\F9FA"}.mdi-knife-military::before{content:"\F9FB"}.mdi-kodi::before{content:"\F314"}.mdi-label::before{content:"\F315"}.mdi-label-off::before{content:"\FACA"}.mdi-label-off-outline::before{content:"\FACB"}.mdi-label-outline::before{content:"\F316"}.mdi-label-variant::before{content:"\FACC"}.mdi-label-variant-outline::before{content:"\FACD"}.mdi-ladybug::before{content:"\F82C"}.mdi-lambda::before{content:"\F627"}.mdi-lamp::before{content:"\F6B4"}.mdi-lan::before{content:"\F317"}.mdi-lan-connect::before{content:"\F318"}.mdi-lan-disconnect::before{content:"\F319"}.mdi-lan-pending::before{content:"\F31A"}.mdi-language-c::before{content:"\F671"}.mdi-language-cpp::before{content:"\F672"}.mdi-language-csharp::before{content:"\F31B"}.mdi-language-css3::before{content:"\F31C"}.mdi-language-go::before{content:"\F7D2"}.mdi-language-haskell::before{content:"\FC6E"}.mdi-language-html5::before{content:"\F31D"}.mdi-language-java::before{content:"\FB1C"}.mdi-language-javascript::before{content:"\F31E"}.mdi-language-lua::before{content:"\F8B0"}.mdi-language-php::before{content:"\F31F"}.mdi-language-python::before{content:"\F320"}.mdi-language-python-text::before{content:"\F321"}.mdi-language-r::before{content:"\F7D3"}.mdi-language-ruby-on-rails::before{content:"\FACE"}.mdi-language-swift::before{content:"\F6E4"}.mdi-language-typescript::before{content:"\F6E5"}.mdi-laptop::before{content:"\F322"}.mdi-laptop-chromebook::before{content:"\F323"}.mdi-laptop-mac::before{content:"\F324"}.mdi-laptop-off::before{content:"\F6E6"}.mdi-laptop-windows::before{content:"\F325"}.mdi-laravel::before{content:"\FACF"}.mdi-lasso::before{content:"\FF20"}.mdi-lastfm::before{content:"\F326"}.mdi-lastpass::before{content:"\F446"}.mdi-latitude::before{content:"\FF74"}.mdi-launch::before{content:"\F327"}.mdi-lava-lamp::before{content:"\F7D4"}.mdi-layers::before{content:"\F328"}.mdi-layers-minus::before{content:"\FE8D"}.mdi-layers-off::before{content:"\F329"}.mdi-layers-off-outline::before{content:"\F9FC"}.mdi-layers-outline::before{content:"\F9FD"}.mdi-layers-plus::before{content:"\FE30"}.mdi-layers-remove::before{content:"\FE31"}.mdi-layers-triple::before{content:"\FF75"}.mdi-layers-triple-outline::before{content:"\FF76"}.mdi-lead-pencil::before{content:"\F64F"}.mdi-leaf::before{content:"\F32A"}.mdi-leaf-maple::before{content:"\FC6F"}.mdi-leak::before{content:"\FDB3"}.mdi-leak-off::before{content:"\FDB4"}.mdi-led-off::before{content:"\F32B"}.mdi-led-on::before{content:"\F32C"}.mdi-led-outline::before{content:"\F32D"}.mdi-led-strip::before{content:"\F7D5"}.mdi-led-variant-off::before{content:"\F32E"}.mdi-led-variant-on::before{content:"\F32F"}.mdi-led-variant-outline::before{content:"\F330"}.mdi-less-than::before{content:"\F97B"}.mdi-less-than-or-equal::before{content:"\F97C"}.mdi-library::before{content:"\F331"}.mdi-library-books::before{content:"\F332"}.mdi-library-movie::before{content:"\FCF4"}.mdi-library-music::before{content:"\F333"}.mdi-library-music-outline::before{content:"\FF21"}.mdi-library-plus::before{content:"\F334"}.mdi-library-shelves::before{content:"\FB85"}.mdi-library-video::before{content:"\FCF5"}.mdi-lifebuoy::before{content:"\F87D"}.mdi-light-switch::before{content:"\F97D"}.mdi-lightbulb::before{content:"\F335"}.mdi-lightbulb-off::before{content:"\FE32"}.mdi-lightbulb-off-outline::before{content:"\FE33"}.mdi-lightbulb-on::before{content:"\F6E7"}.mdi-lightbulb-on-outline::before{content:"\F6E8"}.mdi-lightbulb-outline::before{content:"\F336"}.mdi-lighthouse::before{content:"\F9FE"}.mdi-lighthouse-on::before{content:"\F9FF"}.mdi-link::before{content:"\F337"}.mdi-link-box::before{content:"\FCF6"}.mdi-link-box-outline::before{content:"\FCF7"}.mdi-link-box-variant::before{content:"\FCF8"}.mdi-link-box-variant-outline::before{content:"\FCF9"}.mdi-link-off::before{content:"\F338"}.mdi-link-plus::before{content:"\FC70"}.mdi-link-variant::before{content:"\F339"}.mdi-link-variant-off::before{content:"\F33A"}.mdi-linkedin::before{content:"\F33B"}.mdi-linkedin-box::before{content:"\F33C"}.mdi-linux::before{content:"\F33D"}.mdi-linux-mint::before{content:"\F8EC"}.mdi-litecoin::before{content:"\FA60"}.mdi-loading::before{content:"\F771"}.mdi-lock::before{content:"\F33E"}.mdi-lock-alert::before{content:"\F8ED"}.mdi-lock-clock::before{content:"\F97E"}.mdi-lock-open::before{content:"\F33F"}.mdi-lock-open-outline::before{content:"\F340"}.mdi-lock-outline::before{content:"\F341"}.mdi-lock-pattern::before{content:"\F6E9"}.mdi-lock-plus::before{content:"\F5FB"}.mdi-lock-question::before{content:"\F8EE"}.mdi-lock-reset::before{content:"\F772"}.mdi-lock-smart::before{content:"\F8B1"}.mdi-locker::before{content:"\F7D6"}.mdi-locker-multiple::before{content:"\F7D7"}.mdi-login::before{content:"\F342"}.mdi-login-variant::before{content:"\F5FC"}.mdi-logout::before{content:"\F343"}.mdi-logout-variant::before{content:"\F5FD"}.mdi-longitude::before{content:"\FF77"}.mdi-looks::before{content:"\F344"}.mdi-loop::before{content:"\F6EA"}.mdi-loupe::before{content:"\F345"}.mdi-lumx::before{content:"\F346"}.mdi-lyft::before{content:"\FB1D"}.mdi-magnet::before{content:"\F347"}.mdi-magnet-on::before{content:"\F348"}.mdi-magnify::before{content:"\F349"}.mdi-magnify-close::before{content:"\F97F"}.mdi-magnify-minus::before{content:"\F34A"}.mdi-magnify-minus-cursor::before{content:"\FA61"}.mdi-magnify-minus-outline::before{content:"\F6EB"}.mdi-magnify-plus::before{content:"\F34B"}.mdi-magnify-plus-cursor::before{content:"\FA62"}.mdi-magnify-plus-outline::before{content:"\F6EC"}.mdi-mail::before{content:"\FED8"}.mdi-mail-ru::before{content:"\F34C"}.mdi-mailbox::before{content:"\F6ED"}.mdi-mailbox-open::before{content:"\FD64"}.mdi-mailbox-open-outline::before{content:"\FD65"}.mdi-mailbox-open-up::before{content:"\FD66"}.mdi-mailbox-open-up-outline::before{content:"\FD67"}.mdi-mailbox-outline::before{content:"\FD68"}.mdi-mailbox-up::before{content:"\FD69"}.mdi-mailbox-up-outline::before{content:"\FD6A"}.mdi-map::before{content:"\F34D"}.mdi-map-check::before{content:"\FED9"}.mdi-map-check-outline::before{content:"\FEDA"}.mdi-map-clock::before{content:"\FCFA"}.mdi-map-clock-outline::before{content:"\FCFB"}.mdi-map-legend::before{content:"\FA00"}.mdi-map-marker::before{content:"\F34E"}.mdi-map-marker-alert::before{content:"\FF22"}.mdi-map-marker-alert-outline::before{content:"\FF23"}.mdi-map-marker-check::before{content:"\FC71"}.mdi-map-marker-circle::before{content:"\F34F"}.mdi-map-marker-distance::before{content:"\F8EF"}.mdi-map-marker-minus::before{content:"\F650"}.mdi-map-marker-multiple::before{content:"\F350"}.mdi-map-marker-off::before{content:"\F351"}.mdi-map-marker-outline::before{content:"\F7D8"}.mdi-map-marker-path::before{content:"\FCFC"}.mdi-map-marker-plus::before{content:"\F651"}.mdi-map-marker-question::before{content:"\FF24"}.mdi-map-marker-question-outline::before{content:"\FF25"}.mdi-map-marker-radius::before{content:"\F352"}.mdi-map-marker-remove::before{content:"\FF26"}.mdi-map-marker-remove-variant::before{content:"\FF27"}.mdi-map-minus::before{content:"\F980"}.mdi-map-outline::before{content:"\F981"}.mdi-map-plus::before{content:"\F982"}.mdi-map-search::before{content:"\F983"}.mdi-map-search-outline::before{content:"\F984"}.mdi-mapbox::before{content:"\FB86"}.mdi-margin::before{content:"\F353"}.mdi-markdown::before{content:"\F354"}.mdi-markdown-outline::before{content:"\FF78"}.mdi-marker::before{content:"\F652"}.mdi-marker-cancel::before{content:"\FDB5"}.mdi-marker-check::before{content:"\F355"}.mdi-mastodon::before{content:"\FAD0"}.mdi-mastodon-variant::before{content:"\FAD1"}.mdi-material-design::before{content:"\F985"}.mdi-material-ui::before{content:"\F357"}.mdi-math-compass::before{content:"\F358"}.mdi-math-cos::before{content:"\FC72"}.mdi-math-sin::before{content:"\FC73"}.mdi-math-tan::before{content:"\FC74"}.mdi-matrix::before{content:"\F628"}.mdi-maxcdn::before{content:"\F359"}.mdi-medal::before{content:"\F986"}.mdi-medical-bag::before{content:"\F6EE"}.mdi-medium::before{content:"\F35A"}.mdi-meetup::before{content:"\FAD2"}.mdi-memory::before{content:"\F35B"}.mdi-menu::before{content:"\F35C"}.mdi-menu-down::before{content:"\F35D"}.mdi-menu-down-outline::before{content:"\F6B5"}.mdi-menu-left::before{content:"\F35E"}.mdi-menu-left-outline::before{content:"\FA01"}.mdi-menu-open::before{content:"\FB87"}.mdi-menu-right::before{content:"\F35F"}.mdi-menu-right-outline::before{content:"\FA02"}.mdi-menu-swap::before{content:"\FA63"}.mdi-menu-swap-outline::before{content:"\FA64"}.mdi-menu-up::before{content:"\F360"}.mdi-menu-up-outline::before{content:"\F6B6"}.mdi-merge::before{content:"\FF79"}.mdi-message::before{content:"\F361"}.mdi-message-alert::before{content:"\F362"}.mdi-message-alert-outline::before{content:"\FA03"}.mdi-message-bulleted::before{content:"\F6A1"}.mdi-message-bulleted-off::before{content:"\F6A2"}.mdi-message-draw::before{content:"\F363"}.mdi-message-image::before{content:"\F364"}.mdi-message-outline::before{content:"\F365"}.mdi-message-plus::before{content:"\F653"}.mdi-message-processing::before{content:"\F366"}.mdi-message-reply::before{content:"\F367"}.mdi-message-reply-text::before{content:"\F368"}.mdi-message-settings::before{content:"\F6EF"}.mdi-message-settings-variant::before{content:"\F6F0"}.mdi-message-text::before{content:"\F369"}.mdi-message-text-outline::before{content:"\F36A"}.mdi-message-video::before{content:"\F36B"}.mdi-meteor::before{content:"\F629"}.mdi-metronome::before{content:"\F7D9"}.mdi-metronome-tick::before{content:"\F7DA"}.mdi-micro-sd::before{content:"\F7DB"}.mdi-microphone::before{content:"\F36C"}.mdi-microphone-minus::before{content:"\F8B2"}.mdi-microphone-off::before{content:"\F36D"}.mdi-microphone-outline::before{content:"\F36E"}.mdi-microphone-plus::before{content:"\F8B3"}.mdi-microphone-settings::before{content:"\F36F"}.mdi-microphone-variant::before{content:"\F370"}.mdi-microphone-variant-off::before{content:"\F371"}.mdi-microscope::before{content:"\F654"}.mdi-microsoft::before{content:"\F372"}.mdi-microsoft-dynamics::before{content:"\F987"}.mdi-microwave::before{content:"\FC75"}.mdi-middleware::before{content:"\FF7A"}.mdi-middleware-outline::before{content:"\FF7B"}.mdi-midi::before{content:"\F8F0"}.mdi-midi-port::before{content:"\F8F1"}.mdi-mine::before{content:"\FDB6"}.mdi-minecraft::before{content:"\F373"}.mdi-mini-sd::before{content:"\FA04"}.mdi-minidisc::before{content:"\FA05"}.mdi-minus::before{content:"\F374"}.mdi-minus-box::before{content:"\F375"}.mdi-minus-box-outline::before{content:"\F6F1"}.mdi-minus-circle::before{content:"\F376"}.mdi-minus-circle-outline::before{content:"\F377"}.mdi-minus-network::before{content:"\F378"}.mdi-minus-network-outline::before{content:"\FC76"}.mdi-mixcloud::before{content:"\F62A"}.mdi-mixed-martial-arts::before{content:"\FD6B"}.mdi-mixed-reality::before{content:"\F87E"}.mdi-mixer::before{content:"\F7DC"}.mdi-molecule::before{content:"\FB88"}.mdi-monitor::before{content:"\F379"}.mdi-monitor-cellphone::before{content:"\F988"}.mdi-monitor-cellphone-star::before{content:"\F989"}.mdi-monitor-dashboard::before{content:"\FA06"}.mdi-monitor-lock::before{content:"\FDB7"}.mdi-monitor-multiple::before{content:"\F37A"}.mdi-monitor-off::before{content:"\FD6C"}.mdi-monitor-screenshot::before{content:"\FE34"}.mdi-monitor-speaker::before{content:"\FF7C"}.mdi-monitor-speaker-off::before{content:"\FF7D"}.mdi-monitor-star::before{content:"\FDB8"}.mdi-moon-first-quarter::before{content:"\FF7E"}.mdi-moon-full::before{content:"\FF7F"}.mdi-moon-last-quarter::before{content:"\FF80"}.mdi-moon-new::before{content:"\FF81"}.mdi-moon-waning-crescent::before{content:"\FF82"}.mdi-moon-waning-gibbous::before{content:"\FF83"}.mdi-moon-waxing-crescent::before{content:"\FF84"}.mdi-moon-waxing-gibbous::before{content:"\FF85"}.mdi-more::before{content:"\F37B"}.mdi-mother-nurse::before{content:"\FCFD"}.mdi-motion-sensor::before{content:"\FD6D"}.mdi-motorbike::before{content:"\F37C"}.mdi-mouse::before{content:"\F37D"}.mdi-mouse-bluetooth::before{content:"\F98A"}.mdi-mouse-off::before{content:"\F37E"}.mdi-mouse-variant::before{content:"\F37F"}.mdi-mouse-variant-off::before{content:"\F380"}.mdi-move-resize::before{content:"\F655"}.mdi-move-resize-variant::before{content:"\F656"}.mdi-movie::before{content:"\F381"}.mdi-movie-outline::before{content:"\FDB9"}.mdi-movie-roll::before{content:"\F7DD"}.mdi-muffin::before{content:"\F98B"}.mdi-multiplication::before{content:"\F382"}.mdi-multiplication-box::before{content:"\F383"}.mdi-mushroom::before{content:"\F7DE"}.mdi-mushroom-outline::before{content:"\F7DF"}.mdi-music::before{content:"\F759"}.mdi-music-accidental-double-flat::before{content:"\FF86"}.mdi-music-accidental-double-sharp::before{content:"\FF87"}.mdi-music-accidental-flat::before{content:"\FF88"}.mdi-music-accidental-natural::before{content:"\FF89"}.mdi-music-accidental-sharp::before{content:"\FF8A"}.mdi-music-box::before{content:"\F384"}.mdi-music-box-outline::before{content:"\F385"}.mdi-music-circle::before{content:"\F386"}.mdi-music-circle-outline::before{content:"\FAD3"}.mdi-music-clef-alto::before{content:"\FF8B"}.mdi-music-clef-bass::before{content:"\FF8C"}.mdi-music-clef-treble::before{content:"\FF8D"}.mdi-music-note::before{content:"\F387"}.mdi-music-note-bluetooth::before{content:"\F5FE"}.mdi-music-note-bluetooth-off::before{content:"\F5FF"}.mdi-music-note-eighth::before{content:"\F388"}.mdi-music-note-eighth-dotted::before{content:"\FF8E"}.mdi-music-note-half::before{content:"\F389"}.mdi-music-note-half-dotted::before{content:"\FF8F"}.mdi-music-note-off::before{content:"\F38A"}.mdi-music-note-off-outline::before{content:"\FF90"}.mdi-music-note-outline::before{content:"\FF91"}.mdi-music-note-plus::before{content:"\FDBA"}.mdi-music-note-quarter::before{content:"\F38B"}.mdi-music-note-quarter-dotted::before{content:"\FF92"}.mdi-music-note-sixteenth::before{content:"\F38C"}.mdi-music-note-sixteenth-dotted::before{content:"\FF93"}.mdi-music-note-whole::before{content:"\F38D"}.mdi-music-note-whole-dotted::before{content:"\FF94"}.mdi-music-off::before{content:"\F75A"}.mdi-music-rest-eighth::before{content:"\FF95"}.mdi-music-rest-half::before{content:"\FF96"}.mdi-music-rest-quarter::before{content:"\FF97"}.mdi-music-rest-sixteenth::before{content:"\FF98"}.mdi-music-rest-whole::before{content:"\FF99"}.mdi-nail::before{content:"\FDBB"}.mdi-nas::before{content:"\F8F2"}.mdi-nativescript::before{content:"\F87F"}.mdi-nature::before{content:"\F38E"}.mdi-nature-people::before{content:"\F38F"}.mdi-navigation::before{content:"\F390"}.mdi-near-me::before{content:"\F5CD"}.mdi-necklace::before{content:"\FF28"}.mdi-needle::before{content:"\F391"}.mdi-netflix::before{content:"\F745"}.mdi-network::before{content:"\F6F2"}.mdi-network-off::before{content:"\FC77"}.mdi-network-off-outline::before{content:"\FC78"}.mdi-network-outline::before{content:"\FC79"}.mdi-network-strength-1::before{content:"\F8F3"}.mdi-network-strength-1-alert::before{content:"\F8F4"}.mdi-network-strength-2::before{content:"\F8F5"}.mdi-network-strength-2-alert::before{content:"\F8F6"}.mdi-network-strength-3::before{content:"\F8F7"}.mdi-network-strength-3-alert::before{content:"\F8F8"}.mdi-network-strength-4::before{content:"\F8F9"}.mdi-network-strength-4-alert::before{content:"\F8FA"}.mdi-network-strength-off::before{content:"\F8FB"}.mdi-network-strength-off-outline::before{content:"\F8FC"}.mdi-network-strength-outline::before{content:"\F8FD"}.mdi-new-box::before{content:"\F394"}.mdi-newspaper::before{content:"\F395"}.mdi-newspaper-minus::before{content:"\FF29"}.mdi-newspaper-plus::before{content:"\FF2A"}.mdi-nfc::before{content:"\F396"}.mdi-nfc-off::before{content:"\FE35"}.mdi-nfc-search-variant::before{content:"\FE36"}.mdi-nfc-tap::before{content:"\F397"}.mdi-nfc-variant::before{content:"\F398"}.mdi-nfc-variant-off::before{content:"\FE37"}.mdi-ninja::before{content:"\F773"}.mdi-nintendo-switch::before{content:"\F7E0"}.mdi-nodejs::before{content:"\F399"}.mdi-not-equal::before{content:"\F98C"}.mdi-not-equal-variant::before{content:"\F98D"}.mdi-note::before{content:"\F39A"}.mdi-note-circle::before{content:"\FEDB"}.mdi-note-multiple::before{content:"\F6B7"}.mdi-note-multiple-outline::before{content:"\F6B8"}.mdi-note-outline::before{content:"\F39B"}.mdi-note-plus::before{content:"\F39C"}.mdi-note-plus-outline::before{content:"\F39D"}.mdi-note-text::before{content:"\F39E"}.mdi-notebook::before{content:"\F82D"}.mdi-notebook-multiple::before{content:"\FE38"}.mdi-notebook-outline::before{content:"\FEDC"}.mdi-notification-clear-all::before{content:"\F39F"}.mdi-npm::before{content:"\F6F6"}.mdi-npm-variant::before{content:"\F98E"}.mdi-npm-variant-outline::before{content:"\F98F"}.mdi-nuke::before{content:"\F6A3"}.mdi-null::before{content:"\F7E1"}.mdi-numeric::before{content:"\F3A0"}.mdi-numeric-0::before{content:"\30"}.mdi-numeric-0-box::before{content:"\F3A1"}.mdi-numeric-0-box-multiple::before{content:"\FF2B"}.mdi-numeric-0-box-multiple-outline::before{content:"\F3A2"}.mdi-numeric-0-box-outline::before{content:"\F3A3"}.mdi-numeric-0-circle::before{content:"\FC7A"}.mdi-numeric-0-circle-outline::before{content:"\FC7B"}.mdi-numeric-1::before{content:"\31"}.mdi-numeric-1-box::before{content:"\F3A4"}.mdi-numeric-1-box-multiple::before{content:"\FF2C"}.mdi-numeric-1-box-multiple-outline::before{content:"\F3A5"}.mdi-numeric-1-box-outline::before{content:"\F3A6"}.mdi-numeric-1-circle::before{content:"\FC7C"}.mdi-numeric-1-circle-outline::before{content:"\FC7D"}.mdi-numeric-10-box::before{content:"\FF9A"}.mdi-numeric-10-box-outline::before{content:"\FF9B"}.mdi-numeric-2::before{content:"\32"}.mdi-numeric-2-box::before{content:"\F3A7"}.mdi-numeric-2-box-multiple::before{content:"\FF2D"}.mdi-numeric-2-box-multiple-outline::before{content:"\F3A8"}.mdi-numeric-2-box-outline::before{content:"\F3A9"}.mdi-numeric-2-circle::before{content:"\FC7E"}.mdi-numeric-2-circle-outline::before{content:"\FC7F"}.mdi-numeric-3::before{content:"\33"}.mdi-numeric-3-box::before{content:"\F3AA"}.mdi-numeric-3-box-multiple::before{content:"\FF2E"}.mdi-numeric-3-box-multiple-outline::before{content:"\F3AB"}.mdi-numeric-3-box-outline::before{content:"\F3AC"}.mdi-numeric-3-circle::before{content:"\FC80"}.mdi-numeric-3-circle-outline::before{content:"\FC81"}.mdi-numeric-4::before{content:"\34"}.mdi-numeric-4-box::before{content:"\F3AD"}.mdi-numeric-4-box-multiple::before{content:"\FF2F"}.mdi-numeric-4-box-multiple-outline::before{content:"\F3AE"}.mdi-numeric-4-box-outline::before{content:"\F3AF"}.mdi-numeric-4-circle::before{content:"\FC82"}.mdi-numeric-4-circle-outline::before{content:"\FC83"}.mdi-numeric-5::before{content:"\35"}.mdi-numeric-5-box::before{content:"\F3B0"}.mdi-numeric-5-box-multiple::before{content:"\FF30"}.mdi-numeric-5-box-multiple-outline::before{content:"\F3B1"}.mdi-numeric-5-box-outline::before{content:"\F3B2"}.mdi-numeric-5-circle::before{content:"\FC84"}.mdi-numeric-5-circle-outline::before{content:"\FC85"}.mdi-numeric-6::before{content:"\36"}.mdi-numeric-6-box::before{content:"\F3B3"}.mdi-numeric-6-box-multiple::before{content:"\FF31"}.mdi-numeric-6-box-multiple-outline::before{content:"\F3B4"}.mdi-numeric-6-box-outline::before{content:"\F3B5"}.mdi-numeric-6-circle::before{content:"\FC86"}.mdi-numeric-6-circle-outline::before{content:"\FC87"}.mdi-numeric-7::before{content:"\37"}.mdi-numeric-7-box::before{content:"\F3B6"}.mdi-numeric-7-box-multiple::before{content:"\FF32"}.mdi-numeric-7-box-multiple-outline::before{content:"\F3B7"}.mdi-numeric-7-box-outline::before{content:"\F3B8"}.mdi-numeric-7-circle::before{content:"\FC88"}.mdi-numeric-7-circle-outline::before{content:"\FC89"}.mdi-numeric-8::before{content:"\38"}.mdi-numeric-8-box::before{content:"\F3B9"}.mdi-numeric-8-box-multiple::before{content:"\FF33"}.mdi-numeric-8-box-multiple-outline::before{content:"\F3BA"}.mdi-numeric-8-box-outline::before{content:"\F3BB"}.mdi-numeric-8-circle::before{content:"\FC8A"}.mdi-numeric-8-circle-outline::before{content:"\FC8B"}.mdi-numeric-9::before{content:"\39"}.mdi-numeric-9-box::before{content:"\F3BC"}.mdi-numeric-9-box-multiple::before{content:"\FF34"}.mdi-numeric-9-box-multiple-outline::before{content:"\F3BD"}.mdi-numeric-9-box-outline::before{content:"\F3BE"}.mdi-numeric-9-circle::before{content:"\FC8C"}.mdi-numeric-9-circle-outline::before{content:"\FC8D"}.mdi-numeric-9-plus-box::before{content:"\F3BF"}.mdi-numeric-9-plus-box-multiple::before{content:"\FF35"}.mdi-numeric-9-plus-box-multiple-outline::before{content:"\F3C0"}.mdi-numeric-9-plus-box-outline::before{content:"\F3C1"}.mdi-numeric-9-plus-circle::before{content:"\FC8E"}.mdi-numeric-9-plus-circle-outline::before{content:"\FC8F"}.mdi-nut::before{content:"\F6F7"}.mdi-nutrition::before{content:"\F3C2"}.mdi-oar::before{content:"\F67B"}.mdi-ocarina::before{content:"\FDBC"}.mdi-octagon::before{content:"\F3C3"}.mdi-octagon-outline::before{content:"\F3C4"}.mdi-octagram::before{content:"\F6F8"}.mdi-octagram-outline::before{content:"\F774"}.mdi-odnoklassniki::before{content:"\F3C5"}.mdi-office::before{content:"\F3C6"}.mdi-office-building::before{content:"\F990"}.mdi-oil::before{content:"\F3C7"}.mdi-oil-lamp::before{content:"\FF36"}.mdi-oil-temperature::before{content:"\F3C8"}.mdi-omega::before{content:"\F3C9"}.mdi-one-up::before{content:"\FB89"}.mdi-onedrive::before{content:"\F3CA"}.mdi-onenote::before{content:"\F746"}.mdi-onepassword::before{content:"\F880"}.mdi-opacity::before{content:"\F5CC"}.mdi-open-in-app::before{content:"\F3CB"}.mdi-open-in-new::before{content:"\F3CC"}.mdi-open-source-initiative::before{content:"\FB8A"}.mdi-openid::before{content:"\F3CD"}.mdi-opera::before{content:"\F3CE"}.mdi-orbit::before{content:"\F018"}.mdi-origin::before{content:"\FB2B"}.mdi-ornament::before{content:"\F3CF"}.mdi-ornament-variant::before{content:"\F3D0"}.mdi-outlook::before{content:"\FCFE"}.mdi-owl::before{content:"\F3D2"}.mdi-pac-man::before{content:"\FB8B"}.mdi-package::before{content:"\F3D3"}.mdi-package-down::before{content:"\F3D4"}.mdi-package-up::before{content:"\F3D5"}.mdi-package-variant::before{content:"\F3D6"}.mdi-package-variant-closed::before{content:"\F3D7"}.mdi-page-first::before{content:"\F600"}.mdi-page-last::before{content:"\F601"}.mdi-page-layout-body::before{content:"\F6F9"}.mdi-page-layout-footer::before{content:"\F6FA"}.mdi-page-layout-header::before{content:"\F6FB"}.mdi-page-layout-header-footer::before{content:"\FF9C"}.mdi-page-layout-sidebar-left::before{content:"\F6FC"}.mdi-page-layout-sidebar-right::before{content:"\F6FD"}.mdi-page-next::before{content:"\FB8C"}.mdi-page-next-outline::before{content:"\FB8D"}.mdi-page-previous::before{content:"\FB8E"}.mdi-page-previous-outline::before{content:"\FB8F"}.mdi-palette::before{content:"\F3D8"}.mdi-palette-advanced::before{content:"\F3D9"}.mdi-palette-outline::before{content:"\FE6C"}.mdi-palette-swatch::before{content:"\F8B4"}.mdi-pan::before{content:"\FB90"}.mdi-pan-bottom-left::before{content:"\FB91"}.mdi-pan-bottom-right::before{content:"\FB92"}.mdi-pan-down::before{content:"\FB93"}.mdi-pan-horizontal::before{content:"\FB94"}.mdi-pan-left::before{content:"\FB95"}.mdi-pan-right::before{content:"\FB96"}.mdi-pan-top-left::before{content:"\FB97"}.mdi-pan-top-right::before{content:"\FB98"}.mdi-pan-up::before{content:"\FB99"}.mdi-pan-vertical::before{content:"\FB9A"}.mdi-panda::before{content:"\F3DA"}.mdi-pandora::before{content:"\F3DB"}.mdi-panorama::before{content:"\F3DC"}.mdi-panorama-fisheye::before{content:"\F3DD"}.mdi-panorama-horizontal::before{content:"\F3DE"}.mdi-panorama-vertical::before{content:"\F3DF"}.mdi-panorama-wide-angle::before{content:"\F3E0"}.mdi-paper-cut-vertical::before{content:"\F3E1"}.mdi-paperclip::before{content:"\F3E2"}.mdi-parachute::before{content:"\FC90"}.mdi-parachute-outline::before{content:"\FC91"}.mdi-parking::before{content:"\F3E3"}.mdi-passport::before{content:"\F7E2"}.mdi-passport-biometric::before{content:"\FDBD"}.mdi-patio-heater::before{content:"\FF9D"}.mdi-patreon::before{content:"\F881"}.mdi-pause::before{content:"\F3E4"}.mdi-pause-circle::before{content:"\F3E5"}.mdi-pause-circle-outline::before{content:"\F3E6"}.mdi-pause-octagon::before{content:"\F3E7"}.mdi-pause-octagon-outline::before{content:"\F3E8"}.mdi-paw::before{content:"\F3E9"}.mdi-paw-off::before{content:"\F657"}.mdi-paypal::before{content:"\F882"}.mdi-pdf-box::before{content:"\FE39"}.mdi-peace::before{content:"\F883"}.mdi-pen::before{content:"\F3EA"}.mdi-pen-lock::before{content:"\FDBE"}.mdi-pen-minus::before{content:"\FDBF"}.mdi-pen-off::before{content:"\FDC0"}.mdi-pen-plus::before{content:"\FDC1"}.mdi-pen-remove::before{content:"\FDC2"}.mdi-pencil::before{content:"\F3EB"}.mdi-pencil-box::before{content:"\F3EC"}.mdi-pencil-box-outline::before{content:"\F3ED"}.mdi-pencil-circle::before{content:"\F6FE"}.mdi-pencil-circle-outline::before{content:"\F775"}.mdi-pencil-lock::before{content:"\F3EE"}.mdi-pencil-lock-outline::before{content:"\FDC3"}.mdi-pencil-minus::before{content:"\FDC4"}.mdi-pencil-minus-outline::before{content:"\FDC5"}.mdi-pencil-off::before{content:"\F3EF"}.mdi-pencil-off-outline::before{content:"\FDC6"}.mdi-pencil-outline::before{content:"\FC92"}.mdi-pencil-plus::before{content:"\FDC7"}.mdi-pencil-plus-outline::before{content:"\FDC8"}.mdi-pencil-remove::before{content:"\FDC9"}.mdi-pencil-remove-outline::before{content:"\FDCA"}.mdi-penguin::before{content:"\FEDD"}.mdi-pentagon::before{content:"\F6FF"}.mdi-pentagon-outline::before{content:"\F700"}.mdi-percent::before{content:"\F3F0"}.mdi-periodic-table::before{content:"\F8B5"}.mdi-periodic-table-co2::before{content:"\F7E3"}.mdi-periscope::before{content:"\F747"}.mdi-perspective-less::before{content:"\FCFF"}.mdi-perspective-more::before{content:"\FD00"}.mdi-pharmacy::before{content:"\F3F1"}.mdi-phone::before{content:"\F3F2"}.mdi-phone-alert::before{content:"\FF37"}.mdi-phone-bluetooth::before{content:"\F3F3"}.mdi-phone-classic::before{content:"\F602"}.mdi-phone-forward::before{content:"\F3F4"}.mdi-phone-hangup::before{content:"\F3F5"}.mdi-phone-in-talk::before{content:"\F3F6"}.mdi-phone-incoming::before{content:"\F3F7"}.mdi-phone-lock::before{content:"\F3F8"}.mdi-phone-log::before{content:"\F3F9"}.mdi-phone-minus::before{content:"\F658"}.mdi-phone-missed::before{content:"\F3FA"}.mdi-phone-off::before{content:"\FDCB"}.mdi-phone-outgoing::before{content:"\F3FB"}.mdi-phone-outline::before{content:"\FDCC"}.mdi-phone-paused::before{content:"\F3FC"}.mdi-phone-plus::before{content:"\F659"}.mdi-phone-return::before{content:"\F82E"}.mdi-phone-rotate-landscape::before{content:"\F884"}.mdi-phone-rotate-portrait::before{content:"\F885"}.mdi-phone-settings::before{content:"\F3FD"}.mdi-phone-voip::before{content:"\F3FE"}.mdi-pi::before{content:"\F3FF"}.mdi-pi-box::before{content:"\F400"}.mdi-pi-hole::before{content:"\FDCD"}.mdi-piano::before{content:"\F67C"}.mdi-pickaxe::before{content:"\F8B6"}.mdi-picture-in-picture-bottom-right::before{content:"\FE3A"}.mdi-picture-in-picture-bottom-right-outline::before{content:"\FE3B"}.mdi-picture-in-picture-top-right::before{content:"\FE3C"}.mdi-picture-in-picture-top-right-outline::before{content:"\FE3D"}.mdi-pier::before{content:"\F886"}.mdi-pier-crane::before{content:"\F887"}.mdi-pig::before{content:"\F401"}.mdi-pill::before{content:"\F402"}.mdi-pillar::before{content:"\F701"}.mdi-pin::before{content:"\F403"}.mdi-pin-off::before{content:"\F404"}.mdi-pin-off-outline::before{content:"\F92F"}.mdi-pin-outline::before{content:"\F930"}.mdi-pine-tree::before{content:"\F405"}.mdi-pine-tree-box::before{content:"\F406"}.mdi-pinterest::before{content:"\F407"}.mdi-pinterest-box::before{content:"\F408"}.mdi-pinwheel::before{content:"\FAD4"}.mdi-pinwheel-outline::before{content:"\FAD5"}.mdi-pipe::before{content:"\F7E4"}.mdi-pipe-disconnected::before{content:"\F7E5"}.mdi-pipe-leak::before{content:"\F888"}.mdi-pirate::before{content:"\FA07"}.mdi-pistol::before{content:"\F702"}.mdi-piston::before{content:"\F889"}.mdi-pizza::before{content:"\F409"}.mdi-play::before{content:"\F40A"}.mdi-play-box-outline::before{content:"\F40B"}.mdi-play-circle::before{content:"\F40C"}.mdi-play-circle-outline::before{content:"\F40D"}.mdi-play-network::before{content:"\F88A"}.mdi-play-network-outline::before{content:"\FC93"}.mdi-play-outline::before{content:"\FF38"}.mdi-play-pause::before{content:"\F40E"}.mdi-play-protected-content::before{content:"\F40F"}.mdi-play-speed::before{content:"\F8FE"}.mdi-playlist-check::before{content:"\F5C7"}.mdi-playlist-edit::before{content:"\F8FF"}.mdi-playlist-minus::before{content:"\F410"}.mdi-playlist-music::before{content:"\FC94"}.mdi-playlist-music-outline::before{content:"\FC95"}.mdi-playlist-play::before{content:"\F411"}.mdi-playlist-plus::before{content:"\F412"}.mdi-playlist-remove::before{content:"\F413"}.mdi-playlist-star::before{content:"\FDCE"}.mdi-playstation::before{content:"\F414"}.mdi-plex::before{content:"\F6B9"}.mdi-plus::before{content:"\F415"}.mdi-plus-box::before{content:"\F416"}.mdi-plus-box-outline::before{content:"\F703"}.mdi-plus-circle::before{content:"\F417"}.mdi-plus-circle-multiple-outline::before{content:"\F418"}.mdi-plus-circle-outline::before{content:"\F419"}.mdi-plus-minus::before{content:"\F991"}.mdi-plus-minus-box::before{content:"\F992"}.mdi-plus-network::before{content:"\F41A"}.mdi-plus-network-outline::before{content:"\FC96"}.mdi-plus-one::before{content:"\F41B"}.mdi-plus-outline::before{content:"\F704"}.mdi-pocket::before{content:"\F41C"}.mdi-podcast::before{content:"\F993"}.mdi-podium::before{content:"\FD01"}.mdi-podium-bronze::before{content:"\FD02"}.mdi-podium-gold::before{content:"\FD03"}.mdi-podium-silver::before{content:"\FD04"}.mdi-point-of-sale::before{content:"\FD6E"}.mdi-pokeball::before{content:"\F41D"}.mdi-pokemon-go::before{content:"\FA08"}.mdi-poker-chip::before{content:"\F82F"}.mdi-polaroid::before{content:"\F41E"}.mdi-poll::before{content:"\F41F"}.mdi-poll-box::before{content:"\F420"}.mdi-polymer::before{content:"\F421"}.mdi-pool::before{content:"\F606"}.mdi-popcorn::before{content:"\F422"}.mdi-postage-stamp::before{content:"\FC97"}.mdi-pot::before{content:"\F65A"}.mdi-pot-mix::before{content:"\F65B"}.mdi-pound::before{content:"\F423"}.mdi-pound-box::before{content:"\F424"}.mdi-power::before{content:"\F425"}.mdi-power-cycle::before{content:"\F900"}.mdi-power-off::before{content:"\F901"}.mdi-power-on::before{content:"\F902"}.mdi-power-plug::before{content:"\F6A4"}.mdi-power-plug-off::before{content:"\F6A5"}.mdi-power-settings::before{content:"\F426"}.mdi-power-sleep::before{content:"\F903"}.mdi-power-socket::before{content:"\F427"}.mdi-power-socket-au::before{content:"\F904"}.mdi-power-socket-eu::before{content:"\F7E6"}.mdi-power-socket-uk::before{content:"\F7E7"}.mdi-power-socket-us::before{content:"\F7E8"}.mdi-power-standby::before{content:"\F905"}.mdi-powershell::before{content:"\FA09"}.mdi-prescription::before{content:"\F705"}.mdi-presentation::before{content:"\F428"}.mdi-presentation-play::before{content:"\F429"}.mdi-printer::before{content:"\F42A"}.mdi-printer-3d::before{content:"\F42B"}.mdi-printer-3d-nozzle::before{content:"\FE3E"}.mdi-printer-3d-nozzle-outline::before{content:"\FE3F"}.mdi-printer-alert::before{content:"\F42C"}.mdi-printer-off::before{content:"\FE40"}.mdi-printer-settings::before{content:"\F706"}.mdi-printer-wireless::before{content:"\FA0A"}.mdi-priority-high::before{content:"\F603"}.mdi-priority-low::before{content:"\F604"}.mdi-professional-hexagon::before{content:"\F42D"}.mdi-progress-alert::before{content:"\FC98"}.mdi-progress-check::before{content:"\F994"}.mdi-progress-clock::before{content:"\F995"}.mdi-progress-download::before{content:"\F996"}.mdi-progress-upload::before{content:"\F997"}.mdi-progress-wrench::before{content:"\FC99"}.mdi-projector::before{content:"\F42E"}.mdi-projector-screen::before{content:"\F42F"}.mdi-publish::before{content:"\F6A6"}.mdi-pulse::before{content:"\F430"}.mdi-pumpkin::before{content:"\FB9B"}.mdi-purse::before{content:"\FF39"}.mdi-purse-outline::before{content:"\FF3A"}.mdi-puzzle::before{content:"\F431"}.mdi-puzzle-outline::before{content:"\FA65"}.mdi-qi::before{content:"\F998"}.mdi-qqchat::before{content:"\F605"}.mdi-qrcode::before{content:"\F432"}.mdi-qrcode-edit::before{content:"\F8B7"}.mdi-qrcode-scan::before{content:"\F433"}.mdi-quadcopter::before{content:"\F434"}.mdi-quality-high::before{content:"\F435"}.mdi-quality-low::before{content:"\FA0B"}.mdi-quality-medium::before{content:"\FA0C"}.mdi-quicktime::before{content:"\F436"}.mdi-quora::before{content:"\FD05"}.mdi-rabbit::before{content:"\F906"}.mdi-racing-helmet::before{content:"\FD6F"}.mdi-racquetball::before{content:"\FD70"}.mdi-radar::before{content:"\F437"}.mdi-radiator::before{content:"\F438"}.mdi-radiator-disabled::before{content:"\FAD6"}.mdi-radiator-off::before{content:"\FAD7"}.mdi-radio::before{content:"\F439"}.mdi-radio-am::before{content:"\FC9A"}.mdi-radio-fm::before{content:"\FC9B"}.mdi-radio-handheld::before{content:"\F43A"}.mdi-radio-tower::before{content:"\F43B"}.mdi-radioactive::before{content:"\F43C"}.mdi-radioactive-off::before{content:"\FEDE"}.mdi-radiobox-blank::before{content:"\F43D"}.mdi-radiobox-marked::before{content:"\F43E"}.mdi-radius::before{content:"\FC9C"}.mdi-radius-outline::before{content:"\FC9D"}.mdi-railroad-light::before{content:"\FF3B"}.mdi-raspberry-pi::before{content:"\F43F"}.mdi-ray-end::before{content:"\F440"}.mdi-ray-end-arrow::before{content:"\F441"}.mdi-ray-start::before{content:"\F442"}.mdi-ray-start-arrow::before{content:"\F443"}.mdi-ray-start-end::before{content:"\F444"}.mdi-ray-vertex::before{content:"\F445"}.mdi-react::before{content:"\F707"}.mdi-read::before{content:"\F447"}.mdi-receipt::before{content:"\F449"}.mdi-record::before{content:"\F44A"}.mdi-record-circle::before{content:"\FEDF"}.mdi-record-circle-outline::before{content:"\FEE0"}.mdi-record-player::before{content:"\F999"}.mdi-record-rec::before{content:"\F44B"}.mdi-rectangle::before{content:"\FE41"}.mdi-rectangle-outline::before{content:"\FE42"}.mdi-recycle::before{content:"\F44C"}.mdi-reddit::before{content:"\F44D"}.mdi-redo::before{content:"\F44E"}.mdi-redo-variant::before{content:"\F44F"}.mdi-reflect-horizontal::before{content:"\FA0D"}.mdi-reflect-vertical::before{content:"\FA0E"}.mdi-refresh::before{content:"\F450"}.mdi-regex::before{content:"\F451"}.mdi-registered-trademark::before{content:"\FA66"}.mdi-relative-scale::before{content:"\F452"}.mdi-reload::before{content:"\F453"}.mdi-reminder::before{content:"\F88B"}.mdi-remote::before{content:"\F454"}.mdi-remote-desktop::before{content:"\F8B8"}.mdi-remote-off::before{content:"\FEE1"}.mdi-remote-tv::before{content:"\FEE2"}.mdi-remote-tv-off::before{content:"\FEE3"}.mdi-rename-box::before{content:"\F455"}.mdi-reorder-horizontal::before{content:"\F687"}.mdi-reorder-vertical::before{content:"\F688"}.mdi-repeat::before{content:"\F456"}.mdi-repeat-off::before{content:"\F457"}.mdi-repeat-once::before{content:"\F458"}.mdi-replay::before{content:"\F459"}.mdi-reply::before{content:"\F45A"}.mdi-reply-all::before{content:"\F45B"}.mdi-reply-all-outline::before{content:"\FF3C"}.mdi-reply-outline::before{content:"\FF3D"}.mdi-reproduction::before{content:"\F45C"}.mdi-resistor::before{content:"\FB1F"}.mdi-resistor-nodes::before{content:"\FB20"}.mdi-resize::before{content:"\FA67"}.mdi-resize-bottom-right::before{content:"\F45D"}.mdi-responsive::before{content:"\F45E"}.mdi-restart::before{content:"\F708"}.mdi-restart-off::before{content:"\FD71"}.mdi-restore::before{content:"\F99A"}.mdi-restore-clock::before{content:"\F6A7"}.mdi-rewind::before{content:"\F45F"}.mdi-rewind-10::before{content:"\FD06"}.mdi-rewind-30::before{content:"\FD72"}.mdi-rewind-outline::before{content:"\F709"}.mdi-rhombus::before{content:"\F70A"}.mdi-rhombus-medium::before{content:"\FA0F"}.mdi-rhombus-outline::before{content:"\F70B"}.mdi-rhombus-split::before{content:"\FA10"}.mdi-ribbon::before{content:"\F460"}.mdi-rice::before{content:"\F7E9"}.mdi-ring::before{content:"\F7EA"}.mdi-rivet::before{content:"\FE43"}.mdi-road::before{content:"\F461"}.mdi-road-variant::before{content:"\F462"}.mdi-robot::before{content:"\F6A8"}.mdi-robot-industrial::before{content:"\FB21"}.mdi-robot-vacuum::before{content:"\F70C"}.mdi-robot-vacuum-variant::before{content:"\F907"}.mdi-rocket::before{content:"\F463"}.mdi-roller-skate::before{content:"\FD07"}.mdi-rollerblade::before{content:"\FD08"}.mdi-rollupjs::before{content:"\FB9C"}.mdi-room-service::before{content:"\F88C"}.mdi-room-service-outline::before{content:"\FD73"}.mdi-rotate-3d::before{content:"\FEE4"}.mdi-rotate-3d-variant::before{content:"\F464"}.mdi-rotate-left::before{content:"\F465"}.mdi-rotate-left-variant::before{content:"\F466"}.mdi-rotate-orbit::before{content:"\FD74"}.mdi-rotate-right::before{content:"\F467"}.mdi-rotate-right-variant::before{content:"\F468"}.mdi-rounded-corner::before{content:"\F607"}.mdi-router-wireless::before{content:"\F469"}.mdi-router-wireless-settings::before{content:"\FA68"}.mdi-routes::before{content:"\F46A"}.mdi-rowing::before{content:"\F608"}.mdi-rss::before{content:"\F46B"}.mdi-rss-box::before{content:"\F46C"}.mdi-rss-off::before{content:"\FF3E"}.mdi-ruby::before{content:"\FD09"}.mdi-rugby::before{content:"\FD75"}.mdi-ruler::before{content:"\F46D"}.mdi-ruler-square::before{content:"\FC9E"}.mdi-run::before{content:"\F70D"}.mdi-run-fast::before{content:"\F46E"}.mdi-sack::before{content:"\FD0A"}.mdi-sack-percent::before{content:"\FD0B"}.mdi-safe::before{content:"\FA69"}.mdi-safety-goggles::before{content:"\FD0C"}.mdi-sailing::before{content:"\FEE5"}.mdi-sale::before{content:"\F46F"}.mdi-salesforce::before{content:"\F88D"}.mdi-sass::before{content:"\F7EB"}.mdi-satellite::before{content:"\F470"}.mdi-satellite-uplink::before{content:"\F908"}.mdi-satellite-variant::before{content:"\F471"}.mdi-sausage::before{content:"\F8B9"}.mdi-saw-blade::before{content:"\FE44"}.mdi-saxophone::before{content:"\F609"}.mdi-scale::before{content:"\F472"}.mdi-scale-balance::before{content:"\F5D1"}.mdi-scale-bathroom::before{content:"\F473"}.mdi-scanner::before{content:"\F6AA"}.mdi-scanner-off::before{content:"\F909"}.mdi-scatter-plot::before{content:"\FEE6"}.mdi-scatter-plot-outline::before{content:"\FEE7"}.mdi-school::before{content:"\F474"}.mdi-scissors-cutting::before{content:"\FA6A"}.mdi-screen-rotation::before{content:"\F475"}.mdi-screen-rotation-lock::before{content:"\F476"}.mdi-screw-flat-top::before{content:"\FDCF"}.mdi-screw-lag::before{content:"\FE54"}.mdi-screw-machine-flat-top::before{content:"\FE55"}.mdi-screw-machine-round-top::before{content:"\FE56"}.mdi-screw-round-top::before{content:"\FE57"}.mdi-screwdriver::before{content:"\F477"}.mdi-script::before{content:"\FB9D"}.mdi-script-outline::before{content:"\F478"}.mdi-script-text::before{content:"\FB9E"}.mdi-script-text-outline::before{content:"\FB9F"}.mdi-sd::before{content:"\F479"}.mdi-seal::before{content:"\F47A"}.mdi-search-web::before{content:"\F70E"}.mdi-seat::before{content:"\FC9F"}.mdi-seat-flat::before{content:"\F47B"}.mdi-seat-flat-angled::before{content:"\F47C"}.mdi-seat-individual-suite::before{content:"\F47D"}.mdi-seat-legroom-extra::before{content:"\F47E"}.mdi-seat-legroom-normal::before{content:"\F47F"}.mdi-seat-legroom-reduced::before{content:"\F480"}.mdi-seat-outline::before{content:"\FCA0"}.mdi-seat-recline-extra::before{content:"\F481"}.mdi-seat-recline-normal::before{content:"\F482"}.mdi-seatbelt::before{content:"\FCA1"}.mdi-security::before{content:"\F483"}.mdi-security-network::before{content:"\F484"}.mdi-seed::before{content:"\FE45"}.mdi-seed-outline::before{content:"\FE46"}.mdi-segment::before{content:"\FEE8"}.mdi-select::before{content:"\F485"}.mdi-select-all::before{content:"\F486"}.mdi-select-color::before{content:"\FD0D"}.mdi-select-compare::before{content:"\FAD8"}.mdi-select-drag::before{content:"\FA6B"}.mdi-select-group::before{content:"\FF9F"}.mdi-select-inverse::before{content:"\F487"}.mdi-select-off::before{content:"\F488"}.mdi-selection::before{content:"\F489"}.mdi-selection-drag::before{content:"\FA6C"}.mdi-selection-ellipse::before{content:"\FD0E"}.mdi-selection-ellipse-arrow-inside::before{content:"\FF3F"}.mdi-selection-off::before{content:"\F776"}.mdi-send::before{content:"\F48A"}.mdi-send-circle::before{content:"\FE58"}.mdi-send-circle-outline::before{content:"\FE59"}.mdi-send-lock::before{content:"\F7EC"}.mdi-serial-port::before{content:"\F65C"}.mdi-server::before{content:"\F48B"}.mdi-server-minus::before{content:"\F48C"}.mdi-server-network::before{content:"\F48D"}.mdi-server-network-off::before{content:"\F48E"}.mdi-server-off::before{content:"\F48F"}.mdi-server-plus::before{content:"\F490"}.mdi-server-remove::before{content:"\F491"}.mdi-server-security::before{content:"\F492"}.mdi-set-all::before{content:"\F777"}.mdi-set-center::before{content:"\F778"}.mdi-set-center-right::before{content:"\F779"}.mdi-set-left::before{content:"\F77A"}.mdi-set-left-center::before{content:"\F77B"}.mdi-set-left-right::before{content:"\F77C"}.mdi-set-none::before{content:"\F77D"}.mdi-set-right::before{content:"\F77E"}.mdi-set-top-box::before{content:"\F99E"}.mdi-settings::before{content:"\F493"}.mdi-settings-box::before{content:"\F494"}.mdi-settings-helper::before{content:"\FA6D"}.mdi-settings-outline::before{content:"\F8BA"}.mdi-shape::before{content:"\F830"}.mdi-shape-circle-plus::before{content:"\F65D"}.mdi-shape-outline::before{content:"\F831"}.mdi-shape-plus::before{content:"\F495"}.mdi-shape-polygon-plus::before{content:"\F65E"}.mdi-shape-rectangle-plus::before{content:"\F65F"}.mdi-shape-square-plus::before{content:"\F660"}.mdi-share::before{content:"\F496"}.mdi-share-off::before{content:"\FF40"}.mdi-share-off-outline::before{content:"\FF41"}.mdi-share-outline::before{content:"\F931"}.mdi-share-variant::before{content:"\F497"}.mdi-sheep::before{content:"\FCA2"}.mdi-shield::before{content:"\F498"}.mdi-shield-account::before{content:"\F88E"}.mdi-shield-account-outline::before{content:"\FA11"}.mdi-shield-airplane::before{content:"\F6BA"}.mdi-shield-airplane-outline::before{content:"\FCA3"}.mdi-shield-alert::before{content:"\FEE9"}.mdi-shield-alert-outline::before{content:"\FEEA"}.mdi-shield-car::before{content:"\FFA0"}.mdi-shield-check::before{content:"\F565"}.mdi-shield-check-outline::before{content:"\FCA4"}.mdi-shield-cross::before{content:"\FCA5"}.mdi-shield-cross-outline::before{content:"\FCA6"}.mdi-shield-half-full::before{content:"\F77F"}.mdi-shield-home::before{content:"\F689"}.mdi-shield-home-outline::before{content:"\FCA7"}.mdi-shield-key::before{content:"\FBA0"}.mdi-shield-key-outline::before{content:"\FBA1"}.mdi-shield-link-variant::before{content:"\FD0F"}.mdi-shield-link-variant-outline::before{content:"\FD10"}.mdi-shield-lock::before{content:"\F99C"}.mdi-shield-lock-outline::before{content:"\FCA8"}.mdi-shield-off::before{content:"\F99D"}.mdi-shield-off-outline::before{content:"\F99B"}.mdi-shield-outline::before{content:"\F499"}.mdi-shield-plus::before{content:"\FAD9"}.mdi-shield-plus-outline::before{content:"\FADA"}.mdi-shield-remove::before{content:"\FADB"}.mdi-shield-remove-outline::before{content:"\FADC"}.mdi-shield-search::before{content:"\FD76"}.mdi-ship-wheel::before{content:"\F832"}.mdi-shoe-formal::before{content:"\FB22"}.mdi-shoe-heel::before{content:"\FB23"}.mdi-shoe-print::before{content:"\FE5A"}.mdi-shopify::before{content:"\FADD"}.mdi-shopping::before{content:"\F49A"}.mdi-shopping-music::before{content:"\F49B"}.mdi-shopping-search::before{content:"\FFA1"}.mdi-shovel::before{content:"\F70F"}.mdi-shovel-off::before{content:"\F710"}.mdi-shower::before{content:"\F99F"}.mdi-shower-head::before{content:"\F9A0"}.mdi-shredder::before{content:"\F49C"}.mdi-shuffle::before{content:"\F49D"}.mdi-shuffle-disabled::before{content:"\F49E"}.mdi-shuffle-variant::before{content:"\F49F"}.mdi-sigma::before{content:"\F4A0"}.mdi-sigma-lower::before{content:"\F62B"}.mdi-sign-caution::before{content:"\F4A1"}.mdi-sign-direction::before{content:"\F780"}.mdi-sign-text::before{content:"\F781"}.mdi-signal::before{content:"\F4A2"}.mdi-signal-2g::before{content:"\F711"}.mdi-signal-3g::before{content:"\F712"}.mdi-signal-4g::before{content:"\F713"}.mdi-signal-5g::before{content:"\FA6E"}.mdi-signal-cellular-1::before{content:"\F8BB"}.mdi-signal-cellular-2::before{content:"\F8BC"}.mdi-signal-cellular-3::before{content:"\F8BD"}.mdi-signal-cellular-outline::before{content:"\F8BE"}.mdi-signal-distance-variant::before{content:"\FE47"}.mdi-signal-hspa::before{content:"\F714"}.mdi-signal-hspa-plus::before{content:"\F715"}.mdi-signal-off::before{content:"\F782"}.mdi-signal-variant::before{content:"\F60A"}.mdi-signature::before{content:"\FE5B"}.mdi-signature-freehand::before{content:"\FE5C"}.mdi-signature-image::before{content:"\FE5D"}.mdi-signature-text::before{content:"\FE5E"}.mdi-silo::before{content:"\FB24"}.mdi-silverware::before{content:"\F4A3"}.mdi-silverware-fork::before{content:"\F4A4"}.mdi-silverware-fork-knife::before{content:"\FA6F"}.mdi-silverware-spoon::before{content:"\F4A5"}.mdi-silverware-variant::before{content:"\F4A6"}.mdi-sim::before{content:"\F4A7"}.mdi-sim-alert::before{content:"\F4A8"}.mdi-sim-off::before{content:"\F4A9"}.mdi-sina-weibo::before{content:"\FADE"}.mdi-sitemap::before{content:"\F4AA"}.mdi-skate::before{content:"\FD11"}.mdi-skew-less::before{content:"\FD12"}.mdi-skew-more::before{content:"\FD13"}.mdi-skip-backward::before{content:"\F4AB"}.mdi-skip-backward-outline::before{content:"\FF42"}.mdi-skip-forward::before{content:"\F4AC"}.mdi-skip-forward-outline::before{content:"\FF43"}.mdi-skip-next::before{content:"\F4AD"}.mdi-skip-next-circle::before{content:"\F661"}.mdi-skip-next-circle-outline::before{content:"\F662"}.mdi-skip-next-outline::before{content:"\FF44"}.mdi-skip-previous::before{content:"\F4AE"}.mdi-skip-previous-circle::before{content:"\F663"}.mdi-skip-previous-circle-outline::before{content:"\F664"}.mdi-skip-previous-outline::before{content:"\FF45"}.mdi-skull::before{content:"\F68B"}.mdi-skull-crossbones::before{content:"\FBA2"}.mdi-skull-crossbones-outline::before{content:"\FBA3"}.mdi-skull-outline::before{content:"\FBA4"}.mdi-skype::before{content:"\F4AF"}.mdi-skype-business::before{content:"\F4B0"}.mdi-slack::before{content:"\F4B1"}.mdi-slackware::before{content:"\F90A"}.mdi-sleep::before{content:"\F4B2"}.mdi-sleep-off::before{content:"\F4B3"}.mdi-slope-downhill::before{content:"\FE5F"}.mdi-slope-uphill::before{content:"\FE60"}.mdi-smog::before{content:"\FA70"}.mdi-smoke-detector::before{content:"\F392"}.mdi-smoking::before{content:"\F4B4"}.mdi-smoking-off::before{content:"\F4B5"}.mdi-snapchat::before{content:"\F4B6"}.mdi-snowflake::before{content:"\F716"}.mdi-snowflake-alert::before{content:"\FF46"}.mdi-snowflake-variant::before{content:"\FF47"}.mdi-snowman::before{content:"\F4B7"}.mdi-soccer::before{content:"\F4B8"}.mdi-soccer-field::before{content:"\F833"}.mdi-sofa::before{content:"\F4B9"}.mdi-solar-panel::before{content:"\FD77"}.mdi-solar-panel-large::before{content:"\FD78"}.mdi-solar-power::before{content:"\FA71"}.mdi-solid::before{content:"\F68C"}.mdi-sort::before{content:"\F4BA"}.mdi-sort-alphabetical::before{content:"\F4BB"}.mdi-sort-ascending::before{content:"\F4BC"}.mdi-sort-descending::before{content:"\F4BD"}.mdi-sort-numeric::before{content:"\F4BE"}.mdi-sort-variant::before{content:"\F4BF"}.mdi-sort-variant-lock::before{content:"\FCA9"}.mdi-sort-variant-lock-open::before{content:"\FCAA"}.mdi-soundcloud::before{content:"\F4C0"}.mdi-source-branch::before{content:"\F62C"}.mdi-source-commit::before{content:"\F717"}.mdi-source-commit-end::before{content:"\F718"}.mdi-source-commit-end-local::before{content:"\F719"}.mdi-source-commit-local::before{content:"\F71A"}.mdi-source-commit-next-local::before{content:"\F71B"}.mdi-source-commit-start::before{content:"\F71C"}.mdi-source-commit-start-next-local::before{content:"\F71D"}.mdi-source-fork::before{content:"\F4C1"}.mdi-source-merge::before{content:"\F62D"}.mdi-source-pull::before{content:"\F4C2"}.mdi-source-repository::before{content:"\FCAB"}.mdi-source-repository-multiple::before{content:"\FCAC"}.mdi-soy-sauce::before{content:"\F7ED"}.mdi-spa::before{content:"\FCAD"}.mdi-spa-outline::before{content:"\FCAE"}.mdi-space-invaders::before{content:"\FBA5"}.mdi-spade::before{content:"\FE48"}.mdi-speaker::before{content:"\F4C3"}.mdi-speaker-bluetooth::before{content:"\F9A1"}.mdi-speaker-multiple::before{content:"\FD14"}.mdi-speaker-off::before{content:"\F4C4"}.mdi-speaker-wireless::before{content:"\F71E"}.mdi-speedometer::before{content:"\F4C5"}.mdi-speedometer-medium::before{content:"\FFA2"}.mdi-speedometer-slow::before{content:"\FFA3"}.mdi-spellcheck::before{content:"\F4C6"}.mdi-spider-web::before{content:"\FBA6"}.mdi-spotify::before{content:"\F4C7"}.mdi-spotlight::before{content:"\F4C8"}.mdi-spotlight-beam::before{content:"\F4C9"}.mdi-spray::before{content:"\F665"}.mdi-spray-bottle::before{content:"\FADF"}.mdi-sprout::before{content:"\FE49"}.mdi-sprout-outline::before{content:"\FE4A"}.mdi-square::before{content:"\F763"}.mdi-square-edit-outline::before{content:"\F90B"}.mdi-square-inc::before{content:"\F4CA"}.mdi-square-inc-cash::before{content:"\F4CB"}.mdi-square-medium::before{content:"\FA12"}.mdi-square-medium-outline::before{content:"\FA13"}.mdi-square-outline::before{content:"\F762"}.mdi-square-root::before{content:"\F783"}.mdi-square-root-box::before{content:"\F9A2"}.mdi-square-small::before{content:"\FA14"}.mdi-squeegee::before{content:"\FAE0"}.mdi-ssh::before{content:"\F8BF"}.mdi-stack-exchange::before{content:"\F60B"}.mdi-stack-overflow::before{content:"\F4CC"}.mdi-stadium::before{content:"\F71F"}.mdi-stairs::before{content:"\F4CD"}.mdi-stamper::before{content:"\FD15"}.mdi-standard-definition::before{content:"\F7EE"}.mdi-star::before{content:"\F4CE"}.mdi-star-box::before{content:"\FA72"}.mdi-star-box-outline::before{content:"\FA73"}.mdi-star-circle::before{content:"\F4CF"}.mdi-star-circle-outline::before{content:"\F9A3"}.mdi-star-face::before{content:"\F9A4"}.mdi-star-four-points::before{content:"\FAE1"}.mdi-star-four-points-outline::before{content:"\FAE2"}.mdi-star-half::before{content:"\F4D0"}.mdi-star-off::before{content:"\F4D1"}.mdi-star-outline::before{content:"\F4D2"}.mdi-star-three-points::before{content:"\FAE3"}.mdi-star-three-points-outline::before{content:"\FAE4"}.mdi-steam::before{content:"\F4D3"}.mdi-steam-box::before{content:"\F90C"}.mdi-steering::before{content:"\F4D4"}.mdi-steering-off::before{content:"\F90D"}.mdi-step-backward::before{content:"\F4D5"}.mdi-step-backward-2::before{content:"\F4D6"}.mdi-step-forward::before{content:"\F4D7"}.mdi-step-forward-2::before{content:"\F4D8"}.mdi-stethoscope::before{content:"\F4D9"}.mdi-sticker::before{content:"\F5D0"}.mdi-sticker-emoji::before{content:"\F784"}.mdi-stocking::before{content:"\F4DA"}.mdi-stop::before{content:"\F4DB"}.mdi-stop-circle::before{content:"\F666"}.mdi-stop-circle-outline::before{content:"\F667"}.mdi-store::before{content:"\F4DC"}.mdi-store-24-hour::before{content:"\F4DD"}.mdi-stove::before{content:"\F4DE"}.mdi-strava::before{content:"\FB25"}.mdi-stretch-to-page::before{content:"\FF48"}.mdi-stretch-to-page-outline::before{content:"\FF49"}.mdi-subdirectory-arrow-left::before{content:"\F60C"}.mdi-subdirectory-arrow-right::before{content:"\F60D"}.mdi-subtitles::before{content:"\FA15"}.mdi-subtitles-outline::before{content:"\FA16"}.mdi-subway::before{content:"\F6AB"}.mdi-subway-alert-variant::before{content:"\FD79"}.mdi-subway-variant::before{content:"\F4DF"}.mdi-summit::before{content:"\F785"}.mdi-sunglasses::before{content:"\F4E0"}.mdi-surround-sound::before{content:"\F5C5"}.mdi-surround-sound-2-0::before{content:"\F7EF"}.mdi-surround-sound-3-1::before{content:"\F7F0"}.mdi-surround-sound-5-1::before{content:"\F7F1"}.mdi-surround-sound-7-1::before{content:"\F7F2"}.mdi-svg::before{content:"\F720"}.mdi-swap-horizontal::before{content:"\F4E1"}.mdi-swap-horizontal-bold::before{content:"\FBA9"}.mdi-swap-horizontal-variant::before{content:"\F8C0"}.mdi-swap-vertical::before{content:"\F4E2"}.mdi-swap-vertical-bold::before{content:"\FBAA"}.mdi-swap-vertical-variant::before{content:"\F8C1"}.mdi-swim::before{content:"\F4E3"}.mdi-switch::before{content:"\F4E4"}.mdi-sword::before{content:"\F4E5"}.mdi-sword-cross::before{content:"\F786"}.mdi-symfony::before{content:"\FAE5"}.mdi-sync::before{content:"\F4E6"}.mdi-sync-alert::before{content:"\F4E7"}.mdi-sync-off::before{content:"\F4E8"}.mdi-tab::before{content:"\F4E9"}.mdi-tab-minus::before{content:"\FB26"}.mdi-tab-plus::before{content:"\F75B"}.mdi-tab-remove::before{content:"\FB27"}.mdi-tab-unselected::before{content:"\F4EA"}.mdi-table::before{content:"\F4EB"}.mdi-table-border::before{content:"\FA17"}.mdi-table-column::before{content:"\F834"}.mdi-table-column-plus-after::before{content:"\F4EC"}.mdi-table-column-plus-before::before{content:"\F4ED"}.mdi-table-column-remove::before{content:"\F4EE"}.mdi-table-column-width::before{content:"\F4EF"}.mdi-table-edit::before{content:"\F4F0"}.mdi-table-large::before{content:"\F4F1"}.mdi-table-large-plus::before{content:"\FFA4"}.mdi-table-large-remove::before{content:"\FFA5"}.mdi-table-merge-cells::before{content:"\F9A5"}.mdi-table-of-contents::before{content:"\F835"}.mdi-table-plus::before{content:"\FA74"}.mdi-table-remove::before{content:"\FA75"}.mdi-table-row::before{content:"\F836"}.mdi-table-row-height::before{content:"\F4F2"}.mdi-table-row-plus-after::before{content:"\F4F3"}.mdi-table-row-plus-before::before{content:"\F4F4"}.mdi-table-row-remove::before{content:"\F4F5"}.mdi-table-search::before{content:"\F90E"}.mdi-table-settings::before{content:"\F837"}.mdi-table-tennis::before{content:"\FE4B"}.mdi-tablet::before{content:"\F4F6"}.mdi-tablet-android::before{content:"\F4F7"}.mdi-tablet-cellphone::before{content:"\F9A6"}.mdi-tablet-dashboard::before{content:"\FEEB"}.mdi-tablet-ipad::before{content:"\F4F8"}.mdi-taco::before{content:"\F761"}.mdi-tag::before{content:"\F4F9"}.mdi-tag-faces::before{content:"\F4FA"}.mdi-tag-heart::before{content:"\F68A"}.mdi-tag-heart-outline::before{content:"\FBAB"}.mdi-tag-minus::before{content:"\F90F"}.mdi-tag-multiple::before{content:"\F4FB"}.mdi-tag-outline::before{content:"\F4FC"}.mdi-tag-plus::before{content:"\F721"}.mdi-tag-remove::before{content:"\F722"}.mdi-tag-text-outline::before{content:"\F4FD"}.mdi-tank::before{content:"\FD16"}.mdi-tape-measure::before{content:"\FB28"}.mdi-target::before{content:"\F4FE"}.mdi-target-account::before{content:"\FBAC"}.mdi-target-variant::before{content:"\FA76"}.mdi-taxi::before{content:"\F4FF"}.mdi-tea::before{content:"\FD7A"}.mdi-tea-outline::before{content:"\FD7B"}.mdi-teach::before{content:"\F88F"}.mdi-teamviewer::before{content:"\F500"}.mdi-telegram::before{content:"\F501"}.mdi-telescope::before{content:"\FB29"}.mdi-television::before{content:"\F502"}.mdi-television-box::before{content:"\F838"}.mdi-television-classic::before{content:"\F7F3"}.mdi-television-classic-off::before{content:"\F839"}.mdi-television-guide::before{content:"\F503"}.mdi-television-off::before{content:"\F83A"}.mdi-television-pause::before{content:"\FFA6"}.mdi-television-play::before{content:"\FEEC"}.mdi-television-stop::before{content:"\FFA7"}.mdi-temperature-celsius::before{content:"\F504"}.mdi-temperature-fahrenheit::before{content:"\F505"}.mdi-temperature-kelvin::before{content:"\F506"}.mdi-tennis::before{content:"\FD7C"}.mdi-tennis-ball::before{content:"\F507"}.mdi-tent::before{content:"\F508"}.mdi-terrain::before{content:"\F509"}.mdi-test-tube::before{content:"\F668"}.mdi-test-tube-empty::before{content:"\F910"}.mdi-test-tube-off::before{content:"\F911"}.mdi-text::before{content:"\F9A7"}.mdi-text-shadow::before{content:"\F669"}.mdi-text-short::before{content:"\F9A8"}.mdi-text-subject::before{content:"\F9A9"}.mdi-text-to-speech::before{content:"\F50A"}.mdi-text-to-speech-off::before{content:"\F50B"}.mdi-textbox::before{content:"\F60E"}.mdi-textbox-password::before{content:"\F7F4"}.mdi-texture::before{content:"\F50C"}.mdi-theater::before{content:"\F50D"}.mdi-theme-light-dark::before{content:"\F50E"}.mdi-thermometer::before{content:"\F50F"}.mdi-thermometer-alert::before{content:"\FE61"}.mdi-thermometer-chevron-down::before{content:"\FE62"}.mdi-thermometer-chevron-up::before{content:"\FE63"}.mdi-thermometer-lines::before{content:"\F510"}.mdi-thermometer-minus::before{content:"\FE64"}.mdi-thermometer-plus::before{content:"\FE65"}.mdi-thermostat::before{content:"\F393"}.mdi-thermostat-box::before{content:"\F890"}.mdi-thought-bubble::before{content:"\F7F5"}.mdi-thought-bubble-outline::before{content:"\F7F6"}.mdi-thumb-down::before{content:"\F511"}.mdi-thumb-down-outline::before{content:"\F512"}.mdi-thumb-up::before{content:"\F513"}.mdi-thumb-up-outline::before{content:"\F514"}.mdi-thumbs-up-down::before{content:"\F515"}.mdi-ticket::before{content:"\F516"}.mdi-ticket-account::before{content:"\F517"}.mdi-ticket-confirmation::before{content:"\F518"}.mdi-ticket-outline::before{content:"\F912"}.mdi-ticket-percent::before{content:"\F723"}.mdi-tie::before{content:"\F519"}.mdi-tilde::before{content:"\F724"}.mdi-timelapse::before{content:"\F51A"}.mdi-timeline::before{content:"\FBAD"}.mdi-timeline-alert::before{content:"\FFB2"}.mdi-timeline-alert-outline::before{content:"\FFB5"}.mdi-timeline-help::before{content:"\FFB6"}.mdi-timeline-help-outline::before{content:"\FFB7"}.mdi-timeline-outline::before{content:"\FBAE"}.mdi-timeline-plus::before{content:"\FFB3"}.mdi-timeline-plus-outline::before{content:"\FFB4"}.mdi-timeline-text::before{content:"\FBAF"}.mdi-timeline-text-outline::before{content:"\FBB0"}.mdi-timer::before{content:"\F51B"}.mdi-timer-10::before{content:"\F51C"}.mdi-timer-3::before{content:"\F51D"}.mdi-timer-off::before{content:"\F51E"}.mdi-timer-sand::before{content:"\F51F"}.mdi-timer-sand-empty::before{content:"\F6AC"}.mdi-timer-sand-full::before{content:"\F78B"}.mdi-timetable::before{content:"\F520"}.mdi-toaster-oven::before{content:"\FCAF"}.mdi-toggle-switch::before{content:"\F521"}.mdi-toggle-switch-off::before{content:"\F522"}.mdi-toggle-switch-off-outline::before{content:"\FA18"}.mdi-toggle-switch-outline::before{content:"\FA19"}.mdi-toilet::before{content:"\F9AA"}.mdi-toolbox::before{content:"\F9AB"}.mdi-toolbox-outline::before{content:"\F9AC"}.mdi-tooltip::before{content:"\F523"}.mdi-tooltip-account::before{content:"\F00C"}.mdi-tooltip-edit::before{content:"\F524"}.mdi-tooltip-image::before{content:"\F525"}.mdi-tooltip-image-outline::before{content:"\FBB1"}.mdi-tooltip-outline::before{content:"\F526"}.mdi-tooltip-plus::before{content:"\FBB2"}.mdi-tooltip-plus-outline::before{content:"\F527"}.mdi-tooltip-text::before{content:"\F528"}.mdi-tooltip-text-outline::before{content:"\FBB3"}.mdi-tooth::before{content:"\F8C2"}.mdi-tooth-outline::before{content:"\F529"}.mdi-tor::before{content:"\F52A"}.mdi-tortoise::before{content:"\FD17"}.mdi-tournament::before{content:"\F9AD"}.mdi-tower-beach::before{content:"\F680"}.mdi-tower-fire::before{content:"\F681"}.mdi-towing::before{content:"\F83B"}.mdi-track-light::before{content:"\F913"}.mdi-trackpad::before{content:"\F7F7"}.mdi-trackpad-lock::before{content:"\F932"}.mdi-tractor::before{content:"\F891"}.mdi-trademark::before{content:"\FA77"}.mdi-traffic-light::before{content:"\F52B"}.mdi-train::before{content:"\F52C"}.mdi-train-car::before{content:"\FBB4"}.mdi-train-variant::before{content:"\F8C3"}.mdi-tram::before{content:"\F52D"}.mdi-transcribe::before{content:"\F52E"}.mdi-transcribe-close::before{content:"\F52F"}.mdi-transfer-down::before{content:"\FD7D"}.mdi-transfer-left::before{content:"\FD7E"}.mdi-transfer-right::before{content:"\F530"}.mdi-transfer-up::before{content:"\FD7F"}.mdi-transit-connection::before{content:"\FD18"}.mdi-transit-connection-variant::before{content:"\FD19"}.mdi-transit-detour::before{content:"\FFA8"}.mdi-transit-transfer::before{content:"\F6AD"}.mdi-transition::before{content:"\F914"}.mdi-transition-masked::before{content:"\F915"}.mdi-translate::before{content:"\F5CA"}.mdi-translate-off::before{content:"\FE66"}.mdi-transmission-tower::before{content:"\FD1A"}.mdi-trash-can::before{content:"\FA78"}.mdi-trash-can-outline::before{content:"\FA79"}.mdi-treasure-chest::before{content:"\F725"}.mdi-tree::before{content:"\F531"}.mdi-tree-outline::before{content:"\FE4C"}.mdi-trello::before{content:"\F532"}.mdi-trending-down::before{content:"\F533"}.mdi-trending-neutral::before{content:"\F534"}.mdi-trending-up::before{content:"\F535"}.mdi-triangle::before{content:"\F536"}.mdi-triangle-outline::before{content:"\F537"}.mdi-triforce::before{content:"\FBB5"}.mdi-trophy::before{content:"\F538"}.mdi-trophy-award::before{content:"\F539"}.mdi-trophy-broken::before{content:"\FD80"}.mdi-trophy-outline::before{content:"\F53A"}.mdi-trophy-variant::before{content:"\F53B"}.mdi-trophy-variant-outline::before{content:"\F53C"}.mdi-truck::before{content:"\F53D"}.mdi-truck-check::before{content:"\FCB0"}.mdi-truck-delivery::before{content:"\F53E"}.mdi-truck-fast::before{content:"\F787"}.mdi-truck-trailer::before{content:"\F726"}.mdi-tshirt-crew::before{content:"\FA7A"}.mdi-tshirt-crew-outline::before{content:"\F53F"}.mdi-tshirt-v::before{content:"\FA7B"}.mdi-tshirt-v-outline::before{content:"\F540"}.mdi-tumble-dryer::before{content:"\F916"}.mdi-tumblr::before{content:"\F541"}.mdi-tumblr-box::before{content:"\F917"}.mdi-tumblr-reblog::before{content:"\F542"}.mdi-tune::before{content:"\F62E"}.mdi-tune-vertical::before{content:"\F66A"}.mdi-turnstile::before{content:"\FCB1"}.mdi-turnstile-outline::before{content:"\FCB2"}.mdi-turtle::before{content:"\FCB3"}.mdi-twitch::before{content:"\F543"}.mdi-twitter::before{content:"\F544"}.mdi-twitter-box::before{content:"\F545"}.mdi-twitter-circle::before{content:"\F546"}.mdi-twitter-retweet::before{content:"\F547"}.mdi-two-factor-authentication::before{content:"\F9AE"}.mdi-typewriter::before{content:"\FF4A"}.mdi-uber::before{content:"\F748"}.mdi-ubisoft::before{content:"\FBB6"}.mdi-ubuntu::before{content:"\F548"}.mdi-ultra-high-definition::before{content:"\F7F8"}.mdi-umbraco::before{content:"\F549"}.mdi-umbrella::before{content:"\F54A"}.mdi-umbrella-closed::before{content:"\F9AF"}.mdi-umbrella-outline::before{content:"\F54B"}.mdi-undo::before{content:"\F54C"}.mdi-undo-variant::before{content:"\F54D"}.mdi-unfold-less-horizontal::before{content:"\F54E"}.mdi-unfold-less-vertical::before{content:"\F75F"}.mdi-unfold-more-horizontal::before{content:"\F54F"}.mdi-unfold-more-vertical::before{content:"\F760"}.mdi-ungroup::before{content:"\F550"}.mdi-unicode::before{content:"\FEED"}.mdi-unity::before{content:"\F6AE"}.mdi-unreal::before{content:"\F9B0"}.mdi-untappd::before{content:"\F551"}.mdi-update::before{content:"\F6AF"}.mdi-upload::before{content:"\F552"}.mdi-upload-multiple::before{content:"\F83C"}.mdi-upload-network::before{content:"\F6F5"}.mdi-upload-network-outline::before{content:"\FCB4"}.mdi-upload-outline::before{content:"\FE67"}.mdi-usb::before{content:"\F553"}.mdi-van-passenger::before{content:"\F7F9"}.mdi-van-utility::before{content:"\F7FA"}.mdi-vanish::before{content:"\F7FB"}.mdi-variable::before{content:"\FAE6"}.mdi-vector-arrange-above::before{content:"\F554"}.mdi-vector-arrange-below::before{content:"\F555"}.mdi-vector-bezier::before{content:"\FAE7"}.mdi-vector-circle::before{content:"\F556"}.mdi-vector-circle-variant::before{content:"\F557"}.mdi-vector-combine::before{content:"\F558"}.mdi-vector-curve::before{content:"\F559"}.mdi-vector-difference::before{content:"\F55A"}.mdi-vector-difference-ab::before{content:"\F55B"}.mdi-vector-difference-ba::before{content:"\F55C"}.mdi-vector-ellipse::before{content:"\F892"}.mdi-vector-intersection::before{content:"\F55D"}.mdi-vector-line::before{content:"\F55E"}.mdi-vector-point::before{content:"\F55F"}.mdi-vector-polygon::before{content:"\F560"}.mdi-vector-polyline::before{content:"\F561"}.mdi-vector-radius::before{content:"\F749"}.mdi-vector-rectangle::before{content:"\F5C6"}.mdi-vector-selection::before{content:"\F562"}.mdi-vector-square::before{content:"\F001"}.mdi-vector-triangle::before{content:"\F563"}.mdi-vector-union::before{content:"\F564"}.mdi-venmo::before{content:"\F578"}.mdi-vhs::before{content:"\FA1A"}.mdi-vibrate::before{content:"\F566"}.mdi-vibrate-off::before{content:"\FCB5"}.mdi-video::before{content:"\F567"}.mdi-video-3d::before{content:"\F7FC"}.mdi-video-3d-variant::before{content:"\FEEE"}.mdi-video-4k-box::before{content:"\F83D"}.mdi-video-account::before{content:"\F918"}.mdi-video-image::before{content:"\F919"}.mdi-video-input-antenna::before{content:"\F83E"}.mdi-video-input-component::before{content:"\F83F"}.mdi-video-input-hdmi::before{content:"\F840"}.mdi-video-input-scart::before{content:"\FFA9"}.mdi-video-input-svideo::before{content:"\F841"}.mdi-video-minus::before{content:"\F9B1"}.mdi-video-off::before{content:"\F568"}.mdi-video-off-outline::before{content:"\FBB7"}.mdi-video-outline::before{content:"\FBB8"}.mdi-video-plus::before{content:"\F9B2"}.mdi-video-stabilization::before{content:"\F91A"}.mdi-video-switch::before{content:"\F569"}.mdi-video-vintage::before{content:"\FA1B"}.mdi-video-wireless::before{content:"\FEEF"}.mdi-video-wireless-outline::before{content:"\FEF0"}.mdi-view-agenda::before{content:"\F56A"}.mdi-view-array::before{content:"\F56B"}.mdi-view-carousel::before{content:"\F56C"}.mdi-view-column::before{content:"\F56D"}.mdi-view-comfy::before{content:"\FE4D"}.mdi-view-compact::before{content:"\FE4E"}.mdi-view-compact-outline::before{content:"\FE4F"}.mdi-view-dashboard::before{content:"\F56E"}.mdi-view-dashboard-outline::before{content:"\FA1C"}.mdi-view-dashboard-variant::before{content:"\F842"}.mdi-view-day::before{content:"\F56F"}.mdi-view-grid::before{content:"\F570"}.mdi-view-grid-plus::before{content:"\FFAA"}.mdi-view-headline::before{content:"\F571"}.mdi-view-list::before{content:"\F572"}.mdi-view-module::before{content:"\F573"}.mdi-view-parallel::before{content:"\F727"}.mdi-view-quilt::before{content:"\F574"}.mdi-view-sequential::before{content:"\F728"}.mdi-view-split-horizontal::before{content:"\FBA7"}.mdi-view-split-vertical::before{content:"\FBA8"}.mdi-view-stream::before{content:"\F575"}.mdi-view-week::before{content:"\F576"}.mdi-vimeo::before{content:"\F577"}.mdi-violin::before{content:"\F60F"}.mdi-virtual-reality::before{content:"\F893"}.mdi-visual-studio::before{content:"\F610"}.mdi-visual-studio-code::before{content:"\FA1D"}.mdi-vk::before{content:"\F579"}.mdi-vk-box::before{content:"\F57A"}.mdi-vk-circle::before{content:"\F57B"}.mdi-vlc::before{content:"\F57C"}.mdi-voice::before{content:"\F5CB"}.mdi-voice-off::before{content:"\FEF1"}.mdi-voicemail::before{content:"\F57D"}.mdi-volleyball::before{content:"\F9B3"}.mdi-volume-high::before{content:"\F57E"}.mdi-volume-low::before{content:"\F57F"}.mdi-volume-medium::before{content:"\F580"}.mdi-volume-minus::before{content:"\F75D"}.mdi-volume-mute::before{content:"\F75E"}.mdi-volume-off::before{content:"\F581"}.mdi-volume-plus::before{content:"\F75C"}.mdi-volume-variant-off::before{content:"\FE68"}.mdi-vote::before{content:"\FA1E"}.mdi-vote-outline::before{content:"\FA1F"}.mdi-vpn::before{content:"\F582"}.mdi-vuejs::before{content:"\F843"}.mdi-vuetify::before{content:"\FE50"}.mdi-walk::before{content:"\F583"}.mdi-wall::before{content:"\F7FD"}.mdi-wall-sconce::before{content:"\F91B"}.mdi-wall-sconce-flat::before{content:"\F91C"}.mdi-wall-sconce-variant::before{content:"\F91D"}.mdi-wallet::before{content:"\F584"}.mdi-wallet-giftcard::before{content:"\F585"}.mdi-wallet-membership::before{content:"\F586"}.mdi-wallet-outline::before{content:"\FBB9"}.mdi-wallet-plus::before{content:"\FFAB"}.mdi-wallet-plus-outline::before{content:"\FFAC"}.mdi-wallet-travel::before{content:"\F587"}.mdi-wallpaper::before{content:"\FE69"}.mdi-wan::before{content:"\F588"}.mdi-wardrobe::before{content:"\FFAD"}.mdi-wardrobe-outline::before{content:"\FFAE"}.mdi-warehouse::before{content:"\FFBB"}.mdi-washing-machine::before{content:"\F729"}.mdi-watch::before{content:"\F589"}.mdi-watch-export::before{content:"\F58A"}.mdi-watch-export-variant::before{content:"\F894"}.mdi-watch-import::before{content:"\F58B"}.mdi-watch-import-variant::before{content:"\F895"}.mdi-watch-variant::before{content:"\F896"}.mdi-watch-vibrate::before{content:"\F6B0"}.mdi-watch-vibrate-off::before{content:"\FCB6"}.mdi-water::before{content:"\F58C"}.mdi-water-boiler::before{content:"\FFAF"}.mdi-water-off::before{content:"\F58D"}.mdi-water-outline::before{content:"\FE6A"}.mdi-water-percent::before{content:"\F58E"}.mdi-water-pump::before{content:"\F58F"}.mdi-water-pump-off::before{content:"\FFB0"}.mdi-watermark::before{content:"\F612"}.mdi-wave::before{content:"\FF4B"}.mdi-waves::before{content:"\F78C"}.mdi-waze::before{content:"\FBBA"}.mdi-weather-cloudy::before{content:"\F590"}.mdi-weather-cloudy-alert::before{content:"\FF4C"}.mdi-weather-cloudy-arrow-right::before{content:"\FE51"}.mdi-weather-fog::before{content:"\F591"}.mdi-weather-hail::before{content:"\F592"}.mdi-weather-hazy::before{content:"\FF4D"}.mdi-weather-hurricane::before{content:"\F897"}.mdi-weather-lightning::before{content:"\F593"}.mdi-weather-lightning-rainy::before{content:"\F67D"}.mdi-weather-night::before{content:"\F594"}.mdi-weather-night-partly-cloudy::before{content:"\FF4E"}.mdi-weather-partly-cloudy::before{content:"\F595"}.mdi-weather-partly-lightning::before{content:"\FF4F"}.mdi-weather-partly-rainy::before{content:"\FF50"}.mdi-weather-partly-snowy::before{content:"\FF51"}.mdi-weather-partly-snowy-rainy::before{content:"\FF52"}.mdi-weather-pouring::before{content:"\F596"}.mdi-weather-rainy::before{content:"\F597"}.mdi-weather-snowy::before{content:"\F598"}.mdi-weather-snowy-heavy::before{content:"\FF53"}.mdi-weather-snowy-rainy::before{content:"\F67E"}.mdi-weather-sunny::before{content:"\F599"}.mdi-weather-sunny-alert::before{content:"\FF54"}.mdi-weather-sunset::before{content:"\F59A"}.mdi-weather-sunset-down::before{content:"\F59B"}.mdi-weather-sunset-up::before{content:"\F59C"}.mdi-weather-tornado::before{content:"\FF55"}.mdi-weather-windy::before{content:"\F59D"}.mdi-weather-windy-variant::before{content:"\F59E"}.mdi-web::before{content:"\F59F"}.mdi-web-box::before{content:"\FFB1"}.mdi-webcam::before{content:"\F5A0"}.mdi-webhook::before{content:"\F62F"}.mdi-webpack::before{content:"\F72A"}.mdi-wechat::before{content:"\F611"}.mdi-weight::before{content:"\F5A1"}.mdi-weight-gram::before{content:"\FD1B"}.mdi-weight-kilogram::before{content:"\F5A2"}.mdi-weight-pound::before{content:"\F9B4"}.mdi-whatsapp::before{content:"\F5A3"}.mdi-wheelchair-accessibility::before{content:"\F5A4"}.mdi-whistle::before{content:"\F9B5"}.mdi-white-balance-auto::before{content:"\F5A5"}.mdi-white-balance-incandescent::before{content:"\F5A6"}.mdi-white-balance-iridescent::before{content:"\F5A7"}.mdi-white-balance-sunny::before{content:"\F5A8"}.mdi-widgets::before{content:"\F72B"}.mdi-wifi::before{content:"\F5A9"}.mdi-wifi-off::before{content:"\F5AA"}.mdi-wifi-star::before{content:"\FE6B"}.mdi-wifi-strength-1::before{content:"\F91E"}.mdi-wifi-strength-1-alert::before{content:"\F91F"}.mdi-wifi-strength-1-lock::before{content:"\F920"}.mdi-wifi-strength-2::before{content:"\F921"}.mdi-wifi-strength-2-alert::before{content:"\F922"}.mdi-wifi-strength-2-lock::before{content:"\F923"}.mdi-wifi-strength-3::before{content:"\F924"}.mdi-wifi-strength-3-alert::before{content:"\F925"}.mdi-wifi-strength-3-lock::before{content:"\F926"}.mdi-wifi-strength-4::before{content:"\F927"}.mdi-wifi-strength-4-alert::before{content:"\F928"}.mdi-wifi-strength-4-lock::before{content:"\F929"}.mdi-wifi-strength-alert-outline::before{content:"\F92A"}.mdi-wifi-strength-lock-outline::before{content:"\F92B"}.mdi-wifi-strength-off::before{content:"\F92C"}.mdi-wifi-strength-off-outline::before{content:"\F92D"}.mdi-wifi-strength-outline::before{content:"\F92E"}.mdi-wii::before{content:"\F5AB"}.mdi-wiiu::before{content:"\F72C"}.mdi-wikipedia::before{content:"\F5AC"}.mdi-wind-turbine::before{content:"\FD81"}.mdi-window-close::before{content:"\F5AD"}.mdi-window-closed::before{content:"\F5AE"}.mdi-window-maximize::before{content:"\F5AF"}.mdi-window-minimize::before{content:"\F5B0"}.mdi-window-open::before{content:"\F5B1"}.mdi-window-restore::before{content:"\F5B2"}.mdi-windows::before{content:"\F5B3"}.mdi-windows-classic::before{content:"\FA20"}.mdi-wiper::before{content:"\FAE8"}.mdi-wiper-wash::before{content:"\FD82"}.mdi-wordpress::before{content:"\F5B4"}.mdi-worker::before{content:"\F5B5"}.mdi-wrap::before{content:"\F5B6"}.mdi-wrap-disabled::before{content:"\FBBB"}.mdi-wrench::before{content:"\F5B7"}.mdi-wrench-outline::before{content:"\FBBC"}.mdi-wunderlist::before{content:"\F5B8"}.mdi-xamarin::before{content:"\F844"}.mdi-xamarin-outline::before{content:"\F845"}.mdi-xaml::before{content:"\F673"}.mdi-xbox::before{content:"\F5B9"}.mdi-xbox-controller::before{content:"\F5BA"}.mdi-xbox-controller-battery-alert::before{content:"\F74A"}.mdi-xbox-controller-battery-charging::before{content:"\FA21"}.mdi-xbox-controller-battery-empty::before{content:"\F74B"}.mdi-xbox-controller-battery-full::before{content:"\F74C"}.mdi-xbox-controller-battery-low::before{content:"\F74D"}.mdi-xbox-controller-battery-medium::before{content:"\F74E"}.mdi-xbox-controller-battery-unknown::before{content:"\F74F"}.mdi-xbox-controller-menu::before{content:"\FE52"}.mdi-xbox-controller-off::before{content:"\F5BB"}.mdi-xbox-controller-view::before{content:"\FE53"}.mdi-xda::before{content:"\F5BC"}.mdi-xing::before{content:"\F5BD"}.mdi-xing-box::before{content:"\F5BE"}.mdi-xing-circle::before{content:"\F5BF"}.mdi-xml::before{content:"\F5C0"}.mdi-xmpp::before{content:"\F7FE"}.mdi-yahoo::before{content:"\FB2A"}.mdi-yammer::before{content:"\F788"}.mdi-yeast::before{content:"\F5C1"}.mdi-yelp::before{content:"\F5C2"}.mdi-yin-yang::before{content:"\F67F"}.mdi-youtube::before{content:"\F5C3"}.mdi-youtube-creator-studio::before{content:"\F846"}.mdi-youtube-gaming::before{content:"\F847"}.mdi-youtube-subscription::before{content:"\FD1C"}.mdi-youtube-tv::before{content:"\F448"}.mdi-z-wave::before{content:"\FAE9"}.mdi-zend::before{content:"\FAEA"}.mdi-zigbee::before{content:"\FD1D"}.mdi-zip-box::before{content:"\F5C4"}.mdi-zip-disk::before{content:"\FA22"}.mdi-zodiac-aquarius::before{content:"\FA7C"}.mdi-zodiac-aries::before{content:"\FA7D"}.mdi-zodiac-cancer::before{content:"\FA7E"}.mdi-zodiac-capricorn::before{content:"\FA7F"}.mdi-zodiac-gemini::before{content:"\FA80"}.mdi-zodiac-leo::before{content:"\FA81"}.mdi-zodiac-libra::before{content:"\FA82"}.mdi-zodiac-pisces::before{content:"\FA83"}.mdi-zodiac-sagittarius::before{content:"\FA84"}.mdi-zodiac-scorpio::before{content:"\FA85"}.mdi-zodiac-taurus::before{content:"\FA86"}.mdi-zodiac-virgo::before{content:"\FA87"}.mdi-blank::before{content:"\F68C";visibility:hidden}.mdi-18px.mdi-set,.mdi-18px.mdi:before{font-size:18px}.mdi-24px.mdi-set,.mdi-24px.mdi:before{font-size:24px}.mdi-36px.mdi-set,.mdi-36px.mdi:before{font-size:36px}.mdi-48px.mdi-set,.mdi-48px.mdi:before{font-size:48px}.mdi-dark:before{color:rgba(0,0,0,0.54)}.mdi-dark.mdi-inactive:before{color:rgba(0,0,0,0.26)}.mdi-light:before{color:#fff}.mdi-light.mdi-inactive:before{color:rgba(255,255,255,0.3)}.mdi-rotate-45:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.mdi-rotate-90:before{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.mdi-rotate-135:before{-webkit-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg)}.mdi-rotate-180:before{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.mdi-rotate-225:before{-webkit-transform:rotate(225deg);-ms-transform:rotate(225deg);transform:rotate(225deg)}.mdi-rotate-270:before{-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.mdi-rotate-315:before{-webkit-transform:rotate(315deg);-ms-transform:rotate(315deg);transform:rotate(315deg)}.mdi-flip-h:before{-webkit-transform:scaleX(-1);transform:scaleX(-1);filter:FlipH;-ms-filter:"FlipH"}.mdi-flip-v:before{-webkit-transform:scaleY(-1);transform:scaleY(-1);filter:FlipV;-ms-filter:"FlipV"}.mdi-spin:before{-webkit-animation:mdi-spin 2s infinite linear;animation:mdi-spin 2s infinite linear}@-webkit-keyframes mdi-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes mdi-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}} + +/*# sourceMappingURL=materialdesignicons.css.map */ \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/css/materialicon.css b/NMP 3.0 Moodle Pluggin/fliplearning/css/materialicon.css new file mode 100644 index 0000000000000000000000000000000000000000..ebf1771933fc9afb88426b061385291be719e6e5 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/css/materialicon.css @@ -0,0 +1,23 @@ +/* fallback */ +@font-face { + font-family: 'Material Icons'; + font-style: normal; + font-weight: 400; + src: url(https://fonts.gstatic.com/s/materialicons/v48/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format('woff2'); +} + +.material-icons { + font-family: 'Material Icons'; + font-weight: normal; + font-style: normal; + font-size: 24px; + line-height: 1; + letter-spacing: normal; + text-transform: none; + display: inline-block; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-feature-settings: 'liga'; + -webkit-font-smoothing: antialiased; +} diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/css/quill.bubble.css b/NMP 3.0 Moodle Pluggin/fliplearning/css/quill.bubble.css new file mode 100644 index 0000000000000000000000000000000000000000..03e46d539cdc967cf30eff8ee18050cf16345553 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/css/quill.bubble.css @@ -0,0 +1,952 @@ +/*! + * Quill Editor v1.3.4 + * https://quilljs.com/ + * Copyright (c) 2014, Jason Chen + * Copyright (c) 2013, salesforce.com + */ +.ql-container { + box-sizing: border-box; + font-family: Helvetica, Arial, sans-serif; + font-size: 13px; + height: 100%; + margin: 0px; + position: relative; +} +.ql-container.ql-disabled .ql-tooltip { + visibility: hidden; +} +.ql-container.ql-disabled .ql-editor ul[data-checked] > li::before { + pointer-events: none; +} +.ql-clipboard { + left: -100000px; + height: 1px; + overflow-y: hidden; + position: absolute; + top: 50%; +} +.ql-clipboard p { + margin: 0; + padding: 0; +} +.ql-editor { + box-sizing: border-box; + line-height: 1.42; + height: 100%; + outline: none; + overflow-y: auto; + padding: 12px 15px; + tab-size: 4; + -moz-tab-size: 4; + text-align: left; + white-space: pre-wrap; + word-wrap: break-word; +} +.ql-editor > * { + cursor: text; +} +.ql-editor p, +.ql-editor ol, +.ql-editor ul, +.ql-editor pre, +.ql-editor blockquote, +.ql-editor h1, +.ql-editor h2, +.ql-editor h3, +.ql-editor h4, +.ql-editor h5, +.ql-editor h6 { + margin: 0; + padding: 0; + counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol, +.ql-editor ul { + padding-left: 1.5em; +} +.ql-editor ol > li, +.ql-editor ul > li { + list-style-type: none; +} +.ql-editor ul > li::before { + content: '\2022'; +} +.ql-editor ul[data-checked=true], +.ql-editor ul[data-checked=false] { + pointer-events: none; +} +.ql-editor ul[data-checked=true] > li *, +.ql-editor ul[data-checked=false] > li * { + pointer-events: all; +} +.ql-editor ul[data-checked=true] > li::before, +.ql-editor ul[data-checked=false] > li::before { + color: #777; + cursor: pointer; + pointer-events: all; +} +.ql-editor ul[data-checked=true] > li::before { + content: '\2611'; +} +.ql-editor ul[data-checked=false] > li::before { + content: '\2610'; +} +.ql-editor li::before { + display: inline-block; + white-space: nowrap; + width: 1.2em; +} +.ql-editor li:not(.ql-direction-rtl)::before { + margin-left: -1.5em; + margin-right: 0.3em; + text-align: right; +} +.ql-editor li.ql-direction-rtl::before { + margin-left: 0.3em; + margin-right: -1.5em; +} +.ql-editor ol li:not(.ql-direction-rtl), +.ql-editor ul li:not(.ql-direction-rtl) { + padding-left: 1.5em; +} +.ql-editor ol li.ql-direction-rtl, +.ql-editor ul li.ql-direction-rtl { + padding-right: 1.5em; +} +.ql-editor ol li { + counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9; + counter-increment: list-0; +} +.ql-editor ol li:before { + content: counter(list-0, decimal) '. '; +} +.ql-editor ol li.ql-indent-1 { + counter-increment: list-1; +} +.ql-editor ol li.ql-indent-1:before { + content: counter(list-1, lower-alpha) '. '; +} +.ql-editor ol li.ql-indent-1 { + counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-2 { + counter-increment: list-2; +} +.ql-editor ol li.ql-indent-2:before { + content: counter(list-2, lower-roman) '. '; +} +.ql-editor ol li.ql-indent-2 { + counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-3 { + counter-increment: list-3; +} +.ql-editor ol li.ql-indent-3:before { + content: counter(list-3, decimal) '. '; +} +.ql-editor ol li.ql-indent-3 { + counter-reset: list-4 list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-4 { + counter-increment: list-4; +} +.ql-editor ol li.ql-indent-4:before { + content: counter(list-4, lower-alpha) '. '; +} +.ql-editor ol li.ql-indent-4 { + counter-reset: list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-5 { + counter-increment: list-5; +} +.ql-editor ol li.ql-indent-5:before { + content: counter(list-5, lower-roman) '. '; +} +.ql-editor ol li.ql-indent-5 { + counter-reset: list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-6 { + counter-increment: list-6; +} +.ql-editor ol li.ql-indent-6:before { + content: counter(list-6, decimal) '. '; +} +.ql-editor ol li.ql-indent-6 { + counter-reset: list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-7 { + counter-increment: list-7; +} +.ql-editor ol li.ql-indent-7:before { + content: counter(list-7, lower-alpha) '. '; +} +.ql-editor ol li.ql-indent-7 { + counter-reset: list-8 list-9; +} +.ql-editor ol li.ql-indent-8 { + counter-increment: list-8; +} +.ql-editor ol li.ql-indent-8:before { + content: counter(list-8, lower-roman) '. '; +} +.ql-editor ol li.ql-indent-8 { + counter-reset: list-9; +} +.ql-editor ol li.ql-indent-9 { + counter-increment: list-9; +} +.ql-editor ol li.ql-indent-9:before { + content: counter(list-9, decimal) '. '; +} +.ql-editor .ql-indent-1:not(.ql-direction-rtl) { + padding-left: 3em; +} +.ql-editor li.ql-indent-1:not(.ql-direction-rtl) { + padding-left: 4.5em; +} +.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right { + padding-right: 3em; +} +.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right { + padding-right: 4.5em; +} +.ql-editor .ql-indent-2:not(.ql-direction-rtl) { + padding-left: 6em; +} +.ql-editor li.ql-indent-2:not(.ql-direction-rtl) { + padding-left: 7.5em; +} +.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right { + padding-right: 6em; +} +.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right { + padding-right: 7.5em; +} +.ql-editor .ql-indent-3:not(.ql-direction-rtl) { + padding-left: 9em; +} +.ql-editor li.ql-indent-3:not(.ql-direction-rtl) { + padding-left: 10.5em; +} +.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right { + padding-right: 9em; +} +.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right { + padding-right: 10.5em; +} +.ql-editor .ql-indent-4:not(.ql-direction-rtl) { + padding-left: 12em; +} +.ql-editor li.ql-indent-4:not(.ql-direction-rtl) { + padding-left: 13.5em; +} +.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right { + padding-right: 12em; +} +.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right { + padding-right: 13.5em; +} +.ql-editor .ql-indent-5:not(.ql-direction-rtl) { + padding-left: 15em; +} +.ql-editor li.ql-indent-5:not(.ql-direction-rtl) { + padding-left: 16.5em; +} +.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right { + padding-right: 15em; +} +.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right { + padding-right: 16.5em; +} +.ql-editor .ql-indent-6:not(.ql-direction-rtl) { + padding-left: 18em; +} +.ql-editor li.ql-indent-6:not(.ql-direction-rtl) { + padding-left: 19.5em; +} +.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right { + padding-right: 18em; +} +.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right { + padding-right: 19.5em; +} +.ql-editor .ql-indent-7:not(.ql-direction-rtl) { + padding-left: 21em; +} +.ql-editor li.ql-indent-7:not(.ql-direction-rtl) { + padding-left: 22.5em; +} +.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right { + padding-right: 21em; +} +.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right { + padding-right: 22.5em; +} +.ql-editor .ql-indent-8:not(.ql-direction-rtl) { + padding-left: 24em; +} +.ql-editor li.ql-indent-8:not(.ql-direction-rtl) { + padding-left: 25.5em; +} +.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right { + padding-right: 24em; +} +.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right { + padding-right: 25.5em; +} +.ql-editor .ql-indent-9:not(.ql-direction-rtl) { + padding-left: 27em; +} +.ql-editor li.ql-indent-9:not(.ql-direction-rtl) { + padding-left: 28.5em; +} +.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right { + padding-right: 27em; +} +.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right { + padding-right: 28.5em; +} +.ql-editor .ql-video { + display: block; + max-width: 100%; +} +.ql-editor .ql-video.ql-align-center { + margin: 0 auto; +} +.ql-editor .ql-video.ql-align-right { + margin: 0 0 0 auto; +} +.ql-editor .ql-bg-black { + background-color: #000; +} +.ql-editor .ql-bg-red { + background-color: #e60000; +} +.ql-editor .ql-bg-orange { + background-color: #f90; +} +.ql-editor .ql-bg-yellow { + background-color: #ff0; +} +.ql-editor .ql-bg-green { + background-color: #008a00; +} +.ql-editor .ql-bg-blue { + background-color: #06c; +} +.ql-editor .ql-bg-purple { + background-color: #93f; +} +.ql-editor .ql-color-white { + color: #fff; +} +.ql-editor .ql-color-red { + color: #e60000; +} +.ql-editor .ql-color-orange { + color: #f90; +} +.ql-editor .ql-color-yellow { + color: #ff0; +} +.ql-editor .ql-color-green { + color: #008a00; +} +.ql-editor .ql-color-blue { + color: #06c; +} +.ql-editor .ql-color-purple { + color: #93f; +} +.ql-editor .ql-font-serif { + font-family: Georgia, Times New Roman, serif; +} +.ql-editor .ql-font-monospace { + font-family: Monaco, Courier New, monospace; +} +.ql-editor .ql-size-small { + font-size: 0.75em; +} +.ql-editor .ql-size-large { + font-size: 1.5em; +} +.ql-editor .ql-size-huge { + font-size: 2.5em; +} +.ql-editor .ql-direction-rtl { + direction: rtl; + text-align: inherit; +} +.ql-editor .ql-align-center { + text-align: center; +} +.ql-editor .ql-align-justify { + text-align: justify; +} +.ql-editor .ql-align-right { + text-align: right; +} +.ql-editor.ql-blank::before { + color: rgba(0,0,0,0.6); + content: attr(data-placeholder); + font-style: italic; + left: 15px; + pointer-events: none; + position: absolute; + right: 15px; +} +.ql-bubble.ql-toolbar:after, +.ql-bubble .ql-toolbar:after { + clear: both; + content: ''; + display: table; +} +.ql-bubble.ql-toolbar button, +.ql-bubble .ql-toolbar button { + background: none; + border: none; + cursor: pointer; + display: inline-block; + float: left; + height: 24px; + padding: 3px 5px; + width: 28px; +} +.ql-bubble.ql-toolbar button svg, +.ql-bubble .ql-toolbar button svg { + float: left; + height: 100%; +} +.ql-bubble.ql-toolbar button:active:hover, +.ql-bubble .ql-toolbar button:active:hover { + outline: none; +} +.ql-bubble.ql-toolbar input.ql-image[type=file], +.ql-bubble .ql-toolbar input.ql-image[type=file] { + display: none; +} +.ql-bubble.ql-toolbar button:hover, +.ql-bubble .ql-toolbar button:hover, +.ql-bubble.ql-toolbar button:focus, +.ql-bubble .ql-toolbar button:focus, +.ql-bubble.ql-toolbar button.ql-active, +.ql-bubble .ql-toolbar button.ql-active, +.ql-bubble.ql-toolbar .ql-picker-label:hover, +.ql-bubble .ql-toolbar .ql-picker-label:hover, +.ql-bubble.ql-toolbar .ql-picker-label.ql-active, +.ql-bubble .ql-toolbar .ql-picker-label.ql-active, +.ql-bubble.ql-toolbar .ql-picker-item:hover, +.ql-bubble .ql-toolbar .ql-picker-item:hover, +.ql-bubble.ql-toolbar .ql-picker-item.ql-selected, +.ql-bubble .ql-toolbar .ql-picker-item.ql-selected { + color: #fff; +} +.ql-bubble.ql-toolbar button:hover .ql-fill, +.ql-bubble .ql-toolbar button:hover .ql-fill, +.ql-bubble.ql-toolbar button:focus .ql-fill, +.ql-bubble .ql-toolbar button:focus .ql-fill, +.ql-bubble.ql-toolbar button.ql-active .ql-fill, +.ql-bubble .ql-toolbar button.ql-active .ql-fill, +.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-fill, +.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-fill, +.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-fill, +.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-fill, +.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-fill, +.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-fill, +.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-fill, +.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-fill, +.ql-bubble.ql-toolbar button:hover .ql-stroke.ql-fill, +.ql-bubble .ql-toolbar button:hover .ql-stroke.ql-fill, +.ql-bubble.ql-toolbar button:focus .ql-stroke.ql-fill, +.ql-bubble .ql-toolbar button:focus .ql-stroke.ql-fill, +.ql-bubble.ql-toolbar button.ql-active .ql-stroke.ql-fill, +.ql-bubble .ql-toolbar button.ql-active .ql-stroke.ql-fill, +.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill, +.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill, +.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill, +.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill, +.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill, +.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill, +.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill, +.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill { + fill: #fff; +} +.ql-bubble.ql-toolbar button:hover .ql-stroke, +.ql-bubble .ql-toolbar button:hover .ql-stroke, +.ql-bubble.ql-toolbar button:focus .ql-stroke, +.ql-bubble .ql-toolbar button:focus .ql-stroke, +.ql-bubble.ql-toolbar button.ql-active .ql-stroke, +.ql-bubble .ql-toolbar button.ql-active .ql-stroke, +.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke, +.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke, +.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke, +.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke, +.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke, +.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke, +.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke, +.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke, +.ql-bubble.ql-toolbar button:hover .ql-stroke-miter, +.ql-bubble .ql-toolbar button:hover .ql-stroke-miter, +.ql-bubble.ql-toolbar button:focus .ql-stroke-miter, +.ql-bubble .ql-toolbar button:focus .ql-stroke-miter, +.ql-bubble.ql-toolbar button.ql-active .ql-stroke-miter, +.ql-bubble .ql-toolbar button.ql-active .ql-stroke-miter, +.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke-miter, +.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke-miter, +.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter, +.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter, +.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke-miter, +.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke-miter, +.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter, +.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter { + stroke: #fff; +} +@media (pointer: coarse) { + .ql-bubble.ql-toolbar button:hover:not(.ql-active), + .ql-bubble .ql-toolbar button:hover:not(.ql-active) { + color: #ccc; + } + .ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-fill, + .ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-fill, + .ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill, + .ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill { + fill: #ccc; + } + .ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-stroke, + .ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-stroke, + .ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter, + .ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter { + stroke: #ccc; + } +} +.ql-bubble { + box-sizing: border-box; +} +.ql-bubble * { + box-sizing: border-box; +} +.ql-bubble .ql-hidden { + display: none; +} +.ql-bubble .ql-out-bottom, +.ql-bubble .ql-out-top { + visibility: hidden; +} +.ql-bubble .ql-tooltip { + position: absolute; + transform: translateY(10px); +} +.ql-bubble .ql-tooltip a { + cursor: pointer; + text-decoration: none; +} +.ql-bubble .ql-tooltip.ql-flip { + transform: translateY(-10px); +} +.ql-bubble .ql-formats { + display: inline-block; + vertical-align: middle; +} +.ql-bubble .ql-formats:after { + clear: both; + content: ''; + display: table; +} +.ql-bubble .ql-stroke { + fill: none; + stroke: #ccc; + stroke-linecap: round; + stroke-linejoin: round; + stroke-width: 2; +} +.ql-bubble .ql-stroke-miter { + fill: none; + stroke: #ccc; + stroke-miterlimit: 10; + stroke-width: 2; +} +.ql-bubble .ql-fill, +.ql-bubble .ql-stroke.ql-fill { + fill: #ccc; +} +.ql-bubble .ql-empty { + fill: none; +} +.ql-bubble .ql-even { + fill-rule: evenodd; +} +.ql-bubble .ql-thin, +.ql-bubble .ql-stroke.ql-thin { + stroke-width: 1; +} +.ql-bubble .ql-transparent { + opacity: 0.4; +} +.ql-bubble .ql-direction svg:last-child { + display: none; +} +.ql-bubble .ql-direction.ql-active svg:last-child { + display: inline; +} +.ql-bubble .ql-direction.ql-active svg:first-child { + display: none; +} +.ql-bubble .ql-editor h1 { + font-size: 2em; +} +.ql-bubble .ql-editor h2 { + font-size: 1.5em; +} +.ql-bubble .ql-editor h3 { + font-size: 1.17em; +} +.ql-bubble .ql-editor h4 { + font-size: 1em; +} +.ql-bubble .ql-editor h5 { + font-size: 0.83em; +} +.ql-bubble .ql-editor h6 { + font-size: 0.67em; +} +.ql-bubble .ql-editor a { + text-decoration: underline; +} +.ql-bubble .ql-editor blockquote { + border-left: 4px solid #ccc; + margin-bottom: 5px; + margin-top: 5px; + padding-left: 16px; +} +.ql-bubble .ql-editor code, +.ql-bubble .ql-editor pre { + background-color: #f0f0f0; + border-radius: 3px; +} +.ql-bubble .ql-editor pre { + white-space: pre-wrap; + margin-bottom: 5px; + margin-top: 5px; + padding: 5px 10px; +} +.ql-bubble .ql-editor code { + font-size: 85%; + padding: 2px 4px; +} +.ql-bubble .ql-editor pre.ql-syntax { + background-color: #23241f; + color: #f8f8f2; + overflow: visible; +} +.ql-bubble .ql-editor img { + max-width: 100%; +} +.ql-bubble .ql-picker { + color: #ccc; + display: inline-block; + float: left; + font-size: 14px; + font-weight: 500; + height: 24px; + position: relative; + vertical-align: middle; +} +.ql-bubble .ql-picker-label { + cursor: pointer; + display: inline-block; + height: 100%; + padding-left: 8px; + padding-right: 2px; + position: relative; + width: 100%; +} +.ql-bubble .ql-picker-label::before { + display: inline-block; + line-height: 22px; +} +.ql-bubble .ql-picker-options { + background-color: #444; + display: none; + min-width: 100%; + padding: 4px 8px; + position: absolute; + white-space: nowrap; +} +.ql-bubble .ql-picker-options .ql-picker-item { + cursor: pointer; + display: block; + padding-bottom: 5px; + padding-top: 5px; +} +.ql-bubble .ql-picker.ql-expanded .ql-picker-label { + color: #777; + z-index: 2; +} +.ql-bubble .ql-picker.ql-expanded .ql-picker-label .ql-fill { + fill: #777; +} +.ql-bubble .ql-picker.ql-expanded .ql-picker-label .ql-stroke { + stroke: #777; +} +.ql-bubble .ql-picker.ql-expanded .ql-picker-options { + display: block; + margin-top: -1px; + top: 100%; + z-index: 1; +} +.ql-bubble .ql-color-picker, +.ql-bubble .ql-icon-picker { + width: 28px; +} +.ql-bubble .ql-color-picker .ql-picker-label, +.ql-bubble .ql-icon-picker .ql-picker-label { + padding: 2px 4px; +} +.ql-bubble .ql-color-picker .ql-picker-label svg, +.ql-bubble .ql-icon-picker .ql-picker-label svg { + right: 4px; +} +.ql-bubble .ql-icon-picker .ql-picker-options { + padding: 4px 0px; +} +.ql-bubble .ql-icon-picker .ql-picker-item { + height: 24px; + width: 24px; + padding: 2px 4px; +} +.ql-bubble .ql-color-picker .ql-picker-options { + padding: 3px 5px; + width: 152px; +} +.ql-bubble .ql-color-picker .ql-picker-item { + border: 1px solid transparent; + float: left; + height: 16px; + margin: 2px; + padding: 0px; + width: 16px; +} +.ql-bubble .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg { + position: absolute; + margin-top: -9px; + right: 0; + top: 50%; + width: 18px; +} +.ql-bubble .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before, +.ql-bubble .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before, +.ql-bubble .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before, +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before, +.ql-bubble .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before, +.ql-bubble .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before { + content: attr(data-label); +} +.ql-bubble .ql-picker.ql-header { + width: 98px; +} +.ql-bubble .ql-picker.ql-header .ql-picker-label::before, +.ql-bubble .ql-picker.ql-header .ql-picker-item::before { + content: 'Normal'; +} +.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="1"]::before, +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="1"]::before { + content: 'Heading 1'; +} +.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="2"]::before, +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="2"]::before { + content: 'Heading 2'; +} +.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="3"]::before, +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="3"]::before { + content: 'Heading 3'; +} +.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="4"]::before, +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="4"]::before { + content: 'Heading 4'; +} +.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="5"]::before, +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="5"]::before { + content: 'Heading 5'; +} +.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="6"]::before, +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="6"]::before { + content: 'Heading 6'; +} +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="1"]::before { + font-size: 2em; +} +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="2"]::before { + font-size: 1.5em; +} +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="3"]::before { + font-size: 1.17em; +} +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="4"]::before { + font-size: 1em; +} +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="5"]::before { + font-size: 0.83em; +} +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="6"]::before { + font-size: 0.67em; +} +.ql-bubble .ql-picker.ql-font { + width: 108px; +} +.ql-bubble .ql-picker.ql-font .ql-picker-label::before, +.ql-bubble .ql-picker.ql-font .ql-picker-item::before { + content: 'Sans Serif'; +} +.ql-bubble .ql-picker.ql-font .ql-picker-label[data-value=serif]::before, +.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=serif]::before { + content: 'Serif'; +} +.ql-bubble .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before, +.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before { + content: 'Monospace'; +} +.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=serif]::before { + font-family: Georgia, Times New Roman, serif; +} +.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before { + font-family: Monaco, Courier New, monospace; +} +.ql-bubble .ql-picker.ql-size { + width: 98px; +} +.ql-bubble .ql-picker.ql-size .ql-picker-label::before, +.ql-bubble .ql-picker.ql-size .ql-picker-item::before { + content: 'Normal'; +} +.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=small]::before, +.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=small]::before { + content: 'Small'; +} +.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=large]::before, +.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=large]::before { + content: 'Large'; +} +.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=huge]::before, +.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=huge]::before { + content: 'Huge'; +} +.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=small]::before { + font-size: 10px; +} +.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=large]::before { + font-size: 18px; +} +.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=huge]::before { + font-size: 32px; +} +.ql-bubble .ql-color-picker.ql-background .ql-picker-item { + background-color: #fff; +} +.ql-bubble .ql-color-picker.ql-color .ql-picker-item { + background-color: #000; +} +.ql-bubble .ql-toolbar .ql-formats { + margin: 8px 12px 8px 0px; +} +.ql-bubble .ql-toolbar .ql-formats:first-child { + margin-left: 12px; +} +.ql-bubble .ql-color-picker svg { + margin: 1px; +} +.ql-bubble .ql-color-picker .ql-picker-item.ql-selected, +.ql-bubble .ql-color-picker .ql-picker-item:hover { + border-color: #fff; +} +.ql-bubble .ql-tooltip { + background-color: #444; + border-radius: 25px; + color: #fff; +} +.ql-bubble .ql-tooltip-arrow { + border-left: 6px solid transparent; + border-right: 6px solid transparent; + content: " "; + display: block; + left: 50%; + margin-left: -6px; + position: absolute; +} +.ql-bubble .ql-tooltip:not(.ql-flip) .ql-tooltip-arrow { + border-bottom: 6px solid #444; + top: -6px; +} +.ql-bubble .ql-tooltip.ql-flip .ql-tooltip-arrow { + border-top: 6px solid #444; + bottom: -6px; +} +.ql-bubble .ql-tooltip.ql-editing .ql-tooltip-editor { + display: block; +} +.ql-bubble .ql-tooltip.ql-editing .ql-formats { + visibility: hidden; +} +.ql-bubble .ql-tooltip-editor { + display: none; +} +.ql-bubble .ql-tooltip-editor input[type=text] { + background: transparent; + border: none; + color: #fff; + font-size: 13px; + height: 100%; + outline: none; + padding: 10px 20px; + position: absolute; + width: 100%; +} +.ql-bubble .ql-tooltip-editor a { + top: 10px; + position: absolute; + right: 20px; +} +.ql-bubble .ql-tooltip-editor a:before { + color: #ccc; + content: "\D7"; + font-size: 16px; + font-weight: bold; +} +.ql-container.ql-bubble:not(.ql-disabled) a { + position: relative; + white-space: nowrap; +} +.ql-container.ql-bubble:not(.ql-disabled) a::before { + background-color: #444; + border-radius: 15px; + top: -5px; + font-size: 12px; + color: #fff; + content: attr(href); + font-weight: normal; + overflow: hidden; + padding: 5px 15px; + text-decoration: none; + z-index: 1; +} +.ql-container.ql-bubble:not(.ql-disabled) a::after { + border-top: 6px solid #444; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + top: 0; + content: " "; + height: 0; + width: 0; +} +.ql-container.ql-bubble:not(.ql-disabled) a::before, +.ql-container.ql-bubble:not(.ql-disabled) a::after { + left: 0; + margin-left: 50%; + position: absolute; + transform: translate(-50%, -100%); + transition: visibility 0s ease 200ms; + visibility: hidden; +} +.ql-container.ql-bubble:not(.ql-disabled) a:hover::before, +.ql-container.ql-bubble:not(.ql-disabled) a:hover::after { + visibility: visible; +} diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/css/quill.core.css b/NMP 3.0 Moodle Pluggin/fliplearning/css/quill.core.css new file mode 100644 index 0000000000000000000000000000000000000000..9351fc54984f0ab2df39141eacf57d35a625202c --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/css/quill.core.css @@ -0,0 +1,397 @@ +/*! + * Quill Editor v1.3.4 + * https://quilljs.com/ + * Copyright (c) 2014, Jason Chen + * Copyright (c) 2013, salesforce.com + */ +.ql-container { + box-sizing: border-box; + font-family: Helvetica, Arial, sans-serif; + font-size: 13px; + height: 100%; + margin: 0px; + position: relative; +} +.ql-container.ql-disabled .ql-tooltip { + visibility: hidden; +} +.ql-container.ql-disabled .ql-editor ul[data-checked] > li::before { + pointer-events: none; +} +.ql-clipboard { + left: -100000px; + height: 1px; + overflow-y: hidden; + position: absolute; + top: 50%; +} +.ql-clipboard p { + margin: 0; + padding: 0; +} +.ql-editor { + box-sizing: border-box; + line-height: 1.42; + height: 100%; + outline: none; + overflow-y: auto; + padding: 12px 15px; + tab-size: 4; + -moz-tab-size: 4; + text-align: left; + white-space: pre-wrap; + word-wrap: break-word; +} +.ql-editor > * { + cursor: text; +} +.ql-editor p, +.ql-editor ol, +.ql-editor ul, +.ql-editor pre, +.ql-editor blockquote, +.ql-editor h1, +.ql-editor h2, +.ql-editor h3, +.ql-editor h4, +.ql-editor h5, +.ql-editor h6 { + margin: 0; + padding: 0; + counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol, +.ql-editor ul { + padding-left: 1.5em; +} +.ql-editor ol > li, +.ql-editor ul > li { + list-style-type: none; +} +.ql-editor ul > li::before { + content: '\2022'; +} +.ql-editor ul[data-checked=true], +.ql-editor ul[data-checked=false] { + pointer-events: none; +} +.ql-editor ul[data-checked=true] > li *, +.ql-editor ul[data-checked=false] > li * { + pointer-events: all; +} +.ql-editor ul[data-checked=true] > li::before, +.ql-editor ul[data-checked=false] > li::before { + color: #777; + cursor: pointer; + pointer-events: all; +} +.ql-editor ul[data-checked=true] > li::before { + content: '\2611'; +} +.ql-editor ul[data-checked=false] > li::before { + content: '\2610'; +} +.ql-editor li::before { + display: inline-block; + white-space: nowrap; + width: 1.2em; +} +.ql-editor li:not(.ql-direction-rtl)::before { + margin-left: -1.5em; + margin-right: 0.3em; + text-align: right; +} +.ql-editor li.ql-direction-rtl::before { + margin-left: 0.3em; + margin-right: -1.5em; +} +.ql-editor ol li:not(.ql-direction-rtl), +.ql-editor ul li:not(.ql-direction-rtl) { + padding-left: 1.5em; +} +.ql-editor ol li.ql-direction-rtl, +.ql-editor ul li.ql-direction-rtl { + padding-right: 1.5em; +} +.ql-editor ol li { + counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9; + counter-increment: list-0; +} +.ql-editor ol li:before { + content: counter(list-0, decimal) '. '; +} +.ql-editor ol li.ql-indent-1 { + counter-increment: list-1; +} +.ql-editor ol li.ql-indent-1:before { + content: counter(list-1, lower-alpha) '. '; +} +.ql-editor ol li.ql-indent-1 { + counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-2 { + counter-increment: list-2; +} +.ql-editor ol li.ql-indent-2:before { + content: counter(list-2, lower-roman) '. '; +} +.ql-editor ol li.ql-indent-2 { + counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-3 { + counter-increment: list-3; +} +.ql-editor ol li.ql-indent-3:before { + content: counter(list-3, decimal) '. '; +} +.ql-editor ol li.ql-indent-3 { + counter-reset: list-4 list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-4 { + counter-increment: list-4; +} +.ql-editor ol li.ql-indent-4:before { + content: counter(list-4, lower-alpha) '. '; +} +.ql-editor ol li.ql-indent-4 { + counter-reset: list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-5 { + counter-increment: list-5; +} +.ql-editor ol li.ql-indent-5:before { + content: counter(list-5, lower-roman) '. '; +} +.ql-editor ol li.ql-indent-5 { + counter-reset: list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-6 { + counter-increment: list-6; +} +.ql-editor ol li.ql-indent-6:before { + content: counter(list-6, decimal) '. '; +} +.ql-editor ol li.ql-indent-6 { + counter-reset: list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-7 { + counter-increment: list-7; +} +.ql-editor ol li.ql-indent-7:before { + content: counter(list-7, lower-alpha) '. '; +} +.ql-editor ol li.ql-indent-7 { + counter-reset: list-8 list-9; +} +.ql-editor ol li.ql-indent-8 { + counter-increment: list-8; +} +.ql-editor ol li.ql-indent-8:before { + content: counter(list-8, lower-roman) '. '; +} +.ql-editor ol li.ql-indent-8 { + counter-reset: list-9; +} +.ql-editor ol li.ql-indent-9 { + counter-increment: list-9; +} +.ql-editor ol li.ql-indent-9:before { + content: counter(list-9, decimal) '. '; +} +.ql-editor .ql-indent-1:not(.ql-direction-rtl) { + padding-left: 3em; +} +.ql-editor li.ql-indent-1:not(.ql-direction-rtl) { + padding-left: 4.5em; +} +.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right { + padding-right: 3em; +} +.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right { + padding-right: 4.5em; +} +.ql-editor .ql-indent-2:not(.ql-direction-rtl) { + padding-left: 6em; +} +.ql-editor li.ql-indent-2:not(.ql-direction-rtl) { + padding-left: 7.5em; +} +.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right { + padding-right: 6em; +} +.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right { + padding-right: 7.5em; +} +.ql-editor .ql-indent-3:not(.ql-direction-rtl) { + padding-left: 9em; +} +.ql-editor li.ql-indent-3:not(.ql-direction-rtl) { + padding-left: 10.5em; +} +.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right { + padding-right: 9em; +} +.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right { + padding-right: 10.5em; +} +.ql-editor .ql-indent-4:not(.ql-direction-rtl) { + padding-left: 12em; +} +.ql-editor li.ql-indent-4:not(.ql-direction-rtl) { + padding-left: 13.5em; +} +.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right { + padding-right: 12em; +} +.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right { + padding-right: 13.5em; +} +.ql-editor .ql-indent-5:not(.ql-direction-rtl) { + padding-left: 15em; +} +.ql-editor li.ql-indent-5:not(.ql-direction-rtl) { + padding-left: 16.5em; +} +.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right { + padding-right: 15em; +} +.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right { + padding-right: 16.5em; +} +.ql-editor .ql-indent-6:not(.ql-direction-rtl) { + padding-left: 18em; +} +.ql-editor li.ql-indent-6:not(.ql-direction-rtl) { + padding-left: 19.5em; +} +.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right { + padding-right: 18em; +} +.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right { + padding-right: 19.5em; +} +.ql-editor .ql-indent-7:not(.ql-direction-rtl) { + padding-left: 21em; +} +.ql-editor li.ql-indent-7:not(.ql-direction-rtl) { + padding-left: 22.5em; +} +.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right { + padding-right: 21em; +} +.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right { + padding-right: 22.5em; +} +.ql-editor .ql-indent-8:not(.ql-direction-rtl) { + padding-left: 24em; +} +.ql-editor li.ql-indent-8:not(.ql-direction-rtl) { + padding-left: 25.5em; +} +.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right { + padding-right: 24em; +} +.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right { + padding-right: 25.5em; +} +.ql-editor .ql-indent-9:not(.ql-direction-rtl) { + padding-left: 27em; +} +.ql-editor li.ql-indent-9:not(.ql-direction-rtl) { + padding-left: 28.5em; +} +.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right { + padding-right: 27em; +} +.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right { + padding-right: 28.5em; +} +.ql-editor .ql-video { + display: block; + max-width: 100%; +} +.ql-editor .ql-video.ql-align-center { + margin: 0 auto; +} +.ql-editor .ql-video.ql-align-right { + margin: 0 0 0 auto; +} +.ql-editor .ql-bg-black { + background-color: #000; +} +.ql-editor .ql-bg-red { + background-color: #e60000; +} +.ql-editor .ql-bg-orange { + background-color: #f90; +} +.ql-editor .ql-bg-yellow { + background-color: #ff0; +} +.ql-editor .ql-bg-green { + background-color: #008a00; +} +.ql-editor .ql-bg-blue { + background-color: #06c; +} +.ql-editor .ql-bg-purple { + background-color: #93f; +} +.ql-editor .ql-color-white { + color: #fff; +} +.ql-editor .ql-color-red { + color: #e60000; +} +.ql-editor .ql-color-orange { + color: #f90; +} +.ql-editor .ql-color-yellow { + color: #ff0; +} +.ql-editor .ql-color-green { + color: #008a00; +} +.ql-editor .ql-color-blue { + color: #06c; +} +.ql-editor .ql-color-purple { + color: #93f; +} +.ql-editor .ql-font-serif { + font-family: Georgia, Times New Roman, serif; +} +.ql-editor .ql-font-monospace { + font-family: Monaco, Courier New, monospace; +} +.ql-editor .ql-size-small { + font-size: 0.75em; +} +.ql-editor .ql-size-large { + font-size: 1.5em; +} +.ql-editor .ql-size-huge { + font-size: 2.5em; +} +.ql-editor .ql-direction-rtl { + direction: rtl; + text-align: inherit; +} +.ql-editor .ql-align-center { + text-align: center; +} +.ql-editor .ql-align-justify { + text-align: justify; +} +.ql-editor .ql-align-right { + text-align: right; +} +.ql-editor.ql-blank::before { + color: rgba(0,0,0,0.6); + content: attr(data-placeholder); + font-style: italic; + left: 15px; + pointer-events: none; + position: absolute; + right: 15px; +} diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/css/quill.snow.css b/NMP 3.0 Moodle Pluggin/fliplearning/css/quill.snow.css new file mode 100644 index 0000000000000000000000000000000000000000..00e1650a4c031323921c6a7b7c5f074249ce2b4f --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/css/quill.snow.css @@ -0,0 +1,945 @@ +/*! + * Quill Editor v1.3.4 + * https://quilljs.com/ + * Copyright (c) 2014, Jason Chen + * Copyright (c) 2013, salesforce.com + */ +.ql-container { + box-sizing: border-box; + font-family: Helvetica, Arial, sans-serif; + font-size: 13px; + height: 100%; + margin: 0px; + position: relative; +} +.ql-container.ql-disabled .ql-tooltip { + visibility: hidden; +} +.ql-container.ql-disabled .ql-editor ul[data-checked] > li::before { + pointer-events: none; +} +.ql-clipboard { + left: -100000px; + height: 1px; + overflow-y: hidden; + position: absolute; + top: 50%; +} +.ql-clipboard p { + margin: 0; + padding: 0; +} +.ql-editor { + box-sizing: border-box; + line-height: 1.42; + height: 100%; + outline: none; + overflow-y: auto; + padding: 12px 15px; + tab-size: 4; + -moz-tab-size: 4; + text-align: left; + white-space: pre-wrap; + word-wrap: break-word; +} +.ql-editor > * { + cursor: text; +} +.ql-editor p, +.ql-editor ol, +.ql-editor ul, +.ql-editor pre, +.ql-editor blockquote, +.ql-editor h1, +.ql-editor h2, +.ql-editor h3, +.ql-editor h4, +.ql-editor h5, +.ql-editor h6 { + margin: 0; + padding: 0; + counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol, +.ql-editor ul { + padding-left: 1.5em; +} +.ql-editor ol > li, +.ql-editor ul > li { + list-style-type: none; +} +.ql-editor ul > li::before { + content: '\2022'; +} +.ql-editor ul[data-checked=true], +.ql-editor ul[data-checked=false] { + pointer-events: none; +} +.ql-editor ul[data-checked=true] > li *, +.ql-editor ul[data-checked=false] > li * { + pointer-events: all; +} +.ql-editor ul[data-checked=true] > li::before, +.ql-editor ul[data-checked=false] > li::before { + color: #777; + cursor: pointer; + pointer-events: all; +} +.ql-editor ul[data-checked=true] > li::before { + content: '\2611'; +} +.ql-editor ul[data-checked=false] > li::before { + content: '\2610'; +} +.ql-editor li::before { + display: inline-block; + white-space: nowrap; + width: 1.2em; +} +.ql-editor li:not(.ql-direction-rtl)::before { + margin-left: -1.5em; + margin-right: 0.3em; + text-align: right; +} +.ql-editor li.ql-direction-rtl::before { + margin-left: 0.3em; + margin-right: -1.5em; +} +.ql-editor ol li:not(.ql-direction-rtl), +.ql-editor ul li:not(.ql-direction-rtl) { + padding-left: 1.5em; +} +.ql-editor ol li.ql-direction-rtl, +.ql-editor ul li.ql-direction-rtl { + padding-right: 1.5em; +} +.ql-editor ol li { + counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9; + counter-increment: list-0; +} +.ql-editor ol li:before { + content: counter(list-0, decimal) '. '; +} +.ql-editor ol li.ql-indent-1 { + counter-increment: list-1; +} +.ql-editor ol li.ql-indent-1:before { + content: counter(list-1, lower-alpha) '. '; +} +.ql-editor ol li.ql-indent-1 { + counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-2 { + counter-increment: list-2; +} +.ql-editor ol li.ql-indent-2:before { + content: counter(list-2, lower-roman) '. '; +} +.ql-editor ol li.ql-indent-2 { + counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-3 { + counter-increment: list-3; +} +.ql-editor ol li.ql-indent-3:before { + content: counter(list-3, decimal) '. '; +} +.ql-editor ol li.ql-indent-3 { + counter-reset: list-4 list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-4 { + counter-increment: list-4; +} +.ql-editor ol li.ql-indent-4:before { + content: counter(list-4, lower-alpha) '. '; +} +.ql-editor ol li.ql-indent-4 { + counter-reset: list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-5 { + counter-increment: list-5; +} +.ql-editor ol li.ql-indent-5:before { + content: counter(list-5, lower-roman) '. '; +} +.ql-editor ol li.ql-indent-5 { + counter-reset: list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-6 { + counter-increment: list-6; +} +.ql-editor ol li.ql-indent-6:before { + content: counter(list-6, decimal) '. '; +} +.ql-editor ol li.ql-indent-6 { + counter-reset: list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-7 { + counter-increment: list-7; +} +.ql-editor ol li.ql-indent-7:before { + content: counter(list-7, lower-alpha) '. '; +} +.ql-editor ol li.ql-indent-7 { + counter-reset: list-8 list-9; +} +.ql-editor ol li.ql-indent-8 { + counter-increment: list-8; +} +.ql-editor ol li.ql-indent-8:before { + content: counter(list-8, lower-roman) '. '; +} +.ql-editor ol li.ql-indent-8 { + counter-reset: list-9; +} +.ql-editor ol li.ql-indent-9 { + counter-increment: list-9; +} +.ql-editor ol li.ql-indent-9:before { + content: counter(list-9, decimal) '. '; +} +.ql-editor .ql-indent-1:not(.ql-direction-rtl) { + padding-left: 3em; +} +.ql-editor li.ql-indent-1:not(.ql-direction-rtl) { + padding-left: 4.5em; +} +.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right { + padding-right: 3em; +} +.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right { + padding-right: 4.5em; +} +.ql-editor .ql-indent-2:not(.ql-direction-rtl) { + padding-left: 6em; +} +.ql-editor li.ql-indent-2:not(.ql-direction-rtl) { + padding-left: 7.5em; +} +.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right { + padding-right: 6em; +} +.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right { + padding-right: 7.5em; +} +.ql-editor .ql-indent-3:not(.ql-direction-rtl) { + padding-left: 9em; +} +.ql-editor li.ql-indent-3:not(.ql-direction-rtl) { + padding-left: 10.5em; +} +.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right { + padding-right: 9em; +} +.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right { + padding-right: 10.5em; +} +.ql-editor .ql-indent-4:not(.ql-direction-rtl) { + padding-left: 12em; +} +.ql-editor li.ql-indent-4:not(.ql-direction-rtl) { + padding-left: 13.5em; +} +.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right { + padding-right: 12em; +} +.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right { + padding-right: 13.5em; +} +.ql-editor .ql-indent-5:not(.ql-direction-rtl) { + padding-left: 15em; +} +.ql-editor li.ql-indent-5:not(.ql-direction-rtl) { + padding-left: 16.5em; +} +.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right { + padding-right: 15em; +} +.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right { + padding-right: 16.5em; +} +.ql-editor .ql-indent-6:not(.ql-direction-rtl) { + padding-left: 18em; +} +.ql-editor li.ql-indent-6:not(.ql-direction-rtl) { + padding-left: 19.5em; +} +.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right { + padding-right: 18em; +} +.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right { + padding-right: 19.5em; +} +.ql-editor .ql-indent-7:not(.ql-direction-rtl) { + padding-left: 21em; +} +.ql-editor li.ql-indent-7:not(.ql-direction-rtl) { + padding-left: 22.5em; +} +.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right { + padding-right: 21em; +} +.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right { + padding-right: 22.5em; +} +.ql-editor .ql-indent-8:not(.ql-direction-rtl) { + padding-left: 24em; +} +.ql-editor li.ql-indent-8:not(.ql-direction-rtl) { + padding-left: 25.5em; +} +.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right { + padding-right: 24em; +} +.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right { + padding-right: 25.5em; +} +.ql-editor .ql-indent-9:not(.ql-direction-rtl) { + padding-left: 27em; +} +.ql-editor li.ql-indent-9:not(.ql-direction-rtl) { + padding-left: 28.5em; +} +.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right { + padding-right: 27em; +} +.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right { + padding-right: 28.5em; +} +.ql-editor .ql-video { + display: block; + max-width: 100%; +} +.ql-editor .ql-video.ql-align-center { + margin: 0 auto; +} +.ql-editor .ql-video.ql-align-right { + margin: 0 0 0 auto; +} +.ql-editor .ql-bg-black { + background-color: #000; +} +.ql-editor .ql-bg-red { + background-color: #e60000; +} +.ql-editor .ql-bg-orange { + background-color: #f90; +} +.ql-editor .ql-bg-yellow { + background-color: #ff0; +} +.ql-editor .ql-bg-green { + background-color: #008a00; +} +.ql-editor .ql-bg-blue { + background-color: #06c; +} +.ql-editor .ql-bg-purple { + background-color: #93f; +} +.ql-editor .ql-color-white { + color: #fff; +} +.ql-editor .ql-color-red { + color: #e60000; +} +.ql-editor .ql-color-orange { + color: #f90; +} +.ql-editor .ql-color-yellow { + color: #ff0; +} +.ql-editor .ql-color-green { + color: #008a00; +} +.ql-editor .ql-color-blue { + color: #06c; +} +.ql-editor .ql-color-purple { + color: #93f; +} +.ql-editor .ql-font-serif { + font-family: Georgia, Times New Roman, serif; +} +.ql-editor .ql-font-monospace { + font-family: Monaco, Courier New, monospace; +} +.ql-editor .ql-size-small { + font-size: 0.75em; +} +.ql-editor .ql-size-large { + font-size: 1.5em; +} +.ql-editor .ql-size-huge { + font-size: 2.5em; +} +.ql-editor .ql-direction-rtl { + direction: rtl; + text-align: inherit; +} +.ql-editor .ql-align-center { + text-align: center; +} +.ql-editor .ql-align-justify { + text-align: justify; +} +.ql-editor .ql-align-right { + text-align: right; +} +.ql-editor.ql-blank::before { + color: rgba(0,0,0,0.6); + content: attr(data-placeholder); + font-style: italic; + left: 15px; + pointer-events: none; + position: absolute; + right: 15px; +} +.ql-snow.ql-toolbar:after, +.ql-snow .ql-toolbar:after { + clear: both; + content: ''; + display: table; +} +.ql-snow.ql-toolbar button, +.ql-snow .ql-toolbar button { + background: none; + border: none; + cursor: pointer; + display: inline-block; + float: left; + height: 24px; + padding: 3px 5px; + width: 28px; +} +.ql-snow.ql-toolbar button svg, +.ql-snow .ql-toolbar button svg { + float: left; + height: 100%; +} +.ql-snow.ql-toolbar button:active:hover, +.ql-snow .ql-toolbar button:active:hover { + outline: none; +} +.ql-snow.ql-toolbar input.ql-image[type=file], +.ql-snow .ql-toolbar input.ql-image[type=file] { + display: none; +} +.ql-snow.ql-toolbar button:hover, +.ql-snow .ql-toolbar button:hover, +.ql-snow.ql-toolbar button:focus, +.ql-snow .ql-toolbar button:focus, +.ql-snow.ql-toolbar button.ql-active, +.ql-snow .ql-toolbar button.ql-active, +.ql-snow.ql-toolbar .ql-picker-label:hover, +.ql-snow .ql-toolbar .ql-picker-label:hover, +.ql-snow.ql-toolbar .ql-picker-label.ql-active, +.ql-snow .ql-toolbar .ql-picker-label.ql-active, +.ql-snow.ql-toolbar .ql-picker-item:hover, +.ql-snow .ql-toolbar .ql-picker-item:hover, +.ql-snow.ql-toolbar .ql-picker-item.ql-selected, +.ql-snow .ql-toolbar .ql-picker-item.ql-selected { + color: #06c; +} +.ql-snow.ql-toolbar button:hover .ql-fill, +.ql-snow .ql-toolbar button:hover .ql-fill, +.ql-snow.ql-toolbar button:focus .ql-fill, +.ql-snow .ql-toolbar button:focus .ql-fill, +.ql-snow.ql-toolbar button.ql-active .ql-fill, +.ql-snow .ql-toolbar button.ql-active .ql-fill, +.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill, +.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill, +.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill, +.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill, +.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill, +.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill, +.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill, +.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill, +.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill, +.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill, +.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill, +.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill, +.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill, +.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill, +.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill, +.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill, +.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill, +.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill, +.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill, +.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill, +.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill, +.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill { + fill: #06c; +} +.ql-snow.ql-toolbar button:hover .ql-stroke, +.ql-snow .ql-toolbar button:hover .ql-stroke, +.ql-snow.ql-toolbar button:focus .ql-stroke, +.ql-snow .ql-toolbar button:focus .ql-stroke, +.ql-snow.ql-toolbar button.ql-active .ql-stroke, +.ql-snow .ql-toolbar button.ql-active .ql-stroke, +.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke, +.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke, +.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke, +.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke, +.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke, +.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke, +.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke, +.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke, +.ql-snow.ql-toolbar button:hover .ql-stroke-miter, +.ql-snow .ql-toolbar button:hover .ql-stroke-miter, +.ql-snow.ql-toolbar button:focus .ql-stroke-miter, +.ql-snow .ql-toolbar button:focus .ql-stroke-miter, +.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter, +.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter, +.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter, +.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter, +.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter, +.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter, +.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter, +.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter, +.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter, +.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter { + stroke: #06c; +} +@media (pointer: coarse) { + .ql-snow.ql-toolbar button:hover:not(.ql-active), + .ql-snow .ql-toolbar button:hover:not(.ql-active) { + color: #444; + } + .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill, + .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill, + .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill, + .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill { + fill: #444; + } + .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke, + .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke, + .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter, + .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter { + stroke: #444; + } +} +.ql-snow { + box-sizing: border-box; +} +.ql-snow * { + box-sizing: border-box; +} +.ql-snow .ql-hidden { + display: none; +} +.ql-snow .ql-out-bottom, +.ql-snow .ql-out-top { + visibility: hidden; +} +.ql-snow .ql-tooltip { + position: absolute; + transform: translateY(10px); +} +.ql-snow .ql-tooltip a { + cursor: pointer; + text-decoration: none; +} +.ql-snow .ql-tooltip.ql-flip { + transform: translateY(-10px); +} +.ql-snow .ql-formats { + display: inline-block; + vertical-align: middle; +} +.ql-snow .ql-formats:after { + clear: both; + content: ''; + display: table; +} +.ql-snow .ql-stroke { + fill: none; + stroke: #444; + stroke-linecap: round; + stroke-linejoin: round; + stroke-width: 2; +} +.ql-snow .ql-stroke-miter { + fill: none; + stroke: #444; + stroke-miterlimit: 10; + stroke-width: 2; +} +.ql-snow .ql-fill, +.ql-snow .ql-stroke.ql-fill { + fill: #444; +} +.ql-snow .ql-empty { + fill: none; +} +.ql-snow .ql-even { + fill-rule: evenodd; +} +.ql-snow .ql-thin, +.ql-snow .ql-stroke.ql-thin { + stroke-width: 1; +} +.ql-snow .ql-transparent { + opacity: 0.4; +} +.ql-snow .ql-direction svg:last-child { + display: none; +} +.ql-snow .ql-direction.ql-active svg:last-child { + display: inline; +} +.ql-snow .ql-direction.ql-active svg:first-child { + display: none; +} +.ql-snow .ql-editor h1 { + font-size: 2em; +} +.ql-snow .ql-editor h2 { + font-size: 1.5em; +} +.ql-snow .ql-editor h3 { + font-size: 1.17em; +} +.ql-snow .ql-editor h4 { + font-size: 1em; +} +.ql-snow .ql-editor h5 { + font-size: 0.83em; +} +.ql-snow .ql-editor h6 { + font-size: 0.67em; +} +.ql-snow .ql-editor a { + text-decoration: underline; +} +.ql-snow .ql-editor blockquote { + border-left: 4px solid #ccc; + margin-bottom: 5px; + margin-top: 5px; + padding-left: 16px; +} +.ql-snow .ql-editor code, +.ql-snow .ql-editor pre { + background-color: #f0f0f0; + border-radius: 3px; +} +.ql-snow .ql-editor pre { + white-space: pre-wrap; + margin-bottom: 5px; + margin-top: 5px; + padding: 5px 10px; +} +.ql-snow .ql-editor code { + font-size: 85%; + padding: 2px 4px; +} +.ql-snow .ql-editor pre.ql-syntax { + background-color: #23241f; + color: #f8f8f2; + overflow: visible; +} +.ql-snow .ql-editor img { + max-width: 100%; +} +.ql-snow .ql-picker { + color: #444; + display: inline-block; + float: left; + font-size: 14px; + font-weight: 500; + height: 24px; + position: relative; + vertical-align: middle; +} +.ql-snow .ql-picker-label { + cursor: pointer; + display: inline-block; + height: 100%; + padding-left: 8px; + padding-right: 2px; + position: relative; + width: 100%; +} +.ql-snow .ql-picker-label::before { + display: inline-block; + line-height: 22px; +} +.ql-snow .ql-picker-options { + background-color: #fff; + display: none; + min-width: 100%; + padding: 4px 8px; + position: absolute; + white-space: nowrap; +} +.ql-snow .ql-picker-options .ql-picker-item { + cursor: pointer; + display: block; + padding-bottom: 5px; + padding-top: 5px; +} +.ql-snow .ql-picker.ql-expanded .ql-picker-label { + color: #ccc; + z-index: 2; +} +.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill { + fill: #ccc; +} +.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke { + stroke: #ccc; +} +.ql-snow .ql-picker.ql-expanded .ql-picker-options { + display: block; + margin-top: -1px; + top: 100%; + z-index: 1; +} +.ql-snow .ql-color-picker, +.ql-snow .ql-icon-picker { + width: 28px; +} +.ql-snow .ql-color-picker .ql-picker-label, +.ql-snow .ql-icon-picker .ql-picker-label { + padding: 2px 4px; +} +.ql-snow .ql-color-picker .ql-picker-label svg, +.ql-snow .ql-icon-picker .ql-picker-label svg { + right: 4px; +} +.ql-snow .ql-icon-picker .ql-picker-options { + padding: 4px 0px; +} +.ql-snow .ql-icon-picker .ql-picker-item { + height: 24px; + width: 24px; + padding: 2px 4px; +} +.ql-snow .ql-color-picker .ql-picker-options { + padding: 3px 5px; + width: 152px; +} +.ql-snow .ql-color-picker .ql-picker-item { + border: 1px solid transparent; + float: left; + height: 16px; + margin: 2px; + padding: 0px; + width: 16px; +} +.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg { + position: absolute; + margin-top: -9px; + right: 0; + top: 50%; + width: 18px; +} +.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before, +.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before, +.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before, +.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before, +.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before, +.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before { + content: attr(data-label); +} +.ql-snow .ql-picker.ql-header { + width: 98px; +} +.ql-snow .ql-picker.ql-header .ql-picker-label::before, +.ql-snow .ql-picker.ql-header .ql-picker-item::before { + content: 'Normal'; +} +.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before, +.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before { + content: 'Heading 1'; +} +.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before, +.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before { + content: 'Heading 2'; +} +.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before, +.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before { + content: 'Heading 3'; +} +.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before, +.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before { + content: 'Heading 4'; +} +.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before, +.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before { + content: 'Heading 5'; +} +.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before, +.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before { + content: 'Heading 6'; +} +.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before { + font-size: 2em; +} +.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before { + font-size: 1.5em; +} +.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before { + font-size: 1.17em; +} +.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before { + font-size: 1em; +} +.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before { + font-size: 0.83em; +} +.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before { + font-size: 0.67em; +} +.ql-snow .ql-picker.ql-font { + width: 108px; +} +.ql-snow .ql-picker.ql-font .ql-picker-label::before, +.ql-snow .ql-picker.ql-font .ql-picker-item::before { + content: 'Sans Serif'; +} +.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]::before, +.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before { + content: 'Serif'; +} +.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before, +.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before { + content: 'Monospace'; +} +.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before { + font-family: Georgia, Times New Roman, serif; +} +.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before { + font-family: Monaco, Courier New, monospace; +} +.ql-snow .ql-picker.ql-size { + width: 98px; +} +.ql-snow .ql-picker.ql-size .ql-picker-label::before, +.ql-snow .ql-picker.ql-size .ql-picker-item::before { + content: 'Normal'; +} +.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]::before, +.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before { + content: 'Small'; +} +.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]::before, +.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before { + content: 'Large'; +} +.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]::before, +.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before { + content: 'Huge'; +} +.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before { + font-size: 10px; +} +.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before { + font-size: 18px; +} +.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before { + font-size: 32px; +} +.ql-snow .ql-color-picker.ql-background .ql-picker-item { + background-color: #fff; +} +.ql-snow .ql-color-picker.ql-color .ql-picker-item { + background-color: #000; +} +.ql-toolbar.ql-snow { + border: 1px solid #ccc; + box-sizing: border-box; + font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif; + padding: 8px; +} +.ql-toolbar.ql-snow .ql-formats { + margin-right: 15px; +} +.ql-toolbar.ql-snow .ql-picker-label { + border: 1px solid transparent; +} +.ql-toolbar.ql-snow .ql-picker-options { + border: 1px solid transparent; + box-shadow: rgba(0,0,0,0.2) 0 2px 8px; +} +.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label { + border-color: #ccc; +} +.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options { + border-color: #ccc; +} +.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected, +.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover { + border-color: #000; +} +.ql-toolbar.ql-snow + .ql-container.ql-snow { + border-top: 0px; +} +.ql-snow .ql-tooltip { + background-color: #fff; + border: 1px solid #ccc; + box-shadow: 0px 0px 5px #ddd; + color: #444; + padding: 5px 12px; + white-space: nowrap; +} +.ql-snow .ql-tooltip::before { + content: "Visit URL:"; + line-height: 26px; + margin-right: 8px; +} +.ql-snow .ql-tooltip input[type=text] { + display: none; + border: 1px solid #ccc; + font-size: 13px; + height: 26px; + margin: 0px; + padding: 3px 5px; + width: 170px; +} +.ql-snow .ql-tooltip a.ql-preview { + display: inline-block; + max-width: 200px; + overflow-x: hidden; + text-overflow: ellipsis; + vertical-align: top; +} +.ql-snow .ql-tooltip a.ql-action::after { + border-right: 1px solid #ccc; + content: 'Edit'; + margin-left: 16px; + padding-right: 8px; +} +.ql-snow .ql-tooltip a.ql-remove::before { + content: 'Remove'; + margin-left: 8px; +} +.ql-snow .ql-tooltip a { + line-height: 26px; +} +.ql-snow .ql-tooltip.ql-editing a.ql-preview, +.ql-snow .ql-tooltip.ql-editing a.ql-remove { + display: none; +} +.ql-snow .ql-tooltip.ql-editing input[type=text] { + display: inline-block; +} +.ql-snow .ql-tooltip.ql-editing a.ql-action::after { + border-right: 0px; + content: 'Save'; + padding-right: 0px; +} +.ql-snow .ql-tooltip[data-mode=link]::before { + content: "Enter link:"; +} +.ql-snow .ql-tooltip[data-mode=formula]::before { + content: "Enter formula:"; +} +.ql-snow .ql-tooltip[data-mode=video]::before { + content: "Enter video:"; +} +.ql-snow a { + color: #06c; +} +.ql-container.ql-snow { + border: 1px solid #ccc; +} diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/css/vuetify.css b/NMP 3.0 Moodle Pluggin/fliplearning/css/vuetify.css new file mode 100644 index 0000000000000000000000000000000000000000..adba32aa0b8a1a315649a3eadac858d4279092f1 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/css/vuetify.css @@ -0,0 +1,8 @@ +@charset "UTF-8"; +/*! +* Vuetify v2.0.5 +* Forged by John Leider +* Released under the MIT License. +*/@-webkit-keyframes v-shake{59%{margin-left:0}60%,80%{margin-left:2px}70%,90%{margin-left:-2px}}@keyframes v-shake{59%{margin-left:0}60%,80%{margin-left:2px}70%,90%{margin-left:-2px}}.v-application .black{background-color:#000!important;border-color:#000!important}.v-application .black--text{color:#000!important;caret-color:#000!important}.v-application .white{background-color:#fff!important;border-color:#fff!important}.v-application .white--text{color:#fff!important;caret-color:#fff!important}.v-application .transparent{background-color:transparent!important;border-color:transparent!important}.v-application .transparent--text{color:transparent!important;caret-color:transparent!important}.v-application .red{background-color:#f44336!important;border-color:#f44336!important}.v-application .red--text{color:#f44336!important;caret-color:#f44336!important}.v-application .red.lighten-5{background-color:#ffebee!important;border-color:#ffebee!important}.v-application .red--text.text--lighten-5{color:#ffebee!important;caret-color:#ffebee!important}.v-application .red.lighten-4{background-color:#ffcdd2!important;border-color:#ffcdd2!important}.v-application .red--text.text--lighten-4{color:#ffcdd2!important;caret-color:#ffcdd2!important}.v-application .red.lighten-3{background-color:#ef9a9a!important;border-color:#ef9a9a!important}.v-application .red--text.text--lighten-3{color:#ef9a9a!important;caret-color:#ef9a9a!important}.v-application .red.lighten-2{background-color:#e57373!important;border-color:#e57373!important}.v-application .red--text.text--lighten-2{color:#e57373!important;caret-color:#e57373!important}.v-application .red.lighten-1{background-color:#ef5350!important;border-color:#ef5350!important}.v-application .red--text.text--lighten-1{color:#ef5350!important;caret-color:#ef5350!important}.v-application .red.darken-1{background-color:#e53935!important;border-color:#e53935!important}.v-application .red--text.text--darken-1{color:#e53935!important;caret-color:#e53935!important}.v-application .red.darken-2{background-color:#d32f2f!important;border-color:#d32f2f!important}.v-application .red--text.text--darken-2{color:#d32f2f!important;caret-color:#d32f2f!important}.v-application .red.darken-3{background-color:#c62828!important;border-color:#c62828!important}.v-application .red--text.text--darken-3{color:#c62828!important;caret-color:#c62828!important}.v-application .red.darken-4{background-color:#b71c1c!important;border-color:#b71c1c!important}.v-application .red--text.text--darken-4{color:#b71c1c!important;caret-color:#b71c1c!important}.v-application .red.accent-1{background-color:#ff8a80!important;border-color:#ff8a80!important}.v-application .red--text.text--accent-1{color:#ff8a80!important;caret-color:#ff8a80!important}.v-application .red.accent-2{background-color:#ff5252!important;border-color:#ff5252!important}.v-application .red--text.text--accent-2{color:#ff5252!important;caret-color:#ff5252!important}.v-application .red.accent-3{background-color:#ff1744!important;border-color:#ff1744!important}.v-application .red--text.text--accent-3{color:#ff1744!important;caret-color:#ff1744!important}.v-application .red.accent-4{background-color:#d50000!important;border-color:#d50000!important}.v-application .red--text.text--accent-4{color:#d50000!important;caret-color:#d50000!important}.v-application .pink{background-color:#e91e63!important;border-color:#e91e63!important}.v-application .pink--text{color:#e91e63!important;caret-color:#e91e63!important}.v-application .pink.lighten-5{background-color:#fce4ec!important;border-color:#fce4ec!important}.v-application .pink--text.text--lighten-5{color:#fce4ec!important;caret-color:#fce4ec!important}.v-application .pink.lighten-4{background-color:#f8bbd0!important;border-color:#f8bbd0!important}.v-application .pink--text.text--lighten-4{color:#f8bbd0!important;caret-color:#f8bbd0!important}.v-application .pink.lighten-3{background-color:#f48fb1!important;border-color:#f48fb1!important}.v-application .pink--text.text--lighten-3{color:#f48fb1!important;caret-color:#f48fb1!important}.v-application .pink.lighten-2{background-color:#f06292!important;border-color:#f06292!important}.v-application .pink--text.text--lighten-2{color:#f06292!important;caret-color:#f06292!important}.v-application .pink.lighten-1{background-color:#ec407a!important;border-color:#ec407a!important}.v-application .pink--text.text--lighten-1{color:#ec407a!important;caret-color:#ec407a!important}.v-application .pink.darken-1{background-color:#d81b60!important;border-color:#d81b60!important}.v-application .pink--text.text--darken-1{color:#d81b60!important;caret-color:#d81b60!important}.v-application .pink.darken-2{background-color:#c2185b!important;border-color:#c2185b!important}.v-application .pink--text.text--darken-2{color:#c2185b!important;caret-color:#c2185b!important}.v-application .pink.darken-3{background-color:#ad1457!important;border-color:#ad1457!important}.v-application .pink--text.text--darken-3{color:#ad1457!important;caret-color:#ad1457!important}.v-application .pink.darken-4{background-color:#880e4f!important;border-color:#880e4f!important}.v-application .pink--text.text--darken-4{color:#880e4f!important;caret-color:#880e4f!important}.v-application .pink.accent-1{background-color:#ff80ab!important;border-color:#ff80ab!important}.v-application .pink--text.text--accent-1{color:#ff80ab!important;caret-color:#ff80ab!important}.v-application .pink.accent-2{background-color:#ff4081!important;border-color:#ff4081!important}.v-application .pink--text.text--accent-2{color:#ff4081!important;caret-color:#ff4081!important}.v-application .pink.accent-3{background-color:#f50057!important;border-color:#f50057!important}.v-application .pink--text.text--accent-3{color:#f50057!important;caret-color:#f50057!important}.v-application .pink.accent-4{background-color:#c51162!important;border-color:#c51162!important}.v-application .pink--text.text--accent-4{color:#c51162!important;caret-color:#c51162!important}.v-application .purple{background-color:#9c27b0!important;border-color:#9c27b0!important}.v-application .purple--text{color:#9c27b0!important;caret-color:#9c27b0!important}.v-application .purple.lighten-5{background-color:#f3e5f5!important;border-color:#f3e5f5!important}.v-application .purple--text.text--lighten-5{color:#f3e5f5!important;caret-color:#f3e5f5!important}.v-application .purple.lighten-4{background-color:#e1bee7!important;border-color:#e1bee7!important}.v-application .purple--text.text--lighten-4{color:#e1bee7!important;caret-color:#e1bee7!important}.v-application .purple.lighten-3{background-color:#ce93d8!important;border-color:#ce93d8!important}.v-application .purple--text.text--lighten-3{color:#ce93d8!important;caret-color:#ce93d8!important}.v-application .purple.lighten-2{background-color:#ba68c8!important;border-color:#ba68c8!important}.v-application .purple--text.text--lighten-2{color:#ba68c8!important;caret-color:#ba68c8!important}.v-application .purple.lighten-1{background-color:#ab47bc!important;border-color:#ab47bc!important}.v-application .purple--text.text--lighten-1{color:#ab47bc!important;caret-color:#ab47bc!important}.v-application .purple.darken-1{background-color:#8e24aa!important;border-color:#8e24aa!important}.v-application .purple--text.text--darken-1{color:#8e24aa!important;caret-color:#8e24aa!important}.v-application .purple.darken-2{background-color:#7b1fa2!important;border-color:#7b1fa2!important}.v-application .purple--text.text--darken-2{color:#7b1fa2!important;caret-color:#7b1fa2!important}.v-application .purple.darken-3{background-color:#6a1b9a!important;border-color:#6a1b9a!important}.v-application .purple--text.text--darken-3{color:#6a1b9a!important;caret-color:#6a1b9a!important}.v-application .purple.darken-4{background-color:#4a148c!important;border-color:#4a148c!important}.v-application .purple--text.text--darken-4{color:#4a148c!important;caret-color:#4a148c!important}.v-application .purple.accent-1{background-color:#ea80fc!important;border-color:#ea80fc!important}.v-application .purple--text.text--accent-1{color:#ea80fc!important;caret-color:#ea80fc!important}.v-application .purple.accent-2{background-color:#e040fb!important;border-color:#e040fb!important}.v-application .purple--text.text--accent-2{color:#e040fb!important;caret-color:#e040fb!important}.v-application .purple.accent-3{background-color:#d500f9!important;border-color:#d500f9!important}.v-application .purple--text.text--accent-3{color:#d500f9!important;caret-color:#d500f9!important}.v-application .purple.accent-4{background-color:#a0f!important;border-color:#a0f!important}.v-application .purple--text.text--accent-4{color:#a0f!important;caret-color:#a0f!important}.v-application .deep-purple{background-color:#673ab7!important;border-color:#673ab7!important}.v-application .deep-purple--text{color:#673ab7!important;caret-color:#673ab7!important}.v-application .deep-purple.lighten-5{background-color:#ede7f6!important;border-color:#ede7f6!important}.v-application .deep-purple--text.text--lighten-5{color:#ede7f6!important;caret-color:#ede7f6!important}.v-application .deep-purple.lighten-4{background-color:#d1c4e9!important;border-color:#d1c4e9!important}.v-application .deep-purple--text.text--lighten-4{color:#d1c4e9!important;caret-color:#d1c4e9!important}.v-application .deep-purple.lighten-3{background-color:#b39ddb!important;border-color:#b39ddb!important}.v-application .deep-purple--text.text--lighten-3{color:#b39ddb!important;caret-color:#b39ddb!important}.v-application .deep-purple.lighten-2{background-color:#9575cd!important;border-color:#9575cd!important}.v-application .deep-purple--text.text--lighten-2{color:#9575cd!important;caret-color:#9575cd!important}.v-application .deep-purple.lighten-1{background-color:#7e57c2!important;border-color:#7e57c2!important}.v-application .deep-purple--text.text--lighten-1{color:#7e57c2!important;caret-color:#7e57c2!important}.v-application .deep-purple.darken-1{background-color:#5e35b1!important;border-color:#5e35b1!important}.v-application .deep-purple--text.text--darken-1{color:#5e35b1!important;caret-color:#5e35b1!important}.v-application .deep-purple.darken-2{background-color:#512da8!important;border-color:#512da8!important}.v-application .deep-purple--text.text--darken-2{color:#512da8!important;caret-color:#512da8!important}.v-application .deep-purple.darken-3{background-color:#4527a0!important;border-color:#4527a0!important}.v-application .deep-purple--text.text--darken-3{color:#4527a0!important;caret-color:#4527a0!important}.v-application .deep-purple.darken-4{background-color:#311b92!important;border-color:#311b92!important}.v-application .deep-purple--text.text--darken-4{color:#311b92!important;caret-color:#311b92!important}.v-application .deep-purple.accent-1{background-color:#b388ff!important;border-color:#b388ff!important}.v-application .deep-purple--text.text--accent-1{color:#b388ff!important;caret-color:#b388ff!important}.v-application .deep-purple.accent-2{background-color:#7c4dff!important;border-color:#7c4dff!important}.v-application .deep-purple--text.text--accent-2{color:#7c4dff!important;caret-color:#7c4dff!important}.v-application .deep-purple.accent-3{background-color:#651fff!important;border-color:#651fff!important}.v-application .deep-purple--text.text--accent-3{color:#651fff!important;caret-color:#651fff!important}.v-application .deep-purple.accent-4{background-color:#6200ea!important;border-color:#6200ea!important}.v-application .deep-purple--text.text--accent-4{color:#6200ea!important;caret-color:#6200ea!important}.v-application .indigo{background-color:#3f51b5!important;border-color:#3f51b5!important}.v-application .indigo--text{color:#3f51b5!important;caret-color:#3f51b5!important}.v-application .indigo.lighten-5{background-color:#e8eaf6!important;border-color:#e8eaf6!important}.v-application .indigo--text.text--lighten-5{color:#e8eaf6!important;caret-color:#e8eaf6!important}.v-application .indigo.lighten-4{background-color:#c5cae9!important;border-color:#c5cae9!important}.v-application .indigo--text.text--lighten-4{color:#c5cae9!important;caret-color:#c5cae9!important}.v-application .indigo.lighten-3{background-color:#9fa8da!important;border-color:#9fa8da!important}.v-application .indigo--text.text--lighten-3{color:#9fa8da!important;caret-color:#9fa8da!important}.v-application .indigo.lighten-2{background-color:#7986cb!important;border-color:#7986cb!important}.v-application .indigo--text.text--lighten-2{color:#7986cb!important;caret-color:#7986cb!important}.v-application .indigo.lighten-1{background-color:#5c6bc0!important;border-color:#5c6bc0!important}.v-application .indigo--text.text--lighten-1{color:#5c6bc0!important;caret-color:#5c6bc0!important}.v-application .indigo.darken-1{background-color:#3949ab!important;border-color:#3949ab!important}.v-application .indigo--text.text--darken-1{color:#3949ab!important;caret-color:#3949ab!important}.v-application .indigo.darken-2{background-color:#303f9f!important;border-color:#303f9f!important}.v-application .indigo--text.text--darken-2{color:#303f9f!important;caret-color:#303f9f!important}.v-application .indigo.darken-3{background-color:#283593!important;border-color:#283593!important}.v-application .indigo--text.text--darken-3{color:#283593!important;caret-color:#283593!important}.v-application .indigo.darken-4{background-color:#1a237e!important;border-color:#1a237e!important}.v-application .indigo--text.text--darken-4{color:#1a237e!important;caret-color:#1a237e!important}.v-application .indigo.accent-1{background-color:#8c9eff!important;border-color:#8c9eff!important}.v-application .indigo--text.text--accent-1{color:#8c9eff!important;caret-color:#8c9eff!important}.v-application .indigo.accent-2{background-color:#536dfe!important;border-color:#536dfe!important}.v-application .indigo--text.text--accent-2{color:#536dfe!important;caret-color:#536dfe!important}.v-application .indigo.accent-3{background-color:#3d5afe!important;border-color:#3d5afe!important}.v-application .indigo--text.text--accent-3{color:#3d5afe!important;caret-color:#3d5afe!important}.v-application .indigo.accent-4{background-color:#304ffe!important;border-color:#304ffe!important}.v-application .indigo--text.text--accent-4{color:#304ffe!important;caret-color:#304ffe!important}.v-application .blue{background-color:#2196f3!important;border-color:#2196f3!important}.v-application .blue--text{color:#2196f3!important;caret-color:#2196f3!important}.v-application .blue.lighten-5{background-color:#e3f2fd!important;border-color:#e3f2fd!important}.v-application .blue--text.text--lighten-5{color:#e3f2fd!important;caret-color:#e3f2fd!important}.v-application .blue.lighten-4{background-color:#bbdefb!important;border-color:#bbdefb!important}.v-application .blue--text.text--lighten-4{color:#bbdefb!important;caret-color:#bbdefb!important}.v-application .blue.lighten-3{background-color:#90caf9!important;border-color:#90caf9!important}.v-application .blue--text.text--lighten-3{color:#90caf9!important;caret-color:#90caf9!important}.v-application .blue.lighten-2{background-color:#64b5f6!important;border-color:#64b5f6!important}.v-application .blue--text.text--lighten-2{color:#64b5f6!important;caret-color:#64b5f6!important}.v-application .blue.lighten-1{background-color:#42a5f5!important;border-color:#42a5f5!important}.v-application .blue--text.text--lighten-1{color:#42a5f5!important;caret-color:#42a5f5!important}.v-application .blue.darken-1{background-color:#1e88e5!important;border-color:#1e88e5!important}.v-application .blue--text.text--darken-1{color:#1e88e5!important;caret-color:#1e88e5!important}.v-application .blue.darken-2{background-color:#1976d2!important;border-color:#1976d2!important}.v-application .blue--text.text--darken-2{color:#1976d2!important;caret-color:#1976d2!important}.v-application .blue.darken-3{background-color:#1565c0!important;border-color:#1565c0!important}.v-application .blue--text.text--darken-3{color:#1565c0!important;caret-color:#1565c0!important}.v-application .blue.darken-4{background-color:#0d47a1!important;border-color:#0d47a1!important}.v-application .blue--text.text--darken-4{color:#0d47a1!important;caret-color:#0d47a1!important}.v-application .blue.accent-1{background-color:#82b1ff!important;border-color:#82b1ff!important}.v-application .blue--text.text--accent-1{color:#82b1ff!important;caret-color:#82b1ff!important}.v-application .blue.accent-2{background-color:#448aff!important;border-color:#448aff!important}.v-application .blue--text.text--accent-2{color:#448aff!important;caret-color:#448aff!important}.v-application .blue.accent-3{background-color:#2979ff!important;border-color:#2979ff!important}.v-application .blue--text.text--accent-3{color:#2979ff!important;caret-color:#2979ff!important}.v-application .blue.accent-4{background-color:#2962ff!important;border-color:#2962ff!important}.v-application .blue--text.text--accent-4{color:#2962ff!important;caret-color:#2962ff!important}.v-application .light-blue{background-color:#03a9f4!important;border-color:#03a9f4!important}.v-application .light-blue--text{color:#03a9f4!important;caret-color:#03a9f4!important}.v-application .light-blue.lighten-5{background-color:#e1f5fe!important;border-color:#e1f5fe!important}.v-application .light-blue--text.text--lighten-5{color:#e1f5fe!important;caret-color:#e1f5fe!important}.v-application .light-blue.lighten-4{background-color:#b3e5fc!important;border-color:#b3e5fc!important}.v-application .light-blue--text.text--lighten-4{color:#b3e5fc!important;caret-color:#b3e5fc!important}.v-application .light-blue.lighten-3{background-color:#81d4fa!important;border-color:#81d4fa!important}.v-application .light-blue--text.text--lighten-3{color:#81d4fa!important;caret-color:#81d4fa!important}.v-application .light-blue.lighten-2{background-color:#4fc3f7!important;border-color:#4fc3f7!important}.v-application .light-blue--text.text--lighten-2{color:#4fc3f7!important;caret-color:#4fc3f7!important}.v-application .light-blue.lighten-1{background-color:#29b6f6!important;border-color:#29b6f6!important}.v-application .light-blue--text.text--lighten-1{color:#29b6f6!important;caret-color:#29b6f6!important}.v-application .light-blue.darken-1{background-color:#039be5!important;border-color:#039be5!important}.v-application .light-blue--text.text--darken-1{color:#039be5!important;caret-color:#039be5!important}.v-application .light-blue.darken-2{background-color:#0288d1!important;border-color:#0288d1!important}.v-application .light-blue--text.text--darken-2{color:#0288d1!important;caret-color:#0288d1!important}.v-application .light-blue.darken-3{background-color:#0277bd!important;border-color:#0277bd!important}.v-application .light-blue--text.text--darken-3{color:#0277bd!important;caret-color:#0277bd!important}.v-application .light-blue.darken-4{background-color:#01579b!important;border-color:#01579b!important}.v-application .light-blue--text.text--darken-4{color:#01579b!important;caret-color:#01579b!important}.v-application .light-blue.accent-1{background-color:#80d8ff!important;border-color:#80d8ff!important}.v-application .light-blue--text.text--accent-1{color:#80d8ff!important;caret-color:#80d8ff!important}.v-application .light-blue.accent-2{background-color:#40c4ff!important;border-color:#40c4ff!important}.v-application .light-blue--text.text--accent-2{color:#40c4ff!important;caret-color:#40c4ff!important}.v-application .light-blue.accent-3{background-color:#00b0ff!important;border-color:#00b0ff!important}.v-application .light-blue--text.text--accent-3{color:#00b0ff!important;caret-color:#00b0ff!important}.v-application .light-blue.accent-4{background-color:#0091ea!important;border-color:#0091ea!important}.v-application .light-blue--text.text--accent-4{color:#0091ea!important;caret-color:#0091ea!important}.v-application .cyan{background-color:#00bcd4!important;border-color:#00bcd4!important}.v-application .cyan--text{color:#00bcd4!important;caret-color:#00bcd4!important}.v-application .cyan.lighten-5{background-color:#e0f7fa!important;border-color:#e0f7fa!important}.v-application .cyan--text.text--lighten-5{color:#e0f7fa!important;caret-color:#e0f7fa!important}.v-application .cyan.lighten-4{background-color:#b2ebf2!important;border-color:#b2ebf2!important}.v-application .cyan--text.text--lighten-4{color:#b2ebf2!important;caret-color:#b2ebf2!important}.v-application .cyan.lighten-3{background-color:#80deea!important;border-color:#80deea!important}.v-application .cyan--text.text--lighten-3{color:#80deea!important;caret-color:#80deea!important}.v-application .cyan.lighten-2{background-color:#4dd0e1!important;border-color:#4dd0e1!important}.v-application .cyan--text.text--lighten-2{color:#4dd0e1!important;caret-color:#4dd0e1!important}.v-application .cyan.lighten-1{background-color:#26c6da!important;border-color:#26c6da!important}.v-application .cyan--text.text--lighten-1{color:#26c6da!important;caret-color:#26c6da!important}.v-application .cyan.darken-1{background-color:#00acc1!important;border-color:#00acc1!important}.v-application .cyan--text.text--darken-1{color:#00acc1!important;caret-color:#00acc1!important}.v-application .cyan.darken-2{background-color:#0097a7!important;border-color:#0097a7!important}.v-application .cyan--text.text--darken-2{color:#0097a7!important;caret-color:#0097a7!important}.v-application .cyan.darken-3{background-color:#00838f!important;border-color:#00838f!important}.v-application .cyan--text.text--darken-3{color:#00838f!important;caret-color:#00838f!important}.v-application .cyan.darken-4{background-color:#006064!important;border-color:#006064!important}.v-application .cyan--text.text--darken-4{color:#006064!important;caret-color:#006064!important}.v-application .cyan.accent-1{background-color:#84ffff!important;border-color:#84ffff!important}.v-application .cyan--text.text--accent-1{color:#84ffff!important;caret-color:#84ffff!important}.v-application .cyan.accent-2{background-color:#18ffff!important;border-color:#18ffff!important}.v-application .cyan--text.text--accent-2{color:#18ffff!important;caret-color:#18ffff!important}.v-application .cyan.accent-3{background-color:#00e5ff!important;border-color:#00e5ff!important}.v-application .cyan--text.text--accent-3{color:#00e5ff!important;caret-color:#00e5ff!important}.v-application .cyan.accent-4{background-color:#00b8d4!important;border-color:#00b8d4!important}.v-application .cyan--text.text--accent-4{color:#00b8d4!important;caret-color:#00b8d4!important}.v-application .teal{background-color:#009688!important;border-color:#009688!important}.v-application .teal--text{color:#009688!important;caret-color:#009688!important}.v-application .teal.lighten-5{background-color:#e0f2f1!important;border-color:#e0f2f1!important}.v-application .teal--text.text--lighten-5{color:#e0f2f1!important;caret-color:#e0f2f1!important}.v-application .teal.lighten-4{background-color:#b2dfdb!important;border-color:#b2dfdb!important}.v-application .teal--text.text--lighten-4{color:#b2dfdb!important;caret-color:#b2dfdb!important}.v-application .teal.lighten-3{background-color:#80cbc4!important;border-color:#80cbc4!important}.v-application .teal--text.text--lighten-3{color:#80cbc4!important;caret-color:#80cbc4!important}.v-application .teal.lighten-2{background-color:#4db6ac!important;border-color:#4db6ac!important}.v-application .teal--text.text--lighten-2{color:#4db6ac!important;caret-color:#4db6ac!important}.v-application .teal.lighten-1{background-color:#26a69a!important;border-color:#26a69a!important}.v-application .teal--text.text--lighten-1{color:#26a69a!important;caret-color:#26a69a!important}.v-application .teal.darken-1{background-color:#00897b!important;border-color:#00897b!important}.v-application .teal--text.text--darken-1{color:#00897b!important;caret-color:#00897b!important}.v-application .teal.darken-2{background-color:#00796b!important;border-color:#00796b!important}.v-application .teal--text.text--darken-2{color:#00796b!important;caret-color:#00796b!important}.v-application .teal.darken-3{background-color:#00695c!important;border-color:#00695c!important}.v-application .teal--text.text--darken-3{color:#00695c!important;caret-color:#00695c!important}.v-application .teal.darken-4{background-color:#004d40!important;border-color:#004d40!important}.v-application .teal--text.text--darken-4{color:#004d40!important;caret-color:#004d40!important}.v-application .teal.accent-1{background-color:#a7ffeb!important;border-color:#a7ffeb!important}.v-application .teal--text.text--accent-1{color:#a7ffeb!important;caret-color:#a7ffeb!important}.v-application .teal.accent-2{background-color:#64ffda!important;border-color:#64ffda!important}.v-application .teal--text.text--accent-2{color:#64ffda!important;caret-color:#64ffda!important}.v-application .teal.accent-3{background-color:#1de9b6!important;border-color:#1de9b6!important}.v-application .teal--text.text--accent-3{color:#1de9b6!important;caret-color:#1de9b6!important}.v-application .teal.accent-4{background-color:#00bfa5!important;border-color:#00bfa5!important}.v-application .teal--text.text--accent-4{color:#00bfa5!important;caret-color:#00bfa5!important}.v-application .green{background-color:#4caf50!important;border-color:#4caf50!important}.v-application .green--text{color:#4caf50!important;caret-color:#4caf50!important}.v-application .green.lighten-5{background-color:#e8f5e9!important;border-color:#e8f5e9!important}.v-application .green--text.text--lighten-5{color:#e8f5e9!important;caret-color:#e8f5e9!important}.v-application .green.lighten-4{background-color:#c8e6c9!important;border-color:#c8e6c9!important}.v-application .green--text.text--lighten-4{color:#c8e6c9!important;caret-color:#c8e6c9!important}.v-application .green.lighten-3{background-color:#a5d6a7!important;border-color:#a5d6a7!important}.v-application .green--text.text--lighten-3{color:#a5d6a7!important;caret-color:#a5d6a7!important}.v-application .green.lighten-2{background-color:#81c784!important;border-color:#81c784!important}.v-application .green--text.text--lighten-2{color:#81c784!important;caret-color:#81c784!important}.v-application .green.lighten-1{background-color:#66bb6a!important;border-color:#66bb6a!important}.v-application .green--text.text--lighten-1{color:#66bb6a!important;caret-color:#66bb6a!important}.v-application .green.darken-1{background-color:#43a047!important;border-color:#43a047!important}.v-application .green--text.text--darken-1{color:#43a047!important;caret-color:#43a047!important}.v-application .green.darken-2{background-color:#388e3c!important;border-color:#388e3c!important}.v-application .green--text.text--darken-2{color:#388e3c!important;caret-color:#388e3c!important}.v-application .green.darken-3{background-color:#2e7d32!important;border-color:#2e7d32!important}.v-application .green--text.text--darken-3{color:#2e7d32!important;caret-color:#2e7d32!important}.v-application .green.darken-4{background-color:#1b5e20!important;border-color:#1b5e20!important}.v-application .green--text.text--darken-4{color:#1b5e20!important;caret-color:#1b5e20!important}.v-application .green.accent-1{background-color:#b9f6ca!important;border-color:#b9f6ca!important}.v-application .green--text.text--accent-1{color:#b9f6ca!important;caret-color:#b9f6ca!important}.v-application .green.accent-2{background-color:#69f0ae!important;border-color:#69f0ae!important}.v-application .green--text.text--accent-2{color:#69f0ae!important;caret-color:#69f0ae!important}.v-application .green.accent-3{background-color:#00e676!important;border-color:#00e676!important}.v-application .green--text.text--accent-3{color:#00e676!important;caret-color:#00e676!important}.v-application .green.accent-4{background-color:#00c853!important;border-color:#00c853!important}.v-application .green--text.text--accent-4{color:#00c853!important;caret-color:#00c853!important}.v-application .light-green{background-color:#8bc34a!important;border-color:#8bc34a!important}.v-application .light-green--text{color:#8bc34a!important;caret-color:#8bc34a!important}.v-application .light-green.lighten-5{background-color:#f1f8e9!important;border-color:#f1f8e9!important}.v-application .light-green--text.text--lighten-5{color:#f1f8e9!important;caret-color:#f1f8e9!important}.v-application .light-green.lighten-4{background-color:#dcedc8!important;border-color:#dcedc8!important}.v-application .light-green--text.text--lighten-4{color:#dcedc8!important;caret-color:#dcedc8!important}.v-application .light-green.lighten-3{background-color:#c5e1a5!important;border-color:#c5e1a5!important}.v-application .light-green--text.text--lighten-3{color:#c5e1a5!important;caret-color:#c5e1a5!important}.v-application .light-green.lighten-2{background-color:#aed581!important;border-color:#aed581!important}.v-application .light-green--text.text--lighten-2{color:#aed581!important;caret-color:#aed581!important}.v-application .light-green.lighten-1{background-color:#9ccc65!important;border-color:#9ccc65!important}.v-application .light-green--text.text--lighten-1{color:#9ccc65!important;caret-color:#9ccc65!important}.v-application .light-green.darken-1{background-color:#7cb342!important;border-color:#7cb342!important}.v-application .light-green--text.text--darken-1{color:#7cb342!important;caret-color:#7cb342!important}.v-application .light-green.darken-2{background-color:#689f38!important;border-color:#689f38!important}.v-application .light-green--text.text--darken-2{color:#689f38!important;caret-color:#689f38!important}.v-application .light-green.darken-3{background-color:#558b2f!important;border-color:#558b2f!important}.v-application .light-green--text.text--darken-3{color:#558b2f!important;caret-color:#558b2f!important}.v-application .light-green.darken-4{background-color:#33691e!important;border-color:#33691e!important}.v-application .light-green--text.text--darken-4{color:#33691e!important;caret-color:#33691e!important}.v-application .light-green.accent-1{background-color:#ccff90!important;border-color:#ccff90!important}.v-application .light-green--text.text--accent-1{color:#ccff90!important;caret-color:#ccff90!important}.v-application .light-green.accent-2{background-color:#b2ff59!important;border-color:#b2ff59!important}.v-application .light-green--text.text--accent-2{color:#b2ff59!important;caret-color:#b2ff59!important}.v-application .light-green.accent-3{background-color:#76ff03!important;border-color:#76ff03!important}.v-application .light-green--text.text--accent-3{color:#76ff03!important;caret-color:#76ff03!important}.v-application .light-green.accent-4{background-color:#64dd17!important;border-color:#64dd17!important}.v-application .light-green--text.text--accent-4{color:#64dd17!important;caret-color:#64dd17!important}.v-application .lime{background-color:#cddc39!important;border-color:#cddc39!important}.v-application .lime--text{color:#cddc39!important;caret-color:#cddc39!important}.v-application .lime.lighten-5{background-color:#f9fbe7!important;border-color:#f9fbe7!important}.v-application .lime--text.text--lighten-5{color:#f9fbe7!important;caret-color:#f9fbe7!important}.v-application .lime.lighten-4{background-color:#f0f4c3!important;border-color:#f0f4c3!important}.v-application .lime--text.text--lighten-4{color:#f0f4c3!important;caret-color:#f0f4c3!important}.v-application .lime.lighten-3{background-color:#e6ee9c!important;border-color:#e6ee9c!important}.v-application .lime--text.text--lighten-3{color:#e6ee9c!important;caret-color:#e6ee9c!important}.v-application .lime.lighten-2{background-color:#dce775!important;border-color:#dce775!important}.v-application .lime--text.text--lighten-2{color:#dce775!important;caret-color:#dce775!important}.v-application .lime.lighten-1{background-color:#d4e157!important;border-color:#d4e157!important}.v-application .lime--text.text--lighten-1{color:#d4e157!important;caret-color:#d4e157!important}.v-application .lime.darken-1{background-color:#c0ca33!important;border-color:#c0ca33!important}.v-application .lime--text.text--darken-1{color:#c0ca33!important;caret-color:#c0ca33!important}.v-application .lime.darken-2{background-color:#afb42b!important;border-color:#afb42b!important}.v-application .lime--text.text--darken-2{color:#afb42b!important;caret-color:#afb42b!important}.v-application .lime.darken-3{background-color:#9e9d24!important;border-color:#9e9d24!important}.v-application .lime--text.text--darken-3{color:#9e9d24!important;caret-color:#9e9d24!important}.v-application .lime.darken-4{background-color:#827717!important;border-color:#827717!important}.v-application .lime--text.text--darken-4{color:#827717!important;caret-color:#827717!important}.v-application .lime.accent-1{background-color:#f4ff81!important;border-color:#f4ff81!important}.v-application .lime--text.text--accent-1{color:#f4ff81!important;caret-color:#f4ff81!important}.v-application .lime.accent-2{background-color:#eeff41!important;border-color:#eeff41!important}.v-application .lime--text.text--accent-2{color:#eeff41!important;caret-color:#eeff41!important}.v-application .lime.accent-3{background-color:#c6ff00!important;border-color:#c6ff00!important}.v-application .lime--text.text--accent-3{color:#c6ff00!important;caret-color:#c6ff00!important}.v-application .lime.accent-4{background-color:#aeea00!important;border-color:#aeea00!important}.v-application .lime--text.text--accent-4{color:#aeea00!important;caret-color:#aeea00!important}.v-application .yellow{background-color:#ffeb3b!important;border-color:#ffeb3b!important}.v-application .yellow--text{color:#ffeb3b!important;caret-color:#ffeb3b!important}.v-application .yellow.lighten-5{background-color:#fffde7!important;border-color:#fffde7!important}.v-application .yellow--text.text--lighten-5{color:#fffde7!important;caret-color:#fffde7!important}.v-application .yellow.lighten-4{background-color:#fff9c4!important;border-color:#fff9c4!important}.v-application .yellow--text.text--lighten-4{color:#fff9c4!important;caret-color:#fff9c4!important}.v-application .yellow.lighten-3{background-color:#fff59d!important;border-color:#fff59d!important}.v-application .yellow--text.text--lighten-3{color:#fff59d!important;caret-color:#fff59d!important}.v-application .yellow.lighten-2{background-color:#fff176!important;border-color:#fff176!important}.v-application .yellow--text.text--lighten-2{color:#fff176!important;caret-color:#fff176!important}.v-application .yellow.lighten-1{background-color:#ffee58!important;border-color:#ffee58!important}.v-application .yellow--text.text--lighten-1{color:#ffee58!important;caret-color:#ffee58!important}.v-application .yellow.darken-1{background-color:#fdd835!important;border-color:#fdd835!important}.v-application .yellow--text.text--darken-1{color:#fdd835!important;caret-color:#fdd835!important}.v-application .yellow.darken-2{background-color:#fbc02d!important;border-color:#fbc02d!important}.v-application .yellow--text.text--darken-2{color:#fbc02d!important;caret-color:#fbc02d!important}.v-application .yellow.darken-3{background-color:#f9a825!important;border-color:#f9a825!important}.v-application .yellow--text.text--darken-3{color:#f9a825!important;caret-color:#f9a825!important}.v-application .yellow.darken-4{background-color:#f57f17!important;border-color:#f57f17!important}.v-application .yellow--text.text--darken-4{color:#f57f17!important;caret-color:#f57f17!important}.v-application .yellow.accent-1{background-color:#ffff8d!important;border-color:#ffff8d!important}.v-application .yellow--text.text--accent-1{color:#ffff8d!important;caret-color:#ffff8d!important}.v-application .yellow.accent-2{background-color:#ff0!important;border-color:#ff0!important}.v-application .yellow--text.text--accent-2{color:#ff0!important;caret-color:#ff0!important}.v-application .yellow.accent-3{background-color:#ffea00!important;border-color:#ffea00!important}.v-application .yellow--text.text--accent-3{color:#ffea00!important;caret-color:#ffea00!important}.v-application .yellow.accent-4{background-color:#ffd600!important;border-color:#ffd600!important}.v-application .yellow--text.text--accent-4{color:#ffd600!important;caret-color:#ffd600!important}.v-application .amber{background-color:#ffc107!important;border-color:#ffc107!important}.v-application .amber--text{color:#ffc107!important;caret-color:#ffc107!important}.v-application .amber.lighten-5{background-color:#fff8e1!important;border-color:#fff8e1!important}.v-application .amber--text.text--lighten-5{color:#fff8e1!important;caret-color:#fff8e1!important}.v-application .amber.lighten-4{background-color:#ffecb3!important;border-color:#ffecb3!important}.v-application .amber--text.text--lighten-4{color:#ffecb3!important;caret-color:#ffecb3!important}.v-application .amber.lighten-3{background-color:#ffe082!important;border-color:#ffe082!important}.v-application .amber--text.text--lighten-3{color:#ffe082!important;caret-color:#ffe082!important}.v-application .amber.lighten-2{background-color:#ffd54f!important;border-color:#ffd54f!important}.v-application .amber--text.text--lighten-2{color:#ffd54f!important;caret-color:#ffd54f!important}.v-application .amber.lighten-1{background-color:#ffca28!important;border-color:#ffca28!important}.v-application .amber--text.text--lighten-1{color:#ffca28!important;caret-color:#ffca28!important}.v-application .amber.darken-1{background-color:#ffb300!important;border-color:#ffb300!important}.v-application .amber--text.text--darken-1{color:#ffb300!important;caret-color:#ffb300!important}.v-application .amber.darken-2{background-color:#ffa000!important;border-color:#ffa000!important}.v-application .amber--text.text--darken-2{color:#ffa000!important;caret-color:#ffa000!important}.v-application .amber.darken-3{background-color:#ff8f00!important;border-color:#ff8f00!important}.v-application .amber--text.text--darken-3{color:#ff8f00!important;caret-color:#ff8f00!important}.v-application .amber.darken-4{background-color:#ff6f00!important;border-color:#ff6f00!important}.v-application .amber--text.text--darken-4{color:#ff6f00!important;caret-color:#ff6f00!important}.v-application .amber.accent-1{background-color:#ffe57f!important;border-color:#ffe57f!important}.v-application .amber--text.text--accent-1{color:#ffe57f!important;caret-color:#ffe57f!important}.v-application .amber.accent-2{background-color:#ffd740!important;border-color:#ffd740!important}.v-application .amber--text.text--accent-2{color:#ffd740!important;caret-color:#ffd740!important}.v-application .amber.accent-3{background-color:#ffc400!important;border-color:#ffc400!important}.v-application .amber--text.text--accent-3{color:#ffc400!important;caret-color:#ffc400!important}.v-application .amber.accent-4{background-color:#ffab00!important;border-color:#ffab00!important}.v-application .amber--text.text--accent-4{color:#ffab00!important;caret-color:#ffab00!important}.v-application .orange{background-color:#ff9800!important;border-color:#ff9800!important}.v-application .orange--text{color:#ff9800!important;caret-color:#ff9800!important}.v-application .orange.lighten-5{background-color:#fff3e0!important;border-color:#fff3e0!important}.v-application .orange--text.text--lighten-5{color:#fff3e0!important;caret-color:#fff3e0!important}.v-application .orange.lighten-4{background-color:#ffe0b2!important;border-color:#ffe0b2!important}.v-application .orange--text.text--lighten-4{color:#ffe0b2!important;caret-color:#ffe0b2!important}.v-application .orange.lighten-3{background-color:#ffcc80!important;border-color:#ffcc80!important}.v-application .orange--text.text--lighten-3{color:#ffcc80!important;caret-color:#ffcc80!important}.v-application .orange.lighten-2{background-color:#ffb74d!important;border-color:#ffb74d!important}.v-application .orange--text.text--lighten-2{color:#ffb74d!important;caret-color:#ffb74d!important}.v-application .orange.lighten-1{background-color:#ffa726!important;border-color:#ffa726!important}.v-application .orange--text.text--lighten-1{color:#ffa726!important;caret-color:#ffa726!important}.v-application .orange.darken-1{background-color:#fb8c00!important;border-color:#fb8c00!important}.v-application .orange--text.text--darken-1{color:#fb8c00!important;caret-color:#fb8c00!important}.v-application .orange.darken-2{background-color:#f57c00!important;border-color:#f57c00!important}.v-application .orange--text.text--darken-2{color:#f57c00!important;caret-color:#f57c00!important}.v-application .orange.darken-3{background-color:#ef6c00!important;border-color:#ef6c00!important}.v-application .orange--text.text--darken-3{color:#ef6c00!important;caret-color:#ef6c00!important}.v-application .orange.darken-4{background-color:#e65100!important;border-color:#e65100!important}.v-application .orange--text.text--darken-4{color:#e65100!important;caret-color:#e65100!important}.v-application .orange.accent-1{background-color:#ffd180!important;border-color:#ffd180!important}.v-application .orange--text.text--accent-1{color:#ffd180!important;caret-color:#ffd180!important}.v-application .orange.accent-2{background-color:#ffab40!important;border-color:#ffab40!important}.v-application .orange--text.text--accent-2{color:#ffab40!important;caret-color:#ffab40!important}.v-application .orange.accent-3{background-color:#ff9100!important;border-color:#ff9100!important}.v-application .orange--text.text--accent-3{color:#ff9100!important;caret-color:#ff9100!important}.v-application .orange.accent-4{background-color:#ff6d00!important;border-color:#ff6d00!important}.v-application .orange--text.text--accent-4{color:#ff6d00!important;caret-color:#ff6d00!important}.v-application .deep-orange{background-color:#ff5722!important;border-color:#ff5722!important}.v-application .deep-orange--text{color:#ff5722!important;caret-color:#ff5722!important}.v-application .deep-orange.lighten-5{background-color:#fbe9e7!important;border-color:#fbe9e7!important}.v-application .deep-orange--text.text--lighten-5{color:#fbe9e7!important;caret-color:#fbe9e7!important}.v-application .deep-orange.lighten-4{background-color:#ffccbc!important;border-color:#ffccbc!important}.v-application .deep-orange--text.text--lighten-4{color:#ffccbc!important;caret-color:#ffccbc!important}.v-application .deep-orange.lighten-3{background-color:#ffab91!important;border-color:#ffab91!important}.v-application .deep-orange--text.text--lighten-3{color:#ffab91!important;caret-color:#ffab91!important}.v-application .deep-orange.lighten-2{background-color:#ff8a65!important;border-color:#ff8a65!important}.v-application .deep-orange--text.text--lighten-2{color:#ff8a65!important;caret-color:#ff8a65!important}.v-application .deep-orange.lighten-1{background-color:#ff7043!important;border-color:#ff7043!important}.v-application .deep-orange--text.text--lighten-1{color:#ff7043!important;caret-color:#ff7043!important}.v-application .deep-orange.darken-1{background-color:#f4511e!important;border-color:#f4511e!important}.v-application .deep-orange--text.text--darken-1{color:#f4511e!important;caret-color:#f4511e!important}.v-application .deep-orange.darken-2{background-color:#e64a19!important;border-color:#e64a19!important}.v-application .deep-orange--text.text--darken-2{color:#e64a19!important;caret-color:#e64a19!important}.v-application .deep-orange.darken-3{background-color:#d84315!important;border-color:#d84315!important}.v-application .deep-orange--text.text--darken-3{color:#d84315!important;caret-color:#d84315!important}.v-application .deep-orange.darken-4{background-color:#bf360c!important;border-color:#bf360c!important}.v-application .deep-orange--text.text--darken-4{color:#bf360c!important;caret-color:#bf360c!important}.v-application .deep-orange.accent-1{background-color:#ff9e80!important;border-color:#ff9e80!important}.v-application .deep-orange--text.text--accent-1{color:#ff9e80!important;caret-color:#ff9e80!important}.v-application .deep-orange.accent-2{background-color:#ff6e40!important;border-color:#ff6e40!important}.v-application .deep-orange--text.text--accent-2{color:#ff6e40!important;caret-color:#ff6e40!important}.v-application .deep-orange.accent-3{background-color:#ff3d00!important;border-color:#ff3d00!important}.v-application .deep-orange--text.text--accent-3{color:#ff3d00!important;caret-color:#ff3d00!important}.v-application .deep-orange.accent-4{background-color:#dd2c00!important;border-color:#dd2c00!important}.v-application .deep-orange--text.text--accent-4{color:#dd2c00!important;caret-color:#dd2c00!important}.v-application .brown{background-color:#795548!important;border-color:#795548!important}.v-application .brown--text{color:#795548!important;caret-color:#795548!important}.v-application .brown.lighten-5{background-color:#efebe9!important;border-color:#efebe9!important}.v-application .brown--text.text--lighten-5{color:#efebe9!important;caret-color:#efebe9!important}.v-application .brown.lighten-4{background-color:#d7ccc8!important;border-color:#d7ccc8!important}.v-application .brown--text.text--lighten-4{color:#d7ccc8!important;caret-color:#d7ccc8!important}.v-application .brown.lighten-3{background-color:#bcaaa4!important;border-color:#bcaaa4!important}.v-application .brown--text.text--lighten-3{color:#bcaaa4!important;caret-color:#bcaaa4!important}.v-application .brown.lighten-2{background-color:#a1887f!important;border-color:#a1887f!important}.v-application .brown--text.text--lighten-2{color:#a1887f!important;caret-color:#a1887f!important}.v-application .brown.lighten-1{background-color:#8d6e63!important;border-color:#8d6e63!important}.v-application .brown--text.text--lighten-1{color:#8d6e63!important;caret-color:#8d6e63!important}.v-application .brown.darken-1{background-color:#6d4c41!important;border-color:#6d4c41!important}.v-application .brown--text.text--darken-1{color:#6d4c41!important;caret-color:#6d4c41!important}.v-application .brown.darken-2{background-color:#5d4037!important;border-color:#5d4037!important}.v-application .brown--text.text--darken-2{color:#5d4037!important;caret-color:#5d4037!important}.v-application .brown.darken-3{background-color:#4e342e!important;border-color:#4e342e!important}.v-application .brown--text.text--darken-3{color:#4e342e!important;caret-color:#4e342e!important}.v-application .brown.darken-4{background-color:#3e2723!important;border-color:#3e2723!important}.v-application .brown--text.text--darken-4{color:#3e2723!important;caret-color:#3e2723!important}.v-application .blue-grey{background-color:#607d8b!important;border-color:#607d8b!important}.v-application .blue-grey--text{color:#607d8b!important;caret-color:#607d8b!important}.v-application .blue-grey.lighten-5{background-color:#eceff1!important;border-color:#eceff1!important}.v-application .blue-grey--text.text--lighten-5{color:#eceff1!important;caret-color:#eceff1!important}.v-application .blue-grey.lighten-4{background-color:#cfd8dc!important;border-color:#cfd8dc!important}.v-application .blue-grey--text.text--lighten-4{color:#cfd8dc!important;caret-color:#cfd8dc!important}.v-application .blue-grey.lighten-3{background-color:#b0bec5!important;border-color:#b0bec5!important}.v-application .blue-grey--text.text--lighten-3{color:#b0bec5!important;caret-color:#b0bec5!important}.v-application .blue-grey.lighten-2{background-color:#90a4ae!important;border-color:#90a4ae!important}.v-application .blue-grey--text.text--lighten-2{color:#90a4ae!important;caret-color:#90a4ae!important}.v-application .blue-grey.lighten-1{background-color:#78909c!important;border-color:#78909c!important}.v-application .blue-grey--text.text--lighten-1{color:#78909c!important;caret-color:#78909c!important}.v-application .blue-grey.darken-1{background-color:#546e7a!important;border-color:#546e7a!important}.v-application .blue-grey--text.text--darken-1{color:#546e7a!important;caret-color:#546e7a!important}.v-application .blue-grey.darken-2{background-color:#455a64!important;border-color:#455a64!important}.v-application .blue-grey--text.text--darken-2{color:#455a64!important;caret-color:#455a64!important}.v-application .blue-grey.darken-3{background-color:#37474f!important;border-color:#37474f!important}.v-application .blue-grey--text.text--darken-3{color:#37474f!important;caret-color:#37474f!important}.v-application .blue-grey.darken-4{background-color:#263238!important;border-color:#263238!important}.v-application .blue-grey--text.text--darken-4{color:#263238!important;caret-color:#263238!important}.v-application .grey{background-color:#9e9e9e!important;border-color:#9e9e9e!important}.v-application .grey--text{color:#9e9e9e!important;caret-color:#9e9e9e!important}.v-application .grey.lighten-5{background-color:#fafafa!important;border-color:#fafafa!important}.v-application .grey--text.text--lighten-5{color:#fafafa!important;caret-color:#fafafa!important}.v-application .grey.lighten-4{background-color:#f5f5f5!important;border-color:#f5f5f5!important}.v-application .grey--text.text--lighten-4{color:#f5f5f5!important;caret-color:#f5f5f5!important}.v-application .grey.lighten-3{background-color:#eee!important;border-color:#eee!important}.v-application .grey--text.text--lighten-3{color:#eee!important;caret-color:#eee!important}.v-application .grey.lighten-2{background-color:#e0e0e0!important;border-color:#e0e0e0!important}.v-application .grey--text.text--lighten-2{color:#e0e0e0!important;caret-color:#e0e0e0!important}.v-application .grey.lighten-1{background-color:#bdbdbd!important;border-color:#bdbdbd!important}.v-application .grey--text.text--lighten-1{color:#bdbdbd!important;caret-color:#bdbdbd!important}.v-application .grey.darken-1{background-color:#757575!important;border-color:#757575!important}.v-application .grey--text.text--darken-1{color:#757575!important;caret-color:#757575!important}.v-application .grey.darken-2{background-color:#616161!important;border-color:#616161!important}.v-application .grey--text.text--darken-2{color:#616161!important;caret-color:#616161!important}.v-application .grey.darken-3{background-color:#424242!important;border-color:#424242!important}.v-application .grey--text.text--darken-3{color:#424242!important;caret-color:#424242!important}.v-application .grey.darken-4{background-color:#212121!important;border-color:#212121!important}.v-application .grey--text.text--darken-4{color:#212121!important;caret-color:#212121!important}.v-application .shades.black{background-color:#000!important;border-color:#000!important}.v-application .shades--text.text--black{color:#000!important;caret-color:#000!important}.v-application .shades.white{background-color:#fff!important;border-color:#fff!important}.v-application .shades--text.text--white{color:#fff!important;caret-color:#fff!important}.v-application .shades.transparent{background-color:transparent!important;border-color:transparent!important}.v-application .shades--text.text--transparent{color:transparent!important;caret-color:transparent!important} + +/* ! ress.css • v1.1.1 - MIT License - github.com/filipelinhares/ress */html{box-sizing:border-box;overflow-y:scroll;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:inherit}:after,:before{text-decoration:inherit;vertical-align:inherit}*{background-repeat:no-repeat;padding:0;margin:0}audio:not([controls]){display:none;height:0}hr{overflow:visible}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}summary{display:list-item}small{font-size:80%}[hidden],template{display:none}abbr[title]{border-bottom:1px dotted;text-decoration:none}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}code,kbd,pre,samp{font-family:monospace,monospace}b,strong{font-weight:bolder}dfn{font-style:italic}mark{background-color:#ff0;color:#000}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}input{border-radius:0}[type=button],[type=reset],[type=submit] [role=button],button{cursor:pointer}[disabled]{cursor:default}[type=number]{width:auto}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;resize:vertical}button,input,optgroup,select,textarea{font:inherit}optgroup{font-weight:700}button{overflow:visible}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:0;padding:0}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button:-moz-focusring{outline:0;border:0}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}button,select{text-transform:none}button,input,select,textarea{background-color:transparent;border-style:none;color:inherit}select{-moz-appearance:none;-webkit-appearance:none}select::-ms-expand{display:none}select::-ms-value{color:currentColor}legend{border:0;color:inherit;display:table;max-width:100%;white-space:normal}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}img{border-style:none}progress{vertical-align:baseline}svg:not(:root){overflow:hidden}audio,canvas,progress,video{display:inline-block}@media screen{[hidden~=screen]{display:inherit}[hidden~=screen]:not(:active):not(:focus):not(:target){position:absolute!important;clip:rect(0 0 0 0)!important}}[aria-busy=true]{cursor:progress}[aria-controls]{cursor:pointer}[aria-disabled]{cursor:default}::-moz-selection{background-color:#b3d4fc;color:#000;text-shadow:none}::selection{background-color:#b3d4fc;color:#000;text-shadow:none}.v-application .elevation-24{box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)!important}.v-application .elevation-23{box-shadow:0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12)!important}.v-application .elevation-22{box-shadow:0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12)!important}.v-application .elevation-21{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12)!important}.v-application .elevation-20{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12)!important}.v-application .elevation-19{box-shadow:0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12)!important}.v-application .elevation-18{box-shadow:0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12)!important}.v-application .elevation-17{box-shadow:0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12)!important}.v-application .elevation-16{box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)!important}.v-application .elevation-15{box-shadow:0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12)!important}.v-application .elevation-14{box-shadow:0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12)!important}.v-application .elevation-13{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12)!important}.v-application .elevation-12{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)!important}.v-application .elevation-11{box-shadow:0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12)!important}.v-application .elevation-10{box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12)!important}.v-application .elevation-9{box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12)!important}.v-application .elevation-8{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)!important}.v-application .elevation-7{box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)!important}.v-application .elevation-6{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)!important}.v-application .elevation-5{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12)!important}.v-application .elevation-4{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)!important}.v-application .elevation-3{box-shadow:0 3px 3px -2px rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12)!important}.v-application .elevation-2{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)!important}.v-application .elevation-1{box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)!important}.v-application .elevation-0{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)!important}.v-application .carousel-transition-enter{transform:translate(100%)}.v-application .carousel-transition-leave,.v-application .carousel-transition-leave-to{position:absolute;top:0;transform:translate(-100%)}.carousel-reverse-transition-enter{transform:translate(-100%)}.carousel-reverse-transition-leave,.carousel-reverse-transition-leave-to{position:absolute;top:0;transform:translate(100%)}.dialog-transition-enter,.dialog-transition-leave-to{transform:scale(.5);opacity:0}.dialog-transition-enter-to,.dialog-transition-leave{opacity:1}.dialog-bottom-transition-enter,.dialog-bottom-transition-leave-to{transform:translateY(100%)}.picker-reverse-transition-enter-active,.picker-reverse-transition-leave-active,.picker-transition-enter-active,.picker-transition-leave-active{transition:.3s cubic-bezier(0,0,.2,1)}.picker-reverse-transition-enter,.picker-reverse-transition-leave-to,.picker-transition-enter,.picker-transition-leave-to{opacity:0}.picker-reverse-transition-leave,.picker-reverse-transition-leave-active,.picker-reverse-transition-leave-to,.picker-transition-leave,.picker-transition-leave-active,.picker-transition-leave-to{position:absolute!important}.picker-transition-enter{transform:translateY(100%)}.picker-reverse-transition-enter,.picker-transition-leave-to{transform:translateY(-100%)}.picker-reverse-transition-leave-to{transform:translateY(100%)}.picker-title-transition-enter-to,.picker-title-transition-leave{transform:translate(0)}.picker-title-transition-enter{transform:translate(-100%)}.picker-title-transition-leave-to{opacity:0;transform:translate(100%)}.picker-title-transition-leave,.picker-title-transition-leave-active,.picker-title-transition-leave-to{position:absolute!important}.tab-transition-enter{transform:translate(100%)}.tab-transition-leave,.tab-transition-leave-active{position:absolute;top:0}.tab-transition-leave-to{position:absolute}.tab-reverse-transition-enter,.tab-transition-leave-to{transform:translate(-100%)}.tab-reverse-transition-leave,.tab-reverse-transition-leave-to{top:0;position:absolute;transform:translate(100%)}.expand-transition-enter-active,.expand-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.expand-transition-move{transition:transform .6s}.expand-x-transition-enter-active,.expand-x-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.expand-x-transition-move{transition:transform .6s}.scale-transition-enter-active,.scale-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.scale-transition-move{transition:transform .6s}.scale-transition-enter,.scale-transition-leave,.scale-transition-leave-to{opacity:0;transform:scale(0)}.message-transition-enter-active,.message-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.message-transition-move{transition:transform .6s}.message-transition-enter,.message-transition-leave-to{opacity:0;transform:translateY(-15px)}.message-transition-leave,.message-transition-leave-active{position:absolute}.slide-y-transition-enter-active,.slide-y-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.slide-y-transition-move{transition:transform .6s}.slide-y-transition-enter,.slide-y-transition-leave-to{opacity:0;transform:translateY(-15px)}.slide-y-reverse-transition-enter-active,.slide-y-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.slide-y-reverse-transition-move{transition:transform .6s}.slide-y-reverse-transition-enter,.slide-y-reverse-transition-leave-to{opacity:0;transform:translateY(15px)}.scroll-y-transition-enter-active,.scroll-y-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.scroll-y-transition-move{transition:transform .6s}.scroll-y-transition-enter,.scroll-y-transition-leave-to{opacity:0}.scroll-y-transition-enter{transform:translateY(-15px)}.scroll-y-transition-leave-to{transform:translateY(15px)}.scroll-y-reverse-transition-enter-active,.scroll-y-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.scroll-y-reverse-transition-move{transition:transform .6s}.scroll-y-reverse-transition-enter,.scroll-y-reverse-transition-leave-to{opacity:0}.scroll-y-reverse-transition-enter{transform:translateY(15px)}.scroll-y-reverse-transition-leave-to{transform:translateY(-15px)}.scroll-x-transition-enter-active,.scroll-x-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.scroll-x-transition-move{transition:transform .6s}.scroll-x-transition-enter,.scroll-x-transition-leave-to{opacity:0}.scroll-x-transition-enter{transform:translateX(-15px)}.scroll-x-transition-leave-to{transform:translateX(15px)}.scroll-x-reverse-transition-enter-active,.scroll-x-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.scroll-x-reverse-transition-move{transition:transform .6s}.scroll-x-reverse-transition-enter,.scroll-x-reverse-transition-leave-to{opacity:0}.scroll-x-reverse-transition-enter{transform:translateX(15px)}.scroll-x-reverse-transition-leave-to{transform:translateX(-15px)}.slide-x-transition-enter-active,.slide-x-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.slide-x-transition-move{transition:transform .6s}.slide-x-transition-enter,.slide-x-transition-leave-to{opacity:0;transform:translateX(-15px)}.slide-x-reverse-transition-enter-active,.slide-x-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.slide-x-reverse-transition-move{transition:transform .6s}.slide-x-reverse-transition-enter,.slide-x-reverse-transition-leave-to{opacity:0;transform:translateX(15px)}.fade-transition-enter-active,.fade-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.fade-transition-move{transition:transform .6s}.fade-transition-enter,.fade-transition-leave-to{opacity:0!important}.fab-transition-enter-active,.fab-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.fab-transition-move{transition:transform .6s}.fab-transition-enter,.fab-transition-leave-to{transform:scale(0) rotate(-45deg)}.v-application .blockquote{padding:16px 0 16px 24px;font-size:18px;font-weight:300}.v-application code,.v-application kbd{display:inline-block;border-radius:3px;white-space:pre-wrap;font-size:85%;font-weight:900}.v-application code:after,.v-application code:before,.v-application kbd:after,.v-application kbd:before{content:" ";letter-spacing:-1px}.v-application code{background-color:#f5f5f5;color:#bd4147;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)}.v-application kbd{background:#616161;color:#fff}html{font-size:16px;overflow-x:hidden;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:rgba(0,0,0,0)}.v-application{font-family:Roboto,sans-serif;line-height:1.5}.v-application ::-ms-clear,.v-application ::-ms-reveal{display:none}.v-application .theme--light.heading{color:rgba(0,0,0,.87)}.v-application .theme--dark.heading{color:#fff}.v-application ol,.v-application ul{padding-left:24px}.v-application .display-4{font-size:6rem!important;line-height:6rem;letter-spacing:-.015625em!important}.v-application .display-3,.v-application .display-4{font-weight:300;font-family:Roboto,sans-serif!important}.v-application .display-3{font-size:3.75rem!important;line-height:3.75rem;letter-spacing:-.0083333333em!important}.v-application .display-2{font-size:3rem!important;line-height:3.125rem;letter-spacing:normal!important}.v-application .display-1,.v-application .display-2{font-weight:400;font-family:Roboto,sans-serif!important}.v-application .display-1{font-size:2.125rem!important;line-height:2.5rem;letter-spacing:.0073529412em!important}.v-application .headline{font-size:1.5rem!important;font-weight:400;letter-spacing:normal!important}.v-application .headline,.v-application .title{line-height:2rem;font-family:Roboto,sans-serif!important}.v-application .title{font-size:1.25rem!important;font-weight:500;letter-spacing:.0125em!important}.v-application .subtitle-1{font-size:1rem!important;font-weight:400;letter-spacing:.009375em!important;line-height:1.75rem}.v-application .subtitle-2{font-size:.875rem!important;font-weight:500;letter-spacing:.0071428571em!important;line-height:1.375rem}.v-application .body-2{font-size:.875rem!important;font-weight:400;letter-spacing:.0178571429em!important;line-height:1.25rem}.v-application .body-1{font-size:1rem!important;font-weight:400;letter-spacing:.03125em!important;line-height:1.5rem}.v-application .caption{font-size:.75rem!important;font-weight:400;letter-spacing:.0333333333em!important;line-height:1.25rem}.v-application .overline{font-size:.625rem!important;font-weight:400;letter-spacing:.1666666667em!important;line-height:1rem;text-transform:uppercase}.v-application p{margin-bottom:16px}@media only print{.v-application .hidden-print-only{display:none!important}}@media only screen{.v-application .hidden-screen-only{display:none!important}}@media only screen and (max-width:599px){.v-application .hidden-xs-only{display:none!important}}@media only screen and (min-width:600px) and (max-width:959px){.v-application .hidden-sm-only{display:none!important}}@media only screen and (max-width:959px){.v-application .hidden-sm-and-down{display:none!important}}@media only screen and (min-width:600px){.v-application .hidden-sm-and-up{display:none!important}}@media only screen and (min-width:960px) and (max-width:1263px){.v-application .hidden-md-only{display:none!important}}@media only screen and (max-width:1263px){.v-application .hidden-md-and-down{display:none!important}}@media only screen and (min-width:960px){.v-application .hidden-md-and-up{display:none!important}}@media only screen and (min-width:1264px) and (max-width:1903px){.v-application .hidden-lg-only{display:none!important}}@media only screen and (max-width:1903px){.v-application .hidden-lg-and-down{display:none!important}}@media only screen and (min-width:1264px){.v-application .hidden-lg-and-up{display:none!important}}@media only screen and (min-width:1904px){.v-application .hidden-xl-only{display:none!important}}.v-application .font-weight-thin{font-weight:100!important}.v-application .font-weight-light{font-weight:300!important}.v-application .font-weight-regular{font-weight:400!important}.v-application .font-weight-medium{font-weight:500!important}.v-application .font-weight-bold{font-weight:700!important}.v-application .font-weight-black{font-weight:900!important}.v-application .font-italic{font-style:italic!important}.v-application .transition-fast-out-slow-in{transition:.3s cubic-bezier(.4,0,.2,1)!important}.v-application .transition-linear-out-slow-in{transition:.3s cubic-bezier(0,0,.2,1)!important}.v-application .transition-fast-out-linear-in{transition:.3s cubic-bezier(.4,0,1,1)!important}.v-application .transition-ease-in-out{transition:.3s cubic-bezier(.4,0,.6,1)!important}.v-application .transition-fast-in-fast-out{transition:.3s cubic-bezier(.25,.8,.25,1)!important}.v-application .transition-swing{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.v-application .overflow-auto{overflow:auto!important}.v-application .overflow-hidden{overflow:hidden!important}.v-application .overflow-visible{overflow:visible!important}.v-application .overflow-x-auto{overflow-x:auto!important}.v-application .overflow-x-hidden{overflow-x:hidden!important}.v-application .overflow-y-auto{overflow-y:auto!important}.v-application .overflow-y-hidden{overflow-y:hidden!important}.v-application .d-none{display:none!important}.v-application .d-inline{display:inline!important}.v-application .d-inline-block{display:inline-block!important}.v-application .d-block{display:block!important}.v-application .d-table{display:table!important}.v-application .d-table-row{display:table-row!important}.v-application .d-table-cell{display:table-cell!important}.v-application .d-flex{display:flex!important}.v-application .d-inline-flex{display:inline-flex!important}.v-application .float-none{float:none!important}.v-application .float-left{float:left!important}.v-application .float-right{float:right!important}.v-application .flex-fill{flex:1 1 auto!important}.v-application .flex-row{flex-direction:row!important}.v-application .flex-column{flex-direction:column!important}.v-application .flex-row-reverse{flex-direction:row-reverse!important}.v-application .flex-column-reverse{flex-direction:column-reverse!important}.v-application .flex-grow-0{flex-grow:0!important}.v-application .flex-grow-1{flex-grow:1!important}.v-application .flex-shrink-0{flex-shrink:0!important}.v-application .flex-shrink-1{flex-shrink:1!important}.v-application .flex-wrap{flex-wrap:wrap!important}.v-application .flex-nowrap{flex-wrap:nowrap!important}.v-application .flex-wrap-reverse{flex-wrap:wrap-reverse!important}.v-application .justify-start{justify-content:flex-start!important}.v-application .justify-end{justify-content:flex-end!important}.v-application .justify-center{justify-content:center!important}.v-application .justify-space-between{justify-content:space-between!important}.v-application .justify-space-around{justify-content:space-around!important}.v-application .align-start{align-items:flex-start!important}.v-application .align-end{align-items:flex-end!important}.v-application .align-center{align-items:center!important}.v-application .align-baseline{align-items:baseline!important}.v-application .align-stretch{align-items:stretch!important}.v-application .align-content-start{align-content:flex-start!important}.v-application .align-content-end{align-content:flex-end!important}.v-application .align-content-center{align-content:center!important}.v-application .align-content-space-between{align-content:space-between!important}.v-application .align-content-space-around{align-content:space-around!important}.v-application .align-content-stretch{align-content:stretch!important}.v-application .align-self-auto{align-self:auto!important}.v-application .align-self-start{align-self:flex-start!important}.v-application .align-self-end{align-self:flex-end!important}.v-application .align-self-center{align-self:center!important}.v-application .align-self-baseline{align-self:baseline!important}.v-application .align-self-stretch{align-self:stretch!important}.v-application .order-first{order:-1!important}.v-application .order-0{order:0!important}.v-application .order-1{order:1!important}.v-application .order-2{order:2!important}.v-application .order-3{order:3!important}.v-application .order-4{order:4!important}.v-application .order-5{order:5!important}.v-application .order-6{order:6!important}.v-application .order-7{order:7!important}.v-application .order-8{order:8!important}.v-application .order-9{order:9!important}.v-application .order-10{order:10!important}.v-application .order-11{order:11!important}.v-application .order-12{order:12!important}.v-application .order-last{order:13!important}.v-application .ma-0{margin:0!important}.v-application .ma-1{margin:4px!important}.v-application .ma-2{margin:8px!important}.v-application .ma-3{margin:12px!important}.v-application .ma-4{margin:16px!important}.v-application .ma-5{margin:20px!important}.v-application .ma-6{margin:24px!important}.v-application .ma-7{margin:28px!important}.v-application .ma-8{margin:32px!important}.v-application .ma-9{margin:36px!important}.v-application .ma-10{margin:40px!important}.v-application .ma-11{margin:44px!important}.v-application .ma-12{margin:48px!important}.v-application .ma-auto{margin:auto!important}.v-application .mx-0{margin-right:0!important;margin-left:0!important}.v-application .mx-1{margin-right:4px!important;margin-left:4px!important}.v-application .mx-2{margin-right:8px!important;margin-left:8px!important}.v-application .mx-3{margin-right:12px!important;margin-left:12px!important}.v-application .mx-4{margin-right:16px!important;margin-left:16px!important}.v-application .mx-5{margin-right:20px!important;margin-left:20px!important}.v-application .mx-6{margin-right:24px!important;margin-left:24px!important}.v-application .mx-7{margin-right:28px!important;margin-left:28px!important}.v-application .mx-8{margin-right:32px!important;margin-left:32px!important}.v-application .mx-9{margin-right:36px!important;margin-left:36px!important}.v-application .mx-10{margin-right:40px!important;margin-left:40px!important}.v-application .mx-11{margin-right:44px!important;margin-left:44px!important}.v-application .mx-12{margin-right:48px!important;margin-left:48px!important}.v-application .mx-auto{margin-right:auto!important;margin-left:auto!important}.v-application .my-0{margin-top:0!important;margin-bottom:0!important}.v-application .my-1{margin-top:4px!important;margin-bottom:4px!important}.v-application .my-2{margin-top:8px!important;margin-bottom:8px!important}.v-application .my-3{margin-top:12px!important;margin-bottom:12px!important}.v-application .my-4{margin-top:16px!important;margin-bottom:16px!important}.v-application .my-5{margin-top:20px!important;margin-bottom:20px!important}.v-application .my-6{margin-top:24px!important;margin-bottom:24px!important}.v-application .my-7{margin-top:28px!important;margin-bottom:28px!important}.v-application .my-8{margin-top:32px!important;margin-bottom:32px!important}.v-application .my-9{margin-top:36px!important;margin-bottom:36px!important}.v-application .my-10{margin-top:40px!important;margin-bottom:40px!important}.v-application .my-11{margin-top:44px!important;margin-bottom:44px!important}.v-application .my-12{margin-top:48px!important;margin-bottom:48px!important}.v-application .my-auto{margin-top:auto!important;margin-bottom:auto!important}.v-application .mt-0{margin-top:0!important}.v-application .mt-1{margin-top:4px!important}.v-application .mt-2{margin-top:8px!important}.v-application .mt-3{margin-top:12px!important}.v-application .mt-4{margin-top:16px!important}.v-application .mt-5{margin-top:20px!important}.v-application .mt-6{margin-top:24px!important}.v-application .mt-7{margin-top:28px!important}.v-application .mt-8{margin-top:32px!important}.v-application .mt-9{margin-top:36px!important}.v-application .mt-10{margin-top:40px!important}.v-application .mt-11{margin-top:44px!important}.v-application .mt-12{margin-top:48px!important}.v-application .mt-auto{margin-top:auto!important}.v-application .mr-0{margin-right:0!important}.v-application .mr-1{margin-right:4px!important}.v-application .mr-2{margin-right:8px!important}.v-application .mr-3{margin-right:12px!important}.v-application .mr-4{margin-right:16px!important}.v-application .mr-5{margin-right:20px!important}.v-application .mr-6{margin-right:24px!important}.v-application .mr-7{margin-right:28px!important}.v-application .mr-8{margin-right:32px!important}.v-application .mr-9{margin-right:36px!important}.v-application .mr-10{margin-right:40px!important}.v-application .mr-11{margin-right:44px!important}.v-application .mr-12{margin-right:48px!important}.v-application .mr-auto{margin-right:auto!important}.v-application .mb-0{margin-bottom:0!important}.v-application .mb-1{margin-bottom:4px!important}.v-application .mb-2{margin-bottom:8px!important}.v-application .mb-3{margin-bottom:12px!important}.v-application .mb-4{margin-bottom:16px!important}.v-application .mb-5{margin-bottom:20px!important}.v-application .mb-6{margin-bottom:24px!important}.v-application .mb-7{margin-bottom:28px!important}.v-application .mb-8{margin-bottom:32px!important}.v-application .mb-9{margin-bottom:36px!important}.v-application .mb-10{margin-bottom:40px!important}.v-application .mb-11{margin-bottom:44px!important}.v-application .mb-12{margin-bottom:48px!important}.v-application .mb-auto{margin-bottom:auto!important}.v-application .ml-0{margin-left:0!important}.v-application .ml-1{margin-left:4px!important}.v-application .ml-2{margin-left:8px!important}.v-application .ml-3{margin-left:12px!important}.v-application .ml-4{margin-left:16px!important}.v-application .ml-5{margin-left:20px!important}.v-application .ml-6{margin-left:24px!important}.v-application .ml-7{margin-left:28px!important}.v-application .ml-8{margin-left:32px!important}.v-application .ml-9{margin-left:36px!important}.v-application .ml-10{margin-left:40px!important}.v-application .ml-11{margin-left:44px!important}.v-application .ml-12{margin-left:48px!important}.v-application .ml-auto{margin-left:auto!important}.v-application--is-ltr .ms-0{margin-left:0!important}.v-application--is-rtl .ms-0{margin-right:0!important}.v-application--is-ltr .ms-1{margin-left:4px!important}.v-application--is-rtl .ms-1{margin-right:4px!important}.v-application--is-ltr .ms-2{margin-left:8px!important}.v-application--is-rtl .ms-2{margin-right:8px!important}.v-application--is-ltr .ms-3{margin-left:12px!important}.v-application--is-rtl .ms-3{margin-right:12px!important}.v-application--is-ltr .ms-4{margin-left:16px!important}.v-application--is-rtl .ms-4{margin-right:16px!important}.v-application--is-ltr .ms-5{margin-left:20px!important}.v-application--is-rtl .ms-5{margin-right:20px!important}.v-application--is-ltr .ms-6{margin-left:24px!important}.v-application--is-rtl .ms-6{margin-right:24px!important}.v-application--is-ltr .ms-7{margin-left:28px!important}.v-application--is-rtl .ms-7{margin-right:28px!important}.v-application--is-ltr .ms-8{margin-left:32px!important}.v-application--is-rtl .ms-8{margin-right:32px!important}.v-application--is-ltr .ms-9{margin-left:36px!important}.v-application--is-rtl .ms-9{margin-right:36px!important}.v-application--is-ltr .ms-10{margin-left:40px!important}.v-application--is-rtl .ms-10{margin-right:40px!important}.v-application--is-ltr .ms-11{margin-left:44px!important}.v-application--is-rtl .ms-11{margin-right:44px!important}.v-application--is-ltr .ms-12{margin-left:48px!important}.v-application--is-rtl .ms-12{margin-right:48px!important}.v-application--is-ltr .ms-auto{margin-left:auto!important}.v-application--is-rtl .ms-auto{margin-right:auto!important}.v-application--is-ltr .me-0{margin-right:0!important}.v-application--is-rtl .me-0{margin-left:0!important}.v-application--is-ltr .me-1{margin-right:4px!important}.v-application--is-rtl .me-1{margin-left:4px!important}.v-application--is-ltr .me-2{margin-right:8px!important}.v-application--is-rtl .me-2{margin-left:8px!important}.v-application--is-ltr .me-3{margin-right:12px!important}.v-application--is-rtl .me-3{margin-left:12px!important}.v-application--is-ltr .me-4{margin-right:16px!important}.v-application--is-rtl .me-4{margin-left:16px!important}.v-application--is-ltr .me-5{margin-right:20px!important}.v-application--is-rtl .me-5{margin-left:20px!important}.v-application--is-ltr .me-6{margin-right:24px!important}.v-application--is-rtl .me-6{margin-left:24px!important}.v-application--is-ltr .me-7{margin-right:28px!important}.v-application--is-rtl .me-7{margin-left:28px!important}.v-application--is-ltr .me-8{margin-right:32px!important}.v-application--is-rtl .me-8{margin-left:32px!important}.v-application--is-ltr .me-9{margin-right:36px!important}.v-application--is-rtl .me-9{margin-left:36px!important}.v-application--is-ltr .me-10{margin-right:40px!important}.v-application--is-rtl .me-10{margin-left:40px!important}.v-application--is-ltr .me-11{margin-right:44px!important}.v-application--is-rtl .me-11{margin-left:44px!important}.v-application--is-ltr .me-12{margin-right:48px!important}.v-application--is-rtl .me-12{margin-left:48px!important}.v-application--is-ltr .me-auto{margin-right:auto!important}.v-application--is-rtl .me-auto{margin-left:auto!important}.v-application .ma-n1{margin:-4px!important}.v-application .ma-n2{margin:-8px!important}.v-application .ma-n3{margin:-12px!important}.v-application .ma-n4{margin:-16px!important}.v-application .ma-n5{margin:-20px!important}.v-application .ma-n6{margin:-24px!important}.v-application .ma-n7{margin:-28px!important}.v-application .ma-n8{margin:-32px!important}.v-application .ma-n9{margin:-36px!important}.v-application .ma-n10{margin:-40px!important}.v-application .ma-n11{margin:-44px!important}.v-application .ma-n12{margin:-48px!important}.v-application .mx-n1{margin-right:-4px!important;margin-left:-4px!important}.v-application .mx-n2{margin-right:-8px!important;margin-left:-8px!important}.v-application .mx-n3{margin-right:-12px!important;margin-left:-12px!important}.v-application .mx-n4{margin-right:-16px!important;margin-left:-16px!important}.v-application .mx-n5{margin-right:-20px!important;margin-left:-20px!important}.v-application .mx-n6{margin-right:-24px!important;margin-left:-24px!important}.v-application .mx-n7{margin-right:-28px!important;margin-left:-28px!important}.v-application .mx-n8{margin-right:-32px!important;margin-left:-32px!important}.v-application .mx-n9{margin-right:-36px!important;margin-left:-36px!important}.v-application .mx-n10{margin-right:-40px!important;margin-left:-40px!important}.v-application .mx-n11{margin-right:-44px!important;margin-left:-44px!important}.v-application .mx-n12{margin-right:-48px!important;margin-left:-48px!important}.v-application .my-n1{margin-top:-4px!important;margin-bottom:-4px!important}.v-application .my-n2{margin-top:-8px!important;margin-bottom:-8px!important}.v-application .my-n3{margin-top:-12px!important;margin-bottom:-12px!important}.v-application .my-n4{margin-top:-16px!important;margin-bottom:-16px!important}.v-application .my-n5{margin-top:-20px!important;margin-bottom:-20px!important}.v-application .my-n6{margin-top:-24px!important;margin-bottom:-24px!important}.v-application .my-n7{margin-top:-28px!important;margin-bottom:-28px!important}.v-application .my-n8{margin-top:-32px!important;margin-bottom:-32px!important}.v-application .my-n9{margin-top:-36px!important;margin-bottom:-36px!important}.v-application .my-n10{margin-top:-40px!important;margin-bottom:-40px!important}.v-application .my-n11{margin-top:-44px!important;margin-bottom:-44px!important}.v-application .my-n12{margin-top:-48px!important;margin-bottom:-48px!important}.v-application .mt-n1{margin-top:-4px!important}.v-application .mt-n2{margin-top:-8px!important}.v-application .mt-n3{margin-top:-12px!important}.v-application .mt-n4{margin-top:-16px!important}.v-application .mt-n5{margin-top:-20px!important}.v-application .mt-n6{margin-top:-24px!important}.v-application .mt-n7{margin-top:-28px!important}.v-application .mt-n8{margin-top:-32px!important}.v-application .mt-n9{margin-top:-36px!important}.v-application .mt-n10{margin-top:-40px!important}.v-application .mt-n11{margin-top:-44px!important}.v-application .mt-n12{margin-top:-48px!important}.v-application .mr-n1{margin-right:-4px!important}.v-application .mr-n2{margin-right:-8px!important}.v-application .mr-n3{margin-right:-12px!important}.v-application .mr-n4{margin-right:-16px!important}.v-application .mr-n5{margin-right:-20px!important}.v-application .mr-n6{margin-right:-24px!important}.v-application .mr-n7{margin-right:-28px!important}.v-application .mr-n8{margin-right:-32px!important}.v-application .mr-n9{margin-right:-36px!important}.v-application .mr-n10{margin-right:-40px!important}.v-application .mr-n11{margin-right:-44px!important}.v-application .mr-n12{margin-right:-48px!important}.v-application .mb-n1{margin-bottom:-4px!important}.v-application .mb-n2{margin-bottom:-8px!important}.v-application .mb-n3{margin-bottom:-12px!important}.v-application .mb-n4{margin-bottom:-16px!important}.v-application .mb-n5{margin-bottom:-20px!important}.v-application .mb-n6{margin-bottom:-24px!important}.v-application .mb-n7{margin-bottom:-28px!important}.v-application .mb-n8{margin-bottom:-32px!important}.v-application .mb-n9{margin-bottom:-36px!important}.v-application .mb-n10{margin-bottom:-40px!important}.v-application .mb-n11{margin-bottom:-44px!important}.v-application .mb-n12{margin-bottom:-48px!important}.v-application .ml-n1{margin-left:-4px!important}.v-application .ml-n2{margin-left:-8px!important}.v-application .ml-n3{margin-left:-12px!important}.v-application .ml-n4{margin-left:-16px!important}.v-application .ml-n5{margin-left:-20px!important}.v-application .ml-n6{margin-left:-24px!important}.v-application .ml-n7{margin-left:-28px!important}.v-application .ml-n8{margin-left:-32px!important}.v-application .ml-n9{margin-left:-36px!important}.v-application .ml-n10{margin-left:-40px!important}.v-application .ml-n11{margin-left:-44px!important}.v-application .ml-n12{margin-left:-48px!important}.v-application--is-ltr .ms-n1{margin-left:-4px!important}.v-application--is-rtl .ms-n1{margin-right:-4px!important}.v-application--is-ltr .ms-n2{margin-left:-8px!important}.v-application--is-rtl .ms-n2{margin-right:-8px!important}.v-application--is-ltr .ms-n3{margin-left:-12px!important}.v-application--is-rtl .ms-n3{margin-right:-12px!important}.v-application--is-ltr .ms-n4{margin-left:-16px!important}.v-application--is-rtl .ms-n4{margin-right:-16px!important}.v-application--is-ltr .ms-n5{margin-left:-20px!important}.v-application--is-rtl .ms-n5{margin-right:-20px!important}.v-application--is-ltr .ms-n6{margin-left:-24px!important}.v-application--is-rtl .ms-n6{margin-right:-24px!important}.v-application--is-ltr .ms-n7{margin-left:-28px!important}.v-application--is-rtl .ms-n7{margin-right:-28px!important}.v-application--is-ltr .ms-n8{margin-left:-32px!important}.v-application--is-rtl .ms-n8{margin-right:-32px!important}.v-application--is-ltr .ms-n9{margin-left:-36px!important}.v-application--is-rtl .ms-n9{margin-right:-36px!important}.v-application--is-ltr .ms-n10{margin-left:-40px!important}.v-application--is-rtl .ms-n10{margin-right:-40px!important}.v-application--is-ltr .ms-n11{margin-left:-44px!important}.v-application--is-rtl .ms-n11{margin-right:-44px!important}.v-application--is-ltr .ms-n12{margin-left:-48px!important}.v-application--is-rtl .ms-n12{margin-right:-48px!important}.v-application--is-ltr .me-n1{margin-right:-4px!important}.v-application--is-rtl .me-n1{margin-left:-4px!important}.v-application--is-ltr .me-n2{margin-right:-8px!important}.v-application--is-rtl .me-n2{margin-left:-8px!important}.v-application--is-ltr .me-n3{margin-right:-12px!important}.v-application--is-rtl .me-n3{margin-left:-12px!important}.v-application--is-ltr .me-n4{margin-right:-16px!important}.v-application--is-rtl .me-n4{margin-left:-16px!important}.v-application--is-ltr .me-n5{margin-right:-20px!important}.v-application--is-rtl .me-n5{margin-left:-20px!important}.v-application--is-ltr .me-n6{margin-right:-24px!important}.v-application--is-rtl .me-n6{margin-left:-24px!important}.v-application--is-ltr .me-n7{margin-right:-28px!important}.v-application--is-rtl .me-n7{margin-left:-28px!important}.v-application--is-ltr .me-n8{margin-right:-32px!important}.v-application--is-rtl .me-n8{margin-left:-32px!important}.v-application--is-ltr .me-n9{margin-right:-36px!important}.v-application--is-rtl .me-n9{margin-left:-36px!important}.v-application--is-ltr .me-n10{margin-right:-40px!important}.v-application--is-rtl .me-n10{margin-left:-40px!important}.v-application--is-ltr .me-n11{margin-right:-44px!important}.v-application--is-rtl .me-n11{margin-left:-44px!important}.v-application--is-ltr .me-n12{margin-right:-48px!important}.v-application--is-rtl .me-n12{margin-left:-48px!important}.v-application .pa-0{padding:0!important}.v-application .pa-1{padding:4px!important}.v-application .pa-2{padding:8px!important}.v-application .pa-3{padding:12px!important}.v-application .pa-4{padding:16px!important}.v-application .pa-5{padding:20px!important}.v-application .pa-6{padding:24px!important}.v-application .pa-7{padding:28px!important}.v-application .pa-8{padding:32px!important}.v-application .pa-9{padding:36px!important}.v-application .pa-10{padding:40px!important}.v-application .pa-11{padding:44px!important}.v-application .pa-12{padding:48px!important}.v-application .px-0{padding-right:0!important;padding-left:0!important}.v-application .px-1{padding-right:4px!important;padding-left:4px!important}.v-application .px-2{padding-right:8px!important;padding-left:8px!important}.v-application .px-3{padding-right:12px!important;padding-left:12px!important}.v-application .px-4{padding-right:16px!important;padding-left:16px!important}.v-application .px-5{padding-right:20px!important;padding-left:20px!important}.v-application .px-6{padding-right:24px!important;padding-left:24px!important}.v-application .px-7{padding-right:28px!important;padding-left:28px!important}.v-application .px-8{padding-right:32px!important;padding-left:32px!important}.v-application .px-9{padding-right:36px!important;padding-left:36px!important}.v-application .px-10{padding-right:40px!important;padding-left:40px!important}.v-application .px-11{padding-right:44px!important;padding-left:44px!important}.v-application .px-12{padding-right:48px!important;padding-left:48px!important}.v-application .py-0{padding-top:0!important;padding-bottom:0!important}.v-application .py-1{padding-top:4px!important;padding-bottom:4px!important}.v-application .py-2{padding-top:8px!important;padding-bottom:8px!important}.v-application .py-3{padding-top:12px!important;padding-bottom:12px!important}.v-application .py-4{padding-top:16px!important;padding-bottom:16px!important}.v-application .py-5{padding-top:20px!important;padding-bottom:20px!important}.v-application .py-6{padding-top:24px!important;padding-bottom:24px!important}.v-application .py-7{padding-top:28px!important;padding-bottom:28px!important}.v-application .py-8{padding-top:32px!important;padding-bottom:32px!important}.v-application .py-9{padding-top:36px!important;padding-bottom:36px!important}.v-application .py-10{padding-top:40px!important;padding-bottom:40px!important}.v-application .py-11{padding-top:44px!important;padding-bottom:44px!important}.v-application .py-12{padding-top:48px!important;padding-bottom:48px!important}.v-application .pt-0{padding-top:0!important}.v-application .pt-1{padding-top:4px!important}.v-application .pt-2{padding-top:8px!important}.v-application .pt-3{padding-top:12px!important}.v-application .pt-4{padding-top:16px!important}.v-application .pt-5{padding-top:20px!important}.v-application .pt-6{padding-top:24px!important}.v-application .pt-7{padding-top:28px!important}.v-application .pt-8{padding-top:32px!important}.v-application .pt-9{padding-top:36px!important}.v-application .pt-10{padding-top:40px!important}.v-application .pt-11{padding-top:44px!important}.v-application .pt-12{padding-top:48px!important}.v-application .pr-0{padding-right:0!important}.v-application .pr-1{padding-right:4px!important}.v-application .pr-2{padding-right:8px!important}.v-application .pr-3{padding-right:12px!important}.v-application .pr-4{padding-right:16px!important}.v-application .pr-5{padding-right:20px!important}.v-application .pr-6{padding-right:24px!important}.v-application .pr-7{padding-right:28px!important}.v-application .pr-8{padding-right:32px!important}.v-application .pr-9{padding-right:36px!important}.v-application .pr-10{padding-right:40px!important}.v-application .pr-11{padding-right:44px!important}.v-application .pr-12{padding-right:48px!important}.v-application .pb-0{padding-bottom:0!important}.v-application .pb-1{padding-bottom:4px!important}.v-application .pb-2{padding-bottom:8px!important}.v-application .pb-3{padding-bottom:12px!important}.v-application .pb-4{padding-bottom:16px!important}.v-application .pb-5{padding-bottom:20px!important}.v-application .pb-6{padding-bottom:24px!important}.v-application .pb-7{padding-bottom:28px!important}.v-application .pb-8{padding-bottom:32px!important}.v-application .pb-9{padding-bottom:36px!important}.v-application .pb-10{padding-bottom:40px!important}.v-application .pb-11{padding-bottom:44px!important}.v-application .pb-12{padding-bottom:48px!important}.v-application .pl-0{padding-left:0!important}.v-application .pl-1{padding-left:4px!important}.v-application .pl-2{padding-left:8px!important}.v-application .pl-3{padding-left:12px!important}.v-application .pl-4{padding-left:16px!important}.v-application .pl-5{padding-left:20px!important}.v-application .pl-6{padding-left:24px!important}.v-application .pl-7{padding-left:28px!important}.v-application .pl-8{padding-left:32px!important}.v-application .pl-9{padding-left:36px!important}.v-application .pl-10{padding-left:40px!important}.v-application .pl-11{padding-left:44px!important}.v-application .pl-12{padding-left:48px!important}.v-application--is-ltr .ps-0{padding-left:0!important}.v-application--is-rtl .ps-0{padding-right:0!important}.v-application--is-ltr .ps-1{padding-left:4px!important}.v-application--is-rtl .ps-1{padding-right:4px!important}.v-application--is-ltr .ps-2{padding-left:8px!important}.v-application--is-rtl .ps-2{padding-right:8px!important}.v-application--is-ltr .ps-3{padding-left:12px!important}.v-application--is-rtl .ps-3{padding-right:12px!important}.v-application--is-ltr .ps-4{padding-left:16px!important}.v-application--is-rtl .ps-4{padding-right:16px!important}.v-application--is-ltr .ps-5{padding-left:20px!important}.v-application--is-rtl .ps-5{padding-right:20px!important}.v-application--is-ltr .ps-6{padding-left:24px!important}.v-application--is-rtl .ps-6{padding-right:24px!important}.v-application--is-ltr .ps-7{padding-left:28px!important}.v-application--is-rtl .ps-7{padding-right:28px!important}.v-application--is-ltr .ps-8{padding-left:32px!important}.v-application--is-rtl .ps-8{padding-right:32px!important}.v-application--is-ltr .ps-9{padding-left:36px!important}.v-application--is-rtl .ps-9{padding-right:36px!important}.v-application--is-ltr .ps-10{padding-left:40px!important}.v-application--is-rtl .ps-10{padding-right:40px!important}.v-application--is-ltr .ps-11{padding-left:44px!important}.v-application--is-rtl .ps-11{padding-right:44px!important}.v-application--is-ltr .ps-12{padding-left:48px!important}.v-application--is-rtl .ps-12{padding-right:48px!important}.v-application--is-ltr .pe-0{padding-right:0!important}.v-application--is-rtl .pe-0{padding-left:0!important}.v-application--is-ltr .pe-1{padding-right:4px!important}.v-application--is-rtl .pe-1{padding-left:4px!important}.v-application--is-ltr .pe-2{padding-right:8px!important}.v-application--is-rtl .pe-2{padding-left:8px!important}.v-application--is-ltr .pe-3{padding-right:12px!important}.v-application--is-rtl .pe-3{padding-left:12px!important}.v-application--is-ltr .pe-4{padding-right:16px!important}.v-application--is-rtl .pe-4{padding-left:16px!important}.v-application--is-ltr .pe-5{padding-right:20px!important}.v-application--is-rtl .pe-5{padding-left:20px!important}.v-application--is-ltr .pe-6{padding-right:24px!important}.v-application--is-rtl .pe-6{padding-left:24px!important}.v-application--is-ltr .pe-7{padding-right:28px!important}.v-application--is-rtl .pe-7{padding-left:28px!important}.v-application--is-ltr .pe-8{padding-right:32px!important}.v-application--is-rtl .pe-8{padding-left:32px!important}.v-application--is-ltr .pe-9{padding-right:36px!important}.v-application--is-rtl .pe-9{padding-left:36px!important}.v-application--is-ltr .pe-10{padding-right:40px!important}.v-application--is-rtl .pe-10{padding-left:40px!important}.v-application--is-ltr .pe-11{padding-right:44px!important}.v-application--is-rtl .pe-11{padding-left:44px!important}.v-application--is-ltr .pe-12{padding-right:48px!important}.v-application--is-rtl .pe-12{padding-left:48px!important}.v-application .text-left{text-align:left!important}.v-application .text-right{text-align:right!important}.v-application .text-center{text-align:center!important}.v-application .text-justify{text-align:justify!important}.v-application .text-start{text-align:start!important}.v-application .text-end{text-align:end!important}.v-application .text-wrap{white-space:normal!important}.v-application .text-no-wrap{white-space:nowrap!important}.v-application .text-break{overflow-wrap:break-word!important;word-break:break-word!important}.v-application .text-truncate{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.v-application .text-none{text-transform:none!important}.v-application .text-capitalize{text-transform:capitalize!important}.v-application .text-lowercase{text-transform:lowercase!important}.v-application .text-uppercase{text-transform:uppercase!important}@media (min-width:600px){.v-application .d-sm-none{display:none!important}.v-application .d-sm-inline{display:inline!important}.v-application .d-sm-inline-block{display:inline-block!important}.v-application .d-sm-block{display:block!important}.v-application .d-sm-table{display:table!important}.v-application .d-sm-table-row{display:table-row!important}.v-application .d-sm-table-cell{display:table-cell!important}.v-application .d-sm-flex{display:flex!important}.v-application .d-sm-inline-flex{display:inline-flex!important}.v-application .float-sm-none{float:none!important}.v-application .float-sm-left{float:left!important}.v-application .float-sm-right{float:right!important}.v-application .flex-sm-fill{flex:1 1 auto!important}.v-application .flex-sm-row{flex-direction:row!important}.v-application .flex-sm-column{flex-direction:column!important}.v-application .flex-sm-row-reverse{flex-direction:row-reverse!important}.v-application .flex-sm-column-reverse{flex-direction:column-reverse!important}.v-application .flex-sm-grow-0{flex-grow:0!important}.v-application .flex-sm-grow-1{flex-grow:1!important}.v-application .flex-sm-shrink-0{flex-shrink:0!important}.v-application .flex-sm-shrink-1{flex-shrink:1!important}.v-application .flex-sm-wrap{flex-wrap:wrap!important}.v-application .flex-sm-nowrap{flex-wrap:nowrap!important}.v-application .flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.v-application .justify-sm-start{justify-content:flex-start!important}.v-application .justify-sm-end{justify-content:flex-end!important}.v-application .justify-sm-center{justify-content:center!important}.v-application .justify-sm-space-between{justify-content:space-between!important}.v-application .justify-sm-space-around{justify-content:space-around!important}.v-application .align-sm-start{align-items:flex-start!important}.v-application .align-sm-end{align-items:flex-end!important}.v-application .align-sm-center{align-items:center!important}.v-application .align-sm-baseline{align-items:baseline!important}.v-application .align-sm-stretch{align-items:stretch!important}.v-application .align-content-sm-start{align-content:flex-start!important}.v-application .align-content-sm-end{align-content:flex-end!important}.v-application .align-content-sm-center{align-content:center!important}.v-application .align-content-sm-space-between{align-content:space-between!important}.v-application .align-content-sm-space-around{align-content:space-around!important}.v-application .align-content-sm-stretch{align-content:stretch!important}.v-application .align-self-sm-auto{align-self:auto!important}.v-application .align-self-sm-start{align-self:flex-start!important}.v-application .align-self-sm-end{align-self:flex-end!important}.v-application .align-self-sm-center{align-self:center!important}.v-application .align-self-sm-baseline{align-self:baseline!important}.v-application .align-self-sm-stretch{align-self:stretch!important}.v-application .order-sm-first{order:-1!important}.v-application .order-sm-0{order:0!important}.v-application .order-sm-1{order:1!important}.v-application .order-sm-2{order:2!important}.v-application .order-sm-3{order:3!important}.v-application .order-sm-4{order:4!important}.v-application .order-sm-5{order:5!important}.v-application .order-sm-6{order:6!important}.v-application .order-sm-7{order:7!important}.v-application .order-sm-8{order:8!important}.v-application .order-sm-9{order:9!important}.v-application .order-sm-10{order:10!important}.v-application .order-sm-11{order:11!important}.v-application .order-sm-12{order:12!important}.v-application .order-sm-last{order:13!important}.v-application .ma-sm-0{margin:0!important}.v-application .ma-sm-1{margin:4px!important}.v-application .ma-sm-2{margin:8px!important}.v-application .ma-sm-3{margin:12px!important}.v-application .ma-sm-4{margin:16px!important}.v-application .ma-sm-5{margin:20px!important}.v-application .ma-sm-6{margin:24px!important}.v-application .ma-sm-7{margin:28px!important}.v-application .ma-sm-8{margin:32px!important}.v-application .ma-sm-9{margin:36px!important}.v-application .ma-sm-10{margin:40px!important}.v-application .ma-sm-11{margin:44px!important}.v-application .ma-sm-12{margin:48px!important}.v-application .ma-sm-auto{margin:auto!important}.v-application .mx-sm-0{margin-right:0!important;margin-left:0!important}.v-application .mx-sm-1{margin-right:4px!important;margin-left:4px!important}.v-application .mx-sm-2{margin-right:8px!important;margin-left:8px!important}.v-application .mx-sm-3{margin-right:12px!important;margin-left:12px!important}.v-application .mx-sm-4{margin-right:16px!important;margin-left:16px!important}.v-application .mx-sm-5{margin-right:20px!important;margin-left:20px!important}.v-application .mx-sm-6{margin-right:24px!important;margin-left:24px!important}.v-application .mx-sm-7{margin-right:28px!important;margin-left:28px!important}.v-application .mx-sm-8{margin-right:32px!important;margin-left:32px!important}.v-application .mx-sm-9{margin-right:36px!important;margin-left:36px!important}.v-application .mx-sm-10{margin-right:40px!important;margin-left:40px!important}.v-application .mx-sm-11{margin-right:44px!important;margin-left:44px!important}.v-application .mx-sm-12{margin-right:48px!important;margin-left:48px!important}.v-application .mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.v-application .my-sm-0{margin-top:0!important;margin-bottom:0!important}.v-application .my-sm-1{margin-top:4px!important;margin-bottom:4px!important}.v-application .my-sm-2{margin-top:8px!important;margin-bottom:8px!important}.v-application .my-sm-3{margin-top:12px!important;margin-bottom:12px!important}.v-application .my-sm-4{margin-top:16px!important;margin-bottom:16px!important}.v-application .my-sm-5{margin-top:20px!important;margin-bottom:20px!important}.v-application .my-sm-6{margin-top:24px!important;margin-bottom:24px!important}.v-application .my-sm-7{margin-top:28px!important;margin-bottom:28px!important}.v-application .my-sm-8{margin-top:32px!important;margin-bottom:32px!important}.v-application .my-sm-9{margin-top:36px!important;margin-bottom:36px!important}.v-application .my-sm-10{margin-top:40px!important;margin-bottom:40px!important}.v-application .my-sm-11{margin-top:44px!important;margin-bottom:44px!important}.v-application .my-sm-12{margin-top:48px!important;margin-bottom:48px!important}.v-application .my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.v-application .mt-sm-0{margin-top:0!important}.v-application .mt-sm-1{margin-top:4px!important}.v-application .mt-sm-2{margin-top:8px!important}.v-application .mt-sm-3{margin-top:12px!important}.v-application .mt-sm-4{margin-top:16px!important}.v-application .mt-sm-5{margin-top:20px!important}.v-application .mt-sm-6{margin-top:24px!important}.v-application .mt-sm-7{margin-top:28px!important}.v-application .mt-sm-8{margin-top:32px!important}.v-application .mt-sm-9{margin-top:36px!important}.v-application .mt-sm-10{margin-top:40px!important}.v-application .mt-sm-11{margin-top:44px!important}.v-application .mt-sm-12{margin-top:48px!important}.v-application .mt-sm-auto{margin-top:auto!important}.v-application .mr-sm-0{margin-right:0!important}.v-application .mr-sm-1{margin-right:4px!important}.v-application .mr-sm-2{margin-right:8px!important}.v-application .mr-sm-3{margin-right:12px!important}.v-application .mr-sm-4{margin-right:16px!important}.v-application .mr-sm-5{margin-right:20px!important}.v-application .mr-sm-6{margin-right:24px!important}.v-application .mr-sm-7{margin-right:28px!important}.v-application .mr-sm-8{margin-right:32px!important}.v-application .mr-sm-9{margin-right:36px!important}.v-application .mr-sm-10{margin-right:40px!important}.v-application .mr-sm-11{margin-right:44px!important}.v-application .mr-sm-12{margin-right:48px!important}.v-application .mr-sm-auto{margin-right:auto!important}.v-application .mb-sm-0{margin-bottom:0!important}.v-application .mb-sm-1{margin-bottom:4px!important}.v-application .mb-sm-2{margin-bottom:8px!important}.v-application .mb-sm-3{margin-bottom:12px!important}.v-application .mb-sm-4{margin-bottom:16px!important}.v-application .mb-sm-5{margin-bottom:20px!important}.v-application .mb-sm-6{margin-bottom:24px!important}.v-application .mb-sm-7{margin-bottom:28px!important}.v-application .mb-sm-8{margin-bottom:32px!important}.v-application .mb-sm-9{margin-bottom:36px!important}.v-application .mb-sm-10{margin-bottom:40px!important}.v-application .mb-sm-11{margin-bottom:44px!important}.v-application .mb-sm-12{margin-bottom:48px!important}.v-application .mb-sm-auto{margin-bottom:auto!important}.v-application .ml-sm-0{margin-left:0!important}.v-application .ml-sm-1{margin-left:4px!important}.v-application .ml-sm-2{margin-left:8px!important}.v-application .ml-sm-3{margin-left:12px!important}.v-application .ml-sm-4{margin-left:16px!important}.v-application .ml-sm-5{margin-left:20px!important}.v-application .ml-sm-6{margin-left:24px!important}.v-application .ml-sm-7{margin-left:28px!important}.v-application .ml-sm-8{margin-left:32px!important}.v-application .ml-sm-9{margin-left:36px!important}.v-application .ml-sm-10{margin-left:40px!important}.v-application .ml-sm-11{margin-left:44px!important}.v-application .ml-sm-12{margin-left:48px!important}.v-application .ml-sm-auto{margin-left:auto!important}.v-application--is-ltr .ms-sm-0{margin-left:0!important}.v-application--is-rtl .ms-sm-0{margin-right:0!important}.v-application--is-ltr .ms-sm-1{margin-left:4px!important}.v-application--is-rtl .ms-sm-1{margin-right:4px!important}.v-application--is-ltr .ms-sm-2{margin-left:8px!important}.v-application--is-rtl .ms-sm-2{margin-right:8px!important}.v-application--is-ltr .ms-sm-3{margin-left:12px!important}.v-application--is-rtl .ms-sm-3{margin-right:12px!important}.v-application--is-ltr .ms-sm-4{margin-left:16px!important}.v-application--is-rtl .ms-sm-4{margin-right:16px!important}.v-application--is-ltr .ms-sm-5{margin-left:20px!important}.v-application--is-rtl .ms-sm-5{margin-right:20px!important}.v-application--is-ltr .ms-sm-6{margin-left:24px!important}.v-application--is-rtl .ms-sm-6{margin-right:24px!important}.v-application--is-ltr .ms-sm-7{margin-left:28px!important}.v-application--is-rtl .ms-sm-7{margin-right:28px!important}.v-application--is-ltr .ms-sm-8{margin-left:32px!important}.v-application--is-rtl .ms-sm-8{margin-right:32px!important}.v-application--is-ltr .ms-sm-9{margin-left:36px!important}.v-application--is-rtl .ms-sm-9{margin-right:36px!important}.v-application--is-ltr .ms-sm-10{margin-left:40px!important}.v-application--is-rtl .ms-sm-10{margin-right:40px!important}.v-application--is-ltr .ms-sm-11{margin-left:44px!important}.v-application--is-rtl .ms-sm-11{margin-right:44px!important}.v-application--is-ltr .ms-sm-12{margin-left:48px!important}.v-application--is-rtl .ms-sm-12{margin-right:48px!important}.v-application--is-ltr .ms-sm-auto{margin-left:auto!important}.v-application--is-rtl .ms-sm-auto{margin-right:auto!important}.v-application--is-ltr .me-sm-0{margin-right:0!important}.v-application--is-rtl .me-sm-0{margin-left:0!important}.v-application--is-ltr .me-sm-1{margin-right:4px!important}.v-application--is-rtl .me-sm-1{margin-left:4px!important}.v-application--is-ltr .me-sm-2{margin-right:8px!important}.v-application--is-rtl .me-sm-2{margin-left:8px!important}.v-application--is-ltr .me-sm-3{margin-right:12px!important}.v-application--is-rtl .me-sm-3{margin-left:12px!important}.v-application--is-ltr .me-sm-4{margin-right:16px!important}.v-application--is-rtl .me-sm-4{margin-left:16px!important}.v-application--is-ltr .me-sm-5{margin-right:20px!important}.v-application--is-rtl .me-sm-5{margin-left:20px!important}.v-application--is-ltr .me-sm-6{margin-right:24px!important}.v-application--is-rtl .me-sm-6{margin-left:24px!important}.v-application--is-ltr .me-sm-7{margin-right:28px!important}.v-application--is-rtl .me-sm-7{margin-left:28px!important}.v-application--is-ltr .me-sm-8{margin-right:32px!important}.v-application--is-rtl .me-sm-8{margin-left:32px!important}.v-application--is-ltr .me-sm-9{margin-right:36px!important}.v-application--is-rtl .me-sm-9{margin-left:36px!important}.v-application--is-ltr .me-sm-10{margin-right:40px!important}.v-application--is-rtl .me-sm-10{margin-left:40px!important}.v-application--is-ltr .me-sm-11{margin-right:44px!important}.v-application--is-rtl .me-sm-11{margin-left:44px!important}.v-application--is-ltr .me-sm-12{margin-right:48px!important}.v-application--is-rtl .me-sm-12{margin-left:48px!important}.v-application--is-ltr .me-sm-auto{margin-right:auto!important}.v-application--is-rtl .me-sm-auto{margin-left:auto!important}.v-application .ma-sm-n1{margin:-4px!important}.v-application .ma-sm-n2{margin:-8px!important}.v-application .ma-sm-n3{margin:-12px!important}.v-application .ma-sm-n4{margin:-16px!important}.v-application .ma-sm-n5{margin:-20px!important}.v-application .ma-sm-n6{margin:-24px!important}.v-application .ma-sm-n7{margin:-28px!important}.v-application .ma-sm-n8{margin:-32px!important}.v-application .ma-sm-n9{margin:-36px!important}.v-application .ma-sm-n10{margin:-40px!important}.v-application .ma-sm-n11{margin:-44px!important}.v-application .ma-sm-n12{margin:-48px!important}.v-application .mx-sm-n1{margin-right:-4px!important;margin-left:-4px!important}.v-application .mx-sm-n2{margin-right:-8px!important;margin-left:-8px!important}.v-application .mx-sm-n3{margin-right:-12px!important;margin-left:-12px!important}.v-application .mx-sm-n4{margin-right:-16px!important;margin-left:-16px!important}.v-application .mx-sm-n5{margin-right:-20px!important;margin-left:-20px!important}.v-application .mx-sm-n6{margin-right:-24px!important;margin-left:-24px!important}.v-application .mx-sm-n7{margin-right:-28px!important;margin-left:-28px!important}.v-application .mx-sm-n8{margin-right:-32px!important;margin-left:-32px!important}.v-application .mx-sm-n9{margin-right:-36px!important;margin-left:-36px!important}.v-application .mx-sm-n10{margin-right:-40px!important;margin-left:-40px!important}.v-application .mx-sm-n11{margin-right:-44px!important;margin-left:-44px!important}.v-application .mx-sm-n12{margin-right:-48px!important;margin-left:-48px!important}.v-application .my-sm-n1{margin-top:-4px!important;margin-bottom:-4px!important}.v-application .my-sm-n2{margin-top:-8px!important;margin-bottom:-8px!important}.v-application .my-sm-n3{margin-top:-12px!important;margin-bottom:-12px!important}.v-application .my-sm-n4{margin-top:-16px!important;margin-bottom:-16px!important}.v-application .my-sm-n5{margin-top:-20px!important;margin-bottom:-20px!important}.v-application .my-sm-n6{margin-top:-24px!important;margin-bottom:-24px!important}.v-application .my-sm-n7{margin-top:-28px!important;margin-bottom:-28px!important}.v-application .my-sm-n8{margin-top:-32px!important;margin-bottom:-32px!important}.v-application .my-sm-n9{margin-top:-36px!important;margin-bottom:-36px!important}.v-application .my-sm-n10{margin-top:-40px!important;margin-bottom:-40px!important}.v-application .my-sm-n11{margin-top:-44px!important;margin-bottom:-44px!important}.v-application .my-sm-n12{margin-top:-48px!important;margin-bottom:-48px!important}.v-application .mt-sm-n1{margin-top:-4px!important}.v-application .mt-sm-n2{margin-top:-8px!important}.v-application .mt-sm-n3{margin-top:-12px!important}.v-application .mt-sm-n4{margin-top:-16px!important}.v-application .mt-sm-n5{margin-top:-20px!important}.v-application .mt-sm-n6{margin-top:-24px!important}.v-application .mt-sm-n7{margin-top:-28px!important}.v-application .mt-sm-n8{margin-top:-32px!important}.v-application .mt-sm-n9{margin-top:-36px!important}.v-application .mt-sm-n10{margin-top:-40px!important}.v-application .mt-sm-n11{margin-top:-44px!important}.v-application .mt-sm-n12{margin-top:-48px!important}.v-application .mr-sm-n1{margin-right:-4px!important}.v-application .mr-sm-n2{margin-right:-8px!important}.v-application .mr-sm-n3{margin-right:-12px!important}.v-application .mr-sm-n4{margin-right:-16px!important}.v-application .mr-sm-n5{margin-right:-20px!important}.v-application .mr-sm-n6{margin-right:-24px!important}.v-application .mr-sm-n7{margin-right:-28px!important}.v-application .mr-sm-n8{margin-right:-32px!important}.v-application .mr-sm-n9{margin-right:-36px!important}.v-application .mr-sm-n10{margin-right:-40px!important}.v-application .mr-sm-n11{margin-right:-44px!important}.v-application .mr-sm-n12{margin-right:-48px!important}.v-application .mb-sm-n1{margin-bottom:-4px!important}.v-application .mb-sm-n2{margin-bottom:-8px!important}.v-application .mb-sm-n3{margin-bottom:-12px!important}.v-application .mb-sm-n4{margin-bottom:-16px!important}.v-application .mb-sm-n5{margin-bottom:-20px!important}.v-application .mb-sm-n6{margin-bottom:-24px!important}.v-application .mb-sm-n7{margin-bottom:-28px!important}.v-application .mb-sm-n8{margin-bottom:-32px!important}.v-application .mb-sm-n9{margin-bottom:-36px!important}.v-application .mb-sm-n10{margin-bottom:-40px!important}.v-application .mb-sm-n11{margin-bottom:-44px!important}.v-application .mb-sm-n12{margin-bottom:-48px!important}.v-application .ml-sm-n1{margin-left:-4px!important}.v-application .ml-sm-n2{margin-left:-8px!important}.v-application .ml-sm-n3{margin-left:-12px!important}.v-application .ml-sm-n4{margin-left:-16px!important}.v-application .ml-sm-n5{margin-left:-20px!important}.v-application .ml-sm-n6{margin-left:-24px!important}.v-application .ml-sm-n7{margin-left:-28px!important}.v-application .ml-sm-n8{margin-left:-32px!important}.v-application .ml-sm-n9{margin-left:-36px!important}.v-application .ml-sm-n10{margin-left:-40px!important}.v-application .ml-sm-n11{margin-left:-44px!important}.v-application .ml-sm-n12{margin-left:-48px!important}.v-application--is-ltr .ms-sm-n1{margin-left:-4px!important}.v-application--is-rtl .ms-sm-n1{margin-right:-4px!important}.v-application--is-ltr .ms-sm-n2{margin-left:-8px!important}.v-application--is-rtl .ms-sm-n2{margin-right:-8px!important}.v-application--is-ltr .ms-sm-n3{margin-left:-12px!important}.v-application--is-rtl .ms-sm-n3{margin-right:-12px!important}.v-application--is-ltr .ms-sm-n4{margin-left:-16px!important}.v-application--is-rtl .ms-sm-n4{margin-right:-16px!important}.v-application--is-ltr .ms-sm-n5{margin-left:-20px!important}.v-application--is-rtl .ms-sm-n5{margin-right:-20px!important}.v-application--is-ltr .ms-sm-n6{margin-left:-24px!important}.v-application--is-rtl .ms-sm-n6{margin-right:-24px!important}.v-application--is-ltr .ms-sm-n7{margin-left:-28px!important}.v-application--is-rtl .ms-sm-n7{margin-right:-28px!important}.v-application--is-ltr .ms-sm-n8{margin-left:-32px!important}.v-application--is-rtl .ms-sm-n8{margin-right:-32px!important}.v-application--is-ltr .ms-sm-n9{margin-left:-36px!important}.v-application--is-rtl .ms-sm-n9{margin-right:-36px!important}.v-application--is-ltr .ms-sm-n10{margin-left:-40px!important}.v-application--is-rtl .ms-sm-n10{margin-right:-40px!important}.v-application--is-ltr .ms-sm-n11{margin-left:-44px!important}.v-application--is-rtl .ms-sm-n11{margin-right:-44px!important}.v-application--is-ltr .ms-sm-n12{margin-left:-48px!important}.v-application--is-rtl .ms-sm-n12{margin-right:-48px!important}.v-application--is-ltr .me-sm-n1{margin-right:-4px!important}.v-application--is-rtl .me-sm-n1{margin-left:-4px!important}.v-application--is-ltr .me-sm-n2{margin-right:-8px!important}.v-application--is-rtl .me-sm-n2{margin-left:-8px!important}.v-application--is-ltr .me-sm-n3{margin-right:-12px!important}.v-application--is-rtl .me-sm-n3{margin-left:-12px!important}.v-application--is-ltr .me-sm-n4{margin-right:-16px!important}.v-application--is-rtl .me-sm-n4{margin-left:-16px!important}.v-application--is-ltr .me-sm-n5{margin-right:-20px!important}.v-application--is-rtl .me-sm-n5{margin-left:-20px!important}.v-application--is-ltr .me-sm-n6{margin-right:-24px!important}.v-application--is-rtl .me-sm-n6{margin-left:-24px!important}.v-application--is-ltr .me-sm-n7{margin-right:-28px!important}.v-application--is-rtl .me-sm-n7{margin-left:-28px!important}.v-application--is-ltr .me-sm-n8{margin-right:-32px!important}.v-application--is-rtl .me-sm-n8{margin-left:-32px!important}.v-application--is-ltr .me-sm-n9{margin-right:-36px!important}.v-application--is-rtl .me-sm-n9{margin-left:-36px!important}.v-application--is-ltr .me-sm-n10{margin-right:-40px!important}.v-application--is-rtl .me-sm-n10{margin-left:-40px!important}.v-application--is-ltr .me-sm-n11{margin-right:-44px!important}.v-application--is-rtl .me-sm-n11{margin-left:-44px!important}.v-application--is-ltr .me-sm-n12{margin-right:-48px!important}.v-application--is-rtl .me-sm-n12{margin-left:-48px!important}.v-application .pa-sm-0{padding:0!important}.v-application .pa-sm-1{padding:4px!important}.v-application .pa-sm-2{padding:8px!important}.v-application .pa-sm-3{padding:12px!important}.v-application .pa-sm-4{padding:16px!important}.v-application .pa-sm-5{padding:20px!important}.v-application .pa-sm-6{padding:24px!important}.v-application .pa-sm-7{padding:28px!important}.v-application .pa-sm-8{padding:32px!important}.v-application .pa-sm-9{padding:36px!important}.v-application .pa-sm-10{padding:40px!important}.v-application .pa-sm-11{padding:44px!important}.v-application .pa-sm-12{padding:48px!important}.v-application .px-sm-0{padding-right:0!important;padding-left:0!important}.v-application .px-sm-1{padding-right:4px!important;padding-left:4px!important}.v-application .px-sm-2{padding-right:8px!important;padding-left:8px!important}.v-application .px-sm-3{padding-right:12px!important;padding-left:12px!important}.v-application .px-sm-4{padding-right:16px!important;padding-left:16px!important}.v-application .px-sm-5{padding-right:20px!important;padding-left:20px!important}.v-application .px-sm-6{padding-right:24px!important;padding-left:24px!important}.v-application .px-sm-7{padding-right:28px!important;padding-left:28px!important}.v-application .px-sm-8{padding-right:32px!important;padding-left:32px!important}.v-application .px-sm-9{padding-right:36px!important;padding-left:36px!important}.v-application .px-sm-10{padding-right:40px!important;padding-left:40px!important}.v-application .px-sm-11{padding-right:44px!important;padding-left:44px!important}.v-application .px-sm-12{padding-right:48px!important;padding-left:48px!important}.v-application .py-sm-0{padding-top:0!important;padding-bottom:0!important}.v-application .py-sm-1{padding-top:4px!important;padding-bottom:4px!important}.v-application .py-sm-2{padding-top:8px!important;padding-bottom:8px!important}.v-application .py-sm-3{padding-top:12px!important;padding-bottom:12px!important}.v-application .py-sm-4{padding-top:16px!important;padding-bottom:16px!important}.v-application .py-sm-5{padding-top:20px!important;padding-bottom:20px!important}.v-application .py-sm-6{padding-top:24px!important;padding-bottom:24px!important}.v-application .py-sm-7{padding-top:28px!important;padding-bottom:28px!important}.v-application .py-sm-8{padding-top:32px!important;padding-bottom:32px!important}.v-application .py-sm-9{padding-top:36px!important;padding-bottom:36px!important}.v-application .py-sm-10{padding-top:40px!important;padding-bottom:40px!important}.v-application .py-sm-11{padding-top:44px!important;padding-bottom:44px!important}.v-application .py-sm-12{padding-top:48px!important;padding-bottom:48px!important}.v-application .pt-sm-0{padding-top:0!important}.v-application .pt-sm-1{padding-top:4px!important}.v-application .pt-sm-2{padding-top:8px!important}.v-application .pt-sm-3{padding-top:12px!important}.v-application .pt-sm-4{padding-top:16px!important}.v-application .pt-sm-5{padding-top:20px!important}.v-application .pt-sm-6{padding-top:24px!important}.v-application .pt-sm-7{padding-top:28px!important}.v-application .pt-sm-8{padding-top:32px!important}.v-application .pt-sm-9{padding-top:36px!important}.v-application .pt-sm-10{padding-top:40px!important}.v-application .pt-sm-11{padding-top:44px!important}.v-application .pt-sm-12{padding-top:48px!important}.v-application .pr-sm-0{padding-right:0!important}.v-application .pr-sm-1{padding-right:4px!important}.v-application .pr-sm-2{padding-right:8px!important}.v-application .pr-sm-3{padding-right:12px!important}.v-application .pr-sm-4{padding-right:16px!important}.v-application .pr-sm-5{padding-right:20px!important}.v-application .pr-sm-6{padding-right:24px!important}.v-application .pr-sm-7{padding-right:28px!important}.v-application .pr-sm-8{padding-right:32px!important}.v-application .pr-sm-9{padding-right:36px!important}.v-application .pr-sm-10{padding-right:40px!important}.v-application .pr-sm-11{padding-right:44px!important}.v-application .pr-sm-12{padding-right:48px!important}.v-application .pb-sm-0{padding-bottom:0!important}.v-application .pb-sm-1{padding-bottom:4px!important}.v-application .pb-sm-2{padding-bottom:8px!important}.v-application .pb-sm-3{padding-bottom:12px!important}.v-application .pb-sm-4{padding-bottom:16px!important}.v-application .pb-sm-5{padding-bottom:20px!important}.v-application .pb-sm-6{padding-bottom:24px!important}.v-application .pb-sm-7{padding-bottom:28px!important}.v-application .pb-sm-8{padding-bottom:32px!important}.v-application .pb-sm-9{padding-bottom:36px!important}.v-application .pb-sm-10{padding-bottom:40px!important}.v-application .pb-sm-11{padding-bottom:44px!important}.v-application .pb-sm-12{padding-bottom:48px!important}.v-application .pl-sm-0{padding-left:0!important}.v-application .pl-sm-1{padding-left:4px!important}.v-application .pl-sm-2{padding-left:8px!important}.v-application .pl-sm-3{padding-left:12px!important}.v-application .pl-sm-4{padding-left:16px!important}.v-application .pl-sm-5{padding-left:20px!important}.v-application .pl-sm-6{padding-left:24px!important}.v-application .pl-sm-7{padding-left:28px!important}.v-application .pl-sm-8{padding-left:32px!important}.v-application .pl-sm-9{padding-left:36px!important}.v-application .pl-sm-10{padding-left:40px!important}.v-application .pl-sm-11{padding-left:44px!important}.v-application .pl-sm-12{padding-left:48px!important}.v-application--is-ltr .ps-sm-0{padding-left:0!important}.v-application--is-rtl .ps-sm-0{padding-right:0!important}.v-application--is-ltr .ps-sm-1{padding-left:4px!important}.v-application--is-rtl .ps-sm-1{padding-right:4px!important}.v-application--is-ltr .ps-sm-2{padding-left:8px!important}.v-application--is-rtl .ps-sm-2{padding-right:8px!important}.v-application--is-ltr .ps-sm-3{padding-left:12px!important}.v-application--is-rtl .ps-sm-3{padding-right:12px!important}.v-application--is-ltr .ps-sm-4{padding-left:16px!important}.v-application--is-rtl .ps-sm-4{padding-right:16px!important}.v-application--is-ltr .ps-sm-5{padding-left:20px!important}.v-application--is-rtl .ps-sm-5{padding-right:20px!important}.v-application--is-ltr .ps-sm-6{padding-left:24px!important}.v-application--is-rtl .ps-sm-6{padding-right:24px!important}.v-application--is-ltr .ps-sm-7{padding-left:28px!important}.v-application--is-rtl .ps-sm-7{padding-right:28px!important}.v-application--is-ltr .ps-sm-8{padding-left:32px!important}.v-application--is-rtl .ps-sm-8{padding-right:32px!important}.v-application--is-ltr .ps-sm-9{padding-left:36px!important}.v-application--is-rtl .ps-sm-9{padding-right:36px!important}.v-application--is-ltr .ps-sm-10{padding-left:40px!important}.v-application--is-rtl .ps-sm-10{padding-right:40px!important}.v-application--is-ltr .ps-sm-11{padding-left:44px!important}.v-application--is-rtl .ps-sm-11{padding-right:44px!important}.v-application--is-ltr .ps-sm-12{padding-left:48px!important}.v-application--is-rtl .ps-sm-12{padding-right:48px!important}.v-application--is-ltr .pe-sm-0{padding-right:0!important}.v-application--is-rtl .pe-sm-0{padding-left:0!important}.v-application--is-ltr .pe-sm-1{padding-right:4px!important}.v-application--is-rtl .pe-sm-1{padding-left:4px!important}.v-application--is-ltr .pe-sm-2{padding-right:8px!important}.v-application--is-rtl .pe-sm-2{padding-left:8px!important}.v-application--is-ltr .pe-sm-3{padding-right:12px!important}.v-application--is-rtl .pe-sm-3{padding-left:12px!important}.v-application--is-ltr .pe-sm-4{padding-right:16px!important}.v-application--is-rtl .pe-sm-4{padding-left:16px!important}.v-application--is-ltr .pe-sm-5{padding-right:20px!important}.v-application--is-rtl .pe-sm-5{padding-left:20px!important}.v-application--is-ltr .pe-sm-6{padding-right:24px!important}.v-application--is-rtl .pe-sm-6{padding-left:24px!important}.v-application--is-ltr .pe-sm-7{padding-right:28px!important}.v-application--is-rtl .pe-sm-7{padding-left:28px!important}.v-application--is-ltr .pe-sm-8{padding-right:32px!important}.v-application--is-rtl .pe-sm-8{padding-left:32px!important}.v-application--is-ltr .pe-sm-9{padding-right:36px!important}.v-application--is-rtl .pe-sm-9{padding-left:36px!important}.v-application--is-ltr .pe-sm-10{padding-right:40px!important}.v-application--is-rtl .pe-sm-10{padding-left:40px!important}.v-application--is-ltr .pe-sm-11{padding-right:44px!important}.v-application--is-rtl .pe-sm-11{padding-left:44px!important}.v-application--is-ltr .pe-sm-12{padding-right:48px!important}.v-application--is-rtl .pe-sm-12{padding-left:48px!important}.v-application .text-sm-left{text-align:left!important}.v-application .text-sm-right{text-align:right!important}.v-application .text-sm-center{text-align:center!important}.v-application .text-sm-justify{text-align:justify!important}.v-application .text-sm-start{text-align:start!important}.v-application .text-sm-end{text-align:end!important}}@media (min-width:960px){.v-application .d-md-none{display:none!important}.v-application .d-md-inline{display:inline!important}.v-application .d-md-inline-block{display:inline-block!important}.v-application .d-md-block{display:block!important}.v-application .d-md-table{display:table!important}.v-application .d-md-table-row{display:table-row!important}.v-application .d-md-table-cell{display:table-cell!important}.v-application .d-md-flex{display:flex!important}.v-application .d-md-inline-flex{display:inline-flex!important}.v-application .float-md-none{float:none!important}.v-application .float-md-left{float:left!important}.v-application .float-md-right{float:right!important}.v-application .flex-md-fill{flex:1 1 auto!important}.v-application .flex-md-row{flex-direction:row!important}.v-application .flex-md-column{flex-direction:column!important}.v-application .flex-md-row-reverse{flex-direction:row-reverse!important}.v-application .flex-md-column-reverse{flex-direction:column-reverse!important}.v-application .flex-md-grow-0{flex-grow:0!important}.v-application .flex-md-grow-1{flex-grow:1!important}.v-application .flex-md-shrink-0{flex-shrink:0!important}.v-application .flex-md-shrink-1{flex-shrink:1!important}.v-application .flex-md-wrap{flex-wrap:wrap!important}.v-application .flex-md-nowrap{flex-wrap:nowrap!important}.v-application .flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.v-application .justify-md-start{justify-content:flex-start!important}.v-application .justify-md-end{justify-content:flex-end!important}.v-application .justify-md-center{justify-content:center!important}.v-application .justify-md-space-between{justify-content:space-between!important}.v-application .justify-md-space-around{justify-content:space-around!important}.v-application .align-md-start{align-items:flex-start!important}.v-application .align-md-end{align-items:flex-end!important}.v-application .align-md-center{align-items:center!important}.v-application .align-md-baseline{align-items:baseline!important}.v-application .align-md-stretch{align-items:stretch!important}.v-application .align-content-md-start{align-content:flex-start!important}.v-application .align-content-md-end{align-content:flex-end!important}.v-application .align-content-md-center{align-content:center!important}.v-application .align-content-md-space-between{align-content:space-between!important}.v-application .align-content-md-space-around{align-content:space-around!important}.v-application .align-content-md-stretch{align-content:stretch!important}.v-application .align-self-md-auto{align-self:auto!important}.v-application .align-self-md-start{align-self:flex-start!important}.v-application .align-self-md-end{align-self:flex-end!important}.v-application .align-self-md-center{align-self:center!important}.v-application .align-self-md-baseline{align-self:baseline!important}.v-application .align-self-md-stretch{align-self:stretch!important}.v-application .order-md-first{order:-1!important}.v-application .order-md-0{order:0!important}.v-application .order-md-1{order:1!important}.v-application .order-md-2{order:2!important}.v-application .order-md-3{order:3!important}.v-application .order-md-4{order:4!important}.v-application .order-md-5{order:5!important}.v-application .order-md-6{order:6!important}.v-application .order-md-7{order:7!important}.v-application .order-md-8{order:8!important}.v-application .order-md-9{order:9!important}.v-application .order-md-10{order:10!important}.v-application .order-md-11{order:11!important}.v-application .order-md-12{order:12!important}.v-application .order-md-last{order:13!important}.v-application .ma-md-0{margin:0!important}.v-application .ma-md-1{margin:4px!important}.v-application .ma-md-2{margin:8px!important}.v-application .ma-md-3{margin:12px!important}.v-application .ma-md-4{margin:16px!important}.v-application .ma-md-5{margin:20px!important}.v-application .ma-md-6{margin:24px!important}.v-application .ma-md-7{margin:28px!important}.v-application .ma-md-8{margin:32px!important}.v-application .ma-md-9{margin:36px!important}.v-application .ma-md-10{margin:40px!important}.v-application .ma-md-11{margin:44px!important}.v-application .ma-md-12{margin:48px!important}.v-application .ma-md-auto{margin:auto!important}.v-application .mx-md-0{margin-right:0!important;margin-left:0!important}.v-application .mx-md-1{margin-right:4px!important;margin-left:4px!important}.v-application .mx-md-2{margin-right:8px!important;margin-left:8px!important}.v-application .mx-md-3{margin-right:12px!important;margin-left:12px!important}.v-application .mx-md-4{margin-right:16px!important;margin-left:16px!important}.v-application .mx-md-5{margin-right:20px!important;margin-left:20px!important}.v-application .mx-md-6{margin-right:24px!important;margin-left:24px!important}.v-application .mx-md-7{margin-right:28px!important;margin-left:28px!important}.v-application .mx-md-8{margin-right:32px!important;margin-left:32px!important}.v-application .mx-md-9{margin-right:36px!important;margin-left:36px!important}.v-application .mx-md-10{margin-right:40px!important;margin-left:40px!important}.v-application .mx-md-11{margin-right:44px!important;margin-left:44px!important}.v-application .mx-md-12{margin-right:48px!important;margin-left:48px!important}.v-application .mx-md-auto{margin-right:auto!important;margin-left:auto!important}.v-application .my-md-0{margin-top:0!important;margin-bottom:0!important}.v-application .my-md-1{margin-top:4px!important;margin-bottom:4px!important}.v-application .my-md-2{margin-top:8px!important;margin-bottom:8px!important}.v-application .my-md-3{margin-top:12px!important;margin-bottom:12px!important}.v-application .my-md-4{margin-top:16px!important;margin-bottom:16px!important}.v-application .my-md-5{margin-top:20px!important;margin-bottom:20px!important}.v-application .my-md-6{margin-top:24px!important;margin-bottom:24px!important}.v-application .my-md-7{margin-top:28px!important;margin-bottom:28px!important}.v-application .my-md-8{margin-top:32px!important;margin-bottom:32px!important}.v-application .my-md-9{margin-top:36px!important;margin-bottom:36px!important}.v-application .my-md-10{margin-top:40px!important;margin-bottom:40px!important}.v-application .my-md-11{margin-top:44px!important;margin-bottom:44px!important}.v-application .my-md-12{margin-top:48px!important;margin-bottom:48px!important}.v-application .my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.v-application .mt-md-0{margin-top:0!important}.v-application .mt-md-1{margin-top:4px!important}.v-application .mt-md-2{margin-top:8px!important}.v-application .mt-md-3{margin-top:12px!important}.v-application .mt-md-4{margin-top:16px!important}.v-application .mt-md-5{margin-top:20px!important}.v-application .mt-md-6{margin-top:24px!important}.v-application .mt-md-7{margin-top:28px!important}.v-application .mt-md-8{margin-top:32px!important}.v-application .mt-md-9{margin-top:36px!important}.v-application .mt-md-10{margin-top:40px!important}.v-application .mt-md-11{margin-top:44px!important}.v-application .mt-md-12{margin-top:48px!important}.v-application .mt-md-auto{margin-top:auto!important}.v-application .mr-md-0{margin-right:0!important}.v-application .mr-md-1{margin-right:4px!important}.v-application .mr-md-2{margin-right:8px!important}.v-application .mr-md-3{margin-right:12px!important}.v-application .mr-md-4{margin-right:16px!important}.v-application .mr-md-5{margin-right:20px!important}.v-application .mr-md-6{margin-right:24px!important}.v-application .mr-md-7{margin-right:28px!important}.v-application .mr-md-8{margin-right:32px!important}.v-application .mr-md-9{margin-right:36px!important}.v-application .mr-md-10{margin-right:40px!important}.v-application .mr-md-11{margin-right:44px!important}.v-application .mr-md-12{margin-right:48px!important}.v-application .mr-md-auto{margin-right:auto!important}.v-application .mb-md-0{margin-bottom:0!important}.v-application .mb-md-1{margin-bottom:4px!important}.v-application .mb-md-2{margin-bottom:8px!important}.v-application .mb-md-3{margin-bottom:12px!important}.v-application .mb-md-4{margin-bottom:16px!important}.v-application .mb-md-5{margin-bottom:20px!important}.v-application .mb-md-6{margin-bottom:24px!important}.v-application .mb-md-7{margin-bottom:28px!important}.v-application .mb-md-8{margin-bottom:32px!important}.v-application .mb-md-9{margin-bottom:36px!important}.v-application .mb-md-10{margin-bottom:40px!important}.v-application .mb-md-11{margin-bottom:44px!important}.v-application .mb-md-12{margin-bottom:48px!important}.v-application .mb-md-auto{margin-bottom:auto!important}.v-application .ml-md-0{margin-left:0!important}.v-application .ml-md-1{margin-left:4px!important}.v-application .ml-md-2{margin-left:8px!important}.v-application .ml-md-3{margin-left:12px!important}.v-application .ml-md-4{margin-left:16px!important}.v-application .ml-md-5{margin-left:20px!important}.v-application .ml-md-6{margin-left:24px!important}.v-application .ml-md-7{margin-left:28px!important}.v-application .ml-md-8{margin-left:32px!important}.v-application .ml-md-9{margin-left:36px!important}.v-application .ml-md-10{margin-left:40px!important}.v-application .ml-md-11{margin-left:44px!important}.v-application .ml-md-12{margin-left:48px!important}.v-application .ml-md-auto{margin-left:auto!important}.v-application--is-ltr .ms-md-0{margin-left:0!important}.v-application--is-rtl .ms-md-0{margin-right:0!important}.v-application--is-ltr .ms-md-1{margin-left:4px!important}.v-application--is-rtl .ms-md-1{margin-right:4px!important}.v-application--is-ltr .ms-md-2{margin-left:8px!important}.v-application--is-rtl .ms-md-2{margin-right:8px!important}.v-application--is-ltr .ms-md-3{margin-left:12px!important}.v-application--is-rtl .ms-md-3{margin-right:12px!important}.v-application--is-ltr .ms-md-4{margin-left:16px!important}.v-application--is-rtl .ms-md-4{margin-right:16px!important}.v-application--is-ltr .ms-md-5{margin-left:20px!important}.v-application--is-rtl .ms-md-5{margin-right:20px!important}.v-application--is-ltr .ms-md-6{margin-left:24px!important}.v-application--is-rtl .ms-md-6{margin-right:24px!important}.v-application--is-ltr .ms-md-7{margin-left:28px!important}.v-application--is-rtl .ms-md-7{margin-right:28px!important}.v-application--is-ltr .ms-md-8{margin-left:32px!important}.v-application--is-rtl .ms-md-8{margin-right:32px!important}.v-application--is-ltr .ms-md-9{margin-left:36px!important}.v-application--is-rtl .ms-md-9{margin-right:36px!important}.v-application--is-ltr .ms-md-10{margin-left:40px!important}.v-application--is-rtl .ms-md-10{margin-right:40px!important}.v-application--is-ltr .ms-md-11{margin-left:44px!important}.v-application--is-rtl .ms-md-11{margin-right:44px!important}.v-application--is-ltr .ms-md-12{margin-left:48px!important}.v-application--is-rtl .ms-md-12{margin-right:48px!important}.v-application--is-ltr .ms-md-auto{margin-left:auto!important}.v-application--is-rtl .ms-md-auto{margin-right:auto!important}.v-application--is-ltr .me-md-0{margin-right:0!important}.v-application--is-rtl .me-md-0{margin-left:0!important}.v-application--is-ltr .me-md-1{margin-right:4px!important}.v-application--is-rtl .me-md-1{margin-left:4px!important}.v-application--is-ltr .me-md-2{margin-right:8px!important}.v-application--is-rtl .me-md-2{margin-left:8px!important}.v-application--is-ltr .me-md-3{margin-right:12px!important}.v-application--is-rtl .me-md-3{margin-left:12px!important}.v-application--is-ltr .me-md-4{margin-right:16px!important}.v-application--is-rtl .me-md-4{margin-left:16px!important}.v-application--is-ltr .me-md-5{margin-right:20px!important}.v-application--is-rtl .me-md-5{margin-left:20px!important}.v-application--is-ltr .me-md-6{margin-right:24px!important}.v-application--is-rtl .me-md-6{margin-left:24px!important}.v-application--is-ltr .me-md-7{margin-right:28px!important}.v-application--is-rtl .me-md-7{margin-left:28px!important}.v-application--is-ltr .me-md-8{margin-right:32px!important}.v-application--is-rtl .me-md-8{margin-left:32px!important}.v-application--is-ltr .me-md-9{margin-right:36px!important}.v-application--is-rtl .me-md-9{margin-left:36px!important}.v-application--is-ltr .me-md-10{margin-right:40px!important}.v-application--is-rtl .me-md-10{margin-left:40px!important}.v-application--is-ltr .me-md-11{margin-right:44px!important}.v-application--is-rtl .me-md-11{margin-left:44px!important}.v-application--is-ltr .me-md-12{margin-right:48px!important}.v-application--is-rtl .me-md-12{margin-left:48px!important}.v-application--is-ltr .me-md-auto{margin-right:auto!important}.v-application--is-rtl .me-md-auto{margin-left:auto!important}.v-application .ma-md-n1{margin:-4px!important}.v-application .ma-md-n2{margin:-8px!important}.v-application .ma-md-n3{margin:-12px!important}.v-application .ma-md-n4{margin:-16px!important}.v-application .ma-md-n5{margin:-20px!important}.v-application .ma-md-n6{margin:-24px!important}.v-application .ma-md-n7{margin:-28px!important}.v-application .ma-md-n8{margin:-32px!important}.v-application .ma-md-n9{margin:-36px!important}.v-application .ma-md-n10{margin:-40px!important}.v-application .ma-md-n11{margin:-44px!important}.v-application .ma-md-n12{margin:-48px!important}.v-application .mx-md-n1{margin-right:-4px!important;margin-left:-4px!important}.v-application .mx-md-n2{margin-right:-8px!important;margin-left:-8px!important}.v-application .mx-md-n3{margin-right:-12px!important;margin-left:-12px!important}.v-application .mx-md-n4{margin-right:-16px!important;margin-left:-16px!important}.v-application .mx-md-n5{margin-right:-20px!important;margin-left:-20px!important}.v-application .mx-md-n6{margin-right:-24px!important;margin-left:-24px!important}.v-application .mx-md-n7{margin-right:-28px!important;margin-left:-28px!important}.v-application .mx-md-n8{margin-right:-32px!important;margin-left:-32px!important}.v-application .mx-md-n9{margin-right:-36px!important;margin-left:-36px!important}.v-application .mx-md-n10{margin-right:-40px!important;margin-left:-40px!important}.v-application .mx-md-n11{margin-right:-44px!important;margin-left:-44px!important}.v-application .mx-md-n12{margin-right:-48px!important;margin-left:-48px!important}.v-application .my-md-n1{margin-top:-4px!important;margin-bottom:-4px!important}.v-application .my-md-n2{margin-top:-8px!important;margin-bottom:-8px!important}.v-application .my-md-n3{margin-top:-12px!important;margin-bottom:-12px!important}.v-application .my-md-n4{margin-top:-16px!important;margin-bottom:-16px!important}.v-application .my-md-n5{margin-top:-20px!important;margin-bottom:-20px!important}.v-application .my-md-n6{margin-top:-24px!important;margin-bottom:-24px!important}.v-application .my-md-n7{margin-top:-28px!important;margin-bottom:-28px!important}.v-application .my-md-n8{margin-top:-32px!important;margin-bottom:-32px!important}.v-application .my-md-n9{margin-top:-36px!important;margin-bottom:-36px!important}.v-application .my-md-n10{margin-top:-40px!important;margin-bottom:-40px!important}.v-application .my-md-n11{margin-top:-44px!important;margin-bottom:-44px!important}.v-application .my-md-n12{margin-top:-48px!important;margin-bottom:-48px!important}.v-application .mt-md-n1{margin-top:-4px!important}.v-application .mt-md-n2{margin-top:-8px!important}.v-application .mt-md-n3{margin-top:-12px!important}.v-application .mt-md-n4{margin-top:-16px!important}.v-application .mt-md-n5{margin-top:-20px!important}.v-application .mt-md-n6{margin-top:-24px!important}.v-application .mt-md-n7{margin-top:-28px!important}.v-application .mt-md-n8{margin-top:-32px!important}.v-application .mt-md-n9{margin-top:-36px!important}.v-application .mt-md-n10{margin-top:-40px!important}.v-application .mt-md-n11{margin-top:-44px!important}.v-application .mt-md-n12{margin-top:-48px!important}.v-application .mr-md-n1{margin-right:-4px!important}.v-application .mr-md-n2{margin-right:-8px!important}.v-application .mr-md-n3{margin-right:-12px!important}.v-application .mr-md-n4{margin-right:-16px!important}.v-application .mr-md-n5{margin-right:-20px!important}.v-application .mr-md-n6{margin-right:-24px!important}.v-application .mr-md-n7{margin-right:-28px!important}.v-application .mr-md-n8{margin-right:-32px!important}.v-application .mr-md-n9{margin-right:-36px!important}.v-application .mr-md-n10{margin-right:-40px!important}.v-application .mr-md-n11{margin-right:-44px!important}.v-application .mr-md-n12{margin-right:-48px!important}.v-application .mb-md-n1{margin-bottom:-4px!important}.v-application .mb-md-n2{margin-bottom:-8px!important}.v-application .mb-md-n3{margin-bottom:-12px!important}.v-application .mb-md-n4{margin-bottom:-16px!important}.v-application .mb-md-n5{margin-bottom:-20px!important}.v-application .mb-md-n6{margin-bottom:-24px!important}.v-application .mb-md-n7{margin-bottom:-28px!important}.v-application .mb-md-n8{margin-bottom:-32px!important}.v-application .mb-md-n9{margin-bottom:-36px!important}.v-application .mb-md-n10{margin-bottom:-40px!important}.v-application .mb-md-n11{margin-bottom:-44px!important}.v-application .mb-md-n12{margin-bottom:-48px!important}.v-application .ml-md-n1{margin-left:-4px!important}.v-application .ml-md-n2{margin-left:-8px!important}.v-application .ml-md-n3{margin-left:-12px!important}.v-application .ml-md-n4{margin-left:-16px!important}.v-application .ml-md-n5{margin-left:-20px!important}.v-application .ml-md-n6{margin-left:-24px!important}.v-application .ml-md-n7{margin-left:-28px!important}.v-application .ml-md-n8{margin-left:-32px!important}.v-application .ml-md-n9{margin-left:-36px!important}.v-application .ml-md-n10{margin-left:-40px!important}.v-application .ml-md-n11{margin-left:-44px!important}.v-application .ml-md-n12{margin-left:-48px!important}.v-application--is-ltr .ms-md-n1{margin-left:-4px!important}.v-application--is-rtl .ms-md-n1{margin-right:-4px!important}.v-application--is-ltr .ms-md-n2{margin-left:-8px!important}.v-application--is-rtl .ms-md-n2{margin-right:-8px!important}.v-application--is-ltr .ms-md-n3{margin-left:-12px!important}.v-application--is-rtl .ms-md-n3{margin-right:-12px!important}.v-application--is-ltr .ms-md-n4{margin-left:-16px!important}.v-application--is-rtl .ms-md-n4{margin-right:-16px!important}.v-application--is-ltr .ms-md-n5{margin-left:-20px!important}.v-application--is-rtl .ms-md-n5{margin-right:-20px!important}.v-application--is-ltr .ms-md-n6{margin-left:-24px!important}.v-application--is-rtl .ms-md-n6{margin-right:-24px!important}.v-application--is-ltr .ms-md-n7{margin-left:-28px!important}.v-application--is-rtl .ms-md-n7{margin-right:-28px!important}.v-application--is-ltr .ms-md-n8{margin-left:-32px!important}.v-application--is-rtl .ms-md-n8{margin-right:-32px!important}.v-application--is-ltr .ms-md-n9{margin-left:-36px!important}.v-application--is-rtl .ms-md-n9{margin-right:-36px!important}.v-application--is-ltr .ms-md-n10{margin-left:-40px!important}.v-application--is-rtl .ms-md-n10{margin-right:-40px!important}.v-application--is-ltr .ms-md-n11{margin-left:-44px!important}.v-application--is-rtl .ms-md-n11{margin-right:-44px!important}.v-application--is-ltr .ms-md-n12{margin-left:-48px!important}.v-application--is-rtl .ms-md-n12{margin-right:-48px!important}.v-application--is-ltr .me-md-n1{margin-right:-4px!important}.v-application--is-rtl .me-md-n1{margin-left:-4px!important}.v-application--is-ltr .me-md-n2{margin-right:-8px!important}.v-application--is-rtl .me-md-n2{margin-left:-8px!important}.v-application--is-ltr .me-md-n3{margin-right:-12px!important}.v-application--is-rtl .me-md-n3{margin-left:-12px!important}.v-application--is-ltr .me-md-n4{margin-right:-16px!important}.v-application--is-rtl .me-md-n4{margin-left:-16px!important}.v-application--is-ltr .me-md-n5{margin-right:-20px!important}.v-application--is-rtl .me-md-n5{margin-left:-20px!important}.v-application--is-ltr .me-md-n6{margin-right:-24px!important}.v-application--is-rtl .me-md-n6{margin-left:-24px!important}.v-application--is-ltr .me-md-n7{margin-right:-28px!important}.v-application--is-rtl .me-md-n7{margin-left:-28px!important}.v-application--is-ltr .me-md-n8{margin-right:-32px!important}.v-application--is-rtl .me-md-n8{margin-left:-32px!important}.v-application--is-ltr .me-md-n9{margin-right:-36px!important}.v-application--is-rtl .me-md-n9{margin-left:-36px!important}.v-application--is-ltr .me-md-n10{margin-right:-40px!important}.v-application--is-rtl .me-md-n10{margin-left:-40px!important}.v-application--is-ltr .me-md-n11{margin-right:-44px!important}.v-application--is-rtl .me-md-n11{margin-left:-44px!important}.v-application--is-ltr .me-md-n12{margin-right:-48px!important}.v-application--is-rtl .me-md-n12{margin-left:-48px!important}.v-application .pa-md-0{padding:0!important}.v-application .pa-md-1{padding:4px!important}.v-application .pa-md-2{padding:8px!important}.v-application .pa-md-3{padding:12px!important}.v-application .pa-md-4{padding:16px!important}.v-application .pa-md-5{padding:20px!important}.v-application .pa-md-6{padding:24px!important}.v-application .pa-md-7{padding:28px!important}.v-application .pa-md-8{padding:32px!important}.v-application .pa-md-9{padding:36px!important}.v-application .pa-md-10{padding:40px!important}.v-application .pa-md-11{padding:44px!important}.v-application .pa-md-12{padding:48px!important}.v-application .px-md-0{padding-right:0!important;padding-left:0!important}.v-application .px-md-1{padding-right:4px!important;padding-left:4px!important}.v-application .px-md-2{padding-right:8px!important;padding-left:8px!important}.v-application .px-md-3{padding-right:12px!important;padding-left:12px!important}.v-application .px-md-4{padding-right:16px!important;padding-left:16px!important}.v-application .px-md-5{padding-right:20px!important;padding-left:20px!important}.v-application .px-md-6{padding-right:24px!important;padding-left:24px!important}.v-application .px-md-7{padding-right:28px!important;padding-left:28px!important}.v-application .px-md-8{padding-right:32px!important;padding-left:32px!important}.v-application .px-md-9{padding-right:36px!important;padding-left:36px!important}.v-application .px-md-10{padding-right:40px!important;padding-left:40px!important}.v-application .px-md-11{padding-right:44px!important;padding-left:44px!important}.v-application .px-md-12{padding-right:48px!important;padding-left:48px!important}.v-application .py-md-0{padding-top:0!important;padding-bottom:0!important}.v-application .py-md-1{padding-top:4px!important;padding-bottom:4px!important}.v-application .py-md-2{padding-top:8px!important;padding-bottom:8px!important}.v-application .py-md-3{padding-top:12px!important;padding-bottom:12px!important}.v-application .py-md-4{padding-top:16px!important;padding-bottom:16px!important}.v-application .py-md-5{padding-top:20px!important;padding-bottom:20px!important}.v-application .py-md-6{padding-top:24px!important;padding-bottom:24px!important}.v-application .py-md-7{padding-top:28px!important;padding-bottom:28px!important}.v-application .py-md-8{padding-top:32px!important;padding-bottom:32px!important}.v-application .py-md-9{padding-top:36px!important;padding-bottom:36px!important}.v-application .py-md-10{padding-top:40px!important;padding-bottom:40px!important}.v-application .py-md-11{padding-top:44px!important;padding-bottom:44px!important}.v-application .py-md-12{padding-top:48px!important;padding-bottom:48px!important}.v-application .pt-md-0{padding-top:0!important}.v-application .pt-md-1{padding-top:4px!important}.v-application .pt-md-2{padding-top:8px!important}.v-application .pt-md-3{padding-top:12px!important}.v-application .pt-md-4{padding-top:16px!important}.v-application .pt-md-5{padding-top:20px!important}.v-application .pt-md-6{padding-top:24px!important}.v-application .pt-md-7{padding-top:28px!important}.v-application .pt-md-8{padding-top:32px!important}.v-application .pt-md-9{padding-top:36px!important}.v-application .pt-md-10{padding-top:40px!important}.v-application .pt-md-11{padding-top:44px!important}.v-application .pt-md-12{padding-top:48px!important}.v-application .pr-md-0{padding-right:0!important}.v-application .pr-md-1{padding-right:4px!important}.v-application .pr-md-2{padding-right:8px!important}.v-application .pr-md-3{padding-right:12px!important}.v-application .pr-md-4{padding-right:16px!important}.v-application .pr-md-5{padding-right:20px!important}.v-application .pr-md-6{padding-right:24px!important}.v-application .pr-md-7{padding-right:28px!important}.v-application .pr-md-8{padding-right:32px!important}.v-application .pr-md-9{padding-right:36px!important}.v-application .pr-md-10{padding-right:40px!important}.v-application .pr-md-11{padding-right:44px!important}.v-application .pr-md-12{padding-right:48px!important}.v-application .pb-md-0{padding-bottom:0!important}.v-application .pb-md-1{padding-bottom:4px!important}.v-application .pb-md-2{padding-bottom:8px!important}.v-application .pb-md-3{padding-bottom:12px!important}.v-application .pb-md-4{padding-bottom:16px!important}.v-application .pb-md-5{padding-bottom:20px!important}.v-application .pb-md-6{padding-bottom:24px!important}.v-application .pb-md-7{padding-bottom:28px!important}.v-application .pb-md-8{padding-bottom:32px!important}.v-application .pb-md-9{padding-bottom:36px!important}.v-application .pb-md-10{padding-bottom:40px!important}.v-application .pb-md-11{padding-bottom:44px!important}.v-application .pb-md-12{padding-bottom:48px!important}.v-application .pl-md-0{padding-left:0!important}.v-application .pl-md-1{padding-left:4px!important}.v-application .pl-md-2{padding-left:8px!important}.v-application .pl-md-3{padding-left:12px!important}.v-application .pl-md-4{padding-left:16px!important}.v-application .pl-md-5{padding-left:20px!important}.v-application .pl-md-6{padding-left:24px!important}.v-application .pl-md-7{padding-left:28px!important}.v-application .pl-md-8{padding-left:32px!important}.v-application .pl-md-9{padding-left:36px!important}.v-application .pl-md-10{padding-left:40px!important}.v-application .pl-md-11{padding-left:44px!important}.v-application .pl-md-12{padding-left:48px!important}.v-application--is-ltr .ps-md-0{padding-left:0!important}.v-application--is-rtl .ps-md-0{padding-right:0!important}.v-application--is-ltr .ps-md-1{padding-left:4px!important}.v-application--is-rtl .ps-md-1{padding-right:4px!important}.v-application--is-ltr .ps-md-2{padding-left:8px!important}.v-application--is-rtl .ps-md-2{padding-right:8px!important}.v-application--is-ltr .ps-md-3{padding-left:12px!important}.v-application--is-rtl .ps-md-3{padding-right:12px!important}.v-application--is-ltr .ps-md-4{padding-left:16px!important}.v-application--is-rtl .ps-md-4{padding-right:16px!important}.v-application--is-ltr .ps-md-5{padding-left:20px!important}.v-application--is-rtl .ps-md-5{padding-right:20px!important}.v-application--is-ltr .ps-md-6{padding-left:24px!important}.v-application--is-rtl .ps-md-6{padding-right:24px!important}.v-application--is-ltr .ps-md-7{padding-left:28px!important}.v-application--is-rtl .ps-md-7{padding-right:28px!important}.v-application--is-ltr .ps-md-8{padding-left:32px!important}.v-application--is-rtl .ps-md-8{padding-right:32px!important}.v-application--is-ltr .ps-md-9{padding-left:36px!important}.v-application--is-rtl .ps-md-9{padding-right:36px!important}.v-application--is-ltr .ps-md-10{padding-left:40px!important}.v-application--is-rtl .ps-md-10{padding-right:40px!important}.v-application--is-ltr .ps-md-11{padding-left:44px!important}.v-application--is-rtl .ps-md-11{padding-right:44px!important}.v-application--is-ltr .ps-md-12{padding-left:48px!important}.v-application--is-rtl .ps-md-12{padding-right:48px!important}.v-application--is-ltr .pe-md-0{padding-right:0!important}.v-application--is-rtl .pe-md-0{padding-left:0!important}.v-application--is-ltr .pe-md-1{padding-right:4px!important}.v-application--is-rtl .pe-md-1{padding-left:4px!important}.v-application--is-ltr .pe-md-2{padding-right:8px!important}.v-application--is-rtl .pe-md-2{padding-left:8px!important}.v-application--is-ltr .pe-md-3{padding-right:12px!important}.v-application--is-rtl .pe-md-3{padding-left:12px!important}.v-application--is-ltr .pe-md-4{padding-right:16px!important}.v-application--is-rtl .pe-md-4{padding-left:16px!important}.v-application--is-ltr .pe-md-5{padding-right:20px!important}.v-application--is-rtl .pe-md-5{padding-left:20px!important}.v-application--is-ltr .pe-md-6{padding-right:24px!important}.v-application--is-rtl .pe-md-6{padding-left:24px!important}.v-application--is-ltr .pe-md-7{padding-right:28px!important}.v-application--is-rtl .pe-md-7{padding-left:28px!important}.v-application--is-ltr .pe-md-8{padding-right:32px!important}.v-application--is-rtl .pe-md-8{padding-left:32px!important}.v-application--is-ltr .pe-md-9{padding-right:36px!important}.v-application--is-rtl .pe-md-9{padding-left:36px!important}.v-application--is-ltr .pe-md-10{padding-right:40px!important}.v-application--is-rtl .pe-md-10{padding-left:40px!important}.v-application--is-ltr .pe-md-11{padding-right:44px!important}.v-application--is-rtl .pe-md-11{padding-left:44px!important}.v-application--is-ltr .pe-md-12{padding-right:48px!important}.v-application--is-rtl .pe-md-12{padding-left:48px!important}.v-application .text-md-left{text-align:left!important}.v-application .text-md-right{text-align:right!important}.v-application .text-md-center{text-align:center!important}.v-application .text-md-justify{text-align:justify!important}.v-application .text-md-start{text-align:start!important}.v-application .text-md-end{text-align:end!important}}@media (min-width:1264px){.v-application .d-lg-none{display:none!important}.v-application .d-lg-inline{display:inline!important}.v-application .d-lg-inline-block{display:inline-block!important}.v-application .d-lg-block{display:block!important}.v-application .d-lg-table{display:table!important}.v-application .d-lg-table-row{display:table-row!important}.v-application .d-lg-table-cell{display:table-cell!important}.v-application .d-lg-flex{display:flex!important}.v-application .d-lg-inline-flex{display:inline-flex!important}.v-application .float-lg-none{float:none!important}.v-application .float-lg-left{float:left!important}.v-application .float-lg-right{float:right!important}.v-application .flex-lg-fill{flex:1 1 auto!important}.v-application .flex-lg-row{flex-direction:row!important}.v-application .flex-lg-column{flex-direction:column!important}.v-application .flex-lg-row-reverse{flex-direction:row-reverse!important}.v-application .flex-lg-column-reverse{flex-direction:column-reverse!important}.v-application .flex-lg-grow-0{flex-grow:0!important}.v-application .flex-lg-grow-1{flex-grow:1!important}.v-application .flex-lg-shrink-0{flex-shrink:0!important}.v-application .flex-lg-shrink-1{flex-shrink:1!important}.v-application .flex-lg-wrap{flex-wrap:wrap!important}.v-application .flex-lg-nowrap{flex-wrap:nowrap!important}.v-application .flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.v-application .justify-lg-start{justify-content:flex-start!important}.v-application .justify-lg-end{justify-content:flex-end!important}.v-application .justify-lg-center{justify-content:center!important}.v-application .justify-lg-space-between{justify-content:space-between!important}.v-application .justify-lg-space-around{justify-content:space-around!important}.v-application .align-lg-start{align-items:flex-start!important}.v-application .align-lg-end{align-items:flex-end!important}.v-application .align-lg-center{align-items:center!important}.v-application .align-lg-baseline{align-items:baseline!important}.v-application .align-lg-stretch{align-items:stretch!important}.v-application .align-content-lg-start{align-content:flex-start!important}.v-application .align-content-lg-end{align-content:flex-end!important}.v-application .align-content-lg-center{align-content:center!important}.v-application .align-content-lg-space-between{align-content:space-between!important}.v-application .align-content-lg-space-around{align-content:space-around!important}.v-application .align-content-lg-stretch{align-content:stretch!important}.v-application .align-self-lg-auto{align-self:auto!important}.v-application .align-self-lg-start{align-self:flex-start!important}.v-application .align-self-lg-end{align-self:flex-end!important}.v-application .align-self-lg-center{align-self:center!important}.v-application .align-self-lg-baseline{align-self:baseline!important}.v-application .align-self-lg-stretch{align-self:stretch!important}.v-application .order-lg-first{order:-1!important}.v-application .order-lg-0{order:0!important}.v-application .order-lg-1{order:1!important}.v-application .order-lg-2{order:2!important}.v-application .order-lg-3{order:3!important}.v-application .order-lg-4{order:4!important}.v-application .order-lg-5{order:5!important}.v-application .order-lg-6{order:6!important}.v-application .order-lg-7{order:7!important}.v-application .order-lg-8{order:8!important}.v-application .order-lg-9{order:9!important}.v-application .order-lg-10{order:10!important}.v-application .order-lg-11{order:11!important}.v-application .order-lg-12{order:12!important}.v-application .order-lg-last{order:13!important}.v-application .ma-lg-0{margin:0!important}.v-application .ma-lg-1{margin:4px!important}.v-application .ma-lg-2{margin:8px!important}.v-application .ma-lg-3{margin:12px!important}.v-application .ma-lg-4{margin:16px!important}.v-application .ma-lg-5{margin:20px!important}.v-application .ma-lg-6{margin:24px!important}.v-application .ma-lg-7{margin:28px!important}.v-application .ma-lg-8{margin:32px!important}.v-application .ma-lg-9{margin:36px!important}.v-application .ma-lg-10{margin:40px!important}.v-application .ma-lg-11{margin:44px!important}.v-application .ma-lg-12{margin:48px!important}.v-application .ma-lg-auto{margin:auto!important}.v-application .mx-lg-0{margin-right:0!important;margin-left:0!important}.v-application .mx-lg-1{margin-right:4px!important;margin-left:4px!important}.v-application .mx-lg-2{margin-right:8px!important;margin-left:8px!important}.v-application .mx-lg-3{margin-right:12px!important;margin-left:12px!important}.v-application .mx-lg-4{margin-right:16px!important;margin-left:16px!important}.v-application .mx-lg-5{margin-right:20px!important;margin-left:20px!important}.v-application .mx-lg-6{margin-right:24px!important;margin-left:24px!important}.v-application .mx-lg-7{margin-right:28px!important;margin-left:28px!important}.v-application .mx-lg-8{margin-right:32px!important;margin-left:32px!important}.v-application .mx-lg-9{margin-right:36px!important;margin-left:36px!important}.v-application .mx-lg-10{margin-right:40px!important;margin-left:40px!important}.v-application .mx-lg-11{margin-right:44px!important;margin-left:44px!important}.v-application .mx-lg-12{margin-right:48px!important;margin-left:48px!important}.v-application .mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.v-application .my-lg-0{margin-top:0!important;margin-bottom:0!important}.v-application .my-lg-1{margin-top:4px!important;margin-bottom:4px!important}.v-application .my-lg-2{margin-top:8px!important;margin-bottom:8px!important}.v-application .my-lg-3{margin-top:12px!important;margin-bottom:12px!important}.v-application .my-lg-4{margin-top:16px!important;margin-bottom:16px!important}.v-application .my-lg-5{margin-top:20px!important;margin-bottom:20px!important}.v-application .my-lg-6{margin-top:24px!important;margin-bottom:24px!important}.v-application .my-lg-7{margin-top:28px!important;margin-bottom:28px!important}.v-application .my-lg-8{margin-top:32px!important;margin-bottom:32px!important}.v-application .my-lg-9{margin-top:36px!important;margin-bottom:36px!important}.v-application .my-lg-10{margin-top:40px!important;margin-bottom:40px!important}.v-application .my-lg-11{margin-top:44px!important;margin-bottom:44px!important}.v-application .my-lg-12{margin-top:48px!important;margin-bottom:48px!important}.v-application .my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.v-application .mt-lg-0{margin-top:0!important}.v-application .mt-lg-1{margin-top:4px!important}.v-application .mt-lg-2{margin-top:8px!important}.v-application .mt-lg-3{margin-top:12px!important}.v-application .mt-lg-4{margin-top:16px!important}.v-application .mt-lg-5{margin-top:20px!important}.v-application .mt-lg-6{margin-top:24px!important}.v-application .mt-lg-7{margin-top:28px!important}.v-application .mt-lg-8{margin-top:32px!important}.v-application .mt-lg-9{margin-top:36px!important}.v-application .mt-lg-10{margin-top:40px!important}.v-application .mt-lg-11{margin-top:44px!important}.v-application .mt-lg-12{margin-top:48px!important}.v-application .mt-lg-auto{margin-top:auto!important}.v-application .mr-lg-0{margin-right:0!important}.v-application .mr-lg-1{margin-right:4px!important}.v-application .mr-lg-2{margin-right:8px!important}.v-application .mr-lg-3{margin-right:12px!important}.v-application .mr-lg-4{margin-right:16px!important}.v-application .mr-lg-5{margin-right:20px!important}.v-application .mr-lg-6{margin-right:24px!important}.v-application .mr-lg-7{margin-right:28px!important}.v-application .mr-lg-8{margin-right:32px!important}.v-application .mr-lg-9{margin-right:36px!important}.v-application .mr-lg-10{margin-right:40px!important}.v-application .mr-lg-11{margin-right:44px!important}.v-application .mr-lg-12{margin-right:48px!important}.v-application .mr-lg-auto{margin-right:auto!important}.v-application .mb-lg-0{margin-bottom:0!important}.v-application .mb-lg-1{margin-bottom:4px!important}.v-application .mb-lg-2{margin-bottom:8px!important}.v-application .mb-lg-3{margin-bottom:12px!important}.v-application .mb-lg-4{margin-bottom:16px!important}.v-application .mb-lg-5{margin-bottom:20px!important}.v-application .mb-lg-6{margin-bottom:24px!important}.v-application .mb-lg-7{margin-bottom:28px!important}.v-application .mb-lg-8{margin-bottom:32px!important}.v-application .mb-lg-9{margin-bottom:36px!important}.v-application .mb-lg-10{margin-bottom:40px!important}.v-application .mb-lg-11{margin-bottom:44px!important}.v-application .mb-lg-12{margin-bottom:48px!important}.v-application .mb-lg-auto{margin-bottom:auto!important}.v-application .ml-lg-0{margin-left:0!important}.v-application .ml-lg-1{margin-left:4px!important}.v-application .ml-lg-2{margin-left:8px!important}.v-application .ml-lg-3{margin-left:12px!important}.v-application .ml-lg-4{margin-left:16px!important}.v-application .ml-lg-5{margin-left:20px!important}.v-application .ml-lg-6{margin-left:24px!important}.v-application .ml-lg-7{margin-left:28px!important}.v-application .ml-lg-8{margin-left:32px!important}.v-application .ml-lg-9{margin-left:36px!important}.v-application .ml-lg-10{margin-left:40px!important}.v-application .ml-lg-11{margin-left:44px!important}.v-application .ml-lg-12{margin-left:48px!important}.v-application .ml-lg-auto{margin-left:auto!important}.v-application--is-ltr .ms-lg-0{margin-left:0!important}.v-application--is-rtl .ms-lg-0{margin-right:0!important}.v-application--is-ltr .ms-lg-1{margin-left:4px!important}.v-application--is-rtl .ms-lg-1{margin-right:4px!important}.v-application--is-ltr .ms-lg-2{margin-left:8px!important}.v-application--is-rtl .ms-lg-2{margin-right:8px!important}.v-application--is-ltr .ms-lg-3{margin-left:12px!important}.v-application--is-rtl .ms-lg-3{margin-right:12px!important}.v-application--is-ltr .ms-lg-4{margin-left:16px!important}.v-application--is-rtl .ms-lg-4{margin-right:16px!important}.v-application--is-ltr .ms-lg-5{margin-left:20px!important}.v-application--is-rtl .ms-lg-5{margin-right:20px!important}.v-application--is-ltr .ms-lg-6{margin-left:24px!important}.v-application--is-rtl .ms-lg-6{margin-right:24px!important}.v-application--is-ltr .ms-lg-7{margin-left:28px!important}.v-application--is-rtl .ms-lg-7{margin-right:28px!important}.v-application--is-ltr .ms-lg-8{margin-left:32px!important}.v-application--is-rtl .ms-lg-8{margin-right:32px!important}.v-application--is-ltr .ms-lg-9{margin-left:36px!important}.v-application--is-rtl .ms-lg-9{margin-right:36px!important}.v-application--is-ltr .ms-lg-10{margin-left:40px!important}.v-application--is-rtl .ms-lg-10{margin-right:40px!important}.v-application--is-ltr .ms-lg-11{margin-left:44px!important}.v-application--is-rtl .ms-lg-11{margin-right:44px!important}.v-application--is-ltr .ms-lg-12{margin-left:48px!important}.v-application--is-rtl .ms-lg-12{margin-right:48px!important}.v-application--is-ltr .ms-lg-auto{margin-left:auto!important}.v-application--is-rtl .ms-lg-auto{margin-right:auto!important}.v-application--is-ltr .me-lg-0{margin-right:0!important}.v-application--is-rtl .me-lg-0{margin-left:0!important}.v-application--is-ltr .me-lg-1{margin-right:4px!important}.v-application--is-rtl .me-lg-1{margin-left:4px!important}.v-application--is-ltr .me-lg-2{margin-right:8px!important}.v-application--is-rtl .me-lg-2{margin-left:8px!important}.v-application--is-ltr .me-lg-3{margin-right:12px!important}.v-application--is-rtl .me-lg-3{margin-left:12px!important}.v-application--is-ltr .me-lg-4{margin-right:16px!important}.v-application--is-rtl .me-lg-4{margin-left:16px!important}.v-application--is-ltr .me-lg-5{margin-right:20px!important}.v-application--is-rtl .me-lg-5{margin-left:20px!important}.v-application--is-ltr .me-lg-6{margin-right:24px!important}.v-application--is-rtl .me-lg-6{margin-left:24px!important}.v-application--is-ltr .me-lg-7{margin-right:28px!important}.v-application--is-rtl .me-lg-7{margin-left:28px!important}.v-application--is-ltr .me-lg-8{margin-right:32px!important}.v-application--is-rtl .me-lg-8{margin-left:32px!important}.v-application--is-ltr .me-lg-9{margin-right:36px!important}.v-application--is-rtl .me-lg-9{margin-left:36px!important}.v-application--is-ltr .me-lg-10{margin-right:40px!important}.v-application--is-rtl .me-lg-10{margin-left:40px!important}.v-application--is-ltr .me-lg-11{margin-right:44px!important}.v-application--is-rtl .me-lg-11{margin-left:44px!important}.v-application--is-ltr .me-lg-12{margin-right:48px!important}.v-application--is-rtl .me-lg-12{margin-left:48px!important}.v-application--is-ltr .me-lg-auto{margin-right:auto!important}.v-application--is-rtl .me-lg-auto{margin-left:auto!important}.v-application .ma-lg-n1{margin:-4px!important}.v-application .ma-lg-n2{margin:-8px!important}.v-application .ma-lg-n3{margin:-12px!important}.v-application .ma-lg-n4{margin:-16px!important}.v-application .ma-lg-n5{margin:-20px!important}.v-application .ma-lg-n6{margin:-24px!important}.v-application .ma-lg-n7{margin:-28px!important}.v-application .ma-lg-n8{margin:-32px!important}.v-application .ma-lg-n9{margin:-36px!important}.v-application .ma-lg-n10{margin:-40px!important}.v-application .ma-lg-n11{margin:-44px!important}.v-application .ma-lg-n12{margin:-48px!important}.v-application .mx-lg-n1{margin-right:-4px!important;margin-left:-4px!important}.v-application .mx-lg-n2{margin-right:-8px!important;margin-left:-8px!important}.v-application .mx-lg-n3{margin-right:-12px!important;margin-left:-12px!important}.v-application .mx-lg-n4{margin-right:-16px!important;margin-left:-16px!important}.v-application .mx-lg-n5{margin-right:-20px!important;margin-left:-20px!important}.v-application .mx-lg-n6{margin-right:-24px!important;margin-left:-24px!important}.v-application .mx-lg-n7{margin-right:-28px!important;margin-left:-28px!important}.v-application .mx-lg-n8{margin-right:-32px!important;margin-left:-32px!important}.v-application .mx-lg-n9{margin-right:-36px!important;margin-left:-36px!important}.v-application .mx-lg-n10{margin-right:-40px!important;margin-left:-40px!important}.v-application .mx-lg-n11{margin-right:-44px!important;margin-left:-44px!important}.v-application .mx-lg-n12{margin-right:-48px!important;margin-left:-48px!important}.v-application .my-lg-n1{margin-top:-4px!important;margin-bottom:-4px!important}.v-application .my-lg-n2{margin-top:-8px!important;margin-bottom:-8px!important}.v-application .my-lg-n3{margin-top:-12px!important;margin-bottom:-12px!important}.v-application .my-lg-n4{margin-top:-16px!important;margin-bottom:-16px!important}.v-application .my-lg-n5{margin-top:-20px!important;margin-bottom:-20px!important}.v-application .my-lg-n6{margin-top:-24px!important;margin-bottom:-24px!important}.v-application .my-lg-n7{margin-top:-28px!important;margin-bottom:-28px!important}.v-application .my-lg-n8{margin-top:-32px!important;margin-bottom:-32px!important}.v-application .my-lg-n9{margin-top:-36px!important;margin-bottom:-36px!important}.v-application .my-lg-n10{margin-top:-40px!important;margin-bottom:-40px!important}.v-application .my-lg-n11{margin-top:-44px!important;margin-bottom:-44px!important}.v-application .my-lg-n12{margin-top:-48px!important;margin-bottom:-48px!important}.v-application .mt-lg-n1{margin-top:-4px!important}.v-application .mt-lg-n2{margin-top:-8px!important}.v-application .mt-lg-n3{margin-top:-12px!important}.v-application .mt-lg-n4{margin-top:-16px!important}.v-application .mt-lg-n5{margin-top:-20px!important}.v-application .mt-lg-n6{margin-top:-24px!important}.v-application .mt-lg-n7{margin-top:-28px!important}.v-application .mt-lg-n8{margin-top:-32px!important}.v-application .mt-lg-n9{margin-top:-36px!important}.v-application .mt-lg-n10{margin-top:-40px!important}.v-application .mt-lg-n11{margin-top:-44px!important}.v-application .mt-lg-n12{margin-top:-48px!important}.v-application .mr-lg-n1{margin-right:-4px!important}.v-application .mr-lg-n2{margin-right:-8px!important}.v-application .mr-lg-n3{margin-right:-12px!important}.v-application .mr-lg-n4{margin-right:-16px!important}.v-application .mr-lg-n5{margin-right:-20px!important}.v-application .mr-lg-n6{margin-right:-24px!important}.v-application .mr-lg-n7{margin-right:-28px!important}.v-application .mr-lg-n8{margin-right:-32px!important}.v-application .mr-lg-n9{margin-right:-36px!important}.v-application .mr-lg-n10{margin-right:-40px!important}.v-application .mr-lg-n11{margin-right:-44px!important}.v-application .mr-lg-n12{margin-right:-48px!important}.v-application .mb-lg-n1{margin-bottom:-4px!important}.v-application .mb-lg-n2{margin-bottom:-8px!important}.v-application .mb-lg-n3{margin-bottom:-12px!important}.v-application .mb-lg-n4{margin-bottom:-16px!important}.v-application .mb-lg-n5{margin-bottom:-20px!important}.v-application .mb-lg-n6{margin-bottom:-24px!important}.v-application .mb-lg-n7{margin-bottom:-28px!important}.v-application .mb-lg-n8{margin-bottom:-32px!important}.v-application .mb-lg-n9{margin-bottom:-36px!important}.v-application .mb-lg-n10{margin-bottom:-40px!important}.v-application .mb-lg-n11{margin-bottom:-44px!important}.v-application .mb-lg-n12{margin-bottom:-48px!important}.v-application .ml-lg-n1{margin-left:-4px!important}.v-application .ml-lg-n2{margin-left:-8px!important}.v-application .ml-lg-n3{margin-left:-12px!important}.v-application .ml-lg-n4{margin-left:-16px!important}.v-application .ml-lg-n5{margin-left:-20px!important}.v-application .ml-lg-n6{margin-left:-24px!important}.v-application .ml-lg-n7{margin-left:-28px!important}.v-application .ml-lg-n8{margin-left:-32px!important}.v-application .ml-lg-n9{margin-left:-36px!important}.v-application .ml-lg-n10{margin-left:-40px!important}.v-application .ml-lg-n11{margin-left:-44px!important}.v-application .ml-lg-n12{margin-left:-48px!important}.v-application--is-ltr .ms-lg-n1{margin-left:-4px!important}.v-application--is-rtl .ms-lg-n1{margin-right:-4px!important}.v-application--is-ltr .ms-lg-n2{margin-left:-8px!important}.v-application--is-rtl .ms-lg-n2{margin-right:-8px!important}.v-application--is-ltr .ms-lg-n3{margin-left:-12px!important}.v-application--is-rtl .ms-lg-n3{margin-right:-12px!important}.v-application--is-ltr .ms-lg-n4{margin-left:-16px!important}.v-application--is-rtl .ms-lg-n4{margin-right:-16px!important}.v-application--is-ltr .ms-lg-n5{margin-left:-20px!important}.v-application--is-rtl .ms-lg-n5{margin-right:-20px!important}.v-application--is-ltr .ms-lg-n6{margin-left:-24px!important}.v-application--is-rtl .ms-lg-n6{margin-right:-24px!important}.v-application--is-ltr .ms-lg-n7{margin-left:-28px!important}.v-application--is-rtl .ms-lg-n7{margin-right:-28px!important}.v-application--is-ltr .ms-lg-n8{margin-left:-32px!important}.v-application--is-rtl .ms-lg-n8{margin-right:-32px!important}.v-application--is-ltr .ms-lg-n9{margin-left:-36px!important}.v-application--is-rtl .ms-lg-n9{margin-right:-36px!important}.v-application--is-ltr .ms-lg-n10{margin-left:-40px!important}.v-application--is-rtl .ms-lg-n10{margin-right:-40px!important}.v-application--is-ltr .ms-lg-n11{margin-left:-44px!important}.v-application--is-rtl .ms-lg-n11{margin-right:-44px!important}.v-application--is-ltr .ms-lg-n12{margin-left:-48px!important}.v-application--is-rtl .ms-lg-n12{margin-right:-48px!important}.v-application--is-ltr .me-lg-n1{margin-right:-4px!important}.v-application--is-rtl .me-lg-n1{margin-left:-4px!important}.v-application--is-ltr .me-lg-n2{margin-right:-8px!important}.v-application--is-rtl .me-lg-n2{margin-left:-8px!important}.v-application--is-ltr .me-lg-n3{margin-right:-12px!important}.v-application--is-rtl .me-lg-n3{margin-left:-12px!important}.v-application--is-ltr .me-lg-n4{margin-right:-16px!important}.v-application--is-rtl .me-lg-n4{margin-left:-16px!important}.v-application--is-ltr .me-lg-n5{margin-right:-20px!important}.v-application--is-rtl .me-lg-n5{margin-left:-20px!important}.v-application--is-ltr .me-lg-n6{margin-right:-24px!important}.v-application--is-rtl .me-lg-n6{margin-left:-24px!important}.v-application--is-ltr .me-lg-n7{margin-right:-28px!important}.v-application--is-rtl .me-lg-n7{margin-left:-28px!important}.v-application--is-ltr .me-lg-n8{margin-right:-32px!important}.v-application--is-rtl .me-lg-n8{margin-left:-32px!important}.v-application--is-ltr .me-lg-n9{margin-right:-36px!important}.v-application--is-rtl .me-lg-n9{margin-left:-36px!important}.v-application--is-ltr .me-lg-n10{margin-right:-40px!important}.v-application--is-rtl .me-lg-n10{margin-left:-40px!important}.v-application--is-ltr .me-lg-n11{margin-right:-44px!important}.v-application--is-rtl .me-lg-n11{margin-left:-44px!important}.v-application--is-ltr .me-lg-n12{margin-right:-48px!important}.v-application--is-rtl .me-lg-n12{margin-left:-48px!important}.v-application .pa-lg-0{padding:0!important}.v-application .pa-lg-1{padding:4px!important}.v-application .pa-lg-2{padding:8px!important}.v-application .pa-lg-3{padding:12px!important}.v-application .pa-lg-4{padding:16px!important}.v-application .pa-lg-5{padding:20px!important}.v-application .pa-lg-6{padding:24px!important}.v-application .pa-lg-7{padding:28px!important}.v-application .pa-lg-8{padding:32px!important}.v-application .pa-lg-9{padding:36px!important}.v-application .pa-lg-10{padding:40px!important}.v-application .pa-lg-11{padding:44px!important}.v-application .pa-lg-12{padding:48px!important}.v-application .px-lg-0{padding-right:0!important;padding-left:0!important}.v-application .px-lg-1{padding-right:4px!important;padding-left:4px!important}.v-application .px-lg-2{padding-right:8px!important;padding-left:8px!important}.v-application .px-lg-3{padding-right:12px!important;padding-left:12px!important}.v-application .px-lg-4{padding-right:16px!important;padding-left:16px!important}.v-application .px-lg-5{padding-right:20px!important;padding-left:20px!important}.v-application .px-lg-6{padding-right:24px!important;padding-left:24px!important}.v-application .px-lg-7{padding-right:28px!important;padding-left:28px!important}.v-application .px-lg-8{padding-right:32px!important;padding-left:32px!important}.v-application .px-lg-9{padding-right:36px!important;padding-left:36px!important}.v-application .px-lg-10{padding-right:40px!important;padding-left:40px!important}.v-application .px-lg-11{padding-right:44px!important;padding-left:44px!important}.v-application .px-lg-12{padding-right:48px!important;padding-left:48px!important}.v-application .py-lg-0{padding-top:0!important;padding-bottom:0!important}.v-application .py-lg-1{padding-top:4px!important;padding-bottom:4px!important}.v-application .py-lg-2{padding-top:8px!important;padding-bottom:8px!important}.v-application .py-lg-3{padding-top:12px!important;padding-bottom:12px!important}.v-application .py-lg-4{padding-top:16px!important;padding-bottom:16px!important}.v-application .py-lg-5{padding-top:20px!important;padding-bottom:20px!important}.v-application .py-lg-6{padding-top:24px!important;padding-bottom:24px!important}.v-application .py-lg-7{padding-top:28px!important;padding-bottom:28px!important}.v-application .py-lg-8{padding-top:32px!important;padding-bottom:32px!important}.v-application .py-lg-9{padding-top:36px!important;padding-bottom:36px!important}.v-application .py-lg-10{padding-top:40px!important;padding-bottom:40px!important}.v-application .py-lg-11{padding-top:44px!important;padding-bottom:44px!important}.v-application .py-lg-12{padding-top:48px!important;padding-bottom:48px!important}.v-application .pt-lg-0{padding-top:0!important}.v-application .pt-lg-1{padding-top:4px!important}.v-application .pt-lg-2{padding-top:8px!important}.v-application .pt-lg-3{padding-top:12px!important}.v-application .pt-lg-4{padding-top:16px!important}.v-application .pt-lg-5{padding-top:20px!important}.v-application .pt-lg-6{padding-top:24px!important}.v-application .pt-lg-7{padding-top:28px!important}.v-application .pt-lg-8{padding-top:32px!important}.v-application .pt-lg-9{padding-top:36px!important}.v-application .pt-lg-10{padding-top:40px!important}.v-application .pt-lg-11{padding-top:44px!important}.v-application .pt-lg-12{padding-top:48px!important}.v-application .pr-lg-0{padding-right:0!important}.v-application .pr-lg-1{padding-right:4px!important}.v-application .pr-lg-2{padding-right:8px!important}.v-application .pr-lg-3{padding-right:12px!important}.v-application .pr-lg-4{padding-right:16px!important}.v-application .pr-lg-5{padding-right:20px!important}.v-application .pr-lg-6{padding-right:24px!important}.v-application .pr-lg-7{padding-right:28px!important}.v-application .pr-lg-8{padding-right:32px!important}.v-application .pr-lg-9{padding-right:36px!important}.v-application .pr-lg-10{padding-right:40px!important}.v-application .pr-lg-11{padding-right:44px!important}.v-application .pr-lg-12{padding-right:48px!important}.v-application .pb-lg-0{padding-bottom:0!important}.v-application .pb-lg-1{padding-bottom:4px!important}.v-application .pb-lg-2{padding-bottom:8px!important}.v-application .pb-lg-3{padding-bottom:12px!important}.v-application .pb-lg-4{padding-bottom:16px!important}.v-application .pb-lg-5{padding-bottom:20px!important}.v-application .pb-lg-6{padding-bottom:24px!important}.v-application .pb-lg-7{padding-bottom:28px!important}.v-application .pb-lg-8{padding-bottom:32px!important}.v-application .pb-lg-9{padding-bottom:36px!important}.v-application .pb-lg-10{padding-bottom:40px!important}.v-application .pb-lg-11{padding-bottom:44px!important}.v-application .pb-lg-12{padding-bottom:48px!important}.v-application .pl-lg-0{padding-left:0!important}.v-application .pl-lg-1{padding-left:4px!important}.v-application .pl-lg-2{padding-left:8px!important}.v-application .pl-lg-3{padding-left:12px!important}.v-application .pl-lg-4{padding-left:16px!important}.v-application .pl-lg-5{padding-left:20px!important}.v-application .pl-lg-6{padding-left:24px!important}.v-application .pl-lg-7{padding-left:28px!important}.v-application .pl-lg-8{padding-left:32px!important}.v-application .pl-lg-9{padding-left:36px!important}.v-application .pl-lg-10{padding-left:40px!important}.v-application .pl-lg-11{padding-left:44px!important}.v-application .pl-lg-12{padding-left:48px!important}.v-application--is-ltr .ps-lg-0{padding-left:0!important}.v-application--is-rtl .ps-lg-0{padding-right:0!important}.v-application--is-ltr .ps-lg-1{padding-left:4px!important}.v-application--is-rtl .ps-lg-1{padding-right:4px!important}.v-application--is-ltr .ps-lg-2{padding-left:8px!important}.v-application--is-rtl .ps-lg-2{padding-right:8px!important}.v-application--is-ltr .ps-lg-3{padding-left:12px!important}.v-application--is-rtl .ps-lg-3{padding-right:12px!important}.v-application--is-ltr .ps-lg-4{padding-left:16px!important}.v-application--is-rtl .ps-lg-4{padding-right:16px!important}.v-application--is-ltr .ps-lg-5{padding-left:20px!important}.v-application--is-rtl .ps-lg-5{padding-right:20px!important}.v-application--is-ltr .ps-lg-6{padding-left:24px!important}.v-application--is-rtl .ps-lg-6{padding-right:24px!important}.v-application--is-ltr .ps-lg-7{padding-left:28px!important}.v-application--is-rtl .ps-lg-7{padding-right:28px!important}.v-application--is-ltr .ps-lg-8{padding-left:32px!important}.v-application--is-rtl .ps-lg-8{padding-right:32px!important}.v-application--is-ltr .ps-lg-9{padding-left:36px!important}.v-application--is-rtl .ps-lg-9{padding-right:36px!important}.v-application--is-ltr .ps-lg-10{padding-left:40px!important}.v-application--is-rtl .ps-lg-10{padding-right:40px!important}.v-application--is-ltr .ps-lg-11{padding-left:44px!important}.v-application--is-rtl .ps-lg-11{padding-right:44px!important}.v-application--is-ltr .ps-lg-12{padding-left:48px!important}.v-application--is-rtl .ps-lg-12{padding-right:48px!important}.v-application--is-ltr .pe-lg-0{padding-right:0!important}.v-application--is-rtl .pe-lg-0{padding-left:0!important}.v-application--is-ltr .pe-lg-1{padding-right:4px!important}.v-application--is-rtl .pe-lg-1{padding-left:4px!important}.v-application--is-ltr .pe-lg-2{padding-right:8px!important}.v-application--is-rtl .pe-lg-2{padding-left:8px!important}.v-application--is-ltr .pe-lg-3{padding-right:12px!important}.v-application--is-rtl .pe-lg-3{padding-left:12px!important}.v-application--is-ltr .pe-lg-4{padding-right:16px!important}.v-application--is-rtl .pe-lg-4{padding-left:16px!important}.v-application--is-ltr .pe-lg-5{padding-right:20px!important}.v-application--is-rtl .pe-lg-5{padding-left:20px!important}.v-application--is-ltr .pe-lg-6{padding-right:24px!important}.v-application--is-rtl .pe-lg-6{padding-left:24px!important}.v-application--is-ltr .pe-lg-7{padding-right:28px!important}.v-application--is-rtl .pe-lg-7{padding-left:28px!important}.v-application--is-ltr .pe-lg-8{padding-right:32px!important}.v-application--is-rtl .pe-lg-8{padding-left:32px!important}.v-application--is-ltr .pe-lg-9{padding-right:36px!important}.v-application--is-rtl .pe-lg-9{padding-left:36px!important}.v-application--is-ltr .pe-lg-10{padding-right:40px!important}.v-application--is-rtl .pe-lg-10{padding-left:40px!important}.v-application--is-ltr .pe-lg-11{padding-right:44px!important}.v-application--is-rtl .pe-lg-11{padding-left:44px!important}.v-application--is-ltr .pe-lg-12{padding-right:48px!important}.v-application--is-rtl .pe-lg-12{padding-left:48px!important}.v-application .text-lg-left{text-align:left!important}.v-application .text-lg-right{text-align:right!important}.v-application .text-lg-center{text-align:center!important}.v-application .text-lg-justify{text-align:justify!important}.v-application .text-lg-start{text-align:start!important}.v-application .text-lg-end{text-align:end!important}}@media (min-width:1904px){.v-application .d-xl-none{display:none!important}.v-application .d-xl-inline{display:inline!important}.v-application .d-xl-inline-block{display:inline-block!important}.v-application .d-xl-block{display:block!important}.v-application .d-xl-table{display:table!important}.v-application .d-xl-table-row{display:table-row!important}.v-application .d-xl-table-cell{display:table-cell!important}.v-application .d-xl-flex{display:flex!important}.v-application .d-xl-inline-flex{display:inline-flex!important}.v-application .float-xl-none{float:none!important}.v-application .float-xl-left{float:left!important}.v-application .float-xl-right{float:right!important}.v-application .flex-xl-fill{flex:1 1 auto!important}.v-application .flex-xl-row{flex-direction:row!important}.v-application .flex-xl-column{flex-direction:column!important}.v-application .flex-xl-row-reverse{flex-direction:row-reverse!important}.v-application .flex-xl-column-reverse{flex-direction:column-reverse!important}.v-application .flex-xl-grow-0{flex-grow:0!important}.v-application .flex-xl-grow-1{flex-grow:1!important}.v-application .flex-xl-shrink-0{flex-shrink:0!important}.v-application .flex-xl-shrink-1{flex-shrink:1!important}.v-application .flex-xl-wrap{flex-wrap:wrap!important}.v-application .flex-xl-nowrap{flex-wrap:nowrap!important}.v-application .flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.v-application .justify-xl-start{justify-content:flex-start!important}.v-application .justify-xl-end{justify-content:flex-end!important}.v-application .justify-xl-center{justify-content:center!important}.v-application .justify-xl-space-between{justify-content:space-between!important}.v-application .justify-xl-space-around{justify-content:space-around!important}.v-application .align-xl-start{align-items:flex-start!important}.v-application .align-xl-end{align-items:flex-end!important}.v-application .align-xl-center{align-items:center!important}.v-application .align-xl-baseline{align-items:baseline!important}.v-application .align-xl-stretch{align-items:stretch!important}.v-application .align-content-xl-start{align-content:flex-start!important}.v-application .align-content-xl-end{align-content:flex-end!important}.v-application .align-content-xl-center{align-content:center!important}.v-application .align-content-xl-space-between{align-content:space-between!important}.v-application .align-content-xl-space-around{align-content:space-around!important}.v-application .align-content-xl-stretch{align-content:stretch!important}.v-application .align-self-xl-auto{align-self:auto!important}.v-application .align-self-xl-start{align-self:flex-start!important}.v-application .align-self-xl-end{align-self:flex-end!important}.v-application .align-self-xl-center{align-self:center!important}.v-application .align-self-xl-baseline{align-self:baseline!important}.v-application .align-self-xl-stretch{align-self:stretch!important}.v-application .order-xl-first{order:-1!important}.v-application .order-xl-0{order:0!important}.v-application .order-xl-1{order:1!important}.v-application .order-xl-2{order:2!important}.v-application .order-xl-3{order:3!important}.v-application .order-xl-4{order:4!important}.v-application .order-xl-5{order:5!important}.v-application .order-xl-6{order:6!important}.v-application .order-xl-7{order:7!important}.v-application .order-xl-8{order:8!important}.v-application .order-xl-9{order:9!important}.v-application .order-xl-10{order:10!important}.v-application .order-xl-11{order:11!important}.v-application .order-xl-12{order:12!important}.v-application .order-xl-last{order:13!important}.v-application .ma-xl-0{margin:0!important}.v-application .ma-xl-1{margin:4px!important}.v-application .ma-xl-2{margin:8px!important}.v-application .ma-xl-3{margin:12px!important}.v-application .ma-xl-4{margin:16px!important}.v-application .ma-xl-5{margin:20px!important}.v-application .ma-xl-6{margin:24px!important}.v-application .ma-xl-7{margin:28px!important}.v-application .ma-xl-8{margin:32px!important}.v-application .ma-xl-9{margin:36px!important}.v-application .ma-xl-10{margin:40px!important}.v-application .ma-xl-11{margin:44px!important}.v-application .ma-xl-12{margin:48px!important}.v-application .ma-xl-auto{margin:auto!important}.v-application .mx-xl-0{margin-right:0!important;margin-left:0!important}.v-application .mx-xl-1{margin-right:4px!important;margin-left:4px!important}.v-application .mx-xl-2{margin-right:8px!important;margin-left:8px!important}.v-application .mx-xl-3{margin-right:12px!important;margin-left:12px!important}.v-application .mx-xl-4{margin-right:16px!important;margin-left:16px!important}.v-application .mx-xl-5{margin-right:20px!important;margin-left:20px!important}.v-application .mx-xl-6{margin-right:24px!important;margin-left:24px!important}.v-application .mx-xl-7{margin-right:28px!important;margin-left:28px!important}.v-application .mx-xl-8{margin-right:32px!important;margin-left:32px!important}.v-application .mx-xl-9{margin-right:36px!important;margin-left:36px!important}.v-application .mx-xl-10{margin-right:40px!important;margin-left:40px!important}.v-application .mx-xl-11{margin-right:44px!important;margin-left:44px!important}.v-application .mx-xl-12{margin-right:48px!important;margin-left:48px!important}.v-application .mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.v-application .my-xl-0{margin-top:0!important;margin-bottom:0!important}.v-application .my-xl-1{margin-top:4px!important;margin-bottom:4px!important}.v-application .my-xl-2{margin-top:8px!important;margin-bottom:8px!important}.v-application .my-xl-3{margin-top:12px!important;margin-bottom:12px!important}.v-application .my-xl-4{margin-top:16px!important;margin-bottom:16px!important}.v-application .my-xl-5{margin-top:20px!important;margin-bottom:20px!important}.v-application .my-xl-6{margin-top:24px!important;margin-bottom:24px!important}.v-application .my-xl-7{margin-top:28px!important;margin-bottom:28px!important}.v-application .my-xl-8{margin-top:32px!important;margin-bottom:32px!important}.v-application .my-xl-9{margin-top:36px!important;margin-bottom:36px!important}.v-application .my-xl-10{margin-top:40px!important;margin-bottom:40px!important}.v-application .my-xl-11{margin-top:44px!important;margin-bottom:44px!important}.v-application .my-xl-12{margin-top:48px!important;margin-bottom:48px!important}.v-application .my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.v-application .mt-xl-0{margin-top:0!important}.v-application .mt-xl-1{margin-top:4px!important}.v-application .mt-xl-2{margin-top:8px!important}.v-application .mt-xl-3{margin-top:12px!important}.v-application .mt-xl-4{margin-top:16px!important}.v-application .mt-xl-5{margin-top:20px!important}.v-application .mt-xl-6{margin-top:24px!important}.v-application .mt-xl-7{margin-top:28px!important}.v-application .mt-xl-8{margin-top:32px!important}.v-application .mt-xl-9{margin-top:36px!important}.v-application .mt-xl-10{margin-top:40px!important}.v-application .mt-xl-11{margin-top:44px!important}.v-application .mt-xl-12{margin-top:48px!important}.v-application .mt-xl-auto{margin-top:auto!important}.v-application .mr-xl-0{margin-right:0!important}.v-application .mr-xl-1{margin-right:4px!important}.v-application .mr-xl-2{margin-right:8px!important}.v-application .mr-xl-3{margin-right:12px!important}.v-application .mr-xl-4{margin-right:16px!important}.v-application .mr-xl-5{margin-right:20px!important}.v-application .mr-xl-6{margin-right:24px!important}.v-application .mr-xl-7{margin-right:28px!important}.v-application .mr-xl-8{margin-right:32px!important}.v-application .mr-xl-9{margin-right:36px!important}.v-application .mr-xl-10{margin-right:40px!important}.v-application .mr-xl-11{margin-right:44px!important}.v-application .mr-xl-12{margin-right:48px!important}.v-application .mr-xl-auto{margin-right:auto!important}.v-application .mb-xl-0{margin-bottom:0!important}.v-application .mb-xl-1{margin-bottom:4px!important}.v-application .mb-xl-2{margin-bottom:8px!important}.v-application .mb-xl-3{margin-bottom:12px!important}.v-application .mb-xl-4{margin-bottom:16px!important}.v-application .mb-xl-5{margin-bottom:20px!important}.v-application .mb-xl-6{margin-bottom:24px!important}.v-application .mb-xl-7{margin-bottom:28px!important}.v-application .mb-xl-8{margin-bottom:32px!important}.v-application .mb-xl-9{margin-bottom:36px!important}.v-application .mb-xl-10{margin-bottom:40px!important}.v-application .mb-xl-11{margin-bottom:44px!important}.v-application .mb-xl-12{margin-bottom:48px!important}.v-application .mb-xl-auto{margin-bottom:auto!important}.v-application .ml-xl-0{margin-left:0!important}.v-application .ml-xl-1{margin-left:4px!important}.v-application .ml-xl-2{margin-left:8px!important}.v-application .ml-xl-3{margin-left:12px!important}.v-application .ml-xl-4{margin-left:16px!important}.v-application .ml-xl-5{margin-left:20px!important}.v-application .ml-xl-6{margin-left:24px!important}.v-application .ml-xl-7{margin-left:28px!important}.v-application .ml-xl-8{margin-left:32px!important}.v-application .ml-xl-9{margin-left:36px!important}.v-application .ml-xl-10{margin-left:40px!important}.v-application .ml-xl-11{margin-left:44px!important}.v-application .ml-xl-12{margin-left:48px!important}.v-application .ml-xl-auto{margin-left:auto!important}.v-application--is-ltr .ms-xl-0{margin-left:0!important}.v-application--is-rtl .ms-xl-0{margin-right:0!important}.v-application--is-ltr .ms-xl-1{margin-left:4px!important}.v-application--is-rtl .ms-xl-1{margin-right:4px!important}.v-application--is-ltr .ms-xl-2{margin-left:8px!important}.v-application--is-rtl .ms-xl-2{margin-right:8px!important}.v-application--is-ltr .ms-xl-3{margin-left:12px!important}.v-application--is-rtl .ms-xl-3{margin-right:12px!important}.v-application--is-ltr .ms-xl-4{margin-left:16px!important}.v-application--is-rtl .ms-xl-4{margin-right:16px!important}.v-application--is-ltr .ms-xl-5{margin-left:20px!important}.v-application--is-rtl .ms-xl-5{margin-right:20px!important}.v-application--is-ltr .ms-xl-6{margin-left:24px!important}.v-application--is-rtl .ms-xl-6{margin-right:24px!important}.v-application--is-ltr .ms-xl-7{margin-left:28px!important}.v-application--is-rtl .ms-xl-7{margin-right:28px!important}.v-application--is-ltr .ms-xl-8{margin-left:32px!important}.v-application--is-rtl .ms-xl-8{margin-right:32px!important}.v-application--is-ltr .ms-xl-9{margin-left:36px!important}.v-application--is-rtl .ms-xl-9{margin-right:36px!important}.v-application--is-ltr .ms-xl-10{margin-left:40px!important}.v-application--is-rtl .ms-xl-10{margin-right:40px!important}.v-application--is-ltr .ms-xl-11{margin-left:44px!important}.v-application--is-rtl .ms-xl-11{margin-right:44px!important}.v-application--is-ltr .ms-xl-12{margin-left:48px!important}.v-application--is-rtl .ms-xl-12{margin-right:48px!important}.v-application--is-ltr .ms-xl-auto{margin-left:auto!important}.v-application--is-rtl .ms-xl-auto{margin-right:auto!important}.v-application--is-ltr .me-xl-0{margin-right:0!important}.v-application--is-rtl .me-xl-0{margin-left:0!important}.v-application--is-ltr .me-xl-1{margin-right:4px!important}.v-application--is-rtl .me-xl-1{margin-left:4px!important}.v-application--is-ltr .me-xl-2{margin-right:8px!important}.v-application--is-rtl .me-xl-2{margin-left:8px!important}.v-application--is-ltr .me-xl-3{margin-right:12px!important}.v-application--is-rtl .me-xl-3{margin-left:12px!important}.v-application--is-ltr .me-xl-4{margin-right:16px!important}.v-application--is-rtl .me-xl-4{margin-left:16px!important}.v-application--is-ltr .me-xl-5{margin-right:20px!important}.v-application--is-rtl .me-xl-5{margin-left:20px!important}.v-application--is-ltr .me-xl-6{margin-right:24px!important}.v-application--is-rtl .me-xl-6{margin-left:24px!important}.v-application--is-ltr .me-xl-7{margin-right:28px!important}.v-application--is-rtl .me-xl-7{margin-left:28px!important}.v-application--is-ltr .me-xl-8{margin-right:32px!important}.v-application--is-rtl .me-xl-8{margin-left:32px!important}.v-application--is-ltr .me-xl-9{margin-right:36px!important}.v-application--is-rtl .me-xl-9{margin-left:36px!important}.v-application--is-ltr .me-xl-10{margin-right:40px!important}.v-application--is-rtl .me-xl-10{margin-left:40px!important}.v-application--is-ltr .me-xl-11{margin-right:44px!important}.v-application--is-rtl .me-xl-11{margin-left:44px!important}.v-application--is-ltr .me-xl-12{margin-right:48px!important}.v-application--is-rtl .me-xl-12{margin-left:48px!important}.v-application--is-ltr .me-xl-auto{margin-right:auto!important}.v-application--is-rtl .me-xl-auto{margin-left:auto!important}.v-application .ma-xl-n1{margin:-4px!important}.v-application .ma-xl-n2{margin:-8px!important}.v-application .ma-xl-n3{margin:-12px!important}.v-application .ma-xl-n4{margin:-16px!important}.v-application .ma-xl-n5{margin:-20px!important}.v-application .ma-xl-n6{margin:-24px!important}.v-application .ma-xl-n7{margin:-28px!important}.v-application .ma-xl-n8{margin:-32px!important}.v-application .ma-xl-n9{margin:-36px!important}.v-application .ma-xl-n10{margin:-40px!important}.v-application .ma-xl-n11{margin:-44px!important}.v-application .ma-xl-n12{margin:-48px!important}.v-application .mx-xl-n1{margin-right:-4px!important;margin-left:-4px!important}.v-application .mx-xl-n2{margin-right:-8px!important;margin-left:-8px!important}.v-application .mx-xl-n3{margin-right:-12px!important;margin-left:-12px!important}.v-application .mx-xl-n4{margin-right:-16px!important;margin-left:-16px!important}.v-application .mx-xl-n5{margin-right:-20px!important;margin-left:-20px!important}.v-application .mx-xl-n6{margin-right:-24px!important;margin-left:-24px!important}.v-application .mx-xl-n7{margin-right:-28px!important;margin-left:-28px!important}.v-application .mx-xl-n8{margin-right:-32px!important;margin-left:-32px!important}.v-application .mx-xl-n9{margin-right:-36px!important;margin-left:-36px!important}.v-application .mx-xl-n10{margin-right:-40px!important;margin-left:-40px!important}.v-application .mx-xl-n11{margin-right:-44px!important;margin-left:-44px!important}.v-application .mx-xl-n12{margin-right:-48px!important;margin-left:-48px!important}.v-application .my-xl-n1{margin-top:-4px!important;margin-bottom:-4px!important}.v-application .my-xl-n2{margin-top:-8px!important;margin-bottom:-8px!important}.v-application .my-xl-n3{margin-top:-12px!important;margin-bottom:-12px!important}.v-application .my-xl-n4{margin-top:-16px!important;margin-bottom:-16px!important}.v-application .my-xl-n5{margin-top:-20px!important;margin-bottom:-20px!important}.v-application .my-xl-n6{margin-top:-24px!important;margin-bottom:-24px!important}.v-application .my-xl-n7{margin-top:-28px!important;margin-bottom:-28px!important}.v-application .my-xl-n8{margin-top:-32px!important;margin-bottom:-32px!important}.v-application .my-xl-n9{margin-top:-36px!important;margin-bottom:-36px!important}.v-application .my-xl-n10{margin-top:-40px!important;margin-bottom:-40px!important}.v-application .my-xl-n11{margin-top:-44px!important;margin-bottom:-44px!important}.v-application .my-xl-n12{margin-top:-48px!important;margin-bottom:-48px!important}.v-application .mt-xl-n1{margin-top:-4px!important}.v-application .mt-xl-n2{margin-top:-8px!important}.v-application .mt-xl-n3{margin-top:-12px!important}.v-application .mt-xl-n4{margin-top:-16px!important}.v-application .mt-xl-n5{margin-top:-20px!important}.v-application .mt-xl-n6{margin-top:-24px!important}.v-application .mt-xl-n7{margin-top:-28px!important}.v-application .mt-xl-n8{margin-top:-32px!important}.v-application .mt-xl-n9{margin-top:-36px!important}.v-application .mt-xl-n10{margin-top:-40px!important}.v-application .mt-xl-n11{margin-top:-44px!important}.v-application .mt-xl-n12{margin-top:-48px!important}.v-application .mr-xl-n1{margin-right:-4px!important}.v-application .mr-xl-n2{margin-right:-8px!important}.v-application .mr-xl-n3{margin-right:-12px!important}.v-application .mr-xl-n4{margin-right:-16px!important}.v-application .mr-xl-n5{margin-right:-20px!important}.v-application .mr-xl-n6{margin-right:-24px!important}.v-application .mr-xl-n7{margin-right:-28px!important}.v-application .mr-xl-n8{margin-right:-32px!important}.v-application .mr-xl-n9{margin-right:-36px!important}.v-application .mr-xl-n10{margin-right:-40px!important}.v-application .mr-xl-n11{margin-right:-44px!important}.v-application .mr-xl-n12{margin-right:-48px!important}.v-application .mb-xl-n1{margin-bottom:-4px!important}.v-application .mb-xl-n2{margin-bottom:-8px!important}.v-application .mb-xl-n3{margin-bottom:-12px!important}.v-application .mb-xl-n4{margin-bottom:-16px!important}.v-application .mb-xl-n5{margin-bottom:-20px!important}.v-application .mb-xl-n6{margin-bottom:-24px!important}.v-application .mb-xl-n7{margin-bottom:-28px!important}.v-application .mb-xl-n8{margin-bottom:-32px!important}.v-application .mb-xl-n9{margin-bottom:-36px!important}.v-application .mb-xl-n10{margin-bottom:-40px!important}.v-application .mb-xl-n11{margin-bottom:-44px!important}.v-application .mb-xl-n12{margin-bottom:-48px!important}.v-application .ml-xl-n1{margin-left:-4px!important}.v-application .ml-xl-n2{margin-left:-8px!important}.v-application .ml-xl-n3{margin-left:-12px!important}.v-application .ml-xl-n4{margin-left:-16px!important}.v-application .ml-xl-n5{margin-left:-20px!important}.v-application .ml-xl-n6{margin-left:-24px!important}.v-application .ml-xl-n7{margin-left:-28px!important}.v-application .ml-xl-n8{margin-left:-32px!important}.v-application .ml-xl-n9{margin-left:-36px!important}.v-application .ml-xl-n10{margin-left:-40px!important}.v-application .ml-xl-n11{margin-left:-44px!important}.v-application .ml-xl-n12{margin-left:-48px!important}.v-application--is-ltr .ms-xl-n1{margin-left:-4px!important}.v-application--is-rtl .ms-xl-n1{margin-right:-4px!important}.v-application--is-ltr .ms-xl-n2{margin-left:-8px!important}.v-application--is-rtl .ms-xl-n2{margin-right:-8px!important}.v-application--is-ltr .ms-xl-n3{margin-left:-12px!important}.v-application--is-rtl .ms-xl-n3{margin-right:-12px!important}.v-application--is-ltr .ms-xl-n4{margin-left:-16px!important}.v-application--is-rtl .ms-xl-n4{margin-right:-16px!important}.v-application--is-ltr .ms-xl-n5{margin-left:-20px!important}.v-application--is-rtl .ms-xl-n5{margin-right:-20px!important}.v-application--is-ltr .ms-xl-n6{margin-left:-24px!important}.v-application--is-rtl .ms-xl-n6{margin-right:-24px!important}.v-application--is-ltr .ms-xl-n7{margin-left:-28px!important}.v-application--is-rtl .ms-xl-n7{margin-right:-28px!important}.v-application--is-ltr .ms-xl-n8{margin-left:-32px!important}.v-application--is-rtl .ms-xl-n8{margin-right:-32px!important}.v-application--is-ltr .ms-xl-n9{margin-left:-36px!important}.v-application--is-rtl .ms-xl-n9{margin-right:-36px!important}.v-application--is-ltr .ms-xl-n10{margin-left:-40px!important}.v-application--is-rtl .ms-xl-n10{margin-right:-40px!important}.v-application--is-ltr .ms-xl-n11{margin-left:-44px!important}.v-application--is-rtl .ms-xl-n11{margin-right:-44px!important}.v-application--is-ltr .ms-xl-n12{margin-left:-48px!important}.v-application--is-rtl .ms-xl-n12{margin-right:-48px!important}.v-application--is-ltr .me-xl-n1{margin-right:-4px!important}.v-application--is-rtl .me-xl-n1{margin-left:-4px!important}.v-application--is-ltr .me-xl-n2{margin-right:-8px!important}.v-application--is-rtl .me-xl-n2{margin-left:-8px!important}.v-application--is-ltr .me-xl-n3{margin-right:-12px!important}.v-application--is-rtl .me-xl-n3{margin-left:-12px!important}.v-application--is-ltr .me-xl-n4{margin-right:-16px!important}.v-application--is-rtl .me-xl-n4{margin-left:-16px!important}.v-application--is-ltr .me-xl-n5{margin-right:-20px!important}.v-application--is-rtl .me-xl-n5{margin-left:-20px!important}.v-application--is-ltr .me-xl-n6{margin-right:-24px!important}.v-application--is-rtl .me-xl-n6{margin-left:-24px!important}.v-application--is-ltr .me-xl-n7{margin-right:-28px!important}.v-application--is-rtl .me-xl-n7{margin-left:-28px!important}.v-application--is-ltr .me-xl-n8{margin-right:-32px!important}.v-application--is-rtl .me-xl-n8{margin-left:-32px!important}.v-application--is-ltr .me-xl-n9{margin-right:-36px!important}.v-application--is-rtl .me-xl-n9{margin-left:-36px!important}.v-application--is-ltr .me-xl-n10{margin-right:-40px!important}.v-application--is-rtl .me-xl-n10{margin-left:-40px!important}.v-application--is-ltr .me-xl-n11{margin-right:-44px!important}.v-application--is-rtl .me-xl-n11{margin-left:-44px!important}.v-application--is-ltr .me-xl-n12{margin-right:-48px!important}.v-application--is-rtl .me-xl-n12{margin-left:-48px!important}.v-application .pa-xl-0{padding:0!important}.v-application .pa-xl-1{padding:4px!important}.v-application .pa-xl-2{padding:8px!important}.v-application .pa-xl-3{padding:12px!important}.v-application .pa-xl-4{padding:16px!important}.v-application .pa-xl-5{padding:20px!important}.v-application .pa-xl-6{padding:24px!important}.v-application .pa-xl-7{padding:28px!important}.v-application .pa-xl-8{padding:32px!important}.v-application .pa-xl-9{padding:36px!important}.v-application .pa-xl-10{padding:40px!important}.v-application .pa-xl-11{padding:44px!important}.v-application .pa-xl-12{padding:48px!important}.v-application .px-xl-0{padding-right:0!important;padding-left:0!important}.v-application .px-xl-1{padding-right:4px!important;padding-left:4px!important}.v-application .px-xl-2{padding-right:8px!important;padding-left:8px!important}.v-application .px-xl-3{padding-right:12px!important;padding-left:12px!important}.v-application .px-xl-4{padding-right:16px!important;padding-left:16px!important}.v-application .px-xl-5{padding-right:20px!important;padding-left:20px!important}.v-application .px-xl-6{padding-right:24px!important;padding-left:24px!important}.v-application .px-xl-7{padding-right:28px!important;padding-left:28px!important}.v-application .px-xl-8{padding-right:32px!important;padding-left:32px!important}.v-application .px-xl-9{padding-right:36px!important;padding-left:36px!important}.v-application .px-xl-10{padding-right:40px!important;padding-left:40px!important}.v-application .px-xl-11{padding-right:44px!important;padding-left:44px!important}.v-application .px-xl-12{padding-right:48px!important;padding-left:48px!important}.v-application .py-xl-0{padding-top:0!important;padding-bottom:0!important}.v-application .py-xl-1{padding-top:4px!important;padding-bottom:4px!important}.v-application .py-xl-2{padding-top:8px!important;padding-bottom:8px!important}.v-application .py-xl-3{padding-top:12px!important;padding-bottom:12px!important}.v-application .py-xl-4{padding-top:16px!important;padding-bottom:16px!important}.v-application .py-xl-5{padding-top:20px!important;padding-bottom:20px!important}.v-application .py-xl-6{padding-top:24px!important;padding-bottom:24px!important}.v-application .py-xl-7{padding-top:28px!important;padding-bottom:28px!important}.v-application .py-xl-8{padding-top:32px!important;padding-bottom:32px!important}.v-application .py-xl-9{padding-top:36px!important;padding-bottom:36px!important}.v-application .py-xl-10{padding-top:40px!important;padding-bottom:40px!important}.v-application .py-xl-11{padding-top:44px!important;padding-bottom:44px!important}.v-application .py-xl-12{padding-top:48px!important;padding-bottom:48px!important}.v-application .pt-xl-0{padding-top:0!important}.v-application .pt-xl-1{padding-top:4px!important}.v-application .pt-xl-2{padding-top:8px!important}.v-application .pt-xl-3{padding-top:12px!important}.v-application .pt-xl-4{padding-top:16px!important}.v-application .pt-xl-5{padding-top:20px!important}.v-application .pt-xl-6{padding-top:24px!important}.v-application .pt-xl-7{padding-top:28px!important}.v-application .pt-xl-8{padding-top:32px!important}.v-application .pt-xl-9{padding-top:36px!important}.v-application .pt-xl-10{padding-top:40px!important}.v-application .pt-xl-11{padding-top:44px!important}.v-application .pt-xl-12{padding-top:48px!important}.v-application .pr-xl-0{padding-right:0!important}.v-application .pr-xl-1{padding-right:4px!important}.v-application .pr-xl-2{padding-right:8px!important}.v-application .pr-xl-3{padding-right:12px!important}.v-application .pr-xl-4{padding-right:16px!important}.v-application .pr-xl-5{padding-right:20px!important}.v-application .pr-xl-6{padding-right:24px!important}.v-application .pr-xl-7{padding-right:28px!important}.v-application .pr-xl-8{padding-right:32px!important}.v-application .pr-xl-9{padding-right:36px!important}.v-application .pr-xl-10{padding-right:40px!important}.v-application .pr-xl-11{padding-right:44px!important}.v-application .pr-xl-12{padding-right:48px!important}.v-application .pb-xl-0{padding-bottom:0!important}.v-application .pb-xl-1{padding-bottom:4px!important}.v-application .pb-xl-2{padding-bottom:8px!important}.v-application .pb-xl-3{padding-bottom:12px!important}.v-application .pb-xl-4{padding-bottom:16px!important}.v-application .pb-xl-5{padding-bottom:20px!important}.v-application .pb-xl-6{padding-bottom:24px!important}.v-application .pb-xl-7{padding-bottom:28px!important}.v-application .pb-xl-8{padding-bottom:32px!important}.v-application .pb-xl-9{padding-bottom:36px!important}.v-application .pb-xl-10{padding-bottom:40px!important}.v-application .pb-xl-11{padding-bottom:44px!important}.v-application .pb-xl-12{padding-bottom:48px!important}.v-application .pl-xl-0{padding-left:0!important}.v-application .pl-xl-1{padding-left:4px!important}.v-application .pl-xl-2{padding-left:8px!important}.v-application .pl-xl-3{padding-left:12px!important}.v-application .pl-xl-4{padding-left:16px!important}.v-application .pl-xl-5{padding-left:20px!important}.v-application .pl-xl-6{padding-left:24px!important}.v-application .pl-xl-7{padding-left:28px!important}.v-application .pl-xl-8{padding-left:32px!important}.v-application .pl-xl-9{padding-left:36px!important}.v-application .pl-xl-10{padding-left:40px!important}.v-application .pl-xl-11{padding-left:44px!important}.v-application .pl-xl-12{padding-left:48px!important}.v-application--is-ltr .ps-xl-0{padding-left:0!important}.v-application--is-rtl .ps-xl-0{padding-right:0!important}.v-application--is-ltr .ps-xl-1{padding-left:4px!important}.v-application--is-rtl .ps-xl-1{padding-right:4px!important}.v-application--is-ltr .ps-xl-2{padding-left:8px!important}.v-application--is-rtl .ps-xl-2{padding-right:8px!important}.v-application--is-ltr .ps-xl-3{padding-left:12px!important}.v-application--is-rtl .ps-xl-3{padding-right:12px!important}.v-application--is-ltr .ps-xl-4{padding-left:16px!important}.v-application--is-rtl .ps-xl-4{padding-right:16px!important}.v-application--is-ltr .ps-xl-5{padding-left:20px!important}.v-application--is-rtl .ps-xl-5{padding-right:20px!important}.v-application--is-ltr .ps-xl-6{padding-left:24px!important}.v-application--is-rtl .ps-xl-6{padding-right:24px!important}.v-application--is-ltr .ps-xl-7{padding-left:28px!important}.v-application--is-rtl .ps-xl-7{padding-right:28px!important}.v-application--is-ltr .ps-xl-8{padding-left:32px!important}.v-application--is-rtl .ps-xl-8{padding-right:32px!important}.v-application--is-ltr .ps-xl-9{padding-left:36px!important}.v-application--is-rtl .ps-xl-9{padding-right:36px!important}.v-application--is-ltr .ps-xl-10{padding-left:40px!important}.v-application--is-rtl .ps-xl-10{padding-right:40px!important}.v-application--is-ltr .ps-xl-11{padding-left:44px!important}.v-application--is-rtl .ps-xl-11{padding-right:44px!important}.v-application--is-ltr .ps-xl-12{padding-left:48px!important}.v-application--is-rtl .ps-xl-12{padding-right:48px!important}.v-application--is-ltr .pe-xl-0{padding-right:0!important}.v-application--is-rtl .pe-xl-0{padding-left:0!important}.v-application--is-ltr .pe-xl-1{padding-right:4px!important}.v-application--is-rtl .pe-xl-1{padding-left:4px!important}.v-application--is-ltr .pe-xl-2{padding-right:8px!important}.v-application--is-rtl .pe-xl-2{padding-left:8px!important}.v-application--is-ltr .pe-xl-3{padding-right:12px!important}.v-application--is-rtl .pe-xl-3{padding-left:12px!important}.v-application--is-ltr .pe-xl-4{padding-right:16px!important}.v-application--is-rtl .pe-xl-4{padding-left:16px!important}.v-application--is-ltr .pe-xl-5{padding-right:20px!important}.v-application--is-rtl .pe-xl-5{padding-left:20px!important}.v-application--is-ltr .pe-xl-6{padding-right:24px!important}.v-application--is-rtl .pe-xl-6{padding-left:24px!important}.v-application--is-ltr .pe-xl-7{padding-right:28px!important}.v-application--is-rtl .pe-xl-7{padding-left:28px!important}.v-application--is-ltr .pe-xl-8{padding-right:32px!important}.v-application--is-rtl .pe-xl-8{padding-left:32px!important}.v-application--is-ltr .pe-xl-9{padding-right:36px!important}.v-application--is-rtl .pe-xl-9{padding-left:36px!important}.v-application--is-ltr .pe-xl-10{padding-right:40px!important}.v-application--is-rtl .pe-xl-10{padding-left:40px!important}.v-application--is-ltr .pe-xl-11{padding-right:44px!important}.v-application--is-rtl .pe-xl-11{padding-left:44px!important}.v-application--is-ltr .pe-xl-12{padding-right:48px!important}.v-application--is-rtl .pe-xl-12{padding-left:48px!important}.v-application .text-xl-left{text-align:left!important}.v-application .text-xl-right{text-align:right!important}.v-application .text-xl-center{text-align:center!important}.v-application .text-xl-justify{text-align:justify!important}.v-application .text-xl-start{text-align:start!important}.v-application .text-xl-end{text-align:end!important}}@media print{.v-application .d-print-none{display:none!important}.v-application .d-print-inline{display:inline!important}.v-application .d-print-inline-block{display:inline-block!important}.v-application .d-print-block{display:block!important}.v-application .d-print-table{display:table!important}.v-application .d-print-table-row{display:table-row!important}.v-application .d-print-table-cell{display:table-cell!important}.v-application .d-print-flex{display:flex!important}.v-application .d-print-inline-flex{display:inline-flex!important}.v-application .float-print-none{float:none!important}.v-application .float-print-left{float:left!important}.v-application .float-print-right{float:right!important}}.theme--light.v-application{background:#fafafa;color:rgba(0,0,0,.87)}.theme--light.v-application .text--primary{color:rgba(0,0,0,.87)!important}.theme--light.v-application .text--secondary{color:rgba(0,0,0,.54)!important}.theme--light.v-application .text--disabled{color:rgba(0,0,0,.38)!important}.theme--dark.v-application{background:#303030;color:#fff}.theme--dark.v-application .text--primary{color:#fff!important}.theme--dark.v-application .text--secondary{color:hsla(0,0%,100%,.7)!important}.theme--dark.v-application .text--disabled{color:hsla(0,0%,100%,.5)!important}.v-application{display:flex}.v-application a{cursor:pointer}.v-application--is-rtl{direction:rtl}.v-application--wrap{flex:1 1 auto;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:flex;flex-direction:column;min-height:100vh;max-width:100%;position:relative}@-moz-document url-prefix(){@media print{.v-application,.v-application--wrap{display:block}}}.v-app-bar:not([data-booted=true]){transition:none!important}.v-app-bar.v-app-bar--fixed{position:fixed;top:0;z-index:5}.v-app-bar.v-app-bar--hide-shadow{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.v-app-bar--fade-img-on-scroll .v-toolbar__image .v-image__image{transition:opacity .4s cubic-bezier(.4,0,.2,1)}.v-app-bar.v-toolbar--prominent.v-app-bar--shrink-on-scroll .v-toolbar__content{will-change:height}.v-app-bar.v-toolbar--prominent.v-app-bar--shrink-on-scroll .v-toolbar__image{will-change:opacity}.v-app-bar.v-toolbar--prominent.v-app-bar--shrink-on-scroll.v-app-bar--collapse-on-scroll .v-toolbar__extension{display:none}.v-app-bar.v-toolbar--prominent.v-app-bar--shrink-on-scroll.v-app-bar--is-scrolled .v-toolbar__title{padding-bottom:9px}.v-app-bar.v-app-bar--shrink-on-scroll .v-toolbar__title{font-size:inherit}.v-toolbar{contain:layout;flex:1 1 auto;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.v-toolbar.v-sheet{transition:transform .2s cubic-bezier(.4,0,.2,1),background-color .2s cubic-bezier(.4,0,.2,1),left .2s cubic-bezier(.4,0,.2,1),right .2s cubic-bezier(.4,0,.2,1),box-shadow .28s cubic-bezier(.4,0,.2,1),width .25s cubic-bezier(.4,0,.2,1)}.v-toolbar .v-input{padding-top:0;margin-top:0}.v-toolbar__content,.v-toolbar__extension{padding:4px 16px}.v-toolbar__content .v-btn.v-btn--icon.v-size--default,.v-toolbar__extension .v-btn.v-btn--icon.v-size--default{height:48px;width:48px}.v-toolbar__content>.v-btn.v-btn--icon:first-child,.v-toolbar__extension>.v-btn.v-btn--icon:first-child{margin-left:-12px}.v-toolbar__content>.v-btn.v-btn--icon:first-child+.v-toolbar__title,.v-toolbar__extension>.v-btn.v-btn--icon:first-child+.v-toolbar__title{padding-left:20px}.v-application--is-rtl .v-toolbar__content>.v-btn.v-btn--icon:first-child,.v-application--is-rtl .v-toolbar__extension>.v-btn.v-btn--icon:first-child,.v-toolbar__content>.v-btn.v-btn--icon:last-child,.v-toolbar__extension>.v-btn.v-btn--icon:last-child{margin-right:-12px}.v-application--is-rtl .v-toolbar__content>.v-btn.v-btn--icon:first-child+.v-toolbar__title,.v-application--is-rtl .v-toolbar__extension>.v-btn.v-btn--icon:first-child+.v-toolbar__title{padding-right:20px}.v-application--is-rtl .v-toolbar__content>.v-btn.v-btn--icon:last-child,.v-application--is-rtl .v-toolbar__extension>.v-btn.v-btn--icon:last-child{margin-left:-12px}.v-toolbar__content>.v-tabs,.v-toolbar__extension>.v-tabs{height:inherit;margin-top:-4px;margin-bottom:-4px}.v-toolbar__content>.v-tabs .v-tabs-bar,.v-toolbar__extension>.v-tabs .v-tabs-bar{height:inherit}.v-toolbar__content>.v-tabs:first-child,.v-toolbar__extension>.v-tabs:first-child{margin-left:-16px}.v-toolbar__content>.v-tabs:last-child,.v-toolbar__extension>.v-tabs:last-child{margin-right:-16px}.v-toolbar__content,.v-toolbar__extension{align-items:center;display:flex;position:relative;z-index:0}.v-toolbar__image{position:absolute;top:0;bottom:0;width:100%;z-index:0;contain:strict}.v-toolbar__image,.v-toolbar__image .v-image{border-radius:inherit}.v-toolbar__items{display:flex;height:inherit}.v-toolbar__items>.v-btn{border-radius:0;height:100%!important;max-height:none}.v-toolbar__title{font-size:1.25rem;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-toolbar.v-toolbar--absolute{position:absolute;top:0;width:100%;z-index:1}.v-toolbar.v-toolbar--bottom{top:auto;bottom:0}.v-toolbar.v-toolbar--collapse .v-toolbar__title{white-space:nowrap}.v-toolbar.v-toolbar--collapsed{border-bottom-right-radius:24px;width:112px}.v-toolbar.v-toolbar--collapsed .v-toolbar__extension,.v-toolbar.v-toolbar--collapsed .v-toolbar__title{display:none}.v-toolbar--dense .v-toolbar__content,.v-toolbar--dense .v-toolbar__extension{padding-top:0;padding-bottom:0}.v-toolbar--flat{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.v-toolbar--floating{display:inline-flex}.v-toolbar--prominent .v-toolbar__content{align-items:flex-start}.v-toolbar--prominent .v-toolbar__title{align-self:flex-end;font-size:1.5rem;padding-bottom:6px}.theme--light.v-sheet{background-color:#fff;border-color:#fff;color:rgba(0,0,0,.87)}.theme--dark.v-sheet{background-color:#424242;border-color:#424242;color:#fff}.v-sheet{display:block;border-radius:4px;position:relative;transition:box-shadow .28s cubic-bezier(.4,0,.2,1);will-change:box-shadow}.v-sheet>:first-child:not(.v-btn):not(.v-chip){border-top-left-radius:inherit;border-top-right-radius:inherit}.v-sheet>:last-child:not(.v-btn):not(.v-chip){border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.v-sheet--tile{border-radius:0}.v-image{z-index:0}.v-image__image,.v-image__placeholder{z-index:-1;position:absolute;top:0;left:0;width:100%;height:100%}.v-image__image{background-repeat:no-repeat}.v-image__image--preload{-webkit-filter:blur(2px);filter:blur(2px)}.v-image__image--contain{background-size:contain}.v-image__image--cover{background-size:cover}.v-responsive{position:relative;overflow:hidden;flex:1 0 auto;max-width:100%;display:flex}.v-responsive__content{flex:1 0 0px;max-width:100%}.v-responsive__sizer{transition:padding-bottom .2s cubic-bezier(.25,.8,.5,1);flex:0 0 0px}.v-btn:not(.v-btn--outlined).accent,.v-btn:not(.v-btn--outlined).error,.v-btn:not(.v-btn--outlined).info,.v-btn:not(.v-btn--outlined).primary,.v-btn:not(.v-btn--outlined).secondary,.v-btn:not(.v-btn--outlined).success,.v-btn:not(.v-btn--outlined).warning{color:#fff}.theme--light.v-btn{color:rgba(0,0,0,.87)}.theme--light.v-btn.v-btn--disabled,.theme--light.v-btn.v-btn--disabled .v-btn__loading,.theme--light.v-btn.v-btn--disabled .v-icon{color:rgba(0,0,0,.26)!important}.theme--light.v-btn.v-btn--disabled:not(.v-btn--flat):not(.v-btn--text):not(.v-btn--outlined){background-color:rgba(0,0,0,.12)!important}.theme--light.v-btn:not(.v-btn--flat):not(.v-btn--text):not(.v-btn--outlined){background-color:#f5f5f5}.theme--light.v-btn.v-btn--outlined.v-btn--text{border-color:rgba(0,0,0,.12)}.theme--light.v-btn.v-btn--icon{color:rgba(0,0,0,.54)}.theme--light.v-btn:hover:before{opacity:.04}.theme--light.v-btn--active:before,.theme--light.v-btn--active:hover:before,.theme--light.v-btn:focus:before{opacity:.12}.theme--light.v-btn--active:focus:before{opacity:.16}.theme--dark.v-btn{color:#fff}.theme--dark.v-btn.v-btn--disabled,.theme--dark.v-btn.v-btn--disabled .v-btn__loading,.theme--dark.v-btn.v-btn--disabled .v-icon{color:hsla(0,0%,100%,.3)!important}.theme--dark.v-btn.v-btn--disabled:not(.v-btn--flat):not(.v-btn--text):not(.v-btn--outlined){background-color:hsla(0,0%,100%,.12)!important}.theme--dark.v-btn:not(.v-btn--flat):not(.v-btn--text):not(.v-btn--outlined){background-color:#212121}.theme--dark.v-btn.v-btn--outlined.v-btn--text{border-color:hsla(0,0%,100%,.12)}.theme--dark.v-btn.v-btn--icon{color:#fff}.theme--dark.v-btn:hover:before{opacity:.08}.theme--dark.v-btn--active:before,.theme--dark.v-btn--active:hover:before,.theme--dark.v-btn:focus:before{opacity:.24}.theme--dark.v-btn--active:focus:before{opacity:.32}.v-btn{align-items:center;border-radius:4px;display:inline-flex;flex:0 0 auto;font-size:.875rem;font-weight:500;letter-spacing:.0892857143em;justify-content:center;max-width:100%;outline:0;position:relative;text-decoration:none;text-indent:.0892857143em;text-transform:uppercase;transition-duration:.28s;transition-property:box-shadow,transform,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.v-btn:before{border-radius:inherit;bottom:0;color:inherit;content:"";left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .2s cubic-bezier(.4,0,.6,1);background-color:currentColor}.v-btn:not(.v-btn--disabled){will-change:box-shadow}.v-btn:not(.v-btn--round).v-size--x-small{height:20px;min-width:36px;padding:0 8.8888888889px}.v-btn:not(.v-btn--round).v-size--small{height:28px;min-width:50px;padding:0 12.4444444444px}.v-btn:not(.v-btn--round).v-size--default{height:36px;min-width:64px;padding:0 16px}.v-btn:not(.v-btn--round).v-size--large{height:44px;min-width:78px;padding:0 19.5555555556px}.v-btn:not(.v-btn--round).v-size--x-large{height:52px;min-width:92px;padding:0 23.1111111111px}.v-application--is-rtl .v-btn .v-icon--left{margin-left:8px;margin-right:-4px}.v-application--is-rtl .v-btn .v-icon--right{margin-left:-4px;margin-right:8px}.v-btn>.v-btn__content .v-icon{color:inherit}.v-btn__content{align-items:center;color:inherit;display:flex;flex:1 0 auto;justify-content:inherit;line-height:normal;position:relative}.v-btn__content .v-icon--left,.v-btn__content .v-icon--right{font-size:18px;height:18px;width:18px}.v-btn__content .v-icon--left{margin-left:-4px;margin-right:8px}.v-btn__content .v-icon--right{margin-left:8px;margin-right:-4px}.v-btn__loader{align-items:center;display:flex;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%}.v-btn:not(.v-btn--text):not(.v-btn--outlined).v-btn--active:before{opacity:.18}.v-btn:not(.v-btn--text):not(.v-btn--outlined):hover:before{opacity:.08}.v-btn:not(.v-btn--text):not(.v-btn--outlined):focus:before{opacity:.24}.v-btn--absolute,.v-btn--fixed{position:absolute}.v-btn--absolute.v-btn--right,.v-btn--fixed.v-btn--right{right:16px}.v-btn--absolute.v-btn--left,.v-btn--fixed.v-btn--left{left:16px}.v-btn--absolute.v-btn--top,.v-btn--fixed.v-btn--top{top:16px}.v-btn--absolute.v-btn--bottom,.v-btn--fixed.v-btn--bottom{bottom:16px}.v-btn--block{display:flex;flex:1 0 auto;min-width:100%!important;max-width:auto}.v-btn--contained{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-btn--contained:after{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.v-btn--contained:active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.v-btn--depressed{box-shadow:none!important}.v-btn--disabled{box-shadow:none;pointer-events:none}.v-btn--fab{min-height:0;min-width:0;padding:0}.v-btn--fab.v-btn--contained{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.v-btn--fab.v-btn--contained:after{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.v-btn--fab.v-btn--contained:active{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.v-btn--fab.v-btn--absolute,.v-btn--fab.v-btn--fixed{z-index:4}.v-btn--fab.v-size--x-small .v-icon{height:18px;font-size:18px;width:18px}.v-btn--fab.v-size--default .v-icon,.v-btn--fab.v-size--small .v-icon{height:24px;font-size:24px;width:24px}.v-btn--fab.v-size--large .v-icon{height:28px;font-size:28px;width:28px}.v-btn--fab.v-size--x-large .v-icon{height:32px;font-size:32px;width:32px}.v-btn--fab.v-size--x-small{height:32px;width:32px}.v-btn--fab.v-size--x-small.v-btn--absolute.v-btn--bottom{bottom:-16px}.v-btn--fab.v-size--x-small.v-btn--absolute.v-btn--top{top:-16px}.v-btn--fab.v-size--small{height:40px;width:40px}.v-btn--fab.v-size--small.v-btn--absolute.v-btn--bottom{bottom:-20px}.v-btn--fab.v-size--small.v-btn--absolute.v-btn--top{top:-20px}.v-btn--fab.v-size--default{height:56px;width:56px}.v-btn--fab.v-size--default.v-btn--absolute.v-btn--bottom{bottom:-28px}.v-btn--fab.v-size--default.v-btn--absolute.v-btn--top{top:-28px}.v-btn--fab.v-size--large{height:64px;width:64px}.v-btn--fab.v-size--large.v-btn--absolute.v-btn--bottom{bottom:-32px}.v-btn--fab.v-size--large.v-btn--absolute.v-btn--top{top:-32px}.v-btn--fab.v-size--x-large{height:72px;width:72px}.v-btn--fab.v-size--x-large.v-btn--absolute.v-btn--bottom{bottom:-36px}.v-btn--fab.v-size--x-large.v-btn--absolute.v-btn--top{top:-36px}.v-btn--fixed{position:fixed}.v-btn--loading{pointer-events:none;transition:none}.v-btn--loading .v-btn__content{opacity:0}.v-btn--outlined{border:thin solid}.v-btn--outlined:before{border-radius:0}.v-btn--outlined .v-btn__content .v-icon,.v-btn--round .v-btn__content .v-icon{color:currentColor}.v-btn--flat,.v-btn--outlined,.v-btn--text{background-color:transparent}.v-btn--round:before,.v-btn--rounded:before{border-radius:inherit}.v-btn--round{border-radius:50%}.v-btn--rounded{border-radius:28px}.v-btn--tile{border-radius:0}.v-ripple__container{border-radius:inherit;width:100%;height:100%;z-index:0;contain:strict}.v-ripple__animation,.v-ripple__container{color:inherit;position:absolute;left:0;top:0;overflow:hidden;pointer-events:none}.v-ripple__animation{border-radius:50%;background:currentColor;opacity:0;will-change:transform,opacity}.v-ripple__animation--enter{transition:none}.v-ripple__animation--in{transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .1s cubic-bezier(.4,0,.2,1)}.v-ripple__animation--out{transition:opacity .3s cubic-bezier(.4,0,.2,1)}.v-progress-circular{position:relative;display:inline-flex;vertical-align:middle;justify-content:center;align-items:center}.v-progress-circular svg{width:100%;height:100%;margin:auto;position:absolute;top:0;bottom:0;left:0;right:0;z-index:0}.v-progress-circular--indeterminate svg{-webkit-animation:progress-circular-rotate 1.4s linear infinite;animation:progress-circular-rotate 1.4s linear infinite;transform-origin:center center;transition:all .2s ease-in-out}.v-progress-circular--indeterminate .v-progress-circular__overlay{-webkit-animation:progress-circular-dash 1.4s ease-in-out infinite;animation:progress-circular-dash 1.4s ease-in-out infinite;stroke-linecap:round;stroke-dasharray:80,200;stroke-dashoffset:0px}.v-progress-circular__info{align-items:center;display:flex;justify-content:center}.v-progress-circular__underlay{stroke:rgba(0,0,0,.1);z-index:1}.v-progress-circular__overlay{stroke:currentColor;z-index:2;transition:all .6s ease-in-out}@-webkit-keyframes progress-circular-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0px}50%{stroke-dasharray:100,200;stroke-dashoffset:-15px}to{stroke-dasharray:100,200;stroke-dashoffset:-125px}}@keyframes progress-circular-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0px}50%{stroke-dasharray:100,200;stroke-dashoffset:-15px}to{stroke-dasharray:100,200;stroke-dashoffset:-125px}}@-webkit-keyframes progress-circular-rotate{to{transform:rotate(1turn)}}@keyframes progress-circular-rotate{to{transform:rotate(1turn)}}.theme--light.v-icon{color:rgba(0,0,0,.54)}.theme--light.v-icon--disabled{color:rgba(0,0,0,.38)!important}.theme--dark.v-icon{color:#fff}.theme--dark.v-icon--disabled{color:hsla(0,0%,100%,.5)!important}.v-icon.v-icon{align-items:center;display:inline-flex;-webkit-font-feature-settings:"liga";font-feature-settings:"liga";font-size:24px;justify-content:center;letter-spacing:normal;line-height:1;text-indent:0;transition:.3s cubic-bezier(.25,.8,.5,1);vertical-align:middle}.v-icon--right{margin-left:8px}.v-icon--left{margin-right:8px}.v-icon.v-icon.v-icon--link{cursor:pointer}.v-icon--disabled{pointer-events:none;opacity:.6}.v-icon--is-component,.v-icon--svg{height:24px;width:24px}.v-icon--svg{fill:currentColor}.v-icon--dense{font-size:20px}.v-icon--dense--is-component{height:20px}.theme--light.v-alert .v-alert--prominent .v-alert__icon:after{background:rgba(0,0,0,.12)}.theme--dark.v-alert .v-alert--prominent .v-alert__icon:after{background:hsla(0,0%,100%,.12)}.v-alert{font-size:16px;margin-bottom:16px;padding:16px}.v-alert>.v-alert__content,.v-alert>.v-icon{margin-right:16px}.v-alert>.v-alert__content+.v-icon,.v-alert>.v-icon+.v-alert__content{margin-right:0}.v-application--is-rtl .v-alert>.v-alert__content,.v-application--is-rtl .v-alert>.v-icon{margin-right:0;margin-left:16px}.v-application--is-rtl .v-alert>.v-alert__content+.v-icon,.v-application--is-rtl .v-alert>.v-icon+.v-alert__content{margin-left:0}.v-alert__border{border-style:solid;border-width:4px;content:"";position:absolute}.v-alert__border:not(.v-alert__border--has-color){opacity:.26}.v-alert__border--left,.v-alert__border--right{bottom:0;top:0}.v-alert__border--bottom,.v-alert__border--top{left:0;right:0}.v-alert__border--bottom{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;bottom:0}.v-alert__border--left{border-top-left-radius:inherit;border-bottom-left-radius:inherit;left:0}.v-alert__border--right{border-top-right-radius:inherit;border-bottom-right-radius:inherit;right:0}.v-alert__border--top{border-top-left-radius:inherit;border-top-right-radius:inherit;top:0}.v-application--is-rtl .v-alert__border--left{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:inherit;border-bottom-right-radius:inherit;left:auto;right:0}.v-application--is-rtl .v-alert__border--right{border-top-left-radius:inherit;border-bottom-left-radius:inherit;border-top-right-radius:0;border-bottom-right-radius:0;left:0;right:auto}.v-alert__content{flex:1 1 auto}.v-application--is-ltr .v-alert__dismissible{margin:-16px -8px -16px 8px}.v-application--is-rtl .v-alert__dismissible{margin:-16px 8px -16px -8px}.v-alert__icon{align-self:flex-start;border-radius:50%;height:24px;margin-right:16px;min-width:24px;position:relative}.v-application--is-rtl .v-alert__icon{margin-right:0;margin-left:16px}.v-alert__icon.v-icon{font-size:24px}.v-alert__wrapper{align-items:center;display:flex}.v-alert--dense{padding-top:8px;padding-bottom:8px}.v-alert--dense .v-alert__border{border-width:medium}.v-alert--outlined{background:transparent!important;border:thin solid!important}.v-alert--outlined .v-alert__icon{color:inherit!important}.v-alert--prominent .v-alert__icon{align-self:center;height:48px;min-width:48px}.v-alert--prominent .v-alert__icon:after{background:currentColor!important;border-radius:50%;bottom:0;content:"";left:0;opacity:.16;position:absolute;right:0;top:0}.v-alert--prominent .v-alert__icon.v-icon{font-size:32px}.v-alert--text{background:transparent!important}.v-alert--text:before{background-color:currentColor;border-radius:inherit;bottom:0;content:"";left:0;opacity:.12;position:absolute;right:0;top:0}.v-autocomplete.v-input>.v-input__control>.v-input__slot{cursor:text}.v-autocomplete input{align-self:center}.v-autocomplete--is-selecting-index input{opacity:0}.v-autocomplete.v-text-field--enclosed:not(.v-text-field--solo):not(.v-text-field--single-line):not(.v-text-field--outlined) .v-select__slot>input{margin-top:24px}.v-autocomplete:not(.v-input--is-disabled).v-select.v-text-field input{pointer-events:inherit}.v-autocomplete__content.v-menu__content,.v-autocomplete__content.v-menu__content .v-card{border-radius:0}.theme--light.v-text-field>.v-input__control>.v-input__slot:before{border-color:rgba(0,0,0,.42)}.theme--light.v-text-field:not(.v-input--has-state)>.v-input__control>.v-input__slot:hover:before{border-color:rgba(0,0,0,.87)}.theme--light.v-text-field.v-input--is-disabled>.v-input__control>.v-input__slot:before{border-image:repeating-linear-gradient(90deg,rgba(0,0,0,.38) 0,rgba(0,0,0,.38) 2px,transparent 0,transparent 4px) 1 repeat}.theme--light.v-text-field.v-input--is-disabled .v-text-field__prefix,.theme--light.v-text-field.v-input--is-disabled .v-text-field__suffix{color:rgba(0,0,0,.38)}.theme--light.v-text-field__prefix,.theme--light.v-text-field__suffix{color:rgba(0,0,0,.54)}.theme--light.v-text-field--solo>.v-input__control>.v-input__slot{background:#fff}.theme--light.v-text-field--solo-inverted.v-text-field--solo>.v-input__control>.v-input__slot{background:rgba(0,0,0,.16)}.theme--light.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused>.v-input__control>.v-input__slot{background:#424242}.theme--light.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused>.v-input__control>.v-input__slot .v-label,.theme--light.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused>.v-input__control>.v-input__slot input{color:#fff}.theme--light.v-text-field--filled>.v-input__control>.v-input__slot{background:rgba(0,0,0,.06)}.theme--light.v-text-field--filled .v-text-field__prefix,.theme--light.v-text-field--filled .v-text-field__suffix{max-height:32px;margin-top:20px}.theme--light.v-text-field--filled:not(.v-input--is-focused)>.v-input__control>.v-input__slot:hover{background:rgba(0,0,0,.12)}.theme--light.v-text-field--outlined fieldset{border-color:rgba(0,0,0,.24)}.theme--light.v-text-field--outlined:not(.v-input--is-focused):not(.v-input--has-state):hover fieldset{border-color:rgba(0,0,0,.86)}.theme--dark.v-text-field>.v-input__control>.v-input__slot:before{border-color:hsla(0,0%,100%,.7)}.theme--dark.v-text-field:not(.v-input--has-state)>.v-input__control>.v-input__slot:hover:before{border-color:#fff}.theme--dark.v-text-field.v-input--is-disabled>.v-input__control>.v-input__slot:before{border-image:repeating-linear-gradient(90deg,hsla(0,0%,100%,.5) 0,hsla(0,0%,100%,.5) 2px,transparent 0,transparent 4px) 1 repeat}.theme--dark.v-text-field.v-input--is-disabled .v-text-field__prefix,.theme--dark.v-text-field.v-input--is-disabled .v-text-field__suffix{color:hsla(0,0%,100%,.5)}.theme--dark.v-text-field__prefix,.theme--dark.v-text-field__suffix{color:hsla(0,0%,100%,.7)}.theme--dark.v-text-field--solo>.v-input__control>.v-input__slot{background:#424242}.theme--dark.v-text-field--solo-inverted.v-text-field--solo>.v-input__control>.v-input__slot{background:hsla(0,0%,100%,.16)}.theme--dark.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused>.v-input__control>.v-input__slot{background:#fff}.theme--dark.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused>.v-input__control>.v-input__slot .v-label,.theme--dark.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused>.v-input__control>.v-input__slot input{color:rgba(0,0,0,.87)}.theme--dark.v-text-field--filled>.v-input__control>.v-input__slot{background:rgba(0,0,0,.1)}.theme--dark.v-text-field--filled .v-text-field__prefix,.theme--dark.v-text-field--filled .v-text-field__suffix{max-height:32px;margin-top:20px}.theme--dark.v-text-field--filled:not(.v-input--is-focused)>.v-input__control>.v-input__slot:hover{background:rgba(0,0,0,.2)}.v-text-field{padding-top:12px;margin-top:4px}.v-text-field input{flex:1 1 auto;line-height:20px;padding:8px 0;max-width:100%;min-width:0;width:100%}.v-text-field input[type=text]::-ms-clear{display:none}.v-text-field .v-input__append-inner,.v-text-field .v-input__prepend-inner{align-self:flex-start;display:inline-flex;margin-top:4px;line-height:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-text-field .v-input__prepend-inner{margin-right:auto;padding-right:4px}.v-application--is-rtl .v-text-field .v-input__prepend-inner{padding-right:0;padding-left:4px}.v-text-field .v-input__append-inner{margin-left:auto;padding-left:4px}.v-application--is-rtl .v-text-field .v-input__append-inner{padding-left:0;padding-right:4px}.v-text-field .v-counter{margin-left:8px;white-space:nowrap}.v-text-field .v-label{max-width:90%;overflow:hidden;text-overflow:ellipsis;top:6px;transform-origin:top left;white-space:nowrap;pointer-events:none}.v-text-field .v-label--active{max-width:133%;transform:translateY(-18px) scale(.75)}.v-text-field>.v-input__control>.v-input__slot{cursor:text;transition:background .3s cubic-bezier(.25,.8,.5,1)}.v-text-field>.v-input__control>.v-input__slot:after,.v-text-field>.v-input__control>.v-input__slot:before{bottom:-1px;content:"";left:0;position:absolute;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-text-field>.v-input__control>.v-input__slot:before{border-style:solid;border-width:thin 0 0}.v-text-field>.v-input__control>.v-input__slot:after{border-color:currentcolor;border-style:solid;border-width:thin 0;transform:scaleX(0)}.v-text-field__details{display:flex;flex:1 0 auto;max-width:100%;min-height:14px;overflow:hidden}.v-text-field__prefix,.v-text-field__suffix{align-self:center;cursor:default;transition:color .3s cubic-bezier(.25,.8,.5,1);white-space:nowrap}.v-text-field__prefix{text-align:right;padding-right:4px}.v-text-field__suffix{padding-left:4px;white-space:nowrap}.v-text-field--reverse .v-text-field__prefix{text-align:left;padding-right:0;padding-left:4px}.v-text-field--reverse .v-text-field__suffix{padding-left:0;padding-right:4px}.v-application--is-rtl .v-text-field--reverse .v-text-field__suffix{padding-left:4px;padding-right:0}.v-text-field>.v-input__control>.v-input__slot>.v-text-field__slot{display:flex;flex:1 1 auto;position:relative}.v-text-field:not(.v-text-field--is-booted) .v-label,.v-text-field:not(.v-text-field--is-booted) legend{transition:none}.v-text-field--filled,.v-text-field--full-width,.v-text-field--outlined{position:relative}.v-text-field--filled>.v-input__control>.v-input__slot,.v-text-field--full-width>.v-input__control>.v-input__slot,.v-text-field--outlined>.v-input__control>.v-input__slot{align-items:stretch;min-height:56px}.v-text-field--filled input,.v-text-field--full-width input{margin-top:22px}.v-text-field--filled.v-text-field--single-line input,.v-text-field--full-width.v-text-field--single-line input{margin-top:12px}.v-text-field--filled .v-label,.v-text-field--full-width .v-label{top:18px}.v-text-field--filled .v-label--active,.v-text-field--full-width .v-label--active{transform:translateY(-6px) scale(.75)}.v-text-field--filled>.v-input__control>.v-input__slot{border-top-left-radius:4px;border-top-right-radius:4px}.v-text-field.v-text-field--enclosed{margin:0;padding:0}.v-text-field.v-text-field--enclosed.v-text-field--single-line .v-text-field__prefix,.v-text-field.v-text-field--enclosed.v-text-field--single-line .v-text-field__suffix{margin-top:0}.v-text-field.v-text-field--enclosed:not(.v-text-field--filled) .v-progress-linear__background{display:none}.v-text-field.v-text-field--enclosed .v-input__append-inner,.v-text-field.v-text-field--enclosed .v-input__append-outer,.v-text-field.v-text-field--enclosed .v-input__prepend-inner,.v-text-field.v-text-field--enclosed .v-input__prepend-outer{margin-top:16px}.v-text-field.v-text-field--enclosed .v-text-field__details,.v-text-field.v-text-field--enclosed>.v-input__control>.v-input__slot{padding:0 12px}.v-text-field.v-text-field--enclosed .v-text-field__details{margin-bottom:8px}.v-text-field--reverse input{text-align:right}.v-text-field--reverse .v-label{transform-origin:top right}.v-text-field--reverse .v-text-field__slot,.v-text-field--reverse>.v-input__control>.v-input__slot{flex-direction:row-reverse}.v-text-field--full-width>.v-input__control>.v-input__slot:after,.v-text-field--full-width>.v-input__control>.v-input__slot:before,.v-text-field--outlined>.v-input__control>.v-input__slot:after,.v-text-field--outlined>.v-input__control>.v-input__slot:before,.v-text-field--rounded>.v-input__control>.v-input__slot:after,.v-text-field--rounded>.v-input__control>.v-input__slot:before,.v-text-field--solo>.v-input__control>.v-input__slot:after,.v-text-field--solo>.v-input__control>.v-input__slot:before{display:none}.v-text-field--outlined{margin-bottom:16px;transition:border .3s cubic-bezier(.25,.8,.5,1)}.v-text-field--outlined .v-label{top:18px}.v-text-field--outlined .v-label--active{transform:translateY(-24px) scale(.75)}.v-text-field--outlined fieldset{border-style:solid;border-width:1px;bottom:0;left:0;padding-left:8px;pointer-events:none;position:absolute;right:0;top:-5px;transition-duration:.3s;transition-property:border,border-width;transition-timing-function:cubic-bezier(.25,.8,.25,1)}.v-application--is-rtl .v-text-field--outlined fieldset{padding-left:0;padding-right:8px}.v-text-field--outlined legend{line-height:11px;padding:0;text-align:left;transition:width .3s cubic-bezier(.25,.8,.5,1)}.v-application--is-rtl .v-text-field--outlined legend{text-align:right}.v-text-field--outlined.v-text-field--rounded legend{margin-left:12px}.v-application--is-rtl .v-text-field--outlined.v-text-field--rounded legend{margin-left:0;margin-right:12px}.v-text-field--outlined>.v-input__control>.v-input__slot{background:transparent!important}.v-text-field--outlined .v-text-field__prefix{max-height:32px}.v-text-field--outlined .v-input__append-outer,.v-text-field--outlined .v-input__prepend-outer{margin-top:18px}.v-text-field--outlined.v-input--has-state fieldset,.v-text-field--outlined.v-input--is-focused fieldset{border-color:currentColor;border-width:2px}.v-text-field--outlined,.v-text-field--solo{border-radius:4px}.v-text-field--outlined .v-input__control,.v-text-field--outlined .v-input__slot,.v-text-field--outlined fieldset,.v-text-field--solo .v-input__control,.v-text-field--solo .v-input__slot,.v-text-field--solo fieldset{border-radius:inherit}.v-text-field--outlined .v-text-field__slot,.v-text-field--solo .v-text-field__slot{align-items:center}.v-text-field--rounded,.v-text-field--rounded.v-text-field--outlined fieldset{border-radius:28px}.v-text-field--rounded>.v-input__control>.v-input__slot{border-radius:28px;padding:0 24px!important}.v-text-field--shaped.v-text-field--outlined fieldset{border-radius:16px 16px 0 0}.v-text-field--shaped>.v-input__control>.v-input__slot{border-top-left-radius:16px;border-top-right-radius:16px}.v-text-field.v-text-field--solo .v-label{top:calc(50% - 10px)}.v-text-field.v-text-field--solo .v-input__control{min-height:48px;padding:0}.v-text-field.v-text-field--solo:not(.v-text-field--solo-flat)>.v-input__control>.v-input__slot{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-text-field.v-text-field--solo .v-input__append-inner,.v-text-field.v-text-field--solo .v-input__prepend-inner{align-self:center;margin-top:0}.v-text-field.v-text-field--solo .v-input__append-outer,.v-text-field.v-text-field--solo .v-input__prepend-outer{margin-top:12px}.v-text-field.v-input--is-focused>.v-input__control>.v-input__slot:after{transform:scaleX(1)}.v-text-field.v-input--has-state>.v-input__control>.v-input__slot:before{border-color:currentColor}.v-application--is-rtl .v-text-field .v-label{transform-origin:top right}.v-application--is-rtl .v-text-field .v-counter{margin-left:0;margin-right:8px}.v-application--is-rtl .v-text-field--enclosed .v-input__append-outer{margin-left:0;margin-right:16px}.v-application--is-rtl .v-text-field--enclosed .v-input__prepend-outer{margin-left:16px;margin-right:0}.v-application--is-rtl .v-text-field--reverse input{text-align:left}.v-application--is-rtl .v-text-field--reverse .v-label{transform-origin:top left}.v-application--is-rtl .v-text-field__prefix{text-align:left;padding-right:0;padding-left:4px}.v-application--is-rtl .v-text-field__suffix{padding-left:0;padding-right:4px}.v-application--is-rtl .v-text-field--reverse .v-text-field__prefix{text-align:right;padding-left:0;padding-right:4px}.v-application--is-rtl .v-text-field--reverse .v-text-field__suffix{padding-left:0;padding-right:4px}.theme--light.v-select .v-select__selections{color:rgba(0,0,0,.87)}.theme--light.v-select .v-chip--disabled,.theme--light.v-select.v-input--is-disabled .v-select__selections,.theme--light.v-select .v-select__selection--disabled{color:rgba(0,0,0,.38)}.theme--dark.v-select .v-select__selections,.theme--light.v-select.v-text-field--solo-inverted.v-input--is-focused .v-select__selections{color:#fff}.theme--dark.v-select .v-chip--disabled,.theme--dark.v-select.v-input--is-disabled .v-select__selections,.theme--dark.v-select .v-select__selection--disabled{color:hsla(0,0%,100%,.5)}.theme--dark.v-select.v-text-field--solo-inverted.v-input--is-focused .v-select__selections{color:rgba(0,0,0,.87)}.v-select{position:relative}.v-select>.v-input__control>.v-input__slot{cursor:pointer}.v-select .v-chip{flex:0 1 auto;margin:4px}.v-select .v-chip--selected:after{opacity:.22}.v-select .fade-transition-leave-active{position:absolute;left:0}.v-select.v-input--is-dirty ::-webkit-input-placeholder{color:transparent!important}.v-select.v-input--is-dirty ::-moz-placeholder{color:transparent!important}.v-select.v-input--is-dirty :-ms-input-placeholder{color:transparent!important}.v-select.v-input--is-dirty ::-ms-input-placeholder{color:transparent!important}.v-select.v-input--is-dirty ::placeholder{color:transparent!important}.v-select:not(.v-input--is-dirty):not(.v-input--is-focused) .v-text-field__prefix{line-height:20px;position:absolute;top:7px;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-select.v-text-field--enclosed:not(.v-text-field--single-line):not(.v-text-field--outlined) .v-select__selections{padding-top:24px}.v-select.v-text-field--outlined:not(.v-text-field--single-line) .v-select__selections{padding:8px 0}.v-select.v-text-field input{flex:1 1;margin-top:0;min-width:0;pointer-events:none;position:relative}.v-select.v-select--is-menu-active .v-input__icon--append .v-icon{transform:rotate(180deg)}.v-select.v-select--chips input{margin:0}.v-select.v-select--chips .v-select__selections{min-height:42px}.v-select.v-select--chips .v-chip--select.v-chip--active:before{opacity:.2}.v-select.v-select--chips.v-select--chips--small .v-select__selections{min-height:32px}.v-select.v-select--chips:not(.v-text-field--single-line).v-text-field--box .v-select__selections,.v-select.v-select--chips:not(.v-text-field--single-line).v-text-field--enclosed .v-select__selections{min-height:68px}.v-select.v-select--chips:not(.v-text-field--single-line).v-text-field--box.v-select--chips--small .v-select__selections,.v-select.v-select--chips:not(.v-text-field--single-line).v-text-field--enclosed.v-select--chips--small .v-select__selections{min-height:56px}.v-select.v-text-field--reverse .v-select__selections,.v-select.v-text-field--reverse .v-select__slot{flex-direction:row-reverse}.v-select__selections{align-items:center;display:flex;flex:1 1 auto;flex-wrap:wrap;line-height:18px}.v-select__selection{max-width:90%}.v-select__selection--comma{align-items:center;display:inline-flex;margin:7px 4px 7px 0}.v-select__slot{position:relative;align-items:center;display:flex;width:100%}.v-select:not(.v-text-field--single-line):not(.v-text-field--outlined) .v-select__slot>input{align-self:flex-end}.theme--light.v-input:not(.v-input--is-disabled) input,.theme--light.v-input:not(.v-input--is-disabled) textarea{color:rgba(0,0,0,.87)}.theme--light.v-input input::-webkit-input-placeholder,.theme--light.v-input textarea::-webkit-input-placeholder{color:rgba(0,0,0,.38)}.theme--light.v-input input::-moz-placeholder,.theme--light.v-input textarea::-moz-placeholder{color:rgba(0,0,0,.38)}.theme--light.v-input input:-ms-input-placeholder,.theme--light.v-input textarea:-ms-input-placeholder{color:rgba(0,0,0,.38)}.theme--light.v-input input::-ms-input-placeholder,.theme--light.v-input textarea::-ms-input-placeholder{color:rgba(0,0,0,.38)}.theme--light.v-input input::placeholder,.theme--light.v-input textarea::placeholder{color:rgba(0,0,0,.38)}.theme--light.v-input--is-disabled .v-label,.theme--light.v-input--is-disabled input,.theme--light.v-input--is-disabled textarea{color:rgba(0,0,0,.38)}.theme--dark.v-input:not(.v-input--is-disabled) input,.theme--dark.v-input:not(.v-input--is-disabled) textarea{color:#fff}.theme--dark.v-input input::-webkit-input-placeholder,.theme--dark.v-input textarea::-webkit-input-placeholder{color:hsla(0,0%,100%,.5)}.theme--dark.v-input input::-moz-placeholder,.theme--dark.v-input textarea::-moz-placeholder{color:hsla(0,0%,100%,.5)}.theme--dark.v-input input:-ms-input-placeholder,.theme--dark.v-input textarea:-ms-input-placeholder{color:hsla(0,0%,100%,.5)}.theme--dark.v-input input::-ms-input-placeholder,.theme--dark.v-input textarea::-ms-input-placeholder{color:hsla(0,0%,100%,.5)}.theme--dark.v-input input::placeholder,.theme--dark.v-input textarea::placeholder{color:hsla(0,0%,100%,.5)}.theme--dark.v-input--is-disabled .v-label,.theme--dark.v-input--is-disabled input,.theme--dark.v-input--is-disabled textarea{color:hsla(0,0%,100%,.5)}.v-input{align-items:flex-start;display:flex;flex:1 1 auto;font-size:16px;letter-spacing:normal;text-align:left}.v-input .v-progress-linear{top:calc(100% - 1px);left:0}.v-input input{max-height:32px}.v-input input:invalid,.v-input textarea:invalid{box-shadow:none}.v-input input:active,.v-input input:focus,.v-input textarea:active,.v-input textarea:focus{outline:none}.v-input .v-label{height:20px;line-height:20px}.v-input__append-outer,.v-input__prepend-outer{display:inline-flex;margin-bottom:4px;margin-top:4px;line-height:1}.v-input__append-outer .v-icon,.v-input__prepend-outer .v-icon{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-input__append-outer{margin-left:9px}.v-input__prepend-outer{margin-right:9px}.v-input__control{display:flex;flex-direction:column;height:auto;flex-grow:1;flex-wrap:wrap;width:100%}.v-input__icon{align-items:center;display:inline-flex;height:24px;flex:1 0 auto;justify-content:center;min-width:24px;width:24px}.v-input__icon--clear{border-radius:50%}.v-input__slot{align-items:center;color:inherit;display:flex;margin-bottom:8px;min-height:inherit;position:relative;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-input--is-disabled:not(.v-input--is-readonly){pointer-events:none}.v-input--is-loading>.v-input__control>.v-input__slot:after,.v-input--is-loading>.v-input__control>.v-input__slot:before{display:none}.v-input--hide-details>.v-input__control>.v-input__slot{margin-bottom:0}.v-input--has-state.error--text .v-label{-webkit-animation:v-shake .6s cubic-bezier(.25,.8,.5,1);animation:v-shake .6s cubic-bezier(.25,.8,.5,1)}.theme--light.v-label{color:rgba(0,0,0,.54)}.theme--light.v-label--is-disabled{color:rgba(0,0,0,.38)}.theme--dark.v-label{color:hsla(0,0%,100%,.7)}.theme--dark.v-label--is-disabled{color:hsla(0,0%,100%,.5)}.v-label{font-size:16px;line-height:1;min-height:8px;transition:.3s cubic-bezier(.25,.8,.5,1)}.theme--light.v-messages{color:rgba(0,0,0,.54)}.theme--dark.v-messages{color:hsla(0,0%,100%,.7)}.v-messages{flex:1 1 auto;font-size:12px;min-height:14px;min-width:1px;position:relative}.v-application--is-rtl .v-messages{text-align:right}.v-messages__message{line-height:normal;word-break:break-word;overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.theme--light.v-progress-linear{color:rgba(0,0,0,.87)}.theme--dark.v-progress-linear{color:#fff}.v-progress-linear{background:transparent;overflow:hidden;position:relative;transition:.2s;width:100%}.v-progress-linear__buffer{height:inherit;left:0;position:absolute;top:0;transition:inherit;width:100%;z-index:1}.v-progress-linear__background{bottom:0;left:0;position:absolute;top:0;transition:inherit}.v-progress-linear__content{align-items:center;display:flex;height:100%;left:0;justify-content:center;position:absolute;top:0;width:100%;z-index:2}.v-progress-linear__determinate{height:inherit;transition:inherit}.v-progress-linear__indeterminate .long,.v-progress-linear__indeterminate .short{background-color:inherit;bottom:0;height:inherit;left:0;position:absolute;top:0;width:auto;will-change:left,right}.v-progress-linear__indeterminate--active .long{-webkit-animation:indeterminate;animation:indeterminate;-webkit-animation-duration:2.2s;animation-duration:2.2s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.v-progress-linear__indeterminate--active .short{-webkit-animation:indeterminate-short;animation:indeterminate-short;-webkit-animation-duration:2.2s;animation-duration:2.2s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.v-progress-linear__stream{-webkit-animation:stream .25s linear infinite;animation:stream .25s linear infinite;border-color:currentColor;border-top:4px dotted;bottom:0;opacity:.3;pointer-events:none;position:absolute;right:-8px;top:calc(50% - 2px);transition:inherit}.v-progress-linear__wrapper{overflow:hidden;position:relative;transition:inherit}.v-progress-linear--absolute,.v-progress-linear--fixed{left:0;z-index:1}.v-progress-linear--absolute{position:absolute}.v-progress-linear--fixed{position:fixed}.v-progress-linear--reactive .v-progress-linear__content{pointer-events:none}.v-progress-linear--rounded{border-radius:4px}.v-progress-linear--striped .v-progress-linear__determinate{background-image:linear-gradient(135deg,hsla(0,0%,100%,.25) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.25) 0,hsla(0,0%,100%,.25) 75%,transparent 0,transparent);background-size:40px 40px;background-repeat:repeat-x}.v-progress-linear--query .v-progress-linear__indeterminate--active .long{-webkit-animation:query;animation:query;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.v-progress-linear--query .v-progress-linear__indeterminate--active .short{-webkit-animation:query-short;animation:query-short;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}@-webkit-keyframes indeterminate{0%{left:-90%;right:100%}60%{left:-90%;right:100%}to{left:100%;right:-35%}}@keyframes indeterminate{0%{left:-90%;right:100%}60%{left:-90%;right:100%}to{left:100%;right:-35%}}@-webkit-keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@-webkit-keyframes query{0%{right:-90%;left:100%}60%{right:-90%;left:100%}to{right:100%;left:-35%}}@keyframes query{0%{right:-90%;left:100%}60%{right:-90%;left:100%}to{right:100%;left:-35%}}@-webkit-keyframes query-short{0%{right:-200%;left:100%}60%{right:107%;left:-8%}to{right:107%;left:-8%}}@keyframes query-short{0%{right:-200%;left:100%}60%{right:107%;left:-8%}to{right:107%;left:-8%}}@-webkit-keyframes stream{to{transform:translateX(-8px)}}@keyframes stream{to{transform:translateX(-8px)}}.theme--light.v-counter{color:rgba(0,0,0,.54)}.theme--dark.v-counter{color:hsla(0,0%,100%,.7)}.v-counter{flex:0 1 auto;font-size:12px;min-height:12px;line-height:1}.theme--light.v-card{background-color:#fff;color:rgba(0,0,0,.87)}.theme--light.v-card .v-card__text{color:rgba(0,0,0,.54)}.theme--light.v-card.v-card--outlined{border:1px solid rgba(0,0,0,.12)}.theme--dark.v-card{background-color:#424242;color:#fff}.theme--dark.v-card .v-card__text{color:hsla(0,0%,100%,.7)}.theme--dark.v-card.v-card--outlined{border:1px solid hsla(0,0%,100%,.12)}.v-card{max-width:100%;outline:none;text-decoration:none;transition-property:box-shadow,opacity;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-card>.v-card__progress+:not(.v-btn):not(.v-chip),.v-card>:first-child:not(.v-btn):not(.v-chip){border-top-left-radius:inherit;border-top-right-radius:inherit}.v-card>:last-child:not(.v-btn):not(.v-chip){border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.v-card__progress{top:0;left:0;right:0;overflow:hidden}.v-card__title{align-items:center;display:flex;flex-wrap:wrap;font-size:1.5rem;font-weight:400;letter-spacing:normal;line-height:2rem;padding:16px 16px 8px}.v-card__title+.v-card__text{padding-top:0}.v-card__text{font-size:.875rem;line-height:1.375rem;letter-spacing:.0071428571em;padding:16px;width:100%}.v-card__actions{align-items:center;display:flex;padding:8px}.v-card__actions .v-btn.v-btn{padding:0 8px}.v-application--is-ltr .v-card__actions .v-btn.v-btn+.v-btn{margin-left:8px}.v-application--is-ltr .v-card__actions .v-btn.v-btn .v-icon--left{margin-left:4px}.v-application--is-ltr .v-card__actions .v-btn.v-btn .v-icon--right{margin-right:4px}.v-application--is-rtl .v-card__actions .v-btn.v-btn+.v-btn{margin-right:8px}.v-application--is-rtl .v-card__actions .v-btn.v-btn .v-icon--left{margin-right:4px}.v-application--is-rtl .v-card__actions .v-btn.v-btn .v-icon--right{margin-left:4px}.v-card--flat{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.v-card--hover{cursor:pointer;transition:box-shadow .4s cubic-bezier(.25,.8,.25,1)}.v-card--hover:hover{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.v-card--link,.v-card--link .v-chip{cursor:pointer}.v-card--link:focus:before{opacity:.08}.v-card--link:before{background:currentColor;bottom:0;content:"";left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .2s}.v-card--disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-card--disabled>:not(.v-card__progress){opacity:.6;transition:inherit}.v-card--loading{overflow:hidden}.v-card--outlined{box-shadow:none}.v-card--raised{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.theme--light.v-list-item--disabled{color:rgba(0,0,0,.38)}.theme--light.v-list-item:not(.v-list-item--active):not(.v-list-item--disabled){color:rgba(0,0,0,.87)!important}.theme--light.v-list-item .v-list-item__mask{color:rgba(0,0,0,.38);background:#eee}.theme--light.v-list-item .v-list-item__action-text,.theme--light.v-list-item .v-list-item__subtitle{color:rgba(0,0,0,.54)}.theme--light.v-list-item:hover:before{opacity:.04}.theme--light.v-list-item--active:before,.theme--light.v-list-item--active:hover:before,.theme--light.v-list-item:focus:before{opacity:.12}.theme--light.v-list-item--active:focus:before,.theme--light.v-list-item.v-list-item--highlighted:before{opacity:.16}.theme--dark.v-list-item--disabled{color:hsla(0,0%,100%,.5)}.theme--dark.v-list-item:not(.v-list-item--active):not(.v-list-item--disabled){color:#fff!important}.theme--dark.v-list-item .v-list-item__mask{color:hsla(0,0%,100%,.5);background:#494949}.theme--dark.v-list-item .v-list-item__action-text,.theme--dark.v-list-item .v-list-item__subtitle{color:hsla(0,0%,100%,.7)}.theme--dark.v-list-item:hover:before{opacity:.08}.theme--dark.v-list-item--active:before,.theme--dark.v-list-item--active:hover:before,.theme--dark.v-list-item:focus:before{opacity:.24}.theme--dark.v-list-item--active:focus:before,.theme--dark.v-list-item.v-list-item--highlighted:before{opacity:.32}.v-list-item{align-items:center;display:flex;flex:1 1 100%;letter-spacing:normal;min-height:48px;outline:none;padding:0 16px;position:relative;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-list-item--disabled{pointer-events:none}.v-list-item__action{align-self:center;margin:12px 0}.v-list-item__action .v-input,.v-list-item__action .v-input--selection-controls__input,.v-list-item__action .v-input__control,.v-list-item__action .v-input__slot{margin:0!important}.v-list-item__action .v-input{padding:0}.v-list-item__action .v-input .v-messages{display:none}.v-list-item__action-text{font-size:.75rem}.v-list-item__avatar{align-self:center;justify-content:flex-start}.v-list-item__avatar,.v-list-item__avatar.v-list-item__avatar--horizontal{margin-bottom:8px;margin-top:8px}.v-list-item__avatar.v-list-item__avatar--horizontal:first-child,.v-list-item__avatar.v-list-item__avatar--horizontal:last-child{margin-left:-16px}.v-list-item__content{align-items:center;align-self:center;display:flex;flex-wrap:wrap;flex:1 1;overflow:hidden;padding:12px 0}.v-list-item__content>*{line-height:1.1;flex:1 0 100%}.v-list-item__content>:not(:last-child){margin-bottom:2px}.v-list-item__icon{align-self:flex-start;margin:16px 0}.v-list-item__action:last-of-type:not(:only-child),.v-list-item__avatar:last-of-type:not(:only-child),.v-list-item__icon:last-of-type:not(:only-child){margin-left:16px}.v-application--is-ltr .v-list-item__avatar:first-child{margin-right:24px}.v-application--is-rtl .v-list-item__avatar:first-child{margin-left:24px}.v-application--is-ltr .v-list-item__action:first-child,.v-application--is-ltr .v-list-item__icon:first-child{margin-right:32px}.v-application--is-rtl .v-list-item__action:first-child,.v-application--is-rtl .v-list-item__icon:first-child{margin-left:32px}.v-list-item__action,.v-list-item__avatar,.v-list-item__icon{display:inline-flex;min-width:24px}.v-list-item .v-list-item__subtitle,.v-list-item .v-list-item__title{line-height:1.2}.v-list-item__subtitle,.v-list-item__title{flex:1 1 100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-list-item__title{align-self:center;font-size:1rem}.v-list-item__title>.v-badge{margin-top:16px}.v-list-item__subtitle{font-size:.875rem}.v-list--dense .v-list-item,.v-list-item--dense{min-height:40px}.v-list--dense .v-list-item .v-list-item__icon,.v-list-item--dense .v-list-item__icon{margin-top:8px;margin-bottom:8px}.v-list--dense .v-list-item .v-list-item__content,.v-list-item--dense .v-list-item__content{padding:8px 0}.v-list--dense .v-list-item .v-list-item__subtitle,.v-list--dense .v-list-item .v-list-item__title,.v-list-item--dense .v-list-item__subtitle,.v-list-item--dense .v-list-item__title{font-size:.8125rem;font-weight:500;line-height:1rem}.v-list--dense .v-list-item.v-list-item--two-line,.v-list-item--dense.v-list-item--two-line{min-height:60px}.v-list--dense .v-list-item.v-list-item--three-line,.v-list-item--dense.v-list-item--three-line{min-height:76px}.v-list-item--link{cursor:pointer}.v-list-item--link:before{background-color:currentColor;bottom:0;content:"";left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-list-item--active .v-icon{color:inherit}.v-list-item__action--stack{align-items:flex-end;align-self:stretch;justify-content:space-between;white-space:nowrap;flex-direction:column}.v-list--three-line .v-list-item .v-list-item__avatar:not(.v-list-item__avatar--horizontal),.v-list--three-line .v-list-item .v-list-item__icon,.v-list--two-line .v-list-item .v-list-item__avatar:not(.v-list-item__avatar--horizontal),.v-list--two-line .v-list-item .v-list-item__icon,.v-list-item--three-line .v-list-item__avatar:not(.v-list-item__avatar--horizontal),.v-list-item--three-line .v-list-item__icon,.v-list-item--two-line .v-list-item__avatar:not(.v-list-item__avatar--horizontal),.v-list-item--two-line .v-list-item__icon{margin-bottom:16px;margin-top:16px}.v-list--two-line .v-list-item,.v-list-item--two-line{min-height:64px}.v-list--two-line .v-list-item .v-list-item__icon,.v-list-item--two-line .v-list-item__icon{margin-bottom:32px}.v-list--three-line .v-list-item,.v-list-item--three-line{min-height:88px}.v-list--three-line .v-list-item .v-list-item__action,.v-list--three-line .v-list-item .v-list-item__avatar,.v-list-item--three-line .v-list-item__action,.v-list-item--three-line .v-list-item__avatar{align-self:flex-start;margin-top:16px;margin-bottom:16px}.v-list--three-line .v-list-item .v-list-item__content,.v-list-item--three-line .v-list-item__content{align-self:stretch}.v-list--three-line .v-list-item .v-list-item__subtitle,.v-list-item--three-line .v-list-item__subtitle{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.v-simple-checkbox{align-self:center;line-height:normal;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.v-simple-checkbox--disabled{cursor:default}.theme--light.v-divider{border-color:rgba(0,0,0,.12)}.theme--dark.v-divider{border-color:hsla(0,0%,100%,.12)}.v-divider{display:block;flex:1 1 0px;max-width:100%;height:0;max-height:0;border:solid;border-width:thin 0 0;transition:inherit}.v-divider--inset:not(.v-divider--vertical){margin-left:72px;max-width:calc(100% - 72px)}.v-divider--vertical{align-self:stretch;border:solid;border-width:0 thin 0 0;display:inline-flex;height:inherit;min-height:100%;max-height:100%;max-width:0;width:0;vertical-align:text-bottom}.v-divider--vertical.v-divider--inset{margin-top:8px;min-height:0;max-height:calc(100% - 16px)}.theme--light.v-subheader{color:rgba(0,0,0,.54)}.theme--dark.v-subheader{color:hsla(0,0%,100%,.7)}.v-subheader{align-items:center;display:flex;height:48px;font-size:.875rem;font-weight:400;padding:0 16px}.v-subheader--inset{margin-left:56px}.v-list.accent>.v-list-item,.v-list.error>.v-list-item,.v-list.info>.v-list-item,.v-list.primary>.v-list-item,.v-list.secondary>.v-list-item,.v-list.success>.v-list-item,.v-list.warning>.v-list-item{color:#fff}.theme--light.v-list{background:#fff;color:rgba(0,0,0,.87)}.theme--light.v-list .v-list--disabled{color:rgba(0,0,0,.38)}.theme--light.v-list .v-list-group--active:after,.theme--light.v-list .v-list-group--active:before{background:rgba(0,0,0,.12)}.theme--dark.v-list{background:#424242;color:#fff}.theme--dark.v-list .v-list--disabled{color:hsla(0,0%,100%,.5)}.theme--dark.v-list .v-list-group--active:after,.theme--dark.v-list .v-list-group--active:before{background:hsla(0,0%,100%,.12)}.v-list{padding:8px 0}.v-list.v-sheet{position:static}.v-list--disabled{pointer-events:none}.v-list--flat .v-list-item:before{display:none}.v-list--dense .v-subheader{font-size:.75rem;height:40px;padding:0 8px}.v-list--nav .v-list-item:not(:last-child):not(:only-child),.v-list--rounded .v-list-item:not(:last-child):not(:only-child){margin-bottom:8px}.v-list--nav.v-list--dense .v-list-item:not(:last-child):not(:only-child),.v-list--nav .v-list-item--dense:not(:last-child):not(:only-child),.v-list--rounded.v-list--dense .v-list-item:not(:last-child):not(:only-child),.v-list--rounded .v-list-item--dense:not(:last-child):not(:only-child){margin-bottom:4px}.v-list--nav{padding-left:8px;padding-right:8px}.v-list--nav .v-list-item{padding:0 8px}.v-list--nav .v-list-item,.v-list--nav .v-list-item:before{border-radius:4px}.v-list--shaped{padding-right:8px}.v-list--shaped .v-list-item,.v-list--shaped .v-list-item:before,.v-list--shaped .v-ripple__container{border-bottom-right-radius:32px!important;border-top-right-radius:32px!important}.v-list--shaped.v-list--two-line .v-list-item,.v-list--shaped.v-list--two-line .v-list-item:before,.v-list--shaped.v-list--two-line .v-ripple__container{border-bottom-right-radius:42.6666666667px!important;border-top-right-radius:42.6666666667px!important}.v-list--shaped.v-list--three-line .v-list-item,.v-list--shaped.v-list--three-line .v-list-item:before,.v-list--shaped.v-list--three-line .v-ripple__container{border-bottom-right-radius:58.6666666667px!important;border-top-right-radius:58.6666666667px!important}.v-application--is-rtl .v-list--shaped{padding-left:8px;padding-right:0}.v-list--rounded{padding:8px}.v-list--rounded .v-list-item,.v-list--rounded .v-list-item:before,.v-list--rounded .v-ripple__container{border-radius:32px!important}.v-list--rounded.v-list--two-line .v-list-item,.v-list--rounded.v-list--two-line .v-list-item:before,.v-list--rounded.v-list--two-line .v-ripple__container{border-radius:42.6666666667px!important}.v-list--rounded.v-list--three-line .v-list-item,.v-list--rounded.v-list--three-line .v-list-item:before,.v-list--rounded.v-list--three-line .v-ripple__container{border-radius:58.6666666667px!important}.v-list--subheader{padding-top:0}.v-list-group .v-list-item__icon.v-list-group__header__append-icon{min-width:48px;justify-content:flex-end;margin-left:0}.v-list-group--sub-group{align-items:center;display:flex;flex-wrap:wrap}.v-list-group__header.v-list-item--active:not(:hover):not(:focus):before{opacity:0}.v-list-group__items{flex:1 1 auto}.v-list-group--active>.v-list-group__header.v-list-group__header--sub-group>.v-list-group__header__prepend-icon .v-icon,.v-list-group--active>.v-list-group__header>.v-list-group__header__append-icon .v-icon{transform:rotate(-180deg)}.v-list-group--active>.v-list-group__header .v-list-group__header__prepend-icon .v-icon,.v-list-group--active>.v-list-group__header .v-list-item,.v-list-group--active>.v-list-group__header .v-list-item__content{color:inherit}.v-application--is-ltr .v-list-group--sub-group .v-list-item__action:first-child,.v-application--is-ltr .v-list-group--sub-group .v-list-item__avatar:first-child,.v-application--is-ltr .v-list-group--sub-group .v-list-item__icon:first-child{margin-right:16px}.v-application--is-rtl .v-list-group--sub-group .v-list-item__action:first-child,.v-application--is-rtl .v-list-group--sub-group .v-list-item__avatar:first-child,.v-application--is-rtl .v-list-group--sub-group .v-list-item__icon:first-child{margin-left:16px}.v-application--is-ltr .v-list-group--sub-group .v-list-group__header{padding-left:32px}.v-application--is-rtl .v-list-group--sub-group .v-list-group__header{padding-right:32px}.v-application--is-ltr .v-list-group--sub-group .v-list-group__items .v-list-item{padding-left:40px}.v-application--is-rtl .v-list-group--sub-group .v-list-group__items .v-list-item{padding-right:40px}.v-list-group--sub-group.v-list-group--active .v-list-item__icon.v-list-group__header__prepend-icon .v-icon{transform:rotate(-180deg)}.v-application--is-ltr .v-list-group--no-action>.v-list-group__items>div>.v-list-item{padding-left:72px}.v-application--is-rtl .v-list-group--no-action>.v-list-group__items>div>.v-list-item{padding-right:72px}.v-application--is-ltr .v-list-group--no-action.v-list-group--sub-group>.v-list-group__items>div>.v-list-item{padding-left:88px}.v-application--is-rtl .v-list-group--no-action.v-list-group--sub-group>.v-list-group__items>div>.v-list-item{padding-right:88px}.v-application--is-ltr .v-list--dense .v-list-group--sub-group .v-list-group__header{padding-left:24px}.v-application--is-rtl .v-list--dense .v-list-group--sub-group .v-list-group__header{padding-right:24px}.v-application--is-ltr .v-list--dense .v-list-group--no-action>.v-list-group__items>div>.v-list-item{padding-left:64px}.v-application--is-rtl .v-list--dense .v-list-group--no-action>.v-list-group__items>div>.v-list-item{padding-right:64px}.v-application--is-ltr .v-list--dense .v-list-group--no-action.v-list-group--sub-group>.v-list-group__items>div>.v-list-item{padding-left:80px}.v-application--is-rtl .v-list--dense .v-list-group--no-action.v-list-group--sub-group>.v-list-group__items>div>.v-list-item{padding-right:80px}.v-avatar{align-items:center;border-radius:50%;display:inline-flex;justify-content:center;line-height:normal;position:relative;text-align:center;vertical-align:middle}.v-avatar .v-icon,.v-avatar .v-image,.v-avatar .v-responsive__content,.v-avatar img{border-radius:inherit;display:inline-flex;height:inherit;width:inherit}.v-avatar--tile{border-radius:0}.v-list-item-group .v-list-item--active{color:inherit}.v-item-group{flex:0 1 auto;position:relative;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-chip:not(.v-chip--outlined).accent,.v-chip:not(.v-chip--outlined).error,.v-chip:not(.v-chip--outlined).info,.v-chip:not(.v-chip--outlined).primary,.v-chip:not(.v-chip--outlined).secondary,.v-chip:not(.v-chip--outlined).success,.v-chip:not(.v-chip--outlined).warning{color:#fff}.theme--light.v-chip{border-color:rgba(0,0,0,.12);color:rgba(0,0,0,.87)}.theme--light.v-chip:not(.v-chip--active){background:#e0e0e0}.theme--light.v-chip:hover:before{opacity:.04}.theme--light.v-chip--active:before,.theme--light.v-chip--active:hover:before,.theme--light.v-chip:focus:before{opacity:.12}.theme--light.v-chip--active:focus:before{opacity:.16}.theme--dark.v-chip{border-color:hsla(0,0%,100%,.12);color:#fff}.theme--dark.v-chip:not(.v-chip--active){background:#555}.theme--dark.v-chip:hover:before{opacity:.08}.theme--dark.v-chip--active:before,.theme--dark.v-chip--active:hover:before,.theme--dark.v-chip:focus:before{opacity:.24}.theme--dark.v-chip--active:focus:before{opacity:.32}.v-chip{align-items:center;cursor:default;display:inline-flex;line-height:20px;outline:none;padding:0 12px;position:relative;text-decoration:none;transition-duration:.28s;transition-property:box-shadow,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);vertical-align:middle}.v-chip:before{background-color:currentColor;bottom:0;border-radius:inherit;content:"";left:0;opacity:0;position:absolute;pointer-events:none;right:0;top:0}.v-chip .v-avatar{height:24px!important;min-width:24px!important;width:24px!important}.v-chip .v-icon{font-size:24px}.v-chip .v-avatar--left,.v-chip .v-icon--left{margin-left:-6px;margin-right:8px}.v-application--is-rtl .v-chip .v-avatar--left,.v-application--is-rtl .v-chip .v-icon--left,.v-chip .v-avatar--right,.v-chip .v-icon--right{margin-left:8px;margin-right:-6px}.v-application--is-rtl .v-chip .v-avatar--right,.v-application--is-rtl .v-chip .v-icon--right{margin-left:-6px;margin-right:8px}.v-chip:not(.v-chip--no-color) .v-icon{color:inherit}.v-chip__close.v-icon{font-size:18px;max-height:18px;max-width:18px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-chip__close.v-icon.v-icon--right{margin-right:-4px}.v-application--is-rtl .v-chip__close.v-icon.v-icon--right{margin-left:-4px;margin-right:8px}.v-chip__close.v-icon:active,.v-chip__close.v-icon:focus,.v-chip__close.v-icon:hover{opacity:.72}.v-chip__content{align-items:center;display:inline-flex;height:100%}.v-chip--active .v-icon{color:inherit}.v-chip--link:before{transition:opacity .3s cubic-bezier(.25,.8,.5,1)}.v-chip--link:focus:before{opacity:.32}.v-chip--clickable{cursor:pointer}.v-chip--clickable:active{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-chip--disabled{opacity:.4;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-chip__filter{max-width:24px}.v-chip__filter.v-icon{color:inherit}.v-chip__filter.expand-x-transition-enter,.v-chip__filter.expand-x-transition-leave-active{margin:0}.v-chip--pill .v-chip__filter{margin-right:0 16px 0 0}.v-chip--pill .v-avatar{height:32px!important;width:32px!important}.v-chip--pill .v-avatar--left{margin-left:-12px}.v-chip--pill .v-avatar--right{margin-right:-12px}.v-application--is-rtl .v-chip--pill .v-avatar--left{margin-left:chip-pill-avatar-margin-after;margin-right:-12px}.v-application--is-rtl .v-chip--pill .v-avatar--right{margin-left:-12px;margin-right:chip-pill-avatar-margin-after}.v-chip--label{border-radius:4px!important}.v-chip.v-chip--outlined{border-width:thin;border-style:solid}.v-chip.v-chip--outlined:not(.v-chip--active):before{opacity:0}.v-chip.v-chip--outlined.v-chip--active:before{opacity:.08}.v-chip.v-chip--outlined .v-icon{color:inherit}.v-chip.v-chip--outlined.v-chip.v-chip{background-color:transparent!important}.v-chip.v-chip--selected{background:transparent}.v-chip.v-chip--selected:after{opacity:.28}.v-chip.v-size--x-small{border-radius:8px;font-size:10px;height:16px}.v-chip.v-size--small{border-radius:12px;font-size:12px;height:24px}.v-chip.v-size--default{border-radius:16px;font-size:14px;height:32px}.v-chip.v-size--large{border-radius:27px;font-size:16px;height:54px}.v-chip.v-size--x-large{border-radius:33px;font-size:18px;height:66px}.v-menu{display:block;vertical-align:middle}.v-menu--inline{display:inline-block}.v-menu__activator{align-items:center;cursor:pointer;display:flex}.v-menu__activator *{cursor:pointer}.v-menu__content{position:absolute;display:inline-block;border-radius:2px;max-width:80%;overflow-y:auto;overflow-x:hidden;contain:content;will-change:transform;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.v-menu__content--active{pointer-events:none}.v-menu__content--auto .v-list-item{transition-property:transform,opacity;transition-duration:.3s;transition-timing-function:cubic-bezier(.25,.8,.25,1)}.v-menu__content--fixed{position:fixed}.v-menu__content>.card{contain:content;-webkit-backface-visibility:hidden;backface-visibility:hidden}.v-menu>.v-menu__content{max-width:none}.v-menu-transition-enter .v-list-item{min-width:0;pointer-events:none}.v-menu-transition-enter-to .v-list-item{pointer-events:auto;transition-delay:.1s}.v-menu-transition-leave-active,.v-menu-transition-leave-to{pointer-events:none}.v-menu-transition-enter,.v-menu-transition-leave-to{opacity:0}.v-menu-transition-enter-active,.v-menu-transition-leave-active{transition:all .3s cubic-bezier(.25,.8,.25,1)}.v-menu-transition-enter.v-menu__content--auto{transition:none!important}.v-menu-transition-enter.v-menu__content--auto .v-list-item{opacity:0;transform:translateY(-15px)}.v-menu-transition-enter.v-menu__content--auto .v-list-item--active{opacity:1;transform:none!important;pointer-events:auto}.v-badge{display:inline-block;line-height:1;position:relative}.v-badge__badge{align-items:center;border-radius:11px;color:#fff;display:inline-flex;flex-direction:row;flex-wrap:wrap;font-size:14px;height:22px;justify-content:center;line-height:normal;min-width:22px;padding:0 4px;position:absolute;right:-22px;top:-11px;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-badge__badge .v-icon{font-size:14px}.v-badge--overlap .v-badge__badge{top:-8px;right:-8px}.v-badge--overlap.v-badge--left .v-badge__badge{left:-8px;right:auto}.v-badge--overlap.v-badge--bottom .v-badge__badge{bottom:-8px;top:auto}.v-badge--left .v-badge__badge{left:-22px;right:auto}.v-badge--bottom .v-badge__badge{bottom:-11px;top:auto}.v-application--is-rtl .v-badge__badge{right:auto;left:-22px}.v-application--is-rtl .v-badge--overlap .v-badge__badge{right:auto;left:-8px}.v-application--is-rtl .v-badge--overlap.v-badge--left .v-badge__badge{right:-8px;left:auto}.v-application--is-rtl .v-badge--left .v-badge__badge{right:-22px;left:auto}.theme--light.v-banner .v-banner__wrapper{border-bottom:1px solid rgba(0,0,0,.12)}.theme--dark.v-banner .v-banner__wrapper{border-bottom:1px solid hsla(0,0%,100%,.12)}.v-banner__actions{align-items:center;align-self:flex-end;display:flex;flex:1 0 auto;justify-content:flex-end;margin-left:90px;margin-bottom:-8px}.v-banner__actions>*{margin-left:8px}.v-application--is-rtl .v-banner__actions>*{margin-left:0;margin-right:8px}.v-application--is-rtl .v-banner__actions{margin-left:0;margin-right:90px}.v-banner__content{align-items:center;display:flex;flex:1 1 auto;overflow:hidden}.v-banner__text{line-height:20px}.v-banner__icon{display:inline-flex;margin-right:24px;flex:0 0 auto}.v-application--is-rtl .v-banner__icon{margin-left:24px;margin-right:0}.v-banner__wrapper{align-items:center;display:flex;flex:1 1 auto;padding:16px 8px 16px 24px}.v-application--is-rtl .v-banner__wrapper{padding-right:24px;padding-left:8px}.v-banner--single-line .v-banner__actions{margin-bottom:0}.v-banner--single-line .v-banner__text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v-banner--single-line .v-banner__wrapper{padding-top:8px;padding-bottom:8px}.v-banner--has-icon .v-banner__wrapper{padding-left:16px}.v-application--is-rtl .v-banner--has-icon .v-banner__wrapper{padding-left:8px;padding-right:16px}.v-banner--is-mobile .v-banner__actions{flex:1 0 100%;margin-left:0;margin-right:0;padding-top:12px}.v-banner--is-mobile .v-banner__wrapper{flex-wrap:wrap;padding-left:16px;padding-top:16px}.v-application--is-rtl .v-banner--is-mobile .v-banner__wrapper{padding-left:0;padding-right:16px}.v-banner--is-mobile.v-banner--has-icon .v-banner__wrapper{padding-top:24px}.v-banner--is-mobile.v-banner--single-line .v-banner__actions{flex:initial;margin-left:36px;padding-top:0}.v-application--is-rtl .v-banner--is-mobile.v-banner--single-line .v-banner__actions{margin-left:0;margin-right:36px}.v-banner--is-mobile.v-banner--single-line .v-banner__wrapper{flex-wrap:nowrap;padding-top:10px}.v-banner--is-mobile .v-banner__icon{margin-right:16px}.v-application--is-rtl .v-banner--is-mobile .v-banner__icon{margin-right:0;margin-left:16px}.v-banner--is-mobile .v-banner__content{padding-right:8px}.v-application--is-rtl .v-banner--is-mobile .v-banner__content{padding-left:8px;padding-right:0}.v-banner--is-mobile .v-banner__content .v-banner__wrapper{flex-wrap:nowrap;padding-top:10px}.theme--light.v-bottom-navigation{background-color:#fff;color:rgba(0,0,0,.87)}.theme--light.v-bottom-navigation .v-btn:not(.v-btn--active){color:rgba(0,0,0,.54)!important}.theme--dark.v-bottom-navigation{background-color:#424242;color:#fff}.theme--dark.v-bottom-navigation .v-btn:not(.v-btn--active){color:hsla(0,0%,100%,.7)!important}.v-item-group.v-bottom-navigation{bottom:0;display:flex;left:0;justify-content:center;width:100%;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.v-item-group.v-bottom-navigation .v-btn:not(.v-btn--flat):not(.v-btn--text):not(.v-btn--outlined){background-color:transparent}.v-item-group.v-bottom-navigation .v-btn{border-radius:0;box-shadow:none;flex:0 1 auto;font-size:.75rem;height:inherit;max-width:168px;min-width:80px;position:relative;text-transform:none}.v-item-group.v-bottom-navigation .v-btn:after{content:none}.v-item-group.v-bottom-navigation .v-btn .v-btn__content{flex-direction:column-reverse;height:inherit;opacity:.7}.v-item-group.v-bottom-navigation .v-btn .v-btn__content .v-icon{margin-bottom:4px}.v-item-group.v-bottom-navigation .v-btn .v-btn__content>:not(.v-icon){line-height:1.2}.v-item-group.v-bottom-navigation .v-btn.v-btn--active{color:inherit}.v-item-group.v-bottom-navigation .v-btn.v-btn--active:not(:hover):before{opacity:0}.v-item-group.v-bottom-navigation .v-btn.v-btn--active .v-btn__content{opacity:1}.v-item-group.v-bottom-navigation--absolute,.v-item-group.v-bottom-navigation--fixed{z-index:4}.v-item-group.v-bottom-navigation--absolute{position:absolute}.v-item-group.v-bottom-navigation--active{transform:translate(0)}.v-item-group.v-bottom-navigation--fixed{position:fixed}.v-item-group.v-bottom-navigation--grow .v-btn{width:100%}.v-item-group.v-bottom-navigation--horizontal .v-btn>.v-btn__content{flex-direction:row-reverse}.v-item-group.v-bottom-navigation--horizontal .v-btn>.v-btn__content>.v-icon{margin-bottom:0;margin-right:16px}.v-item-group.v-bottom-navigation--shift .v-btn .v-btn__content>:not(.v-icon){opacity:0;position:absolute;top:calc(100% - 12px);transform:scale(.9);transition:.3s cubic-bezier(.25,.8,.5,1)}.v-item-group.v-bottom-navigation--shift .v-btn--active .v-btn__content>.v-icon{transform:translateY(-8px)}.v-item-group.v-bottom-navigation--shift .v-btn--active .v-btn__content>:not(.v-icon){opacity:1;top:calc(100% - 22px);transform:scale(1)}.bottom-sheet-transition-enter,.bottom-sheet-transition-leave-to{transform:translateY(100%)}.v-bottom-sheet.v-dialog{align-self:flex-end;border-radius:0;flex:1 0 100%;margin:0;min-width:100%;overflow:visible}.v-bottom-sheet.v-dialog.v-bottom-sheet--inset{max-width:70%;min-width:0}@media only screen and (max-width:599px){.v-bottom-sheet.v-dialog.v-bottom-sheet--inset{max-width:none}}.v-dialog{border-radius:4px;margin:24px;overflow-y:auto;pointer-events:auto;transition:.3s cubic-bezier(.25,.8,.25,1);width:100%;z-index:inherit;box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)}.v-dialog:not(.v-dialog--fullscreen){max-height:90%}.v-dialog>*{width:100%}.v-dialog__content{align-items:center;display:flex;height:100%;justify-content:center;left:0;pointer-events:none;position:fixed;top:0;transition:.2s cubic-bezier(.25,.8,.25,1);width:100%;z-index:6;outline:none}.v-dialog__activator,.v-dialog__activator *{cursor:pointer}.v-dialog__container{display:inline-block;vertical-align:middle}.v-dialog--animated{-webkit-animation-duration:.15s;animation-duration:.15s;-webkit-animation-name:animate-dialog;animation-name:animate-dialog;-webkit-animation-timing-function:cubic-bezier(.25,.8,.25,1);animation-timing-function:cubic-bezier(.25,.8,.25,1)}.v-dialog--fullscreen{border-radius:0;margin:0;height:100%;position:fixed;overflow-y:auto;top:0;left:0}.v-dialog--fullscreen>.v-card{min-height:100%;min-width:100%;margin:0!important;padding:0!important}.v-dialog--scrollable,.v-dialog--scrollable>form{display:flex}.v-dialog--scrollable>.v-card,.v-dialog--scrollable>form>.v-card{display:flex;flex:1 1 100%;flex-direction:column;max-height:100%;max-width:100%}.v-dialog--scrollable>.v-card>.v-card__actions,.v-dialog--scrollable>.v-card>.v-card__title,.v-dialog--scrollable>form>.v-card>.v-card__actions,.v-dialog--scrollable>form>.v-card>.v-card__title{flex:0 0 auto}.v-dialog--scrollable>.v-card>.v-card__text,.v-dialog--scrollable>form>.v-card>.v-card__text{-webkit-backface-visibility:hidden;backface-visibility:hidden;flex:1 1 auto;overflow-y:auto}@-webkit-keyframes animate-dialog{0%{transform:scale(1)}50%{transform:scale(1.03)}to{transform:scale(1)}}@keyframes animate-dialog{0%{transform:scale(1)}50%{transform:scale(1.03)}to{transform:scale(1)}}.theme--light.v-overlay{color:rgba(0,0,0,.87)}.theme--dark.v-overlay{color:#fff}.v-overlay{align-items:center;border-radius:inherit;display:flex;justify-content:center;position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-overlay__content{position:relative}.v-overlay__scrim{border-radius:inherit;bottom:0;height:100%;left:0;position:absolute;right:0;top:0;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%;will-change:opacity}.v-overlay--absolute{position:absolute}.v-overlay--active{pointer-events:auto;touch-action:none}.theme--light.v-breadcrumbs .v-breadcrumbs__divider,.theme--light.v-breadcrumbs .v-breadcrumbs__item--disabled{color:rgba(0,0,0,.38)}.theme--dark.v-breadcrumbs .v-breadcrumbs__divider,.theme--dark.v-breadcrumbs .v-breadcrumbs__item--disabled{color:hsla(0,0%,100%,.5)}.v-breadcrumbs{align-items:center;display:flex;flex-wrap:wrap;flex:0 1 auto;list-style-type:none;margin:0;padding:18px 12px}.v-breadcrumbs li{align-items:center;display:inline-flex;font-size:14px}.v-breadcrumbs li .v-icon{font-size:16px}.v-breadcrumbs li:nth-child(2n){padding:0 12px}.v-breadcrumbs__item{align-items:center;display:inline-flex;text-decoration:none;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-breadcrumbs__item--disabled{pointer-events:none}.v-breadcrumbs--large li,.v-breadcrumbs--large li .v-icon{font-size:16px}.theme--light.v-btn-toggle{background:#fff;color:rgba(0,0,0,.87)}.theme--light.v-btn-toggle .v-btn.v-btn{border-color:rgba(0,0,0,.12)!important}.theme--light.v-btn-toggle .v-btn.v-btn:focus:not(:active){border-color:rgba(0,0,0,.26)}.theme--light.v-btn-toggle .v-btn.v-btn .v-icon{color:#000}.theme--dark.v-btn-toggle{background:#424242;color:#fff}.theme--dark.v-btn-toggle .v-btn.v-btn{border-color:hsla(0,0%,100%,.12)!important}.theme--dark.v-btn-toggle .v-btn.v-btn:focus:not(:active){border-color:hsla(0,0%,100%,.3)}.theme--dark.v-btn-toggle .v-btn.v-btn .v-icon{color:#fff}.v-btn-toggle{border-radius:2px;display:inline-flex;max-width:100%}.v-btn-toggle>.v-btn{opacity:.8}.v-btn-toggle>.v-btn--active{color:inherit;opacity:1}.v-btn-toggle>.v-btn.v-size--default{height:48px;min-height:0;min-width:48px;padding:0 12px}.v-btn-toggle>.v-btn.v-btn{border-radius:0;border-style:solid;border-width:thin;box-shadow:none}.v-btn-toggle>.v-btn.v-btn:first-child{border-top-left-radius:inherit;border-bottom-left-radius:inherit}.v-btn-toggle>.v-btn.v-btn:last-child{border-top-right-radius:inherit;border-bottom-right-radius:inherit}.v-btn-toggle>.v-btn.v-btn:after{display:none}.v-btn-toggle>.v-btn.v-btn:not(:first-child){border-left-width:0}.v-btn-toggle--rounded{border-radius:24px}.theme--dark.v-calendar-events .v-event-timed,.theme--light.v-calendar-events .v-event-timed{border:1px solid!important}.v-calendar .v-event{position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;cursor:pointer;margin-right:-1px}.v-calendar .v-event.v-event-start{border-top-left-radius:4px;border-bottom-left-radius:4px}.v-calendar .v-event.v-event-end{width:95%;border-top-right-radius:4px;border-bottom-right-radius:4px}.v-calendar .v-event-more{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;cursor:pointer;border-radius:4px;font-weight:700;width:95%}.v-calendar .v-event-timed-container{position:absolute;top:0;bottom:0;left:0;width:95%;pointer-events:none}.v-calendar .v-event-timed{position:absolute;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:12px;cursor:pointer;border-radius:4px;pointer-events:all}.v-calendar.v-calendar-events .v-calendar-weekly__day{overflow:visible}.theme--light.v-calendar-weekly{background-color:#fff}.theme--light.v-calendar-weekly .v-calendar-weekly__head-weekday{border-right:1px solid #e0e0e0;color:#000}.theme--light.v-calendar-weekly .v-calendar-weekly__head-weekday.v-past{color:rgba(0,0,0,.38)}.theme--light.v-calendar-weekly .v-calendar-weekly__head-weekday.v-outside{background-color:#f7f7f7}.theme--light.v-calendar-weekly .v-calendar-weekly__day{border-right:1px solid #e0e0e0;border-bottom:1px solid #e0e0e0;color:#000}.theme--light.v-calendar-weekly .v-calendar-weekly__day.v-outside{background-color:#f7f7f7}.theme--dark.v-calendar-weekly{background-color:#303030}.theme--dark.v-calendar-weekly .v-calendar-weekly__head-weekday{border-right:1px solid #9e9e9e;color:#fff}.theme--dark.v-calendar-weekly .v-calendar-weekly__head-weekday.v-past{color:hsla(0,0%,100%,.5)}.theme--dark.v-calendar-weekly .v-calendar-weekly__head-weekday.v-outside{background-color:#202020}.theme--dark.v-calendar-weekly .v-calendar-weekly__day{border-right:1px solid #9e9e9e;border-bottom:1px solid #9e9e9e;color:#fff}.theme--dark.v-calendar-weekly .v-calendar-weekly__day.v-outside{background-color:#202020}.v-calendar-weekly{width:100%;height:100%;display:flex;flex-direction:column}.v-calendar-weekly__head{display:flex}.v-calendar-weekly__head,.v-calendar-weekly__head-weekday{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-calendar-weekly__head-weekday{flex:1 0 20px;padding:0 4px;font-size:11px;overflow:hidden;text-align:center;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.v-calendar-weekly__week{display:flex;flex:1;height:0}.v-calendar-weekly__day{flex:1;width:0;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;padding:0}.v-calendar-weekly__day.v-present .v-calendar-weekly__day-month{color:currentColor}.v-calendar-weekly__day-label{text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;box-shadow:none;text-align:center;margin:4px 0 0}.v-calendar-weekly__day-label .v-btn{font-size:12px;text-transform:none}.v-calendar-weekly__day-month{position:absolute;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-shadow:none;top:0;left:36px;height:32px;line-height:32px}.theme--light.v-calendar-daily{background-color:#fff}.theme--light.v-calendar-daily .v-calendar-daily__intervals-head{border-right:1px solid #e0e0e0}.theme--light.v-calendar-daily .v-calendar-daily_head-day{border-right:1px solid #e0e0e0;border-bottom:1px solid #e0e0e0;color:#000}.theme--light.v-calendar-daily .v-calendar-daily_head-day.v-past .v-calendar-daily_head-day-label,.theme--light.v-calendar-daily .v-calendar-daily_head-day.v-past .v-calendar-daily_head-weekday{color:rgba(0,0,0,.38)}.theme--light.v-calendar-daily .v-calendar-daily__intervals-body{border-right:1px solid #e0e0e0}.theme--light.v-calendar-daily .v-calendar-daily__intervals-body .v-calendar-daily__interval-text{color:#424242 1px solid}.theme--light.v-calendar-daily .v-calendar-daily__day{border-right:1px solid #e0e0e0;border-bottom:1px solid #e0e0e0}.theme--light.v-calendar-daily .v-calendar-daily__day-interval{border-top:1px solid #e0e0e0}.theme--light.v-calendar-daily .v-calendar-daily__day-interval:first-child{border-top:none!important}.theme--dark.v-calendar-daily{background-color:#303030}.theme--dark.v-calendar-daily .v-calendar-daily__intervals-head{border-right:1px solid #9e9e9e}.theme--dark.v-calendar-daily .v-calendar-daily_head-day{border-right:1px solid #9e9e9e;border-bottom:1px solid #9e9e9e;color:#fff}.theme--dark.v-calendar-daily .v-calendar-daily_head-day.v-past .v-calendar-daily_head-day-label,.theme--dark.v-calendar-daily .v-calendar-daily_head-day.v-past .v-calendar-daily_head-weekday{color:hsla(0,0%,100%,.5)}.theme--dark.v-calendar-daily .v-calendar-daily__intervals-body{border-right:1px solid #9e9e9e}.theme--dark.v-calendar-daily .v-calendar-daily__intervals-body .v-calendar-daily__interval-text{color:#eee 1px solid}.theme--dark.v-calendar-daily .v-calendar-daily__day{border-right:1px solid #9e9e9e;border-bottom:1px solid #9e9e9e}.theme--dark.v-calendar-daily .v-calendar-daily__day-interval{border-top:1px solid #9e9e9e}.theme--dark.v-calendar-daily .v-calendar-daily__day-interval:first-child{border-top:none!important}.v-calendar-daily{display:flex;flex-direction:column;overflow:hidden;height:100%}.v-calendar-daily__head{flex:none;display:flex}.v-calendar-daily__intervals-head{flex:none;width:44px}.v-calendar-daily_head-day{flex:1 1 auto;width:0}.v-calendar-daily_head-weekday{padding:3px 0 0;font-size:11px;text-transform:uppercase}.v-calendar-daily_head-day-label,.v-calendar-daily_head-weekday{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center}.v-calendar-daily_head-day-label{padding:0 0 3px;cursor:pointer}.v-calendar-daily__body{flex:1 1 60%;overflow:hidden;display:flex;position:relative;flex-direction:column}.v-calendar-daily__scroll-area{overflow-y:scroll;flex:1 1 auto;display:flex;align-items:flex-start}.v-calendar-daily__pane{width:100%;overflow-y:hidden;flex:none;display:flex;align-items:flex-start}.v-calendar-daily__day-container{display:flex;flex:1;width:100%;height:100%}.v-calendar-daily__intervals-body{flex:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:44px}.v-calendar-daily__interval{text-align:center;border-bottom:none}.v-calendar-daily__interval-text{display:block;position:relative;top:-6px;font-size:10px}.v-calendar-daily__day{flex:1;width:0;position:relative}.v-carousel{overflow:hidden;position:relative;width:100%}.v-carousel__controls{align-items:center;background:rgba(0,0,0,.3);bottom:0;display:flex;height:50px;justify-content:center;list-style-type:none;position:absolute;width:100%;z-index:1}.v-carousel__controls>.v-item-group{flex:0 1 auto}.v-carousel__controls__item{margin:0 8px}.v-carousel__controls__item .v-icon{opacity:.5}.v-carousel__controls__item--active .v-icon{opacity:1;vertical-align:middle}.v-carousel__controls__item:hover{background:none}.v-carousel__controls__item:hover .v-icon{opacity:.8}.v-carousel__progress{margin:0;position:absolute;bottom:0;left:0;right:0}.v-carousel .v-window-item{display:block;height:inherit;text-decoration:none}.v-carousel--hide-delimiter-background .v-carousel__controls{background:transparent}.v-carousel--vertical-delimiters .v-carousel__controls{height:100%!important;width:50px}.v-window__container{position:relative;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-window__container--is-active{overflow:hidden}.v-window__next,.v-window__prev{background:rgba(0,0,0,.3);border-radius:50%;position:absolute;margin:0 16px;top:calc(50% - 20px);z-index:1}.v-window__next .v-btn:hover,.v-window__prev .v-btn:hover{background:none}.v-window__prev{left:0}.v-window__next{right:0}.v-application--is-rtl .v-window__prev{left:auto;right:0}.v-application--is-rtl .v-window__next{left:0;right:auto}.v-window--show-arrows-on-hover{overflow:hidden}.v-window--show-arrows-on-hover .v-window__next,.v-window--show-arrows-on-hover .v-window__prev{transition:transform .2s cubic-bezier(.25,.8,.5,1)}.v-window--show-arrows-on-hover .v-window__prev{transform:translateX(-200%)}.v-window--show-arrows-on-hover .v-window__next{transform:translateX(200%)}.v-window--show-arrows-on-hover:hover .v-window__next,.v-window--show-arrows-on-hover:hover .v-window__prev{transform:translateX(0)}.v-window-x-reverse-transition-enter-active,.v-window-x-reverse-transition-leave-active,.v-window-x-transition-enter-active,.v-window-x-transition-leave-active,.v-window-y-reverse-transition-enter-active,.v-window-y-reverse-transition-leave-active,.v-window-y-transition-enter-active,.v-window-y-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.v-window-x-reverse-transition-leave,.v-window-x-reverse-transition-leave-to,.v-window-x-transition-leave,.v-window-x-transition-leave-to,.v-window-y-reverse-transition-leave,.v-window-y-reverse-transition-leave-to,.v-window-y-transition-leave,.v-window-y-transition-leave-to{position:absolute!important;top:0;width:100%}.v-window-x-transition-enter{transform:translateX(100%)}.v-window-x-reverse-transition-enter,.v-window-x-transition-leave-to{transform:translateX(-100%)}.v-window-x-reverse-transition-leave-to{transform:translateX(100%)}.v-window-y-transition-enter{transform:translateY(100%)}.v-window-y-reverse-transition-enter,.v-window-y-transition-leave-to{transform:translateY(-100%)}.v-window-y-reverse-transition-leave-to{transform:translateY(100%)}.v-input--checkbox.v-input--indeterminate.v-input--is-disabled{opacity:.6}.theme--light.v-input--selection-controls.v-input--is-disabled:not(.v-input--indeterminate) .v-icon{color:rgba(0,0,0,.26)!important}.theme--dark.v-input--selection-controls.v-input--is-disabled:not(.v-input--indeterminate) .v-icon{color:hsla(0,0%,100%,.3)!important}.v-input--selection-controls{margin-top:16px;padding-top:4px}.v-input--selection-controls .v-input__append-outer,.v-input--selection-controls .v-input__prepend-outer{margin-top:0;margin-bottom:0}.v-input--selection-controls .v-input__control{flex-grow:0;width:auto}.v-input--selection-controls:not(.v-input--hide-details) .v-input__slot{margin-bottom:12px}.v-input--selection-controls__input{color:inherit;display:inline-flex;flex:0 0 auto;height:24px;position:relative;margin-right:8px;transition:.3s cubic-bezier(.25,.8,.25,1);transition-property:color,transform;width:24px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-application--is-rtl .v-input--selection-controls__input{margin-right:0;margin-left:8px}.v-input--selection-controls__input input{position:absolute;opacity:0;width:100%;height:100%}.v-input--selection-controls__input+.v-label,.v-input--selection-controls__input input{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-input--selection-controls__ripple{border-radius:50%;cursor:pointer;height:34px;position:absolute;transition:inherit;width:34px;left:-12px;top:calc(50% - 24px);margin:7px}.v-input--selection-controls__ripple:before{border-radius:inherit;bottom:0;content:"";position:absolute;opacity:.2;left:0;right:0;top:0;transform-origin:center center;transform:scale(.2);transition:inherit}.v-input--selection-controls__ripple .v-ripple__container{transform:scale(1.2)}.v-input--selection-controls.v-input{flex:0 1 auto}.v-input--selection-controls.v-input .v-label{align-items:center;display:inline-flex;top:0;height:auto}.v-input--selection-controls.v-input--is-focused .v-input--selection-controls__ripple:before,.v-input--selection-controls .v-radio--is-focused .v-input--selection-controls__ripple:before{background:currentColor;opacity:.4;transform:scale(1.2)}.v-input--selection-controls .v-input--selection-controls__input:hover .v-input--selection-controls__ripple:before{background:currentColor;transform:scale(1.2);transition:none}.theme--light.v-chip-group .v-chip:not(.v-chip--active){color:rgba(0,0,0,.87)!important}.theme--dark.v-chip-group .v-chip:not(.v-chip--active){color:#fff!important}.v-chip-group .v-chip{margin:4px 8px 4px 0}.v-chip-group .v-chip--active{color:inherit}.v-chip-group .v-chip--active.v-chip--no-color:after{opacity:.22}.v-chip-group .v-chip--active.v-chip--no-color:focus:after{opacity:.32}.v-chip-group .v-slide-group__content{padding:4px 0}.v-chip-group--column .v-slide-group__content{white-space:normal;flex-wrap:wrap;max-width:100%}.v-slide-group{display:flex}.v-slide-group.v-item-group>.v-slide-group__next,.v-slide-group.v-item-group>.v-slide-group__prev{cursor:pointer}.v-slide-item{display:inline-flex;flex:0 1 auto}.v-slide-group__next,.v-slide-group__prev{align-items:center;display:flex;flex:0 1 52px;justify-content:center;min-width:52px}.v-slide-group__content{display:flex;flex:1 0 auto;position:relative;transition:.3s cubic-bezier(.25,.8,.5,1);white-space:nowrap}.v-slide-group__wrapper{contain:content;display:flex;flex:1 1 auto;overflow:hidden}.v-slide-group__next--disabled,.v-slide-group__prev--disabled{pointer-events:none}.theme--light.v-color-picker .v-color-picker__input input{border:thin solid rgba(0,0,0,.12)}.theme--light.v-color-picker span{color:rgba(0,0,0,.54)}.theme--light.v-color-picker .v-color-picker__color,.theme--light.v-color-picker .v-color-picker__dot{background-color:hsla(0,0%,100%,0)}.theme--dark.v-color-picker .v-color-picker__input input{border:thin solid hsla(0,0%,100%,.12)}.theme--dark.v-color-picker span{color:hsla(0,0%,100%,.7)}.theme--dark.v-color-picker .v-color-picker__color,.theme--dark.v-color-picker .v-color-picker__dot{background-color:hsla(0,0%,100%,.12)}.v-color-picker{align-self:flex-start;contain:content;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-color-picker__controls{display:flex;flex-direction:column;padding:16px}.v-color-picker--flat,.v-color-picker--flat .v-color-picker__track:not(.v-input--is-disabled) .v-slider__thumb{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.v-color-picker__edit{margin-top:24px;display:flex}.v-color-picker__input{width:100%;display:flex;flex-wrap:wrap;justify-content:center;text-align:center}.v-color-picker__input:not(:last-child){margin-right:8px}.v-color-picker__input input{border-radius:4px;margin-bottom:8px;min-width:0;outline:none;text-align:center;width:100%;height:28px}.v-color-picker__input span{font-size:.75rem}.v-color-picker__canvas{position:relative;overflow:hidden;contain:strict}.v-color-picker__canvas-dot{position:absolute;top:0;left:0;width:15px;height:15px;background:transparent;border-radius:50%;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1.5px rgba(0,0,0,.3)}.v-color-picker__canvas-dot--disabled{box-shadow:0 0 0 1.5px hsla(0,0%,100%,.7),inset 0 0 1px 1.5px rgba(0,0,0,.3)}.v-color-picker__canvas:hover .v-color-picker__canvas-dot{will-change:transform}.v-color-picker .v-input__slider{border-radius:5px}.v-color-picker .v-input__slider .v-slider{margin:0}.v-color-picker__alpha:not(.v-input--is-disabled) .v-slider{border-radius:5px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGElEQVQYlWNgYGCQwoKxgqGgcJA5h3yFAAs8BRWVSwooAAAAAElFTkSuQmCC) repeat}.v-color-picker__sliders{display:flex;flex:1 0 auto;flex-direction:column}.v-color-picker__dot{position:relative;height:30px;margin-right:24px;width:30px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGElEQVQYlWNgYGCQwoKxgqGgcJA5h3yFAAs8BRWVSwooAAAAAElFTkSuQmCC) repeat;border-radius:50%;overflow:hidden}.v-color-picker__dot>div{width:100%;height:100%}.v-color-picker__hue{margin-bottom:24px}.v-color-picker__hue:not(.v-input--is-disabled){background:linear-gradient(90deg,red 0,#ff0 16.66%,#0f0 33.33%,#0ff 50%,#00f 66.66%,#f0f 83.33%,red)}.v-color-picker__track{position:relative;width:100%}.v-color-picker__preview{align-items:center;display:flex}.v-color-picker__preview .v-slider{min-height:10px}.v-color-picker__preview .v-slider:not(.v-slider--disabled) .v-slider__thumb{box-shadow:0 3px 3px -2px rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12)}.v-color-picker__preview .v-slider:not(.v-slider--disabled) .v-slider__track-container{opacity:0}.theme--light.v-slider .v-slider__thumb,.theme--light.v-slider .v-slider__track-background,.theme--light.v-slider .v-slider__track-fill{background:rgba(0,0,0,.26)}.theme--dark.v-slider .v-slider__thumb,.theme--dark.v-slider .v-slider__track-background,.theme--dark.v-slider .v-slider__track-fill{background:hsla(0,0%,100%,.2)}.v-slider{cursor:default;display:flex;align-items:center;position:relative;flex:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-slider input{cursor:default;padding:0;width:100%;display:none}.v-slider__track-container{position:absolute;border-radius:0}.v-slider__thumb-container,.v-slider__track-background,.v-slider__track-fill{position:absolute;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-slider__thumb-container{outline:none;top:50%}.v-slider__thumb-container:hover .v-slider__thumb:before{transform:scale(1)}.v-slider__thumb{width:12px;height:12px;left:-6px;top:50%;transform:translateY(-50%);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-slider__thumb,.v-slider__thumb:before{position:absolute;border-radius:50%;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-slider__thumb:before{content:"";color:inherit;width:36px;height:36px;background:currentColor;opacity:.3;left:-12px;top:-12px;transform:scale(.1);pointer-events:none}.v-slider__tick,.v-slider__ticks-container{position:absolute}.v-slider__tick{opacity:0;background-color:rgba(0,0,0,.5);transition:.3s cubic-bezier(.25,.8,.5,1);border-radius:0}.v-slider__tick--filled{background-color:hsla(0,0%,100%,.5)}.v-slider__tick:first-child .v-slider__tick-label{transform:none}.v-application--is-rtl .v-slider__tick:first-child .v-slider__tick-label{transform:translateX(100%)}.v-slider__tick:last-child .v-slider__tick-label{transform:translateX(-100%)}.v-application--is-rtl .v-slider__tick:last-child .v-slider__tick-label{transform:none}.v-slider__tick-label{position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap}.v-slider__thumb-label-container{top:0}.v-slider__thumb-label,.v-slider__thumb-label-container{position:absolute;left:0;transition:.3s cubic-bezier(.25,.8,.25,1)}.v-slider__thumb-label{display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff;width:32px;height:32px;border-radius:50% 50% 0;bottom:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-slider--horizontal{min-height:32px;margin-left:8px;margin-right:8px}.v-slider--horizontal .v-slider__track-container{width:100%;height:2px;left:0;top:50%;transform:translateY(-50%)}.v-slider--horizontal .v-slider__track-background,.v-slider--horizontal .v-slider__track-fill{height:100%}.v-slider--horizontal .v-slider__ticks-container{left:0;height:2px;width:100%}.v-slider--horizontal .v-slider__tick:first-child .v-slider__tick-label{transform:translateX(0)}.v-application--is-rtl .v-slider--horizontal .v-slider__tick:first-child .v-slider__tick-label{transform:translate(100%)}.v-slider--horizontal .v-slider__tick:last-child .v-slider__tick-label{transform:translateX(-100%)}.v-application--is-rtl .v-slider--horizontal .v-slider__tick:last-child .v-slider__tick-label{transform:translateX(0)}.v-slider--horizontal .v-slider__tick .v-slider__tick-label{top:8px;transform:translateX(-50%)}.v-application--is-rtl .v-slider--horizontal .v-slider__tick .v-slider__tick-label{transform:translateX(50%)}.v-slider--horizontal .v-slider__thumb-label{transform:translateY(-20%) translateY(-12px) translateX(-50%) rotate(45deg)}.v-slider--horizontal .v-slider__thumb-label>*{transform:rotate(-45deg)}.v-slider--vertical{min-height:150px;margin-top:12px;margin-bottom:12px}.v-slider--vertical .v-slider__track-container{height:100%;width:2px;left:50%;top:0;transform:translateX(-50%)}.v-slider--vertical .v-slider__track-background,.v-slider--vertical .v-slider__track-fill{width:100%}.v-slider--vertical .v-slider__thumb-container{left:50%}.v-slider--vertical .v-slider__ticks-container{top:0;width:2px;height:100%;left:50%;transform:translateX(-50%)}.v-slider--vertical .v-slider__tick:first-child .v-slider__tick-label{transform:translateY(-50%)}.v-application--is-rtl .v-slider--vertical .v-slider__tick:first-child .v-slider__tick-label{right:12px}.v-application--is-rtl .v-slider--vertical .v-slider__tick:last-child .v-slider__tick-label,.v-slider--vertical .v-slider__tick:last-child .v-slider__tick-label{transform:translateY(-50%)}.v-slider--vertical .v-slider__tick .v-slider__tick-label{left:12px;transform:translateY(-50%)}.v-application--is-rtl .v-slider--vertical .v-slider__tick .v-slider__tick-label{left:auto;right:12px}.v-slider--vertical .v-slider__thumb-label>*{transform:rotate(-135deg)}.v-slider__thumb-container--focused .v-slider__thumb:before{transform:scale(1)}.v-slider--active .v-slider__tick{opacity:1}.v-slider__thumb-container--active .v-slider__thumb:before{transform:scale(1.5)!important}.v-slider--disabled{pointer-events:none}.v-slider--disabled .v-slider__thumb{width:8px;height:8px;left:-4px}.v-slider--disabled .v-slider__thumb:before{display:none}.v-slider__ticks-container--always-show .v-slider__tick{opacity:1}.v-slider--readonly{pointer-events:none}.v-input__slider .v-input__slot .v-label{margin-left:0;margin-right:12px}.v-application--is-rtl .v-input__slider .v-input__slot .v-label,.v-input__slider--inverse-label .v-input__slot .v-label{margin-right:0;margin-left:12px}.v-application--is-rtl .v-input__slider--inverse-label .v-input__slot .v-label{margin-left:0;margin-right:12px}.v-input__slider--vertical{align-items:center;flex-direction:column-reverse}.v-application--is-rtl .v-input__slider--vertical{flex-direction:column}.v-input__slider--vertical .v-input__append-outer,.v-input__slider--vertical .v-input__prepend-outer,.v-input__slider--vertical .v-input__slot{margin:0}.v-input__slider--vertical .v-messages{display:none}.v-input--has-state .v-slider__track-background{opacity:.4}.v-color-picker__swatches{overflow-y:auto}.v-color-picker__swatches>div{display:flex;flex-wrap:wrap;padding:8px}.v-color-picker__swatch{display:flex;flex-direction:column;margin-bottom:10px}.v-color-picker__color{position:relative;height:18px;max-height:18px;width:45px;margin:2px 4px;border-radius:2px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGElEQVQYlWNgYGCQwoKxgqGgcJA5h3yFAAs8BRWVSwooAAAAAElFTkSuQmCC) repeat;cursor:pointer}.v-color-picker__color>div{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.v-content{display:flex;flex:1 0 auto;max-width:100%;transition:.2s cubic-bezier(.4,0,.2,1)}.v-content:not([data-booted=true]){transition:none!important}.v-content__wrap{flex:1 1 auto;max-width:100%;position:relative}@-moz-document url-prefix(){@media print{.v-content{display:block}}}.v-data-footer{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;font-size:12px}.v-data-footer .v-btn{color:inherit}.v-application--is-ltr .v-data-footer__icons-before .v-btn:last-child{margin-right:7px}.v-application--is-ltr .v-data-footer__icons-after .v-btn:first-child,.v-application--is-rtl .v-data-footer__icons-before .v-btn:last-child{margin-left:7px}.v-application--is-rtl .v-data-footer__icons-after .v-btn:first-child{margin-right:7px}.v-data-footer__pagination{display:block;text-align:center}.v-application--is-ltr .v-data-footer__pagination{margin:0 32px 0 24px}.v-application--is-rtl .v-data-footer__pagination{margin:0 24px 0 32px}.v-data-footer__select{display:flex;align-items:center;flex:0 0 0;justify-content:flex-end;white-space:nowrap}.v-application--is-ltr .v-data-footer__select{margin-right:14px}.v-application--is-rtl .v-data-footer__select{margin-left:14px}.v-data-footer__select .v-select{flex:0 1 0;padding:0;position:static}.v-application--is-ltr .v-data-footer__select .v-select{margin:13px 0 13px 34px}.v-application--is-rtl .v-data-footer__select .v-select{margin:13px 34px 13px 0}.v-data-footer__select .v-select__selections{flex-wrap:nowrap}.v-data-footer__select .v-select__selections .v-select__selection--comma{font-size:12px}.theme--light.v-data-table tbody tr:hover:not(.v-data-table__expand-row){background:#eee}.theme--light.v-data-table tbody tr.expanded.expanded__row{background:#f5f5f5}.theme--light.v-data-table .v-row-group__header,.theme--light.v-data-table .v-row-group__summary{background:#e0e0e0}.theme--light.v-data-table .v-data-footer{border-top:1px solid rgba(0,0,0,.12)}.theme--light.v-data-table .v-data-table__empty-wrapper{color:rgba(0,0,0,.38)}.theme--dark.v-data-table tbody tr:hover:not(.v-data-table__expand-row){background:#616161}.theme--dark.v-data-table tbody tr.expanded.expanded__row{background:#505050}.theme--dark.v-data-table .v-row-group__header,.theme--dark.v-data-table .v-row-group__summary{background:#757575}.theme--dark.v-data-table .v-data-footer{border-top:1px solid hsla(0,0%,100%,.12)}.theme--dark.v-data-table .v-data-table__empty-wrapper{color:hsla(0,0%,100%,.5)}.v-data-table tbody tr.expanded{border-bottom:0}.v-data-table tbody tr.expanded.expanded__content{box-shadow:inset 0 4px 8px -5px rgba(50,50,50,.75),inset 0 -4px 8px -5px rgba(50,50,50,.75)}.v-data-table__empty-wrapper{text-align:center;pointer-events:none}.v-data-table__mobile-row{display:block}.v-data-table__mobile-row__wrapper{height:100%;display:flex;justify-content:space-between;align-items:center}.v-data-table__mobile-row__header{font-weight:600}.v-data-table__mobile-row__cell{text-align:right}.v-data-table__expand-row{border:none!important}.v-data-table__expand-col{padding:0!important;height:0!important}.v-data-table__expand-col--expanded{border-bottom:1px solid rgba(0,0,0,.12)}.v-data-table__expand-content{transition:height .3s cubic-bezier(.25,.8,.5,1)}.v-data-table__expand-content>.card{border-radius:0;box-shadow:none}.v-row-group__header td,.v-row-group__summary td{height:35px}.v-data-table__expand-icon{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.v-data-table__expand-icon--active{transform:rotate(-180deg)}.theme--light.v-data-table .v-data-table-header th.sortable .v-data-table-header__icon{color:rgba(0,0,0,.38)}.theme--light.v-data-table .v-data-table-header th.sortable.active,.theme--light.v-data-table .v-data-table-header th.sortable.active .v-data-table-header__icon,.theme--light.v-data-table .v-data-table-header th.sortable:hover{color:rgba(0,0,0,.87)}.theme--light.v-data-table .v-data-table-header__sort-badge{background-color:rgba(0,0,0,.12);color:rgba(0,0,0,.87)}.theme--dark.v-data-table .v-data-table-header th.sortable .v-data-table-header__icon{color:hsla(0,0%,100%,.5)}.theme--dark.v-data-table .v-data-table-header th.sortable.active,.theme--dark.v-data-table .v-data-table-header th.sortable.active .v-data-table-header__icon,.theme--dark.v-data-table .v-data-table-header th.sortable:hover{color:#fff}.theme--dark.v-data-table .v-data-table-header__sort-badge{background-color:hsla(0,0%,100%,.12);color:#fff}.v-data-table-header th.sortable{pointer-events:auto;cursor:pointer;outline:0}.v-data-table-header th.active .v-data-table-header__icon,.v-data-table-header th:hover .v-data-table-header__icon{transform:none;opacity:1}.v-data-table-header th.desc .v-data-table-header__icon{transform:rotate(-180deg)}.v-data-table-header__icon{display:inline-block;opacity:0;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-data-table-header__sort-badge{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:50%;min-width:18px;min-height:18px;height:18px;width:18px}.v-data-table-header-mobile th{height:auto}.v-data-table-header-mobile__wrapper{display:flex}.v-data-table-header-mobile__wrapper .v-select{margin-bottom:8px}.v-data-table-header-mobile__wrapper .v-select .v-chip{height:24px}.v-data-table-header-mobile__wrapper .v-select .v-chip__close.desc .v-icon{transform:rotate(-180deg)}.v-data-table-header-mobile__select{min-width:56px;display:flex;align-items:center;justify-content:center}.theme--light.v-data-table{background-color:#fff;color:rgba(0,0,0,.87)}.theme--light.v-data-table colgroup .divider{border-right:1px solid rgba(0,0,0,.12)}.theme--light.v-data-table.v-data-table--fixed-header thead th{background:#fff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.12)}.theme--light.v-data-table thead tr:last-child th{border-bottom:1px solid rgba(0,0,0,.12)}.theme--light.v-data-table thead tr th{color:rgba(0,0,0,.54)}.theme--light.v-data-table tbody tr:not(:last-child){border-bottom:1px solid rgba(0,0,0,.12)}.theme--light.v-data-table tbody tr.active{background:#f5f5f5}.theme--light.v-data-table tbody tr:hover{background:#eee}.theme--dark.v-data-table{background-color:#424242;color:#fff}.theme--dark.v-data-table colgroup .divider{border-right:1px solid hsla(0,0%,100%,.12)}.theme--dark.v-data-table.v-data-table--fixed-header thead th{background:#424242;box-shadow:inset 0 -1px 0 hsla(0,0%,100%,.12)}.theme--dark.v-data-table thead tr:last-child th{border-bottom:1px solid hsla(0,0%,100%,.12)}.theme--dark.v-data-table thead tr th{color:hsla(0,0%,100%,.7)}.theme--dark.v-data-table tbody tr:not(:last-child){border-bottom:1px solid hsla(0,0%,100%,.12)}.theme--dark.v-data-table tbody tr.active{background:#505050}.theme--dark.v-data-table tbody tr:hover{background:#616161}.v-data-table table{width:100%;border-collapse:collapse}.v-data-table td,.v-data-table th{padding:0 16px}.v-data-table th{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:12px;height:48px}.v-application--is-ltr .v-data-table th{text-align:left}.v-application--is-rtl .v-data-table th{text-align:right}.v-data-table td{font-size:14px;height:48px}.v-data-table__wrapper{overflow-x:auto;overflow-y:hidden}.v-data-table__progress{height:auto!important}.v-data-table__progress th{height:auto!important;border:none!important;padding:0}.v-data-table--dense td{height:24px}.v-data-table--dense th{height:32px}.v-data-table--fixed-header .v-data-table__wrapper,.v-data-table--fixed-height .v-data-table__wrapper{overflow-y:auto}.v-data-table--fixed-header thead th{border-bottom:0!important;position:-webkit-sticky;position:sticky;top:0;z-index:2}.v-data-table--fixed-header thead tr:nth-child(2) th{top:48px}.v-application--is-ltr .v-data-table--fixed-header .v-data-footer{margin-right:17px}.v-application--is-rtl .v-data-table--fixed-header .v-data-footer{margin-left:17px}.v-data-table--fixed.v-data-table--dense thead tr:nth-child(2) th{top:32px}.v-data-table--mobile td,.v-data-table--mobile th,.v-data-table--mobile tr{display:block}.v-data-table--mobile td,.v-data-table--mobile th{padding:14px}.theme--light.v-small-dialog__actions,.theme--light.v-small-dialog__menu-content{background:#fff}.theme--dark.v-small-dialog__actions,.theme--dark.v-small-dialog__menu-content{background:#424242}.v-small-dialog{display:block}.v-small-dialog__activator{cursor:pointer;height:100%}.v-small-dialog__content{padding:0 16px}.v-small-dialog__actions{padding:8px;text-align:right;white-space:pre}.v-virtual-table{position:relative}.v-virtual-table__wrapper{display:flex}.v-virtual-table__table{width:100%;height:100%;overflow-x:auto}.theme--light.v-picker__title{background:#e0e0e0}.theme--dark.v-picker__title{background:#616161}.theme--light.v-picker__body{background:#fff}.theme--dark.v-picker__body{background:#424242}.v-picker{border-radius:2px;contain:layout style;display:inline-flex;flex-direction:column;vertical-align:top;position:relative}.v-picker--full-width{display:flex}.v-picker__title{color:#fff;border-top-left-radius:2px;border-top-right-radius:2px;padding:16px}.v-picker__title__btn{transition:.3s cubic-bezier(.25,.8,.5,1)}.v-picker__title__btn:not(.v-picker__title__btn--active){opacity:.6;cursor:pointer}.v-picker__title__btn:not(.v-picker__title__btn--active):hover:not(:focus){opacity:1}.v-picker__title__btn--readonly{pointer-events:none}.v-picker__title__btn--active{opacity:1}.v-picker__body{height:auto;overflow:hidden;position:relative;z-index:0;flex:1 0 auto;display:flex;flex-direction:column;align-items:center}.v-picker__body>div{width:100%}.v-picker__body>div.fade-transition-leave-active{position:absolute}.v-picker--landscape .v-picker__title{border-top-right-radius:0;border-bottom-right-radius:0;width:170px;position:absolute;top:0;left:0;height:100%;z-index:1}.v-picker--landscape .v-picker__actions:not(.v-picker__actions--no-title),.v-picker--landscape .v-picker__body:not(.v-picker__body--no-title){margin-left:170px}.v-date-picker-title{display:flex;justify-content:space-between;flex-direction:column;flex-wrap:wrap;line-height:1}.v-application--is-rtl .v-date-picker-title .v-picker__title__btn{text-align:right}.v-date-picker-title__year{align-items:center;display:inline-flex;font-size:14px;font-weight:500;margin-bottom:8px}.v-date-picker-title__date{font-size:34px;text-align:left;font-weight:500;position:relative;overflow:hidden;padding-bottom:8px;margin-bottom:-8px}.v-date-picker-title__date>div{position:relative}.v-date-picker-title--disabled{pointer-events:none}.theme--light.v-date-picker-header .v-date-picker-header__value:not(.v-date-picker-header__value--disabled) button:not(:hover):not(:focus){color:rgba(0,0,0,.87)}.theme--light.v-date-picker-header .v-date-picker-header__value--disabled button{color:rgba(0,0,0,.38)}.theme--dark.v-date-picker-header .v-date-picker-header__value:not(.v-date-picker-header__value--disabled) button:not(:hover):not(:focus){color:#fff}.theme--dark.v-date-picker-header .v-date-picker-header__value--disabled button{color:hsla(0,0%,100%,.5)}.v-date-picker-header{padding:4px 16px;align-items:center;display:flex;justify-content:space-between;position:relative}.v-date-picker-header .v-btn{margin:0;z-index:auto}.v-date-picker-header .v-icon{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-date-picker-header__value{flex:1;text-align:center;position:relative;overflow:hidden}.v-date-picker-header__value div{transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-date-picker-header__value button{cursor:pointer;font-weight:700;outline:none;padding:.5rem;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-date-picker-header--disabled{pointer-events:none}.theme--light.v-date-picker-table .v-date-picker-table--date__week,.theme--light.v-date-picker-table th{color:rgba(0,0,0,.38)}.theme--dark.v-date-picker-table .v-date-picker-table--date__week,.theme--dark.v-date-picker-table th{color:hsla(0,0%,100%,.5)}.v-date-picker-table{position:relative;padding:0 12px;height:242px}.v-date-picker-table table{transition:.3s cubic-bezier(.25,.8,.5,1);top:0;table-layout:fixed;width:100%}.v-date-picker-table td,.v-date-picker-table th{text-align:center;position:relative}.v-date-picker-table th{font-size:12px}.v-date-picker-table--date .v-btn{height:32px;width:32px}.v-date-picker-table .v-btn{z-index:auto;margin:0;font-size:12px}.v-date-picker-table .v-btn.v-btn--active{color:#fff}.v-date-picker-table--month td{width:33.333333%;height:56px;vertical-align:middle;text-align:center}.v-date-picker-table--month td .v-btn{margin:0 auto;max-width:160px;min-width:40px;width:100%}.v-date-picker-table--date th{padding:8px 0;font-weight:600}.v-date-picker-table--date td{width:45px}.v-date-picker-table__events{height:8px;left:0;position:absolute;text-align:center;white-space:pre;width:100%}.v-date-picker-table__events>div{border-radius:50%;display:inline-block;height:8px;margin:0 1px;width:8px}.v-date-picker-table--date .v-date-picker-table__events{bottom:6px}.v-date-picker-table--month .v-date-picker-table__events{bottom:8px}.v-date-picker-table--disabled{pointer-events:none}.v-date-picker-years{font-size:16px;font-weight:400;height:286px;list-style-type:none;overflow:auto;text-align:center}.v-date-picker-years.v-date-picker-years{padding:0}.v-date-picker-years li{cursor:pointer;padding:8px 0;transition:none}.v-date-picker-years li.active{font-size:26px;font-weight:500;padding:10px 0}.v-date-picker-years li:hover{background:rgba(0,0,0,.12)}.v-picker--landscape .v-date-picker-years{padding:0;height:286px}.theme--light.v-expansion-panels .v-expansion-panel{background-color:#fff;color:rgba(0,0,0,.87)}.theme--light.v-expansion-panels .v-expansion-panel--disabled{color:rgba(0,0,0,.38)}.theme--light.v-expansion-panels .v-expansion-panel:not(:first-child):after{border-color:rgba(0,0,0,.12)}.theme--light.v-expansion-panels .v-expansion-panel-header .v-expansion-panel-header__icon .v-icon{color:rgba(0,0,0,.54)}.theme--light.v-expansion-panels.v-expansion-panels--focusable .v-expansion-panel-header:hover:before{opacity:.04}.theme--light.v-expansion-panels.v-expansion-panels--focusable .v-expansion-panel-header--active:before,.theme--light.v-expansion-panels.v-expansion-panels--focusable .v-expansion-panel-header--active:hover:before,.theme--light.v-expansion-panels.v-expansion-panels--focusable .v-expansion-panel-header:focus:before{opacity:.12}.theme--light.v-expansion-panels.v-expansion-panels--focusable .v-expansion-panel-header--active:focus:before{opacity:.16}.theme--dark.v-expansion-panels .v-expansion-panel{background-color:#424242;color:#fff}.theme--dark.v-expansion-panels .v-expansion-panel--disabled{color:hsla(0,0%,100%,.5)}.theme--dark.v-expansion-panels .v-expansion-panel:not(:first-child):after{border-color:hsla(0,0%,100%,.12)}.theme--dark.v-expansion-panels .v-expansion-panel-header .v-expansion-panel-header__icon .v-icon{color:#fff}.theme--dark.v-expansion-panels.v-expansion-panels--focusable .v-expansion-panel-header:hover:before{opacity:.08}.theme--dark.v-expansion-panels.v-expansion-panels--focusable .v-expansion-panel-header--active:before,.theme--dark.v-expansion-panels.v-expansion-panels--focusable .v-expansion-panel-header--active:hover:before,.theme--dark.v-expansion-panels.v-expansion-panels--focusable .v-expansion-panel-header:focus:before{opacity:.24}.theme--dark.v-expansion-panels.v-expansion-panels--focusable .v-expansion-panel-header--active:focus:before{opacity:.32}.v-expansion-panels{border-radius:4px;display:flex;flex-wrap:wrap;justify-content:center;list-style-type:none;padding:0;width:100%;z-index:1}.v-expansion-panels>*{cursor:auto}.v-expansion-panels>:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.v-expansion-panels>:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.v-expansion-panel{flex:1 0 100%;max-width:100%;position:relative;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-expansion-panel:before{border-radius:inherit;bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:-1;transition:box-shadow .28s cubic-bezier(.4,0,.2,1);will-change:box-shadow;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-expansion-panel:not(:first-child):after{border-top:thin solid;content:"";left:0;position:absolute;right:0;top:0;transition:border-color .2s cubic-bezier(.4,0,.2,1),opacity .2s cubic-bezier(.4,0,.2,1)}.v-expansion-panel--disabled .v-expansion-panel-header{pointer-events:none}.v-expansion-panel--active+.v-expansion-panel,.v-expansion-panel--active:not(:first-child){margin-top:16px}.v-expansion-panel--active+.v-expansion-panel:after,.v-expansion-panel--active:not(:first-child):after{opacity:0}.v-expansion-panel--active .v-expansion-panel-header{min-height:64px}.v-expansion-panel--active>.v-expansion-panel-header--active .v-expansion-panel-header__icon:not(.v-expansion-panel-header__icon--disable-rotate) .v-icon{transform:rotate(-180deg)}.v-expansion-panels:not(.v-expansion-panels--accordion)>.v-expansion-panel--active{border-radius:4px}.v-expansion-panels:not(.v-expansion-panels--accordion)>.v-expansion-panel--active+.v-expansion-panel{border-top-left-radius:4px;border-top-right-radius:4px}.v-expansion-panels:not(.v-expansion-panels--accordion)>.v-expansion-panel--next-active{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.v-expansion-panels:not(.v-expansion-panels--accordion)>.v-expansion-panel--next-active .v-expansion-panel-header{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.v-expansion-panel-header__icon{display:inline-flex;margin-bottom:-4px;margin-left:auto;margin-top:-4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-application--is-rtl .v-expansion-panel-header__icon{margin-left:0;margin-right:auto}.v-expansion-panel-header{align-items:center;border-top-left-radius:inherit;border-top-right-radius:inherit;display:flex;font-size:.9375rem;line-height:1;min-height:48px;outline:none;padding:16px 24px;position:relative;text-align:left;transition:min-height .3s cubic-bezier(.25,.8,.5,1);width:100%}.v-expansion-panel-header:not(.v-expansion-panel-header--mousedown):focus:before{opacity:.12}.v-application--is-rtl .v-expansion-panel-header{text-align:right}.v-expansion-panel-header:before{background-color:currentColor;border-radius:inherit;bottom:0;content:"";left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .3s cubic-bezier(.25,.8,.5,1)}.v-expansion-panel-header>:not(.v-expansion-panel-header__icon){flex:1 1 auto}.v-expansion-panel-content{display:flex}.v-expansion-panel-content__wrap{padding:0 24px 16px;flex:1 1 auto}.v-expansion-panels--accordion .v-expansion-panel{margin-top:0}.v-expansion-panels--accordion .v-expansion-panel:after{opacity:1}.v-expansion-panels--popout .v-expansion-panel{max-width:calc(100% - 32px)}.v-expansion-panels--popout .v-expansion-panel--active{max-width:calc(100% + 16px)}.v-expansion-panels--inset .v-expansion-panel{max-width:100%}.v-expansion-panels--inset .v-expansion-panel--active{max-width:calc(100% - 32px)}.theme--light.v-file-input .v-file-input__text{color:rgba(0,0,0,.87)}.theme--light.v-file-input .v-file-input__text--placeholder{color:rgba(0,0,0,.54)}.theme--dark.v-file-input .v-file-input__text{color:#fff}.theme--dark.v-file-input .v-file-input__text--placeholder{color:hsla(0,0%,100%,.7)}.v-file-input input[type=file]{opacity:0;max-width:0;width:0}.v-file-input .v-file-input__text{align-items:center;align-self:stretch;display:flex;flex-wrap:wrap;width:100%}.v-file-input .v-file-input__text.v-file-input__text--chips{flex-wrap:wrap}.v-file-input .v-file-input__text .v-chip{margin:4px}.v-file-input.v-text-field--filled:not(.v-text-field--single-line) .v-file-input__text{padding-top:22px}.v-file-input.v-text-field--outlined .v-text-field__slot{padding:6px 0}.theme--light.v-footer{background-color:#f5f5f5;color:rgba(0,0,0,.87)}.theme--dark.v-footer{background-color:#212121;color:#fff}.v-footer{align-items:center;display:flex;flex:0 1 auto!important;flex-wrap:wrap;padding:6px 16px;transition-duration:.2s;transition-property:background-color,left,right;transition-timing-function:cubic-bezier(.4,0,.2,1)}.v-footer:not([data-booted=true]){transition:none!important}.v-footer--absolute,.v-footer--fixed{z-index:3}.v-footer--absolute{position:absolute;width:100%}.v-footer--fixed{position:fixed}.v-footer--padless{padding:0}.container.grow-shrink-0{flex-grow:0;flex-shrink:0}.container.fill-height{align-items:center;display:flex}.container.fill-height>.layout{height:100%;flex:1 1 auto}.container.fill-height>.layout.grow-shrink-0{flex-grow:0;flex-shrink:0}.container.grid-list-xs .layout .flex{padding:1px}.container.grid-list-xs .layout:only-child{margin:-1px}.container.grid-list-xs .layout:not(:only-child){margin:auto -1px}.container.grid-list-xs :not(:only-child) .layout:first-child{margin-top:-1px}.container.grid-list-xs :not(:only-child) .layout:last-child{margin-bottom:-1px}.container.grid-list-sm .layout .flex{padding:2px}.container.grid-list-sm .layout:only-child{margin:-2px}.container.grid-list-sm .layout:not(:only-child){margin:auto -2px}.container.grid-list-sm :not(:only-child) .layout:first-child{margin-top:-2px}.container.grid-list-sm :not(:only-child) .layout:last-child{margin-bottom:-2px}.container.grid-list-md .layout .flex{padding:4px}.container.grid-list-md .layout:only-child{margin:-4px}.container.grid-list-md .layout:not(:only-child){margin:auto -4px}.container.grid-list-md :not(:only-child) .layout:first-child{margin-top:-4px}.container.grid-list-md :not(:only-child) .layout:last-child{margin-bottom:-4px}.container.grid-list-lg .layout .flex{padding:8px}.container.grid-list-lg .layout:only-child{margin:-8px}.container.grid-list-lg .layout:not(:only-child){margin:auto -8px}.container.grid-list-lg :not(:only-child) .layout:first-child{margin-top:-8px}.container.grid-list-lg :not(:only-child) .layout:last-child{margin-bottom:-8px}.container.grid-list-xl .layout .flex{padding:12px}.container.grid-list-xl .layout:only-child{margin:-12px}.container.grid-list-xl .layout:not(:only-child){margin:auto -12px}.container.grid-list-xl :not(:only-child) .layout:first-child{margin-top:-12px}.container.grid-list-xl :not(:only-child) .layout:last-child{margin-bottom:-12px}.layout{display:flex;flex:1 1 auto;flex-wrap:nowrap;min-width:0}.layout.reverse{flex-direction:row-reverse}.layout.column{flex-direction:column}.layout.column.reverse{flex-direction:column-reverse}.layout.column>.flex{max-width:100%}.layout.wrap{flex-wrap:wrap}.layout.grow-shrink-0{flex-grow:0;flex-shrink:0}@media (min-width:0){.flex.xs12{flex-basis:100%;flex-grow:0;max-width:100%}.flex.order-xs12{order:12}.flex.xs11{flex-basis:91.6666666667%;flex-grow:0;max-width:91.6666666667%}.flex.order-xs11{order:11}.flex.xs10{flex-basis:83.3333333333%;flex-grow:0;max-width:83.3333333333%}.flex.order-xs10{order:10}.flex.xs9{flex-basis:75%;flex-grow:0;max-width:75%}.flex.order-xs9{order:9}.flex.xs8{flex-basis:66.6666666667%;flex-grow:0;max-width:66.6666666667%}.flex.order-xs8{order:8}.flex.xs7{flex-basis:58.3333333333%;flex-grow:0;max-width:58.3333333333%}.flex.order-xs7{order:7}.flex.xs6{flex-basis:50%;flex-grow:0;max-width:50%}.flex.order-xs6{order:6}.flex.xs5{flex-basis:41.6666666667%;flex-grow:0;max-width:41.6666666667%}.flex.order-xs5{order:5}.flex.xs4{flex-basis:33.3333333333%;flex-grow:0;max-width:33.3333333333%}.flex.order-xs4{order:4}.flex.xs3{flex-basis:25%;flex-grow:0;max-width:25%}.flex.order-xs3{order:3}.flex.xs2{flex-basis:16.6666666667%;flex-grow:0;max-width:16.6666666667%}.flex.order-xs2{order:2}.flex.xs1{flex-basis:8.3333333333%;flex-grow:0;max-width:8.3333333333%}.flex.order-xs1{order:1}.flex.offset-xs12{margin-left:100%}.flex.offset-xs11{margin-left:91.6666666667%}.flex.offset-xs10{margin-left:83.3333333333%}.flex.offset-xs9{margin-left:75%}.flex.offset-xs8{margin-left:66.6666666667%}.flex.offset-xs7{margin-left:58.3333333333%}.flex.offset-xs6{margin-left:50%}.flex.offset-xs5{margin-left:41.6666666667%}.flex.offset-xs4{margin-left:33.3333333333%}.flex.offset-xs3{margin-left:25%}.flex.offset-xs2{margin-left:16.6666666667%}.flex.offset-xs1{margin-left:8.3333333333%}.flex.offset-xs0{margin-left:0}}@media (min-width:600px){.flex.sm12{flex-basis:100%;flex-grow:0;max-width:100%}.flex.order-sm12{order:12}.flex.sm11{flex-basis:91.6666666667%;flex-grow:0;max-width:91.6666666667%}.flex.order-sm11{order:11}.flex.sm10{flex-basis:83.3333333333%;flex-grow:0;max-width:83.3333333333%}.flex.order-sm10{order:10}.flex.sm9{flex-basis:75%;flex-grow:0;max-width:75%}.flex.order-sm9{order:9}.flex.sm8{flex-basis:66.6666666667%;flex-grow:0;max-width:66.6666666667%}.flex.order-sm8{order:8}.flex.sm7{flex-basis:58.3333333333%;flex-grow:0;max-width:58.3333333333%}.flex.order-sm7{order:7}.flex.sm6{flex-basis:50%;flex-grow:0;max-width:50%}.flex.order-sm6{order:6}.flex.sm5{flex-basis:41.6666666667%;flex-grow:0;max-width:41.6666666667%}.flex.order-sm5{order:5}.flex.sm4{flex-basis:33.3333333333%;flex-grow:0;max-width:33.3333333333%}.flex.order-sm4{order:4}.flex.sm3{flex-basis:25%;flex-grow:0;max-width:25%}.flex.order-sm3{order:3}.flex.sm2{flex-basis:16.6666666667%;flex-grow:0;max-width:16.6666666667%}.flex.order-sm2{order:2}.flex.sm1{flex-basis:8.3333333333%;flex-grow:0;max-width:8.3333333333%}.flex.order-sm1{order:1}.flex.offset-sm12{margin-left:100%}.flex.offset-sm11{margin-left:91.6666666667%}.flex.offset-sm10{margin-left:83.3333333333%}.flex.offset-sm9{margin-left:75%}.flex.offset-sm8{margin-left:66.6666666667%}.flex.offset-sm7{margin-left:58.3333333333%}.flex.offset-sm6{margin-left:50%}.flex.offset-sm5{margin-left:41.6666666667%}.flex.offset-sm4{margin-left:33.3333333333%}.flex.offset-sm3{margin-left:25%}.flex.offset-sm2{margin-left:16.6666666667%}.flex.offset-sm1{margin-left:8.3333333333%}.flex.offset-sm0{margin-left:0}}@media (min-width:960px){.flex.md12{flex-basis:100%;flex-grow:0;max-width:100%}.flex.order-md12{order:12}.flex.md11{flex-basis:91.6666666667%;flex-grow:0;max-width:91.6666666667%}.flex.order-md11{order:11}.flex.md10{flex-basis:83.3333333333%;flex-grow:0;max-width:83.3333333333%}.flex.order-md10{order:10}.flex.md9{flex-basis:75%;flex-grow:0;max-width:75%}.flex.order-md9{order:9}.flex.md8{flex-basis:66.6666666667%;flex-grow:0;max-width:66.6666666667%}.flex.order-md8{order:8}.flex.md7{flex-basis:58.3333333333%;flex-grow:0;max-width:58.3333333333%}.flex.order-md7{order:7}.flex.md6{flex-basis:50%;flex-grow:0;max-width:50%}.flex.order-md6{order:6}.flex.md5{flex-basis:41.6666666667%;flex-grow:0;max-width:41.6666666667%}.flex.order-md5{order:5}.flex.md4{flex-basis:33.3333333333%;flex-grow:0;max-width:33.3333333333%}.flex.order-md4{order:4}.flex.md3{flex-basis:25%;flex-grow:0;max-width:25%}.flex.order-md3{order:3}.flex.md2{flex-basis:16.6666666667%;flex-grow:0;max-width:16.6666666667%}.flex.order-md2{order:2}.flex.md1{flex-basis:8.3333333333%;flex-grow:0;max-width:8.3333333333%}.flex.order-md1{order:1}.flex.offset-md12{margin-left:100%}.flex.offset-md11{margin-left:91.6666666667%}.flex.offset-md10{margin-left:83.3333333333%}.flex.offset-md9{margin-left:75%}.flex.offset-md8{margin-left:66.6666666667%}.flex.offset-md7{margin-left:58.3333333333%}.flex.offset-md6{margin-left:50%}.flex.offset-md5{margin-left:41.6666666667%}.flex.offset-md4{margin-left:33.3333333333%}.flex.offset-md3{margin-left:25%}.flex.offset-md2{margin-left:16.6666666667%}.flex.offset-md1{margin-left:8.3333333333%}.flex.offset-md0{margin-left:0}}@media (min-width:1264px){.flex.lg12{flex-basis:100%;flex-grow:0;max-width:100%}.flex.order-lg12{order:12}.flex.lg11{flex-basis:91.6666666667%;flex-grow:0;max-width:91.6666666667%}.flex.order-lg11{order:11}.flex.lg10{flex-basis:83.3333333333%;flex-grow:0;max-width:83.3333333333%}.flex.order-lg10{order:10}.flex.lg9{flex-basis:75%;flex-grow:0;max-width:75%}.flex.order-lg9{order:9}.flex.lg8{flex-basis:66.6666666667%;flex-grow:0;max-width:66.6666666667%}.flex.order-lg8{order:8}.flex.lg7{flex-basis:58.3333333333%;flex-grow:0;max-width:58.3333333333%}.flex.order-lg7{order:7}.flex.lg6{flex-basis:50%;flex-grow:0;max-width:50%}.flex.order-lg6{order:6}.flex.lg5{flex-basis:41.6666666667%;flex-grow:0;max-width:41.6666666667%}.flex.order-lg5{order:5}.flex.lg4{flex-basis:33.3333333333%;flex-grow:0;max-width:33.3333333333%}.flex.order-lg4{order:4}.flex.lg3{flex-basis:25%;flex-grow:0;max-width:25%}.flex.order-lg3{order:3}.flex.lg2{flex-basis:16.6666666667%;flex-grow:0;max-width:16.6666666667%}.flex.order-lg2{order:2}.flex.lg1{flex-basis:8.3333333333%;flex-grow:0;max-width:8.3333333333%}.flex.order-lg1{order:1}.flex.offset-lg12{margin-left:100%}.flex.offset-lg11{margin-left:91.6666666667%}.flex.offset-lg10{margin-left:83.3333333333%}.flex.offset-lg9{margin-left:75%}.flex.offset-lg8{margin-left:66.6666666667%}.flex.offset-lg7{margin-left:58.3333333333%}.flex.offset-lg6{margin-left:50%}.flex.offset-lg5{margin-left:41.6666666667%}.flex.offset-lg4{margin-left:33.3333333333%}.flex.offset-lg3{margin-left:25%}.flex.offset-lg2{margin-left:16.6666666667%}.flex.offset-lg1{margin-left:8.3333333333%}.flex.offset-lg0{margin-left:0}}@media (min-width:1904px){.flex.xl12{flex-basis:100%;flex-grow:0;max-width:100%}.flex.order-xl12{order:12}.flex.xl11{flex-basis:91.6666666667%;flex-grow:0;max-width:91.6666666667%}.flex.order-xl11{order:11}.flex.xl10{flex-basis:83.3333333333%;flex-grow:0;max-width:83.3333333333%}.flex.order-xl10{order:10}.flex.xl9{flex-basis:75%;flex-grow:0;max-width:75%}.flex.order-xl9{order:9}.flex.xl8{flex-basis:66.6666666667%;flex-grow:0;max-width:66.6666666667%}.flex.order-xl8{order:8}.flex.xl7{flex-basis:58.3333333333%;flex-grow:0;max-width:58.3333333333%}.flex.order-xl7{order:7}.flex.xl6{flex-basis:50%;flex-grow:0;max-width:50%}.flex.order-xl6{order:6}.flex.xl5{flex-basis:41.6666666667%;flex-grow:0;max-width:41.6666666667%}.flex.order-xl5{order:5}.flex.xl4{flex-basis:33.3333333333%;flex-grow:0;max-width:33.3333333333%}.flex.order-xl4{order:4}.flex.xl3{flex-basis:25%;flex-grow:0;max-width:25%}.flex.order-xl3{order:3}.flex.xl2{flex-basis:16.6666666667%;flex-grow:0;max-width:16.6666666667%}.flex.order-xl2{order:2}.flex.xl1{flex-basis:8.3333333333%;flex-grow:0;max-width:8.3333333333%}.flex.order-xl1{order:1}.flex.offset-xl12{margin-left:100%}.flex.offset-xl11{margin-left:91.6666666667%}.flex.offset-xl10{margin-left:83.3333333333%}.flex.offset-xl9{margin-left:75%}.flex.offset-xl8{margin-left:66.6666666667%}.flex.offset-xl7{margin-left:58.3333333333%}.flex.offset-xl6{margin-left:50%}.flex.offset-xl5{margin-left:41.6666666667%}.flex.offset-xl4{margin-left:33.3333333333%}.flex.offset-xl3{margin-left:25%}.flex.offset-xl2{margin-left:16.6666666667%}.flex.offset-xl1{margin-left:8.3333333333%}.flex.offset-xl0{margin-left:0}}.child-flex>*,.flex{flex:1 1 auto;max-width:100%}.child-flex>.grow-shrink-0,.flex.grow-shrink-0{flex-grow:0;flex-shrink:0}.grow,.spacer{flex-grow:1!important}.grow{flex-shrink:0!important}.shrink{flex-grow:0!important;flex-shrink:1!important}.fill-height{height:100%}.container{width:100%;padding:12px;margin-right:auto;margin-left:auto}@media (min-width:960px){.container{max-width:960px}}@media (min-width:1264px){.container{max-width:1264px}}@media (min-width:1904px){.container{max-width:1904px}}.container--fluid{max-width:100%}.row{display:flex;flex-wrap:wrap;flex:1 1 auto;margin-right:-12px;margin-left:-12px}.row--dense{margin-right:-4px;margin-left:-4px}.row--dense>.col,.row--dense>[class*=col-]{padding:4px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{width:100%;padding:12px}.col{flex-basis:0;flex-grow:1;max-width:100%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-12{flex:0 0 100%;max-width:100%}.offset-1{margin-left:8.3333333333%}.offset-2{margin-left:16.6666666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.3333333333%}.offset-5{margin-left:41.6666666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.3333333333%}.offset-8{margin-left:66.6666666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.3333333333%}.offset-11{margin-left:91.6666666667%}@media (min-width:600px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-sm-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-sm-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-sm-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.3333333333%}.offset-sm-2{margin-left:16.6666666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.3333333333%}.offset-sm-5{margin-left:41.6666666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.3333333333%}.offset-sm-8{margin-left:66.6666666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.3333333333%}.offset-sm-11{margin-left:91.6666666667%}}@media (min-width:960px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-md-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-md-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-md-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-md-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-md-12{flex:0 0 100%;max-width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.3333333333%}.offset-md-2{margin-left:16.6666666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.3333333333%}.offset-md-5{margin-left:41.6666666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.3333333333%}.offset-md-8{margin-left:66.6666666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.3333333333%}.offset-md-11{margin-left:91.6666666667%}}@media (min-width:1264px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-lg-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-lg-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-lg-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-lg-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.3333333333%}.offset-lg-2{margin-left:16.6666666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.3333333333%}.offset-lg-5{margin-left:41.6666666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.3333333333%}.offset-lg-8{margin-left:66.6666666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.3333333333%}.offset-lg-11{margin-left:91.6666666667%}}@media (min-width:1904px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-xl-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-xl-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-xl-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-xl-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.3333333333%}.offset-xl-2{margin-left:16.6666666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.3333333333%}.offset-xl-5{margin-left:41.6666666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.3333333333%}.offset-xl-8{margin-left:66.6666666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.3333333333%}.offset-xl-11{margin-left:91.6666666667%}}.theme--light.v-navigation-drawer{background-color:#fff}.theme--light.v-navigation-drawer:not(.v-navigation-drawer--floating) .v-navigation-drawer__border{background-color:rgba(0,0,0,.12)}.theme--light.v-navigation-drawer .v-divider{border-color:rgba(0,0,0,.12)}.theme--dark.v-navigation-drawer{background-color:#424242}.theme--dark.v-navigation-drawer:not(.v-navigation-drawer--floating) .v-navigation-drawer__border{background-color:hsla(0,0%,100%,.12)}.theme--dark.v-navigation-drawer .v-divider{border-color:hsla(0,0%,100%,.12)}.v-navigation-drawer{-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;left:0;max-width:100%;overflow:hidden;pointer-events:auto;top:0;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);will-change:transform;transition-property:transform,width}.v-navigation-drawer:not([data-booted=true]){transition:none!important}.v-navigation-drawer.v-navigation-drawer--right:after{left:0;right:auto}.v-navigation-drawer .v-list{background:inherit}.v-navigation-drawer__border{position:absolute;right:0;top:0;height:100%;width:1px}.v-navigation-drawer__content{height:100%;overflow-y:auto;overflow-x:hidden}.v-navigation-drawer__image{border-radius:inherit;height:100%;position:absolute;top:0;bottom:0;z-index:-1;contain:strict;width:100%}.v-navigation-drawer__image .v-image{border-radius:inherit}.v-navigation-drawer--bottom.v-navigation-drawer--is-mobile{max-height:50%;top:auto;bottom:0;min-width:100%}.v-navigation-drawer--right{left:auto;right:0}.v-navigation-drawer--right>.v-navigation-drawer__border{right:auto;left:0}.v-navigation-drawer--absolute{z-index:1}.v-navigation-drawer--fixed{z-index:6}.v-navigation-drawer--absolute{position:absolute}.v-navigation-drawer--clipped{z-index:4}.v-navigation-drawer--fixed{position:fixed}.v-navigation-drawer--floating:after{display:none}.v-navigation-drawer--mini-variant{overflow:hidden}.v-navigation-drawer--mini-variant .v-list-item{justify-content:center}.v-navigation-drawer--mini-variant .v-list-item>:first-child{margin-left:0;margin-right:0}.v-navigation-drawer--mini-variant .v-list-group--no-action .v-list-group__items,.v-navigation-drawer--mini-variant .v-list-group--sub-group,.v-navigation-drawer--mini-variant .v-list-item>:not(:first-child){display:none}.v-navigation-drawer--is-mobile,.v-navigation-drawer--temporary{z-index:6}.v-navigation-drawer--is-mobile:not(.v-navigation-drawer--close),.v-navigation-drawer--temporary:not(.v-navigation-drawer--close){box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)}.theme--light.v-overflow-btn .v-input__control:before,.theme--light.v-overflow-btn .v-input__slot:before{background-color:rgba(0,0,0,.12)!important}.theme--light.v-overflow-btn.v-text-field--outline .v-input__control:before,.theme--light.v-overflow-btn.v-text-field--outline .v-input__slot:before{background-color:transparent!important}.theme--light.v-overflow-btn--editable.v-input--is-focused .v-input__append-inner,.theme--light.v-overflow-btn--editable.v-select--is-menu-active .v-input__append-inner,.theme--light.v-overflow-btn--editable:hover .v-input__append-inner,.theme--light.v-overflow-btn--segmented .v-input__append-inner{border-left:1px solid rgba(0,0,0,.12)}.theme--light.v-overflow-btn.v-input--is-focused .v-input__slot,.theme--light.v-overflow-btn.v-select--is-menu-active .v-input__slot,.theme--light.v-overflow-btn:hover .v-input__slot{background:#fff}.theme--dark.v-overflow-btn .v-input__control:before,.theme--dark.v-overflow-btn .v-input__slot:before{background-color:hsla(0,0%,100%,.12)!important}.theme--dark.v-overflow-btn.v-text-field--outline .v-input__control:before,.theme--dark.v-overflow-btn.v-text-field--outline .v-input__slot:before{background-color:transparent!important}.theme--dark.v-overflow-btn--editable.v-input--is-focused .v-input__append-inner,.theme--dark.v-overflow-btn--editable.v-select--is-menu-active .v-input__append-inner,.theme--dark.v-overflow-btn--editable:hover .v-input__append-inner,.theme--dark.v-overflow-btn--segmented .v-input__append-inner{border-left:1px solid hsla(0,0%,100%,.12)}.theme--dark.v-overflow-btn.v-input--is-focused .v-input__slot,.theme--dark.v-overflow-btn.v-select--is-menu-active .v-input__slot,.theme--dark.v-overflow-btn:hover .v-input__slot{background:#424242}.v-overflow-btn{margin-top:12px;padding-top:0}.v-overflow-btn:not(.v-overflow-btn--editable)>.v-input__control>.v-input__slot{cursor:pointer}.v-overflow-btn .v-select__slot{height:48px}.v-overflow-btn .v-select__slot input{margin-left:16px;cursor:pointer}.v-overflow-btn .v-select__selection--comma:first-child{margin-left:16px}.v-overflow-btn .v-input__slot{transition:.3s cubic-bezier(.25,.8,.5,1)}.v-overflow-btn .v-input__slot:after{content:none}.v-overflow-btn .v-label{margin-left:16px;top:calc(50% - 10px)}.v-overflow-btn .v-input__append-inner{width:48px;height:48px;align-self:auto;align-items:center;margin-top:0;padding:0;flex-shrink:0}.v-overflow-btn .v-input__append-outer,.v-overflow-btn .v-input__prepend-outer{margin-top:12px;margin-bottom:12px}.v-overflow-btn .v-input__control:before{height:1px;top:-1px;content:"";left:0;position:absolute;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-overflow-btn.v-input--is-focused .v-input__slot,.v-overflow-btn.v-select--is-menu-active .v-input__slot{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-overflow-btn .v-select__selections{width:0}.v-overflow-btn--segmented .v-select__selections{flex-wrap:nowrap}.v-overflow-btn--segmented .v-select__selections .v-btn{border-radius:0;margin:0 -16px 0 0;height:48px;width:100%}.v-overflow-btn--segmented .v-select__selections .v-btn__content{justify-content:start}.v-overflow-btn--segmented .v-select__selections .v-btn__content:before{background-color:transparent}.v-overflow-btn--editable .v-select__slot input{cursor:text}.v-overflow-btn--editable .v-input__append-inner,.v-overflow-btn--editable .v-input__append-inner *{cursor:pointer}.theme--light.v-pagination .v-pagination__item{background:#fff;color:rgba(0,0,0,.87);min-width:34px;padding:0 5px;width:auto}.theme--light.v-pagination .v-pagination__item--active{color:#fff}.theme--light.v-pagination .v-pagination__navigation{background:#fff}.theme--dark.v-pagination .v-pagination__item{background:#424242;color:#fff;min-width:34px;padding:0 5px;width:auto}.theme--dark.v-pagination .v-pagination__item--active{color:#fff}.theme--dark.v-pagination .v-pagination__navigation{background:#424242}.v-pagination{align-items:center;display:inline-flex;list-style-type:none;justify-content:center;margin:0;max-width:100%;width:100%}.v-pagination.v-pagination{padding-left:0}.v-pagination>li{align-items:center;display:flex}.v-pagination--circle .v-pagination__item,.v-pagination--circle .v-pagination__more,.v-pagination--circle .v-pagination__navigation{border-radius:50%}.v-pagination--disabled{pointer-events:none;opacity:.6}.v-pagination__item{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);border-radius:4px;font-size:14px;background:transparent;height:34px;width:34px;margin:.3rem;text-decoration:none;transition:.3s cubic-bezier(0,0,.2,1)}.v-pagination__item--active{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.v-pagination__navigation{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);display:inline-flex;justify-content:center;align-items:center;text-decoration:none;height:2rem;border-radius:4px;width:2rem;margin:.3rem 10px}.v-pagination__navigation .v-icon{font-size:2rem;transition:.2s cubic-bezier(.4,0,.6,1);vertical-align:middle}.v-pagination__navigation--disabled{opacity:.6;pointer-events:none}.v-pagination__more{margin:.3rem;display:inline-flex;align-items:flex-end;justify-content:center;height:2rem;width:2rem}.v-parallax{position:relative;overflow:hidden;z-index:0}.v-parallax__image-container{position:absolute;top:0;left:0;right:0;bottom:0;z-index:1;contain:strict}.v-parallax__image{position:absolute;bottom:0;left:50%;min-width:100%;min-height:100%;display:none;transform:translate(-50%);will-change:transform;transition:opacity .3s cubic-bezier(.25,.8,.5,1);z-index:1}.v-parallax__content{color:#fff;height:100%;z-index:2;position:relative;display:flex;flex-direction:column;justify-content:center;padding:0 1rem}.v-input--radio-group__input{display:flex;width:100%}.v-input--radio-group--column .v-input--radio-group__input>.v-label{padding-bottom:8px}.v-input--radio-group--row .v-input--radio-group__input>.v-label{padding-right:8px}.v-input--radio-group--row .v-input--radio-group__input{flex-direction:row;flex-wrap:wrap}.v-input--radio-group--column .v-radio:not(:last-child):not(:only-child){margin-bottom:8px}.v-input--radio-group--column .v-input--radio-group__input{flex-direction:column}.theme--light.v-radio--is-disabled label{color:rgba(0,0,0,.38)}.theme--light.v-radio--is-disabled .v-icon{color:rgba(0,0,0,.26)!important}.theme--dark.v-radio--is-disabled label{color:hsla(0,0%,100%,.5)}.theme--dark.v-radio--is-disabled .v-icon{color:hsla(0,0%,100%,.3)!important}.v-radio{align-items:center;display:flex;height:auto;margin-right:16px;outline:none}.v-radio--is-disabled{pointer-events:none}.theme--light.v-input--range-slider.v-input--slider.v-input--is-disabled .v-slider.v-slider .v-slider__thumb{background:#fafafa}.theme--dark.v-input--range-slider.v-input--slider.v-input--is-disabled .v-slider.v-slider .v-slider__thumb{background:#424242}.v-input--range-slider.v-input--is-disabled .v-slider__track-fill{display:none}.v-input--range-slider.v-input--is-disabled.v-input--slider .v-slider.v-slider .v-slider__thumb{border-color:transparent}.v-rating{max-width:100%;white-space:nowrap}.v-rating .v-icon{padding:.5rem;border-radius:50%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-application--is-rtl .v-rating .v-icon{transform:scaleX(-1)}.v-rating--readonly .v-icon{pointer-events:none}.v-rating--dense .v-icon{padding:.1rem}.v-snack{align-items:center;color:#fff;display:flex;font-size:14px;left:8px;pointer-events:none;position:fixed;right:8px;text-align:left;transition-duration:.15s;transition-timing-function:cubic-bezier(0,0,.2,1);z-index:1000}.v-snack--absolute{position:absolute}.v-snack--top{top:8px}.v-snack--bottom{bottom:8px}.v-snack__wrapper{align-items:center;background-color:#323232;border-radius:4px;display:flex;margin:0 auto;pointer-events:auto;transition:inherit;transition-property:opacity,transform;min-width:100%;box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.v-snack__content{align-items:center;display:flex;min-height:48px;justify-content:space-between;overflow:hidden;padding:8px 16px;width:100%}.v-snack__content .v-btn.v-btn{color:#fff;flex:0 0 auto;height:auto;margin:0 -8px 0 24px;min-width:auto;padding:8px;width:auto}.v-snack__content .v-btn.v-btn__content{margin:-2px}.v-application--is-rtl .v-snack__content .v-btn.v-btn{margin:0 24px 0 -8px}.v-snack__content .v-btn.v-btn:before{display:none}.v-snack--multi-line .v-snack__content{height:auto;min-height:68px}.v-snack--vertical .v-snack__content{align-items:stretch;flex-direction:column;height:auto;padding:16px 16px 8px}.v-snack--vertical .v-snack__content .v-btn.v-btn{align-self:flex-end;justify-self:flex-end;margin-left:0;margin-top:18px}.v-snack--vertical .v-snack__content .v-btn__content{flex:0 0 auto;margin:0}@media only screen and (min-width:600px){.v-snack__wrapper{min-width:344px;max-width:672px}.v-snack--left .v-snack__wrapper{margin-left:0}.v-snack--right .v-snack__wrapper{margin-right:0}.v-snack__content .v-btn:first-of-type{margin-left:42px}.v-application--is-rtl .v-snack__content .v-btn:first-of-type{margin-left:0;margin-right:42px}}.v-snack-transition-enter .v-snack__wrapper{transform:scale(.8)}.v-snack-transition-enter .v-snack__wrapper,.v-snack-transition-leave-to .v-snack__wrapper{opacity:0}.v-speed-dial{position:relative}.v-speed-dial--absolute{position:absolute}.v-speed-dial--fixed{position:fixed}.v-speed-dial--absolute,.v-speed-dial--fixed{z-index:4}.v-speed-dial--absolute>.v-btn--floating,.v-speed-dial--fixed>.v-btn--floating{margin:0}.v-speed-dial--top{top:16px}.v-speed-dial--bottom{bottom:16px}.v-speed-dial--left{left:16px}.v-speed-dial--right{right:16px}.v-speed-dial--direction-left .v-speed-dial__list,.v-speed-dial--direction-right .v-speed-dial__list{height:100%;top:0;padding:0 16px}.v-speed-dial--direction-bottom .v-speed-dial__list,.v-speed-dial--direction-top .v-speed-dial__list{left:0;width:100%}.v-speed-dial--direction-top .v-speed-dial__list{flex-direction:column-reverse;bottom:100%}.v-speed-dial--direction-right .v-speed-dial__list{flex-direction:row;left:100%}.v-speed-dial--direction-bottom .v-speed-dial__list{flex-direction:column;top:100%}.v-speed-dial--direction-left .v-speed-dial__list{flex-direction:row-reverse;right:100%}.v-speed-dial__list{align-items:center;display:flex;justify-content:center;padding:16px 0;position:absolute}.v-speed-dial__list .v-btn{margin:6px}.v-speed-dial:not(.v-speed-dial--is-active) .v-speed-dial__list{pointer-events:none}.theme--light.v-stepper{background:#fff}.theme--light.v-stepper .v-stepper__step:not(.v-stepper__step--active):not(.v-stepper__step--complete):not(.v-stepper__step--error) .v-stepper__step__step{background:rgba(0,0,0,.38)}.theme--light.v-stepper .v-stepper__step__step,.theme--light.v-stepper .v-stepper__step__step .v-icon{color:#fff}.theme--light.v-stepper .v-stepper__header .v-divider{border-color:rgba(0,0,0,.12)}.theme--light.v-stepper .v-stepper__step--active .v-stepper__label{text-shadow:0 0 0 #000}.theme--light.v-stepper .v-stepper__step--editable:hover{background:rgba(0,0,0,.06)}.theme--light.v-stepper .v-stepper__step--editable:hover .v-stepper__label{text-shadow:0 0 0 #000}.theme--light.v-stepper .v-stepper__step--complete .v-stepper__label{color:rgba(0,0,0,.87)}.theme--light.v-stepper .v-stepper__step--inactive.v-stepper__step--editable:not(.v-stepper__step--error):hover .v-stepper__step__step{background:rgba(0,0,0,.54)}.theme--light.v-stepper .v-stepper__label{color:rgba(0,0,0,.38)}.theme--light.v-stepper--non-linear .v-stepper__step:not(.v-stepper__step--complete):not(.v-stepper__step--error) .v-stepper__label,.theme--light.v-stepper .v-stepper__label small{color:rgba(0,0,0,.54)}.theme--light.v-stepper--vertical .v-stepper__content:not(:last-child){border-left:1px solid rgba(0,0,0,.12)}.theme--dark.v-stepper{background:#303030}.theme--dark.v-stepper .v-stepper__step:not(.v-stepper__step--active):not(.v-stepper__step--complete):not(.v-stepper__step--error) .v-stepper__step__step{background:hsla(0,0%,100%,.5)}.theme--dark.v-stepper .v-stepper__step__step,.theme--dark.v-stepper .v-stepper__step__step .v-icon{color:#fff}.theme--dark.v-stepper .v-stepper__header .v-divider{border-color:hsla(0,0%,100%,.12)}.theme--dark.v-stepper .v-stepper__step--active .v-stepper__label{text-shadow:0 0 0 #fff}.theme--dark.v-stepper .v-stepper__step--editable:hover{background:hsla(0,0%,100%,.06)}.theme--dark.v-stepper .v-stepper__step--editable:hover .v-stepper__label{text-shadow:0 0 0 #fff}.theme--dark.v-stepper .v-stepper__step--complete .v-stepper__label{color:hsla(0,0%,100%,.87)}.theme--dark.v-stepper .v-stepper__step--inactive.v-stepper__step--editable:not(.v-stepper__step--error):hover .v-stepper__step__step{background:hsla(0,0%,100%,.75)}.theme--dark.v-stepper .v-stepper__label{color:hsla(0,0%,100%,.5)}.theme--dark.v-stepper--non-linear .v-stepper__step:not(.v-stepper__step--complete):not(.v-stepper__step--error) .v-stepper__label,.theme--dark.v-stepper .v-stepper__label small{color:hsla(0,0%,100%,.7)}.theme--dark.v-stepper--vertical .v-stepper__content:not(:last-child){border-left:1px solid hsla(0,0%,100%,.12)}.v-stepper{border-radius:4px;overflow:hidden;position:relative}.v-stepper,.v-stepper__header{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-stepper__header{height:72px;align-items:stretch;display:flex;flex-wrap:wrap;justify-content:space-between}.v-stepper__header .v-divider{align-self:center;margin:0 -16px}.v-stepper__items{position:relative;overflow:hidden}.v-stepper__step__step{align-items:center;border-radius:50%;display:inline-flex;font-size:12px;justify-content:center;height:24px;margin-right:8px;min-width:24px;width:24px;transition:.3s cubic-bezier(.25,.8,.25,1)}.v-stepper__step__step .v-icon{font-size:18px}.v-stepper__step{align-items:center;display:flex;flex-direction:row;padding:24px;position:relative}.v-stepper__step--active .v-stepper__label{transition:.3s cubic-bezier(.4,0,.6,1)}.v-stepper__step--editable{cursor:pointer}.v-stepper__step.v-stepper__step--error .v-stepper__step__step{background:transparent;color:inherit}.v-stepper__step.v-stepper__step--error .v-stepper__step__step .v-icon{font-size:24px;color:inherit}.v-stepper__step.v-stepper__step--error .v-stepper__label{color:inherit;text-shadow:none;font-weight:500}.v-stepper__step.v-stepper__step--error .v-stepper__label small{color:inherit}.v-stepper__label{align-items:flex-start;display:flex;flex-direction:column;line-height:1;text-align:left}.v-stepper__label small{font-size:12px;font-weight:300;text-shadow:none}.v-stepper__wrapper{overflow:hidden;transition:none}.v-stepper__content{top:0;padding:24px 24px 16px;flex:1 0 auto;width:100%}.v-stepper__content>.v-btn{margin:24px 8px 8px 0}.v-stepper--is-booted .v-stepper__content,.v-stepper--is-booted .v-stepper__wrapper{transition:.3s cubic-bezier(.25,.8,.5,1)}.v-stepper--vertical{padding-bottom:36px}.v-stepper--vertical .v-stepper__content{margin:-8px -36px -16px 36px;padding:16px 60px 16px 23px;width:auto}.v-stepper--vertical .v-stepper__step{padding:24px 24px 16px}.v-stepper--vertical .v-stepper__step__step{margin-right:12px}.v-stepper--alt-labels .v-stepper__header{height:auto}.v-stepper--alt-labels .v-stepper__header .v-divider{margin:35px -67px 0;align-self:flex-start}.v-stepper--alt-labels .v-stepper__step{flex-direction:column;justify-content:flex-start;align-items:center;flex-basis:175px}.v-stepper--alt-labels .v-stepper__step small{align-self:center}.v-stepper--alt-labels .v-stepper__step__step{margin-right:0;margin-bottom:11px}.v-application--is-rtl .v-stepper .v-stepper__step__step{margin-right:0;margin-left:12px}@media only screen and (max-width:959px){.v-stepper:not(.v-stepper--vertical) .v-stepper__label{display:none}.v-stepper:not(.v-stepper--vertical) .v-stepper__step__step{margin-right:0}}.theme--light.v-input--switch .v-input--switch__thumb{color:#fff}.theme--light.v-input--switch .v-input--switch__track{color:rgba(0,0,0,.38)}.theme--light.v-input--switch.v-input--is-disabled:not(.v-input--is-dirty) .v-input--switch__thumb{color:#fafafa!important}.theme--light.v-input--switch.v-input--is-disabled:not(.v-input--is-dirty) .v-input--switch__track{color:rgba(0,0,0,.12)!important}.theme--dark.v-input--switch .v-input--switch__thumb{color:#bdbdbd}.theme--dark.v-input--switch .v-input--switch__track{color:hsla(0,0%,100%,.3)}.theme--dark.v-input--switch.v-input--is-disabled:not(.v-input--is-dirty) .v-input--switch__thumb{color:#424242!important}.theme--dark.v-input--switch.v-input--is-disabled:not(.v-input--is-dirty) .v-input--switch__track{color:hsla(0,0%,100%,.1)!important}.v-input--switch__thumb,.v-input--switch__track{background-color:currentColor;pointer-events:none;transition:inherit}.v-input--switch__track{border-radius:8px;width:36px;height:14px;left:2px;position:absolute;opacity:.6;right:2px;top:calc(50% - 7px)}.v-input--switch__thumb{border-radius:50%;top:calc(50% - 10px);height:20px;position:relative;width:20px;display:flex;justify-content:center;align-items:center;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-input--switch .v-input--selection-controls__input{width:38px}.v-input--switch .v-input--selection-controls__ripple{top:calc(50% - 24px)}.v-input--switch.v-input--is-dirty.v-input--is-disabled{opacity:.6}.v-application--is-ltr .v-input--switch .v-input--selection-controls__ripple{left:-14px}.v-application--is-ltr .v-input--switch.v-input--is-dirty .v-input--selection-controls__ripple,.v-application--is-ltr .v-input--switch.v-input--is-dirty .v-input--switch__thumb{transform:translate(20px)}.v-application--is-rtl .v-input--switch .v-input--selection-controls__ripple{right:-14px}.v-application--is-rtl .v-input--switch.v-input--is-dirty .v-input--selection-controls__ripple,.v-application--is-rtl .v-input--switch.v-input--is-dirty .v-input--switch__thumb{transform:translate(-20px)}.v-input--switch:not(.v-input--switch--flat):not(.v-input--switch--inset) .v-input--switch__thumb{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.v-input--switch--inset .v-input--selection-controls__input,.v-input--switch--inset .v-input--switch__track{width:48px}.v-input--switch--inset .v-input--switch__track{border-radius:14px;height:28px;left:-4px;opacity:.32;top:calc(50% - 14px)}.v-application--is-ltr .v-input--switch--inset .v-input--selection-controls__ripple,.v-application--is-ltr .v-input--switch--inset .v-input--switch__thumb{transform:translate(0)!important}.v-application--is-ltr .v-input--switch--inset.v-input--is-dirty .v-input--selection-controls__ripple,.v-application--is-ltr .v-input--switch--inset.v-input--is-dirty .v-input--switch__thumb{transform:translate(20px)!important}.v-application--is-rtl .v-input--switch--inset .v-input--selection-controls__ripple,.v-application--is-rtl .v-input--switch--inset .v-input--switch__thumb{transform:translate(-6px)!important}.v-application--is-rtl .v-input--switch--inset.v-input--is-dirty .v-input--selection-controls__ripple,.v-application--is-rtl .v-input--switch--inset.v-input--is-dirty .v-input--switch__thumb{transform:translate(-26px)!important}.theme--light.v-system-bar{background-color:#e0e0e0;color:rgba(0,0,0,.54)}.theme--light.v-system-bar .v-icon{color:rgba(0,0,0,.54)}.theme--light.v-system-bar--lights-out{background-color:hsla(0,0%,100%,.7)!important}.theme--dark.v-system-bar{background-color:#000;color:hsla(0,0%,100%,.7)}.theme--dark.v-system-bar .v-icon{color:hsla(0,0%,100%,.7)}.theme--dark.v-system-bar--lights-out{background-color:rgba(0,0,0,.2)!important}.v-system-bar{align-items:center;display:flex;font-size:.875rem;font-weight:400;padding:0 8px}.v-system-bar .v-icon{font-size:1rem;margin-right:4px}.v-system-bar--absolute,.v-system-bar--fixed{left:0;top:0;width:100%;z-index:3}.v-system-bar--fixed{position:fixed}.v-system-bar--absolute{position:absolute}.v-system-bar--window .v-icon{font-size:1.25rem;margin-right:8px}.theme--light.v-tabs>.v-tabs-bar{background-color:#fff}.theme--light.v-tabs>.v-tabs-bar .v-tab--disabled,.theme--light.v-tabs>.v-tabs-bar .v-tab:not(.v-tab--active),.theme--light.v-tabs>.v-tabs-bar .v-tab:not(.v-tab--active)>.v-icon{color:rgba(0,0,0,.54)}.theme--light.v-tabs .v-tab:hover:before{opacity:.04}.theme--light.v-tabs .v-tab--active:before,.theme--light.v-tabs .v-tab--active:hover:before,.theme--light.v-tabs .v-tab:focus:before{opacity:.12}.theme--light.v-tabs .v-tab--active:focus:before{opacity:.16}.theme--dark.v-tabs>.v-tabs-bar{background-color:#424242}.theme--dark.v-tabs>.v-tabs-bar .v-tab--disabled,.theme--dark.v-tabs>.v-tabs-bar .v-tab:not(.v-tab--active),.theme--dark.v-tabs>.v-tabs-bar .v-tab:not(.v-tab--active)>.v-icon{color:hsla(0,0%,100%,.6)}.theme--dark.v-tabs .v-tab:hover:before{opacity:.08}.theme--dark.v-tabs .v-tab--active:before,.theme--dark.v-tabs .v-tab--active:hover:before,.theme--dark.v-tabs .v-tab:focus:before{opacity:.24}.theme--dark.v-tabs .v-tab--active:focus:before{opacity:.32}.theme--light.v-tabs-items{background-color:#fff}.theme--dark.v-tabs-items{background-color:#424242}.v-tabs-bar.theme--dark .v-tab:not(.v-tab--active):not(.v-tab--disabled){opacity:.7}.v-tabs-bar.accent .v-tab,.v-tabs-bar.accent .v-tabs-slider,.v-tabs-bar.error .v-tab,.v-tabs-bar.error .v-tabs-slider,.v-tabs-bar.info .v-tab,.v-tabs-bar.info .v-tabs-slider,.v-tabs-bar.primary .v-tab,.v-tabs-bar.primary .v-tabs-slider,.v-tabs-bar.secondary .v-tab,.v-tabs-bar.secondary .v-tabs-slider,.v-tabs-bar.success .v-tab,.v-tabs-bar.success .v-tabs-slider,.v-tabs-bar.warning .v-tab,.v-tabs-bar.warning .v-tabs-slider{color:#fff}.v-tabs{flex:1 1 auto;width:100%}.v-tabs .v-menu__activator{height:100%}.v-tabs-bar{border-radius:inherit;height:48px}.v-application--is-ltr .v-tabs-bar.v-tabs-bar--is-mobile:not(.v-tabs-bar--show-arrows)>.v-slide-group__wrapper>.v-tabs-bar__content>.v-tab:first-child,.v-application--is-ltr .v-tabs-bar.v-tabs-bar--is-mobile:not(.v-tabs-bar--show-arrows)>.v-slide-group__wrapper>.v-tabs-bar__content>.v-tabs-slider-wrapper+.v-tab{margin-left:52px}.v-application--is-rtl .v-tabs-bar.v-tabs-bar--is-mobile:not(.v-tabs-bar--show-arrows)>.v-slide-group__wrapper>.v-tabs-bar__content>.v-tab:first-child,.v-application--is-rtl .v-tabs-bar.v-tabs-bar--is-mobile:not(.v-tabs-bar--show-arrows)>.v-slide-group__wrapper>.v-tabs-bar__content>.v-tabs-slider-wrapper+.v-tab{margin-right:52px}.v-tabs-bar.v-item-group>*{cursor:auto}.v-tab{align-items:center;display:flex;flex:0 1 auto;font-size:.875rem;font-weight:500;justify-content:center;line-height:normal;min-width:90px;max-width:360px;outline:none;padding:0 16px;position:relative;text-decoration:none;text-transform:uppercase;transition:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-tab.v-tab{color:inherit}.v-tab:before{background-color:currentColor;bottom:0;content:"";left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-tab:not(.v-tab-disabled){cursor:pointer}.v-tabs-slider{background-color:currentColor;height:100%;width:100%}.v-tabs-slider-wrapper{bottom:0;margin:0!important;position:absolute;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-application--is-ltr .v-tabs--align-with-title>.v-tabs-bar--is-mobile:not(.v-tabs-bar--show-arrows)>.v-slide-group__wrapper>.v-tabs-bar__content>.v-tab:first-child,.v-application--is-ltr .v-tabs--align-with-title>.v-tabs-bar--is-mobile:not(.v-tabs-bar--show-arrows)>.v-slide-group__wrapper>.v-tabs-bar__content>.v-tabs-slider-wrapper+.v-tab{margin-left:72px}.v-application--is-rtl .v-tabs--align-with-title>.v-tabs-bar--is-mobile:not(.v-tabs-bar--show-arrows)>.v-slide-group__wrapper>.v-tabs-bar__content>.v-tab:first-child,.v-application--is-rtl .v-tabs--align-with-title>.v-tabs-bar--is-mobile:not(.v-tabs-bar--show-arrows)>.v-slide-group__wrapper>.v-tabs-bar__content>.v-tabs-slider-wrapper+.v-tab{margin-right:72px}.v-application--is-ltr .v-tabs--centered>.v-tabs-bar .v-tabs-bar__content>:last-child,.v-application--is-ltr .v-tabs--fixed-tabs>.v-tabs-bar .v-tabs-bar__content>:last-child{margin-right:auto}.v-application--is-ltr .v-tabs--centered>.v-tabs-bar .v-tabs-bar__content>:first-child:not(.v-tabs-slider-wrapper),.v-application--is-ltr .v-tabs--centered>.v-tabs-bar .v-tabs-slider-wrapper+*,.v-application--is-ltr .v-tabs--fixed-tabs>.v-tabs-bar .v-tabs-bar__content>:first-child:not(.v-tabs-slider-wrapper),.v-application--is-ltr .v-tabs--fixed-tabs>.v-tabs-bar .v-tabs-slider-wrapper+*,.v-application--is-rtl .v-tabs--centered>.v-tabs-bar .v-tabs-bar__content>:last-child,.v-application--is-rtl .v-tabs--fixed-tabs>.v-tabs-bar .v-tabs-bar__content>:last-child{margin-left:auto}.v-application--is-rtl .v-tabs--centered>.v-tabs-bar .v-tabs-bar__content>:first-child:not(.v-tabs-slider-wrapper),.v-application--is-rtl .v-tabs--centered>.v-tabs-bar .v-tabs-slider-wrapper+*,.v-application--is-rtl .v-tabs--fixed-tabs>.v-tabs-bar .v-tabs-bar__content>:first-child:not(.v-tabs-slider-wrapper),.v-application--is-rtl .v-tabs--fixed-tabs>.v-tabs-bar .v-tabs-slider-wrapper+*{margin-right:auto}.v-tabs--fixed-tabs>.v-tabs-bar .v-tab{flex:1 1 auto;width:100%}.v-tabs--grow>.v-tabs-bar .v-tab{flex:1 0 auto;max-width:none}.v-tabs--icons-and-text>.v-tabs-bar{height:72px}.v-tabs--icons-and-text>.v-tabs-bar .v-tab{flex-direction:column-reverse}.v-tabs--icons-and-text>.v-tabs-bar .v-tab>:first-child{margin-bottom:6px}.v-tabs--overflow>.v-tabs-bar .v-tab{flex:1 0 auto}.v-application--is-ltr .v-tabs--right>.v-tabs-bar .v-tab:first-child,.v-application--is-ltr .v-tabs--right>.v-tabs-bar .v-tabs-slider-wrapper+.v-tab{margin-left:auto}.v-application--is-rtl .v-tabs--right>.v-tabs-bar .v-tab:first-child,.v-application--is-rtl .v-tabs--right>.v-tabs-bar .v-tabs-slider-wrapper+.v-tab{margin-right:auto}.v-application--is-ltr .v-tabs--right>.v-tabs-bar .v-tab:last-child{margin-right:0}.v-application--is-rtl .v-tabs--right>.v-tabs-bar .v-tab:last-child{margin-left:0}.v-tabs--vertical{display:flex}.v-tabs--vertical>.v-tabs-bar{height:auto}.v-tabs--vertical>.v-tabs-bar .v-tabs-bar__content{flex-direction:column}.v-tabs--vertical>.v-tabs-bar .v-tab{height:48px}.v-tabs--vertical>.v-tabs-bar .v-tabs-slider{height:100%}.v-tabs--vertical>.v-window{flex:1 1 auto}.v-tabs--vertical.v-tabs--icons-and-text>.v-tabs-bar .v-tab{height:72px}.v-tab--active{color:inherit}.v-tab--active.v-tab:not(:focus):before{opacity:0}.v-tab--active .v-icon{color:inherit}.v-tab--disabled{pointer-events:none;opacity:.5}.theme--light.v-textarea.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused textarea{color:#fff}.theme--dark.v-textarea.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused textarea{color:rgba(0,0,0,.87)}.v-textarea textarea{flex:1 1 auto;line-height:18px;max-width:100%;min-height:32px;outline:none;padding:7px 0 8px;width:100%}.v-textarea .v-text-field__prefix{padding-top:4px;align-self:start}.v-textarea.v-text-field--box .v-text-field__prefix,.v-textarea.v-text-field--box textarea,.v-textarea.v-text-field--enclosed .v-text-field__prefix,.v-textarea.v-text-field--enclosed textarea{margin-top:24px}.v-textarea.v-text-field--box.v-text-field--outlined .v-text-field__prefix,.v-textarea.v-text-field--box.v-text-field--outlined textarea,.v-textarea.v-text-field--box.v-text-field--single-line .v-text-field__prefix,.v-textarea.v-text-field--box.v-text-field--single-line textarea,.v-textarea.v-text-field--enclosed.v-text-field--outlined .v-text-field__prefix,.v-textarea.v-text-field--enclosed.v-text-field--outlined textarea,.v-textarea.v-text-field--enclosed.v-text-field--single-line .v-text-field__prefix,.v-textarea.v-text-field--enclosed.v-text-field--single-line textarea{margin-top:12px}.v-textarea.v-text-field--box.v-text-field--outlined .v-label,.v-textarea.v-text-field--box.v-text-field--single-line .v-label,.v-textarea.v-text-field--enclosed.v-text-field--outlined .v-label,.v-textarea.v-text-field--enclosed.v-text-field--single-line .v-label{top:18px}.v-textarea.v-text-field--solo{align-items:flex-start}.v-textarea.v-text-field--solo .v-input__append-inner,.v-textarea.v-text-field--solo .v-input__append-outer,.v-textarea.v-text-field--solo .v-input__prepend-inner,.v-textarea.v-text-field--solo .v-input__prepend-outer{align-self:flex-start;margin-top:16px}.v-textarea--auto-grow textarea{overflow:hidden}.v-textarea--no-resize textarea{resize:none}.v-textarea.v-text-field--enclosed .v-text-field__slot{margin-right:-12px}.v-textarea.v-text-field--enclosed .v-text-field__slot textarea{padding-right:12px}.v-application--is-rtl .v-textarea.v-text-field--enclosed .v-text-field__slot{margin-right:0;margin-left:-12px}.v-application--is-rtl .v-textarea.v-text-field--enclosed .v-text-field__slot textarea{padding-right:0;padding-left:12px}.theme--light.v-timeline:before{background:rgba(0,0,0,.12)}.theme--light.v-timeline .v-timeline-item__dot{background:#fff}.theme--light.v-timeline .v-timeline-item .v-card:before{border-right-color:rgba(0,0,0,.12)}.theme--dark.v-timeline:before{background:hsla(0,0%,100%,.12)}.theme--dark.v-timeline .v-timeline-item__dot{background:#424242}.theme--dark.v-timeline .v-timeline-item .v-card:before{border-right-color:rgba(0,0,0,.12)}.v-timeline{padding-top:24px;position:relative}.v-timeline:before{bottom:0;content:"";height:100%;position:absolute;top:0;width:2px}.v-timeline-item{display:flex;padding-bottom:24px}.v-timeline-item__body{position:relative;height:100%;flex:1 1 auto}.v-timeline-item__divider{position:relative;min-width:96px;display:flex;align-items:center;justify-content:center}.v-timeline-item__dot{z-index:2;border-radius:50%;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);height:38px;left:calc(50% - 19px);width:38px}.v-timeline-item__dot .v-timeline-item__inner-dot{height:30px;margin:4px;width:30px}.v-timeline-item__dot--small{height:24px;left:calc(50% - 12px);width:24px}.v-timeline-item__dot--small .v-timeline-item__inner-dot{height:18px;margin:3px;width:18px}.v-timeline-item__dot--large{height:52px;left:calc(50% - 26px);width:52px}.v-timeline-item__dot--large .v-timeline-item__inner-dot{height:42px;margin:5px;width:42px}.v-timeline-item__inner-dot{border-radius:50%;display:flex;justify-content:center;align-items:center}.v-timeline-item__opposite{flex:1 1 auto;align-self:center;max-width:calc(50% - 48px)}.v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item--after,.v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item:nth-child(odd):not(.v-timeline-item--before){flex-direction:row-reverse}.v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item--after .v-timeline-item__opposite,.v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item:nth-child(odd):not(.v-timeline-item--before) .v-timeline-item__opposite{text-align:right}.v-application--is-rtl .v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item--after .v-timeline-item__opposite,.v-application--is-rtl .v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item:nth-child(odd):not(.v-timeline-item--before) .v-timeline-item__opposite{text-align:left}.v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item--after .v-timeline-item__body .v-card:after,.v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item--after .v-timeline-item__body>.v-card:before,.v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item:nth-child(odd):not(.v-timeline-item--before) .v-timeline-item__body .v-card:after,.v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item:nth-child(odd):not(.v-timeline-item--before) .v-timeline-item__body>.v-card:before{transform:rotate(0);left:-10px;right:auto}.v-application--is-rtl .v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item--after .v-timeline-item__body .v-card:after,.v-application--is-rtl .v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item--after .v-timeline-item__body>.v-card:before,.v-application--is-rtl .v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item:nth-child(odd):not(.v-timeline-item--before) .v-timeline-item__body .v-card:after,.v-application--is-rtl .v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item:nth-child(odd):not(.v-timeline-item--before) .v-timeline-item__body>.v-card:before{transform:rotate(180deg);left:auto;right:-10px}.v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item--after .v-timeline-item__body,.v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item:nth-child(odd):not(.v-timeline-item--before) .v-timeline-item__body{max-width:calc(50% - 48px)}.v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item--before,.v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item:nth-child(2n):not(.v-timeline-item--after){flex-direction:row}.v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item--before .v-timeline-item__opposite,.v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item:nth-child(2n):not(.v-timeline-item--after) .v-timeline-item__opposite{text-align:left}.v-application--is-rtl .v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item--before .v-timeline-item__opposite,.v-application--is-rtl .v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item:nth-child(2n):not(.v-timeline-item--after) .v-timeline-item__opposite{text-align:right}.v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item--before .v-timeline-item__body .v-card:after,.v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item--before .v-timeline-item__body>.v-card:before,.v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item:nth-child(2n):not(.v-timeline-item--after) .v-timeline-item__body .v-card:after,.v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item:nth-child(2n):not(.v-timeline-item--after) .v-timeline-item__body>.v-card:before{transform:rotate(180deg);right:-10px;left:auto}.v-application--is-rtl .v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item--before .v-timeline-item__body .v-card:after,.v-application--is-rtl .v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item--before .v-timeline-item__body>.v-card:before,.v-application--is-rtl .v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item:nth-child(2n):not(.v-timeline-item--after) .v-timeline-item__body .v-card:after,.v-application--is-rtl .v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item:nth-child(2n):not(.v-timeline-item--after) .v-timeline-item__body>.v-card:before{transform:rotate(0);right:auto;left:-10px}.v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item--before .v-timeline-item__body,.v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse) .v-timeline-item:nth-child(2n):not(.v-timeline-item--after) .v-timeline-item__body{max-width:calc(50% - 48px)}.v-timeline-item__body>.v-card:after,.v-timeline-item__body>.v-card:before{content:"";position:absolute;border-top:10px solid transparent;border-bottom:10px solid transparent;border-right:10px solid #000;top:calc(50% - 10px)}.v-timeline-item__body>.v-card:after{border-right-color:inherit}.v-timeline-item__body>.v-card:before{top:calc(50% - 8px)}.v-timeline--align-top .v-timeline-item__dot{align-self:start}.v-timeline--align-top .v-timeline-item__body>.v-card:before{top:12px}.v-timeline--align-top .v-timeline-item__body>.v-card:after{top:10px}.v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse):before{left:calc(50% - 1px);right:auto}.v-application--is-rtl .v-timeline:not(.v-timeline--dense):not(.v-timeline--reverse):before,.v-timeline--reverse:not(.v-timeline--dense):before{left:auto;right:calc(50% - 1px)}.v-application--is-rtl .v-timeline--reverse:not(.v-timeline--dense):before{right:auto;left:calc(50% - 1px)}.v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item--before,.v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item:nth-child(odd):not(.v-timeline-item--after){flex-direction:row}.v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item--before .v-timeline-item__opposite,.v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item:nth-child(odd):not(.v-timeline-item--after) .v-timeline-item__opposite{text-align:left}.v-application--is-rtl .v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item--before .v-timeline-item__opposite,.v-application--is-rtl .v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item:nth-child(odd):not(.v-timeline-item--after) .v-timeline-item__opposite{text-align:right}.v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item--before .v-timeline-item__body .v-card:after,.v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item--before .v-timeline-item__body>.v-card:before,.v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item:nth-child(odd):not(.v-timeline-item--after) .v-timeline-item__body .v-card:after,.v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item:nth-child(odd):not(.v-timeline-item--after) .v-timeline-item__body>.v-card:before{transform:rotate(180deg);right:-10px;left:auto}.v-application--is-rtl .v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item--before .v-timeline-item__body .v-card:after,.v-application--is-rtl .v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item--before .v-timeline-item__body>.v-card:before,.v-application--is-rtl .v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item:nth-child(odd):not(.v-timeline-item--after) .v-timeline-item__body .v-card:after,.v-application--is-rtl .v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item:nth-child(odd):not(.v-timeline-item--after) .v-timeline-item__body>.v-card:before{transform:rotate(0);right:auto;left:-10px}.v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item--before .v-timeline-item__body,.v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item:nth-child(odd):not(.v-timeline-item--after) .v-timeline-item__body{max-width:calc(50% - 48px)}.v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item--after,.v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item:nth-child(2n):not(.v-timeline-item--before){flex-direction:row-reverse}.v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item--after .v-timeline-item__opposite,.v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item:nth-child(2n):not(.v-timeline-item--before) .v-timeline-item__opposite{text-align:right}.v-application--is-rtl .v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item--after .v-timeline-item__opposite,.v-application--is-rtl .v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item:nth-child(2n):not(.v-timeline-item--before) .v-timeline-item__opposite{text-align:left}.v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item--after .v-timeline-item__body .v-card:after,.v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item--after .v-timeline-item__body>.v-card:before,.v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item:nth-child(2n):not(.v-timeline-item--before) .v-timeline-item__body .v-card:after,.v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item:nth-child(2n):not(.v-timeline-item--before) .v-timeline-item__body>.v-card:before{transform:rotate(0);left:-10px;right:auto}.v-application--is-rtl .v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item--after .v-timeline-item__body .v-card:after,.v-application--is-rtl .v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item--after .v-timeline-item__body>.v-card:before,.v-application--is-rtl .v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item:nth-child(2n):not(.v-timeline-item--before) .v-timeline-item__body .v-card:after,.v-application--is-rtl .v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item:nth-child(2n):not(.v-timeline-item--before) .v-timeline-item__body>.v-card:before{transform:rotate(180deg);left:auto;right:-10px}.v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item--after .v-timeline-item__body,.v-timeline--reverse:not(.v-timeline--dense) .v-timeline-item:nth-child(2n):not(.v-timeline-item--before) .v-timeline-item__body{max-width:calc(50% - 48px)}.v-timeline--reverse.v-timeline--dense:before{right:47px;left:auto}.v-application--is-rtl .v-timeline--reverse.v-timeline--dense:before,.v-timeline--dense:not(.v-timeline--reverse):before{right:auto;left:47px}.v-application--is-rtl .v-timeline--dense:not(.v-timeline--reverse):before{left:auto;right:47px}.v-timeline--dense .v-timeline-item{flex-direction:row-reverse!important}.v-timeline--dense .v-timeline-item .v-timeline-item__body .v-card:after,.v-timeline--dense .v-timeline-item .v-timeline-item__body>.v-card:before{transform:rotate(0);left:-10px;right:auto}.v-application--is-rtl .v-timeline--dense .v-timeline-item .v-timeline-item__body .v-card:after,.v-application--is-rtl .v-timeline--dense .v-timeline-item .v-timeline-item__body>.v-card:before{transform:rotate(180deg);left:auto;right:-10px}.v-timeline--dense .v-timeline-item__body{max-width:calc(100% - 96px)}.v-timeline--dense .v-timeline-item__opposite{display:none}.v-timeline--reverse.v-timeline--dense .v-timeline-item{flex-direction:row!important}.v-timeline--reverse.v-timeline--dense .v-timeline-item .v-timeline-item__body .v-card:after,.v-timeline--reverse.v-timeline--dense .v-timeline-item .v-timeline-item__body>.v-card:before{transform:rotate(180deg);right:-10px;left:auto}.v-application--is-rtl .v-timeline--reverse.v-timeline--dense .v-timeline-item .v-timeline-item__body .v-card:after,.v-application--is-rtl .v-timeline--reverse.v-timeline--dense .v-timeline-item .v-timeline-item__body>.v-card:before{transform:rotate(0);right:auto;left:-10px}.v-timeline-item--fill-dot .v-timeline-item__inner-dot{height:inherit;margin:0;width:inherit}.theme--light.v-time-picker-clock{background:#e0e0e0}.theme--light.v-time-picker-clock .v-time-picker-clock__item--disabled{color:rgba(0,0,0,.26)}.theme--light.v-time-picker-clock .v-time-picker-clock__item--disabled.v-time-picker-clock__item--active{color:hsla(0,0%,100%,.3)}.theme--light.v-time-picker-clock--indeterminate .v-time-picker-clock__hand{background-color:#bdbdbd}.theme--light.v-time-picker-clock--indeterminate:after{color:#bdbdbd}.theme--light.v-time-picker-clock--indeterminate .v-time-picker-clock__item--active{background-color:#bdbdbd}.theme--dark.v-time-picker-clock{background:#616161}.theme--dark.v-time-picker-clock .v-time-picker-clock__item--disabled,.theme--dark.v-time-picker-clock .v-time-picker-clock__item--disabled.v-time-picker-clock__item--active{color:hsla(0,0%,100%,.3)}.theme--dark.v-time-picker-clock--indeterminate .v-time-picker-clock__hand{background-color:#757575}.theme--dark.v-time-picker-clock--indeterminate:after{color:#757575}.theme--dark.v-time-picker-clock--indeterminate .v-time-picker-clock__item--active{background-color:#757575}.v-time-picker-clock{border-radius:100%;position:relative;transition:.3s cubic-bezier(.25,.8,.5,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;padding-top:100%;flex:1 0 auto}.v-time-picker-clock__container{display:flex;flex-direction:column;justify-content:center;padding:10px}.v-time-picker-clock__ampm{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-end;position:absolute;width:100%;height:100%;top:0;left:0;margin:0;padding:10px}.v-time-picker-clock__hand{height:calc(50% - 4px);width:2px;bottom:50%;left:calc(50% - 1px);transform-origin:center bottom;position:absolute;will-change:transform;z-index:1}.v-time-picker-clock__hand:before{background:transparent;border:2px solid;border-color:inherit;border-radius:100%;width:10px;height:10px;top:-4px}.v-time-picker-clock__hand:after,.v-time-picker-clock__hand:before{content:"";position:absolute;left:50%;transform:translate(-50%,-50%)}.v-time-picker-clock__hand:after{height:8px;width:8px;top:100%;border-radius:100%;border-style:solid;border-color:inherit;background-color:inherit}.v-time-picker-clock__hand--inner:after{height:14px}.v-picker--full-width .v-time-picker-clock__container{max-width:290px}.v-time-picker-clock__inner{position:absolute;bottom:27px;left:27px;right:27px;top:27px}.v-time-picker-clock__item{align-items:center;border-radius:100%;cursor:default;display:flex;font-size:16px;justify-content:center;height:40px;position:absolute;text-align:center;width:40px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transform:translate(-50%,-50%)}.v-time-picker-clock__item>span{z-index:1}.v-time-picker-clock__item:after,.v-time-picker-clock__item:before{content:"";border-radius:100%;position:absolute;top:50%;left:50%;height:14px;width:14px;transform:translate(-50%,-50%);height:40px;width:40px}.v-time-picker-clock__item--active{color:#fff;cursor:default;z-index:2}.v-time-picker-clock__item--disabled{pointer-events:none}.v-picker--landscape .v-time-picker-clock__container{flex-direction:row}.v-picker--landscape .v-time-picker-clock__ampm{flex-direction:column}.v-time-picker-title{color:#fff;display:flex;line-height:1;justify-content:flex-end}.v-time-picker-title__time{white-space:nowrap}.v-time-picker-title__time .v-picker__title__btn,.v-time-picker-title__time span{align-items:center;display:inline-flex;height:70px;font-size:70px;justify-content:center}.v-time-picker-title__ampm{align-self:flex-end;display:flex;flex-direction:column;font-size:16px;margin:8px 0 6px 8px;text-transform:uppercase}.v-time-picker-title__ampm div:only-child{flex-direction:row}.v-picker__title--landscape .v-time-picker-title{flex-direction:column;justify-content:center;height:100%}.v-picker__title--landscape .v-time-picker-title__time{text-align:right}.v-picker__title--landscape .v-time-picker-title__time .v-picker__title__btn,.v-picker__title--landscape .v-time-picker-title__time span{height:55px;font-size:55px}.v-picker__title--landscape .v-time-picker-title__ampm{margin:16px 0 0;align-self:auto;text-align:center}.v-picker--time .v-picker__title--landscape{padding:0}.v-picker--time .v-picker__title--landscape .v-time-picker-title__time{text-align:center}.v-tooltip__content{background:rgba(97,97,97,.9);color:#fff;border-radius:4px;font-size:14px;line-height:22px;display:inline-block;padding:5px 16px;position:absolute;text-transform:none;width:auto;opacity:1;pointer-events:none}.v-tooltip__content[class*=-active]{transition-timing-function:cubic-bezier(0,0,.2,1)}.v-tooltip__content[class*=enter-active]{transition-duration:.15s}.v-tooltip__content[class*=leave-active]{transition-duration:75ms}.theme--light.v-treeview{color:rgba(0,0,0,.87)}.theme--light.v-treeview--hoverable .v-treeview-node__root:hover:before,.theme--light.v-treeview .v-treeview-node--click>.v-treeview-node__root:hover:before{opacity:.04}.theme--light.v-treeview--hoverable .v-treeview-node__root--active:before,.theme--light.v-treeview--hoverable .v-treeview-node__root--active:hover:before,.theme--light.v-treeview--hoverable .v-treeview-node__root:focus:before,.theme--light.v-treeview .v-treeview-node--click>.v-treeview-node__root--active:before,.theme--light.v-treeview .v-treeview-node--click>.v-treeview-node__root--active:hover:before,.theme--light.v-treeview .v-treeview-node--click>.v-treeview-node__root:focus:before{opacity:.12}.theme--light.v-treeview--hoverable .v-treeview-node__root--active:focus:before,.theme--light.v-treeview .v-treeview-node--click>.v-treeview-node__root--active:focus:before{opacity:.16}.theme--light.v-treeview .v-treeview-node__root.v-treeview-node--active:before,.theme--light.v-treeview .v-treeview-node__root.v-treeview-node--active:hover:before{opacity:.12}.theme--light.v-treeview .v-treeview-node__root.v-treeview-node--active:focus:before{opacity:.16}.theme--light.v-treeview .v-treeview-node--disabled{color:rgba(0,0,0,.38)}.theme--light.v-treeview .v-treeview-node--disabled .v-treeview-node__checkbox,.theme--light.v-treeview .v-treeview-node--disabled .v-treeview-node__toggle{color:rgba(0,0,0,.38)!important}.theme--dark.v-treeview{color:#fff}.theme--dark.v-treeview--hoverable .v-treeview-node__root:hover:before,.theme--dark.v-treeview .v-treeview-node--click>.v-treeview-node__root:hover:before{opacity:.08}.theme--dark.v-treeview--hoverable .v-treeview-node__root--active:before,.theme--dark.v-treeview--hoverable .v-treeview-node__root--active:hover:before,.theme--dark.v-treeview--hoverable .v-treeview-node__root:focus:before,.theme--dark.v-treeview .v-treeview-node--click>.v-treeview-node__root--active:before,.theme--dark.v-treeview .v-treeview-node--click>.v-treeview-node__root--active:hover:before,.theme--dark.v-treeview .v-treeview-node--click>.v-treeview-node__root:focus:before{opacity:.24}.theme--dark.v-treeview--hoverable .v-treeview-node__root--active:focus:before,.theme--dark.v-treeview .v-treeview-node--click>.v-treeview-node__root--active:focus:before{opacity:.32}.theme--dark.v-treeview .v-treeview-node__root.v-treeview-node--active:before,.theme--dark.v-treeview .v-treeview-node__root.v-treeview-node--active:hover:before{opacity:.24}.theme--dark.v-treeview .v-treeview-node__root.v-treeview-node--active:focus:before{opacity:.32}.theme--dark.v-treeview .v-treeview-node--disabled{color:hsla(0,0%,100%,.5)}.theme--dark.v-treeview .v-treeview-node--disabled .v-treeview-node__checkbox,.theme--dark.v-treeview .v-treeview-node--disabled .v-treeview-node__toggle{color:hsla(0,0%,100%,.5)!important}.v-treeview>.v-treeview-node{margin-left:0}.v-treeview>.v-treeview-node--leaf{margin-left:16px}.v-treeview>.v-treeview-node--leaf>.v-treeview-node__root{padding-left:8px;padding-right:8px}.v-treeview-node{margin-left:26px}.v-treeview-node--disabled{pointer-events:none}.v-treeview-node.v-treeview-node--shaped .v-treeview-node__root,.v-treeview-node.v-treeview-node--shaped .v-treeview-node__root:before{border-bottom-right-radius:24px!important;border-top-right-radius:24px!important}.v-treeview-node.v-treeview-node--shaped .v-treeview-node__root{margin-top:8px;margin-bottom:8px}.v-treeview-node.v-treeview-node--rounded .v-treeview-node__root,.v-treeview-node.v-treeview-node--rounded .v-treeview-node__root:before{border-radius:24px!important}.v-treeview-node.v-treeview-node--rounded .v-treeview-node__root{margin-top:8px;margin-bottom:8px}.v-treeview-node--excluded{display:none}.v-treeview-node--click>.v-treeview-node__root,.v-treeview-node--click>.v-treeview-node__root>.v-treeview-node__content>*{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-treeview-node--leaf{margin-left:26px}.v-treeview-node--leaf>.v-treeview-node__root{padding-left:24px;padding-right:8px}.v-treeview-node__root{display:flex;align-items:center;min-height:48px;padding-right:8px;position:relative}.v-treeview-node__root:before{background-color:currentColor;bottom:0;content:"";left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-treeview-node__root.v-treeview-node--active .v-treeview-node__content .v-icon{color:inherit}.v-treeview-node__content{align-items:center;display:flex;flex-basis:0%;flex-grow:1;flex-shrink:0;min-width:0}.v-treeview-node__content .v-btn{flex-grow:0!important;flex-shrink:1!important}.v-treeview-node__label{flex:1;font-size:inherit;margin-left:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-treeview-node__label .v-icon{padding-right:8px}.v-treeview-node__checkbox,.v-treeview-node__toggle{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-treeview-node__toggle{transform:rotate(-90deg)}.v-treeview-node__toggle--open{transform:none}.v-treeview-node__toggle--loading{-webkit-animation:progress-circular-rotate 1s linear infinite;animation:progress-circular-rotate 1s linear infinite}.v-treeview-node__children{transition:all .2s cubic-bezier(0,0,.2,1)}.v-application--is-rtl .v-treeview>.v-treeview-node{margin-right:0}.v-application--is-rtl .v-treeview>.v-treeview-node--leaf{margin-right:16px;margin-left:0}.v-application--is-rtl .v-treeview>.v-treeview-node--leaf>.v-treeview-node__root{padding-right:8px;padding-left:8px}.v-application--is-rtl .v-treeview-node,.v-application--is-rtl .v-treeview-node--leaf{margin-right:26px;margin-left:0}.v-application--is-rtl .v-treeview-node--leaf>.v-treeview-node__root{padding-right:24px;padding-left:8px}.v-application--is-rtl .v-treeview-node__root{padding-right:0;padding-left:8px}.v-application--is-rtl .v-treeview-node__toggle{transform:rotate(90deg)}.v-application--is-rtl .v-treeview-node__toggle--open{transform:none}.v-treeview--dense .v-treeview-node__root{min-height:40px}.v-treeview--dense.v-treeview-node--shaped .v-treeview-node__root,.v-treeview--dense.v-treeview-node--shaped .v-treeview-node__root:before{border-bottom-right-radius:20px!important;border-top-right-radius:20px!important}.v-treeview--dense.v-treeview-node--shaped .v-treeview-node__root{margin-top:8px;margin-bottom:8px}.v-treeview--dense.v-treeview-node--rounded .v-treeview-node__root,.v-treeview--dense.v-treeview-node--rounded .v-treeview-node__root:before{border-radius:20px!important}.v-treeview--dense.v-treeview-node--rounded .v-treeview-node__root{margin-top:8px;margin-bottom:8px} \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/db/access.php b/NMP 3.0 Moodle Pluggin/fliplearning/db/access.php new file mode 100644 index 0000000000000000000000000000000000000000..7faf01277b67307f1cbe0ff1bb9dc8ff85c1a44d --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/db/access.php @@ -0,0 +1,150 @@ +<?php +defined('MOODLE_INTERNAL') || die(); + +$capabilities = array( + 'local/fliplearning:usepluggin' => array( + 'captype' => 'read', + 'contextlevel' => CONTEXT_COURSE, + 'archetypes' => array( + 'student' => CAP_ALLOW, + 'teacher' => CAP_ALLOW, + 'editingteacher' => CAP_ALLOW, + 'manager' => CAP_ALLOW + ) + ), + + 'local/fliplearning:view_as_student' => array( + 'captype' => 'read', + 'contextlevel' => CONTEXT_COURSE, + 'archetypes' => array( + 'student' => CAP_ALLOW + ) + ), + + 'local/fliplearning:view_as_teacher' => array( + 'captype' => 'read', + 'contextlevel' => CONTEXT_COURSE, + 'archetypes' => array( + 'teacher' => CAP_ALLOW, + 'editingteacher' => CAP_ALLOW, + 'manager' => CAP_ALLOW + ) + ), + + 'local/fliplearning:ajax' => array( + 'captype' => 'read', + 'contextlevel' => CONTEXT_COURSE, + 'archetypes' => array( + 'student' => CAP_ALLOW, + 'teacher' => CAP_ALLOW, + 'editingteacher' => CAP_ALLOW, + 'manager' => CAP_ALLOW + ) + ), + + 'local/fliplearning:setweeks' => array( + 'captype' => 'read', + 'contextlevel' => CONTEXT_COURSE, + 'archetypes' => array( + 'teacher' => CAP_ALLOW, + 'editingteacher' => CAP_ALLOW, + 'manager' => CAP_ALLOW + ) + ), + + 'local/fliplearning:teacher_general' => array( + 'captype' => 'read', + 'contextlevel' => CONTEXT_COURSE, + 'archetypes' => array( + 'teacher' => CAP_ALLOW, + 'editingteacher' => CAP_ALLOW, + 'manager' => CAP_ALLOW + ) + ), + + 'local/fliplearning:teacher_sessions' => array( + 'captype' => 'read', + 'contextlevel' => CONTEXT_COURSE, + 'archetypes' => array( + 'teacher' => CAP_ALLOW, + 'editingteacher' => CAP_ALLOW, + 'manager' => CAP_ALLOW, + ) + ), + + 'local/fliplearning:assignments' => array( + 'captype' => 'read', + 'contextlevel' => CONTEXT_COURSE, + 'archetypes' => array( + 'teacher' => CAP_ALLOW, + 'editingteacher' => CAP_ALLOW, + 'manager' => CAP_ALLOW, + ) + ), + + 'local/fliplearning:grades' => array( + 'captype' => 'read', + 'contextlevel' => CONTEXT_COURSE, + 'archetypes' => array( + 'teacher' => CAP_ALLOW, + 'editingteacher' => CAP_ALLOW, + 'manager' => CAP_ALLOW, + ) + ), + + 'local/fliplearning:quiz' => array( + 'captype' => 'read', + 'contextlevel' => CONTEXT_COURSE, + 'archetypes' => array( + 'teacher' => CAP_ALLOW, + 'editingteacher' => CAP_ALLOW, + 'manager' => CAP_ALLOW, + ) + ), + + 'local/fliplearning:logs' => array( + 'captype' => 'read', + 'contextlevel' => CONTEXT_COURSE, + 'archetypes' => array( + 'teacher' => CAP_ALLOW, + 'editingteacher' => CAP_ALLOW, + 'manager' => CAP_ALLOW, + ) + ), + + 'local/fliplearning:dropout' => array( + 'captype' => 'read', + 'contextlevel' => CONTEXT_COURSE, + 'archetypes' => array( + 'teacher' => CAP_ALLOW, + 'editingteacher' => CAP_ALLOW, + 'manager' => CAP_ALLOW + ) + ), + + 'local/fliplearning:seegroupwithallstudent' => array( + 'captype' => 'read', + 'contextlevel' => CONTEXT_COURSE, + 'archetypes' => array( + 'teacher' => CAP_ALLOW, + 'editingteacher' => CAP_ALLOW, + 'manager' => CAP_ALLOW + ) + ), + + 'local/fliplearning:student_general' => array( + 'captype' => 'read', + 'contextlevel' => CONTEXT_COURSE, + 'archetypes' => array( + 'student' => CAP_ALLOW, + ) + ), + + 'local/fliplearning:student_sessions' => array( + 'captype' => 'read', + 'contextlevel' => CONTEXT_COURSE, + 'archetypes' => array( + 'student' => CAP_ALLOW, + ) + ), +); diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/db/install.php b/NMP 3.0 Moodle Pluggin/fliplearning/db/install.php new file mode 100644 index 0000000000000000000000000000000000000000..0eb4be027c3c23a4df5711b41045dbf101b2ac11 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/db/install.php @@ -0,0 +1,34 @@ +<?php +// This file is part of Moodle - http://moodle.org/ +// +// Moodle is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Moodle is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Moodle. If not, see <http://www.gnu.org/licenses/>. + +/** + * Code to be executed after the plugin's database scheme has been installed is defined here. + * + * @package local_fliplearning + * @category upgrade + * @copyright 2020 Edisson Sigua <edissonf.sigua@gmail.com>, Bryan Aguilar <bryan.aguilar6174@gmail.com> + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined('MOODLE_INTERNAL') || die(); + +/** + * Custom code to be run on installing the plugin. + */ +function xmldb_local_fliplearning_install() { + + return true; +} diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/db/install.xml b/NMP 3.0 Moodle Pluggin/fliplearning/db/install.xml new file mode 100644 index 0000000000000000000000000000000000000000..833de7cc8da6d9db1fc1d99d806b7f8eeee311b2 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/db/install.xml @@ -0,0 +1,92 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<XMLDB PATH="local/fliplearning/db" VERSION="2020111000" COMMENT="XMLDB file for Moodle local/fliplearning" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="../../../lib/xmldb/xmldb.xsd" +> + <TABLES> + <TABLE NAME="fliplearning_instances" COMMENT="table fliplearning_instances"> + <FIELDS> + <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true"/> + <FIELD NAME="courseid" TYPE="int" LENGTH="20" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/> + <FIELD NAME="year" TYPE="int" LENGTH="20" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/> + </FIELDS> + <KEYS> + <KEY NAME="primary" TYPE="primary" FIELDS="id"/> + </KEYS> + </TABLE> + <TABLE NAME="fliplearning_weeks" COMMENT="table fliplearning_weeks"> + <FIELDS> + <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true"/> + <FIELD NAME="instanceid" TYPE="int" LENGTH="20" NOTNULL="true" SEQUENCE="false"/> + <FIELD NAME="courseid" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false"/> + <FIELD NAME="weekstart" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false"/> + <FIELD NAME="weekend" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false"/> + <FIELD NAME="position" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false"/> + <FIELD NAME="modified_by" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false"/> + <FIELD NAME="created_by" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false"/> + <FIELD NAME="timedeleted" TYPE="int" LENGTH="10" NOTNULL="false" SEQUENCE="false"/> + <FIELD NAME="timecreated" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false"/> + <FIELD NAME="timemodified" TYPE="int" LENGTH="10" NOTNULL="false" SEQUENCE="false"/> + <FIELD NAME="weekcode" TYPE="int" LENGTH="20" NOTNULL="true" SEQUENCE="false"/> + <FIELD NAME="hours_dedications" TYPE="int" LENGTH="5" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="hours_dedications"/> + </FIELDS> + <KEYS> + <KEY NAME="primary" TYPE="primary" FIELDS="id"/> + </KEYS> + <INDEXES> + <INDEX NAME="weekcode" UNIQUE="false" FIELDS="weekcode" HINTS="weekcode" COMMENT="weekcode index"/> + <INDEX NAME="instanceid" UNIQUE="false" FIELDS="instanceid" HINTS="instanceid" COMMENT="instanceid index"/> + </INDEXES> + </TABLE> + <TABLE NAME="fliplearning_sections" COMMENT="table fliplearning_sections"> + <FIELDS> + <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true"/> + <FIELD NAME="weekcode" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false"/> + <FIELD NAME="sectionid" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false"/> + <FIELD NAME="section_name" TYPE="char" LENGTH="1333" NOTNULL="true" SEQUENCE="false"/> + <FIELD NAME="position" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false"/> + <FIELD NAME="timedeleted" TYPE="int" LENGTH="10" NOTNULL="false" SEQUENCE="false"/> + <FIELD NAME="timecreated" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false"/> + <FIELD NAME="timemodified" TYPE="int" LENGTH="10" NOTNULL="false" SEQUENCE="false"/> + </FIELDS> + <KEYS> + <KEY NAME="primary" TYPE="primary" FIELDS="id"/> + </KEYS> + </TABLE> + <TABLE NAME="fliplearning_logs" COMMENT="table fliplearning_logs"> + <FIELDS> + <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true"/> + <FIELD NAME="userid" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false"/> + <FIELD NAME="username" TYPE="text" NOTNULL="false" SEQUENCE="false"/> + <FIELD NAME="name" TYPE="char" LENGTH="1333" NOTNULL="false" SEQUENCE="false"/> + <FIELD NAME="lastname" TYPE="char" LENGTH="1333" NOTNULL="false" SEQUENCE="false"/> + <FIELD NAME="email" TYPE="char" LENGTH="1333" NOTNULL="false" SEQUENCE="false"/> + <FIELD NAME="current_roles" TYPE="char" LENGTH="1333" NOTNULL="true" SEQUENCE="false"/> + <FIELD NAME="courseid" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false"/> + <FIELD NAME="component" TYPE="char" LENGTH="1333" NOTNULL="true" SEQUENCE="false"/> + <FIELD NAME="action" TYPE="char" LENGTH="1333" NOTNULL="true" SEQUENCE="false"/> + <FIELD NAME="timecreated" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false"/> + </FIELDS> + <KEYS> + <KEY NAME="primary" TYPE="primary" FIELDS="id"/> + </KEYS> + </TABLE> + <TABLE NAME="fliplearning_clustering" COMMENT="table fliplearning_clustering"> + <FIELDS> + <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true"/> + <FIELD NAME="courseid" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false"/> + <FIELD NAME="userid" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false"/> + <FIELD NAME="cluster" TYPE="int" LENGTH="2" NOTNULL="true" SEQUENCE="false"/> + <FIELD NAME="active" TYPE="int" LENGTH="2" NOTNULL="true" SEQUENCE="false"/> + <FIELD NAME="timecreated" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false"/> + </FIELDS> + <KEYS> + <KEY NAME="primary" TYPE="primary" FIELDS="id"/> + </KEYS> + <INDEXES> + <INDEX NAME="courseid" UNIQUE="false" FIELDS="courseid" HINTS="courseid" COMMENT="courseid index"/> + <INDEX NAME="userid" UNIQUE="false" FIELDS="userid" HINTS="userid" COMMENT="userid index"/> + </INDEXES> + </TABLE> + </TABLES> +</XMLDB> \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/db/tasks.php b/NMP 3.0 Moodle Pluggin/fliplearning/db/tasks.php new file mode 100644 index 0000000000000000000000000000000000000000..c8ac6772cd75fc4d476c11a3c0350e896e173c42 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/db/tasks.php @@ -0,0 +1,37 @@ +<?php +// This file is part of Moodle - http://moodle.org/ +// +// Moodle is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Moodle is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Moodle. If not, see <http://www.gnu.org/licenses/>. + +/** + * Plugin version and other meta-data are defined here. + * + * @package local_fliplearning + * @copyright 2020 Edisson Sigua <edissonf.sigua@gmail.com>, Bryan Aguilar <bryan.aguilar6174@gmail.com> + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined('MOODLE_INTERNAL') || die(); + +$tasks = array( + [ + 'classname' => 'local_fliplearning\task\generate_data', + 'blocking' => 0, + 'minute' => '*', + 'hour' => '*', + 'day' => '*', + 'month' => '*', + 'dayofweek' => '*', + ], +); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/db/uninstall.php b/NMP 3.0 Moodle Pluggin/fliplearning/db/uninstall.php new file mode 100644 index 0000000000000000000000000000000000000000..df3c3a1bbdd53d5b777991bc96e9a2f1b985695d --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/db/uninstall.php @@ -0,0 +1,34 @@ +<?php +// This file is part of Moodle - http://moodle.org/ +// +// Moodle is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Moodle is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Moodle. If not, see <http://www.gnu.org/licenses/>. + +/** + * Code that is executed before the tables and data are dropped during the plugin uninstallation. + * + * @package local_fliplearning + * @category upgrade + * @copyright 2020 Edisson Sigua <edissonf.sigua@gmail.com>, Bryan Aguilar <bryan.aguilar6174@gmail.com> + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined('MOODLE_INTERNAL') || die(); + +/** + * Custom uninstallation procedure. + */ +function xmldb_local_fliplearning_uninstall() { + + return true; +} diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/db/upgrade.php b/NMP 3.0 Moodle Pluggin/fliplearning/db/upgrade.php new file mode 100644 index 0000000000000000000000000000000000000000..89a12b88ab5ec89f9452094c20380455ee4ec8d8 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/db/upgrade.php @@ -0,0 +1,49 @@ +<?php +// This file is part of Moodle - http://moodle.org/ +// +// Moodle is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Moodle is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Moodle. If not, see <http://www.gnu.org/licenses/>. + +/** + * Plugin upgrade steps are defined here. + * + * @package local_fliplearning + * @category upgrade + * @copyright 2020 Edisson Sigua <edissonf.sigua@gmail.com>, Bryan Aguilar <bryan.aguilar6174@gmail.com> + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined('MOODLE_INTERNAL') || die(); + +require_once(__DIR__.'/upgradelib.php'); + +/** + * Execute local_fliplearning upgrade from the given old version. + * + * @param int $oldversion + * @return bool + */ +function xmldb_local_fliplearning_upgrade($oldversion) { + global $DB; + + $dbman = $DB->get_manager(); + + // For further information please read the Upgrade API documentation: + // https://docs.moodle.org/dev/Upgrade_API + // + // You will also have to create the db/install.xml file by using the XMLDB Editor. + // Documentation for the XMLDB Editor can be found at: + // https://docs.moodle.org/dev/XMLDB_editor + + return true; +} diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/db/upgradelib.php b/NMP 3.0 Moodle Pluggin/fliplearning/db/upgradelib.php new file mode 100644 index 0000000000000000000000000000000000000000..18681dfc8a1bf37cb295e70ea4320e3b70effdbc --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/db/upgradelib.php @@ -0,0 +1,39 @@ +<?php +// This file is part of Moodle - http://moodle.org/ +// +// Moodle is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Moodle is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Moodle. If not, see <http://www.gnu.org/licenses/>. + +/** + * Plugin upgrade helper functions are defined here. + * + * @package local_fliplearning + * @category upgrade + * @copyright 2020 Edisson Sigua <edissonf.sigua@gmail.com>, Bryan Aguilar <bryan.aguilar6174@gmail.com> + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined('MOODLE_INTERNAL') || die(); + +/** + * Helper function used by the upgrade.php file. + */ +function local_fliplearning_helper_function() { + global $DB; + + // Please note that you should always be performing any task using raw (low + // level) database access exclusively, avoiding any use of the Moodle APIs. + // + // For more information please read the available Moodle documentation: + // https://docs.moodle.org/dev/Upgrade_API +} diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/downloads/ActivityLogsMoodle_Course2.csv b/NMP 3.0 Moodle Pluggin/fliplearning/downloads/ActivityLogsMoodle_Course2.csv new file mode 100644 index 0000000000000000000000000000000000000000..f792a32dcd22dbd2149c0a2d17366fd6db613076 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/downloads/ActivityLogsMoodle_Course2.csv @@ -0,0 +1,109 @@ +Role;Email;Username;Fullname;Date;Hour;Action;CourseID;Course_name;OBJECT_ID;OBJECT_NAME;OBJECT_TYPE +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:15;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";1;;enrol +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:15;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";2;;enrol +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:15;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;enrol +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:15;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";1;"Information General";course_sections +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:15;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";2;"Semaine 2 (TP1 et TP1-HC) : Introduction aux SIG et MERISE";course_sections +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:16;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";1;;grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:16;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";2;Test-TP1HC-Merise&MCF;grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:16;updated;2;"Systeme de Gestion de Bases de Donnees GMO 2020";2;Test-TP1HC-Merise&MCF;grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:16;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";3;Test-TP1HC-Merise&MCF-EXCEPTIONEL;grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:16;updated;2;"Systeme de Gestion de Bases de Donnees GMO 2020";3;Test-TP1HC-Merise&MCF-EXCEPTIONEL;grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:16;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";3;"Semaine 2 (TP2 et TP2-HC): Revision MCF et MCD";course_sections +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:16;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";4;"TP2-HC-Test MCF et MCD";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:16;updated;2;"Systeme de Gestion de Bases de Donnees GMO 2020";4;"TP2-HC-Test MCF et MCD";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:16;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";4;"Semaine 3 (TP3 & TP3HC)-Modele Conceptuelle de Donnees (MCD) et Modele Logique de Donnees (MLD)";course_sections +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:17;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";5;"TP3HC-Test Passage MCD a MLD";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:17;updated;2;"Systeme de Gestion de Bases de Donnees GMO 2020";5;"TP3HC-Test Passage MCD a MLD";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:17;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";5;"Semaine 4 (TP4) & Semaine 5 (TP5) - Passage MCD a MLD";course_sections +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:17;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";6;"Systeme Gestion de Bases de Donnees PhPMyAdmin";course_sections +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:17;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";6;"Lien BBDD Etudiants";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:17;updated;2;"Systeme de Gestion de Bases de Donnees GMO 2020";6;"Lien BBDD Etudiants";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:17;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";7;"Devoir TP1 - PhPMyAdmin (Rendre 16 Novembre avant 13:00)";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:17;updated;2;"Systeme de Gestion de Bases de Donnees GMO 2020";7;"Devoir TP1 - PhPMyAdmin (Rendre 16 Novembre avant 13:00)";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:18;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";8;"Depot TP3";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:18;updated;2;"Systeme de Gestion de Bases de Donnees GMO 2020";8;"Depot TP3";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:18;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";7;"Control PhPMyAdmin";course_sections +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:18;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";9;"Test Type 1";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:18;updated;2;"Systeme de Gestion de Bases de Donnees GMO 2020";9;"Test Type 1";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:18;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";10;"Type 1 - Depot Control PhPMyAdmin ";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:18;updated;2;"Systeme de Gestion de Bases de Donnees GMO 2020";10;"Type 1 - Depot Control PhPMyAdmin ";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:18;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";11;"Test Type 2";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:18;updated;2;"Systeme de Gestion de Bases de Donnees GMO 2020";11;"Test Type 2";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:18;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";12;"Type 2 - Depot Control PhPMyAdmin ";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:18;updated;2;"Systeme de Gestion de Bases de Donnees GMO 2020";12;"Type 2 - Depot Control PhPMyAdmin ";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:19;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";13;"Test Type 3";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:19;updated;2;"Systeme de Gestion de Bases de Donnees GMO 2020";13;"Test Type 3";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:19;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";14;"Type 3 - Depot Control PhPMyAdmin";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:19;updated;2;"Systeme de Gestion de Bases de Donnees GMO 2020";14;"Type 3 - Depot Control PhPMyAdmin";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:19;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";15;"Test Type 4";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:19;updated;2;"Systeme de Gestion de Bases de Donnees GMO 2020";15;"Test Type 4";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:19;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";16;"Type 4 - Depot";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:19;updated;2;"Systeme de Gestion de Bases de Donnees GMO 2020";16;"Type 4 - Depot";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:19;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";8;"Rattrapage 2020";course_sections +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:19;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";17;Test-TP1HC-Rattrapage;grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:19;updated;2;"Systeme de Gestion de Bases de Donnees GMO 2020";17;Test-TP1HC-Rattrapage;grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:19;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";18;"Test-TP2HC-MCF et MCD Rattrapage";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:19;updated;2;"Systeme de Gestion de Bases de Donnees GMO 2020";18;"Test-TP2HC-MCF et MCD Rattrapage";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:19;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";19;"Test-TP3HC-Passage MCD a MLD - Rattrapage";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:19;updated;2;"Systeme de Gestion de Bases de Donnees GMO 2020";19;"Test-TP3HC-Passage MCD a MLD - Rattrapage";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:19;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";20;"Depot Control Theorique";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:19;updated;2;"Systeme de Gestion de Bases de Donnees GMO 2020";20;"Depot Control Theorique";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:19;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";21;"Lien BBDD Pour control PHPMyAdmin";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:19;updated;2;"Systeme de Gestion de Bases de Donnees GMO 2020";21;"Lien BBDD Pour control PHPMyAdmin";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:19;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";22;"Test PhPMyAdmin Ratrappage";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:19;updated;2;"Systeme de Gestion de Bases de Donnees GMO 2020";22;"Test PhPMyAdmin Ratrappage";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:19;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";23;"Depot Control PhPMyAdmin";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:19;updated;2;"Systeme de Gestion de Bases de Donnees GMO 2020";23;"Depot Control PhPMyAdmin";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:19;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";9;"Projet SQL (20%)";course_sections +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:20;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";24;"Depot Projet Bases de Donnees";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:20;updated;2;"Systeme de Gestion de Bases de Donnees GMO 2020";24;"Depot Projet Bases de Donnees";grade_items +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:20;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";10;"Videos PhPMyAdmin";course_sections +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:22;restored;2;"Systeme de Gestion de Bases de Donnees GMO 2020";2;;course +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:11:23;viewed;2;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:28:23;viewed;2;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:29:49;viewed;2;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:31:01;viewed;2;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:39:57;viewed;2;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:43:25;viewed;2;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:46:36;viewed;2;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:52:37;viewed;2;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:01:45;viewed;2;"Systeme de Gestion de Bases de Donnees GMO 2020";2;;course +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:01:49;viewed;2;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:01:56;viewed;2;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:02:04;viewed;2;"Systeme de Gestion de Bases de Donnees GMO 2020";2;;course +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:02:14;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";1;;user_enrolments +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:02:14;assigned;2;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;role +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:29:27;viewed;2;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:30:25;viewed;2;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:30:35;viewed;2;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:30:40;viewed;2;"Systeme de Gestion de Bases de Donnees GMO 2020";2;;course +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:31:02;unassigned;2;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;role +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:31:02;deleted;2;"Systeme de Gestion de Bases de Donnees GMO 2020";1;;user_enrolments +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:31:08;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";2;;user_enrolments +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:31:08;assigned;2;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:36:33;viewed;2;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;20:03:45;viewed;2;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;20:06:25;viewed;2;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;20:37:18;viewed;2;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;20:58:12;viewed;2;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;20:58:20;viewed;2;"Systeme de Gestion de Bases de Donnees GMO 2020";2;;course +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;20:58:45;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;user_enrolments +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;20:58:45;assigned;2;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;role +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;20:58:45;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";4;;user_enrolments +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;20:58:45;assigned;2;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;role +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;20:59:12;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;user_enrolments +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;20:59:12;assigned;2;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;20:59:12;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";6;;user_enrolments +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;20:59:12;assigned;2;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;20:59:12;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";7;;user_enrolments +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;20:59:12;assigned;2;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;20:59:12;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";8;;user_enrolments +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;20:59:12;assigned;2;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;20:59:12;created;2;"Systeme de Gestion de Bases de Donnees GMO 2020";9;;user_enrolments +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;20:59:12;assigned;2;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;20:59:23;unassigned;2;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;20:59:23;deleted;2;"Systeme de Gestion de Bases de Donnees GMO 2020";2;;user_enrolments +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;20:59:26;viewed;2;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;21:00:16;updated;2;"Systeme de Gestion de Bases de Donnees GMO 2020";2;;course +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;21:00:16;viewed;2;"Systeme de Gestion de Bases de Donnees GMO 2020";;; diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/downloads/ActivityLogsMoodle_Course3.csv b/NMP 3.0 Moodle Pluggin/fliplearning/downloads/ActivityLogsMoodle_Course3.csv new file mode 100644 index 0000000000000000000000000000000000000000..23733d49a0d39a3c874dc1dd84d0da577f981daf --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/downloads/ActivityLogsMoodle_Course3.csv @@ -0,0 +1,1003 @@ +Role;Email;Username;Fullname;Date;Hour;Action;CourseID;Course_name;"Detail ID";Details;Details_type +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:12;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";4;;enrol +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:12;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;enrol +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:12;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";6;;enrol +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:13;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";7;"Information General";course_sections +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:18;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";8;"Semaine 2 (TP1 et TP1-HC) : Introduction aux SIG et MERISE";course_sections +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:26;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";4;;grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:27;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;Test-TP1HC-Merise&MCF;grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:27;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;Test-TP1HC-Merise&MCF;grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:28;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";6;Test-TP1HC-Merise&MCF-EXCEPTIONEL;grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:28;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";6;Test-TP1HC-Merise&MCF-EXCEPTIONEL;grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:28;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";9;"Semaine 2 (TP2 et TP2-HC): Revision MCF et MCD";course_sections +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:33;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";7;"TP2-HC-Test MCF et MCD";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:33;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";7;"TP2-HC-Test MCF et MCD";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:33;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";10;"Semaine 3 (TP3 & TP3HC)-Modele Conceptuelle de Donnees (MCD) et Modele Logique de Donnees (MLD)";course_sections +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:36;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";8;"TP3HC-Test Passage MCD a MLD";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:36;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";8;"TP3HC-Test Passage MCD a MLD";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:36;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";11;"Semaine 4 (TP4) & Semaine 5 (TP5) - Passage MCD a MLD";course_sections +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:38;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";12;"Systeme Gestion de Bases de Donnees PhPMyAdmin";course_sections +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:39;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";9;"Lien BBDD Etudiants";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:39;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";9;"Lien BBDD Etudiants";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:44;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";10;"Devoir TP1 - PhPMyAdmin (Rendre 16 Novembre avant 13:00)";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:44;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";10;"Devoir TP1 - PhPMyAdmin (Rendre 16 Novembre avant 13:00)";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:51;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";11;"Depot TP3";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:51;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";11;"Depot TP3";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:53;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";13;"Control PhPMyAdmin";course_sections +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:55;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";12;"Test Type 1";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:55;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";12;"Test Type 1";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:56;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";13;"Type 1 - Depot Control PhPMyAdmin ";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:57;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";13;"Type 1 - Depot Control PhPMyAdmin ";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:59;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";14;"Test Type 2";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:56:59;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";14;"Test Type 2";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:00;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";15;"Type 2 - Depot Control PhPMyAdmin ";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:00;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";15;"Type 2 - Depot Control PhPMyAdmin ";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:02;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";16;"Test Type 3";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:02;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";16;"Test Type 3";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:03;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";17;"Type 3 - Depot Control PhPMyAdmin";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:03;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";17;"Type 3 - Depot Control PhPMyAdmin";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:05;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";18;"Test Type 4";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:05;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";18;"Test Type 4";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:06;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";19;"Type 4 - Depot";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:06;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";19;"Type 4 - Depot";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:06;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";14;"Rattrapage 2020";course_sections +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:08;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";20;Test-TP1HC-Rattrapage;grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:08;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";20;Test-TP1HC-Rattrapage;grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:09;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";21;"Test-TP2HC-MCF et MCD Rattrapage";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:10;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";21;"Test-TP2HC-MCF et MCD Rattrapage";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:11;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";22;"Test-TP3HC-Passage MCD a MLD - Rattrapage";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:11;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";22;"Test-TP3HC-Passage MCD a MLD - Rattrapage";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:13;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";23;"Depot Control Theorique";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:13;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";23;"Depot Control Theorique";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:14;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";24;"Lien BBDD Pour control PHPMyAdmin";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:14;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";24;"Lien BBDD Pour control PHPMyAdmin";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:17;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";25;"Test PhPMyAdmin Ratrappage";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:17;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";25;"Test PhPMyAdmin Ratrappage";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:18;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";26;"Depot Control PhPMyAdmin";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:18;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";26;"Depot Control PhPMyAdmin";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:18;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";15;"Projet SQL (20%)";course_sections +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:21;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";27;"Depot Projet Bases de Donnees";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:21;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";27;"Depot Projet Bases de Donnees";grade_items +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:21;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";16;"Videos PhPMyAdmin";course_sections +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:39;restored;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:57:44;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;08:59:09;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";14;"T3HC-Passage MCD a MLD";resource +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;09:13:34;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;"Fichiers pour Projet";folder +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;09:13:41;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;09:16:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;09:21:03;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";17;TP1-Ennonce-Introduction&CreationTableaux;resource +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;09:21:06;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";2;"Fichiers TP1";folder +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;09:21:10;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;09:21:11;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";18;TP1-BBDD-Solution;resource +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;09:21:16;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";2;"Devoir TP1 - PhPMyAdmin (Rendre 16 Novembre avant 13:00)";assign +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;09:21:18;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;09:21:23;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;09:31:09;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;TP1-Introduction;resource +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;10:27:05;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";18;TP1-BBDD-Solution;resource +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;10:27:10;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";2;"Devoir TP1 - PhPMyAdmin (Rendre 16 Novembre avant 13:00)";assign +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;10:27:11;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;12:37:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;12:42:33;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;12:42:41;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;12:42:51;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";2;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;12:42:51;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;12:42:52;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;12:42:57;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;13:31:56;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;13:31:58;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;13:51:59;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;13:52:02;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;13:56:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;13:56:32;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;14:02:20;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;14:02:22;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;14:03:14;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;14:03:16;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;14:12:15;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;14:12:17;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;14:57:19;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;14:57:21;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;15:03:36;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;15:03:39;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;15:15:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;15:15:34;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;15:45:26;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;15:45:27;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;16:01:08;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-04-21;16:01:10;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:17:04;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:17:17;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:08;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:08;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:08;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";4;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:08;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:08;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:09;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:09;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";6;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:09;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:09;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";7;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:09;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:09;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";8;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:09;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:09;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";9;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:09;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:09;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";10;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:10;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:10;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";11;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:10;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:10;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";12;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:10;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:10;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";13;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:10;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:10;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";14;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:10;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:11;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";15;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:11;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:11;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";16;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:11;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:11;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";17;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:11;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:11;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";18;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:11;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:12;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";19;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:12;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:12;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";20;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:12;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:12;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";21;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:12;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:12;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";22;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:12;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:12;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";23;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:12;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:13;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";24;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:13;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:13;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";25;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:13;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;10:18:13;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;13:31:15;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;13:31:32;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;13:31:44;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";1;;course_modules_completion +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;13:31:45;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";1;;course_modules_completion +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;13:31:49;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;14:07:07;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;14:07:12;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;14:51:42;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;15:50:27;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;16:10:29;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;16:52:44;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;17:33:21;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";20-04-21;17:54:56;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-04-21;09:10:51;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-04-21;09:31:42;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-04-21;09:41:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-04-21;09:46:26;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-04-21;09:48:46;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-04-21;09:54:15;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-04-21;10:02:06;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-04-21;10:11:45;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-04-21;10:39:22;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-04-21;14:12:50;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-04-21;15:56:13;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-04-21;16:38:11;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-04-21;16:55:41;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";22-04-21;14:29:12;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";22-04-21;15:01:56;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";22-04-21;16:41:07;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-04-21;09:52:53;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-04-21;18:56:47;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-04-21;19:09:26;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-04-21;08:37:54;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-04-21;08:50:20;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-04-21;11:49:08;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";7;;user +administrator;bart.eric@hotmail.com;admin;"Eric Bart";27-04-21;10:09:37;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";27-04-21;10:11:12;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";27-04-21;10:11:13;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";1;"Plan du cours";resource +administrator;bart.eric@hotmail.com;admin;"Eric Bart";27-04-21;13:55:59;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";27-04-21;19:41:55;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";27-04-21;19:42:05;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-04-21;19:24:52;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";01-05-21;19:31:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;09:30:55;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;09:30:58;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";2;;course_modules_completion +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;09:30:59;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course_modules_completion +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;09:31:00;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";4;;course_modules_completion +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;09:31:01;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;course_modules_completion +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;09:31:29;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;09:31:35;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;09:31:39;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";6;"TP1HC_Methode MERISE";resource +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;09:31:50;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;09:32:20;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;09:32:26;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";6;"TP1HC_Methode MERISE";resource +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;09:32:33;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;09:33:46;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;09:33:50;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;TP1-Introduction;resource +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;10:21:13;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;10:21:25;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;10:21:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;10:21:39;unassigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;10:21:40;deleted;3;"Systeme de Gestion de Bases de Donnees GMO 2020";18;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;10:21:40;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;10:21:44;unassigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;10:21:44;deleted;3;"Systeme de Gestion de Bases de Donnees GMO 2020";17;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;10:21:44;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;10:21:53;unassigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;10:21:53;deleted;3;"Systeme de Gestion de Bases de Donnees GMO 2020";2;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;10:21:53;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;10:22:07;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";26;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;10:22:07;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;10:22:07;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;10:22:17;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";27;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;10:22:17;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;10:22:17;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;teacher@nmp.com;teacher;"Teacher NMP";04-05-21;10:23:31;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;teacher@nmp.com;teacher;"Teacher NMP";04-05-21;10:23:31;started;3;"Systeme de Gestion de Bases de Donnees GMO 2020";1;;tool_usertours_tours +administrator;teacher@nmp.com;teacher;"Teacher NMP";04-05-21;10:23:31;shown;3;"Systeme de Gestion de Bases de Donnees GMO 2020";1;;tool_usertours_steps +administrator;teacher@nmp.com;teacher;"Teacher NMP";04-05-21;10:23:32;ended;3;"Systeme de Gestion de Bases de Donnees GMO 2020";1;;tool_usertours_tours +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;10:26:00;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;10:26:00;started;3;"Systeme de Gestion de Bases de Donnees GMO 2020";1;;tool_usertours_tours +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;10:26:01;shown;3;"Systeme de Gestion de Bases de Donnees GMO 2020";1;;tool_usertours_steps +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;10:26:02;ended;3;"Systeme de Gestion de Bases de Donnees GMO 2020";1;;tool_usertours_tours +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;10:26:05;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";6;;course_modules_completion +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;10:26:05;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";7;;course_modules_completion +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;10:26:06;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";8;;course_modules_completion +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;10:26:08;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";9;;course_modules_completion +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;10:26:08;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";6;"TP1HC_Methode MERISE";resource +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;10:26:11;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;TP1-Introduction;resource +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;10:28:10;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;10:31:00;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;teacher@nmp.com;teacher;"Teacher NMP";04-05-21;10:31:04;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;teacher@nmp.com;teacher;"Teacher NMP";04-05-21;10:31:11;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;teacher@nmp.com;teacher;"Teacher NMP";04-05-21;10:31:42;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;10:32:53;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;10:34:27;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;10:34:29;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";6;"TP1HC_Methode MERISE";resource +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;10:34:33;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";7;TP1HC_Modeles_Methode_MERISE;resource +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;11:14:14;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;11:17:16;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;11:22:22;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;11:36:32;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;teacher@nmp.com;teacher;"Teacher NMP";04-05-21;11:47:12;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;11:48:10;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;12:19:19;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;13:06:52;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";130;;user +administrator;teacher@nmp.com;teacher;"Teacher NMP";04-05-21;13:33:00;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;14:34:06;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;teacher@nmp.com;teacher;"Teacher NMP";04-05-21;14:35:14;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;14:40:19;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;15:17:48;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;15:17:56;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;15:18:08;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;15:18:18;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;15:20:55;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;15:21:14;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;15:21:51;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;15:23:20;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;15:23:32;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;15:24:06;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-05-21;15:24:10;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;15:25:00;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;15:25:03;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";1;"Plan du cours";resource +administrator;student1@nmp.com;student1;"Student1 NMP";04-05-21;15:25:06;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";2;"Calendrier Universitaire 2020-2021";resource +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-05-21;10:33:49;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-05-21;10:43:19;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;09:13:35;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;09:56:27;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;10:03:49;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;10:21:31;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;10:27:35;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;10:32:08;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;10:35:03;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;10:42:51;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;10:49:18;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;10:51:17;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;10:59:37;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;11:05:46;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;11:16:51;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;11:30:26;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;13:02:53;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;13:52:05;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;13:59:16;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;14:05:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;14:09:50;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;14:13:27;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;14:16:56;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;14:21:25;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;14:25:11;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;14:47:45;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;14:58:47;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;15:04:21;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;15:10:50;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;15:17:43;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;15:31:09;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;15:35:23;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;15:40:55;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;15:46:25;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;15:52:26;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;15:57:32;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;16:17:50;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;16:26:20;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-05-21;16:29:28;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;09:14:29;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;09:24:27;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;09:28:06;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;09:38:17;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;09:42:24;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;10:00:40;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;10:14:08;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;10:33:02;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;10:42:18;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;10:46:03;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;10:54:18;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;10:54:56;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;11:05:25;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;11:10:25;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;11:14:16;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;11:19:54;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;11:29:56;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;11:38:13;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;11:42:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;11:50:48;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;11:55:17;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;12:00:51;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;12:07:28;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;12:10:45;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;13:52:13;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;14:04:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;14:12:47;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;14:27:05;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;14:32:52;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;14:43:35;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;14:48:42;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;14:52:25;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;14:54:28;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;14:58:59;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;15:09:31;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;15:12:46;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;15:34:57;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;15:49:34;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;16:02:15;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;16:08:11;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;16:08:32;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;16:12:50;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;16:16:32;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;16:19:49;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;16:24:55;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;16:27:02;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-05-21;16:30:00;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-05-21;08:52:13;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-05-21;08:56:53;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-05-21;09:06:08;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-05-21;09:14:58;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-05-21;09:26:28;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-05-21;09:30:04;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-05-21;09:37:47;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-05-21;09:46:51;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-05-21;10:00:17;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-05-21;10:17:02;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-05-21;10:36:12;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-05-21;10:59:35;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-05-21;11:05:05;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-05-21;11:10:48;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-05-21;11:13:52;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-05-21;11:20:52;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-05-21;11:29:20;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-05-21;11:44:45;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-05-21;11:54:10;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-05-21;11:59:01;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-05-21;12:07:48;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-05-21;14:24:15;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";17-05-21;09:04:13;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";17-05-21;10:17:00;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";17-05-21;10:19:08;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";17-05-21;10:19:28;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";17-05-21;10:20:42;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";17-05-21;10:40:27;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";17-05-21;10:40:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";17-05-21;14:04:00;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";17-05-21;14:11:14;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";17-05-21;14:18:28;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";17-05-21;14:49:14;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";17-05-21;15:57:55;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;09:28:50;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;10:32:40;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;10:37:31;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;10:44:52;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;10:56:11;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;11:14:58;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;11:21:25;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;11:29:19;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;11:50:24;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;11:55:32;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;12:00:36;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;13:15:57;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;13:28:46;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;13:32:18;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;13:45:06;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;14:09:42;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;14:14:28;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;14:19:24;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;14:28:20;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;14:48:17;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;15:13:07;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;15:27:20;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;15:32:40;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;15:37:20;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;15:41:43;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;15:47:50;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;15:53:03;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;15:57:20;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;16:05:39;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";18-05-21;16:13:19;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;09:44:06;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;09:50:03;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;09:55:59;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;09:59:34;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;10:13:42;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;10:41:16;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;10:52:07;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;10:56:51;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;11:00:01;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;11:04:17;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;11:09:38;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;11:15:54;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;11:19:54;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;11:24:07;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;11:28:18;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;11:35:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;11:43:10;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;11:49:08;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;11:56:42;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;12:44:14;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;12:49:15;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;13:46:55;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;14:00:35;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;14:23:56;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;14:32:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;14:47:57;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;15:25:44;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;15:30:47;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;15:36:39;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;15:40:22;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;15:54:43;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;16:02:51;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;16:22:52;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;16:26:15;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;16:29:39;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;16:34:53;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";19-05-21;16:40:48;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;09:35:57;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;10:00:17;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;10:08:56;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;10:54:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;10:55:59;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;10:56:11;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;10:56:21;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;10:57:12;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;event +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;10:57:12;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";7;;event +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;10:57:12;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";18;;course_modules +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;10:57:19;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";25-05-21;10:57:55;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;10:58:27;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;10:58:41;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;10:58:42;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";18;;course_modules +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;10:58:47;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;10:58:50;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";18;;course_modules +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;10:58:52;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";18;;course_modules +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;10:59:14;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;event +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;10:59:14;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";7;;event +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;10:59:14;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";18;;course_modules +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;10:59:17;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";4;;event +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;10:59:17;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";19;;course_modules +administrator;student1@nmp.com;student1;"Student1 NMP";25-05-21;11:00:09;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";25-05-21;11:00:21;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";2;Test-TP1HC-Merise&MCF;quiz +administrator;student1@nmp.com;student1;"Student1 NMP";25-05-21;11:00:26;started;3;"Systeme de Gestion de Bases de Donnees GMO 2020";1;;quiz_attempts +administrator;student1@nmp.com;student1;"Student1 NMP";25-05-21;11:00:26;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";1;;quiz_attempts +administrator;student1@nmp.com;student1;"Student1 NMP";25-05-21;11:00:43;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";1;;quiz_attempts +administrator;student1@nmp.com;student1;"Student1 NMP";25-05-21;11:00:53;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";1;;quiz_attempts +administrator;student1@nmp.com;student1;"Student1 NMP";25-05-21;11:01:04;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";1;;quiz_attempts +administrator;student1@nmp.com;student1;"Student1 NMP";25-05-21;11:01:09;graded;3;"Systeme de Gestion de Bases de Donnees GMO 2020";1;;grade_grades +administrator;Undefined;Undefined;"Undefined Undefined";25-05-21;11:01:09;graded;3;"Systeme de Gestion de Bases de Donnees GMO 2020";2;;grade_grades +administrator;student1@nmp.com;student1;"Student1 NMP";25-05-21;11:01:09;submitted;3;"Systeme de Gestion de Bases de Donnees GMO 2020";1;;quiz_attempts +administrator;student1@nmp.com;student1;"Student1 NMP";25-05-21;11:01:09;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";2;Test-TP1HC-Merise&MCF;quiz +administrator;student1@nmp.com;student1;"Student1 NMP";25-05-21;11:01:13;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;11:01:32;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;11:05:00;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;11:05:11;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";25-05-21;11:08:35;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";25-05-21;11:08:38;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;Test-TP1HC-Merise&MCF-EXCEPTIONEL;quiz +administrator;student1@nmp.com;student1;"Student1 NMP";25-05-21;11:08:46;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;11:09:12;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;11:09:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;11:10:02;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";4;;event +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;11:10:02;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";8;;event +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;11:10:02;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";19;;course_modules +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;11:10:06;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";25-05-21;11:11:03;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";25-05-21;11:11:06;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;Test-TP1HC-Merise&MCF-EXCEPTIONEL;quiz +administrator;student1@nmp.com;student1;"Student1 NMP";25-05-21;11:11:10;started;3;"Systeme de Gestion de Bases de Donnees GMO 2020";2;;quiz_attempts +administrator;student1@nmp.com;student1;"Student1 NMP";25-05-21;11:11:10;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";2;;quiz_attempts +administrator;student1@nmp.com;student1;"Student1 NMP";25-05-21;11:11:26;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";2;;quiz_attempts +administrator;student1@nmp.com;student1;"Student1 NMP";25-05-21;11:11:34;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";2;;quiz_attempts +administrator;student1@nmp.com;student1;"Student1 NMP";25-05-21;11:11:44;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";2;;quiz_attempts +administrator;student1@nmp.com;student1;"Student1 NMP";25-05-21;11:11:48;graded;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;grade_grades +administrator;Undefined;Undefined;"Undefined Undefined";25-05-21;11:11:48;graded;3;"Systeme de Gestion de Bases de Donnees GMO 2020";2;;grade_grades +administrator;student1@nmp.com;student1;"Student1 NMP";25-05-21;11:11:48;submitted;3;"Systeme de Gestion de Bases de Donnees GMO 2020";2;;quiz_attempts +administrator;student1@nmp.com;student1;"Student1 NMP";25-05-21;11:11:48;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;Test-TP1HC-Merise&MCF-EXCEPTIONEL;quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;11:12:35;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;11:36:23;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;11:39:46;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;11:39:50;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;11:49:58;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;12:05:25;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;12:10:48;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;12:19:35;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;13:44:41;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;13:58:04;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;14:04:47;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;14:27:14;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;14:35:41;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;14:42:15;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;14:49:06;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;14:53:09;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;15:18:53;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;15:29:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;15:30:53;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;15:40:55;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;15:44:45;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;15:55:51;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;16:18:00;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-05-21;16:34:25;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;09:01:07;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;09:06:10;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;09:13:34;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;09:17:35;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;09:24:10;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;09:32:01;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;09:36:55;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;09:41:05;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;09:55:05;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;09:58:24;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;10:05:19;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;10:12:40;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;10:17:23;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;10:21:17;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;10:25:45;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;10:30:21;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;10:32:40;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;10:38:36;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;10:43:29;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;10:48:14;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;10:59:45;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;11:07:02;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;11:28:26;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;11:34:07;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;11:41:23;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;11:48:06;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;13:28:18;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;13:33:08;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;13:42:07;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;13:50:32;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;14:02:20;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;14:11:36;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;14:47:02;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;14:52:12;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;15:15:45;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;15:49:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;15:55:42;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;16:09:00;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;16:19:05;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;16:26:41;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;16:36:53;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;16:40:19;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;16:45:55;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;16:53:35;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;17:02:17;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;17:06:51;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";26-05-21;17:11:20;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";27-05-21;19:16:40;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";27-05-21;19:28:47;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";27-05-21;19:52:33;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";27-05-21;19:59:49;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";27-05-21;20:03:15;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";27-05-21;20:15:35;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";27-05-21;22:34:16;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";27-05-21;22:42:49;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";27-05-21;23:00:29;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";27-05-21;23:18:50;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";27-05-21;23:31:37;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";28-05-21;19:09:12;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";28-05-21;21:46:09;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";28-05-21;22:02:32;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;11:50:02;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;11:54:54;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;11:54:57;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;12:01:35;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;12:30:43;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;12:46:08;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;13:07:15;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;13:07:53;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";6;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;13:13:35;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;13:18:14;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;13:24:22;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;13:29:25;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;13:33:01;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;13:36:33;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;13:39:44;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;13:46:59;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;13:57:48;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;14:08:59;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;14:14:26;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;14:23:22;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;14:30:28;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;14:40:33;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;14:43:11;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;14:47:12;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;14:50:52;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;14:54:25;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";30-05-21;14:58:43;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;14:27:22;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;14:47:10;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;14:51:03;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;14:55:06;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;15:02:53;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;15:09:12;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;15:41:17;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;15:41:41;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";9;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;15:46:12;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;15:51:50;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;15:59:32;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;16:06:45;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;16:10:33;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;16:22:32;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;16:30:54;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;16:48:06;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;16:50:49;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;16:54:47;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;17:14:20;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;17:19:52;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;17:28:44;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;17:31:40;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;17:40:28;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;17:52:50;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;17:56:27;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;18:03:56;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;18:19:31;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;18:25:24;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;18:33:59;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;18:39:40;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;21:47:25;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;21:52:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;21:57:22;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;22:03:01;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;22:08:20;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;22:22:35;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;22:38:08;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;22:58:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";31-05-21;23:02:24;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";01-06-21;09:58:45;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";01-06-21;10:41:44;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";01-06-21;10:45:55;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";01-06-21;10:53:53;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";01-06-21;10:58:32;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";01-06-21;11:03:07;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";01-06-21;11:13:14;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";01-06-21;11:31:15;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";01-06-21;11:44:40;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";01-06-21;12:00:58;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";01-06-21;13:48:00;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";01-06-21;14:46:02;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";01-06-21;14:57:25;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";01-06-21;15:18:48;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";01-06-21;21:13:36;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";01-06-21;21:19:20;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";01-06-21;21:27:51;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";02-06-21;12:43:52;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";02-06-21;12:47:37;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";02-06-21;13:00:58;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";02-06-21;13:16:32;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";02-06-21;13:27:17;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";02-06-21;13:31:18;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";02-06-21;13:37:06;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";02-06-21;13:42:29;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";02-06-21;13:52:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";02-06-21;14:00:33;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";02-06-21;14:04:46;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";02-06-21;14:11:59;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";02-06-21;14:43:16;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";02-06-21;14:53:38;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";02-06-21;15:04:49;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";02-06-21;15:07:13;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;Test-TP1HC-Merise&MCF-EXCEPTIONEL;quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";02-06-21;15:07:22;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;Test-TP1HC-Merise&MCF-EXCEPTIONEL;quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";02-06-21;15:15:22;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";02-06-21;15:27:15;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";02-06-21;15:27:17;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";13;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";02-06-21;15:32:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";02-06-21;15:46:23;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";02-06-21;16:11:18;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;15:21:17;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;15:25:40;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;15:45:00;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;15:52:31;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;15:58:03;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;16:08:35;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;16:15:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;16:27:46;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;16:32:08;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;16:33:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;Test-TP1HC-Merise&MCF-EXCEPTIONEL;quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;16:39:24;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;Test-TP1HC-Merise&MCF-EXCEPTIONEL;quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;16:44:11;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;16:45:15;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;Test-TP1HC-Merise&MCF-EXCEPTIONEL;quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;16:56:51;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;16:58:07;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;Test-TP1HC-Merise&MCF-EXCEPTIONEL;quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;17:05:11;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;17:09:25;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;17:11:13;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";2;Test-TP1HC-Merise&MCF;quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;17:28:37;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";13;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;17:36:06;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;Test-TP1HC-Merise&MCF-EXCEPTIONEL;quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;17:50:16;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;17:57:03;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;18:02:12;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;19:01:13;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;19:07:56;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;19:11:51;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;19:29:47;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;21:23:35;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;21:29:58;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;21:41:16;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;21:50:13;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;21:58:54;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;22:10:09;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;22:28:07;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;22:31:18;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;22:35:14;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;22:46:42;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;22:52:47;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;22:58:17;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;23:07:36;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;23:11:31;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;23:26:06;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;23:34:04;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;23:36:32;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";03-06-21;23:53:12;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-06-21;00:05:38;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-06-21;00:09:04;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-06-21;16:42:10;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";12;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-06-21;18:29:23;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-06-21;18:37:38;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-06-21;22:19:39;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-06-21;22:32:46;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-06-21;22:40:42;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-06-21;22:52:18;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-06-21;23:10:59;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-06-21;23:15:24;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-06-21;23:20:51;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-06-21;23:25:31;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-06-21;23:30:50;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-06-21;23:37:48;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-06-21;23:41:56;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-06-21;23:47:24;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-06-21;23:52:16;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";04-06-21;23:58:08;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;00:05:48;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;00:08:48;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;00:13:16;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;00:16:42;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;00:27:34;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;00:32:42;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;00:38:11;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;00:41:52;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;00:49:41;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;01:00:36;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;01:08:51;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";12;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;01:17:28;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;20:39:57;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;20:43:58;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;20:47:23;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;20:47:26;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;20:49:42;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;Test-TP1HC-Merise&MCF-EXCEPTIONEL;quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;21:29:09;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;21:29:17;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";6;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;21:42:13;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;Test-TP1HC-Merise&MCF-EXCEPTIONEL;quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;21:44:49;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;21:48:13;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";6;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;21:48:19;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";6;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;21:48:46;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";2;Test-TP1HC-Merise&MCF;quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;21:57:40;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";05-06-21;22:00:17;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;22:19:48;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";05-06-21;22:20:33;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";05-06-21;22:21:10;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";2;Test-TP1HC-Merise&MCF;quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;22:38:12;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";05-06-21;22:38:31;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";05-06-21;22:38:57;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;22:44:48;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";05-06-21;22:46:00;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;22:48:41;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";05-06-21;23:57:06;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";06-06-21;00:12:54;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";06-06-21;00:27:44;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";06-06-21;18:51:43;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";06-06-21;18:52:02;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";06-06-21;18:52:28;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";06-06-21;19:06:06;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";06-06-21;19:06:21;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";06-06-21;19:10:38;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";06-06-21;19:45:16;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";06-06-21;20:10:10;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;09:03:40;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;09:14:45;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;09:23:21;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;09:39:49;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;09:47:17;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;09:53:27;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;09:57:06;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;10:04:19;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;10:09:22;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;10:14:37;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;10:19:13;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;10:29:50;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;10:34:14;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;10:39:28;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;10:45:27;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;10:45:32;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";67;;user +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;10:51:57;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;10:52:01;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;10:56:10;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;11:25:22;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;11:47:21;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;11:49:32;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";07-06-21;11:51:32;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;12:08:45;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;12:09:01;updated;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;12:09:04;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;12:09:16;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;12:09:31;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";32;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;12:09:31;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;12:09:31;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;teacher.nmp@moodle.fr;teacher1;"Teacher NMP";07-06-21;12:09:59;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;teacher.nmp@moodle.fr;teacher1;"Teacher NMP";07-06-21;12:09:59;started;3;"Systeme de Gestion de Bases de Donnees GMO 2020";1;;tool_usertours_tours +administrator;teacher.nmp@moodle.fr;teacher1;"Teacher NMP";07-06-21;12:10:00;shown;3;"Systeme de Gestion de Bases de Donnees GMO 2020";1;;tool_usertours_steps +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;12:10:27;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;12:10:34;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;12:10:39;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;12:11:00;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";4;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;12:11:00;unassigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;teacher.nmp@moodle.fr;teacher1;"Teacher NMP";07-06-21;12:11:27;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;teacher.nmp@moodle.fr;teacher1;"Teacher NMP";07-06-21;12:11:27;started;3;"Systeme de Gestion de Bases de Donnees GMO 2020";1;;tool_usertours_tours +administrator;teacher.nmp@moodle.fr;teacher1;"Teacher NMP";07-06-21;12:11:28;shown;3;"Systeme de Gestion de Bases de Donnees GMO 2020";1;;tool_usertours_steps +administrator;teacher.nmp@moodle.fr;teacher1;"Teacher NMP";07-06-21;12:11:30;ended;3;"Systeme de Gestion de Bases de Donnees GMO 2020";1;;tool_usertours_tours +administrator;teacher.nmp@moodle.fr;teacher1;"Teacher NMP";07-06-21;12:18:50;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;13:44:56;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;13:48:49;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;13:48:52;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";1;"Plan du cours";resource +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;14:05:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;14:55:57;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:21:21;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:39:44;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;16:09:42;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;16:21:47;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:46:44;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";7;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:46:46;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";6;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:48:41;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;Test-TP1HC-Merise&MCF-EXCEPTIONEL;quiz +administrator;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:22:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:09:11;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:46:12;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";12;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:46:18;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";13;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:56:59;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:59:25;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;Test-TP1HC-Merise&MCF-EXCEPTIONEL;quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:02:38;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";11;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:02:43;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";11;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:02:49;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";9;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:27:00;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:32:08;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:57:59;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;20:01:55;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;20:06:40;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;20:10:07;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;20:13:18;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;20:17:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:15:38;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:19:26;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:24:54;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:34:10;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:37:59;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:42:10;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:45:46;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:55:28;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:59:08;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:01:42;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:04:13;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:04:51;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";12;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:13:08;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:02:50;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:16:35;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";4;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:16:41;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";11;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:44:13;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:38;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";14;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:42;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";13;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:52:03;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:52:32;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;Test-TP1HC-Merise&MCF-EXCEPTIONEL;quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;11:19:41;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;11:24:52;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;12:23:44;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;12:35:07;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;12:40:14;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;12:44:58;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;13:02:32;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:27:24;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:48:49;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:51:15;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;Test-TP1HC-Merise&MCF-EXCEPTIONEL;quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:14;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";7;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:14:07;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:17:09;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:29:59;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:42:49;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:00:36;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:06:58;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:14:01;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:21:42;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:27:08;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:58:43;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:00:30;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;Test-TP1HC-Merise&MCF-EXCEPTIONEL;quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:08:49;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:24:05;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:34;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";6;;question +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:33:32;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:35:26;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:37:07;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;Test-TP1HC-Merise&MCF-EXCEPTIONEL;quiz +administrator;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:09;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:46:03;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;Test-TP1HC-Merise&MCF-EXCEPTIONEL;quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:46:25;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-06-21;09:10:49;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-06-21;09:13:08;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";11-06-21;22:38:25;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";14-06-21;10:13:42;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";14-06-21;15:15:53;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";15-06-21;16:11:00;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";15-06-21;16:14:02;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";15-06-21;16:14:47;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:43:08;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:44:38;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:02:17;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:06:36;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:06:43;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:07:06;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:07:18;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:07:55;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:08:00;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:09:27;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:09:31;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:09:58;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:10:16;created;3;"Systeme de Gestion de Bases de Donnees GMO 2020";33;;user_enrolments +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:10:16;assigned;3;"Systeme de Gestion de Bases de Donnees GMO 2020";5;;role +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:10:17;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:10:23;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";3;;course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:10:28;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:10:34;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;19:53:32;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;08:42:09;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;08:43:51;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;09:00:48;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;09:14:29;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;09:39:20;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;09:48:06;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;10:39:49;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;10:54:12;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;10:59:13;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;11:02:49;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;11:05:54;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;11:57:19;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;12:06:03;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;12:09:10;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;12:25:29;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;12:26:06;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;12:27:52;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;12:42:08;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;12:55:11;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;12:55:38;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;12:56:16;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;12:57:18;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;12:57:59;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;12:58:49;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-06-21;13:34:20;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-06-21;13:37:45;viewed;3;"Systeme de Gestion de Bases de Donnees GMO 2020";;; diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/downloads/ActivityLogsNMP_Course2.csv b/NMP 3.0 Moodle Pluggin/fliplearning/downloads/ActivityLogsNMP_Course2.csv new file mode 100644 index 0000000000000000000000000000000000000000..8ed4ec45b751345607293b25320ff03baffb8769 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/downloads/ActivityLogsNMP_Course2.csv @@ -0,0 +1,142 @@ +Role;Email;Username;Fullname;Date;Hour;CourseID;NMP_SECTION_NAME;NMP_ACTION_TYPE +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:56:53;2;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;16:58:23;2;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:02:17;2;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:03:17;2;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:03:21;2;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:03:23;2;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:03:26;2;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:14:12;2;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:15:42;2;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:18:54;2;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:19:39;2;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:21:44;2;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:29:29;2;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:30:04;2;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:31:10;2;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:31:17;2;LOGFILES;viewed-activity_log-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;17:31:27;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:17:01;2;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:17:24;2;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:17:42;2;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:18:26;2;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:18:32;2;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:20:45;2;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:20:58;2;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:21:02;2;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:21:03;2;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:22:01;2;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:22:03;2;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:22:18;2;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:22:23;2;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:25:08;2;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:25:10;2;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:27:22;2;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:27:47;2;TASKS_MONITORING;viewed-access_content-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:27:50;2;TASKS_MONITORING;viewed-access_content-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:27:50;2;TASKS_MONITORING;viewed-access_content-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:27:51;2;TASKS_MONITORING;viewed-access_content-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:27:52;2;TASKS_MONITORING;viewed-access_content-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:27:54;2;TASKS_MONITORING;viewed-access_content-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:28:10;2;TASKS_MONITORING;viewed-access_content-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:31:10;2;TASKS_MONITORING;viewed-access_content-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:35:04;2;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:35:07;2;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:35:53;2;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:35:54;2;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:36:02;2;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:36:35;2;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:05;2;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:08;2;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:08;2;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:09;2;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:09;2;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:09;2;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:10;2;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:10;2;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:11;2;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:11;2;LOGFILES;viewed-activity_log-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:23;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:31;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:31;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:31;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:32;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:32;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:32;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:33;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:33;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:33;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:34;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:34;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:34;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:35;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:37;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:37;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:37;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:37;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:37;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:38;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:38;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:38;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:39;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:39;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:54:39;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:55:57;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:55:58;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:56:01;2;LOGFILES;viewed-activity_log-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:56:22;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:56:23;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:56:23;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:56:23;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:56:24;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:56:24;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:56:24;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:56:24;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:56:25;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:56:25;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:56:25;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:56:25;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:57:58;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:58:01;2;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:58:03;2;DROPOUT;viewed-dropout-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:58:07;2;LOGFILES;viewed-activity_log-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;19:58:25;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;20:04:48;2;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;20:04:51;2;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;20:37:20;2;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;21:00:23;2;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;21:00:35;2;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;21:01:35;2;LOGFILES;viewed-activity_log-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;21:01:46;2;LOGFILES;downloaded-moodle-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;21:04:50;2;LOGFILES;downloaded-moodle-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;21:08:17;2;LOGFILES;downloaded-moodle-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;21:08:27;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;23:40:21;2;LOGFILES;viewed-activity_log-section +administrator;admin@laser.fr;admin;"Admin Laser";29-06-21;23:41:42;2;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;10:14:03;2;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;10:14:07;2;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;10:14:08;2;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;10:14:09;2;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;10:14:09;2;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;10:14:13;2;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;10:14:14;2;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;10:14:19;2;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;10:14:27;2;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;10:38:34;2;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;11:21:02;2;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;11:21:12;2;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;11:21:20;2;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;11:21:22;2;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;11:21:23;2;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;11:21:29;2;DROPOUT;viewed-dropout-section +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;11:21:40;2;LOGFILES;viewed-activity_log-section +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;11:40:08;2;LOGFILES;viewed-activity_log-section +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;11:47:11;2;LOGFILES;viewed-activity_log-section +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;11:47:30;2;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;11:47:47;2;LOGFILES;viewed-activity_log-section +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;11:58:01;2;LOGFILES;viewed-activity_log-section +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;12:29:20;2;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;12:29:26;2;LOGFILES;viewed-activity_log-section +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;12:29:35;2;LOGFILES;downloaded-nmp-logfile +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;13:48:17;2;LOGFILES;viewed-activity_log-section +administrator;admin@laser.fr;admin;"Admin Laser";30-06-21;13:48:29;2;LOGFILES;downloaded-nmp-logfile diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/downloads/ActivityLogsNMP_Course3.csv b/NMP 3.0 Moodle Pluggin/fliplearning/downloads/ActivityLogsNMP_Course3.csv new file mode 100644 index 0000000000000000000000000000000000000000..6106573f2f226b55e4360971cc094e6ba61ec2fc --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/downloads/ActivityLogsNMP_Course3.csv @@ -0,0 +1,1750 @@ +Role;Email;Username;Fullname;Date;Hour;CourseID;NMP_SECTION_NAME;NMP_ACTION_TYPE +teacher;teacher.nmp@moodle.fr;teacher1;"Teacher NMP";07-06-21;13:44:10;3;LOGFILES;downloaded-nmp-logfile +;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;13:44:59;3;LOGFILES;viewed-activity_log-section +;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;13:45:11;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;13:46:31;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;13:46:47;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;13:47:16;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;13:47:21;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;13:48:56;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;13:49:07;3;LOGFILES;downloaded-moodle-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;13:50:07;3;LOGFILES;downloaded-moodle-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;13:52:26;3;LOGFILES;downloaded-moodle-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;13:53:09;3;LOGFILES;downloaded-moodle-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;13:54:37;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;14:03:08;3;LOGFILES;downloaded-moodle-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;14:03:10;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;14:05:34;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;14:05:44;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;14:56:00;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;14:56:59;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;14:57:19;3;LOGFILES;downloaded-moodle-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:00:36;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:00:57;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:21:24;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:24:19;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:25:37;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:26:43;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:26:57;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:27:15;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:27:52;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:28:27;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:29:20;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:29:38;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:30:04;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:30:23;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:30:47;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:31:13;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:31:58;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:32:23;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:32:37;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:33:45;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:34:34;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:35:40;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:39:51;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:39:55;3;GRADES_MONITORING;viewed-1-group +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:39:57;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:40:42;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:41:22;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:41:50;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:42:05;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:42:19;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:42:51;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:43:46;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:44:01;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:44:31;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:44:57;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:46:11;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:46:25;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:47:12;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:48:04;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:49:02;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:49:35;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:49:49;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:51:45;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:56:51;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:57:54;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:58:23;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:59:11;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;15:59:40;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;16:00:25;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;16:01:04;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;16:01:36;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;16:02:36;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;16:03:38;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;16:05:15;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;16:06:33;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;16:09:47;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;16:21:49;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;16:24:32;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;17:26:25;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;17:28:58;3;LOGFILES;downloaded-moodle-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;17:30:00;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;17:30:04;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;17:30:06;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;17:30:25;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;17:36:07;3;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;17:36:25;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;17:36:36;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;17:37:12;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;17:37:33;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;17:37:55;3;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;17:37:59;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;17:38:00;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;17:38:01;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;17:38:02;3;TEACHER_STUDY_SESSIONS;viewed-2021130-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;17:38:03;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;17:38:04;3;TEACHER_STUDY_SESSIONS;viewed-sessions_week-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;17:38:06;3;TEACHER_STUDY_SESSIONS;viewed-sessions_week-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;17:38:06;3;TEACHER_STUDY_SESSIONS;filtered-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;17:38:07;3;TEACHER_STUDY_SESSIONS;filtered-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;17:38:07;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-help +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;17:38:08;3;TEACHER_STUDY_SESSIONS;viewed-sessions_week-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;17:38:10;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;17:38:24;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;18:32:08;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;18:32:13;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";07-06-21;18:32:36;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:03:55;3;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:04:05;3;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:04:10;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:04:27;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:04:28;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:04:41;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:04:43;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:04:43;3;TEACHER_STUDY_SESSIONS;viewed-sessions_week-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:05:04;3;TEACHER_STUDY_SESSIONS;viewed-sessions_week-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:05:04;3;TEACHER_STUDY_SESSIONS;viewed-sessions_week-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:05:04;3;TEACHER_STUDY_SESSIONS;viewed-sessions_week-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:05:05;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:05:06;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:05:06;3;TEACHER_STUDY_SESSIONS;viewed-sessions_week-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:05:06;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:05:10;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:05:12;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:05:12;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:05:14;3;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:05:16;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:05:24;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:05:24;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:06:49;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:10:43;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:10:44;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:11:23;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:11:23;3;TEACHER_STUDY_SESSIONS;viewed-sessions_week-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:11:58;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:11:58;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:11:58;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:12:02;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:12:14;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:12:17;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:12:19;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:12:38;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:12:39;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:12:39;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:12:39;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:12:40;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:12:41;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:12:41;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:12:41;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:15:37;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:16:00;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:16:06;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:19:25;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:19:25;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:19:25;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:19:25;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:19:26;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:19:28;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:19:58;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:20:13;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:20:18;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:20:19;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:21:01;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:21:14;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:21:19;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:21:21;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:21:23;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:21:24;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:21:24;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:21:25;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:21:28;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:21:29;3;GRADES_MONITORING;viewed-item_grades_details-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:21:38;3;GRADES_MONITORING;viewed-item_grades_details-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:21:38;3;GRADES_MONITORING;viewed-item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:21:39;3;GRADES_MONITORING;viewed-item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:21:39;3;GRADES_MONITORING;viewed-item_grades_details-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:21:39;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:21:44;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:21:44;3;GRADES_MONITORING;viewed-item_grades_details-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:22:05;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:22:08;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:22:12;3;GRADES_MONITORING;viewed-item_grades_details-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:22:13;3;GRADES_MONITORING;viewed-item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:22:18;3;GRADES_MONITORING;viewed-item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:23:05;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:23:07;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:23:21;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:23:22;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:23:51;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:24:14;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:24:14;3;GRADES_MONITORING;viewed-item_grades_details-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:24:16;3;GRADES_MONITORING;viewed-item_grades_details-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:25:11;3;GRADES_MONITORING;viewed-item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:25:11;3;GRADES_MONITORING;viewed-item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:25:16;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:25:26;3;ASSESSMENT_MONITORING;viewed-attempted_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:25:27;3;ASSESSMENT_MONITORING;viewed-difficult_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:25:31;3;ASSESSMENT_MONITORING;viewed-difficult_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:25:42;3;ASSESSMENT_MONITORING;viewed-difficult_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:26:32;3;ASSESSMENT_MONITORING;viewed-difficult_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:26:32;3;ASSESSMENT_MONITORING;viewed-attempted_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:28:06;3;ASSESSMENT_MONITORING;viewed-difficult_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:28:09;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:28:11;3;ASSESSMENT_MONITORING;viewed-difficult_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:28:14;3;GRADES_MONITORING;viewed-1-group +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:29:36;3;GRADES_MONITORING;viewed-course_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:31:24;3;GRADES_MONITORING;viewed-course_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:31:34;3;GRADES_MONITORING;viewed-week_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:31:45;3;GRADES_MONITORING;viewed-course_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:31:45;3;GRADES_MONITORING;viewed-sessions_and_invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:31:47;3;GRADES_MONITORING;viewed-sessions_and_invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:31:49;3;GRADES_MONITORING;viewed-week_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:31:50;3;GRADES_MONITORING;viewed-course_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:31:50;3;GRADES_MONITORING;viewed-sessions_and_invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:35:03;3;GRADES_MONITORING;viewed-course_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:35:03;3;GRADES_MONITORING;viewed-week_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:35:03;3;GRADES_MONITORING;viewed-week_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:35:03;3;GRADES_MONITORING;viewed-course_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:35:04;3;GRADES_MONITORING;viewed-course_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:36:25;3;GRADES_MONITORING;viewed-course_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:36:27;3;GRADES_MONITORING;viewed-sessions_and_invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:36:27;3;GRADES_MONITORING;viewed-sessions_and_invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:36:48;3;GRADES_MONITORING;viewed-qualifications-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:38:07;3;GRADES_MONITORING;viewed-sessions_and_invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:38:07;3;GRADES_MONITORING;viewed-qualifications-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:38:30;3;GRADES_MONITORING;viewed-sessions_and_invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:38:30;3;GRADES_MONITORING;viewed-sessions_and_invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:38:30;3;GRADES_MONITORING;viewed-qualifications-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:38:33;3;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:38:39;3;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:39:04;3;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:39:25;3;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:39:32;3;TEACHER_STUDY_SESSIONS;viewed-sessions_week-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:39:34;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:39:41;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:39:47;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:40:59;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:41:01;3;TASKS_MONITORING;downloaded-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:41:04;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:41:10;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:41:28;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:41:29;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:41:29;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:41:29;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:41:29;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:41:38;3;TASKS_MONITORING;sended-accessContentChart-email +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:41:38;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:42:30;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:42:30;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:42:32;3;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:42:37;3;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:42:41;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:42:43;3;TEACHER_STUDY_SESSIONS;viewed-sessions_week-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:42:45;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:42:52;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:42:53;3;TEACHER_STUDY_SESSIONS;viewed-sessions_week-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:43:01;3;TEACHER_STUDY_SESSIONS;viewed-sessions_week-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:43:03;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:43:08;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:43:10;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:43:11;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:43:15;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:43:17;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:43:17;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:43:18;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:43:21;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:43:31;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:43:32;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:43:33;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:43:36;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:43:37;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:43:39;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:43:39;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:45:28;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:45:33;3;GRADES_MONITORING;viewed-item_grades_details-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:45:44;3;GRADES_MONITORING;viewed-item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:45:45;3;GRADES_MONITORING;viewed-item_grades_details-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:46:04;3;GRADES_MONITORING;viewed-item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:46:05;3;GRADES_MONITORING;viewed-item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:46:14;3;GRADES_MONITORING;downloaded-item_grades_distribution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:46:28;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:46:38;3;ASSESSMENT_MONITORING;viewed-attempted_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:46:40;3;ASSESSMENT_MONITORING;viewed-questions_attempts_chart-details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:46:44;3;ASSESSMENT_MONITORING;viewed-attempted_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:46:44;3;ASSESSMENT_MONITORING;viewed-difficult_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:46:44;3;ASSESSMENT_MONITORING;viewed-hardest_questions_chart-details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:46:46;3;ASSESSMENT_MONITORING;viewed-attempted_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:46:46;3;ASSESSMENT_MONITORING;viewed-difficult_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:47:04;3;ASSESSMENT_MONITORING;viewed-difficult_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:47:05;3;ASSESSMENT_MONITORING;viewed-difficult_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:47:06;3;ASSESSMENT_MONITORING;viewed-difficult_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:47:11;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:47:15;3;GRADES_MONITORING;viewed-1-group +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:47:19;3;GRADES_MONITORING;viewed-user_nalmu001-details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:48:04;3;GRADES_MONITORING;viewed-course_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:48:05;3;GRADES_MONITORING;viewed-module_access_chart-details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:48:08;3;GRADES_MONITORING;viewed-week_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:48:17;3;GRADES_MONITORING;viewed-user_student1-details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:48:18;3;GRADES_MONITORING;viewed-week_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:48:19;3;GRADES_MONITORING;viewed-week_modules_chart-details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:48:20;3;GRADES_MONITORING;viewed-week_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:48:22;3;GRADES_MONITORING;viewed-week_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:48:22;3;GRADES_MONITORING;viewed-sessions_and_invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:48:23;3;GRADES_MONITORING;viewed-sessions_and_invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:48:25;3;GRADES_MONITORING;viewed-sessions_and_invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:48:39;3;GRADES_MONITORING;viewed-sessions_and_invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:48:40;3;GRADES_MONITORING;viewed-qualifications-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:48:40;3;GRADES_MONITORING;viewed-user_grades_chart-details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:48:45;3;GRADES_MONITORING;viewed-sessions_and_invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:48:45;3;GRADES_MONITORING;viewed-qualifications-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:48:47;3;GRADES_MONITORING;viewed-qualifications-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:49:37;3;GRADES_MONITORING;viewed-qualifications-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:49:48;3;GRADES_MONITORING;viewed-qualifications-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:49:56;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:50:00;3;GRADES_MONITORING;viewed-1-group +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:50:04;3;GRADES_MONITORING;viewed-NaN-group +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:51:09;3;GRADES_MONITORING;viewed-user_nalmu001-details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:52:18;3;GRADES_MONITORING;sended-nalmu001-email +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:57:12;3;GRADES_MONITORING;viewed-week_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:57:13;3;GRADES_MONITORING;viewed-week_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:57:15;3;GRADES_MONITORING;viewed-week_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:57:15;3;GRADES_MONITORING;viewed-course_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:57:16;3;GRADES_MONITORING;viewed-sessions_and_invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:57:17;3;GRADES_MONITORING;viewed-week_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:57:21;3;GRADES_MONITORING;viewed-sessions_and_invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:57:22;3;GRADES_MONITORING;viewed-qualifications-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:57:23;3;GRADES_MONITORING;viewed-qualifications-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:57:23;3;GRADES_MONITORING;viewed-sessions_and_invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:57:23;3;GRADES_MONITORING;viewed-week_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:57:27;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:57:35;3;ASSESSMENT_MONITORING;viewed-2021130-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:58:10;3;ASSESSMENT_MONITORING;viewed-attempted_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;15:58:12;3;ASSESSMENT_MONITORING;viewed-attempted_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:02:34;3;ASSESSMENT_MONITORING;viewed-attempted_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:02:36;3;ASSESSMENT_MONITORING;viewed-attempted_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:03:10;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:03:15;3;GRADES_MONITORING;viewed-1-group +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:04:09;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:05:42;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:05:56;3;TASKS_MONITORING;viewed-2021130-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:06:21;3;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:06:37;3;TEACHER_STUDY_SESSIONS;viewed-2021130-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:06:44;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:07:17;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:07:17;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:07:18;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:07:18;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:07:19;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:07:33;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:07:36;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:07:41;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:07:43;3;TASKS_MONITORING;filtered-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:07:45;3;TASKS_MONITORING;filtered-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:07:46;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:07:47;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:07:47;3;TASKS_MONITORING;filtered-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:07:47;3;TASKS_MONITORING;filtered-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:07:48;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:07:50;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:07:53;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:07:57;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:07:57;3;GRADES_MONITORING;viewed-course-category +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:08:10;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:08:12;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:08:41;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:08:46;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:08:51;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:08:56;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:08:59;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:09:03;3;GRADES_MONITORING;viewed-1-group +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:10:21;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:10:26;3;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:10:32;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:10:35;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:10:37;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:10:37;3;GRADES_MONITORING;viewed-course-category +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:12:02;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:12:19;3;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:12:23;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:12:30;3;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:12:34;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:12:39;3;GRADES_MONITORING;viewed-1-group +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:12:42;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:12:45;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:12:52;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:14:02;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:14:05;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:15:03;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:15:09;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:15:15;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:15:15;3;GRADES_MONITORING;viewed-course-category +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:17:12;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:17:21;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:19:02;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:19:02;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:19:06;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:20:28;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:20:32;3;GRADES_MONITORING;viewed-1-group +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:22:09;3;GRADES_MONITORING;viewed-week_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:22:10;3;GRADES_MONITORING;viewed-sessions_and_invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:22:11;3;GRADES_MONITORING;viewed-qualifications-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:22:13;3;GRADES_MONITORING;viewed-qualifications-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:22:13;3;GRADES_MONITORING;viewed-sessions_and_invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:22:13;3;GRADES_MONITORING;viewed-week_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:22:15;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:22:18;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:22:21;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:22:22;3;GRADES_MONITORING;viewed-item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:22:24;3;GRADES_MONITORING;viewed-item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:22:25;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:22:29;3;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:23:12;3;CONFIGURATION_COURSE_WEEK;saved-configWeeksButton-configuration +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:25:58;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;16:26:15;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;17:09:41;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;17:20:21;3;ASSESSMENT_MONITORING;viewed-difficult_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;17:20:22;3;ASSESSMENT_MONITORING;viewed-difficult_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;17:20:31;3;ASSESSMENT_MONITORING;viewed-difficult_questions-graphic +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:22:33;3;STUDENT_GENERAL_INDICATORS;viewed-student_general_indicators-section +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:22:45;3;STUDENT_STUDY_SESSIONS;viewed-student_study_sessions-section +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:24:57;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:24:57;3;STUDENT_SESSIONS;viewed-resources_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:24:59;3;STUDENT_SESSIONS;viewed-inverted_time-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:24:59;3;STUDENT_SESSIONS;viewed-resources_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:25:00;3;STUDENT_SESSIONS;viewed-resources_access_chart-details +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:25:01;3;STUDENT_SESSIONS;viewed-resources_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:25:01;3;STUDENT_SESSIONS;viewed-resources_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:25:02;3;STUDENT_SESSIONS;viewed-inverted_time-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:25:03;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:25:04;3;STUDENT_STUDY_SESSIONS;viewed-student_study_sessions-section +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:25:08;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:25:10;3;STUDENT_GENERAL_INDICATORS;viewed-student_general_indicators-section +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:25:14;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:25:16;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:25:18;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:25:20;3;STUDENT_GENERAL_INDICATORS;viewed-weeks_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:25:25;3;STUDENT_GENERAL_INDICATORS;viewed-weeks_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:25:26;3;STUDENT_GENERAL_INDICATORS;viewed-weeks_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:25:26;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:25:30;3;STUDENT_GENERAL_INDICATORS;viewed-weeks_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:25:31;3;STUDENT_GENERAL_INDICATORS;viewed-weeks_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:26:25;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:26:26;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:26:54;3;STUDENT_GENERAL_INDICATORS;viewed-weeks_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:26:55;3;STUDENT_GENERAL_INDICATORS;viewed-weeks_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:26:56;3;STUDENT_GENERAL_INDICATORS;viewed-weeks_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:26:58;3;STUDENT_GENERAL_INDICATORS;viewed-weeks_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:27:40;3;STUDENT_GENERAL_INDICATORS;viewed-weeks_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:27:41;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:27:41;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:27:44;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:27:56;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:28:00;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:28:01;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:28:02;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:28:03;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:28:28;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:28:30;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:28:38;3;STUDENT_GENERAL_INDICATORS;viewed-weeks_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:28:38;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:28:39;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:28:43;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:29:14;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:29:15;3;STUDENT_GENERAL_INDICATORS;viewed-weeks_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:29:15;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:29:16;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:29:17;3;STUDENT_GENERAL_INDICATORS;viewed-user_grades-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:29:45;3;STUDENT_GENERAL_INDICATORS;viewed-user_grades-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:29:45;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:29:46;3;STUDENT_GENERAL_INDICATORS;viewed-user_grades-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:29:51;3;STUDENT_GENERAL_INDICATORS;viewed-user_grades-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:29:52;3;STUDENT_GENERAL_INDICATORS;viewed-user_grades-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:29:53;3;STUDENT_GENERAL_INDICATORS;viewed-user_grades-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:29:54;3;STUDENT_GENERAL_INDICATORS;viewed-user_grades-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:29:56;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:29:57;3;STUDENT_GENERAL_INDICATORS;viewed-weeks_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:30:13;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:30:14;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:30:15;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:30:22;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:30:22;3;STUDENT_GENERAL_INDICATORS;viewed-weeks_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:30:27;3;STUDENT_STUDY_SESSIONS;viewed-student_study_sessions-section +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:30:36;3;STUDENT_SESSIONS;viewed-inverted_time-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:30:37;3;STUDENT_SESSIONS;viewed-inverted_time-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:30:38;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:31:41;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:31:50;3;STUDENT_SESSIONS;viewed-resources_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:31:51;3;STUDENT_SESSIONS;viewed-resources_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:38:25;3;STUDENT_SESSIONS;viewed-resources_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:38:27;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:38:29;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:38:30;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:38:31;3;STUDENT_SESSIONS;viewed-inverted_time-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:38:32;3;STUDENT_SESSIONS;viewed-inverted_time-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:38:35;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:39:07;3;STUDENT_SESSIONS;viewed-inverted_time-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:40:06;3;STUDENT_SESSIONS;viewed-inverted_time-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:40:08;3;STUDENT_SESSIONS;viewed-inverted_time-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:40:11;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:46:40;3;STUDENT_SESSIONS;viewed-inverted_time-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:46:40;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:46:42;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:48:07;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:48:34;3;STUDENT_SESSIONS;viewed-inverted_time-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:48:59;3;STUDENT_SESSIONS;viewed-resources_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:49:01;3;STUDENT_SESSIONS;viewed-resources_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:49:37;3;STUDENT_SESSIONS;viewed-resources_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:53:03;3;STUDENT_SESSIONS;viewed-resources_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:53:20;3;STUDENT_SESSIONS;viewed-resources_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:53:21;3;STUDENT_SESSIONS;viewed-resources_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:53:22;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:53:26;3;STUDENT_SESSIONS;viewed-2021130-week_section +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:53:54;3;STUDENT_GENERAL_INDICATORS;viewed-student_general_indicators-section +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:54:00;3;STUDENT_GENERAL_INDICATORS;viewed-weeks_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:54:00;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:54:01;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:54:02;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:54:12;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:54:14;3;STUDENT_GENERAL_INDICATORS;viewed-module_access_chart-details +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:54:15;3;STUDENT_GENERAL_INDICATORS;viewed-weeks_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:54:16;3;STUDENT_GENERAL_INDICATORS;viewed-weeks_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:55:41;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:55:43;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:55:45;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:55:58;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:56:00;3;STUDENT_GENERAL_INDICATORS;viewed-user_grades-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:56:34;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:56:34;3;STUDENT_GENERAL_INDICATORS;viewed-user_grades-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:56:34;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:56:36;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-help +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:56:38;3;STUDENT_GENERAL_INDICATORS;viewed-user_grades-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:56:39;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:56:39;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:56:40;3;STUDENT_GENERAL_INDICATORS;viewed-weeks_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:56:40;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;17:56:43;3;STUDENT_STUDY_SESSIONS;viewed-student_study_sessions-section +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;18:07:34;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;18:07:36;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;18:07:44;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;18:07:44;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;18:07:45;3;STUDENT_SESSIONS;viewed-inverted_time-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;18:07:46;3;STUDENT_SESSIONS;viewed-inverted_time-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;18:07:51;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";08-06-21;18:08:41;3;STUDENT_SESSIONS;viewed-inverted_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:10:13;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:10:22;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:10:23;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:10:25;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:10:26;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:10:30;3;TASKS_MONITORING;viewed-2021130-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:12:07;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:12:11;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:12:11;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:12:15;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:12:16;3;TASKS_MONITORING;viewed-accessContent-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:12:17;3;TASKS_MONITORING;filtered-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:12:17;3;TASKS_MONITORING;filtered-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:12:19;3;TASKS_MONITORING;viewed-2021130-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:13:36;3;TASKS_MONITORING;viewed-submissions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:13:41;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:13:44;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:13:48;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:13:48;3;GRADES_MONITORING;viewed-course-category +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:13:52;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:13:53;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:13:54;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:13:56;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:13:56;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:14:02;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:16:18;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:16:24;3;GRADES_MONITORING;viewed-1-group +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:16:27;3;GRADES_MONITORING;viewed-NaN-group +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:23:38;3;GRADES_MONITORING;viewed-course_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:23:38;3;GRADES_MONITORING;viewed-week_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:23:47;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:23:52;3;GRADES_MONITORING;viewed-1-group +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:27:05;3;GRADES_MONITORING;viewed-course_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:27:08;3;GRADES_MONITORING;viewed-course_ressources-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:29:05;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:29:08;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:30:31;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:30:36;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:30:37;3;GRADES_MONITORING;viewed-item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:30:38;3;GRADES_MONITORING;viewed-item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:30:39;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:36:42;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:36:43;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:36:44;3;GRADES_MONITORING;viewed-item_grades_details-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:36:46;3;GRADES_MONITORING;viewed-item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:37:53;3;GRADES_MONITORING;viewed-item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:37:54;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:38:52;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:40:45;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:41:25;3;ASSESSMENT_MONITORING;viewed-difficult_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:46:09;3;ASSESSMENT_MONITORING;viewed-attempted_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:46:12;3;ASSESSMENT_MONITORING;viewed-questions_attempts_chart-details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:46:13;3;ASSESSMENT_MONITORING;viewed-difficult_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:46:15;3;ASSESSMENT_MONITORING;viewed-difficult_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:46:17;3;ASSESSMENT_MONITORING;viewed-attempted_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:46:18;3;ASSESSMENT_MONITORING;viewed-questions_attempts_chart-details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:47:03;3;ASSESSMENT_MONITORING;viewed-difficult_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:47:59;3;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:49:02;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:50:08;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:50:10;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:50:10;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:50:17;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:50:18;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:50:22;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:50:22;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:50:24;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:50:25;3;TEACHER_STUDY_SESSIONS;viewed-sessions_week-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:50:32;3;TEACHER_STUDY_SESSIONS;viewed-sessions_week-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:50:33;3;TEACHER_STUDY_SESSIONS;viewed-sessions_week-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:51:43;3;TEACHER_STUDY_SESSIONS;viewed-sessions_week-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:51:43;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:51:46;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:51:57;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:51:57;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:53:23;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:53:25;3;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:53:26;3;TEACHER_STUDY_SESSIONS;viewed-sessions_hour-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:57:16;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:57:21;3;DROPOUT;viewed-group_01-group +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:58:43;3;DROPOUT;sended-unknown-email +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:58:51;3;DROPOUT;viewed-user_mbabu001-user_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:58:52;3;DROPOUT;viewed-user_cautu001-user_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:58:56;3;DROPOUT;viewed-modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:58:59;3;DROPOUT;viewed-user_nalmu001-user_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:59:00;3;DROPOUT;viewed-user_student1-user_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:59:01;3;DROPOUT;viewed-modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:59:03;3;DROPOUT;viewed-module_access-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:59:10;3;DROPOUT;viewed-week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:59:10;3;DROPOUT;viewed-week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:59:10;3;DROPOUT;viewed-week_modules-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:59:20;3;DROPOUT;viewed-sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:59:22;3;DROPOUT;viewed-sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:59:23;3;DROPOUT;viewed-sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:59:23;3;DROPOUT;viewed-user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:59:25;3;DROPOUT;viewed-user_grades-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:59:31;3;DROPOUT;viewed-sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:59:31;3;DROPOUT;viewed-user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:59:32;3;DROPOUT;viewed-sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:59:32;3;DROPOUT;viewed-week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:59:34;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;18:59:42;3;ASSESSMENT_MONITORING;viewed-test-test +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:02:29;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:02:34;3;ASSESSMENT_MONITORING;viewed-week_2021130-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:02:36;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:02:39;3;ASSESSMENT_MONITORING;viewed-hardest_questions-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:02:41;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:02:41;3;ASSESSMENT_MONITORING;viewed-questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:02:42;3;ASSESSMENT_MONITORING;viewed-questions_attempts-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:02:43;3;ASSESSMENT_MONITORING;viewed-questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:02:46;3;ASSESSMENT_MONITORING;viewed-questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:02:49;3;ASSESSMENT_MONITORING;viewed-questions_attempts-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:02:56;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:02:59;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:03:01;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:03:03;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:03:03;3;GRADES_MONITORING;viewed-course-course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:03:07;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:03:40;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:03:41;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:03:44;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:03:57;3;GRADES_MONITORING;viewed-item_grades_details-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:03:59;3;GRADES_MONITORING;viewed-item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:04:00;3;GRADES_MONITORING;viewed-item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:04:01;3;GRADES_MONITORING;viewed-item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:04:06;3;GRADES_MONITORING;sended-item_grades_distribution-email +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:04:13;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:04:18;3;TASKS_MONITORING;viewed-week_2021130-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:04:20;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:04:25;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:04:28;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:04:30;3;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:04:38;3;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:04:42;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:04:43;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:04:44;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:04:45;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:04:46;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:04:46;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:04:52;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:04:57;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:05:00;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:05:21;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:07:14;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:07:16;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:08:18;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:08:18;3;GRADES_MONITORING;viewed-course-course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:08:18;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:09:02;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:09:04;3;GRADES_MONITORING;viewed-item_grades_details-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:09:04;3;GRADES_MONITORING;viewed-item_grades_details-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:09:04;3;GRADES_MONITORING;viewed-item_grades_details-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:09:05;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:09:06;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:09:38;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:09:55;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:09:57;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:09:59;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:10:07;3;ASSESSMENT_MONITORING;viewed-test-test +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:12:39;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:12:39;3;ASSESSMENT_MONITORING;viewed-questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:12:41;3;ASSESSMENT_MONITORING;viewed-questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:12:41;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:14:32;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:16:43;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:20:22;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:21:02;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:21:09;3;ASSESSMENT_MONITORING;viewed-test-test +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:21:09;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:27:07;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:32:24;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:32:28;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:32:34;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:32:40;3;ASSESSMENT_MONITORING;"viewed-Test_TP1HC_Merise&MCF-quiz" +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:32:44;3;ASSESSMENT_MONITORING;"viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz" +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:32:45;3;ASSESSMENT_MONITORING;"viewed-Test_TP1HC_Merise&MCF-quiz" +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:32:46;3;ASSESSMENT_MONITORING;"viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz" +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:32:48;3;ASSESSMENT_MONITORING;"viewed-Test_TP1HC_Merise&MCF-quiz" +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:32:51;3;ASSESSMENT_MONITORING;"viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz" +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:32:54;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:33:07;3;ASSESSMENT_MONITORING;"viewed-Test_TP1HC_Merise&MCF-quiz" +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:33:25;3;ASSESSMENT_MONITORING;"viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz" +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:33:35;3;ASSESSMENT_MONITORING;"viewed-Test_TP1HC_Merise&MCF-quiz" +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:33:54;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:34:24;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:35:03;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:35:19;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:35:33;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:35:55;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:36:22;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:37:09;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:37:21;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:38:50;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:39:39;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:41:07;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:41:11;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:43:30;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:44:18;3;ASSESSMENT_MONITORING;"viewed-Test_TP1HC_Merise&MCF-quiz" +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:44:29;3;ASSESSMENT_MONITORING;"viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz" +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:44:49;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:45:08;3;ASSESSMENT_MONITORING;"viewed-Test_TP1HC_Merise&MCF-quiz" +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:45:50;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:48:25;3;ASSESSMENT_MONITORING;"viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz" +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:48:28;3;ASSESSMENT_MONITORING;"viewed-Test_TP1HC_Merise&MCF-quiz" +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:48:32;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:48:38;3;ASSESSMENT_MONITORING;"viewed-Test_TP1HC_Merise&MCF-quiz" +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:49:04;3;ASSESSMENT_MONITORING;"viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz" +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:49:14;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:50:09;3;ASSESSMENT_MONITORING;"viewed-Test_TP1HC_Merise&MCF-quiz" +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:50:20;3;ASSESSMENT_MONITORING;"viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz" +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:50:23;3;ASSESSMENT_MONITORING;"viewed-Test_TP1HC_Merise&MCF-quiz" +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:51:20;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:52:30;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:52:34;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:52:45;3;ASSESSMENT_MONITORING;"viewed-Test_TP1HC_Merise&MCF-quiz" +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:53:28;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:53:38;3;ASSESSMENT_MONITORING;"viewed-Test_TP1HC_Merise&MCF-quiz" +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:53:42;3;ASSESSMENT_MONITORING;"viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz" +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:53:45;3;ASSESSMENT_MONITORING;"viewed-Test_TP1HC_Merise&MCF-quiz" +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:53:55;3;ASSESSMENT_MONITORING;"viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz" +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:58:09;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:58:14;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:58:16;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:58:18;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;19:58:19;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;20:01:58;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;20:02:21;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;20:02:26;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;20:06:42;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;20:10:10;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;20:13:21;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;20:13:52;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;20:13:55;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;20:17:33;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;20:17:46;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;20:17:50;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:11:47;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:15:43;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:16:42;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:16:49;3;ASSESSMENT_MONITORING;viewed-questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:16:50;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:19:28;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:19:42;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:20:26;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:20:26;3;ASSESSMENT_MONITORING;viewed-questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:20:28;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:24:57;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:25:11;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:25:40;3;ASSESSMENT_MONITORING;viewed-week_2021130-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:25:43;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:25:46;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:34:17;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:38:08;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:38:19;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:38:22;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:38:23;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:38:24;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:38:25;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:38:26;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:38:27;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:38:42;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:38:43;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:38:44;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:38:57;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:38:59;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:39:02;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:39:06;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:39:07;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:39:08;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:42:12;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:42:21;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:42:25;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:42:28;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:42:29;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:42:32;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:42:33;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:42:34;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:42:39;3;ASSESSMENT_MONITORING;viewed-week_2021130-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:42:41;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:42:48;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:42:50;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:42:51;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:43:08;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:43:08;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:45:51;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:45:59;3;ASSESSMENT_MONITORING;viewed-week_2021130-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:46:01;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:46:04;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:46:07;3;ASSESSMENT_MONITORING;viewed-week_2021130-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:46:09;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:46:11;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:46:15;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:46:25;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:46:33;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:46:36;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:46:39;3;ASSESSMENT_MONITORING;viewed-questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:46:39;3;ASSESSMENT_MONITORING;viewed-questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:46:39;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:46:44;3;ASSESSMENT_MONITORING;viewed-hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:55:36;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:55:42;3;ASSESSMENT_MONITORING;viewed-[object_Object]_hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:55:45;3;ASSESSMENT_MONITORING;viewed-[object_Object]_questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:55:55;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:55:55;3;ASSESSMENT_MONITORING;viewed-[object_Object]_hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:55:56;3;ASSESSMENT_MONITORING;viewed-[object_Object]_questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:55:59;3;ASSESSMENT_MONITORING;viewed-[object_Object]_hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:56:43;3;ASSESSMENT_MONITORING;viewed-[object_Object]_hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:59:10;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:59:40;3;ASSESSMENT_MONITORING;viewed-[object_Object]_questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:59:42;3;ASSESSMENT_MONITORING;viewed-[object_Object]_hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;21:59:42;3;ASSESSMENT_MONITORING;viewed-[object_Object]_questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:01:46;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:04:16;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:04:25;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:04:30;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:04:32;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:04:37;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:04:39;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:04:41;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:04:48;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:04:50;3;ASSESSMENT_MONITORING;viewed-undefined_questions_attempts-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:04:53;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:04:57;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:05:52;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:05:52;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:05:54;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:07:36;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:07:36;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:07:36;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:07:45;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:07:48;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:07:50;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:07:52;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:07:53;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:07:54;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:07:56;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:07:57;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:08:01;3;GRADES_MONITORING;viewed-item_grades_details-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:08:02;3;GRADES_MONITORING;viewed-item_grades_details-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:08:03;3;GRADES_MONITORING;viewed-item_grades_details-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:08:04;3;GRADES_MONITORING;viewed-item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:08:39;3;GRADES_MONITORING;viewed-item_grades_details-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:08:41;3;GRADES_MONITORING;viewed-item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:08:41;3;GRADES_MONITORING;viewed-item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:08:54;3;GRADES_MONITORING;viewed-item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:08:56;3;GRADES_MONITORING;viewed-item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:09:34;3;GRADES_MONITORING;viewed-item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:09:34;3;GRADES_MONITORING;viewed-item_grades_details-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:09:36;3;GRADES_MONITORING;viewed-item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:11:00;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:11:01;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:11:06;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:11:07;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:11:09;3;GRADES_MONITORING;viewed-grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:13:11;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:13:15;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:13:18;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:13:19;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_item_grades_details-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:13:20;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:13:22;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:13:23;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:13:24;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL_item_grades_details-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:13:24;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL_item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:14:39;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL_item_grades_details-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:14:41;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL_item_grades_details-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:14:41;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL_item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:14:55;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL_item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:14:56;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL_item_grades_details-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:14:57;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL_item_grades_details-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:14:57;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL_item_grades_distribution-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:16:14;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL_grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:16:16;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";08-06-21;22:16:26;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:14:28;3;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:14:51;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:14:58;3;TASKS_MONITORING;viewed-week_2021130-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:15:01;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:15:04;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:15:10;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:15:17;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:15:25;3;TASKS_MONITORING;sended-access_content-email +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:15:28;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:15:30;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:15:31;3;TASKS_MONITORING;filtered-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:15:31;3;TASKS_MONITORING;filtered-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:15:32;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:15:33;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:15:36;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:15:40;3;GRADES_MONITORING;viewed-course_undefined-course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:15:40;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:16:08;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:16:14;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:16:17;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:16:27;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:16:28;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:16:35;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_hardest_questions-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:16:36;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:16:40;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:16:43;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:16:44;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:16:46;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:16:48;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_hardest_questions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:16:48;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:16:50;3;DROPOUT;viewed-group_01-group +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:17:12;3;DROPOUT;viewed-modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:17:12;3;DROPOUT;viewed-modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:17:14;3;DROPOUT;viewed-modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:17:16;3;DROPOUT;viewed-module_access-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:17:21;3;DROPOUT;viewed-modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:18:29;3;DROPOUT;viewed-modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:18:30;3;DROPOUT;viewed-week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:18:42;3;DROPOUT;viewed-modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:18:49;3;DROPOUT;viewed-modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:18:49;3;DROPOUT;viewed-week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:19:03;3;DROPOUT;viewed-week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:19:11;3;DROPOUT;viewed-modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:19:12;3;DROPOUT;viewed-sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:20:20;3;DROPOUT;viewed-week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:20:21;3;DROPOUT;viewed-week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:20:23;3;DROPOUT;viewed-modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:28:20;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:28:22;3;DROPOUT;viewed-week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:29:55;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:29:59;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:30:00;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:30:52;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:30:56;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:31:04;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:31:06;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:33:04;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:35:03;3;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:35:14;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:35:14;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:35:15;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:35:18;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:35:20;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:35:20;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:36:24;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:36:25;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-graphic +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:36:30;3;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:36:41;3;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:44:20;3;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:44:28;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:44:30;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:44:31;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:44:36;3;TEACHER_STUDY_SESSIONS;downloaded-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:44:37;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:44:37;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:44:38;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-help +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:44:39;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:44:40;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:44:41;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:44:42;3;TEACHER_STUDY_SESSIONS;filtered-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:44:42;3;TEACHER_STUDY_SESSIONS;filtered-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:44:43;3;TEACHER_STUDY_SESSIONS;filtered-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:44:43;3;TEACHER_STUDY_SESSIONS;filtered-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:44:48;3;TEACHER_STUDY_SESSIONS;viewed-week_2021130-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:44:50;3;TEACHER_STUDY_SESSIONS;viewed-week_2021130-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:44:55;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:01;3;TASKS_MONITORING;viewed-week_2021130-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:02;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:04;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:05;3;TASKS_MONITORING;downloaded-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:07;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:07;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:15;3;TASKS_MONITORING;sended-access_content-email +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:18;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:18;3;TASKS_MONITORING;filtered-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:19;3;TASKS_MONITORING;filtered-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:23;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:29;3;ASSESSMENT_MONITORING;viewed-week_2021130-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:32;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:35;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:35;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_hardest_questions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:35;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:39;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:39;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_hardest_questions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:40;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_hardest_questions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:41;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_hardest_questions-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:45;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:45;3;ASSESSMENT_MONITORING;filtered-questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:46;3;ASSESSMENT_MONITORING;filtered-questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:51;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:45:54;3;DROPOUT;viewed-group_01-group +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:52:07;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:52:11;3;DROPOUT;viewed-group_01-group +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:52:22;3;DROPOUT;viewed-student1_modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:52:25;3;DROPOUT;viewed-student1_week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:52:28;3;DROPOUT;viewed-student1_sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:52:29;3;DROPOUT;viewed-student1_user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:52:30;3;DROPOUT;viewed-student1_user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:52:31;3;DROPOUT;viewed-student1_user_grades-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:52:36;3;DROPOUT;viewed-student1_user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:52:37;3;DROPOUT;viewed-student1_sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:52:38;3;DROPOUT;viewed-student1_week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:52:39;3;DROPOUT;viewed-week_modules-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:52:42;3;DROPOUT;viewed-student1_week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:52:43;3;DROPOUT;viewed-week_modules-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:52:58;3;DROPOUT;sended-student1-email +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:53:49;3;DROPOUT;sended-1-email +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:54:07;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:54:13;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:54:18;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:54:21;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:54:24;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:54:24;3;GRADES_MONITORING;viewed-course_undefined-course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:54:28;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:54:32;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:54:41;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:54:48;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:54:52;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:54:56;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:55:10;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:58:18;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:58:24;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;10:58:26;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;11:01:29;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;11:01:29;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;11:08:45;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;11:19:46;3;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;11:20:08;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;11:20:12;3;DROPOUT;viewed-group_01-group +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;11:20:16;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;11:20:19;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;11:20:22;3;GRADES_MONITORING;viewed-course_undefined-course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;11:20:23;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;11:20:23;3;GRADES_MONITORING;viewed-Systeme_de_Gestion_de_Bases_de_Donnees_GMO_2020-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;11:20:51;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;11:20:53;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;11:21:55;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;11:24:54;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;11:25:01;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;11:25:04;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;11:25:06;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;11:25:07;3;GRADES_MONITORING;viewed-course_Systeme_de_Gestion_de_Bases_de_Donnees_GMO_2020-course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;12:24:16;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;12:24:29;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;12:31:29;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;12:31:46;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;12:35:11;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;12:35:22;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;12:35:35;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;12:40:17;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;12:40:32;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;12:40:36;3;DROPOUT;viewed-group_01-group +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;12:40:38;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;12:45:03;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;12:45:14;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;12:58:37;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;12:58:51;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:48:53;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:48:58;3;DROPOUT;viewed-group_01-group +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:49:32;3;DROPOUT;viewed-user_nalmu001-user_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:49:32;3;DROPOUT;viewed-user_cautu001-user_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:49:33;3;DROPOUT;viewed-user_mbabu001-user_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:49:43;3;DROPOUT;sended-mbabu001-email +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:50:35;3;DROPOUT;sended-1-email +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:50:39;3;DROPOUT;viewed-mbabu001_week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:50:41;3;DROPOUT;filtered-week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:50:42;3;DROPOUT;filtered-week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:50:45;3;DROPOUT;viewed-user_student1-user_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:50:46;3;DROPOUT;viewed-student1_week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:50:48;3;DROPOUT;viewed-week_modules-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:50:57;3;DROPOUT;viewed-student1_modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:50:59;3;DROPOUT;viewed-student1_module_access-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:51:10;3;DROPOUT;viewed-student1_sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:51:12;3;DROPOUT;viewed-student1_user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:51:14;3;DROPOUT;viewed-student1_user_grades-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:51:59;3;DROPOUT;viewed-student1_sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:00;3;DROPOUT;viewed-student1_sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:00;3;DROPOUT;viewed-student1_modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:01;3;DROPOUT;viewed-student1_modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:02;3;DROPOUT;viewed-student1_modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:04;3;DROPOUT;viewed-student1_modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:05;3;DROPOUT;viewed-student1_sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:05;3;DROPOUT;viewed-student1_week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:06;3;DROPOUT;filtered-week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:06;3;DROPOUT;filtered-week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:07;3;DROPOUT;viewed-student1_sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:08;3;DROPOUT;viewed-student1_sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:08;3;DROPOUT;filtered-sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:09;3;DROPOUT;filtered-sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:09;3;DROPOUT;viewed-student1_user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:10;3;DROPOUT;viewed-student1_user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:10;3;DROPOUT;filtered-user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:11;3;DROPOUT;filtered-user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:12;3;DROPOUT;viewed-student1_user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:17;3;DROPOUT;viewed-user_grades-help +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:22;3;DROPOUT;viewed-student1_sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:23;3;DROPOUT;viewed-sessions_evolution-help +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:23;3;DROPOUT;viewed-student1_sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:29;3;DROPOUT;viewed-student1_sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:31;3;DROPOUT;viewed-sessions_evolution-help +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:32;3;DROPOUT;viewed-student1_sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:36;3;DROPOUT;viewed-sessions_evolution-help +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:43;3;DROPOUT;viewed-student1_modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:44;3;DROPOUT;viewed-student1_module_access-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:49;3;DROPOUT;viewed-student1_modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:50;3;DROPOUT;viewed-student1_week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:50;3;DROPOUT;viewed-student1_modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:52;3;DROPOUT;viewed-student1_module_access-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:52:57;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:02;3;ASSESSMENT_MONITORING;viewed-week_2021130-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:05;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:08;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:11;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:15;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:18;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_hardest_questions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:18;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:18;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:19;3;ASSESSMENT_MONITORING;filtered-questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:20;3;ASSESSMENT_MONITORING;filtered-questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:21;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:23;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:26;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:28;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:28;3;GRADES_MONITORING;viewed-course_Systeme_de_Gestion_de_Bases_de_Donnees_GMO_2020-course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:29;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:35;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:36;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:37;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:38;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:38;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_item_grades_details-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:39;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_item_grades_distribution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:40;3;GRADES_MONITORING;viewed-item_grades_distribution-help +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:42;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_item_grades_distribution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:45;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:50;3;TASKS_MONITORING;viewed-week_2021130-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:51;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:55;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:56;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:57;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:57;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:57;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:53:58;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:54:03;3;TASKS_MONITORING;sended-access_content-email +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:54:07;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:54:11;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:54:16;3;DROPOUT;viewed-group_01-group +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:54:23;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;14:54:24;3;DROPOUT;viewed-student1_week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:01:27;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:01:45;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:03:40;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:04:00;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:07:01;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:10:27;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:11:00;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:11:21;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:11:35;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:11:44;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:14:09;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:14:15;3;DROPOUT;viewed-group_01-group +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:14:18;3;DROPOUT;viewed-student1_week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:14:20;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:17:12;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:30:10;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:31:07;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:31:31;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:32:51;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:33:17;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:33:51;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:34:35;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:35:58;3;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:42:50;3;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:43:02;3;CONFIGURATION_COURSE_WEEK;saved-configWeeksButton-configuration +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:43:22;3;CONFIGURATION_COURSE_WEEK;saved-configWeeksButton-configuration +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:46:04;3;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:53:18;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:53:22;3;TASKS_MONITORING;viewed-week_2021431-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:53:23;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;15:53:24;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:00:45;3;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:02:24;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:02:41;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:02:44;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:07:13;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:07:16;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:07:19;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:07:20;3;GRADES_MONITORING;viewed-course_Systeme_de_Gestion_de_Bases_de_Donnees_GMO_2020-course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:07:22;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:08:37;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:14:05;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:14:08;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:14:11;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:14:11;3;GRADES_MONITORING;viewed-course_Systeme_de_Gestion_de_Bases_de_Donnees_GMO_2020-course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:14:13;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:14:24;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:14:26;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:14:27;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL_item_grades_details-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:14:30;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL_item_grades_details-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:14:30;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL_item_grades_distribution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:14:30;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:14:34;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:14:40;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:14:45;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_hardest_questions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:14:50;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:14:54;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_hardest_questions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:14:56;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:14:59;3;ASSESSMENT_MONITORING;viewed-week_2021431-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:15:03;3;ASSESSMENT_MONITORING;viewed-week_2021430-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:15:05;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:21:48;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:21:59;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:23:13;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:23:22;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:23:26;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_hardest_questions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:23:29;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:25:32;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:27:21;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:27:30;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:27:32;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_hardest_questions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:27:36;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:27:38;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL_questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:27:39;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL_hardest_questions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:27:41;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL_questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:32:51;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:33:05;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:34:56;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:38:43;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:39:11;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:39:23;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:40:03;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:49:08;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:49:49;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:50:19;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:54:11;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:55:08;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:58:47;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:58:52;3;DROPOUT;viewed-group_01-group +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:58:56;3;DROPOUT;viewed-user_ccasu001-user_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:58:58;3;DROPOUT;viewed-user_cel_u001-user_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:58:58;3;DROPOUT;viewed-user_cestu001-user_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:58:59;3;DROPOUT;viewed-user_celiu001-user_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:59:01;3;DROPOUT;viewed-user_student1-user_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:59:08;3;DROPOUT;viewed-student1_modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:59:09;3;DROPOUT;viewed-student1_week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:59:12;3;DROPOUT;viewed-student1_week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;16:59:13;3;DROPOUT;viewed-week_modules-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:00:14;3;DROPOUT;viewed-student1_modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:00:15;3;DROPOUT;viewed-student1_module_access-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:00:22;3;DROPOUT;viewed-student1_sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:00:25;3;DROPOUT;viewed-student1_sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:00:26;3;DROPOUT;viewed-student1_user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:00:27;3;DROPOUT;viewed-student1_user_grades-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:00:37;3;DROPOUT;viewed-student1_user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:00:37;3;DROPOUT;filtered-user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:00:37;3;DROPOUT;viewed-student1_user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:00:37;3;DROPOUT;filtered-user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:00:37;3;DROPOUT;viewed-student1_user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:00:37;3;DROPOUT;viewed-student1_user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:00:39;3;DROPOUT;viewed-user_grades-help +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:00:42;3;DROPOUT;viewed-student1_user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:00:53;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:00:57;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:00:59;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:15;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:15;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:15;3;GRADES_MONITORING;viewed-course_Systeme_de_Gestion_de_Bases_de_Donnees_GMO_2020-course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:15;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:15;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:15;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_item_grades_details-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:15;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_item_grades_distribution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:15;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:15;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:15;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:15;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:16;3;GRADES_MONITORING;downloaded-grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:24;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:33;3;TASKS_MONITORING;viewed-week_2021431-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:34;3;TASKS_MONITORING;viewed-week_2021430-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:35;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:39;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:41;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:42;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:44;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:45;3;TASKS_MONITORING;filtered-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:46;3;TASKS_MONITORING;filtered-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:48;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:51;3;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:55;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:56;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:57;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:57;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:01:59;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:02:00;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:02:03;3;TEACHER_STUDY_SESSIONS;filtered-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:02:04;3;TEACHER_STUDY_SESSIONS;filtered-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:02:05;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:02:06;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-help +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:02:07;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:02:08;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:02:10;3;TEACHER_STUDY_SESSIONS;viewed-week_2021431-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:02:13;3;TEACHER_STUDY_SESSIONS;viewed-week_2021432-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:02:40;3;TEACHER_STUDY_SESSIONS;viewed-week_2021431-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:02:43;3;TEACHER_STUDY_SESSIONS;viewed-week_2021430-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:02:53;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:04:20;3;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:08:55;3;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:08:56;3;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:09:07;3;CONFIGURATION_COURSE_WEEK;saved-configuration-weeks +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:11:08;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:12:45;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:12:47;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:14:00;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:15:06;3;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:16:02;3;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:16:48;3;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:24:29;3;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:24:54;3;TEACHER_GENERAL_INDICATORS;downloaded-week_sessions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:24:56;3;TEACHER_GENERAL_INDICATORS;downloaded-week_resourcess-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:24:59;3;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:04;3;TEACHER_STUDY_SESSIONS;viewed-week_2021431-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:05;3;TEACHER_STUDY_SESSIONS;viewed-week_2021432-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:06;3;TEACHER_STUDY_SESSIONS;viewed-week_2021432-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:07;3;TEACHER_STUDY_SESSIONS;viewed-week_2021430-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:07;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:08;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:09;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:10;3;TEACHER_STUDY_SESSIONS;downloaded-inverted_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:10;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:11;3;TEACHER_STUDY_SESSIONS;downloaded-hour_sessions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:13;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-help +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:13;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:14;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-help +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:15;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:16;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:17;3;TEACHER_STUDY_SESSIONS;filtered-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:17;3;TEACHER_STUDY_SESSIONS;filtered-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:17;3;TEACHER_STUDY_SESSIONS;filtered-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:18;3;TEACHER_STUDY_SESSIONS;filtered-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:19;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-help +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:20;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:20;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:21;3;TEACHER_STUDY_SESSIONS;downloaded-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:22;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:25;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:30;3;TASKS_MONITORING;viewed-week_2021431-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:30;3;TASKS_MONITORING;viewed-week_2021432-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:30;3;TASKS_MONITORING;viewed-week_2021431-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:31;3;TASKS_MONITORING;viewed-week_2021430-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:33;3;TASKS_MONITORING;filtered-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:33;3;TASKS_MONITORING;filtered-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:36;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:36;3;TASKS_MONITORING;viewed-assigns_submissions-help +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:37;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:37;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:38;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:38;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:39;3;TASKS_MONITORING;downloaded-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:39;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:40;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:48;3;TASKS_MONITORING;sended-access_content-email +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:49;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:50;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:51;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:51;3;TASKS_MONITORING;filtered-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:51;3;TASKS_MONITORING;filtered-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:52;3;TASKS_MONITORING;viewed-access_content-help +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:53;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:54;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:55;3;TASKS_MONITORING;downloaded-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:56;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:25:58;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:01;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:04;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:04;3;GRADES_MONITORING;viewed-course_Systeme_de_Gestion_de_Bases_de_Donnees_GMO_2020-course +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:04;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:05;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:05;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:06;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_item_grades_details-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:07;3;GRADES_MONITORING;viewed-item_grades_details-help +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:08;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_item_grades_details-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:08;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_item_grades_details-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:09;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_item_grades_details-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:09;3;GRADES_MONITORING;downloaded-item_grades_details-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:10;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_item_grades_distribution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:11;3;GRADES_MONITORING;viewed-item_grades_distribution-help +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:12;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_item_grades_distribution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:12;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:13;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_item_grades_distribution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:14;3;GRADES_MONITORING;downloaded-item_grades_distribution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:14;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:16;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:21;3;ASSESSMENT_MONITORING;viewed-week_2021431-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:22;3;ASSESSMENT_MONITORING;viewed-week_2021432-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:23;3;ASSESSMENT_MONITORING;viewed-week_2021430-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:24;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_EXCEPTIONEL-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:26;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF-quiz +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:26;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:27;3;ASSESSMENT_MONITORING;filtered-questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:27;3;ASSESSMENT_MONITORING;filtered-questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:27;3;ASSESSMENT_MONITORING;filtered-questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:27;3;ASSESSMENT_MONITORING;filtered-questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:28;3;ASSESSMENT_MONITORING;viewed-questions_attempts-help +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:30;3;ASSESSMENT_MONITORING;viewed-hardest_questions-help +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:31;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_hardest_questions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:31;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_hardest_questions-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:34;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_hardest_questions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:35;3;ASSESSMENT_MONITORING;downloaded-hardest_questions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:38;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:39;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_hardest_questions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:39;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:42;3;DROPOUT;viewed-group_01-group +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:46;3;DROPOUT;viewed-user_nalmu001-user_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:47;3;DROPOUT;viewed-user_student1-user_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:47;3;DROPOUT;viewed-user_nalmu001-user_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:47;3;DROPOUT;viewed-user_mbabu001-user_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:48;3;DROPOUT;viewed-user_ebadu004-user_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:48;3;DROPOUT;viewed-user_mbabu001-user_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:48;3;DROPOUT;viewed-user_cautu001-user_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:50;3;DROPOUT;viewed-user_nalmu001-user_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:50;3;DROPOUT;viewed-user_student1-user_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:51;3;DROPOUT;viewed-student1_modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:52;3;DROPOUT;viewed-student1_module_access-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:53;3;DROPOUT;viewed-student1_week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:54;3;DROPOUT;viewed-student1_week_modules-chart_details +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:56;3;DROPOUT;viewed-student1_week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:56;3;DROPOUT;filtered-week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:56;3;DROPOUT;filtered-week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:57;3;DROPOUT;filtered-week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:57;3;DROPOUT;filtered-week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:58;3;DROPOUT;viewed-student1_week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:58;3;DROPOUT;viewed-student1_sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:58;3;DROPOUT;viewed-student1_sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:58;3;DROPOUT;viewed-student1_sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:59;3;DROPOUT;viewed-student1_user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:26:59;3;DROPOUT;viewed-student1_user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:27:00;3;DROPOUT;filtered-user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:27:00;3;DROPOUT;filtered-user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:27:00;3;DROPOUT;viewed-user_grades-help +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:27:03;3;DROPOUT;viewed-student1_user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:27:03;3;DROPOUT;downloaded-user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:27:05;3;DROPOUT;viewed-student1_week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:27:11;3;DROPOUT;sended-student1-email +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:27:13;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:27:28;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:27:43;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:33:37;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:33:54;3;LOGFILES;downloaded-nmp-logfile +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:35:27;3;STUDENT_GENERAL_INDICATORS;viewed-student_general_indicators-section +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:35:32;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:35:35;3;STUDENT_GENERAL_INDICATORS;viewed-module_access_chart-details +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:35:38;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:35:40;3;STUDENT_GENERAL_INDICATORS;viewed-module_access_chart-details +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:36:46;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:36:49;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:36:50;3;STUDENT_GENERAL_INDICATORS;downloaded-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:36:54;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-help +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:36:59;3;STUDENT_GENERAL_INDICATORS;viewed-weeks_session-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:37:00;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:37:01;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:37:02;3;STUDENT_GENERAL_INDICATORS;filtered-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:37:02;3;STUDENT_GENERAL_INDICATORS;filtered-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:37:06;3;STUDENT_GENERAL_INDICATORS;viewed-user_grades-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:37:07;3;STUDENT_GENERAL_INDICATORS;viewed-user_grades_chart-details +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:37:11;3;STUDENT_GENERAL_INDICATORS;viewed-user_grades-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:37:14;3;STUDENT_GENERAL_INDICATORS;viewed-user_grades-help +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:37:36;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:37:37;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:38:45;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:38:45;3;STUDENT_GENERAL_INDICATORS;viewed-weeks_session-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:38:46;3;STUDENT_STUDY_SESSIONS;viewed-student_study_sessions-section +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:38:56;3;STUDENT_SESSIONS;viewed-2021430-week_section +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:39:38;3;STUDENT_SESSIONS;viewed-inverted_time-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:39:47;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:39:52;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:39:53;3;STUDENT_SESSIONS;viewed-inverted_time-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:39:54;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:39:54;3;STUDENT_SESSIONS;viewed-inverted_time-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:39:55;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:39:57;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:39:57;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:39:57;3;STUDENT_SESSIONS;viewed-inverted_time-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:39:57;3;STUDENT_SESSIONS;viewed-resources_access-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:39:58;3;STUDENT_SESSIONS;viewed-resources_access_chart-details +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:40:02;3;STUDENT_SESSIONS;viewed-resources_access-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:40:40;3;STUDENT_SESSIONS;viewed-resources_access-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:40:41;3;STUDENT_SESSIONS;viewed-inverted_time-help +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:40:47;3;STUDENT_SESSIONS;viewed-resources_access-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:41:04;3;STUDENT_SESSIONS;viewed-resources_access-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:41:05;3;STUDENT_SESSIONS;viewed-resources_access-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:41:12;3;STUDENT_SESSIONS;viewed-resources_access-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:41:12;3;STUDENT_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:41:15;3;STUDENT_SESSIONS;viewed-resources_access-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:41:17;3;STUDENT_SESSIONS;viewed-inverted_time-help +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:17;3;STUDENT_STUDY_SESSIONS;viewed-student_study_sessions-section +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:21;3;STUDENT_STUDY_SESSIONS;viewed-invested_time-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:26;3;STUDENT_STUDY_SESSIONS;viewed-invested_time-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:27;3;STUDENT_STUDY_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:28;3;STUDENT_STUDY_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:31;3;STUDENT_STUDY_SESSIONS;viewed-invested_time-help +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:32;3;STUDENT_STUDY_SESSIONS;viewed-resources_access-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:33;3;STUDENT_STUDY_SESSIONS;viewed-resources_access-chart_details +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:39;3;STUDENT_STUDY_SESSIONS;viewed-week_2021431-week_section +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:40;3;STUDENT_STUDY_SESSIONS;viewed-week_2021430-week_section +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:41;3;STUDENT_STUDY_SESSIONS;viewed-student_study_sessions-section +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:45;3;STUDENT_STUDY_SESSIONS;viewed-invested_time-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:46;3;STUDENT_STUDY_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:48;3;STUDENT_STUDY_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:48;3;STUDENT_STUDY_SESSIONS;viewed-invested_time-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:48;3;STUDENT_STUDY_SESSIONS;viewed-invested_time-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:48;3;STUDENT_STUDY_SESSIONS;viewed-invested_time-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:48;3;STUDENT_STUDY_SESSIONS;viewed-invested_time-help +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:50;3;STUDENT_STUDY_SESSIONS;viewed-resources_access-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:51;3;STUDENT_STUDY_SESSIONS;viewed-resources_access-chart_details +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:52;3;STUDENT_STUDY_SESSIONS;viewed-resources_access-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:53;3;STUDENT_STUDY_SESSIONS;viewed-hours_session-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:54;3;STUDENT_GENERAL_INDICATORS;viewed-student_general_indicators-section +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:58;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:45:59;3;STUDENT_GENERAL_INDICATORS;viewed-module_access-chart_details +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:46:00;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:46:01;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-help +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:46:01;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:46:02;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:46:02;3;STUDENT_GENERAL_INDICATORS;viewed-user_grades-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:46:03;3;STUDENT_GENERAL_INDICATORS;viewed-user_grades-chart_details +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:46:05;3;STUDENT_GENERAL_INDICATORS;viewed-user_grades-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:46:05;3;STUDENT_GENERAL_INDICATORS;viewed-sessions_evolution-chart +student;student1@nmp.com;student1;"Student1 NMP";09-06-21;17:46:06;3;STUDENT_GENERAL_INDICATORS;viewed-modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:46:26;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";09-06-21;17:46:36;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-06-21;09:13:10;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";10-06-21;09:13:37;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;14:27:07;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;14:27:36;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;15:39:30;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;19:22:32;3;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;19:24:01;3;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;19:24:22;3;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;19:25:33;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;19:25:57;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;19:27:28;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;19:27:29;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;19:27:39;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;19:27:39;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;19:27:40;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;19:27:40;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;19:27:41;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;19:27:43;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;19:27:45;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;19:27:46;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_item_grades_details-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;19:28:24;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_item_grades_distribution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;19:28:24;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_item_grades_details-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;19:28:25;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;19:28:25;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;19:28:27;3;ASSESSMENTS_MONITORING;viewed-assessment_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;19:28:30;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;19:28:32;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";12-06-21;19:28:33;3;ASSESSMENT_MONITORING;viewed-Test_TP1HC_Merise&MCF_questions_attempts-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";14-06-21;10:14:02;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";14-06-21;10:14:21;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";14-06-21;10:14:36;3;LOGFILES;downloaded-moodle-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";14-06-21;10:19:24;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";15-06-21;16:14:48;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";15-06-21;16:14:57;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";15-06-21;16:15:00;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";15-06-21;16:15:05;3;TASKS_MONITORING;viewed-access_content-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:44:39;3;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:44:44;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:44:46;3;TEACHER_STUDY_SESSIONS;viewed-week_2021430-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:44:50;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:44:53;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:44:54;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:44:56;3;TEACHER_STUDY_SESSIONS;filtered-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:44:56;3;TEACHER_STUDY_SESSIONS;filtered-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:44:57;3;TEACHER_STUDY_SESSIONS;filtered-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:44:57;3;TEACHER_STUDY_SESSIONS;filtered-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:44:57;3;TEACHER_STUDY_SESSIONS;filtered-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:44:58;3;TEACHER_STUDY_SESSIONS;filtered-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:45:38;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:45:55;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:45:55;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:45:55;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:45:55;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:45:57;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:45:59;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:46:03;3;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:46:21;3;CONFIGURATION_COURSE_WEEK;saved-configuration-weeks +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:46:23;3;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:46:39;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:46:58;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:47:16;3;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:47:20;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:47:20;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:47:25;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:47:25;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:47:27;3;TEACHER_STUDY_SESSIONS;viewed-week_2021430-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:47:28;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:48:32;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:49:25;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:49:27;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:49:32;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:49:42;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:49:43;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:49:58;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:50:00;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:50:01;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:50:07;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:50:09;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:50:09;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:50:10;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:50:15;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:50:15;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:50:25;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:50:43;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:50:43;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:50:54;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:50:57;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:50:58;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:51:01;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:51:55;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;13:51:56;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;14:53:04;3;TEACHER_STUDY_SESSIONS;viewed-week_2021431-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;14:53:06;3;TEACHER_STUDY_SESSIONS;viewed-week_2021432-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;14:53:07;3;TEACHER_STUDY_SESSIONS;viewed-week_2021431-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;14:53:09;3;TEACHER_STUDY_SESSIONS;viewed-week_2021430-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;14:53:13;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;14:53:21;3;TEACHER_STUDY_SESSIONS;viewed-week_2021431-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";16-06-21;14:54:21;3;TEACHER_STUDY_SESSIONS;viewed-week_2021430-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:02:27;3;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:02:32;3;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:06:44;3;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:06:57;3;CONFIGURATION_COURSE_WEEK;saved-configuration-weeks +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:07:26;3;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:07:46;3;CONFIGURATION_COURSE_WEEK;saved-configuration-weeks +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:08:03;3;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:08:28;3;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:09:10;3;CONFIGURATION_COURSE_WEEK;saved-configuration-weeks +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:09:14;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:09:18;3;DROPOUT;viewed-group_01-group +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;11:11:04;3;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:03:59;3;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:04:19;3;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:04:25;3;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:04:30;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:04:32;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:04:33;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:04:38;3;TEACHER_STUDY_SESSIONS;viewed-week_2021430-week_section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:04:48;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:04:49;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:04:52;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:04:55;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:05:06;3;TEACHER_STUDY_SESSIONS;viewed-hours_sessions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:05:06;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:05:22;3;TEACHER_STUDY_SESSIONS;viewed-invested_time-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:05:24;3;TEACHER_STUDY_SESSIONS;viewed-sessions_count-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:05:27;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:05:31;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:05:32;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:05:34;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_item_grades_distribution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:05:36;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_item_grades_details-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:05:54;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_item_grades_distribution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:07:49;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_item_grades_details-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:07:49;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_item_grades_distribution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:07:53;3;GRADES_MONITORING;viewed-grades_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:07:59;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF-grade_item +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;16:15:45;3;GRADES_MONITORING;viewed-Test_TP1HC_Merise&MCF_grade_items_average-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";21-06-21;19:53:38;3;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;08:44:35;3;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;08:44:45;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;08:45:07;3;TASKS_MONITORING;viewed-assigns_submissions-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;08:45:08;3;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;08:45:15;3;CONFIGURATION_COURSE_WEEK;saved-configuration-weeks +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;09:00:49;3;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;09:01:23;3;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;09:14:33;3;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;10:54:18;3;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;10:54:30;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;11:05:56;3;CONFIGURATION_COURSE_WEEK;viewed-configuration_of_the_weeks-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;11:06:39;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;11:06:45;3;DROPOUT;viewed-dropout-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;11:06:48;3;DROPOUT;viewed-group_01-group +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;11:07:11;3;DROPOUT;viewed-admin_modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;11:07:13;3;DROPOUT;viewed-admin_sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;11:07:14;3;DROPOUT;viewed-admin_sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;11:07:19;3;DROPOUT;viewed-admin_user_grades-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;11:07:21;3;DROPOUT;viewed-admin_sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;11:07:21;3;DROPOUT;viewed-admin_modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;11:07:26;3;DROPOUT;viewed-admin_modules_access-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;11:07:27;3;DROPOUT;viewed-admin_sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;11:07:33;3;DROPOUT;viewed-admin_sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;11:07:49;3;DROPOUT;viewed-admin_sessions_evolution-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;11:07:50;3;DROPOUT;viewed-admin_week_modules-chart +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;11:07:52;3;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;11:08:13;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;11:08:23;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;11:57:33;3;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;12:06:06;3;TEACHER_GENERAL_INDICATORS;viewed-teacher_general_indicators-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;12:09:12;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;12:09:43;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;12:10:16;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;12:10:58;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;12:12:56;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;12:13:57;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;12:14:14;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;12:15:03;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;12:15:16;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;12:38:08;3;TEACHER_STUDY_SESSIONS;viewed-study_sessions-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";23-06-21;12:41:27;3;TASKS_MONITORING;viewed-tasks_monitoring-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-06-21;13:37:47;3;LOGFILES;viewed-activity_log-section +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-06-21;13:38:07;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-06-21;13:38:14;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-06-21;13:38:32;3;LOGFILES;downloaded-moodle-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-06-21;13:38:55;3;LOGFILES;downloaded-nmp-logfile +administrator;bart.eric@hotmail.com;admin;"Eric Bart";25-06-21;13:39:37;3;LOGFILES;downloaded-nmp-logfile diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/downloads/Details_Informations_LogsNMP.pdf b/NMP 3.0 Moodle Pluggin/fliplearning/downloads/Details_Informations_LogsNMP.pdf new file mode 100644 index 0000000000000000000000000000000000000000..379ff00ef2bd8e3c33d45a2c2adb9987280ec2df Binary files /dev/null and b/NMP 3.0 Moodle Pluggin/fliplearning/downloads/Details_Informations_LogsNMP.pdf differ diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/downloads/README.md b/NMP 3.0 Moodle Pluggin/fliplearning/downloads/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0441fb7763c2328c8b1414e023473f1e0fb9195a --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/downloads/README.md @@ -0,0 +1,7 @@ +# Flip My Learning # + +The purpose of this file is to store the files containing the downloaded logs. + +You can delete all .csv files if you wish. + +When the user wishes to download an activity log, a copy is stored here \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/fonts/Poppins-Medium.otf b/NMP 3.0 Moodle Pluggin/fliplearning/fonts/Poppins-Medium.otf new file mode 100644 index 0000000000000000000000000000000000000000..49e7b6bb4d3a9f4f5d8387d9f53130008b50198d Binary files /dev/null and b/NMP 3.0 Moodle Pluggin/fliplearning/fonts/Poppins-Medium.otf differ diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/fonts/Poppins-Regular.otf b/NMP 3.0 Moodle Pluggin/fliplearning/fonts/Poppins-Regular.otf new file mode 100644 index 0000000000000000000000000000000000000000..e5c4eee5a94853a6056b4f6785d0332ff2e6550d Binary files /dev/null and b/NMP 3.0 Moodle Pluggin/fliplearning/fonts/Poppins-Regular.otf differ diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/fonts/materialdesignicons-webfont.eot b/NMP 3.0 Moodle Pluggin/fliplearning/fonts/materialdesignicons-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..c80231c7d8f53384d5302603636b1031f488b539 Binary files /dev/null and b/NMP 3.0 Moodle Pluggin/fliplearning/fonts/materialdesignicons-webfont.eot differ diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/fonts/materialdesignicons-webfont.ttf b/NMP 3.0 Moodle Pluggin/fliplearning/fonts/materialdesignicons-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8a9fdb8fafcecff6e857d3e639918fd1e6e47e37 Binary files /dev/null and b/NMP 3.0 Moodle Pluggin/fliplearning/fonts/materialdesignicons-webfont.ttf differ diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/fonts/materialdesignicons-webfont.woff b/NMP 3.0 Moodle Pluggin/fliplearning/fonts/materialdesignicons-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..d60483118210b02da408af1835387274e9763ee8 Binary files /dev/null and b/NMP 3.0 Moodle Pluggin/fliplearning/fonts/materialdesignicons-webfont.woff differ diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/fonts/materialdesignicons-webfont.woff2 b/NMP 3.0 Moodle Pluggin/fliplearning/fonts/materialdesignicons-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e7b57956429ae6864d9e0924185464a1585d1ba8 Binary files /dev/null and b/NMP 3.0 Moodle Pluggin/fliplearning/fonts/materialdesignicons-webfont.woff2 differ diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/js/alertify.js b/NMP 3.0 Moodle Pluggin/fliplearning/js/alertify.js new file mode 100644 index 0000000000000000000000000000000000000000..745a8a92965c172f231b528782f35106efec7de0 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/js/alertify.js @@ -0,0 +1,3609 @@ +/** + * alertifyjs 1.11.4 http://alertifyjs.com + * AlertifyJS is a javascript framework for developing pretty browser dialogs and notifications. + * Copyright 2019 Mohammad Younes <Mohammad@alertifyjs.com> (http://alertifyjs.com) + * Licensed under GPL 3 <https://opensource.org/licenses/gpl-3.0>*/ +( function ( window ) { + 'use strict'; + + /** + * Keys enum + * @type {Object} + */ + var keys = { + ENTER: 13, + ESC: 27, + F1: 112, + F12: 123, + LEFT: 37, + RIGHT: 39 + }; + /** + * Default options + * @type {Object} + */ + var defaults = { + autoReset:true, + basic:false, + closable:true, + closableByDimmer:true, + frameless:false, + maintainFocus:true, //global default not per instance, applies to all dialogs + maximizable:true, + modal:true, + movable:true, + moveBounded:false, + overflow:true, + padding: true, + pinnable:true, + pinned:true, + preventBodyShift:false, //global default not per instance, applies to all dialogs + resizable:true, + startMaximized:false, + transition:'pulse', + notifier:{ + delay:5, + position:'bottom-right', + closeButton:false + }, + glossary:{ + title:'AlertifyJS', + ok: 'OK', + cancel: 'Cancel', + acccpt: 'Accept', + deny: 'Deny', + confirm: 'Confirm', + decline: 'Decline', + close: 'Close', + maximize: 'Maximize', + restore: 'Restore', + }, + theme:{ + input:'ajs-input', + ok:'ajs-ok', + cancel:'ajs-cancel', + } + }; + + //holds open dialogs instances + var openDialogs = []; + + /** + * [Helper] Adds the specified class(es) to the element. + * + * @element {node} The element + * @className {string} One or more space-separated classes to be added to the class attribute of the element. + * + * @return {undefined} + */ + function addClass(element,classNames){ + element.className += ' ' + classNames; + } + + /** + * [Helper] Removes the specified class(es) from the element. + * + * @element {node} The element + * @className {string} One or more space-separated classes to be removed from the class attribute of the element. + * + * @return {undefined} + */ + function removeClass(element, classNames) { + var original = element.className.split(' '); + var toBeRemoved = classNames.split(' '); + for (var x = 0; x < toBeRemoved.length; x += 1) { + var index = original.indexOf(toBeRemoved[x]); + if (index > -1){ + original.splice(index,1); + } + } + element.className = original.join(' '); + } + + /** + * [Helper] Checks if the document is RTL + * + * @return {Boolean} True if the document is RTL, false otherwise. + */ + function isRightToLeft(){ + return window.getComputedStyle(document.body).direction === 'rtl'; + } + /** + * [Helper] Get the document current scrollTop + * + * @return {Number} current document scrollTop value + */ + function getScrollTop(){ + return ((document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop); + } + + /** + * [Helper] Get the document current scrollLeft + * + * @return {Number} current document scrollLeft value + */ + function getScrollLeft(){ + return ((document.documentElement && document.documentElement.scrollLeft) || document.body.scrollLeft); + } + + /** + * Helper: clear contents + * + */ + function clearContents(element){ + while (element.lastChild) { + element.removeChild(element.lastChild); + } + } + /** + * Extends a given prototype by merging properties from base into sub. + * + * @sub {Object} sub The prototype being overwritten. + * @base {Object} base The prototype being written. + * + * @return {Object} The extended prototype. + */ + function copy(src) { + if(null === src){ + return src; + } + var cpy; + if(Array.isArray(src)){ + cpy = []; + for(var x=0;x<src.length;x+=1){ + cpy.push(copy(src[x])); + } + return cpy; + } + + if(src instanceof Date){ + return new Date(src.getTime()); + } + + if(src instanceof RegExp){ + cpy = new RegExp(src.source); + cpy.global = src.global; + cpy.ignoreCase = src.ignoreCase; + cpy.multiline = src.multiline; + cpy.lastIndex = src.lastIndex; + return cpy; + } + + if(typeof src === 'object'){ + cpy = {}; + // copy dialog pototype over definition. + for (var prop in src) { + if (src.hasOwnProperty(prop)) { + cpy[prop] = copy(src[prop]); + } + } + return cpy; + } + return src; + } + /** + * Helper: destruct the dialog + * + */ + function destruct(instance, initialize){ + if(instance.elements){ + //delete the dom and it's references. + var root = instance.elements.root; + root.parentNode.removeChild(root); + delete instance.elements; + //copy back initial settings. + instance.settings = copy(instance.__settings); + //re-reference init function. + instance.__init = initialize; + //delete __internal variable to allow re-initialization. + delete instance.__internal; + } + } + + /** + * Use a closure to return proper event listener method. Try to use + * `addEventListener` by default but fallback to `attachEvent` for + * unsupported browser. The closure simply ensures that the test doesn't + * happen every time the method is called. + * + * @param {Node} el Node element + * @param {String} event Event type + * @param {Function} fn Callback of event + * @return {Function} + */ + var on = (function () { + if (document.addEventListener) { + return function (el, event, fn, useCapture) { + el.addEventListener(event, fn, useCapture === true); + }; + } else if (document.attachEvent) { + return function (el, event, fn) { + el.attachEvent('on' + event, fn); + }; + } + }()); + + /** + * Use a closure to return proper event listener method. Try to use + * `removeEventListener` by default but fallback to `detachEvent` for + * unsupported browser. The closure simply ensures that the test doesn't + * happen every time the method is called. + * + * @param {Node} el Node element + * @param {String} event Event type + * @param {Function} fn Callback of event + * @return {Function} + */ + var off = (function () { + if (document.removeEventListener) { + return function (el, event, fn, useCapture) { + el.removeEventListener(event, fn, useCapture === true); + }; + } else if (document.detachEvent) { + return function (el, event, fn) { + el.detachEvent('on' + event, fn); + }; + } + }()); + + /** + * Prevent default event from firing + * + * @param {Event} event Event object + * @return {undefined} + + function prevent ( event ) { + if ( event ) { + if ( event.preventDefault ) { + event.preventDefault(); + } else { + event.returnValue = false; + } + } + } + */ + var transition = (function () { + var t, type; + var supported = false; + var transitions = { + 'animation' : 'animationend', + 'OAnimation' : 'oAnimationEnd oanimationend', + 'msAnimation' : 'MSAnimationEnd', + 'MozAnimation' : 'animationend', + 'WebkitAnimation' : 'webkitAnimationEnd' + }; + + for (t in transitions) { + if (document.documentElement.style[t] !== undefined) { + type = transitions[t]; + supported = true; + break; + } + } + + return { + type: type, + supported: supported + }; + }()); + + /** + * Creates event handler delegate that sends the instance as last argument. + * + * @return {Function} a function wrapper which sends the instance as last argument. + */ + function delegate(context, method) { + return function () { + if (arguments.length > 0) { + var args = []; + for (var x = 0; x < arguments.length; x += 1) { + args.push(arguments[x]); + } + args.push(context); + return method.apply(context, args); + } + return method.apply(context, [null, context]); + }; + } + /** + * Helper for creating a dialog close event. + * + * @return {object} + */ + function createCloseEvent(index, button) { + return { + index: index, + button: button, + cancel: false + }; + } + /** + * Helper for dispatching events. + * + * @param {string} evenType The type of the event to disptach. + * @param {object} instance The dialog instance disptaching the event. + * + * @return {any} The result of the invoked function. + */ + function dispatchEvent(eventType, instance) { + if ( typeof instance.get(eventType) === 'function' ) { + return instance.get(eventType).call(instance); + } + } + + + /** + * Super class for all dialogs + * + * @return {Object} base dialog prototype + */ + var dialog = (function () { + var //holds the list of used keys. + usedKeys = [], + //dummy variable, used to trigger dom reflow. + reflow = null, + //holds body tab index in case it has any. + tabindex = false, + //condition for detecting safari + isSafari = window.navigator.userAgent.indexOf('Safari') > -1 && window.navigator.userAgent.indexOf('Chrome') < 0, + //dialog building blocks + templates = { + dimmer:'<div class="ajs-dimmer"></div>', + /*tab index required to fire click event before body focus*/ + modal: '<div class="ajs-modal" tabindex="0"></div>', + dialog: '<div class="ajs-dialog" tabindex="0"></div>', + reset: '<button class="ajs-reset"></button>', + commands: '<div class="ajs-commands"><button class="ajs-pin"></button><button class="ajs-maximize"></button><button class="ajs-close"></button></div>', + header: '<div class="ajs-header"></div>', + body: '<div class="ajs-body"></div>', + content: '<div class="ajs-content"></div>', + footer: '<div class="ajs-footer"></div>', + buttons: { primary: '<div class="ajs-primary ajs-buttons"></div>', auxiliary: '<div class="ajs-auxiliary ajs-buttons"></div>' }, + button: '<button class="ajs-button"></button>', + resizeHandle: '<div class="ajs-handle"></div>', + }, + //common class names + classes = { + animationIn: 'ajs-in', + animationOut: 'ajs-out', + base: 'alertify', + basic:'ajs-basic', + capture: 'ajs-capture', + closable:'ajs-closable', + fixed: 'ajs-fixed', + frameless:'ajs-frameless', + hidden: 'ajs-hidden', + maximize: 'ajs-maximize', + maximized: 'ajs-maximized', + maximizable:'ajs-maximizable', + modeless: 'ajs-modeless', + movable: 'ajs-movable', + noSelection: 'ajs-no-selection', + noOverflow: 'ajs-no-overflow', + noPadding:'ajs-no-padding', + pin:'ajs-pin', + pinnable:'ajs-pinnable', + prefix: 'ajs-', + resizable: 'ajs-resizable', + restore: 'ajs-restore', + shake:'ajs-shake', + unpinned:'ajs-unpinned', + }; + + /** + * Helper: initializes the dialog instance + * + * @return {Number} The total count of currently open modals. + */ + function initialize(instance){ + + if(!instance.__internal){ + + //no need to expose init after this. + delete instance.__init; + + //keep a copy of initial dialog settings + if(!instance.__settings){ + instance.__settings = copy(instance.settings); + } + + //get dialog buttons/focus setup + var setup; + if(typeof instance.setup === 'function'){ + setup = instance.setup(); + setup.options = setup.options || {}; + setup.focus = setup.focus || {}; + }else{ + setup = { + buttons:[], + focus:{ + element:null, + select:false + }, + options:{ + } + }; + } + + //initialize hooks object. + if(typeof instance.hooks !== 'object'){ + instance.hooks = {}; + } + + //copy buttons defintion + var buttonsDefinition = []; + if(Array.isArray(setup.buttons)){ + for(var b=0;b<setup.buttons.length;b+=1){ + var ref = setup.buttons[b], + cpy = {}; + for (var i in ref) { + if (ref.hasOwnProperty(i)) { + cpy[i] = ref[i]; + } + } + buttonsDefinition.push(cpy); + } + } + + var internal = instance.__internal = { + /** + * Flag holding the open state of the dialog + * + * @type {Boolean} + */ + isOpen:false, + /** + * Active element is the element that will receive focus after + * closing the dialog. It defaults as the body tag, but gets updated + * to the last focused element before the dialog was opened. + * + * @type {Node} + */ + activeElement:document.body, + timerIn:undefined, + timerOut:undefined, + buttons: buttonsDefinition, + focus: setup.focus, + options: { + title: undefined, + modal: undefined, + basic:undefined, + frameless:undefined, + pinned: undefined, + movable: undefined, + moveBounded:undefined, + resizable: undefined, + autoReset: undefined, + closable: undefined, + closableByDimmer: undefined, + maximizable: undefined, + startMaximized: undefined, + pinnable: undefined, + transition: undefined, + padding:undefined, + overflow:undefined, + onshow:undefined, + onclosing:undefined, + onclose:undefined, + onfocus:undefined, + onmove:undefined, + onmoved:undefined, + onresize:undefined, + onresized:undefined, + onmaximize:undefined, + onmaximized:undefined, + onrestore:undefined, + onrestored:undefined + }, + resetHandler:undefined, + beginMoveHandler:undefined, + beginResizeHandler:undefined, + bringToFrontHandler:undefined, + modalClickHandler:undefined, + buttonsClickHandler:undefined, + commandsClickHandler:undefined, + transitionInHandler:undefined, + transitionOutHandler:undefined, + destroy:undefined + }; + + var elements = {}; + //root node + elements.root = document.createElement('div'); + //prevent FOUC in case of async styles loading. + elements.root.style.display = 'none'; + elements.root.className = classes.base + ' ' + classes.hidden + ' '; + + elements.root.innerHTML = templates.dimmer + templates.modal; + + //dimmer + elements.dimmer = elements.root.firstChild; + + //dialog + elements.modal = elements.root.lastChild; + elements.modal.innerHTML = templates.dialog; + elements.dialog = elements.modal.firstChild; + elements.dialog.innerHTML = templates.reset + templates.commands + templates.header + templates.body + templates.footer + templates.resizeHandle + templates.reset; + + //reset links + elements.reset = []; + elements.reset.push(elements.dialog.firstChild); + elements.reset.push(elements.dialog.lastChild); + + //commands + elements.commands = {}; + elements.commands.container = elements.reset[0].nextSibling; + elements.commands.pin = elements.commands.container.firstChild; + elements.commands.maximize = elements.commands.pin.nextSibling; + elements.commands.close = elements.commands.maximize.nextSibling; + + //header + elements.header = elements.commands.container.nextSibling; + + //body + elements.body = elements.header.nextSibling; + elements.body.innerHTML = templates.content; + elements.content = elements.body.firstChild; + + //footer + elements.footer = elements.body.nextSibling; + elements.footer.innerHTML = templates.buttons.auxiliary + templates.buttons.primary; + + //resize handle + elements.resizeHandle = elements.footer.nextSibling; + + //buttons + elements.buttons = {}; + elements.buttons.auxiliary = elements.footer.firstChild; + elements.buttons.primary = elements.buttons.auxiliary.nextSibling; + elements.buttons.primary.innerHTML = templates.button; + elements.buttonTemplate = elements.buttons.primary.firstChild; + //remove button template + elements.buttons.primary.removeChild(elements.buttonTemplate); + + for(var x=0; x < instance.__internal.buttons.length; x+=1) { + var button = instance.__internal.buttons[x]; + + // add to the list of used keys. + if(usedKeys.indexOf(button.key) < 0){ + usedKeys.push(button.key); + } + + button.element = elements.buttonTemplate.cloneNode(); + button.element.innerHTML = button.text; + if(typeof button.className === 'string' && button.className !== ''){ + addClass(button.element, button.className); + } + for(var key in button.attrs){ + if(key !== 'className' && button.attrs.hasOwnProperty(key)){ + button.element.setAttribute(key, button.attrs[key]); + } + } + if(button.scope === 'auxiliary'){ + elements.buttons.auxiliary.appendChild(button.element); + }else{ + elements.buttons.primary.appendChild(button.element); + } + } + //make elements pubic + instance.elements = elements; + + //save event handlers delegates + internal.resetHandler = delegate(instance, onReset); + internal.beginMoveHandler = delegate(instance, beginMove); + internal.beginResizeHandler = delegate(instance, beginResize); + internal.bringToFrontHandler = delegate(instance, bringToFront); + internal.modalClickHandler = delegate(instance, modalClickHandler); + internal.buttonsClickHandler = delegate(instance, buttonsClickHandler); + internal.commandsClickHandler = delegate(instance, commandsClickHandler); + internal.transitionInHandler = delegate(instance, handleTransitionInEvent); + internal.transitionOutHandler = delegate(instance, handleTransitionOutEvent); + + //settings + for(var opKey in internal.options){ + if(setup.options[opKey] !== undefined){ + // if found in user options + instance.set(opKey, setup.options[opKey]); + }else if(alertify.defaults.hasOwnProperty(opKey)) { + // else if found in defaults options + instance.set(opKey, alertify.defaults[opKey]); + }else if(opKey === 'title' ) { + // else if title key, use alertify.defaults.glossary + instance.set(opKey, alertify.defaults.glossary[opKey]); + } + } + + // allow dom customization + if(typeof instance.build === 'function'){ + instance.build(); + } + } + + //add to the end of the DOM tree. + document.body.appendChild(instance.elements.root); + } + + /** + * Helper: maintains scroll position + * + */ + var scrollX, scrollY; + function saveScrollPosition(){ + scrollX = getScrollLeft(); + scrollY = getScrollTop(); + } + function restoreScrollPosition(){ + window.scrollTo(scrollX, scrollY); + } + + /** + * Helper: adds/removes no-overflow class from body + * + */ + function ensureNoOverflow(){ + var requiresNoOverflow = 0; + for(var x=0;x<openDialogs.length;x+=1){ + var instance = openDialogs[x]; + if(instance.isModal() || instance.isMaximized()){ + requiresNoOverflow+=1; + } + } + if(requiresNoOverflow === 0 && document.body.className.indexOf(classes.noOverflow) >= 0){ + //last open modal or last maximized one + removeClass(document.body, classes.noOverflow); + preventBodyShift(false); + }else if(requiresNoOverflow > 0 && document.body.className.indexOf(classes.noOverflow) < 0){ + //first open modal or first maximized one + preventBodyShift(true); + addClass(document.body, classes.noOverflow); + } + } + var top = '', topScroll = 0; + /** + * Helper: prevents body shift. + * + */ + function preventBodyShift(add){ + if(alertify.defaults.preventBodyShift){ + if(add && document.documentElement.scrollHeight > document.documentElement.clientHeight ){//&& openDialogs[openDialogs.length-1].elements.dialog.clientHeight <= document.documentElement.clientHeight){ + topScroll = scrollY; + top = window.getComputedStyle(document.body).top; + addClass(document.body, classes.fixed); + document.body.style.top = -scrollY + 'px'; + } else if(!add) { + scrollY = topScroll; + document.body.style.top = top; + removeClass(document.body, classes.fixed); + restoreScrollPosition(); + } + } + } + + /** + * Sets the name of the transition used to show/hide the dialog + * + * @param {Object} instance The dilog instance. + * + */ + function updateTransition(instance, value, oldValue){ + if(typeof oldValue === 'string'){ + removeClass(instance.elements.root,classes.prefix + oldValue); + } + addClass(instance.elements.root, classes.prefix + value); + reflow = instance.elements.root.offsetWidth; + } + + /** + * Toggles the dialog display mode + * + * @param {Object} instance The dilog instance. + * + * @return {undefined} + */ + function updateDisplayMode(instance){ + if(instance.get('modal')){ + + //make modal + removeClass(instance.elements.root, classes.modeless); + + //only if open + if(instance.isOpen()){ + unbindModelessEvents(instance); + + //in case a pinned modless dialog was made modal while open. + updateAbsPositionFix(instance); + + ensureNoOverflow(); + } + }else{ + //make modelss + addClass(instance.elements.root, classes.modeless); + + //only if open + if(instance.isOpen()){ + bindModelessEvents(instance); + + //in case pin/unpin was called while a modal is open + updateAbsPositionFix(instance); + + ensureNoOverflow(); + } + } + } + + /** + * Toggles the dialog basic view mode + * + * @param {Object} instance The dilog instance. + * + * @return {undefined} + */ + function updateBasicMode(instance){ + if (instance.get('basic')) { + // add class + addClass(instance.elements.root, classes.basic); + } else { + // remove class + removeClass(instance.elements.root, classes.basic); + } + } + + /** + * Toggles the dialog frameless view mode + * + * @param {Object} instance The dilog instance. + * + * @return {undefined} + */ + function updateFramelessMode(instance){ + if (instance.get('frameless')) { + // add class + addClass(instance.elements.root, classes.frameless); + } else { + // remove class + removeClass(instance.elements.root, classes.frameless); + } + } + + /** + * Helper: Brings the modeless dialog to front, attached to modeless dialogs. + * + * @param {Event} event Focus event + * @param {Object} instance The dilog instance. + * + * @return {undefined} + */ + function bringToFront(event, instance){ + + // Do not bring to front if preceeded by an open modal + var index = openDialogs.indexOf(instance); + for(var x=index+1;x<openDialogs.length;x+=1){ + if(openDialogs[x].isModal()){ + return; + } + } + + // Bring to front by making it the last child. + if(document.body.lastChild !== instance.elements.root){ + document.body.appendChild(instance.elements.root); + //also make sure its at the end of the list + openDialogs.splice(openDialogs.indexOf(instance),1); + openDialogs.push(instance); + setFocus(instance); + } + + return false; + } + + /** + * Helper: reflects dialogs options updates + * + * @param {Object} instance The dilog instance. + * @param {String} option The updated option name. + * + * @return {undefined} + */ + function optionUpdated(instance, option, oldValue, newValue){ + switch(option){ + case 'title': + instance.setHeader(newValue); + break; + case 'modal': + updateDisplayMode(instance); + break; + case 'basic': + updateBasicMode(instance); + break; + case 'frameless': + updateFramelessMode(instance); + break; + case 'pinned': + updatePinned(instance); + break; + case 'closable': + updateClosable(instance); + break; + case 'maximizable': + updateMaximizable(instance); + break; + case 'pinnable': + updatePinnable(instance); + break; + case 'movable': + updateMovable(instance); + break; + case 'resizable': + updateResizable(instance); + break; + case 'padding': + if(newValue){ + removeClass(instance.elements.root, classes.noPadding); + }else if(instance.elements.root.className.indexOf(classes.noPadding) < 0){ + addClass(instance.elements.root, classes.noPadding); + } + break; + case 'overflow': + if(newValue){ + removeClass(instance.elements.root, classes.noOverflow); + }else if(instance.elements.root.className.indexOf(classes.noOverflow) < 0){ + addClass(instance.elements.root, classes.noOverflow); + } + break; + case 'transition': + updateTransition(instance,newValue, oldValue); + break; + } + + // internal on option updated event + if(typeof instance.hooks.onupdate === 'function'){ + instance.hooks.onupdate.call(instance, option, oldValue, newValue); + } + } + + /** + * Helper: reflects dialogs options updates + * + * @param {Object} instance The dilog instance. + * @param {Object} obj The object to set/get a value on/from. + * @param {Function} callback The callback function to call if the key was found. + * @param {String|Object} key A string specifying a propery name or a collection of key value pairs. + * @param {Object} value Optional, the value associated with the key (in case it was a string). + * @param {String} option The updated option name. + * + * @return {Object} result object + * The result objects has an 'op' property, indicating of this is a SET or GET operation. + * GET: + * - found: a flag indicating if the key was found or not. + * - value: the property value. + * SET: + * - items: a list of key value pairs of the properties being set. + * each contains: + * - found: a flag indicating if the key was found or not. + * - key: the property key. + * - value: the property value. + */ + function update(instance, obj, callback, key, value){ + var result = {op:undefined, items: [] }; + if(typeof value === 'undefined' && typeof key === 'string') { + //get + result.op = 'get'; + if(obj.hasOwnProperty(key)){ + result.found = true; + result.value = obj[key]; + }else{ + result.found = false; + result.value = undefined; + } + } + else + { + var old; + //set + result.op = 'set'; + if(typeof key === 'object'){ + //set multiple + var args = key; + for (var prop in args) { + if (obj.hasOwnProperty(prop)) { + if(obj[prop] !== args[prop]){ + old = obj[prop]; + obj[prop] = args[prop]; + callback.call(instance,prop, old, args[prop]); + } + result.items.push({ 'key': prop, 'value': args[prop], 'found':true}); + }else{ + result.items.push({ 'key': prop, 'value': args[prop], 'found':false}); + } + } + } else if (typeof key === 'string'){ + //set single + if (obj.hasOwnProperty(key)) { + if(obj[key] !== value){ + old = obj[key]; + obj[key] = value; + callback.call(instance,key, old, value); + } + result.items.push({'key': key, 'value': value , 'found':true}); + + }else{ + result.items.push({'key': key, 'value': value , 'found':false}); + } + } else { + //invalid params + throw new Error('args must be a string or object'); + } + } + return result; + } + + + /** + * Triggers a close event. + * + * @param {Object} instance The dilog instance. + * + * @return {undefined} + */ + function triggerClose(instance) { + var found; + triggerCallback(instance, function (button) { + return found = (button.invokeOnClose === true); + }); + //none of the buttons registered as onclose callback + //close the dialog + if (!found && instance.isOpen()) { + instance.close(); + } + } + + /** + * Dialogs commands event handler, attached to the dialog commands element. + * + * @param {Event} event DOM event object. + * @param {Object} instance The dilog instance. + * + * @return {undefined} + */ + function commandsClickHandler(event, instance) { + var target = event.srcElement || event.target; + switch (target) { + case instance.elements.commands.pin: + if (!instance.isPinned()) { + pin(instance); + } else { + unpin(instance); + } + break; + case instance.elements.commands.maximize: + if (!instance.isMaximized()) { + maximize(instance); + } else { + restore(instance); + } + break; + case instance.elements.commands.close: + triggerClose(instance); + break; + } + return false; + } + + /** + * Helper: pins the modeless dialog. + * + * @param {Object} instance The dialog instance. + * + * @return {undefined} + */ + function pin(instance) { + //pin the dialog + instance.set('pinned', true); + } + + /** + * Helper: unpins the modeless dialog. + * + * @param {Object} instance The dilog instance. + * + * @return {undefined} + */ + function unpin(instance) { + //unpin the dialog + instance.set('pinned', false); + } + + + /** + * Helper: enlarges the dialog to fill the entire screen. + * + * @param {Object} instance The dilog instance. + * + * @return {undefined} + */ + function maximize(instance) { + // allow custom `onmaximize` method + dispatchEvent('onmaximize', instance); + //maximize the dialog + addClass(instance.elements.root, classes.maximized); + if (instance.isOpen()) { + ensureNoOverflow(); + } + // allow custom `onmaximized` method + dispatchEvent('onmaximized', instance); + } + + /** + * Helper: returns the dialog to its former size. + * + * @param {Object} instance The dilog instance. + * + * @return {undefined} + */ + function restore(instance) { + // allow custom `onrestore` method + dispatchEvent('onrestore', instance); + //maximize the dialog + removeClass(instance.elements.root, classes.maximized); + if (instance.isOpen()) { + ensureNoOverflow(); + } + // allow custom `onrestored` method + dispatchEvent('onrestored', instance); + } + + /** + * Show or hide the maximize box. + * + * @param {Object} instance The dilog instance. + * @param {Boolean} on True to add the behavior, removes it otherwise. + * + * @return {undefined} + */ + function updatePinnable(instance) { + if (instance.get('pinnable')) { + // add class + addClass(instance.elements.root, classes.pinnable); + } else { + // remove class + removeClass(instance.elements.root, classes.pinnable); + } + } + + /** + * Helper: Fixes the absolutly positioned modal div position. + * + * @param {Object} instance The dialog instance. + * + * @return {undefined} + */ + function addAbsPositionFix(instance) { + var scrollLeft = getScrollLeft(); + instance.elements.modal.style.marginTop = getScrollTop() + 'px'; + instance.elements.modal.style.marginLeft = scrollLeft + 'px'; + instance.elements.modal.style.marginRight = (-scrollLeft) + 'px'; + } + + /** + * Helper: Removes the absolutly positioned modal div position fix. + * + * @param {Object} instance The dialog instance. + * + * @return {undefined} + */ + function removeAbsPositionFix(instance) { + var marginTop = parseInt(instance.elements.modal.style.marginTop, 10); + var marginLeft = parseInt(instance.elements.modal.style.marginLeft, 10); + instance.elements.modal.style.marginTop = ''; + instance.elements.modal.style.marginLeft = ''; + instance.elements.modal.style.marginRight = ''; + + if (instance.isOpen()) { + var top = 0, + left = 0 + ; + if (instance.elements.dialog.style.top !== '') { + top = parseInt(instance.elements.dialog.style.top, 10); + } + instance.elements.dialog.style.top = (top + (marginTop - getScrollTop())) + 'px'; + + if (instance.elements.dialog.style.left !== '') { + left = parseInt(instance.elements.dialog.style.left, 10); + } + instance.elements.dialog.style.left = (left + (marginLeft - getScrollLeft())) + 'px'; + } + } + /** + * Helper: Adds/Removes the absolutly positioned modal div position fix based on its pinned setting. + * + * @param {Object} instance The dialog instance. + * + * @return {undefined} + */ + function updateAbsPositionFix(instance) { + // if modeless and unpinned add fix + if (!instance.get('modal') && !instance.get('pinned')) { + addAbsPositionFix(instance); + } else { + removeAbsPositionFix(instance); + } + } + /** + * Toggles the dialog position lock | modeless only. + * + * @param {Object} instance The dilog instance. + * @param {Boolean} on True to make it modal, false otherwise. + * + * @return {undefined} + */ + function updatePinned(instance) { + if (instance.get('pinned')) { + removeClass(instance.elements.root, classes.unpinned); + if (instance.isOpen()) { + removeAbsPositionFix(instance); + } + } else { + addClass(instance.elements.root, classes.unpinned); + if (instance.isOpen() && !instance.isModal()) { + addAbsPositionFix(instance); + } + } + } + + /** + * Show or hide the maximize box. + * + * @param {Object} instance The dilog instance. + * @param {Boolean} on True to add the behavior, removes it otherwise. + * + * @return {undefined} + */ + function updateMaximizable(instance) { + if (instance.get('maximizable')) { + // add class + addClass(instance.elements.root, classes.maximizable); + } else { + // remove class + removeClass(instance.elements.root, classes.maximizable); + } + } + + /** + * Show or hide the close box. + * + * @param {Object} instance The dilog instance. + * @param {Boolean} on True to add the behavior, removes it otherwise. + * + * @return {undefined} + */ + function updateClosable(instance) { + if (instance.get('closable')) { + // add class + addClass(instance.elements.root, classes.closable); + bindClosableEvents(instance); + } else { + // remove class + removeClass(instance.elements.root, classes.closable); + unbindClosableEvents(instance); + } + } + + + var cancelClick = false,// flag to cancel click event if already handled by end resize event (the mousedown, mousemove, mouseup sequence fires a click event.). + modalClickHandlerTS=0 // stores last click timestamp to prevent executing the handler twice on double click. + ; + + /** + * Helper: closes the modal dialog when clicking the modal + * + * @param {Event} event DOM event object. + * @param {Object} instance The dilog instance. + * + * @return {undefined} + */ + function modalClickHandler(event, instance) { + if(event.timeStamp - modalClickHandlerTS > 200 && (modalClickHandlerTS = event.timeStamp) && !cancelClick){ + var target = event.srcElement || event.target; + if (instance.get('closableByDimmer') === true && target === instance.elements.modal) { + triggerClose(instance); + } + cancelClick = false; + return false; + } + } + + // stores last call timestamp to prevent triggering the callback twice. + var callbackTS = 0; + // flag to cancel keyup event if already handled by click event (pressing Enter on a focusted button). + var cancelKeyup = false; + /** + * Helper: triggers a button callback + * + * @param {Object} The dilog instance. + * @param {Function} Callback to check which button triggered the event. + * + * @return {undefined} + */ + function triggerCallback(instance, check) { + if(Date.now() - callbackTS > 200 && (callbackTS = Date.now())){ + for (var idx = 0; idx < instance.__internal.buttons.length; idx += 1) { + var button = instance.__internal.buttons[idx]; + if (!button.element.disabled && check(button)) { + var closeEvent = createCloseEvent(idx, button); + if (typeof instance.callback === 'function') { + instance.callback.apply(instance, [closeEvent]); + } + //close the dialog only if not canceled. + if (closeEvent.cancel === false) { + instance.close(); + } + break; + } + } + } + } + + /** + * Clicks event handler, attached to the dialog footer. + * + * @param {Event} DOM event object. + * @param {Object} The dilog instance. + * + * @return {undefined} + */ + function buttonsClickHandler(event, instance) { + var target = event.srcElement || event.target; + triggerCallback(instance, function (button) { + // if this button caused the click, cancel keyup event + return button.element === target && (cancelKeyup = true); + }); + } + + /** + * Keyup event handler, attached to the document.body + * + * @param {Event} DOM event object. + * @param {Object} The dilog instance. + * + * @return {undefined} + */ + function keyupHandler(event) { + //hitting enter while button has focus will trigger keyup too. + //ignore if handled by clickHandler + if (cancelKeyup) { + cancelKeyup = false; + return; + } + var instance = openDialogs[openDialogs.length - 1]; + var keyCode = event.keyCode; + if (instance.__internal.buttons.length === 0 && keyCode === keys.ESC && instance.get('closable') === true) { + triggerClose(instance); + return false; + }else if (usedKeys.indexOf(keyCode) > -1) { + triggerCallback(instance, function (button) { + return button.key === keyCode; + }); + return false; + } + } + /** + * Keydown event handler, attached to the document.body + * + * @param {Event} DOM event object. + * @param {Object} The dilog instance. + * + * @return {undefined} + */ + function keydownHandler(event) { + var instance = openDialogs[openDialogs.length - 1]; + var keyCode = event.keyCode; + if (keyCode === keys.LEFT || keyCode === keys.RIGHT) { + var buttons = instance.__internal.buttons; + for (var x = 0; x < buttons.length; x += 1) { + if (document.activeElement === buttons[x].element) { + switch (keyCode) { + case keys.LEFT: + buttons[(x || buttons.length) - 1].element.focus(); + return; + case keys.RIGHT: + buttons[(x + 1) % buttons.length].element.focus(); + return; + } + } + } + }else if (keyCode < keys.F12 + 1 && keyCode > keys.F1 - 1 && usedKeys.indexOf(keyCode) > -1) { + event.preventDefault(); + event.stopPropagation(); + triggerCallback(instance, function (button) { + return button.key === keyCode; + }); + return false; + } + } + + + /** + * Sets focus to proper dialog element + * + * @param {Object} instance The dilog instance. + * @param {Node} [resetTarget=undefined] DOM element to reset focus to. + * + * @return {undefined} + */ + function setFocus(instance, resetTarget) { + // reset target has already been determined. + if (resetTarget) { + resetTarget.focus(); + } else { + // current instance focus settings + var focus = instance.__internal.focus; + // the focus element. + var element = focus.element; + + switch (typeof focus.element) { + // a number means a button index + case 'number': + if (instance.__internal.buttons.length > focus.element) { + //in basic view, skip focusing the buttons. + if (instance.get('basic') === true) { + element = instance.elements.reset[0]; + } else { + element = instance.__internal.buttons[focus.element].element; + } + } + break; + // a string means querySelector to select from dialog body contents. + case 'string': + element = instance.elements.body.querySelector(focus.element); + break; + // a function should return the focus element. + case 'function': + element = focus.element.call(instance); + break; + } + + // if no focus element, default to first reset element. + if ((typeof element === 'undefined' || element === null) && instance.__internal.buttons.length === 0) { + element = instance.elements.reset[0]; + } + // focus + if (element && element.focus) { + element.focus(); + // if selectable + if (focus.select && element.select) { + element.select(); + } + } + } + } + + /** + * Focus event handler, attached to document.body and dialogs own reset links. + * handles the focus for modal dialogs only. + * + * @param {Event} event DOM focus event object. + * @param {Object} instance The dilog instance. + * + * @return {undefined} + */ + function onReset(event, instance) { + + // should work on last modal if triggered from document.body + if (!instance) { + for (var x = openDialogs.length - 1; x > -1; x -= 1) { + if (openDialogs[x].isModal()) { + instance = openDialogs[x]; + break; + } + } + } + // if modal + if (instance && instance.isModal()) { + // determine reset target to enable forward/backward tab cycle. + var resetTarget, target = event.srcElement || event.target; + var lastResetElement = target === instance.elements.reset[1] || (instance.__internal.buttons.length === 0 && target === document.body); + + // if last reset link, then go to maximize or close + if (lastResetElement) { + if (instance.get('maximizable')) { + resetTarget = instance.elements.commands.maximize; + } else if (instance.get('closable')) { + resetTarget = instance.elements.commands.close; + } + } + // if no reset target found, try finding the best button + if (resetTarget === undefined) { + if (typeof instance.__internal.focus.element === 'number') { + // button focus element, go to first available button + if (target === instance.elements.reset[0]) { + resetTarget = instance.elements.buttons.auxiliary.firstChild || instance.elements.buttons.primary.firstChild; + } else if (lastResetElement) { + //restart the cycle by going to first reset link + resetTarget = instance.elements.reset[0]; + } + } else { + // will reach here when tapping backwards, so go to last child + // The focus element SHOULD NOT be a button (logically!). + if (target === instance.elements.reset[0]) { + resetTarget = instance.elements.buttons.primary.lastChild || instance.elements.buttons.auxiliary.lastChild; + } + } + } + // focus + setFocus(instance, resetTarget); + } + } + /** + * Transition in transitionend event handler. + * + * @param {Event} TransitionEnd event object. + * @param {Object} The dilog instance. + * + * @return {undefined} + */ + function handleTransitionInEvent(event, instance) { + // clear the timer + clearTimeout(instance.__internal.timerIn); + + // once transition is complete, set focus + setFocus(instance); + + //restore scroll to prevent document jump + restoreScrollPosition(); + + // allow handling key up after transition ended. + cancelKeyup = false; + + // allow custom `onfocus` method + dispatchEvent('onfocus', instance); + + // unbind the event + off(instance.elements.dialog, transition.type, instance.__internal.transitionInHandler); + + removeClass(instance.elements.root, classes.animationIn); + } + + /** + * Transition out transitionend event handler. + * + * @param {Event} TransitionEnd event object. + * @param {Object} The dilog instance. + * + * @return {undefined} + */ + function handleTransitionOutEvent(event, instance) { + // clear the timer + clearTimeout(instance.__internal.timerOut); + // unbind the event + off(instance.elements.dialog, transition.type, instance.__internal.transitionOutHandler); + + // reset move updates + resetMove(instance); + // reset resize updates + resetResize(instance); + + // restore if maximized + if (instance.isMaximized() && !instance.get('startMaximized')) { + restore(instance); + } + + // return focus to the last active element + if (alertify.defaults.maintainFocus && instance.__internal.activeElement) { + instance.__internal.activeElement.focus(); + instance.__internal.activeElement = null; + } + + //destory the instance + if (typeof instance.__internal.destroy === 'function') { + instance.__internal.destroy.apply(instance); + } + } + /* Controls moving a dialog around */ + //holde the current moving instance + var movable = null, + //holds the current X offset when move starts + offsetX = 0, + //holds the current Y offset when move starts + offsetY = 0, + xProp = 'pageX', + yProp = 'pageY', + bounds = null, + refreshTop = false, + moveDelegate = null + ; + + /** + * Helper: sets the element top/left coordinates + * + * @param {Event} event DOM event object. + * @param {Node} element The element being moved. + * + * @return {undefined} + */ + function moveElement(event, element) { + var left = (event[xProp] - offsetX), + top = (event[yProp] - offsetY); + + if(refreshTop){ + top -= document.body.scrollTop; + } + + element.style.left = left + 'px'; + element.style.top = top + 'px'; + + } + /** + * Helper: sets the element top/left coordinates within screen bounds + * + * @param {Event} event DOM event object. + * @param {Node} element The element being moved. + * + * @return {undefined} + */ + function moveElementBounded(event, element) { + var left = (event[xProp] - offsetX), + top = (event[yProp] - offsetY); + + if(refreshTop){ + top -= document.body.scrollTop; + } + + element.style.left = Math.min(bounds.maxLeft, Math.max(bounds.minLeft, left)) + 'px'; + if(refreshTop){ + element.style.top = Math.min(bounds.maxTop, Math.max(bounds.minTop, top)) + 'px'; + }else{ + element.style.top = Math.max(bounds.minTop, top) + 'px'; + } + } + + + /** + * Triggers the start of a move event, attached to the header element mouse down event. + * Adds no-selection class to the body, disabling selection while moving. + * + * @param {Event} event DOM event object. + * @param {Object} instance The dilog instance. + * + * @return {Boolean} false + */ + function beginMove(event, instance) { + if (resizable === null && !instance.isMaximized() && instance.get('movable')) { + var eventSrc, left=0, top=0; + if (event.type === 'touchstart') { + event.preventDefault(); + eventSrc = event.targetTouches[0]; + xProp = 'clientX'; + yProp = 'clientY'; + } else if (event.button === 0) { + eventSrc = event; + } + + if (eventSrc) { + + var element = instance.elements.dialog; + addClass(element, classes.capture); + + if (element.style.left) { + left = parseInt(element.style.left, 10); + } + + if (element.style.top) { + top = parseInt(element.style.top, 10); + } + + offsetX = eventSrc[xProp] - left; + offsetY = eventSrc[yProp] - top; + + if(instance.isModal()){ + offsetY += instance.elements.modal.scrollTop; + }else if(instance.isPinned()){ + offsetY -= document.body.scrollTop; + } + + if(instance.get('moveBounded')){ + var current = element, + offsetLeft = -left, + offsetTop = -top; + + //calc offset + do { + offsetLeft += current.offsetLeft; + offsetTop += current.offsetTop; + } while (current = current.offsetParent); + + bounds = { + maxLeft : offsetLeft, + minLeft : -offsetLeft, + maxTop : document.documentElement.clientHeight - element.clientHeight - offsetTop, + minTop : -offsetTop + }; + moveDelegate = moveElementBounded; + }else{ + bounds = null; + moveDelegate = moveElement; + } + + // allow custom `onmove` method + dispatchEvent('onmove', instance); + + refreshTop = !instance.isModal() && instance.isPinned(); + movable = instance; + moveDelegate(eventSrc, element); + addClass(document.body, classes.noSelection); + return false; + } + } + } + + /** + * The actual move handler, attached to document.body mousemove event. + * + * @param {Event} event DOM event object. + * + * @return {undefined} + */ + function move(event) { + if (movable) { + var eventSrc; + if (event.type === 'touchmove') { + event.preventDefault(); + eventSrc = event.targetTouches[0]; + } else if (event.button === 0) { + eventSrc = event; + } + if (eventSrc) { + moveDelegate(eventSrc, movable.elements.dialog); + } + } + } + + /** + * Triggers the end of a move event, attached to document.body mouseup event. + * Removes no-selection class from document.body, allowing selection. + * + * @return {undefined} + */ + function endMove() { + if (movable) { + var instance = movable; + movable = bounds = null; + removeClass(document.body, classes.noSelection); + removeClass(instance.elements.dialog, classes.capture); + // allow custom `onmoved` method + dispatchEvent('onmoved', instance); + } + } + + /** + * Resets any changes made by moving the element to its original state, + * + * @param {Object} instance The dilog instance. + * + * @return {undefined} + */ + function resetMove(instance) { + movable = null; + var element = instance.elements.dialog; + element.style.left = element.style.top = ''; + } + + /** + * Updates the dialog move behavior. + * + * @param {Object} instance The dilog instance. + * @param {Boolean} on True to add the behavior, removes it otherwise. + * + * @return {undefined} + */ + function updateMovable(instance) { + if (instance.get('movable')) { + // add class + addClass(instance.elements.root, classes.movable); + if (instance.isOpen()) { + bindMovableEvents(instance); + } + } else { + + //reset + resetMove(instance); + // remove class + removeClass(instance.elements.root, classes.movable); + if (instance.isOpen()) { + unbindMovableEvents(instance); + } + } + } + + /* Controls moving a dialog around */ + //holde the current instance being resized + var resizable = null, + //holds the staring left offset when resize starts. + startingLeft = Number.Nan, + //holds the staring width when resize starts. + startingWidth = 0, + //holds the initial width when resized for the first time. + minWidth = 0, + //holds the offset of the resize handle. + handleOffset = 0 + ; + + /** + * Helper: sets the element width/height and updates left coordinate if neccessary. + * + * @param {Event} event DOM mousemove event object. + * @param {Node} element The element being moved. + * @param {Boolean} pinned A flag indicating if the element being resized is pinned to the screen. + * + * @return {undefined} + */ + function resizeElement(event, element, pageRelative) { + + //calculate offsets from 0,0 + var current = element; + var offsetLeft = 0; + var offsetTop = 0; + do { + offsetLeft += current.offsetLeft; + offsetTop += current.offsetTop; + } while (current = current.offsetParent); + + // determine X,Y coordinates. + var X, Y; + if (pageRelative === true) { + X = event.pageX; + Y = event.pageY; + } else { + X = event.clientX; + Y = event.clientY; + } + // rtl handling + var isRTL = isRightToLeft(); + if (isRTL) { + // reverse X + X = document.body.offsetWidth - X; + // if has a starting left, calculate offsetRight + if (!isNaN(startingLeft)) { + offsetLeft = document.body.offsetWidth - offsetLeft - element.offsetWidth; + } + } + + // set width/height + element.style.height = (Y - offsetTop + handleOffset) + 'px'; + element.style.width = (X - offsetLeft + handleOffset) + 'px'; + + // if the element being resized has a starting left, maintain it. + // the dialog is centered, divide by half the offset to maintain the margins. + if (!isNaN(startingLeft)) { + var diff = Math.abs(element.offsetWidth - startingWidth) * 0.5; + if (isRTL) { + //negate the diff, why? + //when growing it should decrease left + //when shrinking it should increase left + diff *= -1; + } + if (element.offsetWidth > startingWidth) { + //growing + element.style.left = (startingLeft + diff) + 'px'; + } else if (element.offsetWidth >= minWidth) { + //shrinking + element.style.left = (startingLeft - diff) + 'px'; + } + } + } + + /** + * Triggers the start of a resize event, attached to the resize handle element mouse down event. + * Adds no-selection class to the body, disabling selection while moving. + * + * @param {Event} event DOM event object. + * @param {Object} instance The dilog instance. + * + * @return {Boolean} false + */ + function beginResize(event, instance) { + if (!instance.isMaximized()) { + var eventSrc; + if (event.type === 'touchstart') { + event.preventDefault(); + eventSrc = event.targetTouches[0]; + } else if (event.button === 0) { + eventSrc = event; + } + if (eventSrc) { + // allow custom `onresize` method + dispatchEvent('onresize', instance); + + resizable = instance; + handleOffset = instance.elements.resizeHandle.offsetHeight / 2; + var element = instance.elements.dialog; + addClass(element, classes.capture); + startingLeft = parseInt(element.style.left, 10); + element.style.height = element.offsetHeight + 'px'; + element.style.minHeight = instance.elements.header.offsetHeight + instance.elements.footer.offsetHeight + 'px'; + element.style.width = (startingWidth = element.offsetWidth) + 'px'; + + if (element.style.maxWidth !== 'none') { + element.style.minWidth = (minWidth = element.offsetWidth) + 'px'; + } + element.style.maxWidth = 'none'; + addClass(document.body, classes.noSelection); + return false; + } + } + } + + /** + * The actual resize handler, attached to document.body mousemove event. + * + * @param {Event} event DOM event object. + * + * @return {undefined} + */ + function resize(event) { + if (resizable) { + var eventSrc; + if (event.type === 'touchmove') { + event.preventDefault(); + eventSrc = event.targetTouches[0]; + } else if (event.button === 0) { + eventSrc = event; + } + if (eventSrc) { + resizeElement(eventSrc, resizable.elements.dialog, !resizable.get('modal') && !resizable.get('pinned')); + } + } + } + + /** + * Triggers the end of a resize event, attached to document.body mouseup event. + * Removes no-selection class from document.body, allowing selection. + * + * @return {undefined} + */ + function endResize() { + if (resizable) { + var instance = resizable; + resizable = null; + removeClass(document.body, classes.noSelection); + removeClass(instance.elements.dialog, classes.capture); + cancelClick = true; + // allow custom `onresized` method + dispatchEvent('onresized', instance); + } + } + + /** + * Resets any changes made by resizing the element to its original state. + * + * @param {Object} instance The dilog instance. + * + * @return {undefined} + */ + function resetResize(instance) { + resizable = null; + var element = instance.elements.dialog; + if (element.style.maxWidth === 'none') { + //clear inline styles. + element.style.maxWidth = element.style.minWidth = element.style.width = element.style.height = element.style.minHeight = element.style.left = ''; + //reset variables. + startingLeft = Number.Nan; + startingWidth = minWidth = handleOffset = 0; + } + } + + + /** + * Updates the dialog move behavior. + * + * @param {Object} instance The dilog instance. + * @param {Boolean} on True to add the behavior, removes it otherwise. + * + * @return {undefined} + */ + function updateResizable(instance) { + if (instance.get('resizable')) { + // add class + addClass(instance.elements.root, classes.resizable); + if (instance.isOpen()) { + bindResizableEvents(instance); + } + } else { + //reset + resetResize(instance); + // remove class + removeClass(instance.elements.root, classes.resizable); + if (instance.isOpen()) { + unbindResizableEvents(instance); + } + } + } + + /** + * Reset move/resize on window resize. + * + * @param {Event} event window resize event object. + * + * @return {undefined} + */ + function windowResize(/*event*/) { + for (var x = 0; x < openDialogs.length; x += 1) { + var instance = openDialogs[x]; + if (instance.get('autoReset')) { + resetMove(instance); + resetResize(instance); + } + } + } + /** + * Bind dialogs events + * + * @param {Object} instance The dilog instance. + * + * @return {undefined} + */ + function bindEvents(instance) { + // if first dialog, hook global handlers + if (openDialogs.length === 1) { + //global + on(window, 'resize', windowResize); + on(document.body, 'keyup', keyupHandler); + on(document.body, 'keydown', keydownHandler); + on(document.body, 'focus', onReset); + + //move + on(document.documentElement, 'mousemove', move); + on(document.documentElement, 'touchmove', move); + on(document.documentElement, 'mouseup', endMove); + on(document.documentElement, 'touchend', endMove); + //resize + on(document.documentElement, 'mousemove', resize); + on(document.documentElement, 'touchmove', resize); + on(document.documentElement, 'mouseup', endResize); + on(document.documentElement, 'touchend', endResize); + } + + // common events + on(instance.elements.commands.container, 'click', instance.__internal.commandsClickHandler); + on(instance.elements.footer, 'click', instance.__internal.buttonsClickHandler); + on(instance.elements.reset[0], 'focus', instance.__internal.resetHandler); + on(instance.elements.reset[1], 'focus', instance.__internal.resetHandler); + + //prevent handling key up when dialog is being opened by a key stroke. + cancelKeyup = true; + // hook in transition handler + on(instance.elements.dialog, transition.type, instance.__internal.transitionInHandler); + + // modelss only events + if (!instance.get('modal')) { + bindModelessEvents(instance); + } + + // resizable + if (instance.get('resizable')) { + bindResizableEvents(instance); + } + + // movable + if (instance.get('movable')) { + bindMovableEvents(instance); + } + } + + /** + * Unbind dialogs events + * + * @param {Object} instance The dilog instance. + * + * @return {undefined} + */ + function unbindEvents(instance) { + // if last dialog, remove global handlers + if (openDialogs.length === 1) { + //global + off(window, 'resize', windowResize); + off(document.body, 'keyup', keyupHandler); + off(document.body, 'keydown', keydownHandler); + off(document.body, 'focus', onReset); + //move + off(document.documentElement, 'mousemove', move); + off(document.documentElement, 'mouseup', endMove); + //resize + off(document.documentElement, 'mousemove', resize); + off(document.documentElement, 'mouseup', endResize); + } + + // common events + off(instance.elements.commands.container, 'click', instance.__internal.commandsClickHandler); + off(instance.elements.footer, 'click', instance.__internal.buttonsClickHandler); + off(instance.elements.reset[0], 'focus', instance.__internal.resetHandler); + off(instance.elements.reset[1], 'focus', instance.__internal.resetHandler); + + // hook out transition handler + on(instance.elements.dialog, transition.type, instance.__internal.transitionOutHandler); + + // modelss only events + if (!instance.get('modal')) { + unbindModelessEvents(instance); + } + + // movable + if (instance.get('movable')) { + unbindMovableEvents(instance); + } + + // resizable + if (instance.get('resizable')) { + unbindResizableEvents(instance); + } + + } + + /** + * Bind modeless specific events + * + * @param {Object} instance The dilog instance. + * + * @return {undefined} + */ + function bindModelessEvents(instance) { + on(instance.elements.dialog, 'focus', instance.__internal.bringToFrontHandler, true); + } + + /** + * Unbind modeless specific events + * + * @param {Object} instance The dilog instance. + * + * @return {undefined} + */ + function unbindModelessEvents(instance) { + off(instance.elements.dialog, 'focus', instance.__internal.bringToFrontHandler, true); + } + + + + /** + * Bind movable specific events + * + * @param {Object} instance The dilog instance. + * + * @return {undefined} + */ + function bindMovableEvents(instance) { + on(instance.elements.header, 'mousedown', instance.__internal.beginMoveHandler); + on(instance.elements.header, 'touchstart', instance.__internal.beginMoveHandler); + } + + /** + * Unbind movable specific events + * + * @param {Object} instance The dilog instance. + * + * @return {undefined} + */ + function unbindMovableEvents(instance) { + off(instance.elements.header, 'mousedown', instance.__internal.beginMoveHandler); + off(instance.elements.header, 'touchstart', instance.__internal.beginMoveHandler); + } + + + + /** + * Bind resizable specific events + * + * @param {Object} instance The dilog instance. + * + * @return {undefined} + */ + function bindResizableEvents(instance) { + on(instance.elements.resizeHandle, 'mousedown', instance.__internal.beginResizeHandler); + on(instance.elements.resizeHandle, 'touchstart', instance.__internal.beginResizeHandler); + } + + /** + * Unbind resizable specific events + * + * @param {Object} instance The dilog instance. + * + * @return {undefined} + */ + function unbindResizableEvents(instance) { + off(instance.elements.resizeHandle, 'mousedown', instance.__internal.beginResizeHandler); + off(instance.elements.resizeHandle, 'touchstart', instance.__internal.beginResizeHandler); + } + + /** + * Bind closable events + * + * @param {Object} instance The dilog instance. + * + * @return {undefined} + */ + function bindClosableEvents(instance) { + on(instance.elements.modal, 'click', instance.__internal.modalClickHandler); + } + + /** + * Unbind closable specific events + * + * @param {Object} instance The dilog instance. + * + * @return {undefined} + */ + function unbindClosableEvents(instance) { + off(instance.elements.modal, 'click', instance.__internal.modalClickHandler); + } + // dialog API + return { + __init:initialize, + /** + * Check if dialog is currently open + * + * @return {Boolean} + */ + isOpen: function () { + return this.__internal.isOpen; + }, + isModal: function (){ + return this.elements.root.className.indexOf(classes.modeless) < 0; + }, + isMaximized:function(){ + return this.elements.root.className.indexOf(classes.maximized) > -1; + }, + isPinned:function(){ + return this.elements.root.className.indexOf(classes.unpinned) < 0; + }, + maximize:function(){ + if(!this.isMaximized()){ + maximize(this); + } + return this; + }, + restore:function(){ + if(this.isMaximized()){ + restore(this); + } + return this; + }, + pin:function(){ + if(!this.isPinned()){ + pin(this); + } + return this; + }, + unpin:function(){ + if(this.isPinned()){ + unpin(this); + } + return this; + }, + bringToFront:function(){ + bringToFront(null, this); + return this; + }, + /** + * Move the dialog to a specific x/y coordinates + * + * @param {Number} x The new dialog x coordinate in pixels. + * @param {Number} y The new dialog y coordinate in pixels. + * + * @return {Object} The dialog instance. + */ + moveTo:function(x,y){ + if(!isNaN(x) && !isNaN(y)){ + // allow custom `onmove` method + dispatchEvent('onmove', this); + + var element = this.elements.dialog, + current = element, + offsetLeft = 0, + offsetTop = 0; + + //subtract existing left,top + if (element.style.left) { + offsetLeft -= parseInt(element.style.left, 10); + } + if (element.style.top) { + offsetTop -= parseInt(element.style.top, 10); + } + //calc offset + do { + offsetLeft += current.offsetLeft; + offsetTop += current.offsetTop; + } while (current = current.offsetParent); + + //calc left, top + var left = (x - offsetLeft); + var top = (y - offsetTop); + + //// rtl handling + if (isRightToLeft()) { + left *= -1; + } + + element.style.left = left + 'px'; + element.style.top = top + 'px'; + + // allow custom `onmoved` method + dispatchEvent('onmoved', this); + } + return this; + }, + /** + * Resize the dialog to a specific width/height (the dialog must be 'resizable'). + * The dialog can be resized to: + * A minimum width equal to the initial display width + * A minimum height equal to the sum of header/footer heights. + * + * + * @param {Number or String} width The new dialog width in pixels or in percent. + * @param {Number or String} height The new dialog height in pixels or in percent. + * + * @return {Object} The dialog instance. + */ + resizeTo:function(width,height){ + var w = parseFloat(width), + h = parseFloat(height), + regex = /(\d*\.\d+|\d+)%/ + ; + + if(!isNaN(w) && !isNaN(h) && this.get('resizable') === true){ + + // allow custom `onresize` method + dispatchEvent('onresize', this); + + if(('' + width).match(regex)){ + w = w / 100 * document.documentElement.clientWidth ; + } + + if(('' + height).match(regex)){ + h = h / 100 * document.documentElement.clientHeight; + } + + var element = this.elements.dialog; + if (element.style.maxWidth !== 'none') { + element.style.minWidth = (minWidth = element.offsetWidth) + 'px'; + } + element.style.maxWidth = 'none'; + element.style.minHeight = this.elements.header.offsetHeight + this.elements.footer.offsetHeight + 'px'; + element.style.width = w + 'px'; + element.style.height = h + 'px'; + + // allow custom `onresized` method + dispatchEvent('onresized', this); + } + return this; + }, + /** + * Gets or Sets dialog settings/options + * + * @param {String|Object} key A string specifying a propery name or a collection of key/value pairs. + * @param {Object} value Optional, the value associated with the key (in case it was a string). + * + * @return {undefined} + */ + setting : function (key, value) { + var self = this; + var result = update(this, this.__internal.options, function(k,o,n){ optionUpdated(self,k,o,n); }, key, value); + if(result.op === 'get'){ + if(result.found){ + return result.value; + }else if(typeof this.settings !== 'undefined'){ + return update(this, this.settings, this.settingUpdated || function(){}, key, value).value; + }else{ + return undefined; + } + }else if(result.op === 'set'){ + if(result.items.length > 0){ + var callback = this.settingUpdated || function(){}; + for(var x=0;x<result.items.length;x+=1){ + var item = result.items[x]; + if(!item.found && typeof this.settings !== 'undefined'){ + update(this, this.settings, callback, item.key, item.value); + } + } + } + return this; + } + }, + /** + * [Alias] Sets dialog settings/options + */ + set:function(key, value){ + this.setting(key,value); + return this; + }, + /** + * [Alias] Gets dialog settings/options + */ + get:function(key){ + return this.setting(key); + }, + /** + * Sets dialog header + * @content {string or element} + * + * @return {undefined} + */ + setHeader:function(content){ + if(typeof content === 'string'){ + clearContents(this.elements.header); + this.elements.header.innerHTML = content; + }else if (content instanceof window.HTMLElement && this.elements.header.firstChild !== content){ + clearContents(this.elements.header); + this.elements.header.appendChild(content); + } + return this; + }, + /** + * Sets dialog contents + * @content {string or element} + * + * @return {undefined} + */ + setContent:function(content){ + if(typeof content === 'string'){ + clearContents(this.elements.content); + this.elements.content.innerHTML = content; + }else if (content instanceof window.HTMLElement && this.elements.content.firstChild !== content){ + clearContents(this.elements.content); + this.elements.content.appendChild(content); + } + return this; + }, + /** + * Show the dialog as modal + * + * @return {Object} the dialog instance. + */ + showModal: function(className){ + return this.show(true, className); + }, + /** + * Show the dialog + * + * @return {Object} the dialog instance. + */ + show: function (modal, className) { + + // ensure initialization + initialize(this); + + if ( !this.__internal.isOpen ) { + + // add to open dialogs + this.__internal.isOpen = true; + openDialogs.push(this); + + // save last focused element + if(alertify.defaults.maintainFocus){ + this.__internal.activeElement = document.activeElement; + } + + // set tabindex attribute on body element this allows script to give it focusable + if(!document.body.hasAttribute('tabindex')) { + document.body.setAttribute( 'tabindex', tabindex = '0'); + } + + //allow custom dom manipulation updates before showing the dialog. + if(typeof this.prepare === 'function'){ + this.prepare(); + } + + bindEvents(this); + + if(modal !== undefined){ + this.set('modal', modal); + } + + //save scroll to prevent document jump + saveScrollPosition(); + + ensureNoOverflow(); + + // allow custom dialog class on show + if(typeof className === 'string' && className !== ''){ + this.__internal.className = className; + addClass(this.elements.root, className); + } + + // maximize if start maximized + if ( this.get('startMaximized')) { + this.maximize(); + }else if(this.isMaximized()){ + restore(this); + } + + updateAbsPositionFix(this); + this.elements.root.removeAttribute('style'); + removeClass(this.elements.root, classes.animationOut); + addClass(this.elements.root, classes.animationIn); + + // set 1s fallback in case transition event doesn't fire + clearTimeout( this.__internal.timerIn); + this.__internal.timerIn = setTimeout( this.__internal.transitionInHandler, transition.supported ? 1000 : 100 ); + + if(isSafari){ + // force desktop safari reflow + var root = this.elements.root; + root.style.display = 'none'; + setTimeout(function(){root.style.display = 'block';}, 0); + } + + //reflow + reflow = this.elements.root.offsetWidth; + + // show dialog + removeClass(this.elements.root, classes.hidden); + + // internal on show event + if(typeof this.hooks.onshow === 'function'){ + this.hooks.onshow.call(this); + } + + // allow custom `onshow` method + dispatchEvent('onshow', this); + + }else{ + // reset move updates + resetMove(this); + // reset resize updates + resetResize(this); + // shake the dialog to indicate its already open + addClass(this.elements.dialog, classes.shake); + var self = this; + setTimeout(function(){ + removeClass(self.elements.dialog, classes.shake); + },200); + } + return this; + }, + /** + * Close the dialog + * + * @return {Object} The dialog instance + */ + close: function () { + if (this.__internal.isOpen ) { + // custom `onclosing` event + if(dispatchEvent('onclosing', this) !== false){ + + unbindEvents(this); + + removeClass(this.elements.root, classes.animationIn); + addClass(this.elements.root, classes.animationOut); + + // set 1s fallback in case transition event doesn't fire + clearTimeout( this.__internal.timerOut ); + this.__internal.timerOut = setTimeout( this.__internal.transitionOutHandler, transition.supported ? 1000 : 100 ); + // hide dialog + addClass(this.elements.root, classes.hidden); + //reflow + reflow = this.elements.modal.offsetWidth; + + // remove custom dialog class on hide + if (typeof this.__internal.className !== 'undefined' && this.__internal.className !== '') { + removeClass(this.elements.root, this.__internal.className); + } + + // internal on close event + if(typeof this.hooks.onclose === 'function'){ + this.hooks.onclose.call(this); + } + + // allow custom `onclose` method + dispatchEvent('onclose', this); + + //remove from open dialogs + openDialogs.splice(openDialogs.indexOf(this),1); + this.__internal.isOpen = false; + + ensureNoOverflow(); + } + + } + // last dialog and tab index was set by us, remove it. + if(!openDialogs.length && tabindex === '0'){ + document.body.removeAttribute('tabindex'); + } + return this; + }, + /** + * Close all open dialogs except this. + * + * @return {undefined} + */ + closeOthers:function(){ + alertify.closeAll(this); + return this; + }, + /** + * Destroys this dialog instance + * + * @return {undefined} + */ + destroy:function(){ + if(this.__internal) { + if (this.__internal.isOpen ) { + //mark dialog for destruction, this will be called on tranistionOut event. + this.__internal.destroy = function(){ + destruct(this, initialize); + }; + //close the dialog to unbind all events. + this.close(); + }else if(!this.__internal.destroy){ + destruct(this, initialize); + } + } + return this; + }, + }; + } () ); + var notifier = (function () { + var reflow, + element, + openInstances = [], + classes = { + base: 'alertify-notifier', + message: 'ajs-message', + top: 'ajs-top', + right: 'ajs-right', + bottom: 'ajs-bottom', + left: 'ajs-left', + center: 'ajs-center', + visible: 'ajs-visible', + hidden: 'ajs-hidden', + close: 'ajs-close' + }; + /** + * Helper: initializes the notifier instance + * + */ + function initialize(instance) { + + if (!instance.__internal) { + instance.__internal = { + position: alertify.defaults.notifier.position, + delay: alertify.defaults.notifier.delay, + }; + + element = document.createElement('DIV'); + + updatePosition(instance); + } + + //add to DOM tree. + if (element.parentNode !== document.body) { + document.body.appendChild(element); + } + } + + function pushInstance(instance) { + instance.__internal.pushed = true; + openInstances.push(instance); + } + function popInstance(instance) { + openInstances.splice(openInstances.indexOf(instance), 1); + instance.__internal.pushed = false; + } + /** + * Helper: update the notifier instance position + * + */ + function updatePosition(instance) { + element.className = classes.base; + switch (instance.__internal.position) { + case 'top-right': + addClass(element, classes.top + ' ' + classes.right); + break; + case 'top-left': + addClass(element, classes.top + ' ' + classes.left); + break; + case 'top-center': + addClass(element, classes.top + ' ' + classes.center); + break; + case 'bottom-left': + addClass(element, classes.bottom + ' ' + classes.left); + break; + case 'bottom-center': + addClass(element, classes.bottom + ' ' + classes.center); + break; + + default: + case 'bottom-right': + addClass(element, classes.bottom + ' ' + classes.right); + break; + } + } + + /** + * creates a new notification message + * + * @param {DOMElement} message The notifier message element + * @param {Number} wait Time (in ms) to wait before the message is dismissed, a value of 0 means keep open till clicked. + * @param {Function} callback A callback function to be invoked when the message is dismissed. + * + * @return {undefined} + */ + function create(div, callback) { + + function clickDelegate(event, instance) { + if(!instance.__internal.closeButton || event.target.getAttribute('data-close') === 'true'){ + instance.dismiss(true); + } + } + + function transitionDone(event, instance) { + // unbind event + off(instance.element, transition.type, transitionDone); + // remove the message + element.removeChild(instance.element); + } + + function initialize(instance) { + if (!instance.__internal) { + instance.__internal = { + pushed: false, + delay : undefined, + timer: undefined, + clickHandler: undefined, + transitionEndHandler: undefined, + transitionTimeout: undefined + }; + instance.__internal.clickHandler = delegate(instance, clickDelegate); + instance.__internal.transitionEndHandler = delegate(instance, transitionDone); + } + return instance; + } + function clearTimers(instance) { + clearTimeout(instance.__internal.timer); + clearTimeout(instance.__internal.transitionTimeout); + } + return initialize({ + /* notification DOM element*/ + element: div, + /* + * Pushes a notification message + * @param {string or DOMElement} content The notification message content + * @param {Number} wait The time (in seconds) to wait before the message is dismissed, a value of 0 means keep open till clicked. + * + */ + push: function (_content, _wait) { + if (!this.__internal.pushed) { + + pushInstance(this); + clearTimers(this); + + var content, wait; + switch (arguments.length) { + case 0: + wait = this.__internal.delay; + break; + case 1: + if (typeof (_content) === 'number') { + wait = _content; + } else { + content = _content; + wait = this.__internal.delay; + } + break; + case 2: + content = _content; + wait = _wait; + break; + } + this.__internal.closeButton = alertify.defaults.notifier.closeButton; + // set contents + if (typeof content !== 'undefined') { + this.setContent(content); + } + // append or insert + if (notifier.__internal.position.indexOf('top') < 0) { + element.appendChild(this.element); + } else { + element.insertBefore(this.element, element.firstChild); + } + reflow = this.element.offsetWidth; + addClass(this.element, classes.visible); + // attach click event + on(this.element, 'click', this.__internal.clickHandler); + return this.delay(wait); + } + return this; + }, + /* + * {Function} callback function to be invoked before dismissing the notification message. + * Remarks: A return value === 'false' will cancel the dismissal + * + */ + ondismiss: function () { }, + /* + * {Function} callback function to be invoked when the message is dismissed. + * + */ + callback: callback, + /* + * Dismisses the notification message + * @param {Boolean} clicked A flag indicating if the dismissal was caused by a click. + * + */ + dismiss: function (clicked) { + if (this.__internal.pushed) { + clearTimers(this); + if (!(typeof this.ondismiss === 'function' && this.ondismiss.call(this) === false)) { + //detach click event + off(this.element, 'click', this.__internal.clickHandler); + // ensure element exists + if (typeof this.element !== 'undefined' && this.element.parentNode === element) { + //transition end or fallback + this.__internal.transitionTimeout = setTimeout(this.__internal.transitionEndHandler, transition.supported ? 1000 : 100); + removeClass(this.element, classes.visible); + + // custom callback on dismiss + if (typeof this.callback === 'function') { + this.callback.call(this, clicked); + } + } + popInstance(this); + } + } + return this; + }, + /* + * Delays the notification message dismissal + * @param {Number} wait The time (in seconds) to wait before the message is dismissed, a value of 0 means keep open till clicked. + * + */ + delay: function (wait) { + clearTimers(this); + this.__internal.delay = typeof wait !== 'undefined' && !isNaN(+wait) ? +wait : notifier.__internal.delay; + if (this.__internal.delay > 0) { + var self = this; + this.__internal.timer = setTimeout(function () { self.dismiss(); }, this.__internal.delay * 1000); + } + return this; + }, + /* + * Sets the notification message contents + * @param {string or DOMElement} content The notification message content + * + */ + setContent: function (content) { + if (typeof content === 'string') { + clearContents(this.element); + this.element.innerHTML = content; + } else if (content instanceof window.HTMLElement && this.element.firstChild !== content) { + clearContents(this.element); + this.element.appendChild(content); + } + if(this.__internal.closeButton){ + var close = document.createElement('span'); + addClass(close, classes.close); + close.setAttribute('data-close', true); + this.element.appendChild(close); + } + return this; + }, + /* + * Dismisses all open notifications except this. + * + */ + dismissOthers: function () { + notifier.dismissAll(this); + return this; + } + }); + } + + //notifier api + return { + /** + * Gets or Sets notifier settings. + * + * @param {string} key The setting name + * @param {Variant} value The setting value. + * + * @return {Object} if the called as a setter, return the notifier instance. + */ + setting: function (key, value) { + //ensure init + initialize(this); + + if (typeof value === 'undefined') { + //get + return this.__internal[key]; + } else { + //set + switch (key) { + case 'position': + this.__internal.position = value; + updatePosition(this); + break; + case 'delay': + this.__internal.delay = value; + break; + } + } + return this; + }, + /** + * [Alias] Sets dialog settings/options + */ + set:function(key,value){ + this.setting(key,value); + return this; + }, + /** + * [Alias] Gets dialog settings/options + */ + get:function(key){ + return this.setting(key); + }, + /** + * Creates a new notification message + * + * @param {string} type The type of notification message (simply a CSS class name 'ajs-{type}' to be added). + * @param {Function} callback A callback function to be invoked when the message is dismissed. + * + * @return {undefined} + */ + create: function (type, callback) { + //ensure notifier init + initialize(this); + //create new notification message + var div = document.createElement('div'); + div.className = classes.message + ((typeof type === 'string' && type !== '') ? ' ajs-' + type : ''); + return create(div, callback); + }, + /** + * Dismisses all open notifications. + * + * @param {Object} excpet [optional] The notification object to exclude from dismissal. + * + */ + dismissAll: function (except) { + var clone = openInstances.slice(0); + for (var x = 0; x < clone.length; x += 1) { + var instance = clone[x]; + if (except === undefined || except !== instance) { + instance.dismiss(); + } + } + } + }; + })(); + + /** + * Alertify public API + * This contains everything that is exposed through the alertify object. + * + * @return {Object} + */ + function Alertify() { + + // holds a references of created dialogs + var dialogs = {}; + + /** + * Extends a given prototype by merging properties from base into sub. + * + * @sub {Object} sub The prototype being overwritten. + * @base {Object} base The prototype being written. + * + * @return {Object} The extended prototype. + */ + function extend(sub, base) { + // copy dialog pototype over definition. + for (var prop in base) { + if (base.hasOwnProperty(prop)) { + sub[prop] = base[prop]; + } + } + return sub; + } + + + /** + * Helper: returns a dialog instance from saved dialogs. + * and initializes the dialog if its not already initialized. + * + * @name {String} name The dialog name. + * + * @return {Object} The dialog instance. + */ + function get_dialog(name) { + var dialog = dialogs[name].dialog; + //initialize the dialog if its not already initialized. + if (dialog && typeof dialog.__init === 'function') { + dialog.__init(dialog); + } + return dialog; + } + + /** + * Helper: registers a new dialog definition. + * + * @name {String} name The dialog name. + * @Factory {Function} Factory a function resposible for creating dialog prototype. + * @transient {Boolean} transient True to create a new dialog instance each time the dialog is invoked, false otherwise. + * @base {String} base the name of another dialog to inherit from. + * + * @return {Object} The dialog definition. + */ + function register(name, Factory, transient, base) { + var definition = { + dialog: null, + factory: Factory + }; + + //if this is based on an existing dialog, create a new definition + //by applying the new protoype over the existing one. + if (base !== undefined) { + definition.factory = function () { + return extend(new dialogs[base].factory(), new Factory()); + }; + } + + if (!transient) { + //create a new definition based on dialog + definition.dialog = extend(new definition.factory(), dialog); + } + return dialogs[name] = definition; + } + + return { + /** + * Alertify defaults + * + * @type {Object} + */ + defaults: defaults, + /** + * Dialogs factory + * + * @param {string} Dialog name. + * @param {Function} A Dialog factory function. + * @param {Boolean} Indicates whether to create a singleton or transient dialog. + * @param {String} The name of the base type to inherit from. + */ + dialog: function (name, Factory, transient, base) { + + // get request, create a new instance and return it. + if (typeof Factory !== 'function') { + return get_dialog(name); + } + + if (this.hasOwnProperty(name)) { + throw new Error('alertify.dialog: name already exists'); + } + + // register the dialog + var definition = register(name, Factory, transient, base); + + if (transient) { + + // make it public + this[name] = function () { + //if passed with no params, consider it a get request + if (arguments.length === 0) { + return definition.dialog; + } else { + var instance = extend(new definition.factory(), dialog); + //ensure init + if (instance && typeof instance.__init === 'function') { + instance.__init(instance); + } + instance['main'].apply(instance, arguments); + return instance['show'].apply(instance); + } + }; + } else { + // make it public + this[name] = function () { + //ensure init + if (definition.dialog && typeof definition.dialog.__init === 'function') { + definition.dialog.__init(definition.dialog); + } + //if passed with no params, consider it a get request + if (arguments.length === 0) { + return definition.dialog; + } else { + var dialog = definition.dialog; + dialog['main'].apply(definition.dialog, arguments); + return dialog['show'].apply(definition.dialog); + } + }; + } + }, + /** + * Close all open dialogs. + * + * @param {Object} excpet [optional] The dialog object to exclude from closing. + * + * @return {undefined} + */ + closeAll: function (except) { + var clone = openDialogs.slice(0); + for (var x = 0; x < clone.length; x += 1) { + var instance = clone[x]; + if (except === undefined || except !== instance) { + instance.close(); + } + } + }, + /** + * Gets or Sets dialog settings/options. if the dialog is transient, this call does nothing. + * + * @param {string} name The dialog name. + * @param {String|Object} key A string specifying a propery name or a collection of key/value pairs. + * @param {Variant} value Optional, the value associated with the key (in case it was a string). + * + * @return {undefined} + */ + setting: function (name, key, value) { + + if (name === 'notifier') { + return notifier.setting(key, value); + } + + var dialog = get_dialog(name); + if (dialog) { + return dialog.setting(key, value); + } + }, + /** + * [Alias] Sets dialog settings/options + */ + set: function(name,key,value){ + return this.setting(name, key,value); + }, + /** + * [Alias] Gets dialog settings/options + */ + get: function(name, key){ + return this.setting(name, key); + }, + /** + * Creates a new notification message. + * If a type is passed, a class name "ajs-{type}" will be added. + * This allows for custom look and feel for various types of notifications. + * + * @param {String | DOMElement} [message=undefined] Message text + * @param {String} [type=''] Type of log message + * @param {String} [wait=''] Time (in seconds) to wait before auto-close + * @param {Function} [callback=undefined] A callback function to be invoked when the log is closed. + * + * @return {Object} Notification object. + */ + notify: function (message, type, wait, callback) { + return notifier.create(type, callback).push(message, wait); + }, + /** + * Creates a new notification message. + * + * @param {String} [message=undefined] Message text + * @param {String} [wait=''] Time (in seconds) to wait before auto-close + * @param {Function} [callback=undefined] A callback function to be invoked when the log is closed. + * + * @return {Object} Notification object. + */ + message: function (message, wait, callback) { + return notifier.create(null, callback).push(message, wait); + }, + /** + * Creates a new notification message of type 'success'. + * + * @param {String} [message=undefined] Message text + * @param {String} [wait=''] Time (in seconds) to wait before auto-close + * @param {Function} [callback=undefined] A callback function to be invoked when the log is closed. + * + * @return {Object} Notification object. + */ + success: function (message, wait, callback) { + return notifier.create('success', callback).push(message, wait); + }, + /** + * Creates a new notification message of type 'error'. + * + * @param {String} [message=undefined] Message text + * @param {String} [wait=''] Time (in seconds) to wait before auto-close + * @param {Function} [callback=undefined] A callback function to be invoked when the log is closed. + * + * @return {Object} Notification object. + */ + error: function (message, wait, callback) { + return notifier.create('error', callback).push(message, wait); + }, + /** + * Creates a new notification message of type 'warning'. + * + * @param {String} [message=undefined] Message text + * @param {String} [wait=''] Time (in seconds) to wait before auto-close + * @param {Function} [callback=undefined] A callback function to be invoked when the log is closed. + * + * @return {Object} Notification object. + */ + warning: function (message, wait, callback) { + return notifier.create('warning', callback).push(message, wait); + }, + /** + * Dismisses all open notifications + * + * @return {undefined} + */ + dismissAll: function () { + notifier.dismissAll(); + } + }; + } + var alertify = new Alertify(); + + /** + * Alert dialog definition + * + * invoked by: + * alertify.alert(message); + * alertify.alert(title, message); + * alertify.alert(message, onok); + * alertify.alert(title, message, onok); + */ + alertify.dialog('alert', function () { + return { + main: function (_title, _message, _onok) { + var title, message, onok; + switch (arguments.length) { + case 1: + message = _title; + break; + case 2: + if (typeof _message === 'function') { + message = _title; + onok = _message; + } else { + title = _title; + message = _message; + } + break; + case 3: + title = _title; + message = _message; + onok = _onok; + break; + } + this.set('title', title); + this.set('message', message); + this.set('onok', onok); + return this; + }, + setup: function () { + return { + buttons: [ + { + text: alertify.defaults.glossary.ok, + key: keys.ESC, + invokeOnClose: true, + className: alertify.defaults.theme.ok, + } + ], + focus: { + element: 0, + select: false + }, + options: { + maximizable: false, + resizable: false + } + }; + }, + build: function () { + // nothing + }, + prepare: function () { + //nothing + }, + setMessage: function (message) { + this.setContent(message); + }, + settings: { + message: undefined, + onok: undefined, + label: undefined, + }, + settingUpdated: function (key, oldValue, newValue) { + switch (key) { + case 'message': + this.setMessage(newValue); + break; + case 'label': + if (this.__internal.buttons[0].element) { + this.__internal.buttons[0].element.innerHTML = newValue; + } + break; + } + }, + callback: function (closeEvent) { + if (typeof this.get('onok') === 'function') { + var returnValue = this.get('onok').call(this, closeEvent); + if (typeof returnValue !== 'undefined') { + closeEvent.cancel = !returnValue; + } + } + } + }; + }); + /** + * Confirm dialog object + * + * alertify.confirm(message); + * alertify.confirm(message, onok); + * alertify.confirm(message, onok, oncancel); + * alertify.confirm(title, message, onok, oncancel); + */ + alertify.dialog('confirm', function () { + + var autoConfirm = { + timer: null, + index: null, + text: null, + duration: null, + task: function (event, self) { + if (self.isOpen()) { + self.__internal.buttons[autoConfirm.index].element.innerHTML = autoConfirm.text + ' (‏' + autoConfirm.duration + '‏) '; + autoConfirm.duration -= 1; + if (autoConfirm.duration === -1) { + clearAutoConfirm(self); + var button = self.__internal.buttons[autoConfirm.index]; + var closeEvent = createCloseEvent(autoConfirm.index, button); + + if (typeof self.callback === 'function') { + self.callback.apply(self, [closeEvent]); + } + //close the dialog. + if (closeEvent.close !== false) { + self.close(); + } + } + } else { + clearAutoConfirm(self); + } + } + }; + + function clearAutoConfirm(self) { + if (autoConfirm.timer !== null) { + clearInterval(autoConfirm.timer); + autoConfirm.timer = null; + self.__internal.buttons[autoConfirm.index].element.innerHTML = autoConfirm.text; + } + } + + function startAutoConfirm(self, index, duration) { + clearAutoConfirm(self); + autoConfirm.duration = duration; + autoConfirm.index = index; + autoConfirm.text = self.__internal.buttons[index].element.innerHTML; + autoConfirm.timer = setInterval(delegate(self, autoConfirm.task), 1000); + autoConfirm.task(null, self); + } + + + return { + main: function (_title, _message, _onok, _oncancel) { + var title, message, onok, oncancel; + switch (arguments.length) { + case 1: + message = _title; + break; + case 2: + message = _title; + onok = _message; + break; + case 3: + message = _title; + onok = _message; + oncancel = _onok; + break; + case 4: + title = _title; + message = _message; + onok = _onok; + oncancel = _oncancel; + break; + } + this.set('title', title); + this.set('message', message); + this.set('onok', onok); + this.set('oncancel', oncancel); + return this; + }, + setup: function () { + return { + buttons: [ + { + text: alertify.defaults.glossary.ok, + key: keys.ENTER, + className: alertify.defaults.theme.ok, + }, + { + text: alertify.defaults.glossary.cancel, + key: keys.ESC, + invokeOnClose: true, + className: alertify.defaults.theme.cancel, + } + ], + focus: { + element: 0, + select: false + }, + options: { + maximizable: false, + resizable: false + } + }; + }, + build: function () { + //nothing + }, + prepare: function () { + //nothing + }, + setMessage: function (message) { + this.setContent(message); + }, + settings: { + message: null, + labels: null, + onok: null, + oncancel: null, + defaultFocus: null, + reverseButtons: null, + }, + settingUpdated: function (key, oldValue, newValue) { + switch (key) { + case 'message': + this.setMessage(newValue); + break; + case 'labels': + if ('ok' in newValue && this.__internal.buttons[0].element) { + this.__internal.buttons[0].text = newValue.ok; + this.__internal.buttons[0].element.innerHTML = newValue.ok; + } + if ('cancel' in newValue && this.__internal.buttons[1].element) { + this.__internal.buttons[1].text = newValue.cancel; + this.__internal.buttons[1].element.innerHTML = newValue.cancel; + } + break; + case 'reverseButtons': + if (newValue === true) { + this.elements.buttons.primary.appendChild(this.__internal.buttons[0].element); + } else { + this.elements.buttons.primary.appendChild(this.__internal.buttons[1].element); + } + break; + case 'defaultFocus': + this.__internal.focus.element = newValue === 'ok' ? 0 : 1; + break; + } + }, + callback: function (closeEvent) { + clearAutoConfirm(this); + var returnValue; + switch (closeEvent.index) { + case 0: + if (typeof this.get('onok') === 'function') { + returnValue = this.get('onok').call(this, closeEvent); + if (typeof returnValue !== 'undefined') { + closeEvent.cancel = !returnValue; + } + } + break; + case 1: + if (typeof this.get('oncancel') === 'function') { + returnValue = this.get('oncancel').call(this, closeEvent); + if (typeof returnValue !== 'undefined') { + closeEvent.cancel = !returnValue; + } + } + break; + } + }, + autoOk: function (duration) { + startAutoConfirm(this, 0, duration); + return this; + }, + autoCancel: function (duration) { + startAutoConfirm(this, 1, duration); + return this; + } + }; + }); + /** + * Prompt dialog object + * + * invoked by: + * alertify.prompt(message); + * alertify.prompt(message, value); + * alertify.prompt(message, value, onok); + * alertify.prompt(message, value, onok, oncancel); + * alertify.prompt(title, message, value, onok, oncancel); + */ + alertify.dialog('prompt', function () { + var input = document.createElement('INPUT'); + var p = document.createElement('P'); + return { + main: function (_title, _message, _value, _onok, _oncancel) { + var title, message, value, onok, oncancel; + switch (arguments.length) { + case 1: + message = _title; + break; + case 2: + message = _title; + value = _message; + break; + case 3: + message = _title; + value = _message; + onok = _value; + break; + case 4: + message = _title; + value = _message; + onok = _value; + oncancel = _onok; + break; + case 5: + title = _title; + message = _message; + value = _value; + onok = _onok; + oncancel = _oncancel; + break; + } + this.set('title', title); + this.set('message', message); + this.set('value', value); + this.set('onok', onok); + this.set('oncancel', oncancel); + return this; + }, + setup: function () { + return { + buttons: [ + { + text: alertify.defaults.glossary.ok, + key: keys.ENTER, + className: alertify.defaults.theme.ok, + }, + { + text: alertify.defaults.glossary.cancel, + key: keys.ESC, + invokeOnClose: true, + className: alertify.defaults.theme.cancel, + } + ], + focus: { + element: input, + select: true + }, + options: { + maximizable: false, + resizable: false + } + }; + }, + build: function () { + input.className = alertify.defaults.theme.input; + input.setAttribute('type', 'text'); + input.value = this.get('value'); + this.elements.content.appendChild(p); + this.elements.content.appendChild(input); + }, + prepare: function () { + //nothing + }, + setMessage: function (message) { + if (typeof message === 'string') { + clearContents(p); + p.innerHTML = message; + } else if (message instanceof window.HTMLElement && p.firstChild !== message) { + clearContents(p); + p.appendChild(message); + } + }, + settings: { + message: undefined, + labels: undefined, + onok: undefined, + oncancel: undefined, + value: '', + type:'text', + reverseButtons: undefined, + }, + settingUpdated: function (key, oldValue, newValue) { + switch (key) { + case 'message': + this.setMessage(newValue); + break; + case 'value': + input.value = newValue; + break; + case 'type': + switch (newValue) { + case 'text': + case 'color': + case 'date': + case 'datetime-local': + case 'email': + case 'month': + case 'number': + case 'password': + case 'search': + case 'tel': + case 'time': + case 'week': + input.type = newValue; + break; + default: + input.type = 'text'; + break; + } + break; + case 'labels': + if (newValue.ok && this.__internal.buttons[0].element) { + this.__internal.buttons[0].element.innerHTML = newValue.ok; + } + if (newValue.cancel && this.__internal.buttons[1].element) { + this.__internal.buttons[1].element.innerHTML = newValue.cancel; + } + break; + case 'reverseButtons': + if (newValue === true) { + this.elements.buttons.primary.appendChild(this.__internal.buttons[0].element); + } else { + this.elements.buttons.primary.appendChild(this.__internal.buttons[1].element); + } + break; + } + }, + callback: function (closeEvent) { + var returnValue; + switch (closeEvent.index) { + case 0: + this.settings.value = input.value; + if (typeof this.get('onok') === 'function') { + returnValue = this.get('onok').call(this, closeEvent, this.settings.value); + if (typeof returnValue !== 'undefined') { + closeEvent.cancel = !returnValue; + } + } + break; + case 1: + if (typeof this.get('oncancel') === 'function') { + returnValue = this.get('oncancel').call(this, closeEvent); + if (typeof returnValue !== 'undefined') { + closeEvent.cancel = !returnValue; + } + } + if(!closeEvent.cancel){ + input.value = this.settings.value; + } + break; + } + } + }; + }); + + // CommonJS + if ( typeof module === 'object' && typeof module.exports === 'object' ) { + module.exports = alertify; + // AMD + } else if ( typeof define === 'function' && define.amd) { + define( [], function () { + return alertify; + } ); + // window + } else if ( !window.alertify ) { + window.alertify = alertify; + } + +} ( typeof window !== 'undefined' ? window : this ) ); diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/js/axios.js b/NMP 3.0 Moodle Pluggin/fliplearning/js/axios.js new file mode 100644 index 0000000000000000000000000000000000000000..5cef419c2c7a70ccc71067dc3d5a59aa103091bd --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/js/axios.js @@ -0,0 +1,1668 @@ +/* axios v0.19.0 | (c) 2019 by Matt Zabriskie */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["axios"] = factory(); + else + root["axios"] = factory(); +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; +/******/ +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.loaded = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = __webpack_require__(1); + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + var bind = __webpack_require__(3); + var Axios = __webpack_require__(5); + var mergeConfig = __webpack_require__(22); + var defaults = __webpack_require__(11); + + /** + * Create an instance of Axios + * + * @param {Object} defaultConfig The default config for the instance + * @return {Axios} A new instance of Axios + */ + function createInstance(defaultConfig) { + var context = new Axios(defaultConfig); + var instance = bind(Axios.prototype.request, context); + + // Copy axios.prototype to instance + utils.extend(instance, Axios.prototype, context); + + // Copy context to instance + utils.extend(instance, context); + + return instance; + } + + // Create the default instance to be exported + var axios = createInstance(defaults); + + // Expose Axios class to allow class inheritance + axios.Axios = Axios; + + // Factory for creating new instances + axios.create = function create(instanceConfig) { + return createInstance(mergeConfig(axios.defaults, instanceConfig)); + }; + + // Expose Cancel & CancelToken + axios.Cancel = __webpack_require__(23); + axios.CancelToken = __webpack_require__(24); + axios.isCancel = __webpack_require__(10); + + // Expose all/spread + axios.all = function all(promises) { + return Promise.all(promises); + }; + axios.spread = __webpack_require__(25); + + module.exports = axios; + + // Allow use of default import syntax in TypeScript + module.exports.default = axios; + + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var bind = __webpack_require__(3); + var isBuffer = __webpack_require__(4); + + /*global toString:true*/ + + // utils is a library of generic helper functions non-specific to axios + + var toString = Object.prototype.toString; + + /** + * Determine if a value is an Array + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Array, otherwise false + */ + function isArray(val) { + return toString.call(val) === '[object Array]'; + } + + /** + * Determine if a value is an ArrayBuffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an ArrayBuffer, otherwise false + */ + function isArrayBuffer(val) { + return toString.call(val) === '[object ArrayBuffer]'; + } + + /** + * Determine if a value is a FormData + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an FormData, otherwise false + */ + function isFormData(val) { + return (typeof FormData !== 'undefined') && (val instanceof FormData); + } + + /** + * Determine if a value is a view on an ArrayBuffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + */ + function isArrayBufferView(val) { + var result; + if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { + result = ArrayBuffer.isView(val); + } else { + result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer); + } + return result; + } + + /** + * Determine if a value is a String + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a String, otherwise false + */ + function isString(val) { + return typeof val === 'string'; + } + + /** + * Determine if a value is a Number + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Number, otherwise false + */ + function isNumber(val) { + return typeof val === 'number'; + } + + /** + * Determine if a value is undefined + * + * @param {Object} val The value to test + * @returns {boolean} True if the value is undefined, otherwise false + */ + function isUndefined(val) { + return typeof val === 'undefined'; + } + + /** + * Determine if a value is an Object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Object, otherwise false + */ + function isObject(val) { + return val !== null && typeof val === 'object'; + } + + /** + * Determine if a value is a Date + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Date, otherwise false + */ + function isDate(val) { + return toString.call(val) === '[object Date]'; + } + + /** + * Determine if a value is a File + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a File, otherwise false + */ + function isFile(val) { + return toString.call(val) === '[object File]'; + } + + /** + * Determine if a value is a Blob + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Blob, otherwise false + */ + function isBlob(val) { + return toString.call(val) === '[object Blob]'; + } + + /** + * Determine if a value is a Function + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Function, otherwise false + */ + function isFunction(val) { + return toString.call(val) === '[object Function]'; + } + + /** + * Determine if a value is a Stream + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Stream, otherwise false + */ + function isStream(val) { + return isObject(val) && isFunction(val.pipe); + } + + /** + * Determine if a value is a URLSearchParams object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a URLSearchParams object, otherwise false + */ + function isURLSearchParams(val) { + return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams; + } + + /** + * Trim excess whitespace off the beginning and end of a string + * + * @param {String} str The String to trim + * @returns {String} The String freed of excess whitespace + */ + function trim(str) { + return str.replace(/^\s*/, '').replace(/\s*$/, ''); + } + + /** + * Determine if we're running in a standard browser environment + * + * This allows axios to run in a web worker, and react-native. + * Both environments support XMLHttpRequest, but not fully standard globals. + * + * web workers: + * typeof window -> undefined + * typeof document -> undefined + * + * react-native: + * navigator.product -> 'ReactNative' + * nativescript + * navigator.product -> 'NativeScript' or 'NS' + */ + function isStandardBrowserEnv() { + if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || + navigator.product === 'NativeScript' || + navigator.product === 'NS')) { + return false; + } + return ( + typeof window !== 'undefined' && + typeof document !== 'undefined' + ); + } + + /** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + */ + function forEach(obj, fn) { + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return; + } + + // Force an array if not already something iterable + if (typeof obj !== 'object') { + /*eslint no-param-reassign:0*/ + obj = [obj]; + } + + if (isArray(obj)) { + // Iterate over array values + for (var i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); + } + } else { + // Iterate over object keys + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + fn.call(null, obj[key], key, obj); + } + } + } + } + + /** + * Accepts varargs expecting each argument to be an object, then + * immutably merges the properties of each object and returns result. + * + * When multiple objects contain the same key the later object in + * the arguments list will take precedence. + * + * Example: + * + * ```js + * var result = merge({foo: 123}, {foo: 456}); + * console.log(result.foo); // outputs 456 + * ``` + * + * @param {Object} obj1 Object to merge + * @returns {Object} Result of all merge properties + */ + function merge(/* obj1, obj2, obj3, ... */) { + var result = {}; + function assignValue(val, key) { + if (typeof result[key] === 'object' && typeof val === 'object') { + result[key] = merge(result[key], val); + } else { + result[key] = val; + } + } + + for (var i = 0, l = arguments.length; i < l; i++) { + forEach(arguments[i], assignValue); + } + return result; + } + + /** + * Function equal to merge with the difference being that no reference + * to original objects is kept. + * + * @see merge + * @param {Object} obj1 Object to merge + * @returns {Object} Result of all merge properties + */ + function deepMerge(/* obj1, obj2, obj3, ... */) { + var result = {}; + function assignValue(val, key) { + if (typeof result[key] === 'object' && typeof val === 'object') { + result[key] = deepMerge(result[key], val); + } else if (typeof val === 'object') { + result[key] = deepMerge({}, val); + } else { + result[key] = val; + } + } + + for (var i = 0, l = arguments.length; i < l; i++) { + forEach(arguments[i], assignValue); + } + return result; + } + + /** + * Extends object a by mutably adding to it the properties of object b. + * + * @param {Object} a The object to be extended + * @param {Object} b The object to copy properties from + * @param {Object} thisArg The object to bind function to + * @return {Object} The resulting value of object a + */ + function extend(a, b, thisArg) { + forEach(b, function assignValue(val, key) { + if (thisArg && typeof val === 'function') { + a[key] = bind(val, thisArg); + } else { + a[key] = val; + } + }); + return a; + } + + module.exports = { + isArray: isArray, + isArrayBuffer: isArrayBuffer, + isBuffer: isBuffer, + isFormData: isFormData, + isArrayBufferView: isArrayBufferView, + isString: isString, + isNumber: isNumber, + isObject: isObject, + isUndefined: isUndefined, + isDate: isDate, + isFile: isFile, + isBlob: isBlob, + isFunction: isFunction, + isStream: isStream, + isURLSearchParams: isURLSearchParams, + isStandardBrowserEnv: isStandardBrowserEnv, + forEach: forEach, + merge: merge, + deepMerge: deepMerge, + extend: extend, + trim: trim + }; + + +/***/ }), +/* 3 */ +/***/ (function(module, exports) { + + 'use strict'; + + module.exports = function bind(fn, thisArg) { + return function wrap() { + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + return fn.apply(thisArg, args); + }; + }; + + +/***/ }), +/* 4 */ +/***/ (function(module, exports) { + + /*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh <https://feross.org> + * @license MIT + */ + + module.exports = function isBuffer (obj) { + return obj != null && obj.constructor != null && + typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) + } + + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + var buildURL = __webpack_require__(6); + var InterceptorManager = __webpack_require__(7); + var dispatchRequest = __webpack_require__(8); + var mergeConfig = __webpack_require__(22); + + /** + * Create a new instance of Axios + * + * @param {Object} instanceConfig The default config for the instance + */ + function Axios(instanceConfig) { + this.defaults = instanceConfig; + this.interceptors = { + request: new InterceptorManager(), + response: new InterceptorManager() + }; + } + + /** + * Dispatch a request + * + * @param {Object} config The config specific for this request (merged with this.defaults) + */ + Axios.prototype.request = function request(config) { + /*eslint no-param-reassign:0*/ + // Allow for axios('example/url'[, config]) a la fetch API + if (typeof config === 'string') { + config = arguments[1] || {}; + config.url = arguments[0]; + } else { + config = config || {}; + } + + config = mergeConfig(this.defaults, config); + config.method = config.method ? config.method.toLowerCase() : 'get'; + + // Hook up interceptors middleware + var chain = [dispatchRequest, undefined]; + var promise = Promise.resolve(config); + + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + chain.unshift(interceptor.fulfilled, interceptor.rejected); + }); + + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + chain.push(interceptor.fulfilled, interceptor.rejected); + }); + + while (chain.length) { + promise = promise.then(chain.shift(), chain.shift()); + } + + return promise; + }; + + Axios.prototype.getUri = function getUri(config) { + config = mergeConfig(this.defaults, config); + return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\?/, ''); + }; + + // Provide aliases for supported request methods + utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, config) { + return this.request(utils.merge(config || {}, { + method: method, + url: url + })); + }; + }); + + utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, data, config) { + return this.request(utils.merge(config || {}, { + method: method, + url: url, + data: data + })); + }; + }); + + module.exports = Axios; + + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + function encode(val) { + return encodeURIComponent(val). + replace(/%40/gi, '@'). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%20/g, '+'). + replace(/%5B/gi, '['). + replace(/%5D/gi, ']'); + } + + /** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @returns {string} The formatted url + */ + module.exports = function buildURL(url, params, paramsSerializer) { + /*eslint no-param-reassign:0*/ + if (!params) { + return url; + } + + var serializedParams; + if (paramsSerializer) { + serializedParams = paramsSerializer(params); + } else if (utils.isURLSearchParams(params)) { + serializedParams = params.toString(); + } else { + var parts = []; + + utils.forEach(params, function serialize(val, key) { + if (val === null || typeof val === 'undefined') { + return; + } + + if (utils.isArray(val)) { + key = key + '[]'; + } else { + val = [val]; + } + + utils.forEach(val, function parseValue(v) { + if (utils.isDate(v)) { + v = v.toISOString(); + } else if (utils.isObject(v)) { + v = JSON.stringify(v); + } + parts.push(encode(key) + '=' + encode(v)); + }); + }); + + serializedParams = parts.join('&'); + } + + if (serializedParams) { + var hashmarkIndex = url.indexOf('#'); + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex); + } + + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; + } + + return url; + }; + + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + function InterceptorManager() { + this.handlers = []; + } + + /** + * Add a new interceptor to the stack + * + * @param {Function} fulfilled The function to handle `then` for a `Promise` + * @param {Function} rejected The function to handle `reject` for a `Promise` + * + * @return {Number} An ID used to remove interceptor later + */ + InterceptorManager.prototype.use = function use(fulfilled, rejected) { + this.handlers.push({ + fulfilled: fulfilled, + rejected: rejected + }); + return this.handlers.length - 1; + }; + + /** + * Remove an interceptor from the stack + * + * @param {Number} id The ID that was returned by `use` + */ + InterceptorManager.prototype.eject = function eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null; + } + }; + + /** + * Iterate over all the registered interceptors + * + * This method is particularly useful for skipping over any + * interceptors that may have become `null` calling `eject`. + * + * @param {Function} fn The function to call for each interceptor + */ + InterceptorManager.prototype.forEach = function forEach(fn) { + utils.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); + }; + + module.exports = InterceptorManager; + + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + var transformData = __webpack_require__(9); + var isCancel = __webpack_require__(10); + var defaults = __webpack_require__(11); + var isAbsoluteURL = __webpack_require__(20); + var combineURLs = __webpack_require__(21); + + /** + * Throws a `Cancel` if cancellation has been requested. + */ + function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested(); + } + } + + /** + * Dispatch a request to the server using the configured adapter. + * + * @param {object} config The config that is to be used for the request + * @returns {Promise} The Promise to be fulfilled + */ + module.exports = function dispatchRequest(config) { + throwIfCancellationRequested(config); + + // Support baseURL config + if (config.baseURL && !isAbsoluteURL(config.url)) { + config.url = combineURLs(config.baseURL, config.url); + } + + // Ensure headers exist + config.headers = config.headers || {}; + + // Transform request data + config.data = transformData( + config.data, + config.headers, + config.transformRequest + ); + + // Flatten headers + config.headers = utils.merge( + config.headers.common || {}, + config.headers[config.method] || {}, + config.headers || {} + ); + + utils.forEach( + ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], + function cleanHeaderConfig(method) { + delete config.headers[method]; + } + ); + + var adapter = config.adapter || defaults.adapter; + + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Transform response data + response.data = transformData( + response.data, + response.headers, + config.transformResponse + ); + + return response; + }, function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData( + reason.response.data, + reason.response.headers, + config.transformResponse + ); + } + } + + return Promise.reject(reason); + }); + }; + + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + /** + * Transform the data for a request or a response + * + * @param {Object|String} data The data to be transformed + * @param {Array} headers The headers for the request or response + * @param {Array|Function} fns A single function or Array of functions + * @returns {*} The resulting transformed data + */ + module.exports = function transformData(data, headers, fns) { + /*eslint no-param-reassign:0*/ + utils.forEach(fns, function transform(fn) { + data = fn(data, headers); + }); + + return data; + }; + + +/***/ }), +/* 10 */ +/***/ (function(module, exports) { + + 'use strict'; + + module.exports = function isCancel(value) { + return !!(value && value.__CANCEL__); + }; + + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + var normalizeHeaderName = __webpack_require__(12); + + var DEFAULT_CONTENT_TYPE = { + 'Content-Type': 'application/x-www-form-urlencoded' + }; + + function setContentTypeIfUnset(headers, value) { + if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) { + headers['Content-Type'] = value; + } + } + + function getDefaultAdapter() { + var adapter; + // Only Node.JS has a process variable that is of [[Class]] process + if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') { + // For node use HTTP adapter + adapter = __webpack_require__(13); + } else if (typeof XMLHttpRequest !== 'undefined') { + // For browsers use XHR adapter + adapter = __webpack_require__(13); + } + return adapter; + } + + var defaults = { + adapter: getDefaultAdapter(), + + transformRequest: [function transformRequest(data, headers) { + normalizeHeaderName(headers, 'Accept'); + normalizeHeaderName(headers, 'Content-Type'); + if (utils.isFormData(data) || + utils.isArrayBuffer(data) || + utils.isBuffer(data) || + utils.isStream(data) || + utils.isFile(data) || + utils.isBlob(data) + ) { + return data; + } + if (utils.isArrayBufferView(data)) { + return data.buffer; + } + if (utils.isURLSearchParams(data)) { + setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8'); + return data.toString(); + } + if (utils.isObject(data)) { + setContentTypeIfUnset(headers, 'application/json;charset=utf-8'); + return JSON.stringify(data); + } + return data; + }], + + transformResponse: [function transformResponse(data) { + /*eslint no-param-reassign:0*/ + if (typeof data === 'string') { + try { + data = JSON.parse(data); + } catch (e) { /* Ignore */ } + } + return data; + }], + + /** + * A timeout in milliseconds to abort a request. If set to 0 (default) a + * timeout is not created. + */ + timeout: 0, + + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN', + + maxContentLength: -1, + + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300; + } + }; + + defaults.headers = { + common: { + 'Accept': 'application/json, text/plain, */*' + } + }; + + utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { + defaults.headers[method] = {}; + }); + + utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); + }); + + module.exports = defaults; + + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + module.exports = function normalizeHeaderName(headers, normalizedName) { + utils.forEach(headers, function processHeader(value, name) { + if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) { + headers[normalizedName] = value; + delete headers[name]; + } + }); + }; + + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + var settle = __webpack_require__(14); + var buildURL = __webpack_require__(6); + var parseHeaders = __webpack_require__(17); + var isURLSameOrigin = __webpack_require__(18); + var createError = __webpack_require__(15); + + module.exports = function xhrAdapter(config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + var requestData = config.data; + var requestHeaders = config.headers; + + if (utils.isFormData(requestData)) { + delete requestHeaders['Content-Type']; // Let the browser set it + } + + var request = new XMLHttpRequest(); + + // HTTP basic authentication + if (config.auth) { + var username = config.auth.username || ''; + var password = config.auth.password || ''; + requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password); + } + + request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true); + + // Set the request timeout in MS + request.timeout = config.timeout; + + // Listen for ready state + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return; + } + + // The request errored out and we didn't get a response, this will be + // handled by onerror instead + // With one exception: request that using file: protocol, most browsers + // will return status as 0 even though it's a successful request + if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { + return; + } + + // Prepare the response + var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null; + var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response; + var response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config: config, + request: request + }; + + settle(resolve, reject, response); + + // Clean up request + request = null; + }; + + // Handle browser request cancellation (as opposed to a manual cancellation) + request.onabort = function handleAbort() { + if (!request) { + return; + } + + reject(createError('Request aborted', config, 'ECONNABORTED', request)); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError() { + // Real errors are hidden from us by the browser + // onerror should only fire if it's a network error + reject(createError('Network Error', config, null, request)); + + // Clean up request + request = null; + }; + + // Handle timeout + request.ontimeout = function handleTimeout() { + reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED', + request)); + + // Clean up request + request = null; + }; + + // Add xsrf header + // This is only done if running in a standard browser environment. + // Specifically not if we're in a web worker, or react-native. + if (utils.isStandardBrowserEnv()) { + var cookies = __webpack_require__(19); + + // Add xsrf header + var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ? + cookies.read(config.xsrfCookieName) : + undefined; + + if (xsrfValue) { + requestHeaders[config.xsrfHeaderName] = xsrfValue; + } + } + + // Add headers to the request + if ('setRequestHeader' in request) { + utils.forEach(requestHeaders, function setRequestHeader(val, key) { + if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') { + // Remove Content-Type if data is undefined + delete requestHeaders[key]; + } else { + // Otherwise add header to the request + request.setRequestHeader(key, val); + } + }); + } + + // Add withCredentials to request if needed + if (config.withCredentials) { + request.withCredentials = true; + } + + // Add responseType to request if needed + if (config.responseType) { + try { + request.responseType = config.responseType; + } catch (e) { + // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2. + // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function. + if (config.responseType !== 'json') { + throw e; + } + } + } + + // Handle progress if needed + if (typeof config.onDownloadProgress === 'function') { + request.addEventListener('progress', config.onDownloadProgress); + } + + // Not all browsers support upload events + if (typeof config.onUploadProgress === 'function' && request.upload) { + request.upload.addEventListener('progress', config.onUploadProgress); + } + + if (config.cancelToken) { + // Handle cancellation + config.cancelToken.promise.then(function onCanceled(cancel) { + if (!request) { + return; + } + + request.abort(); + reject(cancel); + // Clean up request + request = null; + }); + } + + if (requestData === undefined) { + requestData = null; + } + + // Send the request + request.send(requestData); + }); + }; + + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var createError = __webpack_require__(15); + + /** + * Resolve or reject a Promise based on response status. + * + * @param {Function} resolve A function that resolves the promise. + * @param {Function} reject A function that rejects the promise. + * @param {object} response The response. + */ + module.exports = function settle(resolve, reject, response) { + var validateStatus = response.config.validateStatus; + if (!validateStatus || validateStatus(response.status)) { + resolve(response); + } else { + reject(createError( + 'Request failed with status code ' + response.status, + response.config, + null, + response.request, + response + )); + } + }; + + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var enhanceError = __webpack_require__(16); + + /** + * Create an Error with the specified message, config, error code, request and response. + * + * @param {string} message The error message. + * @param {Object} config The config. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * @returns {Error} The created error. + */ + module.exports = function createError(message, config, code, request, response) { + var error = new Error(message); + return enhanceError(error, config, code, request, response); + }; + + +/***/ }), +/* 16 */ +/***/ (function(module, exports) { + + 'use strict'; + + /** + * Update an Error with the specified config, error code, and response. + * + * @param {Error} error The error to update. + * @param {Object} config The config. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * @returns {Error} The error. + */ + module.exports = function enhanceError(error, config, code, request, response) { + error.config = config; + if (code) { + error.code = code; + } + + error.request = request; + error.response = response; + error.isAxiosError = true; + + error.toJSON = function() { + return { + // Standard + message: this.message, + name: this.name, + // Microsoft + description: this.description, + number: this.number, + // Mozilla + fileName: this.fileName, + lineNumber: this.lineNumber, + columnNumber: this.columnNumber, + stack: this.stack, + // Axios + config: this.config, + code: this.code + }; + }; + return error; + }; + + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + // Headers whose duplicates are ignored by node + // c.f. https://nodejs.org/api/http.html#http_message_headers + var ignoreDuplicateOf = [ + 'age', 'authorization', 'content-length', 'content-type', 'etag', + 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', + 'last-modified', 'location', 'max-forwards', 'proxy-authorization', + 'referer', 'retry-after', 'user-agent' + ]; + + /** + * Parse headers into an object + * + * ``` + * Date: Wed, 27 Aug 2014 08:58:49 GMT + * Content-Type: application/json + * Connection: keep-alive + * Transfer-Encoding: chunked + * ``` + * + * @param {String} headers Headers needing to be parsed + * @returns {Object} Headers parsed into an object + */ + module.exports = function parseHeaders(headers) { + var parsed = {}; + var key; + var val; + var i; + + if (!headers) { return parsed; } + + utils.forEach(headers.split('\n'), function parser(line) { + i = line.indexOf(':'); + key = utils.trim(line.substr(0, i)).toLowerCase(); + val = utils.trim(line.substr(i + 1)); + + if (key) { + if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) { + return; + } + if (key === 'set-cookie') { + parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]); + } else { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + } + }); + + return parsed; + }; + + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + module.exports = ( + utils.isStandardBrowserEnv() ? + + // Standard browser envs have full support of the APIs needed to test + // whether the request URL is of the same origin as current location. + (function standardBrowserEnv() { + var msie = /(msie|trident)/i.test(navigator.userAgent); + var urlParsingNode = document.createElement('a'); + var originURL; + + /** + * Parse a URL to discover it's components + * + * @param {String} url The URL to be parsed + * @returns {Object} + */ + function resolveURL(url) { + var href = url; + + if (msie) { + // IE needs attribute set twice to normalize properties + urlParsingNode.setAttribute('href', href); + href = urlParsingNode.href; + } + + urlParsingNode.setAttribute('href', href); + + // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: (urlParsingNode.pathname.charAt(0) === '/') ? + urlParsingNode.pathname : + '/' + urlParsingNode.pathname + }; + } + + originURL = resolveURL(window.location.href); + + /** + * Determine if a URL shares the same origin as the current location + * + * @param {String} requestURL The URL to test + * @returns {boolean} True if URL shares the same origin, otherwise false + */ + return function isURLSameOrigin(requestURL) { + var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; + return (parsed.protocol === originURL.protocol && + parsed.host === originURL.host); + }; + })() : + + // Non standard browser envs (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return function isURLSameOrigin() { + return true; + }; + })() + ); + + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + module.exports = ( + utils.isStandardBrowserEnv() ? + + // Standard browser envs support document.cookie + (function standardBrowserEnv() { + return { + write: function write(name, value, expires, path, domain, secure) { + var cookie = []; + cookie.push(name + '=' + encodeURIComponent(value)); + + if (utils.isNumber(expires)) { + cookie.push('expires=' + new Date(expires).toGMTString()); + } + + if (utils.isString(path)) { + cookie.push('path=' + path); + } + + if (utils.isString(domain)) { + cookie.push('domain=' + domain); + } + + if (secure === true) { + cookie.push('secure'); + } + + document.cookie = cookie.join('; '); + }, + + read: function read(name) { + var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); + return (match ? decodeURIComponent(match[3]) : null); + }, + + remove: function remove(name) { + this.write(name, '', Date.now() - 86400000); + } + }; + })() : + + // Non standard browser env (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return { + write: function write() {}, + read: function read() { return null; }, + remove: function remove() {} + }; + })() + ); + + +/***/ }), +/* 20 */ +/***/ (function(module, exports) { + + 'use strict'; + + /** + * Determines whether the specified URL is absolute + * + * @param {string} url The URL to test + * @returns {boolean} True if the specified URL is absolute, otherwise false + */ + module.exports = function isAbsoluteURL(url) { + // A URL is considered absolute if it begins with "<scheme>://" or "//" (protocol-relative URL). + // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed + // by any combination of letters, digits, plus, period, or hyphen. + return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url); + }; + + +/***/ }), +/* 21 */ +/***/ (function(module, exports) { + + 'use strict'; + + /** + * Creates a new URL by combining the specified URLs + * + * @param {string} baseURL The base URL + * @param {string} relativeURL The relative URL + * @returns {string} The combined URL + */ + module.exports = function combineURLs(baseURL, relativeURL) { + return relativeURL + ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') + : baseURL; + }; + + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + /** + * Config-specific merge-function which creates a new config-object + * by merging two configuration objects together. + * + * @param {Object} config1 + * @param {Object} config2 + * @returns {Object} New object resulting from merging config2 to config1 + */ + module.exports = function mergeConfig(config1, config2) { + // eslint-disable-next-line no-param-reassign + config2 = config2 || {}; + var config = {}; + + utils.forEach(['url', 'method', 'params', 'data'], function valueFromConfig2(prop) { + if (typeof config2[prop] !== 'undefined') { + config[prop] = config2[prop]; + } + }); + + utils.forEach(['headers', 'auth', 'proxy'], function mergeDeepProperties(prop) { + if (utils.isObject(config2[prop])) { + config[prop] = utils.deepMerge(config1[prop], config2[prop]); + } else if (typeof config2[prop] !== 'undefined') { + config[prop] = config2[prop]; + } else if (utils.isObject(config1[prop])) { + config[prop] = utils.deepMerge(config1[prop]); + } else if (typeof config1[prop] !== 'undefined') { + config[prop] = config1[prop]; + } + }); + + utils.forEach([ + 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', + 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', + 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'maxContentLength', + 'validateStatus', 'maxRedirects', 'httpAgent', 'httpsAgent', 'cancelToken', + 'socketPath' + ], function defaultToConfig2(prop) { + if (typeof config2[prop] !== 'undefined') { + config[prop] = config2[prop]; + } else if (typeof config1[prop] !== 'undefined') { + config[prop] = config1[prop]; + } + }); + + return config; + }; + + +/***/ }), +/* 23 */ +/***/ (function(module, exports) { + + 'use strict'; + + /** + * A `Cancel` is an object that is thrown when an operation is canceled. + * + * @class + * @param {string=} message The message. + */ + function Cancel(message) { + this.message = message; + } + + Cancel.prototype.toString = function toString() { + return 'Cancel' + (this.message ? ': ' + this.message : ''); + }; + + Cancel.prototype.__CANCEL__ = true; + + module.exports = Cancel; + + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var Cancel = __webpack_require__(23); + + /** + * A `CancelToken` is an object that can be used to request cancellation of an operation. + * + * @class + * @param {Function} executor The executor function. + */ + function CancelToken(executor) { + if (typeof executor !== 'function') { + throw new TypeError('executor must be a function.'); + } + + var resolvePromise; + this.promise = new Promise(function promiseExecutor(resolve) { + resolvePromise = resolve; + }); + + var token = this; + executor(function cancel(message) { + if (token.reason) { + // Cancellation has already been requested + return; + } + + token.reason = new Cancel(message); + resolvePromise(token.reason); + }); + } + + /** + * Throws a `Cancel` if cancellation has been requested. + */ + CancelToken.prototype.throwIfRequested = function throwIfRequested() { + if (this.reason) { + throw this.reason; + } + }; + + /** + * Returns an object that contains a new `CancelToken` and a function that, when called, + * cancels the `CancelToken`. + */ + CancelToken.source = function source() { + var cancel; + var token = new CancelToken(function executor(c) { + cancel = c; + }); + return { + token: token, + cancel: cancel + }; + }; + + module.exports = CancelToken; + + +/***/ }), +/* 25 */ +/***/ (function(module, exports) { + + 'use strict'; + + /** + * Syntactic sugar for invoking a function and expanding an array for arguments. + * + * Common use case would be to use `Function.prototype.apply`. + * + * ```js + * function f(x, y, z) {} + * var args = [1, 2, 3]; + * f.apply(null, args); + * ``` + * + * With `spread` this example can be re-written. + * + * ```js + * spread(function(x, y, z) {})([1, 2, 3]); + * ``` + * + * @param {Function} callback + * @returns {Function} + */ + module.exports = function spread(callback) { + return function wrap(arr) { + return callback.apply(null, arr); + }; + }; + + +/***/ }) +/******/ ]) +}); +; +//# sourceMappingURL=axios.map \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/js/datepicker.js b/NMP 3.0 Moodle Pluggin/fliplearning/js/datepicker.js new file mode 100644 index 0000000000000000000000000000000000000000..ce8d7c927981db72151a3c9e9349807732954d43 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/js/datepicker.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).vuejsDatepicker=t()}(this,function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t){for(var a=0;a<t.length;a++){var i=t[a];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function a(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){a(e,t,i[t])})}return e}var n=new(function(){function e(t,a,i,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.language=t,this.months=a,this.monthsAbbr=i,this.days=n,this.rtl=!1,this.ymd=!1,this.yearSuffix=""}var a,i,n;return a=e,(i=[{key:"language",get:function(){return this._language},set:function(e){if("string"!=typeof e)throw new TypeError("Language must be a string");this._language=e}},{key:"months",get:function(){return this._months},set:function(e){if(12!==e.length)throw new RangeError("There must be 12 months for ".concat(this.language," language"));this._months=e}},{key:"monthsAbbr",get:function(){return this._monthsAbbr},set:function(e){if(12!==e.length)throw new RangeError("There must be 12 abbreviated months for ".concat(this.language," language"));this._monthsAbbr=e}},{key:"days",get:function(){return this._days},set:function(e){if(7!==e.length)throw new RangeError("There must be 7 days for ".concat(this.language," language"));this._days=e}}])&&t(a.prototype,i),n&&t(a,n),e}())("English",["January","February","March","April","May","June","July","August","September","October","November","December"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),s={useUtc:!1,getFullYear:function(e){return this.useUtc?e.getUTCFullYear():e.getFullYear()},getMonth:function(e){return this.useUtc?e.getUTCMonth():e.getMonth()},getDate:function(e){return this.useUtc?e.getUTCDate():e.getDate()},getDay:function(e){return this.useUtc?e.getUTCDay():e.getDay()},getHours:function(e){return this.useUtc?e.getUTCHours():e.getHours()},getMinutes:function(e){return this.useUtc?e.getUTCMinutes():e.getMinutes()},setFullYear:function(e,t,a){return this.useUtc?e.setUTCFullYear(t):e.setFullYear(t)},setMonth:function(e,t,a){return this.useUtc?e.setUTCMonth(t):e.setMonth(t)},setDate:function(e,t,a){return this.useUtc?e.setUTCDate(t):e.setDate(t)},compareDates:function(e,t){var a=new Date(e.getTime()),i=new Date(t.getTime());return this.useUtc?(a.setUTCHours(0,0,0,0),i.setUTCHours(0,0,0,0)):(a.setHours(0,0,0,0),i.setHours(0,0,0,0)),a.getTime()===i.getTime()},isValidDate:function(e){return"[object Date]"===Object.prototype.toString.call(e)&&!isNaN(e.getTime())},getDayNameAbbr:function(t,a){if("object"!==e(t))throw TypeError("Invalid Type");return a[this.getDay(t)]},getMonthName:function(t,a){if(!a)throw Error("missing 2nd parameter Months array");if("object"===e(t))return a[this.getMonth(t)];if("number"==typeof t)return a[t];throw TypeError("Invalid type")},getMonthNameAbbr:function(t,a){if(!a)throw Error("missing 2nd paramter Months array");if("object"===e(t))return a[this.getMonth(t)];if("number"==typeof t)return a[t];throw TypeError("Invalid type")},daysInMonth:function(e,t){return/8|3|5|10/.test(t)?30:1===t?(e%4||!(e%100))&&e%400?28:29:31},getNthSuffix:function(e){switch(e){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th"}},formatDate:function(e,t,a){a=a||n;var i=this.getFullYear(e),s=this.getMonth(e)+1,r=this.getDate(e);return t.replace(/dd/,("0"+r).slice(-2)).replace(/d/,r).replace(/yyyy/,i).replace(/yy/,String(i).slice(2)).replace(/MMMM/,this.getMonthName(this.getMonth(e),a.months)).replace(/MMM/,this.getMonthNameAbbr(this.getMonth(e),a.monthsAbbr)).replace(/MM/,("0"+s).slice(-2)).replace(/M(?!a|ä|e)/,s).replace(/su/,this.getNthSuffix(this.getDate(e))).replace(/D(?!e|é|i)/,this.getDayNameAbbr(e,a.days))},createDateArray:function(e,t){for(var a=[];e<=t;)a.push(new Date(e)),e=this.setDate(new Date(e),this.getDate(new Date(e))+1);return a},validateDateInput:function(e){return null===e||e instanceof Date||"string"==typeof e||"number"==typeof e}},r=function(e){return i({},s,{useUtc:e})},l=i({},s);var o=function(e,t,a,i,n,s,r,l,o,d){"boolean"!=typeof r&&(o=l,l=r,r=!1);var h,c="function"==typeof a?a.options:a;if(e&&e.render&&(c.render=e.render,c.staticRenderFns=e.staticRenderFns,c._compiled=!0,n&&(c.functional=!0)),i&&(c._scopeId=i),s?(h=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,o(e)),e&&e._registeredComponents&&e._registeredComponents.add(s)},c._ssrRegister=h):t&&(h=r?function(){t.call(this,d(this.$root.$options.shadowRoot))}:function(e){t.call(this,l(e))}),h)if(c.functional){var u=c.render;c.render=function(e,t){return h.call(t),u(e,t)}}else{var p=c.beforeCreate;c.beforeCreate=p?[].concat(p,h):[h]}return a};const d={props:{selectedDate:Date,resetTypedDate:[Date],format:[String,Function],translation:Object,inline:Boolean,id:String,name:String,refName:String,openDate:Date,placeholder:String,inputClass:[String,Object,Array],clearButton:Boolean,clearButtonIcon:String,calendarButton:Boolean,calendarButtonIcon:String,calendarButtonIconContent:String,disabled:Boolean,required:Boolean,typeable:Boolean,bootstrapStyling:Boolean,useUtc:Boolean},data:function(){return{input:null,typedDate:!1,utils:r(this.useUtc)}},computed:{formattedValue:function(){return this.selectedDate?this.typedDate?this.typedDate:"function"==typeof this.format?this.format(this.selectedDate):this.utils.formatDate(new Date(this.selectedDate),this.format,this.translation):null},computedInputClass:function(){return this.bootstrapStyling?"string"==typeof this.inputClass?[this.inputClass,"form-control"].join(" "):i({"form-control":!0},this.inputClass):this.inputClass}},watch:{resetTypedDate:function(){this.typedDate=!1}},methods:{showCalendar:function(){this.$emit("showCalendar")},parseTypedDate:function(e){if([27,13].includes(e.keyCode)&&this.input.blur(),this.typeable){var t=Date.parse(this.input.value);isNaN(t)||(this.typedDate=this.input.value,this.$emit("typedDate",new Date(this.typedDate)))}},inputBlurred:function(){this.typeable&&isNaN(Date.parse(this.input.value))&&(this.clearDate(),this.input.value=null,this.typedDate=null),this.$emit("closeCalendar")},clearDate:function(){this.$emit("clearDate")}},mounted:function(){this.input=this.$el.querySelector("input")}};var h=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{class:{"input-group":e.bootstrapStyling}},[e.calendarButton?a("span",{staticClass:"vdp-datepicker__calendar-button",class:{"input-group-prepend":e.bootstrapStyling},style:{"cursor:not-allowed;":e.disabled},on:{click:e.showCalendar}},[a("span",{class:{"input-group-text":e.bootstrapStyling}},[a("i",{class:e.calendarButtonIcon},[e._v("\n "+e._s(e.calendarButtonIconContent)+"\n "),e.calendarButtonIcon?e._e():a("span",[e._v("…")])])])]):e._e(),e._v(" "),a("input",{ref:e.refName,class:e.computedInputClass,attrs:{type:e.inline?"hidden":"text",name:e.name,id:e.id,"open-date":e.openDate,placeholder:e.placeholder,"clear-button":e.clearButton,disabled:e.disabled,required:e.required,readonly:!e.typeable,autocomplete:"off"},domProps:{value:e.formattedValue},on:{click:e.showCalendar,keyup:e.parseTypedDate,blur:e.inputBlurred}}),e._v(" "),e.clearButton&&e.selectedDate?a("span",{staticClass:"vdp-datepicker__clear-button",class:{"input-group-append":e.bootstrapStyling},on:{click:function(t){return e.clearDate()}}},[a("span",{class:{"input-group-text":e.bootstrapStyling}},[a("i",{class:e.clearButtonIcon},[e.clearButtonIcon?e._e():a("span",[e._v("×")])])])]):e._e(),e._v(" "),e._t("afterDateInput")],2)};h._withStripped=!0;var c=o({render:h,staticRenderFns:[]},void 0,d,void 0,!1,void 0,void 0,void 0);const u={props:{showDayView:Boolean,selectedDate:Date,pageDate:Date,pageTimestamp:Number,fullMonthName:Boolean,allowedToShowView:Function,dayCellContent:{type:Function,default:function(e){return e.date}},disabledDates:Object,highlighted:Object,calendarClass:[String,Object,Array],calendarStyle:Object,translation:Object,isRtl:Boolean,mondayFirst:Boolean,useUtc:Boolean},data:function(){return{utils:r(this.useUtc)}},computed:{daysOfWeek:function(){if(this.mondayFirst){var e=this.translation.days.slice();return e.push(e.shift()),e}return this.translation.days},blankDays:function(){var e=this.pageDate,t=this.useUtc?new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),1)):new Date(e.getFullYear(),e.getMonth(),1,e.getHours(),e.getMinutes());return this.mondayFirst?this.utils.getDay(t)>0?this.utils.getDay(t)-1:6:this.utils.getDay(t)},days:function(){for(var e=this.pageDate,t=[],a=this.useUtc?new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),1)):new Date(e.getFullYear(),e.getMonth(),1,e.getHours(),e.getMinutes()),i=this.utils.daysInMonth(this.utils.getFullYear(a),this.utils.getMonth(a)),n=0;n<i;n++)t.push({date:this.utils.getDate(a),timestamp:a.getTime(),isSelected:this.isSelectedDate(a),isDisabled:this.isDisabledDate(a),isHighlighted:this.isHighlightedDate(a),isHighlightStart:this.isHighlightStart(a),isHighlightEnd:this.isHighlightEnd(a),isToday:this.utils.compareDates(a,new Date),isWeekend:0===this.utils.getDay(a)||6===this.utils.getDay(a),isSaturday:6===this.utils.getDay(a),isSunday:0===this.utils.getDay(a)}),this.utils.setDate(a,this.utils.getDate(a)+1);return t},currMonthName:function(){var e=this.fullMonthName?this.translation.months:this.translation.monthsAbbr;return this.utils.getMonthNameAbbr(this.utils.getMonth(this.pageDate),e)},currYearName:function(){var e=this.translation.yearSuffix;return"".concat(this.utils.getFullYear(this.pageDate)).concat(e)},isYmd:function(){return this.translation.ymd&&!0===this.translation.ymd},isLeftNavDisabled:function(){return this.isRtl?this.isNextMonthDisabled(this.pageTimestamp):this.isPreviousMonthDisabled(this.pageTimestamp)},isRightNavDisabled:function(){return this.isRtl?this.isPreviousMonthDisabled(this.pageTimestamp):this.isNextMonthDisabled(this.pageTimestamp)}},methods:{selectDate:function(e){if(e.isDisabled)return this.$emit("selectedDisabled",e),!1;this.$emit("selectDate",e)},getPageMonth:function(){return this.utils.getMonth(this.pageDate)},showMonthCalendar:function(){this.$emit("showMonthCalendar")},changeMonth:function(e){var t=this.pageDate;this.utils.setMonth(t,this.utils.getMonth(t)+e),this.$emit("changedMonth",t)},previousMonth:function(){this.isPreviousMonthDisabled()||this.changeMonth(-1)},isPreviousMonthDisabled:function(){if(!this.disabledDates||!this.disabledDates.to)return!1;var e=this.pageDate;return this.utils.getMonth(this.disabledDates.to)>=this.utils.getMonth(e)&&this.utils.getFullYear(this.disabledDates.to)>=this.utils.getFullYear(e)},nextMonth:function(){this.isNextMonthDisabled()||this.changeMonth(1)},isNextMonthDisabled:function(){if(!this.disabledDates||!this.disabledDates.from)return!1;var e=this.pageDate;return this.utils.getMonth(this.disabledDates.from)<=this.utils.getMonth(e)&&this.utils.getFullYear(this.disabledDates.from)<=this.utils.getFullYear(e)},isSelectedDate:function(e){return this.selectedDate&&this.utils.compareDates(this.selectedDate,e)},isDisabledDate:function(e){var t=this,a=!1;return void 0!==this.disabledDates&&(void 0!==this.disabledDates.dates&&this.disabledDates.dates.forEach(function(i){if(t.utils.compareDates(e,i))return a=!0,!0}),void 0!==this.disabledDates.to&&this.disabledDates.to&&e<this.disabledDates.to&&(a=!0),void 0!==this.disabledDates.from&&this.disabledDates.from&&e>this.disabledDates.from&&(a=!0),void 0!==this.disabledDates.ranges&&this.disabledDates.ranges.forEach(function(t){if(void 0!==t.from&&t.from&&void 0!==t.to&&t.to&&e<t.to&&e>t.from)return a=!0,!0}),void 0!==this.disabledDates.days&&-1!==this.disabledDates.days.indexOf(this.utils.getDay(e))&&(a=!0),void 0!==this.disabledDates.daysOfMonth&&-1!==this.disabledDates.daysOfMonth.indexOf(this.utils.getDate(e))&&(a=!0),"function"==typeof this.disabledDates.customPredictor&&this.disabledDates.customPredictor(e)&&(a=!0),a)},isHighlightedDate:function(e){var t=this;if((!this.highlighted||!this.highlighted.includeDisabled)&&this.isDisabledDate(e))return!1;var a=!1;return void 0!==this.highlighted&&(void 0!==this.highlighted.dates&&this.highlighted.dates.forEach(function(i){if(t.utils.compareDates(e,i))return a=!0,!0}),this.isDefined(this.highlighted.from)&&this.isDefined(this.highlighted.to)&&(a=e>=this.highlighted.from&&e<=this.highlighted.to),void 0!==this.highlighted.days&&-1!==this.highlighted.days.indexOf(this.utils.getDay(e))&&(a=!0),void 0!==this.highlighted.daysOfMonth&&-1!==this.highlighted.daysOfMonth.indexOf(this.utils.getDate(e))&&(a=!0),"function"==typeof this.highlighted.customPredictor&&this.highlighted.customPredictor(e)&&(a=!0),a)},dayClasses:function(e){return{selected:e.isSelected,disabled:e.isDisabled,highlighted:e.isHighlighted,today:e.isToday,weekend:e.isWeekend,sat:e.isSaturday,sun:e.isSunday,"highlight-start":e.isHighlightStart,"highlight-end":e.isHighlightEnd}},isHighlightStart:function(e){return this.isHighlightedDate(e)&&this.highlighted.from instanceof Date&&this.utils.getFullYear(this.highlighted.from)===this.utils.getFullYear(e)&&this.utils.getMonth(this.highlighted.from)===this.utils.getMonth(e)&&this.utils.getDate(this.highlighted.from)===this.utils.getDate(e)},isHighlightEnd:function(e){return this.isHighlightedDate(e)&&this.highlighted.to instanceof Date&&this.utils.getFullYear(this.highlighted.to)===this.utils.getFullYear(e)&&this.utils.getMonth(this.highlighted.to)===this.utils.getMonth(e)&&this.utils.getDate(this.highlighted.to)===this.utils.getDate(e)},isDefined:function(e){return void 0!==e&&e}}};var p=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"show",rawName:"v-show",value:e.showDayView,expression:"showDayView"}],class:[e.calendarClass,"vdp-datepicker__calendar"],style:e.calendarStyle,on:{mousedown:function(e){e.preventDefault()}}},[e._t("beforeCalendarHeader"),e._v(" "),a("header",[a("span",{staticClass:"prev",class:{disabled:e.isLeftNavDisabled},on:{click:function(t){e.isRtl?e.nextMonth():e.previousMonth()}}},[e._v("<")]),e._v(" "),a("span",{staticClass:"day__month_btn",class:e.allowedToShowView("month")?"up":"",on:{click:e.showMonthCalendar}},[e._v(e._s(e.isYmd?e.currYearName:e.currMonthName)+" "+e._s(e.isYmd?e.currMonthName:e.currYearName))]),e._v(" "),a("span",{staticClass:"next",class:{disabled:e.isRightNavDisabled},on:{click:function(t){e.isRtl?e.previousMonth():e.nextMonth()}}},[e._v(">")])]),e._v(" "),a("div",{class:e.isRtl?"flex-rtl":""},[e._l(e.daysOfWeek,function(t){return a("span",{key:t.timestamp,staticClass:"cell day-header"},[e._v(e._s(t))])}),e._v(" "),e.blankDays>0?e._l(e.blankDays,function(e){return a("span",{key:e.timestamp,staticClass:"cell day blank"})}):e._e(),e._l(e.days,function(t){return a("span",{key:t.timestamp,staticClass:"cell day",class:e.dayClasses(t),domProps:{innerHTML:e._s(e.dayCellContent(t))},on:{click:function(a){return e.selectDate(t)}}})})],2)],2)};p._withStripped=!0;var g=o({render:p,staticRenderFns:[]},void 0,u,void 0,!1,void 0,void 0,void 0);const f={props:{showMonthView:Boolean,selectedDate:Date,pageDate:Date,pageTimestamp:Number,disabledDates:Object,calendarClass:[String,Object,Array],calendarStyle:Object,translation:Object,isRtl:Boolean,allowedToShowView:Function,useUtc:Boolean},data:function(){return{utils:r(this.useUtc)}},computed:{months:function(){for(var e=this.pageDate,t=[],a=this.useUtc?new Date(Date.UTC(e.getUTCFullYear(),0,e.getUTCDate())):new Date(e.getFullYear(),0,e.getDate(),e.getHours(),e.getMinutes()),i=0;i<12;i++)t.push({month:this.utils.getMonthName(i,this.translation.months),timestamp:a.getTime(),isSelected:this.isSelectedMonth(a),isDisabled:this.isDisabledMonth(a)}),this.utils.setMonth(a,this.utils.getMonth(a)+1);return t},pageYearName:function(){var e=this.translation.yearSuffix;return"".concat(this.utils.getFullYear(this.pageDate)).concat(e)},isLeftNavDisabled:function(){return this.isRtl?this.isNextYearDisabled(this.pageTimestamp):this.isPreviousYearDisabled(this.pageTimestamp)},isRightNavDisabled:function(){return this.isRtl?this.isPreviousYearDisabled(this.pageTimestamp):this.isNextYearDisabled(this.pageTimestamp)}},methods:{selectMonth:function(e){if(e.isDisabled)return!1;this.$emit("selectMonth",e)},changeYear:function(e){var t=this.pageDate;this.utils.setFullYear(t,this.utils.getFullYear(t)+e),this.$emit("changedYear",t)},previousYear:function(){this.isPreviousYearDisabled()||this.changeYear(-1)},isPreviousYearDisabled:function(){return!(!this.disabledDates||!this.disabledDates.to)&&this.utils.getFullYear(this.disabledDates.to)>=this.utils.getFullYear(this.pageDate)},nextYear:function(){this.isNextYearDisabled()||this.changeYear(1)},isNextYearDisabled:function(){return!(!this.disabledDates||!this.disabledDates.from)&&this.utils.getFullYear(this.disabledDates.from)<=this.utils.getFullYear(this.pageDate)},showYearCalendar:function(){this.$emit("showYearCalendar")},isSelectedMonth:function(e){return this.selectedDate&&this.utils.getFullYear(this.selectedDate)===this.utils.getFullYear(e)&&this.utils.getMonth(this.selectedDate)===this.utils.getMonth(e)},isDisabledMonth:function(e){var t=!1;return void 0!==this.disabledDates&&(void 0!==this.disabledDates.to&&this.disabledDates.to&&(this.utils.getMonth(e)<this.utils.getMonth(this.disabledDates.to)&&this.utils.getFullYear(e)<=this.utils.getFullYear(this.disabledDates.to)||this.utils.getFullYear(e)<this.utils.getFullYear(this.disabledDates.to))&&(t=!0),void 0!==this.disabledDates.from&&this.disabledDates.from&&(this.utils.getMonth(e)>this.utils.getMonth(this.disabledDates.from)&&this.utils.getFullYear(e)>=this.utils.getFullYear(this.disabledDates.from)||this.utils.getFullYear(e)>this.utils.getFullYear(this.disabledDates.from))&&(t=!0),"function"==typeof this.disabledDates.customPredictor&&this.disabledDates.customPredictor(e)&&(t=!0),t)}}};var D=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"show",rawName:"v-show",value:e.showMonthView,expression:"showMonthView"}],class:[e.calendarClass,"vdp-datepicker__calendar"],style:e.calendarStyle,on:{mousedown:function(e){e.preventDefault()}}},[e._t("beforeCalendarHeader"),e._v(" "),a("header",[a("span",{staticClass:"prev",class:{disabled:e.isLeftNavDisabled},on:{click:function(t){e.isRtl?e.nextYear():e.previousYear()}}},[e._v("<")]),e._v(" "),a("span",{staticClass:"month__year_btn",class:e.allowedToShowView("year")?"up":"",on:{click:e.showYearCalendar}},[e._v(e._s(e.pageYearName))]),e._v(" "),a("span",{staticClass:"next",class:{disabled:e.isRightNavDisabled},on:{click:function(t){e.isRtl?e.previousYear():e.nextYear()}}},[e._v(">")])]),e._v(" "),e._l(e.months,function(t){return a("span",{key:t.timestamp,staticClass:"cell month",class:{selected:t.isSelected,disabled:t.isDisabled},on:{click:function(a){return a.stopPropagation(),e.selectMonth(t)}}},[e._v(e._s(t.month))])})],2)};D._withStripped=!0;var b=o({render:D,staticRenderFns:[]},void 0,f,void 0,!1,void 0,void 0,void 0);const m={props:{showYearView:Boolean,selectedDate:Date,pageDate:Date,pageTimestamp:Number,disabledDates:Object,highlighted:Object,calendarClass:[String,Object,Array],calendarStyle:Object,translation:Object,isRtl:Boolean,allowedToShowView:Function,useUtc:Boolean},computed:{years:function(){for(var e=this.pageDate,t=[],a=this.useUtc?new Date(Date.UTC(10*Math.floor(e.getUTCFullYear()/10),e.getUTCMonth(),e.getUTCDate())):new Date(10*Math.floor(e.getFullYear()/10),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes()),i=0;i<10;i++)t.push({year:this.utils.getFullYear(a),timestamp:a.getTime(),isSelected:this.isSelectedYear(a),isDisabled:this.isDisabledYear(a)}),this.utils.setFullYear(a,this.utils.getFullYear(a)+1);return t},getPageDecade:function(){var e=10*Math.floor(this.utils.getFullYear(this.pageDate)/10),t=e+9,a=this.translation.yearSuffix;return"".concat(e," - ").concat(t).concat(a)},isLeftNavDisabled:function(){return this.isRtl?this.isNextDecadeDisabled(this.pageTimestamp):this.isPreviousDecadeDisabled(this.pageTimestamp)},isRightNavDisabled:function(){return this.isRtl?this.isPreviousDecadeDisabled(this.pageTimestamp):this.isNextDecadeDisabled(this.pageTimestamp)}},data:function(){return{utils:r(this.useUtc)}},methods:{selectYear:function(e){if(e.isDisabled)return!1;this.$emit("selectYear",e)},changeYear:function(e){var t=this.pageDate;this.utils.setFullYear(t,this.utils.getFullYear(t)+e),this.$emit("changedDecade",t)},previousDecade:function(){if(this.isPreviousDecadeDisabled())return!1;this.changeYear(-10)},isPreviousDecadeDisabled:function(){return!(!this.disabledDates||!this.disabledDates.to)&&this.utils.getFullYear(this.disabledDates.to)>10*Math.floor(this.utils.getFullYear(this.pageDate)/10)-1},nextDecade:function(){if(this.isNextDecadeDisabled())return!1;this.changeYear(10)},isNextDecadeDisabled:function(){return!(!this.disabledDates||!this.disabledDates.from)&&this.utils.getFullYear(this.disabledDates.from)<10*Math.ceil(this.utils.getFullYear(this.pageDate)/10)},isSelectedYear:function(e){return this.selectedDate&&this.utils.getFullYear(this.selectedDate)===this.utils.getFullYear(e)},isDisabledYear:function(e){var t=!1;return!(void 0===this.disabledDates||!this.disabledDates)&&(void 0!==this.disabledDates.to&&this.disabledDates.to&&this.utils.getFullYear(e)<this.utils.getFullYear(this.disabledDates.to)&&(t=!0),void 0!==this.disabledDates.from&&this.disabledDates.from&&this.utils.getFullYear(e)>this.utils.getFullYear(this.disabledDates.from)&&(t=!0),"function"==typeof this.disabledDates.customPredictor&&this.disabledDates.customPredictor(e)&&(t=!0),t)}}};var A=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"show",rawName:"v-show",value:e.showYearView,expression:"showYearView"}],class:[e.calendarClass,"vdp-datepicker__calendar"],style:e.calendarStyle,on:{mousedown:function(e){e.preventDefault()}}},[e._t("beforeCalendarHeader"),e._v(" "),a("header",[a("span",{staticClass:"prev",class:{disabled:e.isLeftNavDisabled},on:{click:function(t){e.isRtl?e.nextDecade():e.previousDecade()}}},[e._v("<")]),e._v(" "),a("span",[e._v(e._s(e.getPageDecade))]),e._v(" "),a("span",{staticClass:"next",class:{disabled:e.isRightNavDisabled},on:{click:function(t){e.isRtl?e.previousDecade():e.nextDecade()}}},[e._v(">")])]),e._v(" "),e._l(e.years,function(t){return a("span",{key:t.timestamp,staticClass:"cell year",class:{selected:t.isSelected,disabled:t.isDisabled},on:{click:function(a){return a.stopPropagation(),e.selectYear(t)}}},[e._v(e._s(t.year))])})],2)};A._withStripped=!0;var v={components:{DateInput:c,PickerDay:g,PickerMonth:b,PickerYear:o({render:A,staticRenderFns:[]},void 0,m,void 0,!1,void 0,void 0,void 0)},props:{value:{validator:function(e){return l.validateDateInput(e)}},name:String,refName:String,id:String,format:{type:[String,Function],default:"dd MMM yyyy"},language:{type:Object,default:function(){return n}},openDate:{validator:function(e){return l.validateDateInput(e)}},dayCellContent:Function,fullMonthName:Boolean,disabledDates:Object,highlighted:Object,placeholder:String,inline:Boolean,calendarClass:[String,Object,Array],inputClass:[String,Object,Array],wrapperClass:[String,Object,Array],mondayFirst:Boolean,clearButton:Boolean,clearButtonIcon:String,calendarButton:Boolean,calendarButtonIcon:String,calendarButtonIconContent:String,bootstrapStyling:Boolean,initialView:String,disabled:Boolean,required:Boolean,typeable:Boolean,useUtc:Boolean,minimumView:{type:String,default:"day"},maximumView:{type:String,default:"year"}},data:function(){var e=this.openDate?new Date(this.openDate):new Date,t=r(this.useUtc);return{pageTimestamp:t.setDate(e,1),selectedDate:null,showDayView:!1,showMonthView:!1,showYearView:!1,calendarHeight:0,resetTypedDate:new Date,utils:t}},watch:{value:function(e){this.setValue(e)},openDate:function(){this.setPageDate()},initialView:function(){this.setInitialView()}},computed:{computedInitialView:function(){return this.initialView?this.initialView:this.minimumView},pageDate:function(){return new Date(this.pageTimestamp)},translation:function(){return this.language},calendarStyle:function(){return{position:this.isInline?"static":void 0}},isOpen:function(){return this.showDayView||this.showMonthView||this.showYearView},isInline:function(){return!!this.inline},isRtl:function(){return!0===this.translation.rtl}},methods:{resetDefaultPageDate:function(){null!==this.selectedDate?this.setPageDate(this.selectedDate):this.setPageDate()},showCalendar:function(){return!this.disabled&&!this.isInline&&(this.isOpen?this.close(!0):void this.setInitialView())},setInitialView:function(){var e=this.computedInitialView;if(!this.allowedToShowView(e))throw new Error("initialView '".concat(this.initialView,"' cannot be rendered based on minimum '").concat(this.minimumView,"' and maximum '").concat(this.maximumView,"'"));switch(e){case"year":this.showYearCalendar();break;case"month":this.showMonthCalendar();break;default:this.showDayCalendar()}},allowedToShowView:function(e){var t=["day","month","year"],a=t.indexOf(this.minimumView),i=t.indexOf(this.maximumView),n=t.indexOf(e);return n>=a&&n<=i},showDayCalendar:function(){return!!this.allowedToShowView("day")&&(this.close(),this.showDayView=!0,!0)},showMonthCalendar:function(){return!!this.allowedToShowView("month")&&(this.close(),this.showMonthView=!0,!0)},showYearCalendar:function(){return!!this.allowedToShowView("year")&&(this.close(),this.showYearView=!0,!0)},setDate:function(e){var t=new Date(e);this.selectedDate=t,this.setPageDate(t),this.$emit("selected",t),this.$emit("input",t)},clearDate:function(){this.selectedDate=null,this.setPageDate(),this.$emit("selected",null),this.$emit("input",null),this.$emit("cleared")},selectDate:function(e){this.setDate(e.timestamp),this.isInline||this.close(!0),this.resetTypedDate=new Date},selectDisabledDate:function(e){this.$emit("selectedDisabled",e)},selectMonth:function(e){var t=new Date(e.timestamp);this.allowedToShowView("day")?(this.setPageDate(t),this.$emit("changedMonth",e),this.showDayCalendar()):this.selectDate(e)},selectYear:function(e){var t=new Date(e.timestamp);this.allowedToShowView("month")?(this.setPageDate(t),this.$emit("changedYear",e),this.showMonthCalendar()):this.selectDate(e)},setValue:function(e){if("string"==typeof e||"number"==typeof e){var t=new Date(e);e=isNaN(t.valueOf())?null:t}if(!e)return this.setPageDate(),void(this.selectedDate=null);this.selectedDate=e,this.setPageDate(e)},setPageDate:function(e){e||(e=this.openDate?new Date(this.openDate):new Date),this.pageTimestamp=this.utils.setDate(new Date(e),1)},handleChangedMonthFromDayPicker:function(e){this.setPageDate(e),this.$emit("changedMonth",e)},setTypedDate:function(e){this.setDate(e.getTime())},close:function(e){this.showDayView=this.showMonthView=this.showYearView=!1,this.isInline||(e&&this.$emit("closed"),document.removeEventListener("click",this.clickOutside,!1))},init:function(){this.value&&this.setValue(this.value),this.isInline&&this.setInitialView()}},mounted:function(){this.init()}},y="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());var _=document.head||document.getElementsByTagName("head")[0],w={};var C=function(e){return function(e,t){return function(e,t){var a=y?t.media||"default":e,i=w[a]||(w[a]={ids:new Set,styles:[]});if(!i.ids.has(e)){i.ids.add(e);var n=t.source;if(t.map&&(n+="\n/*# sourceURL="+t.map.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t.map))))+" */"),i.element||(i.element=document.createElement("style"),i.element.type="text/css",t.media&&i.element.setAttribute("media",t.media),_.appendChild(i.element)),"styleSheet"in i.element)i.styles.push(n),i.element.styleSheet.cssText=i.styles.filter(Boolean).join("\n");else{var s=i.ids.size-1,r=document.createTextNode(n),l=i.element.childNodes;l[s]&&i.element.removeChild(l[s]),l.length?i.element.insertBefore(r,l[s]):i.element.appendChild(r)}}}(e,t)}};const k=v;var B=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"vdp-datepicker",class:[e.wrapperClass,e.isRtl?"rtl":""]},[a("date-input",{attrs:{selectedDate:e.selectedDate,resetTypedDate:e.resetTypedDate,format:e.format,translation:e.translation,inline:e.inline,id:e.id,name:e.name,refName:e.refName,openDate:e.openDate,placeholder:e.placeholder,inputClass:e.inputClass,typeable:e.typeable,clearButton:e.clearButton,clearButtonIcon:e.clearButtonIcon,calendarButton:e.calendarButton,calendarButtonIcon:e.calendarButtonIcon,calendarButtonIconContent:e.calendarButtonIconContent,disabled:e.disabled,required:e.required,bootstrapStyling:e.bootstrapStyling,"use-utc":e.useUtc},on:{showCalendar:e.showCalendar,closeCalendar:e.close,typedDate:e.setTypedDate,clearDate:e.clearDate}},[e._t("afterDateInput",null,{slot:"afterDateInput"})],2),e._v(" "),e.allowedToShowView("day")?a("picker-day",{attrs:{pageDate:e.pageDate,selectedDate:e.selectedDate,showDayView:e.showDayView,fullMonthName:e.fullMonthName,allowedToShowView:e.allowedToShowView,disabledDates:e.disabledDates,highlighted:e.highlighted,calendarClass:e.calendarClass,calendarStyle:e.calendarStyle,translation:e.translation,pageTimestamp:e.pageTimestamp,isRtl:e.isRtl,mondayFirst:e.mondayFirst,dayCellContent:e.dayCellContent,"use-utc":e.useUtc},on:{changedMonth:e.handleChangedMonthFromDayPicker,selectDate:e.selectDate,showMonthCalendar:e.showMonthCalendar,selectedDisabled:e.selectDisabledDate}},[e._t("beforeCalendarHeader",null,{slot:"beforeCalendarHeader"})],2):e._e(),e._v(" "),e.allowedToShowView("month")?a("picker-month",{attrs:{pageDate:e.pageDate,selectedDate:e.selectedDate,showMonthView:e.showMonthView,allowedToShowView:e.allowedToShowView,disabledDates:e.disabledDates,calendarClass:e.calendarClass,calendarStyle:e.calendarStyle,translation:e.translation,isRtl:e.isRtl,"use-utc":e.useUtc},on:{selectMonth:e.selectMonth,showYearCalendar:e.showYearCalendar,changedYear:e.setPageDate}},[e._t("beforeCalendarHeader",null,{slot:"beforeCalendarHeader"})],2):e._e(),e._v(" "),e.allowedToShowView("year")?a("picker-year",{attrs:{pageDate:e.pageDate,selectedDate:e.selectedDate,showYearView:e.showYearView,allowedToShowView:e.allowedToShowView,disabledDates:e.disabledDates,calendarClass:e.calendarClass,calendarStyle:e.calendarStyle,translation:e.translation,isRtl:e.isRtl,"use-utc":e.useUtc},on:{selectYear:e.selectYear,changedDecade:e.setPageDate}},[e._t("beforeCalendarHeader",null,{slot:"beforeCalendarHeader"})],2):e._e()],1)};B._withStripped=!0;return o({render:B,staticRenderFns:[]},function(e){e&&e("data-v-64ca2bb5_0",{source:".rtl {\n direction: rtl;\n}\n.vdp-datepicker {\n position: relative;\n text-align: left;\n}\n.vdp-datepicker * {\n box-sizing: border-box;\n}\n.vdp-datepicker__calendar {\n position: absolute;\n z-index: 100;\n background: #fff;\n width: 300px;\n border: 1px solid #ccc;\n}\n.vdp-datepicker__calendar header {\n display: block;\n line-height: 40px;\n}\n.vdp-datepicker__calendar header span {\n display: inline-block;\n text-align: center;\n width: 71.42857142857143%;\n float: left;\n}\n.vdp-datepicker__calendar header .prev,\n.vdp-datepicker__calendar header .next {\n width: 14.285714285714286%;\n float: left;\n text-indent: -10000px;\n position: relative;\n}\n.vdp-datepicker__calendar header .prev:after,\n.vdp-datepicker__calendar header .next:after {\n content: '';\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translateX(-50%) translateY(-50%);\n border: 6px solid transparent;\n}\n.vdp-datepicker__calendar header .prev:after {\n border-right: 10px solid #000;\n margin-left: -5px;\n}\n.vdp-datepicker__calendar header .prev.disabled:after {\n border-right: 10px solid #ddd;\n}\n.vdp-datepicker__calendar header .next:after {\n border-left: 10px solid #000;\n margin-left: 5px;\n}\n.vdp-datepicker__calendar header .next.disabled:after {\n border-left: 10px solid #ddd;\n}\n.vdp-datepicker__calendar header .prev:not(.disabled),\n.vdp-datepicker__calendar header .next:not(.disabled),\n.vdp-datepicker__calendar header .up:not(.disabled) {\n cursor: pointer;\n}\n.vdp-datepicker__calendar header .prev:not(.disabled):hover,\n.vdp-datepicker__calendar header .next:not(.disabled):hover,\n.vdp-datepicker__calendar header .up:not(.disabled):hover {\n background: #eee;\n}\n.vdp-datepicker__calendar .disabled {\n color: #ddd;\n cursor: default;\n}\n.vdp-datepicker__calendar .flex-rtl {\n display: flex;\n width: inherit;\n flex-wrap: wrap;\n}\n.vdp-datepicker__calendar .cell {\n display: inline-block;\n padding: 0 5px;\n width: 14.285714285714286%;\n height: 40px;\n line-height: 40px;\n text-align: center;\n vertical-align: middle;\n border: 1px solid transparent;\n}\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).day,\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).month,\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).year {\n cursor: pointer;\n}\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).day:hover,\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).month:hover,\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).year:hover {\n border: 1px solid #4bd;\n}\n.vdp-datepicker__calendar .cell.selected {\n background: #4bd;\n}\n.vdp-datepicker__calendar .cell.selected:hover {\n background: #4bd;\n}\n.vdp-datepicker__calendar .cell.selected.highlighted {\n background: #4bd;\n}\n.vdp-datepicker__calendar .cell.highlighted {\n background: #cae5ed;\n}\n.vdp-datepicker__calendar .cell.highlighted.disabled {\n color: #a3a3a3;\n}\n.vdp-datepicker__calendar .cell.grey {\n color: #888;\n}\n.vdp-datepicker__calendar .cell.grey:hover {\n background: inherit;\n}\n.vdp-datepicker__calendar .cell.day-header {\n font-size: 75%;\n white-space: nowrap;\n cursor: inherit;\n}\n.vdp-datepicker__calendar .cell.day-header:hover {\n background: inherit;\n}\n.vdp-datepicker__calendar .month,\n.vdp-datepicker__calendar .year {\n width: 33.333%;\n}\n.vdp-datepicker__clear-button,\n.vdp-datepicker__calendar-button {\n cursor: pointer;\n font-style: normal;\n}\n.vdp-datepicker__clear-button.disabled,\n.vdp-datepicker__calendar-button.disabled {\n color: #999;\n cursor: default;\n}\n",map:{version:3,sources:["Datepicker.vue"],names:[],mappings:"AAAA;EACE,cAAc;AAChB;AACA;EACE,kBAAkB;EAClB,gBAAgB;AAClB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,kBAAkB;EAClB,YAAY;EACZ,gBAAgB;EAChB,YAAY;EACZ,sBAAsB;AACxB;AACA;EACE,cAAc;EACd,iBAAiB;AACnB;AACA;EACE,qBAAqB;EACrB,kBAAkB;EAClB,yBAAyB;EACzB,WAAW;AACb;AACA;;EAEE,0BAA0B;EAC1B,WAAW;EACX,qBAAqB;EACrB,kBAAkB;AACpB;AACA;;EAEE,WAAW;EACX,kBAAkB;EAClB,SAAS;EACT,QAAQ;EACR,4CAA4C;EAC5C,6BAA6B;AAC/B;AACA;EACE,6BAA6B;EAC7B,iBAAiB;AACnB;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,4BAA4B;EAC5B,gBAAgB;AAClB;AACA;EACE,4BAA4B;AAC9B;AACA;;;EAGE,eAAe;AACjB;AACA;;;EAGE,gBAAgB;AAClB;AACA;EACE,WAAW;EACX,eAAe;AACjB;AACA;EACE,aAAa;EACb,cAAc;EACd,eAAe;AACjB;AACA;EACE,qBAAqB;EACrB,cAAc;EACd,0BAA0B;EAC1B,YAAY;EACZ,iBAAiB;EACjB,kBAAkB;EAClB,sBAAsB;EACtB,6BAA6B;AAC/B;AACA;;;EAGE,eAAe;AACjB;AACA;;;EAGE,sBAAsB;AACxB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,cAAc;AAChB;AACA;EACE,WAAW;AACb;AACA;EACE,mBAAmB;AACrB;AACA;EACE,cAAc;EACd,mBAAmB;EACnB,eAAe;AACjB;AACA;EACE,mBAAmB;AACrB;AACA;;EAEE,cAAc;AAChB;AACA;;EAEE,eAAe;EACf,kBAAkB;AACpB;AACA;;EAEE,WAAW;EACX,eAAe;AACjB",file:"Datepicker.vue",sourcesContent:[".rtl {\n direction: rtl;\n}\n.vdp-datepicker {\n position: relative;\n text-align: left;\n}\n.vdp-datepicker * {\n box-sizing: border-box;\n}\n.vdp-datepicker__calendar {\n position: absolute;\n z-index: 100;\n background: #fff;\n width: 300px;\n border: 1px solid #ccc;\n}\n.vdp-datepicker__calendar header {\n display: block;\n line-height: 40px;\n}\n.vdp-datepicker__calendar header span {\n display: inline-block;\n text-align: center;\n width: 71.42857142857143%;\n float: left;\n}\n.vdp-datepicker__calendar header .prev,\n.vdp-datepicker__calendar header .next {\n width: 14.285714285714286%;\n float: left;\n text-indent: -10000px;\n position: relative;\n}\n.vdp-datepicker__calendar header .prev:after,\n.vdp-datepicker__calendar header .next:after {\n content: '';\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translateX(-50%) translateY(-50%);\n border: 6px solid transparent;\n}\n.vdp-datepicker__calendar header .prev:after {\n border-right: 10px solid #000;\n margin-left: -5px;\n}\n.vdp-datepicker__calendar header .prev.disabled:after {\n border-right: 10px solid #ddd;\n}\n.vdp-datepicker__calendar header .next:after {\n border-left: 10px solid #000;\n margin-left: 5px;\n}\n.vdp-datepicker__calendar header .next.disabled:after {\n border-left: 10px solid #ddd;\n}\n.vdp-datepicker__calendar header .prev:not(.disabled),\n.vdp-datepicker__calendar header .next:not(.disabled),\n.vdp-datepicker__calendar header .up:not(.disabled) {\n cursor: pointer;\n}\n.vdp-datepicker__calendar header .prev:not(.disabled):hover,\n.vdp-datepicker__calendar header .next:not(.disabled):hover,\n.vdp-datepicker__calendar header .up:not(.disabled):hover {\n background: #eee;\n}\n.vdp-datepicker__calendar .disabled {\n color: #ddd;\n cursor: default;\n}\n.vdp-datepicker__calendar .flex-rtl {\n display: flex;\n width: inherit;\n flex-wrap: wrap;\n}\n.vdp-datepicker__calendar .cell {\n display: inline-block;\n padding: 0 5px;\n width: 14.285714285714286%;\n height: 40px;\n line-height: 40px;\n text-align: center;\n vertical-align: middle;\n border: 1px solid transparent;\n}\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).day,\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).month,\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).year {\n cursor: pointer;\n}\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).day:hover,\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).month:hover,\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).year:hover {\n border: 1px solid #4bd;\n}\n.vdp-datepicker__calendar .cell.selected {\n background: #4bd;\n}\n.vdp-datepicker__calendar .cell.selected:hover {\n background: #4bd;\n}\n.vdp-datepicker__calendar .cell.selected.highlighted {\n background: #4bd;\n}\n.vdp-datepicker__calendar .cell.highlighted {\n background: #cae5ed;\n}\n.vdp-datepicker__calendar .cell.highlighted.disabled {\n color: #a3a3a3;\n}\n.vdp-datepicker__calendar .cell.grey {\n color: #888;\n}\n.vdp-datepicker__calendar .cell.grey:hover {\n background: inherit;\n}\n.vdp-datepicker__calendar .cell.day-header {\n font-size: 75%;\n white-space: nowrap;\n cursor: inherit;\n}\n.vdp-datepicker__calendar .cell.day-header:hover {\n background: inherit;\n}\n.vdp-datepicker__calendar .month,\n.vdp-datepicker__calendar .year {\n width: 33.333%;\n}\n.vdp-datepicker__clear-button,\n.vdp-datepicker__calendar-button {\n cursor: pointer;\n font-style: normal;\n}\n.vdp-datepicker__clear-button.disabled,\n.vdp-datepicker__calendar-button.disabled {\n color: #999;\n cursor: default;\n}\n"]},media:void 0})},k,void 0,!1,void 0,C,void 0)}); diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/js/draggable.js b/NMP 3.0 Moodle Pluggin/fliplearning/js/draggable.js new file mode 100644 index 0000000000000000000000000000000000000000..dee16afe98a1de5cdd2ee747a24e1936759bd4f5 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/js/draggable.js @@ -0,0 +1,2 @@ +(function(t,n){"object"===typeof exports&&"object"===typeof module?module.exports=n(require("sortablejs")):"function"===typeof define&&define.amd?define(["sortablejs"],n):"object"===typeof exports?exports["vuedraggable"]=n(require("sortablejs")):t["vuedraggable"]=n(t["Sortable"])})("undefined"!==typeof self?self:this,function(t){return function(t){var n={};function e(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}return e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:r})},e.r=function(t){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.t=function(t,n){if(1&n&&(t=e(t)),8&n)return t;if(4&n&&"object"===typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(e.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var o in t)e.d(r,o,function(n){return t[n]}.bind(null,o));return r},e.n=function(t){var n=t&&t.__esModule?function(){return t["default"]}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.p="",e(e.s="fb15")}({"02f4":function(t,n,e){var r=e("4588"),o=e("be13");t.exports=function(t){return function(n,e){var i,u,c=String(o(n)),a=r(e),f=c.length;return a<0||a>=f?t?"":void 0:(i=c.charCodeAt(a),i<55296||i>56319||a+1===f||(u=c.charCodeAt(a+1))<56320||u>57343?t?c.charAt(a):i:t?c.slice(a,a+2):u-56320+(i-55296<<10)+65536)}}},"0390":function(t,n,e){"use strict";var r=e("02f4")(!0);t.exports=function(t,n,e){return n+(e?r(t,n).length:1)}},"07e3":function(t,n){var e={}.hasOwnProperty;t.exports=function(t,n){return e.call(t,n)}},"0bfb":function(t,n,e){"use strict";var r=e("cb7c");t.exports=function(){var t=r(this),n="";return t.global&&(n+="g"),t.ignoreCase&&(n+="i"),t.multiline&&(n+="m"),t.unicode&&(n+="u"),t.sticky&&(n+="y"),n}},"0fc9":function(t,n,e){var r=e("3a38"),o=Math.max,i=Math.min;t.exports=function(t,n){return t=r(t),t<0?o(t+n,0):i(t,n)}},1654:function(t,n,e){"use strict";var r=e("71c1")(!0);e("30f1")(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,n=this._t,e=this._i;return e>=n.length?{value:void 0,done:!0}:(t=r(n,e),this._i+=t.length,{value:t,done:!1})})},1691:function(t,n){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},"1af6":function(t,n,e){var r=e("63b6");r(r.S,"Array",{isArray:e("9003")})},"1bc3":function(t,n,e){var r=e("f772");t.exports=function(t,n){if(!r(t))return t;var e,o;if(n&&"function"==typeof(e=t.toString)&&!r(o=e.call(t)))return o;if("function"==typeof(e=t.valueOf)&&!r(o=e.call(t)))return o;if(!n&&"function"==typeof(e=t.toString)&&!r(o=e.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},"1ec9":function(t,n,e){var r=e("f772"),o=e("e53d").document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},"20fd":function(t,n,e){"use strict";var r=e("d9f6"),o=e("aebd");t.exports=function(t,n,e){n in t?r.f(t,n,o(0,e)):t[n]=e}},"214f":function(t,n,e){"use strict";e("b0c5");var r=e("2aba"),o=e("32e9"),i=e("79e5"),u=e("be13"),c=e("2b4c"),a=e("520a"),f=c("species"),s=!i(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")}),l=function(){var t=/(?:)/,n=t.exec;t.exec=function(){return n.apply(this,arguments)};var e="ab".split(t);return 2===e.length&&"a"===e[0]&&"b"===e[1]}();t.exports=function(t,n,e){var p=c(t),d=!i(function(){var n={};return n[p]=function(){return 7},7!=""[t](n)}),v=d?!i(function(){var n=!1,e=/a/;return e.exec=function(){return n=!0,null},"split"===t&&(e.constructor={},e.constructor[f]=function(){return e}),e[p](""),!n}):void 0;if(!d||!v||"replace"===t&&!s||"split"===t&&!l){var h=/./[p],b=e(u,p,""[t],function(t,n,e,r,o){return n.exec===a?d&&!o?{done:!0,value:h.call(n,e,r)}:{done:!0,value:t.call(e,n,r)}:{done:!1}}),g=b[0],y=b[1];r(String.prototype,t,g),o(RegExp.prototype,p,2==n?function(t,n){return y.call(t,this,n)}:function(t){return y.call(t,this)})}}},"230e":function(t,n,e){var r=e("d3f4"),o=e("7726").document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},"23c6":function(t,n,e){var r=e("2d95"),o=e("2b4c")("toStringTag"),i="Arguments"==r(function(){return arguments}()),u=function(t,n){try{return t[n]}catch(e){}};t.exports=function(t){var n,e,c;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(e=u(n=Object(t),o))?e:i?r(n):"Object"==(c=r(n))&&"function"==typeof n.callee?"Arguments":c}},"241e":function(t,n,e){var r=e("25eb");t.exports=function(t){return Object(r(t))}},"25eb":function(t,n){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},"294c":function(t,n){t.exports=function(t){try{return!!t()}catch(n){return!0}}},"2aba":function(t,n,e){var r=e("7726"),o=e("32e9"),i=e("69a8"),u=e("ca5a")("src"),c=e("fa5b"),a="toString",f=(""+c).split(a);e("8378").inspectSource=function(t){return c.call(t)},(t.exports=function(t,n,e,c){var a="function"==typeof e;a&&(i(e,"name")||o(e,"name",n)),t[n]!==e&&(a&&(i(e,u)||o(e,u,t[n]?""+t[n]:f.join(String(n)))),t===r?t[n]=e:c?t[n]?t[n]=e:o(t,n,e):(delete t[n],o(t,n,e)))})(Function.prototype,a,function(){return"function"==typeof this&&this[u]||c.call(this)})},"2b4c":function(t,n,e){var r=e("5537")("wks"),o=e("ca5a"),i=e("7726").Symbol,u="function"==typeof i,c=t.exports=function(t){return r[t]||(r[t]=u&&i[t]||(u?i:o)("Symbol."+t))};c.store=r},"2d00":function(t,n){t.exports=!1},"2d95":function(t,n){var e={}.toString;t.exports=function(t){return e.call(t).slice(8,-1)}},"2fdb":function(t,n,e){"use strict";var r=e("5ca1"),o=e("d2c8"),i="includes";r(r.P+r.F*e("5147")(i),"String",{includes:function(t){return!!~o(this,t,i).indexOf(t,arguments.length>1?arguments[1]:void 0)}})},"30f1":function(t,n,e){"use strict";var r=e("b8e3"),o=e("63b6"),i=e("9138"),u=e("35e8"),c=e("481b"),a=e("8f60"),f=e("45f2"),s=e("53e2"),l=e("5168")("iterator"),p=!([].keys&&"next"in[].keys()),d="@@iterator",v="keys",h="values",b=function(){return this};t.exports=function(t,n,e,g,y,x,m){a(e,n,g);var w,O,S,j=function(t){if(!p&&t in C)return C[t];switch(t){case v:return function(){return new e(this,t)};case h:return function(){return new e(this,t)}}return function(){return new e(this,t)}},_=n+" Iterator",M=y==h,T=!1,C=t.prototype,E=C[l]||C[d]||y&&C[y],A=E||j(y),P=y?M?j("entries"):A:void 0,I="Array"==n&&C.entries||E;if(I&&(S=s(I.call(new t)),S!==Object.prototype&&S.next&&(f(S,_,!0),r||"function"==typeof S[l]||u(S,l,b))),M&&E&&E.name!==h&&(T=!0,A=function(){return E.call(this)}),r&&!m||!p&&!T&&C[l]||u(C,l,A),c[n]=A,c[_]=b,y)if(w={values:M?A:j(h),keys:x?A:j(v),entries:P},m)for(O in w)O in C||i(C,O,w[O]);else o(o.P+o.F*(p||T),n,w);return w}},"32a6":function(t,n,e){var r=e("241e"),o=e("c3a1");e("ce7e")("keys",function(){return function(t){return o(r(t))}})},"32e9":function(t,n,e){var r=e("86cc"),o=e("4630");t.exports=e("9e1e")?function(t,n,e){return r.f(t,n,o(1,e))}:function(t,n,e){return t[n]=e,t}},"32fc":function(t,n,e){var r=e("e53d").document;t.exports=r&&r.documentElement},"335c":function(t,n,e){var r=e("6b4c");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},"355d":function(t,n){n.f={}.propertyIsEnumerable},"35e8":function(t,n,e){var r=e("d9f6"),o=e("aebd");t.exports=e("8e60")?function(t,n,e){return r.f(t,n,o(1,e))}:function(t,n,e){return t[n]=e,t}},"36c3":function(t,n,e){var r=e("335c"),o=e("25eb");t.exports=function(t){return r(o(t))}},3702:function(t,n,e){var r=e("481b"),o=e("5168")("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||i[o]===t)}},"3a38":function(t,n){var e=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:e)(t)}},"40c3":function(t,n,e){var r=e("6b4c"),o=e("5168")("toStringTag"),i="Arguments"==r(function(){return arguments}()),u=function(t,n){try{return t[n]}catch(e){}};t.exports=function(t){var n,e,c;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(e=u(n=Object(t),o))?e:i?r(n):"Object"==(c=r(n))&&"function"==typeof n.callee?"Arguments":c}},4588:function(t,n){var e=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:e)(t)}},"45f2":function(t,n,e){var r=e("d9f6").f,o=e("07e3"),i=e("5168")("toStringTag");t.exports=function(t,n,e){t&&!o(t=e?t:t.prototype,i)&&r(t,i,{configurable:!0,value:n})}},4630:function(t,n){t.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},"469f":function(t,n,e){e("6c1c"),e("1654"),t.exports=e("7d7b")},"481b":function(t,n){t.exports={}},"4aa6":function(t,n,e){t.exports=e("dc62")},"4bf8":function(t,n,e){var r=e("be13");t.exports=function(t){return Object(r(t))}},"4ee1":function(t,n,e){var r=e("5168")("iterator"),o=!1;try{var i=[7][r]();i["return"]=function(){o=!0},Array.from(i,function(){throw 2})}catch(u){}t.exports=function(t,n){if(!n&&!o)return!1;var e=!1;try{var i=[7],c=i[r]();c.next=function(){return{done:e=!0}},i[r]=function(){return c},t(i)}catch(u){}return e}},"50ed":function(t,n){t.exports=function(t,n){return{value:n,done:!!t}}},5147:function(t,n,e){var r=e("2b4c")("match");t.exports=function(t){var n=/./;try{"/./"[t](n)}catch(e){try{return n[r]=!1,!"/./"[t](n)}catch(o){}}return!0}},5168:function(t,n,e){var r=e("dbdb")("wks"),o=e("62a0"),i=e("e53d").Symbol,u="function"==typeof i,c=t.exports=function(t){return r[t]||(r[t]=u&&i[t]||(u?i:o)("Symbol."+t))};c.store=r},5176:function(t,n,e){t.exports=e("51b6")},"51b6":function(t,n,e){e("a3c3"),t.exports=e("584a").Object.assign},"520a":function(t,n,e){"use strict";var r=e("0bfb"),o=RegExp.prototype.exec,i=String.prototype.replace,u=o,c="lastIndex",a=function(){var t=/a/,n=/b*/g;return o.call(t,"a"),o.call(n,"a"),0!==t[c]||0!==n[c]}(),f=void 0!==/()??/.exec("")[1],s=a||f;s&&(u=function(t){var n,e,u,s,l=this;return f&&(e=new RegExp("^"+l.source+"$(?!\\s)",r.call(l))),a&&(n=l[c]),u=o.call(l,t),a&&u&&(l[c]=l.global?u.index+u[0].length:n),f&&u&&u.length>1&&i.call(u[0],e,function(){for(s=1;s<arguments.length-2;s++)void 0===arguments[s]&&(u[s]=void 0)}),u}),t.exports=u},"53e2":function(t,n,e){var r=e("07e3"),o=e("241e"),i=e("5559")("IE_PROTO"),u=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},"549b":function(t,n,e){"use strict";var r=e("d864"),o=e("63b6"),i=e("241e"),u=e("b0dc"),c=e("3702"),a=e("b447"),f=e("20fd"),s=e("7cd6");o(o.S+o.F*!e("4ee1")(function(t){Array.from(t)}),"Array",{from:function(t){var n,e,o,l,p=i(t),d="function"==typeof this?this:Array,v=arguments.length,h=v>1?arguments[1]:void 0,b=void 0!==h,g=0,y=s(p);if(b&&(h=r(h,v>2?arguments[2]:void 0,2)),void 0==y||d==Array&&c(y))for(n=a(p.length),e=new d(n);n>g;g++)f(e,g,b?h(p[g],g):p[g]);else for(l=y.call(p),e=new d;!(o=l.next()).done;g++)f(e,g,b?u(l,h,[o.value,g],!0):o.value);return e.length=g,e}})},"54a1":function(t,n,e){e("6c1c"),e("1654"),t.exports=e("95d5")},5537:function(t,n,e){var r=e("8378"),o=e("7726"),i="__core-js_shared__",u=o[i]||(o[i]={});(t.exports=function(t,n){return u[t]||(u[t]=void 0!==n?n:{})})("versions",[]).push({version:r.version,mode:e("2d00")?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},5559:function(t,n,e){var r=e("dbdb")("keys"),o=e("62a0");t.exports=function(t){return r[t]||(r[t]=o(t))}},"584a":function(t,n){var e=t.exports={version:"2.6.5"};"number"==typeof __e&&(__e=e)},"5b4e":function(t,n,e){var r=e("36c3"),o=e("b447"),i=e("0fc9");t.exports=function(t){return function(n,e,u){var c,a=r(n),f=o(a.length),s=i(u,f);if(t&&e!=e){while(f>s)if(c=a[s++],c!=c)return!0}else for(;f>s;s++)if((t||s in a)&&a[s]===e)return t||s||0;return!t&&-1}}},"5ca1":function(t,n,e){var r=e("7726"),o=e("8378"),i=e("32e9"),u=e("2aba"),c=e("9b43"),a="prototype",f=function(t,n,e){var s,l,p,d,v=t&f.F,h=t&f.G,b=t&f.S,g=t&f.P,y=t&f.B,x=h?r:b?r[n]||(r[n]={}):(r[n]||{})[a],m=h?o:o[n]||(o[n]={}),w=m[a]||(m[a]={});for(s in h&&(e=n),e)l=!v&&x&&void 0!==x[s],p=(l?x:e)[s],d=y&&l?c(p,r):g&&"function"==typeof p?c(Function.call,p):p,x&&u(x,s,p,t&f.U),m[s]!=p&&i(m,s,d),g&&w[s]!=p&&(w[s]=p)};r.core=o,f.F=1,f.G=2,f.S=4,f.P=8,f.B=16,f.W=32,f.U=64,f.R=128,t.exports=f},"5d73":function(t,n,e){t.exports=e("469f")},"5f1b":function(t,n,e){"use strict";var r=e("23c6"),o=RegExp.prototype.exec;t.exports=function(t,n){var e=t.exec;if("function"===typeof e){var i=e.call(t,n);if("object"!==typeof i)throw new TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==r(t))throw new TypeError("RegExp#exec called on incompatible receiver");return o.call(t,n)}},"626a":function(t,n,e){var r=e("2d95");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},"62a0":function(t,n){var e=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++e+r).toString(36))}},"63b6":function(t,n,e){var r=e("e53d"),o=e("584a"),i=e("d864"),u=e("35e8"),c=e("07e3"),a="prototype",f=function(t,n,e){var s,l,p,d=t&f.F,v=t&f.G,h=t&f.S,b=t&f.P,g=t&f.B,y=t&f.W,x=v?o:o[n]||(o[n]={}),m=x[a],w=v?r:h?r[n]:(r[n]||{})[a];for(s in v&&(e=n),e)l=!d&&w&&void 0!==w[s],l&&c(x,s)||(p=l?w[s]:e[s],x[s]=v&&"function"!=typeof w[s]?e[s]:g&&l?i(p,r):y&&w[s]==p?function(t){var n=function(n,e,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(n);case 2:return new t(n,e)}return new t(n,e,r)}return t.apply(this,arguments)};return n[a]=t[a],n}(p):b&&"function"==typeof p?i(Function.call,p):p,b&&((x.virtual||(x.virtual={}))[s]=p,t&f.R&&m&&!m[s]&&u(m,s,p)))};f.F=1,f.G=2,f.S=4,f.P=8,f.B=16,f.W=32,f.U=64,f.R=128,t.exports=f},6762:function(t,n,e){"use strict";var r=e("5ca1"),o=e("c366")(!0);r(r.P,"Array",{includes:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),e("9c6c")("includes")},6821:function(t,n,e){var r=e("626a"),o=e("be13");t.exports=function(t){return r(o(t))}},"69a8":function(t,n){var e={}.hasOwnProperty;t.exports=function(t,n){return e.call(t,n)}},"6a99":function(t,n,e){var r=e("d3f4");t.exports=function(t,n){if(!r(t))return t;var e,o;if(n&&"function"==typeof(e=t.toString)&&!r(o=e.call(t)))return o;if("function"==typeof(e=t.valueOf)&&!r(o=e.call(t)))return o;if(!n&&"function"==typeof(e=t.toString)&&!r(o=e.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},"6b4c":function(t,n){var e={}.toString;t.exports=function(t){return e.call(t).slice(8,-1)}},"6c1c":function(t,n,e){e("c367");for(var r=e("e53d"),o=e("35e8"),i=e("481b"),u=e("5168")("toStringTag"),c="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),a=0;a<c.length;a++){var f=c[a],s=r[f],l=s&&s.prototype;l&&!l[u]&&o(l,u,f),i[f]=i.Array}},"71c1":function(t,n,e){var r=e("3a38"),o=e("25eb");t.exports=function(t){return function(n,e){var i,u,c=String(o(n)),a=r(e),f=c.length;return a<0||a>=f?t?"":void 0:(i=c.charCodeAt(a),i<55296||i>56319||a+1===f||(u=c.charCodeAt(a+1))<56320||u>57343?t?c.charAt(a):i:t?c.slice(a,a+2):u-56320+(i-55296<<10)+65536)}}},7726:function(t,n){var e=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)},"774e":function(t,n,e){t.exports=e("d2d5")},"77f1":function(t,n,e){var r=e("4588"),o=Math.max,i=Math.min;t.exports=function(t,n){return t=r(t),t<0?o(t+n,0):i(t,n)}},"794b":function(t,n,e){t.exports=!e("8e60")&&!e("294c")(function(){return 7!=Object.defineProperty(e("1ec9")("div"),"a",{get:function(){return 7}}).a})},"79aa":function(t,n){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},"79e5":function(t,n){t.exports=function(t){try{return!!t()}catch(n){return!0}}},"7cd6":function(t,n,e){var r=e("40c3"),o=e("5168")("iterator"),i=e("481b");t.exports=e("584a").getIteratorMethod=function(t){if(void 0!=t)return t[o]||t["@@iterator"]||i[r(t)]}},"7d7b":function(t,n,e){var r=e("e4ae"),o=e("7cd6");t.exports=e("584a").getIterator=function(t){var n=o(t);if("function"!=typeof n)throw TypeError(t+" is not iterable!");return r(n.call(t))}},"7e90":function(t,n,e){var r=e("d9f6"),o=e("e4ae"),i=e("c3a1");t.exports=e("8e60")?Object.defineProperties:function(t,n){o(t);var e,u=i(n),c=u.length,a=0;while(c>a)r.f(t,e=u[a++],n[e]);return t}},8378:function(t,n){var e=t.exports={version:"2.6.5"};"number"==typeof __e&&(__e=e)},8436:function(t,n){t.exports=function(){}},"86cc":function(t,n,e){var r=e("cb7c"),o=e("c69a"),i=e("6a99"),u=Object.defineProperty;n.f=e("9e1e")?Object.defineProperty:function(t,n,e){if(r(t),n=i(n,!0),r(e),o)try{return u(t,n,e)}catch(c){}if("get"in e||"set"in e)throw TypeError("Accessors not supported!");return"value"in e&&(t[n]=e.value),t}},"8aae":function(t,n,e){e("32a6"),t.exports=e("584a").Object.keys},"8e60":function(t,n,e){t.exports=!e("294c")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},"8f60":function(t,n,e){"use strict";var r=e("a159"),o=e("aebd"),i=e("45f2"),u={};e("35e8")(u,e("5168")("iterator"),function(){return this}),t.exports=function(t,n,e){t.prototype=r(u,{next:o(1,e)}),i(t,n+" Iterator")}},9003:function(t,n,e){var r=e("6b4c");t.exports=Array.isArray||function(t){return"Array"==r(t)}},9138:function(t,n,e){t.exports=e("35e8")},9306:function(t,n,e){"use strict";var r=e("c3a1"),o=e("9aa9"),i=e("355d"),u=e("241e"),c=e("335c"),a=Object.assign;t.exports=!a||e("294c")(function(){var t={},n={},e=Symbol(),r="abcdefghijklmnopqrst";return t[e]=7,r.split("").forEach(function(t){n[t]=t}),7!=a({},t)[e]||Object.keys(a({},n)).join("")!=r})?function(t,n){var e=u(t),a=arguments.length,f=1,s=o.f,l=i.f;while(a>f){var p,d=c(arguments[f++]),v=s?r(d).concat(s(d)):r(d),h=v.length,b=0;while(h>b)l.call(d,p=v[b++])&&(e[p]=d[p])}return e}:a},9427:function(t,n,e){var r=e("63b6");r(r.S,"Object",{create:e("a159")})},"95d5":function(t,n,e){var r=e("40c3"),o=e("5168")("iterator"),i=e("481b");t.exports=e("584a").isIterable=function(t){var n=Object(t);return void 0!==n[o]||"@@iterator"in n||i.hasOwnProperty(r(n))}},"9aa9":function(t,n){n.f=Object.getOwnPropertySymbols},"9b43":function(t,n,e){var r=e("d8e8");t.exports=function(t,n,e){if(r(t),void 0===n)return t;switch(e){case 1:return function(e){return t.call(n,e)};case 2:return function(e,r){return t.call(n,e,r)};case 3:return function(e,r,o){return t.call(n,e,r,o)}}return function(){return t.apply(n,arguments)}}},"9c6c":function(t,n,e){var r=e("2b4c")("unscopables"),o=Array.prototype;void 0==o[r]&&e("32e9")(o,r,{}),t.exports=function(t){o[r][t]=!0}},"9def":function(t,n,e){var r=e("4588"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},"9e1e":function(t,n,e){t.exports=!e("79e5")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},a159:function(t,n,e){var r=e("e4ae"),o=e("7e90"),i=e("1691"),u=e("5559")("IE_PROTO"),c=function(){},a="prototype",f=function(){var t,n=e("1ec9")("iframe"),r=i.length,o="<",u=">";n.style.display="none",e("32fc").appendChild(n),n.src="javascript:",t=n.contentWindow.document,t.open(),t.write(o+"script"+u+"document.F=Object"+o+"/script"+u),t.close(),f=t.F;while(r--)delete f[a][i[r]];return f()};t.exports=Object.create||function(t,n){var e;return null!==t?(c[a]=r(t),e=new c,c[a]=null,e[u]=t):e=f(),void 0===n?e:o(e,n)}},a352:function(n,e){n.exports=t},a3c3:function(t,n,e){var r=e("63b6");r(r.S+r.F,"Object",{assign:e("9306")})},a481:function(t,n,e){"use strict";var r=e("cb7c"),o=e("4bf8"),i=e("9def"),u=e("4588"),c=e("0390"),a=e("5f1b"),f=Math.max,s=Math.min,l=Math.floor,p=/\$([$&`']|\d\d?|<[^>]*>)/g,d=/\$([$&`']|\d\d?)/g,v=function(t){return void 0===t?t:String(t)};e("214f")("replace",2,function(t,n,e,h){return[function(r,o){var i=t(this),u=void 0==r?void 0:r[n];return void 0!==u?u.call(r,i,o):e.call(String(i),r,o)},function(t,n){var o=h(e,t,this,n);if(o.done)return o.value;var l=r(t),p=String(this),d="function"===typeof n;d||(n=String(n));var g=l.global;if(g){var y=l.unicode;l.lastIndex=0}var x=[];while(1){var m=a(l,p);if(null===m)break;if(x.push(m),!g)break;var w=String(m[0]);""===w&&(l.lastIndex=c(p,i(l.lastIndex),y))}for(var O="",S=0,j=0;j<x.length;j++){m=x[j];for(var _=String(m[0]),M=f(s(u(m.index),p.length),0),T=[],C=1;C<m.length;C++)T.push(v(m[C]));var E=m.groups;if(d){var A=[_].concat(T,M,p);void 0!==E&&A.push(E);var P=String(n.apply(void 0,A))}else P=b(_,p,M,T,E,n);M>=S&&(O+=p.slice(S,M)+P,S=M+_.length)}return O+p.slice(S)}];function b(t,n,r,i,u,c){var a=r+t.length,f=i.length,s=d;return void 0!==u&&(u=o(u),s=p),e.call(c,s,function(e,o){var c;switch(o.charAt(0)){case"$":return"$";case"&":return t;case"`":return n.slice(0,r);case"'":return n.slice(a);case"<":c=u[o.slice(1,-1)];break;default:var s=+o;if(0===s)return e;if(s>f){var p=l(s/10);return 0===p?e:p<=f?void 0===i[p-1]?o.charAt(1):i[p-1]+o.charAt(1):e}c=i[s-1]}return void 0===c?"":c})}})},a4bb:function(t,n,e){t.exports=e("8aae")},a745:function(t,n,e){t.exports=e("f410")},aae3:function(t,n,e){var r=e("d3f4"),o=e("2d95"),i=e("2b4c")("match");t.exports=function(t){var n;return r(t)&&(void 0!==(n=t[i])?!!n:"RegExp"==o(t))}},aebd:function(t,n){t.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},b0c5:function(t,n,e){"use strict";var r=e("520a");e("5ca1")({target:"RegExp",proto:!0,forced:r!==/./.exec},{exec:r})},b0dc:function(t,n,e){var r=e("e4ae");t.exports=function(t,n,e,o){try{return o?n(r(e)[0],e[1]):n(e)}catch(u){var i=t["return"];throw void 0!==i&&r(i.call(t)),u}}},b447:function(t,n,e){var r=e("3a38"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},b8e3:function(t,n){t.exports=!0},be13:function(t,n){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},c366:function(t,n,e){var r=e("6821"),o=e("9def"),i=e("77f1");t.exports=function(t){return function(n,e,u){var c,a=r(n),f=o(a.length),s=i(u,f);if(t&&e!=e){while(f>s)if(c=a[s++],c!=c)return!0}else for(;f>s;s++)if((t||s in a)&&a[s]===e)return t||s||0;return!t&&-1}}},c367:function(t,n,e){"use strict";var r=e("8436"),o=e("50ed"),i=e("481b"),u=e("36c3");t.exports=e("30f1")(Array,"Array",function(t,n){this._t=u(t),this._i=0,this._k=n},function(){var t=this._t,n=this._k,e=this._i++;return!t||e>=t.length?(this._t=void 0,o(1)):o(0,"keys"==n?e:"values"==n?t[e]:[e,t[e]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},c3a1:function(t,n,e){var r=e("e6f3"),o=e("1691");t.exports=Object.keys||function(t){return r(t,o)}},c649:function(t,n,e){"use strict";(function(t){e.d(n,"c",function(){return l}),e.d(n,"a",function(){return f}),e.d(n,"b",function(){return u}),e.d(n,"d",function(){return s});e("a481");var r=e("4aa6"),o=e.n(r);function i(){return"undefined"!==typeof window?window.console:t.console}var u=i();function c(t){var n=o()(null);return function(e){var r=n[e];return r||(n[e]=t(e))}}var a=/-(\w)/g,f=c(function(t){return t.replace(a,function(t,n){return n?n.toUpperCase():""})});function s(t){null!==t.parentElement&&t.parentElement.removeChild(t)}function l(t,n,e){var r=0===e?t.children[0]:t.children[e-1].nextSibling;t.insertBefore(n,r)}}).call(this,e("c8ba"))},c69a:function(t,n,e){t.exports=!e("9e1e")&&!e("79e5")(function(){return 7!=Object.defineProperty(e("230e")("div"),"a",{get:function(){return 7}}).a})},c8ba:function(t,n){var e;e=function(){return this}();try{e=e||new Function("return this")()}catch(r){"object"===typeof window&&(e=window)}t.exports=e},c8bb:function(t,n,e){t.exports=e("54a1")},ca5a:function(t,n){var e=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++e+r).toString(36))}},cb7c:function(t,n,e){var r=e("d3f4");t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},ce7e:function(t,n,e){var r=e("63b6"),o=e("584a"),i=e("294c");t.exports=function(t,n){var e=(o.Object||{})[t]||Object[t],u={};u[t]=n(e),r(r.S+r.F*i(function(){e(1)}),"Object",u)}},d2c8:function(t,n,e){var r=e("aae3"),o=e("be13");t.exports=function(t,n,e){if(r(n))throw TypeError("String#"+e+" doesn't accept regex!");return String(o(t))}},d2d5:function(t,n,e){e("1654"),e("549b"),t.exports=e("584a").Array.from},d3f4:function(t,n){t.exports=function(t){return"object"===typeof t?null!==t:"function"===typeof t}},d864:function(t,n,e){var r=e("79aa");t.exports=function(t,n,e){if(r(t),void 0===n)return t;switch(e){case 1:return function(e){return t.call(n,e)};case 2:return function(e,r){return t.call(n,e,r)};case 3:return function(e,r,o){return t.call(n,e,r,o)}}return function(){return t.apply(n,arguments)}}},d8e8:function(t,n){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},d9f6:function(t,n,e){var r=e("e4ae"),o=e("794b"),i=e("1bc3"),u=Object.defineProperty;n.f=e("8e60")?Object.defineProperty:function(t,n,e){if(r(t),n=i(n,!0),r(e),o)try{return u(t,n,e)}catch(c){}if("get"in e||"set"in e)throw TypeError("Accessors not supported!");return"value"in e&&(t[n]=e.value),t}},dbdb:function(t,n,e){var r=e("584a"),o=e("e53d"),i="__core-js_shared__",u=o[i]||(o[i]={});(t.exports=function(t,n){return u[t]||(u[t]=void 0!==n?n:{})})("versions",[]).push({version:r.version,mode:e("b8e3")?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},dc62:function(t,n,e){e("9427");var r=e("584a").Object;t.exports=function(t,n){return r.create(t,n)}},e4ae:function(t,n,e){var r=e("f772");t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},e53d:function(t,n){var e=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)},e6f3:function(t,n,e){var r=e("07e3"),o=e("36c3"),i=e("5b4e")(!1),u=e("5559")("IE_PROTO");t.exports=function(t,n){var e,c=o(t),a=0,f=[];for(e in c)e!=u&&r(c,e)&&f.push(e);while(n.length>a)r(c,e=n[a++])&&(~i(f,e)||f.push(e));return f}},f410:function(t,n,e){e("1af6"),t.exports=e("584a").Array.isArray},f559:function(t,n,e){"use strict";var r=e("5ca1"),o=e("9def"),i=e("d2c8"),u="startsWith",c=""[u];r(r.P+r.F*e("5147")(u),"String",{startsWith:function(t){var n=i(this,t,u),e=o(Math.min(arguments.length>1?arguments[1]:void 0,n.length)),r=String(t);return c?c.call(n,r,e):n.slice(e,e+r.length)===r}})},f772:function(t,n){t.exports=function(t){return"object"===typeof t?null!==t:"function"===typeof t}},fa5b:function(t,n,e){t.exports=e("5537")("native-function-to-string",Function.toString)},fb15:function(t,n,e){"use strict";var r;(e.r(n),"undefined"!==typeof window)&&((r=window.document.currentScript)&&(r=r.src.match(/(.+\/)[^\/]+\.js(\?.*)?$/))&&(e.p=r[1]));var o=e("5176"),i=e.n(o),u=(e("f559"),e("a4bb")),c=e.n(u),a=(e("6762"),e("2fdb"),e("a745")),f=e.n(a);function s(t){if(f()(t))return t}var l=e("5d73"),p=e.n(l);function d(t,n){var e=[],r=!0,o=!1,i=void 0;try{for(var u,c=p()(t);!(r=(u=c.next()).done);r=!0)if(e.push(u.value),n&&e.length===n)break}catch(a){o=!0,i=a}finally{try{r||null==c["return"]||c["return"]()}finally{if(o)throw i}}return e}function v(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function h(t,n){return s(t)||d(t,n)||v()}function b(t){if(f()(t)){for(var n=0,e=new Array(t.length);n<t.length;n++)e[n]=t[n];return e}}var g=e("774e"),y=e.n(g),x=e("c8bb"),m=e.n(x);function w(t){if(m()(Object(t))||"[object Arguments]"===Object.prototype.toString.call(t))return y()(t)}function O(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function S(t){return b(t)||w(t)||O()}var j=e("a352"),_=e.n(j),M=e("c649");function T(t,n,e){return void 0===e?t:(t=t||{},t[n]=e,t)}function C(t,n){return t.map(function(t){return t.elm}).indexOf(n)}function E(t,n,e,r){if(!t)return[];var o=t.map(function(t){return t.elm}),i=n.length-r,u=S(n).map(function(t,n){return n>=i?o.length:o.indexOf(t)});return e?u.filter(function(t){return-1!==t}):u}function A(t,n){var e=this;this.$nextTick(function(){return e.$emit(t.toLowerCase(),n)})}function P(t){var n=this;return function(e){null!==n.realList&&n["onDrag"+t](e),A.call(n,t,e)}}function I(t){if(!t||1!==t.length)return!1;var n=h(t,1),e=n[0].componentOptions;return!!e&&["transition-group","TransitionGroup"].includes(e.tag)}function L(t,n){var e=n.header,r=n.footer,o=0,i=0;return e&&(o=e.length,t=t?[].concat(S(e),S(t)):S(e)),r&&(i=r.length,t=t?[].concat(S(t),S(r)):S(r)),{children:t,headerOffset:o,footerOffset:i}}function F(t,n){var e=null,r=function(t,n){e=T(e,t,n)},o=c()(t).filter(function(t){return"id"===t||t.startsWith("data-")}).reduce(function(n,e){return n[e]=t[e],n},{});if(r("attrs",o),!n)return e;var u=n.on,a=n.props,f=n.attrs;return r("on",u),r("props",a),i()(e.attrs,f),e}var $=["Start","Add","Remove","Update","End"],k=["Choose","Sort","Filter","Clone"],D=["Move"].concat($,k).map(function(t){return"on"+t}),R=null,V={options:Object,list:{type:Array,required:!1,default:null},value:{type:Array,required:!1,default:null},noTransitionOnDrag:{type:Boolean,default:!1},clone:{type:Function,default:function(t){return t}},element:{type:String,default:"div"},tag:{type:String,default:null},move:{type:Function,default:null},componentData:{type:Object,required:!1,default:null}},N={name:"draggable",inheritAttrs:!1,props:V,data:function(){return{transitionMode:!1,noneFunctionalComponentMode:!1,init:!1}},render:function(t){var n=this.$slots.default;this.transitionMode=I(n);var e=L(n,this.$slots),r=e.children,o=e.headerOffset,i=e.footerOffset;this.headerOffset=o,this.footerOffset=i;var u=F(this.$attrs,this.componentData);return t(this.getTag(),u,r)},created:function(){null!==this.list&&null!==this.value&&M["b"].error("Value and list props are mutually exclusive! Please set one or another."),"div"!==this.element&&M["b"].warn("Element props is deprecated please use tag props instead. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#element-props"),void 0!==this.options&&M["b"].warn("Options props is deprecated, add sortable options directly as vue.draggable item, or use v-bind. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#options-props")},mounted:function(){var t=this;if(this.noneFunctionalComponentMode=this.getTag().toLowerCase()!==this.$el.nodeName.toLowerCase(),this.noneFunctionalComponentMode&&this.transitionMode)throw new Error("Transition-group inside component is not supported. Please alter tag value or remove transition-group. Current tag value: ".concat(this.getTag()));var n={};$.forEach(function(e){n["on"+e]=P.call(t,e)}),k.forEach(function(e){n["on"+e]=A.bind(t,e)});var e=c()(this.$attrs).reduce(function(n,e){return n[Object(M["a"])(e)]=t.$attrs[e],n},{}),r=i()({},this.options,e,n,{onMove:function(n,e){return t.onDragMove(n,e)}});!("draggable"in r)&&(r.draggable=">*"),this._sortable=new _.a(this.rootContainer,r),this.computeIndexes()},beforeDestroy:function(){void 0!==this._sortable&&this._sortable.destroy()},computed:{rootContainer:function(){return this.transitionMode?this.$el.children[0]:this.$el},realList:function(){return this.list?this.list:this.value}},watch:{options:{handler:function(t){this.updateOptions(t)},deep:!0},$attrs:{handler:function(t){this.updateOptions(t)},deep:!0},realList:function(){this.computeIndexes()}},methods:{getTag:function(){return this.tag||this.element},updateOptions:function(t){for(var n in t){var e=Object(M["a"])(n);-1===D.indexOf(e)&&this._sortable.option(e,t[n])}},getChildrenNodes:function(){if(this.init||(this.noneFunctionalComponentMode=this.noneFunctionalComponentMode&&1===this.$children.length,this.init=!0),this.noneFunctionalComponentMode)return this.$children[0].$slots.default;var t=this.$slots.default;return this.transitionMode?t[0].child.$slots.default:t},computeIndexes:function(){var t=this;this.$nextTick(function(){t.visibleIndexes=E(t.getChildrenNodes(),t.rootContainer.children,t.transitionMode,t.footerOffset)})},getUnderlyingVm:function(t){var n=C(this.getChildrenNodes()||[],t);if(-1===n)return null;var e=this.realList[n];return{index:n,element:e}},getUnderlyingPotencialDraggableComponent:function(t){var n=t.__vue__;return n&&n.$options&&"transition-group"===n.$options._componentTag?n.$parent:n},emitChanges:function(t){var n=this;this.$nextTick(function(){n.$emit("change",t)})},alterList:function(t){if(this.list)t(this.list);else{var n=S(this.value);t(n),this.$emit("input",n)}},spliceList:function(){var t=arguments,n=function(n){return n.splice.apply(n,S(t))};this.alterList(n)},updatePosition:function(t,n){var e=function(e){return e.splice(n,0,e.splice(t,1)[0])};this.alterList(e)},getRelatedContextFromMoveEvent:function(t){var n=t.to,e=t.related,r=this.getUnderlyingPotencialDraggableComponent(n);if(!r)return{component:r};var o=r.realList,u={list:o,component:r};if(n!==e&&o&&r.getUnderlyingVm){var c=r.getUnderlyingVm(e);if(c)return i()(c,u)}return u},getVmIndex:function(t){var n=this.visibleIndexes,e=n.length;return t>e-1?e:n[t]},getComponent:function(){return this.$slots.default[0].componentInstance},resetTransitionData:function(t){if(this.noTransitionOnDrag&&this.transitionMode){var n=this.getChildrenNodes();n[t].data=null;var e=this.getComponent();e.children=[],e.kept=void 0}},onDragStart:function(t){this.context=this.getUnderlyingVm(t.item),t.item._underlying_vm_=this.clone(this.context.element),R=t.item},onDragAdd:function(t){var n=t.item._underlying_vm_;if(void 0!==n){Object(M["d"])(t.item);var e=this.getVmIndex(t.newIndex);this.spliceList(e,0,n),this.computeIndexes();var r={element:n,newIndex:e};this.emitChanges({added:r})}},onDragRemove:function(t){if(Object(M["c"])(this.rootContainer,t.item,t.oldIndex),"clone"!==t.pullMode){var n=this.context.index;this.spliceList(n,1);var e={element:this.context.element,oldIndex:n};this.resetTransitionData(n),this.emitChanges({removed:e})}else Object(M["d"])(t.clone)},onDragUpdate:function(t){Object(M["d"])(t.item),Object(M["c"])(t.from,t.item,t.oldIndex);var n=this.context.index,e=this.getVmIndex(t.newIndex);this.updatePosition(n,e);var r={element:this.context.element,oldIndex:n,newIndex:e};this.emitChanges({moved:r})},updateProperty:function(t,n){t.hasOwnProperty(n)&&(t[n]+=this.headerOffset)},computeFutureIndex:function(t,n){if(!t.element)return 0;var e=S(n.to.children).filter(function(t){return"none"!==t.style["display"]}),r=e.indexOf(n.related),o=t.component.getVmIndex(r),i=-1!==e.indexOf(R);return i||!n.willInsertAfter?o:o+1},onDragMove:function(t,n){var e=this.move;if(!e||!this.realList)return!0;var r=this.getRelatedContextFromMoveEvent(t),o=this.context,u=this.computeFutureIndex(r,t);i()(o,{futureIndex:u});var c=i()({},t,{relatedContext:r,draggedContext:o});return e(c,n)},onDragEnd:function(){this.computeIndexes(),R=null}}};"undefined"!==typeof window&&"Vue"in window&&window.Vue.component("draggable",N);var U=N;n["default"]=U}})["default"]}); +//# sourceMappingURL=vuedraggable.umd.min.js.map \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/js/moment-timezone.js b/NMP 3.0 Moodle Pluggin/fliplearning/js/moment-timezone.js new file mode 100644 index 0000000000000000000000000000000000000000..69041e75a21028fe94809e0dd889f91dc26bb1a2 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/js/moment-timezone.js @@ -0,0 +1 @@ +!function(c,M){"use strict";"object"==typeof module&&module.exports?module.exports=M(require("moment")):"function"==typeof define&&define.amd?define(["moment"],M):M(c.moment)}(this,function(b){"use strict";void 0===b.version&&b.default&&(b=b.default);var M,a={},p={},n={},i={},e={};b&&"string"==typeof b.version||S("Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/");var c=b.version.split("."),A=+c[0],o=+c[1];function L(c){return 96<c?c-87:64<c?c-29:c-48}function z(c){var M=0,A=c.split("."),o=A[0],z=A[1]||"",b=1,a=0,p=1;for(45===c.charCodeAt(0)&&(p=-(M=1));M<o.length;M++)a=60*a+L(o.charCodeAt(M));for(M=0;M<z.length;M++)b/=60,a+=L(z.charCodeAt(M))*b;return a*p}function O(c){for(var M=0;M<c.length;M++)c[M]=z(c[M])}function q(c,M){for(var A=[],o=0;o<M.length;o++)A[o]=c[M[o]];return A}function r(c){var M=c.split("|"),A=M[2].split(" "),o=M[3].split(""),z=M[4].split(" ");return O(A),O(o),O(z),function(c,M){for(var A=0;A<M;A++)c[A]=Math.round((c[A-1]||0)+6e4*c[A]);c[M-1]=1/0}(z,o.length),{name:M[0],abbrs:q(M[1].split(" "),o),offsets:q(A,o),untils:z,population:0|M[5]}}function N(c){c&&this._set(r(c))}function d(c,M){this.name=c,this.zones=M}function W(c){var M=c.toTimeString(),A=M.match(/\([a-z ]+\)/i);"GMT"===(A=A&&A[0]?(A=A[0].match(/[A-Z]/g))?A.join(""):void 0:(A=M.match(/[A-Z]{3,5}/g))?A[0]:void 0)&&(A=void 0),this.at=+c,this.abbr=A,this.offset=c.getTimezoneOffset()}function f(c){this.zone=c,this.offsetScore=0,this.abbrScore=0}function X(){for(var c,M,A=(new Date).getFullYear()-2,o=new W(new Date(A,0,1)),z=[o],b=1;b<48;b++)(M=new W(new Date(A,b,1))).offset!==o.offset&&(c=function(c,M){for(var A,o;o=6e4*((M.at-c.at)/12e4|0);)(A=new W(new Date(c.at+o))).offset===c.offset?c=A:M=A;return c}(o,M),z.push(c),z.push(new W(new Date(c.at+6e4)))),o=M;for(b=0;b<4;b++)z.push(new W(new Date(A+b,0,1))),z.push(new W(new Date(A+b,6,1)));return z}function u(c,M){return c.offsetScore!==M.offsetScore?c.offsetScore-M.offsetScore:c.abbrScore!==M.abbrScore?c.abbrScore-M.abbrScore:c.zone.population!==M.zone.population?M.zone.population-c.zone.population:M.zone.name.localeCompare(c.zone.name)}function B(){try{var c=Intl.DateTimeFormat().resolvedOptions().timeZone;if(c&&3<c.length){var M=i[l(c)];if(M)return M;S("Moment Timezone found "+c+" from the Intl api, but did not have that data loaded.")}}catch(c){}for(var A,o,z=X(),b=z.length,a=function(c){for(var M,A,o=c.length,z={},b=[],a=0;a<o;a++)for(M in A=e[c[a].offset]||{})A.hasOwnProperty(M)&&(z[M]=!0);for(a in z)z.hasOwnProperty(a)&&b.push(i[a]);return b}(z),p=[],n=0;n<a.length;n++){for(A=new f(t(a[n])),o=0;o<b;o++)A.scoreOffsetAt(z[o]);p.push(A)}return p.sort(u),0<p.length?p[0].zone.name:void 0}function l(c){return(c||"").toLowerCase().replace(/\//g,"_")}function T(c){var M,A,o,z;for("string"==typeof c&&(c=[c]),M=0;M<c.length;M++)z=l(A=(o=c[M].split("|"))[0]),a[z]=c[M],i[z]=A,function(c,M){var A,o;for(O(M),A=0;A<M.length;A++)o=M[A],e[o]=e[o]||{},e[o][c]=!0}(z,o[2].split(" "))}function t(c,M){c=l(c);var A,o=a[c];return o instanceof N?o:"string"==typeof o?(o=new N(o),a[c]=o):p[c]&&M!==t&&(A=t(p[c],t))?((o=a[c]=new N)._set(A),o.name=i[c],o):null}function s(c){var M,A,o,z;for("string"==typeof c&&(c=[c]),M=0;M<c.length;M++)o=l((A=c[M].split("|"))[0]),z=l(A[1]),p[o]=z,i[o]=A[0],p[z]=o,i[z]=A[1]}function E(c){T(c.zones),s(c.links),function(c){var M,A,o,z;if(c&&c.length)for(M=0;M<c.length;M++)A=(z=c[M].split("|"))[0].toUpperCase(),o=z[1].split(" "),n[A]=new d(A,o)}(c.countries),R.dataVersion=c.version}function m(c){return m.didShowError||(m.didShowError=!0,S("moment.tz.zoneExists('"+c+"') has been deprecated in favor of !moment.tz.zone('"+c+"')")),!!t(c)}function C(c){var M="X"===c._f||"x"===c._f;return!(!c._a||void 0!==c._tzm||M)}function S(c){"undefined"!=typeof console&&"function"==typeof console.error&&console.error(c)}function R(c){var M=Array.prototype.slice.call(arguments,0,-1),A=arguments[arguments.length-1],o=t(A),z=b.utc.apply(null,M);return o&&!b.isMoment(c)&&C(z)&&z.add(o.parse(z),"minutes"),z.tz(A),z}(A<2||2==A&&o<6)&&S("Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js "+b.version+". See momentjs.com"),N.prototype={_set:function(c){this.name=c.name,this.abbrs=c.abbrs,this.untils=c.untils,this.offsets=c.offsets,this.population=c.population},_index:function(c){for(var M=+c,A=this.untils,o=0;o<A.length;o++)if(M<A[o])return o},countries:function(){var M=this.name;return Object.keys(n).filter(function(c){return-1!==n[c].zones.indexOf(M)})},parse:function(c){for(var M,A,o,z=+c,b=this.offsets,a=this.untils,p=a.length-1,n=0;n<p;n++)if(M=b[n],A=b[n+1],o=b[n?n-1:n],M<A&&R.moveAmbiguousForward?M=A:o<M&&R.moveInvalidForward&&(M=o),z<a[n]-6e4*M)return b[n];return b[p]},abbr:function(c){return this.abbrs[this._index(c)]},offset:function(c){return S("zone.offset has been deprecated in favor of zone.utcOffset"),this.offsets[this._index(c)]},utcOffset:function(c){return this.offsets[this._index(c)]}},f.prototype.scoreOffsetAt=function(c){this.offsetScore+=Math.abs(this.zone.utcOffset(c.at)-c.offset),this.zone.abbr(c.at).replace(/[^A-Z]/g,"")!==c.abbr&&this.abbrScore++},R.version="0.5.33",R.dataVersion="",R._zones=a,R._links=p,R._names=i,R._countries=n,R.add=T,R.link=s,R.load=E,R.zone=t,R.zoneExists=m,R.guess=function(c){return M&&!c||(M=B()),M},R.names=function(){var c,M=[];for(c in i)i.hasOwnProperty(c)&&(a[c]||a[p[c]])&&i[c]&&M.push(i[c]);return M.sort()},R.Zone=N,R.unpack=r,R.unpackBase60=z,R.needsOffset=C,R.moveInvalidForward=!0,R.moveAmbiguousForward=!1,R.countries=function(){return Object.keys(n)},R.zonesForCountry=function(c,M){var A;if(A=(A=c).toUpperCase(),!(c=n[A]||null))return null;var o=c.zones.sort();return M?o.map(function(c){return{name:c,offset:t(c).utcOffset(new Date)}}):o};var g,P=b.fn;function D(c){return function(){return this._z?this._z.abbr(this):c.call(this)}}function h(c){return function(){return this._z=null,c.apply(this,arguments)}}b.tz=R,b.defaultZone=null,b.updateOffset=function(c,M){var A,o,z=b.defaultZone;void 0===c._z&&(z&&C(c)&&!c._isUTC&&(c._d=b.utc(c._a)._d,c.utc().add(z.parse(c),"minutes")),c._z=z),c._z&&(o=c._z.utcOffset(c),Math.abs(o)<16&&(o/=60),void 0!==c.utcOffset?(A=c._z,c.utcOffset(-o,M),c._z=A):c.zone(o,M))},P.tz=function(c,M){if(c){if("string"!=typeof c)throw new Error("Time zone name must be a string, got "+c+" ["+typeof c+"]");return this._z=t(c),this._z?b.updateOffset(this,M):S("Moment Timezone has no data for "+c+". See http://momentjs.com/timezone/docs/#/data-loading/."),this}if(this._z)return this._z.name},P.zoneName=D(P.zoneName),P.zoneAbbr=D(P.zoneAbbr),P.utc=h(P.utc),P.local=h(P.local),P.utcOffset=(g=P.utcOffset,function(){return 0<arguments.length&&(this._z=null),g.apply(this,arguments)}),b.tz.setDefault=function(c){return(A<2||2==A&&o<9)&&S("Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js "+b.version+"."),b.defaultZone=c?t(c):null,b};var k=b.momentProperties;return"[object Array]"===Object.prototype.toString.call(k)?(k.push("_z"),k.push("_a")):k&&(k._z=null),E({version:"2021a",zones:["Africa/Abidjan|LMT GMT|g.8 0|01|-2ldXH.Q|48e5","Africa/Accra|LMT GMT +0020 +0030|.Q 0 -k -u|01212121212121212121212121212121212121212121212131313131313131|-2bRzX.8 9RbX.8 fdE 1BAk MLE 1Bck MLE 1Bck MLE 1Bck MLE 1BAk MLE 1Bck MLE 1Bck MLE 1Bck MLE 1BAk MLE 1Bck MLE 1Bck MLE 1Bck MLE 1BAk MLE 1Bck MLE 1Bck MLE 1Bck MLE 1BAk MLE 1Bck MLE 1Bck MLE 1Bck MLE Mok 1BXE M0k 1BXE fak 9vbu bjCu MLu 1Bcu MLu 1BAu MLu 1Bcu MLu 1Bcu MLu 1Bcu MLu|41e5","Africa/Nairobi|LMT +0230 EAT +0245|-2r.g -2u -30 -2J|012132|-2ua2r.g N6nV.g 3Fbu h1cu dzbJ|47e5","Africa/Algiers|PMT WET WEST CET CEST|-9.l 0 -10 -10 -20|0121212121212121343431312123431213|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 DA0 Imo0 rd0 De0 9Xz0 1fb0 1ap0 16K0 2yo0 mEp0 hwL0 jxA0 11A0 dDd0 17b0 11B0 1cN0 2Dy0 1cN0 1fB0 1cL0|26e5","Africa/Lagos|LMT GMT +0030 WAT|-d.z 0 -u -10|01023|-2B40d.z 7iod.z dnXK.p dLzH.z|17e6","Africa/Bissau|LMT -01 GMT|12.k 10 0|012|-2ldX0 2xoo0|39e4","Africa/Maputo|LMT CAT|-2a.k -20|01|-2GJea.k|26e5","Africa/Cairo|EET EEST|-20 -30|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1bIO0 vb0 1ip0 11z0 1iN0 1nz0 12p0 1pz0 10N0 1pz0 16p0 1jz0 s3d0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1WL0 rd0 1Rz0 wp0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1qL0 Xd0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1ny0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 WL0 1qN0 Rb0 1wp0 On0 1zd0 Lz0 1EN0 Fb0 c10 8n0 8Nd0 gL0 e10 mn0|15e6","Africa/Casablanca|LMT +00 +01|u.k 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2gMnt.E 130Lt.E rb0 Dd0 dVb0 b6p0 TX0 EoB0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4mn0 SyN0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0|32e5","Africa/Ceuta|WET WEST CET CEST|0 -10 -10 -20|010101010101010101010232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-25KN0 11z0 drd0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1y7o0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4VB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|85e3","Africa/El_Aaiun|LMT -01 +00 +01|Q.M 10 0 -10|012323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1rDz7.c 1GVA7.c 6L0 AL0 1Nd0 XX0 1Cp0 pz0 1cBB0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0|20e4","Africa/Johannesburg|SAST SAST SAST|-1u -20 -30|012121|-2GJdu 1Ajdu 1cL0 1cN0 1cL0|84e5","Africa/Juba|LMT CAT CAST EAT|-26.s -20 -30 -30|012121212121212121212121212121212131|-1yW26.s 1zK06.s 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0 PeX0|","Africa/Khartoum|LMT CAT CAST EAT|-2a.8 -20 -30 -30|012121212121212121212121212121212131|-1yW2a.8 1zK0a.8 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0 HjL0|51e5","Africa/Monrovia|MMT MMT GMT|H.8 I.u 0|012|-23Lzg.Q 28G01.m|11e5","Africa/Ndjamena|LMT WAT WAST|-10.c -10 -20|0121|-2le10.c 2J3c0.c Wn0|13e5","Africa/Sao_Tome|LMT GMT WAT|A.J 0 -10|0121|-2le00 4i6N0 2q00|","Africa/Tripoli|LMT CET CEST EET|-Q.I -10 -20 -20|012121213121212121212121213123123|-21JcQ.I 1hnBQ.I vx0 4iP0 xx0 4eN0 Bb0 7ip0 U0n0 A10 1db0 1cN0 1db0 1dd0 1db0 1eN0 1bb0 1e10 1cL0 1c10 1db0 1dd0 1db0 1cN0 1db0 1q10 fAn0 1ep0 1db0 AKq0 TA0 1o00|11e5","Africa/Tunis|PMT CET CEST|-9.l -10 -20|0121212121212121212121212121212121|-2nco9.l 18pa9.l 1qM0 DA0 3Tc0 11B0 1ze0 WM0 7z0 3d0 14L0 1cN0 1f90 1ar0 16J0 1gXB0 WM0 1rA0 11c0 nwo0 Ko0 1cM0 1cM0 1rA0 10M0 zuM0 10N0 1aN0 1qM0 WM0 1qM0 11A0 1o00|20e5","Africa/Windhoek|+0130 SAST SAST CAT WAT|-1u -20 -30 -20 -10|01213434343434343434343434343434343434343434343434343|-2GJdu 1Ajdu 1cL0 1SqL0 9Io0 16P0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0|32e4","America/Adak|NST NWT NPT BST BDT AHST HST HDT|b0 a0 a0 b0 a0 a0 a0 90|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|326","America/Anchorage|AST AWT APT AHST AHDT YST AKST AKDT|a0 90 90 a0 90 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T00 8wX0 iA0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|30e4","America/Port_of_Spain|LMT AST|46.4 40|01|-2kNvR.U|43e3","America/Araguaina|LMT -03 -02|3c.M 30 20|0121212121212121212121212121212121212121212121212121|-2glwL.c HdKL.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 ny10 Lz0|14e4","America/Argentina/Buenos_Aires|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 A4p0 uL0 1qN0 WL0|","America/Argentina/Catamarca|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 7B0 8zb0 uL0|","America/Argentina/Cordoba|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0 1qN0 WL0|","America/Argentina/Jujuy|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1ze0 TX0 1ld0 WK0 1wp0 TX0 A4p0 uL0|","America/Argentina/La_Rioja|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|","America/Argentina/Mendoza|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232312121321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1u20 SL0 1vd0 Tb0 1wp0 TW0 ri10 Op0 7TX0 uL0|","America/Argentina/Rio_Gallegos|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|","America/Argentina/Salta|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0|","America/Argentina/San_Juan|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rld0 m10 8lb0 uL0|","America/Argentina/San_Luis|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121212321212|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 XX0 1q20 SL0 AN0 vDb0 m10 8lb0 8L0 jd0 1qN0 WL0 1qN0|","America/Argentina/Tucuman|CMT -04 -03 -02|4g.M 40 30 20|0121212121212121212121212121212121212121212323232313232123232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 4N0 8BX0 uL0 1qN0 WL0|","America/Argentina/Ushuaia|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rkN0 8p0 8zb0 uL0|","America/Curacao|LMT -0430 AST|4z.L 4u 40|012|-2kV7o.d 28KLS.d|15e4","America/Asuncion|AMT -04 -03|3O.E 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-1x589.k 1DKM9.k 3CL0 3Dd0 10L0 1pB0 10n0 1pB0 10n0 1pB0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1lB0 14n0 1dd0 1cL0 1fd0 WL0 1rd0 1aL0 1dB0 Xz0 1qp0 Xb0 1qN0 10L0 1rB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 WN0 1qL0 11B0 1nX0 1ip0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 TX0 1tB0 19X0 1a10 1fz0 1a10 1fz0 1cN0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0|28e5","America/Atikokan|CST CDT CWT CPT EST|60 50 50 50 50|0101234|-25TQ0 1in0 Rnb0 3je0 8x30 iw0|28e2","America/Bahia_Banderas|LMT MST CST PST MDT CDT|71 70 60 80 60 50|0121212131414141414141414141414141414152525252525252525252525252525252525252525252525252525252|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nW0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|84e3","America/Bahia|LMT -03 -02|2y.4 30 20|01212121212121212121212121212121212121212121212121212121212121|-2glxp.U HdLp.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 l5B0 Rb0|27e5","America/Barbados|LMT BMT AST ADT|3W.t 3W.t 40 30|01232323232|-1Q0I1.v jsM0 1ODC1.v IL0 1ip0 17b0 1ip0 17b0 1ld0 13b0|28e4","America/Belem|LMT -03 -02|3d.U 30 20|012121212121212121212121212121|-2glwK.4 HdKK.4 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|20e5","America/Belize|LMT CST -0530 CWT CPT CDT|5Q.M 60 5u 50 50 50|012121212121212121212121212121212121212121212121213412121212121212121212121212121212121212121215151|-2kBu7.c fPA7.c Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu Rcu 7Bt0 Ni0 4nd0 Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu e9Au qn0 lxB0 mn0|57e3","America/Blanc-Sablon|AST ADT AWT APT|40 30 30 30|010230|-25TS0 1in0 UGp0 8x50 iu0|11e2","America/Boa_Vista|LMT -04 -03|42.E 40 30|0121212121212121212121212121212121|-2glvV.k HdKV.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 smp0 WL0 1tB0 2L0|62e2","America/Bogota|BMT -05 -04|4U.g 50 40|0121|-2eb73.I 38yo3.I 2en0|90e5","America/Boise|PST PDT MST MWT MPT MDT|80 70 70 60 60 60|0101023425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-261q0 1nX0 11B0 1nX0 8C10 JCL0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 Dd0 1Kn0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e4","America/Cambridge_Bay|-00 MST MWT MPT MDDT MDT CST CDT EST|0 70 60 60 50 60 60 50 50|0123141515151515151515151515151515151515151515678651515151515151515151515151515151515151515151515151515151515151515151515151|-21Jc0 RO90 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11A0 1nX0 2K0 WQ0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e2","America/Campo_Grande|LMT -04 -03|3C.s 40 30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwl.w HdLl.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|77e4","America/Cancun|LMT CST EST EDT CDT|5L.4 60 50 40 50|0123232341414141414141414141414141414141412|-1UQG0 2q2o0 yLB0 1lb0 14p0 1lb0 14p0 Lz0 xB0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 Dd0|63e4","America/Caracas|CMT -0430 -04|4r.E 4u 40|01212|-2kV7w.k 28KM2.k 1IwOu kqo0|29e5","America/Cayenne|LMT -04 -03|3t.k 40 30|012|-2mrwu.E 2gWou.E|58e3","America/Panama|CMT EST|5j.A 50|01|-2uduE.o|15e5","America/Chicago|CST CDT EST CWT CPT|60 50 50 50 50|01010101010101010101010101010101010102010101010103401010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 1wp0 TX0 WN0 1qL0 1cN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 11B0 1Hz0 14p0 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|92e5","America/Chihuahua|LMT MST CST CDT MDT|74.k 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|81e4","America/Costa_Rica|SJMT CST CDT|5A.d 60 50|0121212121|-1Xd6n.L 2lu0n.L Db0 1Kp0 Db0 pRB0 15b0 1kp0 mL0|12e5","America/Creston|MST PST|70 80|010|-29DR0 43B0|53e2","America/Cuiaba|LMT -04 -03|3I.k 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwf.E HdLf.E 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 4a10 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|54e4","America/Danmarkshavn|LMT -03 -02 GMT|1e.E 30 20 0|01212121212121212121212121212121213|-2a5WJ.k 2z5fJ.k 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 DC0|8","America/Dawson_Creek|PST PDT PWT PPT MST|80 70 70 70 70|0102301010101010101010101010101010101010101010101010101014|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 ML0|12e3","America/Dawson|YST YDT YWT YPT YDDT PST PDT MST|90 80 80 80 70 80 70 70|010102304056565656565656565656565656565656565656565656565656565656565656565656565656565656567|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 jrA0 fNd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1z90|13e2","America/Denver|MST MDT MWT MPT|70 60 60 60|01010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 11B0 1qL0 WN0 mn0 Ord0 8x20 ix0 LCN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e5","America/Detroit|LMT CST EST EWT EPT EDT|5w.b 60 50 40 40 40|0123425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2Cgir.N peqr.N 156L0 8x40 iv0 6fd0 11z0 JxX1 SMX 1cN0 1cL0 aW10 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e5","America/Edmonton|LMT MST MDT MWT MPT|7x.Q 70 60 60 60|0121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2yd4q.8 shdq.8 1in0 17d0 hz0 2dB0 1fz0 1a10 11z0 1qN0 WL0 1qN0 11z0 IGN0 8x20 ix0 3NB0 11z0 XQp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|10e5","America/Eirunepe|LMT -05 -04|4D.s 50 40|0121212121212121212121212121212121|-2glvk.w HdLk.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0 yTd0 d5X0|31e3","America/El_Salvador|LMT CST CDT|5U.M 60 50|012121|-1XiG3.c 2Fvc3.c WL0 1qN0 WL0|11e5","America/Tijuana|LMT MST PST PDT PWT PPT|7M.4 70 80 70 70 70|012123245232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQE0 4PX0 8mM0 8lc0 SN0 1cL0 pHB0 83r0 zI0 5O10 1Rz0 cOO0 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 BUp0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|20e5","America/Fort_Nelson|PST PDT PWT PPT MST|80 70 70 70 70|01023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010104|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|39e2","America/Fort_Wayne|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010101023010101010101010101040454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 QI10 Db0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 5Tz0 1o10 qLb0 1cL0 1cN0 1cL0 1qhd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Fortaleza|LMT -03 -02|2y 30 20|0121212121212121212121212121212121212121|-2glxq HdLq 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 5z0 2mN0 On0|34e5","America/Glace_Bay|LMT AST ADT AWT APT|3X.M 40 30 30 30|012134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsI0.c CwO0.c 1in0 UGp0 8x50 iu0 iq10 11z0 Jg10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3","America/Godthab|LMT -03 -02|3q.U 30 20|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5Ux.4 2z5dx.4 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e3","America/Goose_Bay|NST NDT NST NDT NWT NPT AST ADT ADDT|3u.Q 2u.Q 3u 2u 2u 2u 40 30 20|010232323232323245232323232323232323232323232323232323232326767676767676767676767676767676767676767676768676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-25TSt.8 1in0 DXb0 2HbX.8 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 S10 g0u 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|76e2","America/Grand_Turk|KMT EST EDT AST|57.a 50 40 40|0121212121212121212121212121212121212121212121212121212121212121212121212132121212121212121212121212121212121212121|-2l1uQ.O 2HHBQ.O 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 7jA0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e2","America/Guatemala|LMT CST CDT|62.4 60 50|0121212121|-24KhV.U 2efXV.U An0 mtd0 Nz0 ifB0 17b0 zDB0 11z0|13e5","America/Guayaquil|QMT -05 -04|5e 50 40|0121|-1yVSK 2uILK rz0|27e5","America/Guyana|LMT -0345 -03 -04|3Q.E 3J 30 40|0123|-2dvU7.k 2r6LQ.k Bxbf|80e4","America/Halifax|LMT AST ADT AWT APT|4e.o 40 30 30 30|0121212121212121212121212121212121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsHJ.A xzzJ.A 1db0 3I30 1in0 3HX0 IL0 1E10 ML0 1yN0 Pb0 1Bd0 Mn0 1Bd0 Rz0 1w10 Xb0 1w10 LX0 1w10 Xb0 1w10 Lz0 1C10 Jz0 1E10 OL0 1yN0 Un0 1qp0 Xb0 1qp0 11X0 1w10 Lz0 1HB0 LX0 1C10 FX0 1w10 Xb0 1qp0 Xb0 1BB0 LX0 1td0 Xb0 1qp0 Xb0 Rf0 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 6i10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|39e4","America/Havana|HMT CST CDT|5t.A 50 40|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Meuu.o 72zu.o ML0 sld0 An0 1Nd0 Db0 1Nd0 An0 6Ep0 An0 1Nd0 An0 JDd0 Mn0 1Ap0 On0 1fd0 11X0 1qN0 WL0 1wp0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 14n0 1ld0 14L0 1kN0 15b0 1kp0 1cL0 1cN0 1fz0 1a10 1fz0 1fB0 11z0 14p0 1nX0 11B0 1nX0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 1a10 1in0 1a10 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 17c0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 11A0 6i00 Rc0 1wo0 U00 1tA0 Rc0 1wo0 U00 1wo0 U00 1zc0 U00 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0|21e5","America/Hermosillo|LMT MST CST PST MDT|7n.Q 70 60 80 60|0121212131414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0|64e4","America/Indiana/Knox|CST CDT CWT CPT EST|60 50 50 50 50|0101023010101010101010101010101010101040101010101010101010101010101010101010101010101010141010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 3Cn0 8wp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 z8o0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Indiana/Marengo|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010104545454545414545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 dyN0 11z0 6fd0 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1e6p0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Indiana/Petersburg|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010104010101010101010101010141014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 3Fb0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 19co0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Indiana/Tell_City|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010401054541010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 8wn0 1cN0 1cL0 1cN0 1cK0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Indiana/Vevay|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010102304545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 kPB0 Awn0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1lnd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Indiana/Vincennes|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010454541014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 g0p0 11z0 1o10 11z0 1qL0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 caL0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Indiana/Winamac|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010101010454541054545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1za0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Inuvik|-00 PST PDDT MST MDT|0 80 60 70 60|0121343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-FnA0 tWU0 1fA0 wPe0 2pz0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|35e2","America/Iqaluit|-00 EWT EPT EST EDDT EDT CST CDT|0 40 40 50 30 40 60 50|01234353535353535353535353535353535353535353567353535353535353535353535353535353535353535353535353535353535353535353535353|-16K00 7nX0 iv0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|67e2","America/Jamaica|KMT EST EDT|57.a 50 40|0121212121212121212121|-2l1uQ.O 2uM1Q.O 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0|94e4","America/Juneau|PST PWT PPT PDT YDT YST AKST AKDT|80 70 70 70 80 90 90 80|01203030303030303030303030403030356767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cM0 1cM0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|33e3","America/Kentucky/Louisville|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101010102301010101010101010101010101454545454545414545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 3Fd0 Nb0 LPd0 11z0 RB0 8x30 iw0 1nX1 e0X 9vd0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 xz0 gso0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Kentucky/Monticello|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 SWp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/La_Paz|CMT BST -04|4w.A 3w.A 40|012|-1x37r.o 13b0|19e5","America/Lima|LMT -05 -04|58.A 50 40|0121212121212121|-2tyGP.o 1bDzP.o zX0 1aN0 1cL0 1cN0 1cL0 1PrB0 zX0 1O10 zX0 6Gp0 zX0 98p0 zX0|11e6","America/Los_Angeles|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 5Wp1 1VaX 3dA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e6","America/Maceio|LMT -03 -02|2m.Q 30 20|012121212121212121212121212121212121212121|-2glxB.8 HdLB.8 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 8Q10 WL0 1tB0 5z0 2mN0 On0|93e4","America/Managua|MMT CST EST CDT|5J.c 60 50 50|0121313121213131|-1quie.M 1yAMe.M 4mn0 9Up0 Dz0 1K10 Dz0 s3F0 1KH0 DB0 9In0 k8p0 19X0 1o30 11y0|22e5","America/Manaus|LMT -04 -03|40.4 40 30|01212121212121212121212121212121|-2glvX.U HdKX.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0|19e5","America/Martinique|FFMT AST ADT|44.k 40 30|0121|-2mPTT.E 2LPbT.E 19X0|39e4","America/Matamoros|LMT CST CDT|6E 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|45e4","America/Mazatlan|LMT MST CST PST MDT|75.E 70 60 80 60|0121212131414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|44e4","America/Menominee|CST CDT CWT CPT EST|60 50 50 50 50|01010230101041010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 LCN0 1fz0 6410 9Jb0 1cM0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|85e2","America/Merida|LMT CST EST CDT|5W.s 60 50 50|0121313131313131313131313131313131313131313131313131313131313131313131313131313131313131|-1UQG0 2q2o0 2hz0 wu30 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|11e5","America/Metlakatla|PST PWT PPT PDT AKST AKDT|80 70 70 70 90 80|01203030303030303030303030303030304545450454545454545454545454545454545454545454|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1hU10 Rd0 1zb0 Op0 1zb0 Op0 1zb0 uM0 jB0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2","America/Mexico_City|LMT MST CST CDT CWT|6A.A 70 60 50 50|012121232324232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 gEn0 TX0 3xd0 Jb0 6zB0 SL0 e5d0 17b0 1Pff0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|20e6","America/Miquelon|LMT AST -03 -02|3I.E 40 30 20|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2mKkf.k 2LTAf.k gQ10 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|61e2","America/Moncton|EST AST ADT AWT APT|50 40 30 30 30|012121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsH0 CwN0 1in0 zAo0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1K10 Lz0 1zB0 NX0 1u10 Wn0 S20 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14n1 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 ReX 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|64e3","America/Monterrey|LMT CST CDT|6F.g 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|41e5","America/Montevideo|LMT MMT -04 -03 -0330 -0230 -02 -0130|3I.P 3I.P 40 30 3u 2u 20 1u|012343434343434343434343435353636353636375363636363636363636363636363636363636363636363|-2tRUf.9 sVc0 8jcf.9 1db0 1dcu 1cLu 1dcu 1cLu ircu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu WLu 1fAu 1cLu 1o0u 11zu NAu 3jXu zXu Dq0u 19Xu pcu jz0 cm10 19X0 6tB0 1fbu 3o0u jX0 4vB0 xz0 3Cp0 mmu 1a10 IMu Db0 4c10 uL0 1Nd0 An0 1SN0 uL0 mp0 28L0 iPB0 un0 1SN0 xz0 1zd0 Lz0 1zd0 Rb0 1zd0 On0 1wp0 Rb0 s8p0 1fB0 1ip0 11z0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 11z0|17e5","America/Toronto|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101012301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 11Wu 1nzu 1fD0 WJ0 1wr0 Nb0 1Ap0 On0 1zd0 On0 1wp0 TX0 1tB0 TX0 1tB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 4kM0 8x40 iv0 1o10 11z0 1nX0 11z0 1o10 11z0 1o10 1qL0 11D0 1nX0 11B0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e5","America/Nassau|LMT EST EWT EPT EDT|59.u 50 40 40 40|01212314141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-2kNuO.u 1drbO.u 6tX0 cp0 1hS0 pF0 J630 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|24e4","America/New_York|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 11B0 1qL0 1a10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x40 iv0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e6","America/Nipigon|EST EDT EWT EPT|50 40 40 40|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 Rnb0 3je0 8x40 iv0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|16e2","America/Nome|NST NWT NPT BST BDT YST AKST AKDT|b0 a0 a0 b0 a0 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cl0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|38e2","America/Noronha|LMT -02 -01|29.E 20 10|0121212121212121212121212121212121212121|-2glxO.k HdKO.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|30e2","America/North_Dakota/Beulah|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/North_Dakota/Center|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/North_Dakota/New_Salem|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Ojinaga|LMT MST CST CDT MDT|6V.E 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e3","America/Pangnirtung|-00 AST AWT APT ADDT ADT EDT EST CST CDT|0 40 30 30 20 30 40 50 60 50|012314151515151515151515151515151515167676767689767676767676767676767676767676767676767676767676767676767676767676767676767|-1XiM0 PnG0 8x50 iu0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1o00 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2","America/Paramaribo|LMT PMT PMT -0330 -03|3E.E 3E.Q 3E.A 3u 30|01234|-2nDUj.k Wqo0.c qanX.I 1yVXN.o|24e4","America/Phoenix|MST MDT MWT|70 60 60|01010202010|-261r0 1nX0 11B0 1nX0 SgN0 4Al1 Ap0 1db0 SWqX 1cL0|42e5","America/Port-au-Prince|PPMT EST EDT|4N 50 40|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-28RHb 2FnMb 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14q0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 i6n0 1nX0 11B0 1nX0 d430 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 3iN0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5","America/Rio_Branco|LMT -05 -04|4v.c 50 40|01212121212121212121212121212121|-2glvs.M HdLs.M 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0 d5X0|31e4","America/Porto_Velho|LMT -04 -03|4f.A 40 30|012121212121212121212121212121|-2glvI.o HdKI.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|37e4","America/Puerto_Rico|AST AWT APT|40 30 30|0120|-17lU0 7XT0 iu0|24e5","America/Punta_Arenas|SMT -05 -04 -03|4G.K 50 40 30|0102021212121212121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 blz0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|","America/Rainy_River|CST CDT CWT CPT|60 50 50 50|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TQ0 1in0 Rnb0 3je0 8x30 iw0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|842","America/Rankin_Inlet|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313131313131313131313131313131313131313131313131313131313131313131|-vDc0 keu0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e2","America/Recife|LMT -03 -02|2j.A 30 20|0121212121212121212121212121212121212121|-2glxE.o HdLE.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|33e5","America/Regina|LMT MST MDT MWT MPT CST|6W.A 70 60 60 60 60|012121212121212121212121341212121212121212121212121215|-2AD51.o uHe1.o 1in0 s2L0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 66N0 1cL0 1cN0 19X0 1fB0 1cL0 1fB0 1cL0 1cN0 1cL0 M30 8x20 ix0 1ip0 1cL0 1ip0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 3NB0 1cL0 1cN0|19e4","America/Resolute|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313431313131313131313131313131313131313131313131313131313131313131|-SnA0 GWS0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|229","America/Santarem|LMT -04 -03|3C.M 40 30|0121212121212121212121212121212|-2glwl.c HdLl.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0|21e4","America/Santiago|SMT -05 -04 -03|4G.K 50 40 30|010202121212121212321232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 9Bz0 jb0 1oN0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0|62e5","America/Santo_Domingo|SDMT EST EDT -0430 AST|4E 50 40 4u 40|01213131313131414|-1ttjk 1lJMk Mn0 6sp0 Lbu 1Cou yLu 1RAu wLu 1QMu xzu 1Q0u xXu 1PAu 13jB0 e00|29e5","America/Sao_Paulo|LMT -03 -02|36.s 30 20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwR.w HdKR.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 pTd0 PX0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|20e6","America/Scoresbysund|LMT -02 -01 +00|1r.Q 20 10 0|0121323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2a5Ww.8 2z5ew.8 1a00 1cK0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|452","America/Sitka|PST PWT PPT PDT YST AKST AKDT|80 70 70 70 90 90 80|01203030303030303030303030303030345656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|90e2","America/St_Johns|NST NDT NST NDT NWT NPT NDDT|3u.Q 2u.Q 3u 2u 2u 2u 1u|01010101010101010101010101010101010102323232323232324523232323232323232323232323232323232323232323232323232323232323232323232323232323232326232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-28oit.8 14L0 1nB0 1in0 1gm0 Dz0 1JB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1fB0 19X0 1fB0 19X0 10O0 eKX.8 19X0 1iq0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4","America/Swift_Current|LMT MST MDT MWT MPT CST|7b.k 70 60 60 60 60|012134121212121212121215|-2AD4M.E uHdM.E 1in0 UGp0 8x20 ix0 1o10 17b0 1ip0 11z0 1o10 11z0 1o10 11z0 isN0 1cL0 3Cp0 1cL0 1cN0 11z0 1qN0 WL0 pMp0|16e3","America/Tegucigalpa|LMT CST CDT|5M.Q 60 50|01212121|-1WGGb.8 2ETcb.8 WL0 1qN0 WL0 GRd0 AL0|11e5","America/Thule|LMT AST ADT|4z.8 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5To.Q 31NBo.Q 1cL0 1cN0 1cL0 1fB0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|656","America/Thunder_Bay|CST EST EWT EPT EDT|60 50 40 40 40|0123141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-2q5S0 1iaN0 8x40 iv0 XNB0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4","America/Vancouver|PST PDT PWT PPT|80 70 70 70|0102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TO0 1in0 UGp0 8x10 iy0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5","America/Whitehorse|YST YDT YWT YPT YDDT PST PDT MST|90 80 80 80 70 80 70 70|010102304056565656565656565656565656565656565656565656565656565656565656565656565656565656567|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 3NA0 vrd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1z90|23e3","America/Winnipeg|CST CDT CWT CPT|60 50 50 50|010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aIi0 WL0 3ND0 1in0 Jap0 Rb0 aCN0 8x30 iw0 1tB0 11z0 1ip0 11z0 1o10 11z0 1o10 11z0 1rd0 10L0 1op0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 1cL0 1cN0 11z0 6i10 WL0 6i10 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|66e4","America/Yakutat|YST YWT YPT YDT AKST AKDT|90 80 80 80 90 80|01203030303030303030303030303030304545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-17T10 8x00 iz0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cn0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|642","America/Yellowknife|-00 MST MWT MPT MDDT MDT|0 70 60 60 50 60|012314151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151|-1pdA0 hix0 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3","Antarctica/Casey|-00 +08 +11|0 -80 -b0|0121212121212|-2q00 1DjS0 T90 40P0 KL0 blz0 3m10 1o30 14k0 1kr0 12l0 1o01|10","Antarctica/Davis|-00 +07 +05|0 -70 -50|01012121|-vyo0 iXt0 alj0 1D7v0 VB0 3Wn0 KN0|70","Antarctica/DumontDUrville|-00 +10|0 -a0|0101|-U0o0 cfq0 bFm0|80","Antarctica/Macquarie|AEST AEDT -00|-a0 -b0 0|010201010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 1a00 4SK0 1ayy0 Lvs0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 3Co0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|1","Antarctica/Mawson|-00 +06 +05|0 -60 -50|012|-CEo0 2fyk0|60","Pacific/Auckland|NZMT NZST NZST NZDT|-bu -cu -c0 -d0|01020202020202020202020202023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1GCVu Lz0 1tB0 11zu 1o0u 11zu 1o0u 11zu 1o0u 14nu 1lcu 14nu 1lcu 1lbu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1qLu WMu 1qLu 11Au 1n1bu IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|14e5","Antarctica/Palmer|-00 -03 -04 -02|0 30 40 20|0121212121213121212121212121212121212121212121212121212121212121212121212121212121|-cao0 nD0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 jsN0 14N0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|40","Antarctica/Rothera|-00 -03|0 30|01|gOo0|130","Antarctica/Syowa|-00 +03|0 -30|01|-vs00|20","Antarctica/Troll|-00 +00 +02|0 0 -20|01212121212121212121212121212121212121212121212121212121212121212121|1puo0 hd0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|40","Antarctica/Vostok|-00 +06|0 -60|01|-tjA0|25","Europe/Oslo|CET CEST|-10 -20|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2awM0 Qm0 W6o0 5pf0 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 wJc0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1qM0 WM0 zpc0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e4","Asia/Riyadh|LMT +03|-36.Q -30|01|-TvD6.Q|57e5","Asia/Almaty|LMT +05 +06 +07|-57.M -50 -60 -70|012323232323232323232321232323232323232323232323232|-1Pc57.M eUo7.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|15e5","Asia/Amman|LMT EET EEST|-2n.I -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1yW2n.I 1HiMn.I KL0 1oN0 11b0 1oN0 11b0 1pd0 1dz0 1cp0 11b0 1op0 11b0 fO10 1db0 1e10 1cL0 1cN0 1cL0 1cN0 1fz0 1pd0 10n0 1ld0 14n0 1hB0 15b0 1ip0 19X0 1cN0 1cL0 1cN0 17b0 1ld0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1So0 y00 1fc0 1dc0 1co0 1dc0 1cM0 1cM0 1cM0 1o00 11A0 1lc0 17c0 1cM0 1cM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 4bX0 Dd0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|25e5","Asia/Anadyr|LMT +12 +13 +14 +11|-bN.U -c0 -d0 -e0 -b0|01232121212121212121214121212121212121212121212121212121212141|-1PcbN.U eUnN.U 23CL0 1db0 2q10 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|13e3","Asia/Aqtau|LMT +04 +05 +06|-3l.4 -40 -50 -60|012323232323232323232123232312121212121212121212|-1Pc3l.4 eUnl.4 24PX0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|15e4","Asia/Aqtobe|LMT +04 +05 +06|-3M.E -40 -50 -60|0123232323232323232321232323232323232323232323232|-1Pc3M.E eUnM.E 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|27e4","Asia/Ashgabat|LMT +04 +05 +06|-3R.w -40 -50 -60|0123232323232323232323212|-1Pc3R.w eUnR.w 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0|41e4","Asia/Atyrau|LMT +03 +05 +06 +04|-3r.I -30 -50 -60 -40|01232323232323232323242323232323232324242424242|-1Pc3r.I eUor.I 24PW0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 2sp0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|","Asia/Baghdad|BMT +03 +04|-2V.A -30 -40|012121212121212121212121212121212121212121212121212121|-26BeV.A 2ACnV.A 11b0 1cp0 1dz0 1dd0 1db0 1cN0 1cp0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1de0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0|66e5","Asia/Qatar|LMT +04 +03|-3q.8 -40 -30|012|-21Jfq.8 27BXq.8|96e4","Asia/Baku|LMT +03 +04 +05|-3j.o -30 -40 -50|01232323232323232323232123232323232323232323232323232323232323232|-1Pc3j.o 1jUoj.o WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 9Je0 1o00 11z0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|27e5","Asia/Bangkok|BMT +07|-6G.4 -70|01|-218SG.4|15e6","Asia/Barnaul|LMT +06 +07 +08|-5z -60 -70 -80|0123232323232323232323212323232321212121212121212121212121212121212|-21S5z pCnz 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 p90 LE0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|","Asia/Beirut|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-21aq0 1on0 1410 1db0 19B0 1in0 1ip0 WL0 1lQp0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 q6N0 En0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1op0 11b0 dA10 17b0 1iN0 17b0 1iN0 17b0 1iN0 17b0 1vB0 SL0 1mp0 13z0 1iN0 17b0 1iN0 17b0 1jd0 12n0 1a10 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0|22e5","Asia/Bishkek|LMT +05 +06 +07|-4W.o -50 -60 -70|012323232323232323232321212121212121212121212121212|-1Pc4W.o eUnW.o 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2e00 1tX0 17b0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1cPu 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0|87e4","Asia/Brunei|LMT +0730 +08|-7D.E -7u -80|012|-1KITD.E gDc9.E|42e4","Asia/Kolkata|MMT IST +0630|-5l.a -5u -6u|012121|-2zOtl.a 1r2LP.a 1un0 HB0 7zX0|15e6","Asia/Chita|LMT +08 +09 +10|-7x.Q -80 -90 -a0|012323232323232323232321232323232323232323232323232323232323232312|-21Q7x.Q pAnx.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3re0|33e4","Asia/Choibalsan|LMT +07 +08 +10 +09|-7C -70 -80 -a0 -90|0123434343434343434343434343434343434343434343424242|-2APHC 2UkoC cKn0 1da0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 3Db0 h1f0 1cJ0 1cP0 1cJ0|38e3","Asia/Shanghai|CST CDT|-80 -90|01010101010101010101010101010|-23uw0 18n0 OjB0 Rz0 11d0 1wL0 A10 8HX0 1G10 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 aL0 1tU30 Rb0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0|23e6","Asia/Colombo|MMT +0530 +06 +0630|-5j.w -5u -60 -6u|01231321|-2zOtj.w 1rFbN.w 1zzu 7Apu 23dz0 11zu n3cu|22e5","Asia/Dhaka|HMT +0630 +0530 +06 +07|-5R.k -6u -5u -60 -70|0121343|-18LFR.k 1unn.k HB0 m6n0 2kxbu 1i00|16e6","Asia/Damascus|LMT EET EEST|-2p.c -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-21Jep.c Hep.c 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1xRB0 11X0 1oN0 10L0 1pB0 11b0 1oN0 10L0 1mp0 13X0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 Nb0 1AN0 Nb0 bcp0 19X0 1gp0 19X0 3ld0 1xX0 Vd0 1Bz0 Sp0 1vX0 10p0 1dz0 1cN0 1cL0 1db0 1db0 1g10 1an0 1ap0 1db0 1fd0 1db0 1cN0 1db0 1dd0 1db0 1cp0 1dz0 1c10 1dX0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 19z0 1fB0 1qL0 11B0 1on0 Wp0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0|26e5","Asia/Dili|LMT +08 +09|-8m.k -80 -90|01212|-2le8m.k 1dnXm.k 1nfA0 Xld0|19e4","Asia/Dubai|LMT +04|-3F.c -40|01|-21JfF.c|39e5","Asia/Dushanbe|LMT +05 +06 +07|-4z.c -50 -60 -70|012323232323232323232321|-1Pc4z.c eUnz.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2hB0|76e4","Asia/Famagusta|LMT EET EEST +03|-2f.M -20 -30 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212312121212121212121212121212121212121212121|-1Vc2f.M 2a3cf.M 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 15U0 2Ks0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|","Asia/Gaza|EET EEST IST IDT|-20 -30 -20 -30|010101010101010101010101010101010123232323232323232323232323232320101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2o0 MM0 iM0 4JA0 10o0 1pA0 10M0 1pA0 16o0 1jA0 16o0 1jA0 pBa0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 bXB0 gM0 8Q00 IM0 1wo0 TX0 1HB0 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 11z0 1o10 14o0 1lA1 SKX 1xd1 MKX 1AN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nA0 1210 1qL0 WN0 1qL0 WN0 1qL0 11c0 1on0 11B0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|18e5","Asia/Hebron|EET EEST IST IDT|-20 -30 -20 -30|01010101010101010101010101010101012323232323232323232323232323232010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2o0 MM0 iM0 4JA0 10o0 1pA0 10M0 1pA0 16o0 1jA0 16o0 1jA0 pBa0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 bXB0 gM0 8Q00 IM0 1wo0 TX0 1HB0 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 12L0 1mN0 14o0 1lc0 Tb0 1xd1 MKX bB0 cn0 1cN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nA0 1210 1qL0 WN0 1qL0 WN0 1qL0 11c0 1on0 11B0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|25e4","Asia/Ho_Chi_Minh|LMT PLMT +07 +08 +09|-76.E -76.u -70 -80 -90|0123423232|-2yC76.E bK00.a 1h7b6.u 5lz0 18o0 3Oq0 k5b0 aW00 BAM0|90e5","Asia/Hong_Kong|LMT HKT HKST HKWT JST|-7A.G -80 -90 -8u -90|0123412121212121212121212121212121212121212121212121212121212121212121|-2CFH0 1taO0 Hc0 xUu 9tBu 11z0 1tDu Rc0 1wo0 11A0 1cM0 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1nX0 U10 1tz0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|73e5","Asia/Hovd|LMT +06 +07 +08|-66.A -60 -70 -80|012323232323232323232323232323232323232323232323232|-2APG6.A 2Uko6.A cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|81e3","Asia/Irkutsk|IMT +07 +08 +09|-6V.5 -70 -80 -90|01232323232323232323232123232323232323232323232323232323232323232|-21zGV.5 pjXV.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4","Europe/Istanbul|IMT EET EEST +03 +04|-1U.U -20 -30 -30 -40|0121212121212121212121212121212121212121212121234312121212121212121212121212121212121212121212121212121212121212123|-2ogNU.U dzzU.U 11b0 8tB0 1on0 1410 1db0 19B0 1in0 3Rd0 Un0 1oN0 11b0 zSN0 CL0 mp0 1Vz0 1gN0 8yn0 1yp0 ML0 1kp0 17b0 1ip0 17b0 1fB0 19X0 1ip0 19X0 1ip0 17b0 qdB0 38L0 1jd0 Tz0 l6O0 11A0 WN0 1qL0 TB0 1tX0 U10 1tz0 11B0 1in0 17d0 z90 cne0 pb0 2Cp0 1800 14o0 1dc0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1a00 1fA0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WO0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 Xc0 1qo0 WM0 1qM0 11A0 1o00 1200 1nA0 11A0 1tA0 U00 15w0|13e6","Asia/Jakarta|BMT +0720 +0730 +09 +08 WIB|-77.c -7k -7u -90 -80 -70|01232425|-1Q0Tk luM0 mPzO 8vWu 6kpu 4PXu xhcu|31e6","Asia/Jayapura|LMT +09 +0930 WIT|-9m.M -90 -9u -90|0123|-1uu9m.M sMMm.M L4nu|26e4","Asia/Jerusalem|JMT IST IDT IDDT|-2k.E -20 -30 -40|01212121212121321212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-26Bek.E SyOk.E MM0 iM0 4JA0 10o0 1pA0 10M0 1pA0 16o0 1jA0 16o0 1jA0 3LA0 Eo0 oo0 1co0 1dA0 16o0 10M0 1jc0 1tA0 14o0 1cM0 1a00 11A0 1Nc0 Ao0 1Nc0 Ao0 1Ko0 LA0 1o00 WM0 EQK0 Db0 1fB0 Rb0 bXB0 gM0 8Q00 IM0 1wo0 TX0 1HB0 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 1hB0 1dX0 1ep0 1aL0 1eN0 17X0 1nf0 11z0 1tB0 19W0 1e10 17b0 1ep0 1gL0 18N0 1fz0 1eN0 17b0 1gq0 1gn0 19d0 1dz0 1c10 17X0 1hB0 1gn0 19d0 1dz0 1c10 17X0 1kp0 1dz0 1c10 1aL0 1eN0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0|81e4","Asia/Kabul|+04 +0430|-40 -4u|01|-10Qs0|46e5","Asia/Kamchatka|LMT +11 +12 +13|-ay.A -b0 -c0 -d0|012323232323232323232321232323232323232323232323232323232323212|-1SLKy.A ivXy.A 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|18e4","Asia/Karachi|LMT +0530 +0630 +05 PKT PKST|-4s.c -5u -6u -50 -50 -60|012134545454|-2xoss.c 1qOKW.c 7zX0 eup0 LqMu 1fy00 1cL0 dK10 11b0 1610 1jX0|24e6","Asia/Urumqi|LMT +06|-5O.k -60|01|-1GgtO.k|32e5","Asia/Kathmandu|LMT +0530 +0545|-5F.g -5u -5J|012|-21JhF.g 2EGMb.g|12e5","Asia/Khandyga|LMT +08 +09 +10 +11|-92.d -80 -90 -a0 -b0|0123232323232323232323212323232323232323232323232343434343434343432|-21Q92.d pAp2.d 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 qK0 yN0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|66e2","Asia/Krasnoyarsk|LMT +06 +07 +08|-6b.q -60 -70 -80|01232323232323232323232123232323232323232323232323232323232323232|-21Hib.q prAb.q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|10e5","Asia/Kuala_Lumpur|SMT +07 +0720 +0730 +09 +08|-6T.p -70 -7k -7u -90 -80|0123435|-2Bg6T.p 17anT.p l5XE 17bO 8Fyu 1so1u|71e5","Asia/Kuching|LMT +0730 +08 +0820 +09|-7l.k -7u -80 -8k -90|0123232323232323242|-1KITl.k gDbP.k 6ynu AnE 1O0k AnE 1NAk AnE 1NAk AnE 1NAk AnE 1O0k AnE 1NAk AnE pAk 8Fz0|13e4","Asia/Macau|LMT CST +09 +10 CDT|-7y.a -80 -90 -a0 -90|012323214141414141414141414141414141414141414141414141414141414141414141|-2CFHy.a 1uqKy.a PX0 1kn0 15B0 11b0 4Qq0 1oM0 11c0 1ko0 1u00 11A0 1cM0 11c0 1o00 11A0 1o00 11A0 1oo0 1400 1o00 11A0 1o00 U00 1tA0 U00 1wo0 Rc0 1wru U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cK0 1cO0 1cK0 1cO0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|57e4","Asia/Magadan|LMT +10 +11 +12|-a3.c -a0 -b0 -c0|012323232323232323232321232323232323232323232323232323232323232312|-1Pca3.c eUo3.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Cq0|95e3","Asia/Makassar|LMT MMT +08 +09 WITA|-7V.A -7V.A -80 -90 -80|01234|-21JjV.A vfc0 myLV.A 8ML0|15e5","Asia/Manila|PST PDT JST|-80 -90 -90|010201010|-1kJI0 AL0 cK10 65X0 mXB0 vX0 VK10 1db0|24e6","Asia/Nicosia|LMT EET EEST|-2d.s -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Vc2d.s 2a3cd.s 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|32e4","Asia/Novokuznetsk|LMT +06 +07 +08|-5M.M -60 -70 -80|012323232323232323232321232323232323232323232323232323232323212|-1PctM.M eULM.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|55e4","Asia/Novosibirsk|LMT +06 +07 +08|-5v.E -60 -70 -80|0123232323232323232323212323212121212121212121212121212121212121212|-21Qnv.E pAFv.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 ml0 Os0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 4eN0|15e5","Asia/Omsk|LMT +05 +06 +07|-4R.u -50 -60 -70|01232323232323232323232123232323232323232323232323232323232323232|-224sR.u pMLR.u 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|12e5","Asia/Oral|LMT +03 +05 +06 +04|-3p.o -30 -50 -60 -40|01232323232323232424242424242424242424242424242|-1Pc3p.o eUop.o 23CK0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 1cM0 IM0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|27e4","Asia/Pontianak|LMT PMT +0730 +09 +08 WITA WIB|-7h.k -7h.k -7u -90 -80 -80 -70|012324256|-2ua7h.k XE00 munL.k 8Rau 6kpu 4PXu xhcu Wqnu|23e4","Asia/Pyongyang|LMT KST JST KST|-8n -8u -90 -90|012313|-2um8n 97XR 1lTzu 2Onc0 6BA0|29e5","Asia/Qostanay|LMT +04 +05 +06|-4e.s -40 -50 -60|012323232323232323232123232323232323232323232323|-1Pc4e.s eUoe.s 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|","Asia/Qyzylorda|LMT +04 +05 +06|-4l.Q -40 -50 -60|01232323232323232323232323232323232323232323232|-1Pc4l.Q eUol.Q 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 3ao0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 zQl0|73e4","Asia/Rangoon|RMT +0630 +09|-6o.L -6u -90|0121|-21Jio.L SmnS.L 7j9u|48e5","Asia/Sakhalin|LMT +09 +11 +12 +10|-9u.M -90 -b0 -c0 -a0|01232323232323232323232423232323232424242424242424242424242424242|-2AGVu.M 1BoMu.M 1qFa0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 2pB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|58e4","Asia/Samarkand|LMT +04 +05 +06|-4r.R -40 -50 -60|01232323232323232323232|-1Pc4r.R eUor.R 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0|36e4","Asia/Seoul|LMT KST JST KST KDT KDT|-8r.Q -8u -90 -90 -a0 -9u|012343434343151515151515134343|-2um8r.Q 97XV.Q 1m1zu 6CM0 Fz0 1kN0 14n0 1kN0 14L0 1zd0 On0 69B0 2I0u OL0 1FB0 Rb0 1qN0 TX0 1tB0 TX0 1tB0 TX0 1tB0 TX0 2ap0 12FBu 11A0 1o00 11A0|23e6","Asia/Srednekolymsk|LMT +10 +11 +12|-ae.Q -a0 -b0 -c0|01232323232323232323232123232323232323232323232323232323232323232|-1Pcae.Q eUoe.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|35e2","Asia/Taipei|CST JST CDT|-80 -90 -90|01020202020202020202020202020202020202020|-1iw80 joM0 1yo0 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 10N0 1BX0 10p0 1pz0 10p0 1pz0 10p0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1BB0 ML0 1Bd0 ML0 uq10 1db0 1cN0 1db0 97B0 AL0|74e5","Asia/Tashkent|LMT +05 +06 +07|-4B.b -50 -60 -70|012323232323232323232321|-1Pc4B.b eUnB.b 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0|23e5","Asia/Tbilisi|TBMT +03 +04 +05|-2X.b -30 -40 -50|0123232323232323232323212121232323232323232323212|-1Pc2X.b 1jUnX.b WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cK0 1cL0 1cN0 1cL0 1cN0 2pz0 1cL0 1fB0 3Nz0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 An0 Os0 WM0|11e5","Asia/Tehran|LMT TMT +0330 +04 +05 +0430|-3p.I -3p.I -3u -40 -50 -4u|01234325252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2btDp.I 1d3c0 1huLT.I TXu 1pz0 sN0 vAu 1cL0 1dB0 1en0 pNB0 UL0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 64p0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0|14e6","Asia/Thimphu|LMT +0530 +06|-5W.A -5u -60|012|-Su5W.A 1BGMs.A|79e3","Asia/Tokyo|JST JDT|-90 -a0|010101010|-QJJ0 Rc0 1lc0 14o0 1zc0 Oo0 1zc0 Oo0|38e6","Asia/Tomsk|LMT +06 +07 +08|-5D.P -60 -70 -80|0123232323232323232323212323232323232323232323212121212121212121212|-21NhD.P pxzD.P 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 co0 1bB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Qp0|10e5","Asia/Ulaanbaatar|LMT +07 +08 +09|-77.w -70 -80 -90|012323232323232323232323232323232323232323232323232|-2APH7.w 2Uko7.w cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|12e5","Asia/Ust-Nera|LMT +08 +09 +12 +11 +10|-9w.S -80 -90 -c0 -b0 -a0|012343434343434343434345434343434343434343434343434343434343434345|-21Q9w.S pApw.S 23CL0 1d90 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|65e2","Asia/Vladivostok|LMT +09 +10 +11|-8L.v -90 -a0 -b0|01232323232323232323232123232323232323232323232323232323232323232|-1SJIL.v itXL.v 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4","Asia/Yakutsk|LMT +08 +09 +10|-8C.W -80 -90 -a0|01232323232323232323232123232323232323232323232323232323232323232|-21Q8C.W pAoC.W 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|28e4","Asia/Yekaterinburg|LMT PMT +04 +05 +06|-42.x -3J.5 -40 -50 -60|012343434343434343434343234343434343434343434343434343434343434343|-2ag42.x 7mQh.s qBvJ.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|14e5","Asia/Yerevan|LMT +03 +04 +05|-2W -30 -40 -50|0123232323232323232323212121212323232323232323232323232323232|-1Pc2W 1jUnW WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 4RX0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|13e5","Atlantic/Azores|HMT -02 -01 +00 WET|1S.w 20 10 0 0|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121232323232323232323232323232323234323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2ldW0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|25e4","Atlantic/Bermuda|BMT BST AST ADT|4j.i 3j.i 40 30|010102323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-28p7E.G 1bb0 1i10 11X0 ru30 thbE.G 1PX0 11B0 1tz0 Rd0 1zb0 Op0 1zb0 3I10 Lz0 1EN0 FX0 1HB0 FX0 1Kp0 Db0 1Kp0 Db0 1Kp0 FX0 93d0 11z0 GAp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e3","Atlantic/Canary|LMT -01 WET WEST|11.A 10 0 -10|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UtaW.o XPAW.o 1lAK0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4","Atlantic/Cape_Verde|LMT -02 -01|1y.4 20 10|01212|-2ldW0 1eEo0 7zX0 1djf0|50e4","Atlantic/Faroe|LMT WET WEST|r.4 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2uSnw.U 2Wgow.U 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|49e3","Atlantic/Madeira|FMT -01 +00 +01 WET WEST|17.A 10 0 -10 0 -10|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2ldX0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e4","Atlantic/Reykjavik|LMT -01 +00 GMT|1s 10 0 0|012121212121212121212121212121212121212121212121212121212121212121213|-2uWmw mfaw 1Bd0 ML0 1LB0 Cn0 1LB0 3fX0 C10 HrX0 1cO0 LB0 1EL0 LA0 1C00 Oo0 1wo0 Rc0 1wo0 Rc0 1wo0 Rc0 1zc0 Oo0 1zc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0|12e4","Atlantic/South_Georgia|-02|20|0||30","Atlantic/Stanley|SMT -04 -03 -02|3P.o 40 30 20|012121212121212323212121212121212121212121212121212121212121212121212|-2kJw8.A 12bA8.A 19X0 1fB0 19X0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 Cn0 1Cc10 WL0 1qL0 U10 1tz0 2mN0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 U10 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qN0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 U10 1tz0 U10 1tz0 U10|21e2","Australia/Sydney|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293k0 xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|40e5","Australia/Adelaide|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293ju xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 WM0 1qM0 Rc0 1zc0 U00 1tA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|11e5","Australia/Brisbane|AEST AEDT|-a0 -b0|01010101010101010|-293k0 xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0|20e5","Australia/Broken_Hill|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293ju xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|18e3","Australia/Hobart|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 1a00 1qM0 Oo0 1zc0 Oo0 TAo0 yM0 1cM0 1cM0 1fA0 1a00 VfA0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|21e4","Australia/Darwin|ACST ACDT|-9u -au|010101010|-293ju xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00|12e4","Australia/Eucla|+0845 +0945|-8J -9J|0101010101010101010|-293iJ xc0 10jc0 yM0 1cM0 1cM0 1gSo0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|368","Australia/Lord_Howe|AEST +1030 +1130 +11|-a0 -au -bu -b0|0121212121313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313|raC0 1zdu Rb0 1zd0 On0 1zd0 On0 1zd0 On0 1zd0 TXu 1qMu WLu 1tAu WLu 1tAu TXu 1tAu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 11Au 1nXu 1qMu 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu 11zu 1o0u WLu 1qMu 14nu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu|347","Australia/Lindeman|AEST AEDT|-a0 -b0|010101010101010101010|-293k0 xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0|10","Australia/Melbourne|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293k0 xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1qM0 11A0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|39e5","Australia/Perth|AWST AWDT|-80 -90|0101010101010101010|-293i0 xc0 10jc0 yM0 1cM0 1cM0 1gSo0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|18e5","CET|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|","Pacific/Easter|EMT -07 -06 -05|7h.s 70 60 50|012121212121212121212121212123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1uSgG.w 1s4IG.w WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 2pA0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0|30e2","CST6CDT|CST CDT CWT CPT|60 50 50 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","EET|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|","Europe/Dublin|DMT IST GMT BST IST|p.l -y.D 0 -10 -10|01232323232324242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242|-2ax9y.D Rc0 1fzy.D 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 g600 14o0 1wo0 17c0 1io0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5","EST|EST|50|0||","EST5EDT|EST EDT EWT EPT|50 40 40 40|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 SgN0 8x40 iv0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","Etc/GMT-0|GMT|0|0||","Etc/GMT-1|+01|-10|0||","Pacific/Port_Moresby|+10|-a0|0||25e4","Etc/GMT-11|+11|-b0|0||","Pacific/Tarawa|+12|-c0|0||29e3","Etc/GMT-13|+13|-d0|0||","Etc/GMT-14|+14|-e0|0||","Etc/GMT-2|+02|-20|0||","Etc/GMT-3|+03|-30|0||","Etc/GMT-4|+04|-40|0||","Etc/GMT-5|+05|-50|0||","Etc/GMT-6|+06|-60|0||","Indian/Christmas|+07|-70|0||21e2","Etc/GMT-8|+08|-80|0||","Pacific/Palau|+09|-90|0||21e3","Etc/GMT+1|-01|10|0||","Etc/GMT+10|-10|a0|0||","Etc/GMT+11|-11|b0|0||","Etc/GMT+12|-12|c0|0||","Etc/GMT+3|-03|30|0||","Etc/GMT+4|-04|40|0||","Etc/GMT+5|-05|50|0||","Etc/GMT+6|-06|60|0||","Etc/GMT+7|-07|70|0||","Etc/GMT+8|-08|80|0||","Etc/GMT+9|-09|90|0||","Etc/UTC|UTC|0|0||","Europe/Amsterdam|AMT NST +0120 +0020 CEST CET|-j.w -1j.w -1k -k -20 -10|010101010101010101010101010101010101010101012323234545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545|-2aFcj.w 11b0 1iP0 11A0 1io0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1co0 1io0 1yo0 Pc0 1a00 1fA0 1Bc0 Mo0 1tc0 Uo0 1tA0 U00 1uo0 W00 1s00 VA0 1so0 Vc0 1sM0 UM0 1wo0 Rc0 1u00 Wo0 1rA0 W00 1s00 VA0 1sM0 UM0 1w00 fV0 BCX.w 1tA0 U00 1u00 Wo0 1sm0 601k WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|16e5","Europe/Andorra|WET CET CEST|0 -10 -20|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-UBA0 1xIN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|79e3","Europe/Astrakhan|LMT +03 +04 +05|-3c.c -30 -40 -50|012323232323232323212121212121212121212121212121212121212121212|-1Pcrc.c eUMc.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|10e5","Europe/Athens|AMT EET EEST CEST CET|-1y.Q -20 -30 -20 -10|012123434121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a61x.Q CNbx.Q mn0 kU10 9b0 3Es0 Xa0 1fb0 1dd0 k3X0 Nz0 SCp0 1vc0 SO0 1cM0 1a00 1ao0 1fc0 1a10 1fG0 1cg0 1dX0 1bX0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|35e5","Europe/London|GMT BST BDST|0 -10 -20|0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|10e6","Europe/Belgrade|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19RC0 3IP0 WM0 1fA0 1cM0 1cM0 1rc0 Qo0 1vmo0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5","Europe/Berlin|CET CEST CEMT|-10 -20 -30|01010101010101210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 kL0 Nc0 m10 WM0 1ao0 1cp0 dX0 jz0 Dd0 1io0 17c0 1fA0 1a00 1ehA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e5","Europe/Prague|CET CEST GMT|-10 -20 0|01010101010101010201010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 1qM0 11c0 mp0 xA0 mn0 17c0 1io0 17c0 1fc0 1ao0 1bNc0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|13e5","Europe/Brussels|WET CET CEST WEST|0 -10 -20 -10|0121212103030303030303030303030303030303030303030303212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ehc0 3zX0 11c0 1iO0 11A0 1o00 11A0 my0 Ic0 1qM0 Rc0 1EM0 UM0 1u00 10o0 1io0 1io0 17c0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a30 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 y00 5Wn0 WM0 1fA0 1cM0 16M0 1iM0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|21e5","Europe/Bucharest|BMT EET EEST|-1I.o -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1xApI.o 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Axc0 On0 1fA0 1a10 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|19e5","Europe/Budapest|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 1oo0 11c0 1lc0 17c0 O1V0 3Nf0 WM0 1fA0 1cM0 1cM0 1oJ0 1dd0 1020 1fX0 1cp0 1cM0 1cM0 1cM0 1fA0 1a00 bhy0 Rb0 1wr0 Rc0 1C00 LA0 1C00 LA0 SNW0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cO0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5","Europe/Zurich|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19Lc0 11A0 1o00 11A0 1xG10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e4","Europe/Chisinau|CMT BMT EET EEST CEST CET MSK MSD|-1T -1I.o -20 -30 -20 -10 -30 -40|012323232323232323234545467676767676767676767323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-26jdT wGMa.A 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 27A0 2en0 39g0 WM0 1fA0 1cM0 V90 1t7z0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 gL0 WO0 1cM0 1cM0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11D0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|67e4","Europe/Copenhagen|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 Tz0 VuO0 60q0 WM0 1fA0 1cM0 1cM0 1cM0 S00 1HA0 Nc0 1C00 Dc0 1Nc0 Ao0 1h5A0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5","Europe/Gibraltar|GMT BST BDST CET CEST|0 -10 -20 -10 -20|010101010101010101010101010101010101010101010101012121212121010121010101010101010101034343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 10Jz0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|30e3","Europe/Helsinki|HMT EET EEST|-1D.N -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1WuND.N OULD.N 1dA0 1xGq0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5","Europe/Kaliningrad|CET CEST EET EEST MSK MSD +03|-10 -20 -20 -30 -30 -40 -30|01010101010101232454545454545454543232323232323232323232323232323232323232323262|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 390 7A0 1en0 12N0 1pbb0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|44e4","Europe/Kiev|KMT EET MSK CEST CET MSD EEST|-22.4 -20 -30 -20 -10 -40 -30|0123434252525252525252525256161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc22.4 eUo2.4 rnz0 2Hg0 WM0 1fA0 da0 1v4m0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 Db0 3220 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|34e5","Europe/Kirov|LMT +03 +04 +05|-3i.M -30 -40 -50|01232323232323232321212121212121212121212121212121212121212121|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|48e4","Europe/Lisbon|LMT WET WEST WEMT CET CEST|A.J 0 -10 -20 -10 -20|012121212121212121212121212121212121212121212321232123212321212121212121212121212121212121212121214121212121212121212121212121212124545454212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2le00 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 pvy0 1cM0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e5","Europe/Luxembourg|LMT CET CEST WET WEST WEST WET|-o.A -10 -20 0 -10 -20 -10|0121212134343434343434343434343434343434343434343434565651212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2DG0o.A t6mo.A TB0 1nX0 Up0 1o20 11A0 rW0 CM0 1qP0 R90 1EO0 UK0 1u20 10m0 1ip0 1in0 17e0 19W0 1fB0 1db0 1cp0 1in0 17d0 1fz0 1a10 1in0 1a10 1in0 17f0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 vA0 60L0 WM0 1fA0 1cM0 17c0 1io0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4","Europe/Madrid|WET WEST WEMT CET CEST|0 -10 -20 -10 -20|010101010101010101210343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-25Td0 19B0 1cL0 1dd0 b1z0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1in0 17d0 iIn0 Hd0 1cL0 bb0 1200 2s20 14n0 5aL0 Mp0 1vz0 17d0 1in0 17d0 1in0 17d0 1in0 17d0 6hX0 11B0 XHX0 1a10 1fz0 1a10 19X0 1cN0 1fz0 1a10 1fC0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e5","Europe/Malta|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1co0 17c0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1co0 1cM0 1lA0 Xc0 1qq0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1iN0 19z0 1fB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4","Europe/Minsk|MMT EET MSK CEST CET MSD EEST +03|-1O -20 -30 -20 -10 -40 -30 -30|01234343252525252525252525261616161616161616161616161616161616161617|-1Pc1O eUnO qNX0 3gQ0 WM0 1fA0 1cM0 Al0 1tsn0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 3Fc0 1cN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0|19e5","Europe/Monaco|PMT WET WEST WEMT CET CEST|-9.l 0 -10 -20 -10 -20|01212121212121212121212121212121212121212121212121232323232345454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2n5c9.l cFX9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 2RV0 11z0 11B0 1ze0 WM0 1fA0 1cM0 1fa0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e3","Europe/Moscow|MMT MMT MST MDST MSD MSK +05 EET EEST MSK|-2u.h -2v.j -3v.j -4v.j -40 -30 -50 -20 -30 -40|012132345464575454545454545454545458754545454545454545454545454545454545454595|-2ag2u.h 2pyW.W 1bA0 11X0 GN0 1Hb0 c4v.j ik0 3DA0 dz0 15A0 c10 2q10 iM10 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|16e6","Europe/Paris|PMT WET WEST CEST CET WEMT|-9.l 0 -10 -20 -10 -20|0121212121212121212121212121212121212121212121212123434352543434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 Ik0 5M30 WM0 1fA0 1cM0 Vx0 hB0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e6","Europe/Riga|RMT LST EET MSK CEST CET MSD EEST|-1A.y -2A.y -20 -30 -20 -10 -40 -30|010102345454536363636363636363727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272|-25TzA.y 11A0 1iM0 ko0 gWm0 yDXA.y 2bX0 3fE0 WM0 1fA0 1cM0 1cM0 4m0 1sLy0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 1o00 11A0 1o00 11A0 1qM0 3oo0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|64e4","Europe/Rome|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1cM0 16M0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1C00 LA0 1zc0 Oo0 1C00 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1zc0 Oo0 1fC0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|39e5","Europe/Samara|LMT +03 +04 +05|-3k.k -30 -40 -50|0123232323232323232121232323232323232323232323232323232323212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2y10 14m0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|12e5","Europe/Saratov|LMT +03 +04 +05|-34.i -30 -40 -50|012323232323232321212121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 5810|","Europe/Simferopol|SMT EET MSK CEST CET MSD EEST MSK|-2g -20 -30 -20 -10 -40 -30 -40|012343432525252525252525252161616525252616161616161616161616161616161616172|-1Pc2g eUog rEn0 2qs0 WM0 1fA0 1cM0 3V0 1u0L0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 4eL0 1cL0 1cN0 1cL0 1cN0 dX0 WL0 1cN0 1cL0 1fB0 1o30 11B0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11z0 1nW0|33e4","Europe/Sofia|EET CET CEST EEST|-20 -10 -20 -30|01212103030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030|-168L0 WM0 1fA0 1cM0 1cM0 1cN0 1mKH0 1dd0 1fb0 1ap0 1fb0 1a20 1fy0 1a30 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5","Europe/Stockholm|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 TB0 2yDe0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|15e5","Europe/Tallinn|TMT CET CEST EET MSK MSD EEST|-1D -10 -20 -20 -30 -40 -30|012103421212454545454545454546363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363|-26oND teD 11A0 1Ta0 4rXl KSLD 2FX0 2Jg0 WM0 1fA0 1cM0 18J0 1sTX0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o10 11A0 1qM0 5QM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e4","Europe/Tirane|LMT CET CEST|-1j.k -10 -20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glBj.k 14pcj.k 5LC0 WM0 4M0 1fCK0 10n0 1op0 11z0 1pd0 11z0 1qN0 WL0 1qp0 Xb0 1qp0 Xb0 1qp0 11z0 1lB0 11z0 1qN0 11z0 1iN0 16n0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4","Europe/Ulyanovsk|LMT +03 +04 +05 +02|-3d.A -30 -40 -50 -20|01232323232323232321214121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|13e5","Europe/Uzhgorod|CET CEST MSK MSD EET EEST|-10 -20 -30 -40 -20 -30|010101023232323232323232320454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-1cqL0 6i00 WM0 1fA0 1cM0 1ml0 1Cp0 1r3W0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 1Nf0 2pw0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e4","Europe/Vienna|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 3KM0 14o0 LA00 6i00 WM0 1fA0 1cM0 1cM0 1cM0 400 2qM0 1ao0 1co0 1cM0 1io0 17c0 1gHa0 19X0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|18e5","Europe/Vilnius|WMT KMT CET EET MSK CEST MSD EEST|-1o -1z.A -10 -20 -30 -20 -40 -30|012324525254646464646464646473737373737373737352537373737373737373737373737373737373737373737373737373737373737373737373|-293do 6ILM.o 1Ooz.A zz0 Mfd0 29W0 3is0 WM0 1fA0 1cM0 LV0 1tgL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11B0 1o00 11A0 1qM0 8io0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4","Europe/Volgograd|LMT +03 +04 +05|-2V.E -30 -40 -50|0123232323232323212121212121212121212121212121212121212121212121|-21IqV.E psLV.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 9Jd0 5gn0|10e5","Europe/Warsaw|WMT CET CEST EET EEST|-1o -10 -20 -20 -30|012121234312121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ctdo 1LXo 11d0 1iO0 11A0 1o00 11A0 1on0 11A0 6zy0 HWP0 5IM0 WM0 1fA0 1cM0 1dz0 1mL0 1en0 15B0 1aq0 1nA0 11A0 1io0 17c0 1fA0 1a00 iDX0 LA0 1cM0 1cM0 1C00 Oo0 1cM0 1cM0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1C00 LA0 uso0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5","Europe/Zaporozhye|+0220 EET MSK CEST CET MSD EEST|-2k -20 -30 -20 -10 -40 -30|01234342525252525252525252526161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc2k eUok rdb0 2RE0 WM0 1fA0 8m0 1v9a0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cK0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|77e4","HST|HST|a0|0||","Indian/Chagos|LMT +05 +06|-4N.E -50 -60|012|-2xosN.E 3AGLN.E|30e2","Indian/Cocos|+0630|-6u|0||596","Indian/Kerguelen|-00 +05|0 -50|01|-MG00|130","Indian/Mahe|LMT +04|-3F.M -40|01|-2xorF.M|79e3","Indian/Maldives|MMT +05|-4S -50|01|-olgS|35e4","Indian/Mauritius|LMT +04 +05|-3O -40 -50|012121|-2xorO 34unO 14L0 12kr0 11z0|15e4","Indian/Reunion|LMT +04|-3F.Q -40|01|-2mDDF.Q|84e4","Pacific/Kwajalein|+11 +10 +09 -12 +12|-b0 -a0 -90 c0 -c0|012034|-1kln0 akp0 6Up0 12ry0 Wan0|14e3","MET|MET MEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|","MST|MST|70|0||","MST7MDT|MST MDT MWT MPT|70 60 60 60|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","Pacific/Chatham|+1215 +1245 +1345|-cf -cJ -dJ|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-WqAf 1adef IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|600","Pacific/Apia|LMT -1130 -11 -10 +14 +13|bq.U bu b0 a0 -e0 -d0|01232345454545454545454545454545454545454545454545454545454|-2nDMx.4 1yW03.4 2rRbu 1ff0 1a00 CI0 AQ0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|37e3","Pacific/Bougainville|+10 +09 +11|-a0 -90 -b0|0102|-16Wy0 7CN0 2MQp0|18e4","Pacific/Chuuk|+10 +09|-a0 -90|01010|-2ewy0 axB0 RVX0 axd0|49e3","Pacific/Efate|LMT +11 +12|-bd.g -b0 -c0|012121212121212121212121|-2l9nd.g 2uNXd.g Dc0 n610 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 Lz0 1Nd0 An0|66e3","Pacific/Enderbury|-12 -11 +13|c0 b0 -d0|012|nIc0 B7X0|1","Pacific/Fakaofo|-11 +13|b0 -d0|01|1Gfn0|483","Pacific/Fiji|LMT +12 +13|-bT.I -c0 -d0|0121212121212121212121212121212121212121212121212121212121212121|-2bUzT.I 3m8NT.I LA0 1EM0 IM0 nJc0 LA0 1o00 Rc0 1wo0 Ao0 1Nc0 Ao0 1Q00 xz0 1SN0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 s00 20o0 pc0 2hc0 bc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 1VA0 s00 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 1VA0 s00|88e4","Pacific/Galapagos|LMT -05 -06|5W.o 50 60|01212|-1yVS1.A 2dTz1.A gNd0 rz0|25e3","Pacific/Gambier|LMT -09|8X.M 90|01|-2jof0.c|125","Pacific/Guadalcanal|LMT +11|-aD.M -b0|01|-2joyD.M|11e4","Pacific/Guam|GST +09 GDT ChST|-a0 -90 -b0 -a0|01020202020202020203|-18jK0 6pB0 AhB0 3QL0 g2p0 3p91 WOX rX0 1zd0 Rb0 1wp0 Rb0 5xd0 rX0 5sN0 zb1 1C0X On0 ULb0|17e4","Pacific/Honolulu|HST HDT HWT HPT HST|au 9u 9u 9u a0|0102304|-1thLu 8x0 lef0 8wWu iAu 46p0|37e4","Pacific/Kiritimati|-1040 -10 +14|aE a0 -e0|012|nIaE B7Xk|51e2","Pacific/Kosrae|+11 +09 +10 +12|-b0 -90 -a0 -c0|01021030|-2ewz0 axC0 HBy0 akp0 axd0 WOK0 1bdz0|66e2","Pacific/Majuro|+11 +09 +10 +12|-b0 -90 -a0 -c0|0102103|-2ewz0 axC0 HBy0 akp0 6RB0 12um0|28e3","Pacific/Marquesas|LMT -0930|9i 9u|01|-2joeG|86e2","Pacific/Pago_Pago|LMT SST|bm.M b0|01|-2nDMB.c|37e2","Pacific/Nauru|LMT +1130 +09 +12|-b7.E -bu -90 -c0|01213|-1Xdn7.E QCnB.E 7mqu 1lnbu|10e3","Pacific/Niue|-1120 -1130 -11|bk bu b0|012|-KfME 17y0a|12e2","Pacific/Norfolk|+1112 +1130 +1230 +11 +12|-bc -bu -cu -b0 -c0|012134343434343434343434343434343434343434|-Kgbc W01G Oo0 1COo0 9Jcu 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|25e4","Pacific/Noumea|LMT +11 +12|-b5.M -b0 -c0|01212121|-2l9n5.M 2EqM5.M xX0 1PB0 yn0 HeP0 Ao0|98e3","Pacific/Pitcairn|-0830 -08|8u 80|01|18Vku|56","Pacific/Pohnpei|+11 +09 +10|-b0 -90 -a0|010210|-2ewz0 axC0 HBy0 akp0 axd0|34e3","Pacific/Rarotonga|-1030 -0930 -10|au 9u a0|012121212121212121212121212|lyWu IL0 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu|13e3","Pacific/Tahiti|LMT -10|9W.g a0|01|-2joe1.I|18e4","Pacific/Tongatapu|+1220 +13 +14|-ck -d0 -e0|0121212121|-1aB0k 2n5dk 15A0 1wo0 xz0 1Q10 xz0 zWN0 s00|75e3","PST8PDT|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","WET|WET WEST|0 -10|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|"],links:["Africa/Abidjan|Africa/Bamako","Africa/Abidjan|Africa/Banjul","Africa/Abidjan|Africa/Conakry","Africa/Abidjan|Africa/Dakar","Africa/Abidjan|Africa/Freetown","Africa/Abidjan|Africa/Lome","Africa/Abidjan|Africa/Nouakchott","Africa/Abidjan|Africa/Ouagadougou","Africa/Abidjan|Africa/Timbuktu","Africa/Abidjan|Atlantic/St_Helena","Africa/Cairo|Egypt","Africa/Johannesburg|Africa/Maseru","Africa/Johannesburg|Africa/Mbabane","Africa/Lagos|Africa/Bangui","Africa/Lagos|Africa/Brazzaville","Africa/Lagos|Africa/Douala","Africa/Lagos|Africa/Kinshasa","Africa/Lagos|Africa/Libreville","Africa/Lagos|Africa/Luanda","Africa/Lagos|Africa/Malabo","Africa/Lagos|Africa/Niamey","Africa/Lagos|Africa/Porto-Novo","Africa/Maputo|Africa/Blantyre","Africa/Maputo|Africa/Bujumbura","Africa/Maputo|Africa/Gaborone","Africa/Maputo|Africa/Harare","Africa/Maputo|Africa/Kigali","Africa/Maputo|Africa/Lubumbashi","Africa/Maputo|Africa/Lusaka","Africa/Nairobi|Africa/Addis_Ababa","Africa/Nairobi|Africa/Asmara","Africa/Nairobi|Africa/Asmera","Africa/Nairobi|Africa/Dar_es_Salaam","Africa/Nairobi|Africa/Djibouti","Africa/Nairobi|Africa/Kampala","Africa/Nairobi|Africa/Mogadishu","Africa/Nairobi|Indian/Antananarivo","Africa/Nairobi|Indian/Comoro","Africa/Nairobi|Indian/Mayotte","Africa/Tripoli|Libya","America/Adak|America/Atka","America/Adak|US/Aleutian","America/Anchorage|US/Alaska","America/Argentina/Buenos_Aires|America/Buenos_Aires","America/Argentina/Catamarca|America/Argentina/ComodRivadavia","America/Argentina/Catamarca|America/Catamarca","America/Argentina/Cordoba|America/Cordoba","America/Argentina/Cordoba|America/Rosario","America/Argentina/Jujuy|America/Jujuy","America/Argentina/Mendoza|America/Mendoza","America/Atikokan|America/Coral_Harbour","America/Chicago|US/Central","America/Curacao|America/Aruba","America/Curacao|America/Kralendijk","America/Curacao|America/Lower_Princes","America/Denver|America/Shiprock","America/Denver|Navajo","America/Denver|US/Mountain","America/Detroit|US/Michigan","America/Edmonton|Canada/Mountain","America/Fort_Wayne|America/Indiana/Indianapolis","America/Fort_Wayne|America/Indianapolis","America/Fort_Wayne|US/East-Indiana","America/Godthab|America/Nuuk","America/Halifax|Canada/Atlantic","America/Havana|Cuba","America/Indiana/Knox|America/Knox_IN","America/Indiana/Knox|US/Indiana-Starke","America/Jamaica|Jamaica","America/Kentucky/Louisville|America/Louisville","America/Los_Angeles|US/Pacific","America/Manaus|Brazil/West","America/Mazatlan|Mexico/BajaSur","America/Mexico_City|Mexico/General","America/New_York|US/Eastern","America/Noronha|Brazil/DeNoronha","America/Panama|America/Cayman","America/Phoenix|US/Arizona","America/Port_of_Spain|America/Anguilla","America/Port_of_Spain|America/Antigua","America/Port_of_Spain|America/Dominica","America/Port_of_Spain|America/Grenada","America/Port_of_Spain|America/Guadeloupe","America/Port_of_Spain|America/Marigot","America/Port_of_Spain|America/Montserrat","America/Port_of_Spain|America/St_Barthelemy","America/Port_of_Spain|America/St_Kitts","America/Port_of_Spain|America/St_Lucia","America/Port_of_Spain|America/St_Thomas","America/Port_of_Spain|America/St_Vincent","America/Port_of_Spain|America/Tortola","America/Port_of_Spain|America/Virgin","America/Regina|Canada/Saskatchewan","America/Rio_Branco|America/Porto_Acre","America/Rio_Branco|Brazil/Acre","America/Santiago|Chile/Continental","America/Sao_Paulo|Brazil/East","America/St_Johns|Canada/Newfoundland","America/Tijuana|America/Ensenada","America/Tijuana|America/Santa_Isabel","America/Tijuana|Mexico/BajaNorte","America/Toronto|America/Montreal","America/Toronto|Canada/Eastern","America/Vancouver|Canada/Pacific","America/Whitehorse|Canada/Yukon","America/Winnipeg|Canada/Central","Asia/Ashgabat|Asia/Ashkhabad","Asia/Bangkok|Asia/Phnom_Penh","Asia/Bangkok|Asia/Vientiane","Asia/Dhaka|Asia/Dacca","Asia/Dubai|Asia/Muscat","Asia/Ho_Chi_Minh|Asia/Saigon","Asia/Hong_Kong|Hongkong","Asia/Jerusalem|Asia/Tel_Aviv","Asia/Jerusalem|Israel","Asia/Kathmandu|Asia/Katmandu","Asia/Kolkata|Asia/Calcutta","Asia/Kuala_Lumpur|Asia/Singapore","Asia/Kuala_Lumpur|Singapore","Asia/Macau|Asia/Macao","Asia/Makassar|Asia/Ujung_Pandang","Asia/Nicosia|Europe/Nicosia","Asia/Qatar|Asia/Bahrain","Asia/Rangoon|Asia/Yangon","Asia/Riyadh|Asia/Aden","Asia/Riyadh|Asia/Kuwait","Asia/Seoul|ROK","Asia/Shanghai|Asia/Chongqing","Asia/Shanghai|Asia/Chungking","Asia/Shanghai|Asia/Harbin","Asia/Shanghai|PRC","Asia/Taipei|ROC","Asia/Tehran|Iran","Asia/Thimphu|Asia/Thimbu","Asia/Tokyo|Japan","Asia/Ulaanbaatar|Asia/Ulan_Bator","Asia/Urumqi|Asia/Kashgar","Atlantic/Faroe|Atlantic/Faeroe","Atlantic/Reykjavik|Iceland","Atlantic/South_Georgia|Etc/GMT+2","Australia/Adelaide|Australia/South","Australia/Brisbane|Australia/Queensland","Australia/Broken_Hill|Australia/Yancowinna","Australia/Darwin|Australia/North","Australia/Hobart|Australia/Currie","Australia/Hobart|Australia/Tasmania","Australia/Lord_Howe|Australia/LHI","Australia/Melbourne|Australia/Victoria","Australia/Perth|Australia/West","Australia/Sydney|Australia/ACT","Australia/Sydney|Australia/Canberra","Australia/Sydney|Australia/NSW","Etc/GMT-0|Etc/GMT","Etc/GMT-0|Etc/GMT+0","Etc/GMT-0|Etc/GMT0","Etc/GMT-0|Etc/Greenwich","Etc/GMT-0|GMT","Etc/GMT-0|GMT+0","Etc/GMT-0|GMT-0","Etc/GMT-0|GMT0","Etc/GMT-0|Greenwich","Etc/UTC|Etc/UCT","Etc/UTC|Etc/Universal","Etc/UTC|Etc/Zulu","Etc/UTC|UCT","Etc/UTC|UTC","Etc/UTC|Universal","Etc/UTC|Zulu","Europe/Belgrade|Europe/Ljubljana","Europe/Belgrade|Europe/Podgorica","Europe/Belgrade|Europe/Sarajevo","Europe/Belgrade|Europe/Skopje","Europe/Belgrade|Europe/Zagreb","Europe/Chisinau|Europe/Tiraspol","Europe/Dublin|Eire","Europe/Helsinki|Europe/Mariehamn","Europe/Istanbul|Asia/Istanbul","Europe/Istanbul|Turkey","Europe/Lisbon|Portugal","Europe/London|Europe/Belfast","Europe/London|Europe/Guernsey","Europe/London|Europe/Isle_of_Man","Europe/London|Europe/Jersey","Europe/London|GB","Europe/London|GB-Eire","Europe/Moscow|W-SU","Europe/Oslo|Arctic/Longyearbyen","Europe/Oslo|Atlantic/Jan_Mayen","Europe/Prague|Europe/Bratislava","Europe/Rome|Europe/San_Marino","Europe/Rome|Europe/Vatican","Europe/Warsaw|Poland","Europe/Zurich|Europe/Busingen","Europe/Zurich|Europe/Vaduz","Indian/Christmas|Etc/GMT-7","Pacific/Auckland|Antarctica/McMurdo","Pacific/Auckland|Antarctica/South_Pole","Pacific/Auckland|NZ","Pacific/Chatham|NZ-CHAT","Pacific/Chuuk|Pacific/Truk","Pacific/Chuuk|Pacific/Yap","Pacific/Easter|Chile/EasterIsland","Pacific/Guam|Pacific/Saipan","Pacific/Honolulu|Pacific/Johnston","Pacific/Honolulu|US/Hawaii","Pacific/Kwajalein|Kwajalein","Pacific/Pago_Pago|Pacific/Midway","Pacific/Pago_Pago|Pacific/Samoa","Pacific/Pago_Pago|US/Samoa","Pacific/Palau|Etc/GMT-9","Pacific/Pohnpei|Pacific/Ponape","Pacific/Port_Moresby|Etc/GMT-10","Pacific/Tarawa|Etc/GMT-12","Pacific/Tarawa|Pacific/Funafuti","Pacific/Tarawa|Pacific/Wake","Pacific/Tarawa|Pacific/Wallis"],countries:["AD|Europe/Andorra","AE|Asia/Dubai","AF|Asia/Kabul","AG|America/Port_of_Spain America/Antigua","AI|America/Port_of_Spain America/Anguilla","AL|Europe/Tirane","AM|Asia/Yerevan","AO|Africa/Lagos Africa/Luanda","AQ|Antarctica/Casey Antarctica/Davis Antarctica/DumontDUrville Antarctica/Mawson Antarctica/Palmer Antarctica/Rothera Antarctica/Syowa Antarctica/Troll Antarctica/Vostok Pacific/Auckland Antarctica/McMurdo","AR|America/Argentina/Buenos_Aires America/Argentina/Cordoba America/Argentina/Salta America/Argentina/Jujuy America/Argentina/Tucuman America/Argentina/Catamarca America/Argentina/La_Rioja America/Argentina/San_Juan America/Argentina/Mendoza America/Argentina/San_Luis America/Argentina/Rio_Gallegos America/Argentina/Ushuaia","AS|Pacific/Pago_Pago","AT|Europe/Vienna","AU|Australia/Lord_Howe Antarctica/Macquarie Australia/Hobart Australia/Currie Australia/Melbourne Australia/Sydney Australia/Broken_Hill Australia/Brisbane Australia/Lindeman Australia/Adelaide Australia/Darwin Australia/Perth Australia/Eucla","AW|America/Curacao America/Aruba","AX|Europe/Helsinki Europe/Mariehamn","AZ|Asia/Baku","BA|Europe/Belgrade Europe/Sarajevo","BB|America/Barbados","BD|Asia/Dhaka","BE|Europe/Brussels","BF|Africa/Abidjan Africa/Ouagadougou","BG|Europe/Sofia","BH|Asia/Qatar Asia/Bahrain","BI|Africa/Maputo Africa/Bujumbura","BJ|Africa/Lagos Africa/Porto-Novo","BL|America/Port_of_Spain America/St_Barthelemy","BM|Atlantic/Bermuda","BN|Asia/Brunei","BO|America/La_Paz","BQ|America/Curacao America/Kralendijk","BR|America/Noronha America/Belem America/Fortaleza America/Recife America/Araguaina America/Maceio America/Bahia America/Sao_Paulo America/Campo_Grande America/Cuiaba America/Santarem America/Porto_Velho America/Boa_Vista America/Manaus America/Eirunepe America/Rio_Branco","BS|America/Nassau","BT|Asia/Thimphu","BW|Africa/Maputo Africa/Gaborone","BY|Europe/Minsk","BZ|America/Belize","CA|America/St_Johns America/Halifax America/Glace_Bay America/Moncton America/Goose_Bay America/Blanc-Sablon America/Toronto America/Nipigon America/Thunder_Bay America/Iqaluit America/Pangnirtung America/Atikokan America/Winnipeg America/Rainy_River America/Resolute America/Rankin_Inlet America/Regina America/Swift_Current America/Edmonton America/Cambridge_Bay America/Yellowknife America/Inuvik America/Creston America/Dawson_Creek America/Fort_Nelson America/Vancouver America/Whitehorse America/Dawson","CC|Indian/Cocos","CD|Africa/Maputo Africa/Lagos Africa/Kinshasa Africa/Lubumbashi","CF|Africa/Lagos Africa/Bangui","CG|Africa/Lagos Africa/Brazzaville","CH|Europe/Zurich","CI|Africa/Abidjan","CK|Pacific/Rarotonga","CL|America/Santiago America/Punta_Arenas Pacific/Easter","CM|Africa/Lagos Africa/Douala","CN|Asia/Shanghai Asia/Urumqi","CO|America/Bogota","CR|America/Costa_Rica","CU|America/Havana","CV|Atlantic/Cape_Verde","CW|America/Curacao","CX|Indian/Christmas","CY|Asia/Nicosia Asia/Famagusta","CZ|Europe/Prague","DE|Europe/Zurich Europe/Berlin Europe/Busingen","DJ|Africa/Nairobi Africa/Djibouti","DK|Europe/Copenhagen","DM|America/Port_of_Spain America/Dominica","DO|America/Santo_Domingo","DZ|Africa/Algiers","EC|America/Guayaquil Pacific/Galapagos","EE|Europe/Tallinn","EG|Africa/Cairo","EH|Africa/El_Aaiun","ER|Africa/Nairobi Africa/Asmara","ES|Europe/Madrid Africa/Ceuta Atlantic/Canary","ET|Africa/Nairobi Africa/Addis_Ababa","FI|Europe/Helsinki","FJ|Pacific/Fiji","FK|Atlantic/Stanley","FM|Pacific/Chuuk Pacific/Pohnpei Pacific/Kosrae","FO|Atlantic/Faroe","FR|Europe/Paris","GA|Africa/Lagos Africa/Libreville","GB|Europe/London","GD|America/Port_of_Spain America/Grenada","GE|Asia/Tbilisi","GF|America/Cayenne","GG|Europe/London Europe/Guernsey","GH|Africa/Accra","GI|Europe/Gibraltar","GL|America/Nuuk America/Danmarkshavn America/Scoresbysund America/Thule","GM|Africa/Abidjan Africa/Banjul","GN|Africa/Abidjan Africa/Conakry","GP|America/Port_of_Spain America/Guadeloupe","GQ|Africa/Lagos Africa/Malabo","GR|Europe/Athens","GS|Atlantic/South_Georgia","GT|America/Guatemala","GU|Pacific/Guam","GW|Africa/Bissau","GY|America/Guyana","HK|Asia/Hong_Kong","HN|America/Tegucigalpa","HR|Europe/Belgrade Europe/Zagreb","HT|America/Port-au-Prince","HU|Europe/Budapest","ID|Asia/Jakarta Asia/Pontianak Asia/Makassar Asia/Jayapura","IE|Europe/Dublin","IL|Asia/Jerusalem","IM|Europe/London Europe/Isle_of_Man","IN|Asia/Kolkata","IO|Indian/Chagos","IQ|Asia/Baghdad","IR|Asia/Tehran","IS|Atlantic/Reykjavik","IT|Europe/Rome","JE|Europe/London Europe/Jersey","JM|America/Jamaica","JO|Asia/Amman","JP|Asia/Tokyo","KE|Africa/Nairobi","KG|Asia/Bishkek","KH|Asia/Bangkok Asia/Phnom_Penh","KI|Pacific/Tarawa Pacific/Enderbury Pacific/Kiritimati","KM|Africa/Nairobi Indian/Comoro","KN|America/Port_of_Spain America/St_Kitts","KP|Asia/Pyongyang","KR|Asia/Seoul","KW|Asia/Riyadh Asia/Kuwait","KY|America/Panama America/Cayman","KZ|Asia/Almaty Asia/Qyzylorda Asia/Qostanay Asia/Aqtobe Asia/Aqtau Asia/Atyrau Asia/Oral","LA|Asia/Bangkok Asia/Vientiane","LB|Asia/Beirut","LC|America/Port_of_Spain America/St_Lucia","LI|Europe/Zurich Europe/Vaduz","LK|Asia/Colombo","LR|Africa/Monrovia","LS|Africa/Johannesburg Africa/Maseru","LT|Europe/Vilnius","LU|Europe/Luxembourg","LV|Europe/Riga","LY|Africa/Tripoli","MA|Africa/Casablanca","MC|Europe/Monaco","MD|Europe/Chisinau","ME|Europe/Belgrade Europe/Podgorica","MF|America/Port_of_Spain America/Marigot","MG|Africa/Nairobi Indian/Antananarivo","MH|Pacific/Majuro Pacific/Kwajalein","MK|Europe/Belgrade Europe/Skopje","ML|Africa/Abidjan Africa/Bamako","MM|Asia/Yangon","MN|Asia/Ulaanbaatar Asia/Hovd Asia/Choibalsan","MO|Asia/Macau","MP|Pacific/Guam Pacific/Saipan","MQ|America/Martinique","MR|Africa/Abidjan Africa/Nouakchott","MS|America/Port_of_Spain America/Montserrat","MT|Europe/Malta","MU|Indian/Mauritius","MV|Indian/Maldives","MW|Africa/Maputo Africa/Blantyre","MX|America/Mexico_City America/Cancun America/Merida America/Monterrey America/Matamoros America/Mazatlan America/Chihuahua America/Ojinaga America/Hermosillo America/Tijuana America/Bahia_Banderas","MY|Asia/Kuala_Lumpur Asia/Kuching","MZ|Africa/Maputo","NA|Africa/Windhoek","NC|Pacific/Noumea","NE|Africa/Lagos Africa/Niamey","NF|Pacific/Norfolk","NG|Africa/Lagos","NI|America/Managua","NL|Europe/Amsterdam","NO|Europe/Oslo","NP|Asia/Kathmandu","NR|Pacific/Nauru","NU|Pacific/Niue","NZ|Pacific/Auckland Pacific/Chatham","OM|Asia/Dubai Asia/Muscat","PA|America/Panama","PE|America/Lima","PF|Pacific/Tahiti Pacific/Marquesas Pacific/Gambier","PG|Pacific/Port_Moresby Pacific/Bougainville","PH|Asia/Manila","PK|Asia/Karachi","PL|Europe/Warsaw","PM|America/Miquelon","PN|Pacific/Pitcairn","PR|America/Puerto_Rico","PS|Asia/Gaza Asia/Hebron","PT|Europe/Lisbon Atlantic/Madeira Atlantic/Azores","PW|Pacific/Palau","PY|America/Asuncion","QA|Asia/Qatar","RE|Indian/Reunion","RO|Europe/Bucharest","RS|Europe/Belgrade","RU|Europe/Kaliningrad Europe/Moscow Europe/Simferopol Europe/Kirov Europe/Astrakhan Europe/Volgograd Europe/Saratov Europe/Ulyanovsk Europe/Samara Asia/Yekaterinburg Asia/Omsk Asia/Novosibirsk Asia/Barnaul Asia/Tomsk Asia/Novokuznetsk Asia/Krasnoyarsk Asia/Irkutsk Asia/Chita Asia/Yakutsk Asia/Khandyga Asia/Vladivostok Asia/Ust-Nera Asia/Magadan Asia/Sakhalin Asia/Srednekolymsk Asia/Kamchatka Asia/Anadyr","RW|Africa/Maputo Africa/Kigali","SA|Asia/Riyadh","SB|Pacific/Guadalcanal","SC|Indian/Mahe","SD|Africa/Khartoum","SE|Europe/Stockholm","SG|Asia/Singapore","SH|Africa/Abidjan Atlantic/St_Helena","SI|Europe/Belgrade Europe/Ljubljana","SJ|Europe/Oslo Arctic/Longyearbyen","SK|Europe/Prague Europe/Bratislava","SL|Africa/Abidjan Africa/Freetown","SM|Europe/Rome Europe/San_Marino","SN|Africa/Abidjan Africa/Dakar","SO|Africa/Nairobi Africa/Mogadishu","SR|America/Paramaribo","SS|Africa/Juba","ST|Africa/Sao_Tome","SV|America/El_Salvador","SX|America/Curacao America/Lower_Princes","SY|Asia/Damascus","SZ|Africa/Johannesburg Africa/Mbabane","TC|America/Grand_Turk","TD|Africa/Ndjamena","TF|Indian/Reunion Indian/Kerguelen","TG|Africa/Abidjan Africa/Lome","TH|Asia/Bangkok","TJ|Asia/Dushanbe","TK|Pacific/Fakaofo","TL|Asia/Dili","TM|Asia/Ashgabat","TN|Africa/Tunis","TO|Pacific/Tongatapu","TR|Europe/Istanbul","TT|America/Port_of_Spain","TV|Pacific/Funafuti","TW|Asia/Taipei","TZ|Africa/Nairobi Africa/Dar_es_Salaam","UA|Europe/Simferopol Europe/Kiev Europe/Uzhgorod Europe/Zaporozhye","UG|Africa/Nairobi Africa/Kampala","UM|Pacific/Pago_Pago Pacific/Wake Pacific/Honolulu Pacific/Midway","US|America/New_York America/Detroit America/Kentucky/Louisville America/Kentucky/Monticello America/Indiana/Indianapolis America/Indiana/Vincennes America/Indiana/Winamac America/Indiana/Marengo America/Indiana/Petersburg America/Indiana/Vevay America/Chicago America/Indiana/Tell_City America/Indiana/Knox America/Menominee America/North_Dakota/Center America/North_Dakota/New_Salem America/North_Dakota/Beulah America/Denver America/Boise America/Phoenix America/Los_Angeles America/Anchorage America/Juneau America/Sitka America/Metlakatla America/Yakutat America/Nome America/Adak Pacific/Honolulu","UY|America/Montevideo","UZ|Asia/Samarkand Asia/Tashkent","VA|Europe/Rome Europe/Vatican","VC|America/Port_of_Spain America/St_Vincent","VE|America/Caracas","VG|America/Port_of_Spain America/Tortola","VI|America/Port_of_Spain America/St_Thomas","VN|Asia/Bangkok Asia/Ho_Chi_Minh","VU|Pacific/Efate","WF|Pacific/Wallis","WS|Pacific/Apia","YE|Asia/Riyadh Asia/Aden","YT|Africa/Nairobi Indian/Mayotte","ZA|Africa/Johannesburg","ZM|Africa/Maputo Africa/Lusaka","ZW|Africa/Maputo Africa/Harare"]}),b}); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/js/moment.js b/NMP 3.0 Moodle Pluggin/fliplearning/js/moment.js new file mode 100644 index 0000000000000000000000000000000000000000..57cd2d4f3d3d8b64a34577593a9be3be50503e1b --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/js/moment.js @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.moment=t()}(this,function(){"use strict";var e,i;function f(){return e.apply(null,arguments)}function o(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function u(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function m(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function l(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;for(var t in e)if(m(e,t))return;return 1}function r(e){return void 0===e}function h(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function a(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function d(e,t){for(var n=[],s=0;s<e.length;++s)n.push(t(e[s],s));return n}function c(e,t){for(var n in t)m(t,n)&&(e[n]=t[n]);return m(t,"toString")&&(e.toString=t.toString),m(t,"valueOf")&&(e.valueOf=t.valueOf),e}function _(e,t,n,s){return xt(e,t,n,s,!0).utc()}function y(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidEra:null,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],era:null,meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function g(e){if(null==e._isValid){var t=y(e),n=i.call(t.parsedDateParts,function(e){return null!=e}),s=!isNaN(e._d.getTime())&&t.overflow<0&&!t.empty&&!t.invalidEra&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&n);if(e._strict&&(s=s&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return s;e._isValid=s}return e._isValid}function w(e){var t=_(NaN);return null!=e?c(y(t),e):y(t).userInvalidated=!0,t}i=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,s=0;s<n;s++)if(s in t&&e.call(this,t[s],s,t))return!0;return!1};var p=f.momentProperties=[],t=!1;function v(e,t){var n,s,i;if(r(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),r(t._i)||(e._i=t._i),r(t._f)||(e._f=t._f),r(t._l)||(e._l=t._l),r(t._strict)||(e._strict=t._strict),r(t._tzm)||(e._tzm=t._tzm),r(t._isUTC)||(e._isUTC=t._isUTC),r(t._offset)||(e._offset=t._offset),r(t._pf)||(e._pf=y(t)),r(t._locale)||(e._locale=t._locale),0<p.length)for(n=0;n<p.length;n++)r(i=t[s=p[n]])||(e[s]=i);return e}function k(e){v(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===t&&(t=!0,f.updateOffset(this),t=!1)}function M(e){return e instanceof k||null!=e&&null!=e._isAMomentObject}function D(e){!1===f.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function n(i,r){var a=!0;return c(function(){if(null!=f.deprecationHandler&&f.deprecationHandler(null,i),a){for(var e,t,n=[],s=0;s<arguments.length;s++){if(e="","object"==typeof arguments[s]){for(t in e+="\n["+s+"] ",arguments[0])m(arguments[0],t)&&(e+=t+": "+arguments[0][t]+", ");e=e.slice(0,-2)}else e=arguments[s];n.push(e)}D(i+"\nArguments: "+Array.prototype.slice.call(n).join("")+"\n"+(new Error).stack),a=!1}return r.apply(this,arguments)},r)}var s,S={};function Y(e,t){null!=f.deprecationHandler&&f.deprecationHandler(e,t),S[e]||(D(t),S[e]=!0)}function O(e){return"undefined"!=typeof Function&&e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function b(e,t){var n,s=c({},e);for(n in t)m(t,n)&&(u(e[n])&&u(t[n])?(s[n]={},c(s[n],e[n]),c(s[n],t[n])):null!=t[n]?s[n]=t[n]:delete s[n]);for(n in e)m(e,n)&&!m(t,n)&&u(e[n])&&(s[n]=c({},s[n]));return s}function x(e){null!=e&&this.set(e)}f.suppressDeprecationWarnings=!1,f.deprecationHandler=null,s=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)m(e,t)&&n.push(t);return n};function T(e,t,n){var s=""+Math.abs(e),i=t-s.length;return(0<=e?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+s}var N=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,P=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,R={},W={};function C(e,t,n,s){var i="string"==typeof s?function(){return this[s]()}:s;e&&(W[e]=i),t&&(W[t[0]]=function(){return T(i.apply(this,arguments),t[1],t[2])}),n&&(W[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function U(e,t){return e.isValid()?(t=H(t,e.localeData()),R[t]=R[t]||function(s){for(var e,i=s.match(N),t=0,r=i.length;t<r;t++)W[i[t]]?i[t]=W[i[t]]:i[t]=(e=i[t]).match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"");return function(e){for(var t="",n=0;n<r;n++)t+=O(i[n])?i[n].call(e,s):i[n];return t}}(t),R[t](e)):e.localeData().invalidDate()}function H(e,t){var n=5;function s(e){return t.longDateFormat(e)||e}for(P.lastIndex=0;0<=n&&P.test(e);)e=e.replace(P,s),P.lastIndex=0,--n;return e}var F={};function L(e,t){var n=e.toLowerCase();F[n]=F[n+"s"]=F[t]=e}function V(e){return"string"==typeof e?F[e]||F[e.toLowerCase()]:void 0}function G(e){var t,n,s={};for(n in e)m(e,n)&&(t=V(n))&&(s[t]=e[n]);return s}var E={};function A(e,t){E[e]=t}function j(e){return e%4==0&&e%100!=0||e%400==0}function I(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function Z(e){var t=+e,n=0;return 0!=t&&isFinite(t)&&(n=I(t)),n}function z(t,n){return function(e){return null!=e?(q(this,t,e),f.updateOffset(this,n),this):$(this,t)}}function $(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function q(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&j(e.year())&&1===e.month()&&29===e.date()?(n=Z(n),e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),xe(n,e.month()))):e._d["set"+(e._isUTC?"UTC":"")+t](n))}var B,J=/\d/,Q=/\d\d/,X=/\d{3}/,K=/\d{4}/,ee=/[+-]?\d{6}/,te=/\d\d?/,ne=/\d\d\d\d?/,se=/\d\d\d\d\d\d?/,ie=/\d{1,3}/,re=/\d{1,4}/,ae=/[+-]?\d{1,6}/,oe=/\d+/,ue=/[+-]?\d+/,le=/Z|[+-]\d\d:?\d\d/gi,he=/Z|[+-]\d\d(?::?\d\d)?/gi,de=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i;function ce(e,n,s){B[e]=O(n)?n:function(e,t){return e&&s?s:n}}function fe(e,t){return m(B,e)?B[e](t._strict,t._locale):new RegExp(me(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,s,i){return t||n||s||i})))}function me(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}B={};var _e={};function ye(e,n){var t,s=n;for("string"==typeof e&&(e=[e]),h(n)&&(s=function(e,t){t[n]=Z(e)}),t=0;t<e.length;t++)_e[e[t]]=s}function ge(e,i){ye(e,function(e,t,n,s){n._w=n._w||{},i(e,n._w,n,s)})}var we,pe=0,ve=1,ke=2,Me=3,De=4,Se=5,Ye=6,Oe=7,be=8;function xe(e,t){if(isNaN(e)||isNaN(t))return NaN;var n,s=(t%(n=12)+n)%n;return e+=(t-s)/12,1==s?j(e)?29:28:31-s%7%2}we=Array.prototype.indexOf?Array.prototype.indexOf:function(e){for(var t=0;t<this.length;++t)if(this[t]===e)return t;return-1},C("M",["MM",2],"Mo",function(){return this.month()+1}),C("MMM",0,0,function(e){return this.localeData().monthsShort(this,e)}),C("MMMM",0,0,function(e){return this.localeData().months(this,e)}),L("month","M"),A("month",8),ce("M",te),ce("MM",te,Q),ce("MMM",function(e,t){return t.monthsShortRegex(e)}),ce("MMMM",function(e,t){return t.monthsRegex(e)}),ye(["M","MM"],function(e,t){t[ve]=Z(e)-1}),ye(["MMM","MMMM"],function(e,t,n,s){var i=n._locale.monthsParse(e,s,n._strict);null!=i?t[ve]=i:y(n).invalidMonth=e});var Te="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Ne="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Pe=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,Re=de,We=de;function Ce(e,t){var n;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=Z(t);else if(!h(t=e.localeData().monthsParse(t)))return e;return n=Math.min(e.date(),xe(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function Ue(e){return null!=e?(Ce(this,e),f.updateOffset(this,!0),this):$(this,"Month")}function He(){function e(e,t){return t.length-e.length}for(var t,n=[],s=[],i=[],r=0;r<12;r++)t=_([2e3,r]),n.push(this.monthsShort(t,"")),s.push(this.months(t,"")),i.push(this.months(t,"")),i.push(this.monthsShort(t,""));for(n.sort(e),s.sort(e),i.sort(e),r=0;r<12;r++)n[r]=me(n[r]),s[r]=me(s[r]);for(r=0;r<24;r++)i[r]=me(i[r]);this._monthsRegex=new RegExp("^("+i.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+n.join("|")+")","i")}function Fe(e){return j(e)?366:365}C("Y",0,0,function(){var e=this.year();return e<=9999?T(e,4):"+"+e}),C(0,["YY",2],0,function(){return this.year()%100}),C(0,["YYYY",4],0,"year"),C(0,["YYYYY",5],0,"year"),C(0,["YYYYYY",6,!0],0,"year"),L("year","y"),A("year",1),ce("Y",ue),ce("YY",te,Q),ce("YYYY",re,K),ce("YYYYY",ae,ee),ce("YYYYYY",ae,ee),ye(["YYYYY","YYYYYY"],pe),ye("YYYY",function(e,t){t[pe]=2===e.length?f.parseTwoDigitYear(e):Z(e)}),ye("YY",function(e,t){t[pe]=f.parseTwoDigitYear(e)}),ye("Y",function(e,t){t[pe]=parseInt(e,10)}),f.parseTwoDigitYear=function(e){return Z(e)+(68<Z(e)?1900:2e3)};var Le=z("FullYear",!0);function Ve(e){var t,n;return e<100&&0<=e?((n=Array.prototype.slice.call(arguments))[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function Ge(e,t,n){var s=7+t-n;return s-(7+Ve(e,0,s).getUTCDay()-t)%7-1}function Ee(e,t,n,s,i){var r,a=1+7*(t-1)+(7+n-s)%7+Ge(e,s,i),o=a<=0?Fe(r=e-1)+a:a>Fe(e)?(r=e+1,a-Fe(e)):(r=e,a);return{year:r,dayOfYear:o}}function Ae(e,t,n){var s,i,r=Ge(e.year(),t,n),a=Math.floor((e.dayOfYear()-r-1)/7)+1;return a<1?s=a+je(i=e.year()-1,t,n):a>je(e.year(),t,n)?(s=a-je(e.year(),t,n),i=e.year()+1):(i=e.year(),s=a),{week:s,year:i}}function je(e,t,n){var s=Ge(e,t,n),i=Ge(e+1,t,n);return(Fe(e)-s+i)/7}C("w",["ww",2],"wo","week"),C("W",["WW",2],"Wo","isoWeek"),L("week","w"),L("isoWeek","W"),A("week",5),A("isoWeek",5),ce("w",te),ce("ww",te,Q),ce("W",te),ce("WW",te,Q),ge(["w","ww","W","WW"],function(e,t,n,s){t[s.substr(0,1)]=Z(e)});function Ie(e,t){return e.slice(t,7).concat(e.slice(0,t))}C("d",0,"do","day"),C("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),C("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),C("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),C("e",0,0,"weekday"),C("E",0,0,"isoWeekday"),L("day","d"),L("weekday","e"),L("isoWeekday","E"),A("day",11),A("weekday",11),A("isoWeekday",11),ce("d",te),ce("e",te),ce("E",te),ce("dd",function(e,t){return t.weekdaysMinRegex(e)}),ce("ddd",function(e,t){return t.weekdaysShortRegex(e)}),ce("dddd",function(e,t){return t.weekdaysRegex(e)}),ge(["dd","ddd","dddd"],function(e,t,n,s){var i=n._locale.weekdaysParse(e,s,n._strict);null!=i?t.d=i:y(n).invalidWeekday=e}),ge(["d","e","E"],function(e,t,n,s){t[s]=Z(e)});var Ze="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),ze="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),$e="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),qe=de,Be=de,Je=de;function Qe(){function e(e,t){return t.length-e.length}for(var t,n,s,i,r=[],a=[],o=[],u=[],l=0;l<7;l++)t=_([2e3,1]).day(l),n=me(this.weekdaysMin(t,"")),s=me(this.weekdaysShort(t,"")),i=me(this.weekdays(t,"")),r.push(n),a.push(s),o.push(i),u.push(n),u.push(s),u.push(i);r.sort(e),a.sort(e),o.sort(e),u.sort(e),this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Xe(){return this.hours()%12||12}function Ke(e,t){C(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function et(e,t){return t._meridiemParse}C("H",["HH",2],0,"hour"),C("h",["hh",2],0,Xe),C("k",["kk",2],0,function(){return this.hours()||24}),C("hmm",0,0,function(){return""+Xe.apply(this)+T(this.minutes(),2)}),C("hmmss",0,0,function(){return""+Xe.apply(this)+T(this.minutes(),2)+T(this.seconds(),2)}),C("Hmm",0,0,function(){return""+this.hours()+T(this.minutes(),2)}),C("Hmmss",0,0,function(){return""+this.hours()+T(this.minutes(),2)+T(this.seconds(),2)}),Ke("a",!0),Ke("A",!1),L("hour","h"),A("hour",13),ce("a",et),ce("A",et),ce("H",te),ce("h",te),ce("k",te),ce("HH",te,Q),ce("hh",te,Q),ce("kk",te,Q),ce("hmm",ne),ce("hmmss",se),ce("Hmm",ne),ce("Hmmss",se),ye(["H","HH"],Me),ye(["k","kk"],function(e,t,n){var s=Z(e);t[Me]=24===s?0:s}),ye(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),ye(["h","hh"],function(e,t,n){t[Me]=Z(e),y(n).bigHour=!0}),ye("hmm",function(e,t,n){var s=e.length-2;t[Me]=Z(e.substr(0,s)),t[De]=Z(e.substr(s)),y(n).bigHour=!0}),ye("hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[Me]=Z(e.substr(0,s)),t[De]=Z(e.substr(s,2)),t[Se]=Z(e.substr(i)),y(n).bigHour=!0}),ye("Hmm",function(e,t,n){var s=e.length-2;t[Me]=Z(e.substr(0,s)),t[De]=Z(e.substr(s))}),ye("Hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[Me]=Z(e.substr(0,s)),t[De]=Z(e.substr(s,2)),t[Se]=Z(e.substr(i))});var tt=z("Hours",!0);var nt,st={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Te,monthsShort:Ne,week:{dow:0,doy:6},weekdays:Ze,weekdaysMin:$e,weekdaysShort:ze,meridiemParse:/[ap]\.?m?\.?/i},it={},rt={};function at(e){return e?e.toLowerCase().replace("_","-"):e}function ot(e){for(var t,n,s,i,r=0;r<e.length;){for(t=(i=at(e[r]).split("-")).length,n=(n=at(e[r+1]))?n.split("-"):null;0<t;){if(s=ut(i.slice(0,t).join("-")))return s;if(n&&n.length>=t&&function(e,t){for(var n=Math.min(e.length,t.length),s=0;s<n;s+=1)if(e[s]!==t[s])return s;return n}(i,n)>=t-1)break;t--}r++}return nt}function ut(t){var e;if(void 0===it[t]&&"undefined"!=typeof module&&module&&module.exports)try{e=nt._abbr,require("./locale/"+t),lt(e)}catch(e){it[t]=null}return it[t]}function lt(e,t){var n;return e&&((n=r(t)?dt(e):ht(e,t))?nt=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),nt._abbr}function ht(e,t){if(null===t)return delete it[e],null;var n,s=st;if(t.abbr=e,null!=it[e])Y("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=it[e]._config;else if(null!=t.parentLocale)if(null!=it[t.parentLocale])s=it[t.parentLocale]._config;else{if(null==(n=ut(t.parentLocale)))return rt[t.parentLocale]||(rt[t.parentLocale]=[]),rt[t.parentLocale].push({name:e,config:t}),null;s=n._config}return it[e]=new x(b(s,t)),rt[e]&&rt[e].forEach(function(e){ht(e.name,e.config)}),lt(e),it[e]}function dt(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return nt;if(!o(e)){if(t=ut(e))return t;e=[e]}return ot(e)}function ct(e){var t,n=e._a;return n&&-2===y(e).overflow&&(t=n[ve]<0||11<n[ve]?ve:n[ke]<1||n[ke]>xe(n[pe],n[ve])?ke:n[Me]<0||24<n[Me]||24===n[Me]&&(0!==n[De]||0!==n[Se]||0!==n[Ye])?Me:n[De]<0||59<n[De]?De:n[Se]<0||59<n[Se]?Se:n[Ye]<0||999<n[Ye]?Ye:-1,y(e)._overflowDayOfYear&&(t<pe||ke<t)&&(t=ke),y(e)._overflowWeeks&&-1===t&&(t=Oe),y(e)._overflowWeekday&&-1===t&&(t=be),y(e).overflow=t),e}var ft=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,mt=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,_t=/Z|[+-]\d\d(?::?\d\d)?/,yt=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],gt=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],wt=/^\/?Date\((-?\d+)/i,pt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,vt={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function kt(e){var t,n,s,i,r,a,o=e._i,u=ft.exec(o)||mt.exec(o);if(u){for(y(e).iso=!0,t=0,n=yt.length;t<n;t++)if(yt[t][1].exec(u[1])){i=yt[t][0],s=!1!==yt[t][2];break}if(null==i)return void(e._isValid=!1);if(u[3]){for(t=0,n=gt.length;t<n;t++)if(gt[t][1].exec(u[3])){r=(u[2]||" ")+gt[t][0];break}if(null==r)return void(e._isValid=!1)}if(!s&&null!=r)return void(e._isValid=!1);if(u[4]){if(!_t.exec(u[4]))return void(e._isValid=!1);a="Z"}e._f=i+(r||"")+(a||""),Ot(e)}else e._isValid=!1}function Mt(e,t,n,s,i,r){var a=[function(e){var t=parseInt(e,10);{if(t<=49)return 2e3+t;if(t<=999)return 1900+t}return t}(e),Ne.indexOf(t),parseInt(n,10),parseInt(s,10),parseInt(i,10)];return r&&a.push(parseInt(r,10)),a}function Dt(e){var t,n,s,i,r=pt.exec(e._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(r){if(t=Mt(r[4],r[3],r[2],r[5],r[6],r[7]),n=r[1],s=t,i=e,n&&ze.indexOf(n)!==new Date(s[0],s[1],s[2]).getDay()&&(y(i).weekdayMismatch=!0,!void(i._isValid=!1)))return;e._a=t,e._tzm=function(e,t,n){if(e)return vt[e];if(t)return 0;var s=parseInt(n,10),i=s%100;return 60*((s-i)/100)+i}(r[8],r[9],r[10]),e._d=Ve.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),y(e).rfc2822=!0}else e._isValid=!1}function St(e,t,n){return null!=e?e:null!=t?t:n}function Yt(e){var t,n,s,i,r,a,o,u=[];if(!e._d){for(a=e,o=new Date(f.now()),s=a._useUTC?[o.getUTCFullYear(),o.getUTCMonth(),o.getUTCDate()]:[o.getFullYear(),o.getMonth(),o.getDate()],e._w&&null==e._a[ke]&&null==e._a[ve]&&function(e){var t,n,s,i,r,a,o,u,l;null!=(t=e._w).GG||null!=t.W||null!=t.E?(r=1,a=4,n=St(t.GG,e._a[pe],Ae(Tt(),1,4).year),s=St(t.W,1),((i=St(t.E,1))<1||7<i)&&(u=!0)):(r=e._locale._week.dow,a=e._locale._week.doy,l=Ae(Tt(),r,a),n=St(t.gg,e._a[pe],l.year),s=St(t.w,l.week),null!=t.d?((i=t.d)<0||6<i)&&(u=!0):null!=t.e?(i=t.e+r,(t.e<0||6<t.e)&&(u=!0)):i=r);s<1||s>je(n,r,a)?y(e)._overflowWeeks=!0:null!=u?y(e)._overflowWeekday=!0:(o=Ee(n,s,i,r,a),e._a[pe]=o.year,e._dayOfYear=o.dayOfYear)}(e),null!=e._dayOfYear&&(r=St(e._a[pe],s[pe]),(e._dayOfYear>Fe(r)||0===e._dayOfYear)&&(y(e)._overflowDayOfYear=!0),n=Ve(r,0,e._dayOfYear),e._a[ve]=n.getUTCMonth(),e._a[ke]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=u[t]=s[t];for(;t<7;t++)e._a[t]=u[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[Me]&&0===e._a[De]&&0===e._a[Se]&&0===e._a[Ye]&&(e._nextDay=!0,e._a[Me]=0),e._d=(e._useUTC?Ve:function(e,t,n,s,i,r,a){var o;return e<100&&0<=e?(o=new Date(e+400,t,n,s,i,r,a),isFinite(o.getFullYear())&&o.setFullYear(e)):o=new Date(e,t,n,s,i,r,a),o}).apply(null,u),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[Me]=24),e._w&&void 0!==e._w.d&&e._w.d!==i&&(y(e).weekdayMismatch=!0)}}function Ot(e){if(e._f!==f.ISO_8601)if(e._f!==f.RFC_2822){e._a=[],y(e).empty=!0;for(var t,n,s,i,r,a,o,u=""+e._i,l=u.length,h=0,d=H(e._f,e._locale).match(N)||[],c=0;c<d.length;c++)n=d[c],(t=(u.match(fe(n,e))||[])[0])&&(0<(s=u.substr(0,u.indexOf(t))).length&&y(e).unusedInput.push(s),u=u.slice(u.indexOf(t)+t.length),h+=t.length),W[n]?(t?y(e).empty=!1:y(e).unusedTokens.push(n),r=n,o=e,null!=(a=t)&&m(_e,r)&&_e[r](a,o._a,o,r)):e._strict&&!t&&y(e).unusedTokens.push(n);y(e).charsLeftOver=l-h,0<u.length&&y(e).unusedInput.push(u),e._a[Me]<=12&&!0===y(e).bigHour&&0<e._a[Me]&&(y(e).bigHour=void 0),y(e).parsedDateParts=e._a.slice(0),y(e).meridiem=e._meridiem,e._a[Me]=function(e,t,n){var s;if(null==n)return t;return null!=e.meridiemHour?e.meridiemHour(t,n):(null!=e.isPM&&((s=e.isPM(n))&&t<12&&(t+=12),s||12!==t||(t=0)),t)}(e._locale,e._a[Me],e._meridiem),null!==(i=y(e).era)&&(e._a[pe]=e._locale.erasConvertYear(i,e._a[pe])),Yt(e),ct(e)}else Dt(e);else kt(e)}function bt(e){var t,n,s=e._i,i=e._f;return e._locale=e._locale||dt(e._l),null===s||void 0===i&&""===s?w({nullInput:!0}):("string"==typeof s&&(e._i=s=e._locale.preparse(s)),M(s)?new k(ct(s)):(a(s)?e._d=s:o(i)?function(e){var t,n,s,i,r,a,o=!1;if(0===e._f.length)return y(e).invalidFormat=!0,e._d=new Date(NaN);for(i=0;i<e._f.length;i++)r=0,a=!1,t=v({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[i],Ot(t),g(t)&&(a=!0),r+=y(t).charsLeftOver,r+=10*y(t).unusedTokens.length,y(t).score=r,o?r<s&&(s=r,n=t):(null==s||r<s||a)&&(s=r,n=t,a&&(o=!0));c(e,n||t)}(e):i?Ot(e):r(n=(t=e)._i)?t._d=new Date(f.now()):a(n)?t._d=new Date(n.valueOf()):"string"==typeof n?function(e){var t=wt.exec(e._i);null===t?(kt(e),!1===e._isValid&&(delete e._isValid,Dt(e),!1===e._isValid&&(delete e._isValid,e._strict?e._isValid=!1:f.createFromInputFallback(e)))):e._d=new Date(+t[1])}(t):o(n)?(t._a=d(n.slice(0),function(e){return parseInt(e,10)}),Yt(t)):u(n)?function(e){var t,n;e._d||(n=void 0===(t=G(e._i)).day?t.date:t.day,e._a=d([t.year,t.month,n,t.hour,t.minute,t.second,t.millisecond],function(e){return e&&parseInt(e,10)}),Yt(e))}(t):h(n)?t._d=new Date(n):f.createFromInputFallback(t),g(e)||(e._d=null),e))}function xt(e,t,n,s,i){var r,a={};return!0!==t&&!1!==t||(s=t,t=void 0),!0!==n&&!1!==n||(s=n,n=void 0),(u(e)&&l(e)||o(e)&&0===e.length)&&(e=void 0),a._isAMomentObject=!0,a._useUTC=a._isUTC=i,a._l=n,a._i=e,a._f=t,a._strict=s,(r=new k(ct(bt(a))))._nextDay&&(r.add(1,"d"),r._nextDay=void 0),r}function Tt(e,t,n,s){return xt(e,t,n,s,!1)}f.createFromInputFallback=n("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),f.ISO_8601=function(){},f.RFC_2822=function(){};var Nt=n("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=Tt.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:w()}),Pt=n("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=Tt.apply(null,arguments);return this.isValid()&&e.isValid()?this<e?this:e:w()});function Rt(e,t){var n,s;if(1===t.length&&o(t[0])&&(t=t[0]),!t.length)return Tt();for(n=t[0],s=1;s<t.length;++s)t[s].isValid()&&!t[s][e](n)||(n=t[s]);return n}var Wt=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Ct(e){var t=G(e),n=t.year||0,s=t.quarter||0,i=t.month||0,r=t.week||t.isoWeek||0,a=t.day||0,o=t.hour||0,u=t.minute||0,l=t.second||0,h=t.millisecond||0;this._isValid=function(e){var t,n,s=!1;for(t in e)if(m(e,t)&&(-1===we.call(Wt,t)||null!=e[t]&&isNaN(e[t])))return!1;for(n=0;n<Wt.length;++n)if(e[Wt[n]]){if(s)return!1;parseFloat(e[Wt[n]])!==Z(e[Wt[n]])&&(s=!0)}return!0}(t),this._milliseconds=+h+1e3*l+6e4*u+1e3*o*60*60,this._days=+a+7*r,this._months=+i+3*s+12*n,this._data={},this._locale=dt(),this._bubble()}function Ut(e){return e instanceof Ct}function Ht(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function Ft(e,n){C(e,0,0,function(){var e=this.utcOffset(),t="+";return e<0&&(e=-e,t="-"),t+T(~~(e/60),2)+n+T(~~e%60,2)})}Ft("Z",":"),Ft("ZZ",""),ce("Z",he),ce("ZZ",he),ye(["Z","ZZ"],function(e,t,n){n._useUTC=!0,n._tzm=Vt(he,e)});var Lt=/([\+\-]|\d\d)/gi;function Vt(e,t){var n,s,i=(t||"").match(e);return null===i?null:0===(s=60*(n=((i[i.length-1]||[])+"").match(Lt)||["-",0,0])[1]+Z(n[2]))?0:"+"===n[0]?s:-s}function Gt(e,t){var n,s;return t._isUTC?(n=t.clone(),s=(M(e)||a(e)?e.valueOf():Tt(e).valueOf())-n.valueOf(),n._d.setTime(n._d.valueOf()+s),f.updateOffset(n,!1),n):Tt(e).local()}function Et(e){return-Math.round(e._d.getTimezoneOffset())}function At(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}f.updateOffset=function(){};var jt=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,It=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Zt(e,t){var n,s,i,r=e,a=null;return Ut(e)?r={ms:e._milliseconds,d:e._days,M:e._months}:h(e)||!isNaN(+e)?(r={},t?r[t]=+e:r.milliseconds=+e):(a=jt.exec(e))?(n="-"===a[1]?-1:1,r={y:0,d:Z(a[ke])*n,h:Z(a[Me])*n,m:Z(a[De])*n,s:Z(a[Se])*n,ms:Z(Ht(1e3*a[Ye]))*n}):(a=It.exec(e))?(n="-"===a[1]?-1:1,r={y:zt(a[2],n),M:zt(a[3],n),w:zt(a[4],n),d:zt(a[5],n),h:zt(a[6],n),m:zt(a[7],n),s:zt(a[8],n)}):null==r?r={}:"object"==typeof r&&("from"in r||"to"in r)&&(i=function(e,t){var n;if(!e.isValid()||!t.isValid())return{milliseconds:0,months:0};t=Gt(t,e),e.isBefore(t)?n=$t(e,t):((n=$t(t,e)).milliseconds=-n.milliseconds,n.months=-n.months);return n}(Tt(r.from),Tt(r.to)),(r={}).ms=i.milliseconds,r.M=i.months),s=new Ct(r),Ut(e)&&m(e,"_locale")&&(s._locale=e._locale),Ut(e)&&m(e,"_isValid")&&(s._isValid=e._isValid),s}function zt(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function $t(e,t){var n={};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=t-e.clone().add(n.months,"M"),n}function qt(s,i){return function(e,t){var n;return null===t||isNaN(+t)||(Y(i,"moment()."+i+"(period, number) is deprecated. Please use moment()."+i+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),n=e,e=t,t=n),Bt(this,Zt(e,t),s),this}}function Bt(e,t,n,s){var i=t._milliseconds,r=Ht(t._days),a=Ht(t._months);e.isValid()&&(s=null==s||s,a&&Ce(e,$(e,"Month")+a*n),r&&q(e,"Date",$(e,"Date")+r*n),i&&e._d.setTime(e._d.valueOf()+i*n),s&&f.updateOffset(e,r||a))}Zt.fn=Ct.prototype,Zt.invalid=function(){return Zt(NaN)};var Jt=qt(1,"add"),Qt=qt(-1,"subtract");function Xt(e){return"string"==typeof e||e instanceof String}function Kt(e){return M(e)||a(e)||Xt(e)||h(e)||function(t){var e=o(t),n=!1;e&&(n=0===t.filter(function(e){return!h(e)&&Xt(t)}).length);return e&&n}(e)||function(e){var t,n,s=u(e)&&!l(e),i=!1,r=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"];for(t=0;t<r.length;t+=1)n=r[t],i=i||m(e,n);return s&&i}(e)||null==e}function en(e,t){if(e.date()<t.date())return-en(t,e);var n=12*(t.year()-e.year())+(t.month()-e.month()),s=e.clone().add(n,"months"),i=t-s<0?(t-s)/(s-e.clone().add(n-1,"months")):(t-s)/(e.clone().add(1+n,"months")-s);return-(n+i)||0}function tn(e){var t;return void 0===e?this._locale._abbr:(null!=(t=dt(e))&&(this._locale=t),this)}f.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",f.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var nn=n("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});function sn(){return this._locale}var rn=126227808e5;function an(e,t){return(e%t+t)%t}function on(e,t,n){return e<100&&0<=e?new Date(e+400,t,n)-rn:new Date(e,t,n).valueOf()}function un(e,t,n){return e<100&&0<=e?Date.UTC(e+400,t,n)-rn:Date.UTC(e,t,n)}function ln(e,t){return t.erasAbbrRegex(e)}function hn(){for(var e=[],t=[],n=[],s=[],i=this.eras(),r=0,a=i.length;r<a;++r)t.push(me(i[r].name)),e.push(me(i[r].abbr)),n.push(me(i[r].narrow)),s.push(me(i[r].name)),s.push(me(i[r].abbr)),s.push(me(i[r].narrow));this._erasRegex=new RegExp("^("+s.join("|")+")","i"),this._erasNameRegex=new RegExp("^("+t.join("|")+")","i"),this._erasAbbrRegex=new RegExp("^("+e.join("|")+")","i"),this._erasNarrowRegex=new RegExp("^("+n.join("|")+")","i")}function dn(e,t){C(0,[e,e.length],0,t)}function cn(e,t,n,s,i){var r;return null==e?Ae(this,s,i).year:((r=je(e,s,i))<t&&(t=r),function(e,t,n,s,i){var r=Ee(e,t,n,s,i),a=Ve(r.year,0,r.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}.call(this,e,t,n,s,i))}C("N",0,0,"eraAbbr"),C("NN",0,0,"eraAbbr"),C("NNN",0,0,"eraAbbr"),C("NNNN",0,0,"eraName"),C("NNNNN",0,0,"eraNarrow"),C("y",["y",1],"yo","eraYear"),C("y",["yy",2],0,"eraYear"),C("y",["yyy",3],0,"eraYear"),C("y",["yyyy",4],0,"eraYear"),ce("N",ln),ce("NN",ln),ce("NNN",ln),ce("NNNN",function(e,t){return t.erasNameRegex(e)}),ce("NNNNN",function(e,t){return t.erasNarrowRegex(e)}),ye(["N","NN","NNN","NNNN","NNNNN"],function(e,t,n,s){var i=n._locale.erasParse(e,s,n._strict);i?y(n).era=i:y(n).invalidEra=e}),ce("y",oe),ce("yy",oe),ce("yyy",oe),ce("yyyy",oe),ce("yo",function(e,t){return t._eraYearOrdinalRegex||oe}),ye(["y","yy","yyy","yyyy"],pe),ye(["yo"],function(e,t,n,s){var i;n._locale._eraYearOrdinalRegex&&(i=e.match(n._locale._eraYearOrdinalRegex)),n._locale.eraYearOrdinalParse?t[pe]=n._locale.eraYearOrdinalParse(e,i):t[pe]=parseInt(e,10)}),C(0,["gg",2],0,function(){return this.weekYear()%100}),C(0,["GG",2],0,function(){return this.isoWeekYear()%100}),dn("gggg","weekYear"),dn("ggggg","weekYear"),dn("GGGG","isoWeekYear"),dn("GGGGG","isoWeekYear"),L("weekYear","gg"),L("isoWeekYear","GG"),A("weekYear",1),A("isoWeekYear",1),ce("G",ue),ce("g",ue),ce("GG",te,Q),ce("gg",te,Q),ce("GGGG",re,K),ce("gggg",re,K),ce("GGGGG",ae,ee),ce("ggggg",ae,ee),ge(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,s){t[s.substr(0,2)]=Z(e)}),ge(["gg","GG"],function(e,t,n,s){t[s]=f.parseTwoDigitYear(e)}),C("Q",0,"Qo","quarter"),L("quarter","Q"),A("quarter",7),ce("Q",J),ye("Q",function(e,t){t[ve]=3*(Z(e)-1)}),C("D",["DD",2],"Do","date"),L("date","D"),A("date",9),ce("D",te),ce("DD",te,Q),ce("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),ye(["D","DD"],ke),ye("Do",function(e,t){t[ke]=Z(e.match(te)[0])});var fn=z("Date",!0);C("DDD",["DDDD",3],"DDDo","dayOfYear"),L("dayOfYear","DDD"),A("dayOfYear",4),ce("DDD",ie),ce("DDDD",X),ye(["DDD","DDDD"],function(e,t,n){n._dayOfYear=Z(e)}),C("m",["mm",2],0,"minute"),L("minute","m"),A("minute",14),ce("m",te),ce("mm",te,Q),ye(["m","mm"],De);var mn=z("Minutes",!1);C("s",["ss",2],0,"second"),L("second","s"),A("second",15),ce("s",te),ce("ss",te,Q),ye(["s","ss"],Se);var _n,yn,gn=z("Seconds",!1);for(C("S",0,0,function(){return~~(this.millisecond()/100)}),C(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),C(0,["SSS",3],0,"millisecond"),C(0,["SSSS",4],0,function(){return 10*this.millisecond()}),C(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),C(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),C(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),C(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),C(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),L("millisecond","ms"),A("millisecond",16),ce("S",ie,J),ce("SS",ie,Q),ce("SSS",ie,X),_n="SSSS";_n.length<=9;_n+="S")ce(_n,oe);function wn(e,t){t[Ye]=Z(1e3*("0."+e))}for(_n="S";_n.length<=9;_n+="S")ye(_n,wn);yn=z("Milliseconds",!1),C("z",0,0,"zoneAbbr"),C("zz",0,0,"zoneName");var pn=k.prototype;function vn(e){return e}pn.add=Jt,pn.calendar=function(e,t){1===arguments.length&&(arguments[0]?Kt(arguments[0])?(e=arguments[0],t=void 0):function(e){for(var t=u(e)&&!l(e),n=!1,s=["sameDay","nextDay","lastDay","nextWeek","lastWeek","sameElse"],i=0;i<s.length;i+=1)n=n||m(e,s[i]);return t&&n}(arguments[0])&&(t=arguments[0],e=void 0):t=e=void 0);var n=e||Tt(),s=Gt(n,this).startOf("day"),i=f.calendarFormat(this,s)||"sameElse",r=t&&(O(t[i])?t[i].call(this,n):t[i]);return this.format(r||this.localeData().calendar(i,this,Tt(n)))},pn.clone=function(){return new k(this)},pn.diff=function(e,t,n){var s,i,r;if(!this.isValid())return NaN;if(!(s=Gt(e,this)).isValid())return NaN;switch(i=6e4*(s.utcOffset()-this.utcOffset()),t=V(t)){case"year":r=en(this,s)/12;break;case"month":r=en(this,s);break;case"quarter":r=en(this,s)/3;break;case"second":r=(this-s)/1e3;break;case"minute":r=(this-s)/6e4;break;case"hour":r=(this-s)/36e5;break;case"day":r=(this-s-i)/864e5;break;case"week":r=(this-s-i)/6048e5;break;default:r=this-s}return n?r:I(r)},pn.endOf=function(e){var t,n;if(void 0===(e=V(e))||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?un:on,e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=36e5-an(t+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":t=this._d.valueOf(),t+=6e4-an(t,6e4)-1;break;case"second":t=this._d.valueOf(),t+=1e3-an(t,1e3)-1;break}return this._d.setTime(t),f.updateOffset(this,!0),this},pn.format=function(e){e=e||(this.isUtc()?f.defaultFormatUtc:f.defaultFormat);var t=U(this,e);return this.localeData().postformat(t)},pn.from=function(e,t){return this.isValid()&&(M(e)&&e.isValid()||Tt(e).isValid())?Zt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},pn.fromNow=function(e){return this.from(Tt(),e)},pn.to=function(e,t){return this.isValid()&&(M(e)&&e.isValid()||Tt(e).isValid())?Zt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},pn.toNow=function(e){return this.to(Tt(),e)},pn.get=function(e){return O(this[e=V(e)])?this[e]():this},pn.invalidAt=function(){return y(this).overflow},pn.isAfter=function(e,t){var n=M(e)?e:Tt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=V(t)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(t).valueOf())},pn.isBefore=function(e,t){var n=M(e)?e:Tt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=V(t)||"millisecond")?this.valueOf()<n.valueOf():this.clone().endOf(t).valueOf()<n.valueOf())},pn.isBetween=function(e,t,n,s){var i=M(e)?e:Tt(e),r=M(t)?t:Tt(t);return!!(this.isValid()&&i.isValid()&&r.isValid())&&(("("===(s=s||"()")[0]?this.isAfter(i,n):!this.isBefore(i,n))&&(")"===s[1]?this.isBefore(r,n):!this.isAfter(r,n)))},pn.isSame=function(e,t){var n,s=M(e)?e:Tt(e);return!(!this.isValid()||!s.isValid())&&("millisecond"===(t=V(t)||"millisecond")?this.valueOf()===s.valueOf():(n=s.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf()))},pn.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},pn.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},pn.isValid=function(){return g(this)},pn.lang=nn,pn.locale=tn,pn.localeData=sn,pn.max=Pt,pn.min=Nt,pn.parsingFlags=function(){return c({},y(this))},pn.set=function(e,t){if("object"==typeof e)for(var n=function(e){var t,n=[];for(t in e)m(e,t)&&n.push({unit:t,priority:E[t]});return n.sort(function(e,t){return e.priority-t.priority}),n}(e=G(e)),s=0;s<n.length;s++)this[n[s].unit](e[n[s].unit]);else if(O(this[e=V(e)]))return this[e](t);return this},pn.startOf=function(e){var t,n;if(void 0===(e=V(e))||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?un:on,e){case"year":t=n(this.year(),0,1);break;case"quarter":t=n(this.year(),this.month()-this.month()%3,1);break;case"month":t=n(this.year(),this.month(),1);break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=n(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=an(t+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case"minute":t=this._d.valueOf(),t-=an(t,6e4);break;case"second":t=this._d.valueOf(),t-=an(t,1e3);break}return this._d.setTime(t),f.updateOffset(this,!0),this},pn.subtract=Qt,pn.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},pn.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},pn.toDate=function(){return new Date(this.valueOf())},pn.toISOString=function(e){if(!this.isValid())return null;var t=!0!==e,n=t?this.clone().utc():this;return n.year()<0||9999<n.year()?U(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):O(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",U(n,"Z")):U(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},pn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e,t,n,s="moment",i="";return this.isLocal()||(s=0===this.utcOffset()?"moment.utc":"moment.parseZone",i="Z"),e="["+s+'("]',t=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n=i+'[")]',this.format(e+t+"-MM-DD[T]HH:mm:ss.SSS"+n)},"undefined"!=typeof Symbol&&null!=Symbol.for&&(pn[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),pn.toJSON=function(){return this.isValid()?this.toISOString():null},pn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},pn.unix=function(){return Math.floor(this.valueOf()/1e3)},pn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},pn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},pn.eraName=function(){for(var e,t=this.localeData().eras(),n=0,s=t.length;n<s;++n){if(e=this.clone().startOf("day").valueOf(),t[n].since<=e&&e<=t[n].until)return t[n].name;if(t[n].until<=e&&e<=t[n].since)return t[n].name}return""},pn.eraNarrow=function(){for(var e,t=this.localeData().eras(),n=0,s=t.length;n<s;++n){if(e=this.clone().startOf("day").valueOf(),t[n].since<=e&&e<=t[n].until)return t[n].narrow;if(t[n].until<=e&&e<=t[n].since)return t[n].narrow}return""},pn.eraAbbr=function(){for(var e,t=this.localeData().eras(),n=0,s=t.length;n<s;++n){if(e=this.clone().startOf("day").valueOf(),t[n].since<=e&&e<=t[n].until)return t[n].abbr;if(t[n].until<=e&&e<=t[n].since)return t[n].abbr}return""},pn.eraYear=function(){for(var e,t,n=this.localeData().eras(),s=0,i=n.length;s<i;++s)if(e=n[s].since<=n[s].until?1:-1,t=this.clone().startOf("day").valueOf(),n[s].since<=t&&t<=n[s].until||n[s].until<=t&&t<=n[s].since)return(this.year()-f(n[s].since).year())*e+n[s].offset;return this.year()},pn.year=Le,pn.isLeapYear=function(){return j(this.year())},pn.weekYear=function(e){return cn.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},pn.isoWeekYear=function(e){return cn.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},pn.quarter=pn.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},pn.month=Ue,pn.daysInMonth=function(){return xe(this.year(),this.month())},pn.week=pn.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},pn.isoWeek=pn.isoWeeks=function(e){var t=Ae(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},pn.weeksInYear=function(){var e=this.localeData()._week;return je(this.year(),e.dow,e.doy)},pn.weeksInWeekYear=function(){var e=this.localeData()._week;return je(this.weekYear(),e.dow,e.doy)},pn.isoWeeksInYear=function(){return je(this.year(),1,4)},pn.isoWeeksInISOWeekYear=function(){return je(this.isoWeekYear(),1,4)},pn.date=fn,pn.day=pn.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t,n,s=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(t=e,n=this.localeData(),e="string"!=typeof t?t:isNaN(t)?"number"==typeof(t=n.weekdaysParse(t))?t:null:parseInt(t,10),this.add(e-s,"d")):s},pn.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},pn.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null==e)return this.day()||7;var t,n,s=(t=e,n=this.localeData(),"string"==typeof t?n.weekdaysParse(t)%7||7:isNaN(t)?null:t);return this.day(this.day()%7?s:s-7)},pn.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},pn.hour=pn.hours=tt,pn.minute=pn.minutes=mn,pn.second=pn.seconds=gn,pn.millisecond=pn.milliseconds=yn,pn.utcOffset=function(e,t,n){var s,i=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null==e)return this._isUTC?i:Et(this);if("string"==typeof e){if(null===(e=Vt(he,e)))return this}else Math.abs(e)<16&&!n&&(e*=60);return!this._isUTC&&t&&(s=Et(this)),this._offset=e,this._isUTC=!0,null!=s&&this.add(s,"m"),i!==e&&(!t||this._changeInProgress?Bt(this,Zt(e-i,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,f.updateOffset(this,!0),this._changeInProgress=null)),this},pn.utc=function(e){return this.utcOffset(0,e)},pn.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Et(this),"m")),this},pn.parseZone=function(){var e;return null!=this._tzm?this.utcOffset(this._tzm,!1,!0):"string"==typeof this._i&&(null!=(e=Vt(le,this._i))?this.utcOffset(e):this.utcOffset(0,!0)),this},pn.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?Tt(e).utcOffset():0,(this.utcOffset()-e)%60==0)},pn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},pn.isLocal=function(){return!!this.isValid()&&!this._isUTC},pn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},pn.isUtc=At,pn.isUTC=At,pn.zoneAbbr=function(){return this._isUTC?"UTC":""},pn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},pn.dates=n("dates accessor is deprecated. Use date instead.",fn),pn.months=n("months accessor is deprecated. Use month instead",Ue),pn.years=n("years accessor is deprecated. Use year instead",Le),pn.zone=n("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}),pn.isDSTShifted=n("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!r(this._isDSTShifted))return this._isDSTShifted;var e,t={};return v(t,this),(t=bt(t))._a?(e=(t._isUTC?_:Tt)(t._a),this._isDSTShifted=this.isValid()&&0<function(e,t,n){for(var s=Math.min(e.length,t.length),i=Math.abs(e.length-t.length),r=0,a=0;a<s;a++)(n&&e[a]!==t[a]||!n&&Z(e[a])!==Z(t[a]))&&r++;return r+i}(t._a,e.toArray())):this._isDSTShifted=!1,this._isDSTShifted});var kn=x.prototype;function Mn(e,t,n,s){var i=dt(),r=_().set(s,t);return i[n](r,e)}function Dn(e,t,n){if(h(e)&&(t=e,e=void 0),e=e||"",null!=t)return Mn(e,t,n,"month");for(var s=[],i=0;i<12;i++)s[i]=Mn(e,i,n,"month");return s}function Sn(e,t,n,s){t=("boolean"==typeof e?h(t)&&(n=t,t=void 0):(t=e,e=!1,h(n=t)&&(n=t,t=void 0)),t||"");var i,r=dt(),a=e?r._week.dow:0,o=[];if(null!=n)return Mn(t,(n+a)%7,s,"day");for(i=0;i<7;i++)o[i]=Mn(t,(i+a)%7,s,"day");return o}kn.calendar=function(e,t,n){var s=this._calendar[e]||this._calendar.sameElse;return O(s)?s.call(t,n):s},kn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.match(N).map(function(e){return"MMMM"===e||"MM"===e||"DD"===e||"dddd"===e?e.slice(1):e}).join(""),this._longDateFormat[e])},kn.invalidDate=function(){return this._invalidDate},kn.ordinal=function(e){return this._ordinal.replace("%d",e)},kn.preparse=vn,kn.postformat=vn,kn.relativeTime=function(e,t,n,s){var i=this._relativeTime[n];return O(i)?i(e,t,n,s):i.replace(/%d/i,e)},kn.pastFuture=function(e,t){var n=this._relativeTime[0<e?"future":"past"];return O(n)?n(t):n.replace(/%s/i,t)},kn.set=function(e){var t,n;for(n in e)m(e,n)&&(O(t=e[n])?this[n]=t:this["_"+n]=t);this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},kn.eras=function(e,t){for(var n,s=this._eras||dt("en")._eras,i=0,r=s.length;i<r;++i){switch(typeof s[i].since){case"string":n=f(s[i].since).startOf("day"),s[i].since=n.valueOf();break}switch(typeof s[i].until){case"undefined":s[i].until=1/0;break;case"string":n=f(s[i].until).startOf("day").valueOf(),s[i].until=n.valueOf();break}}return s},kn.erasParse=function(e,t,n){var s,i,r,a,o,u=this.eras();for(e=e.toUpperCase(),s=0,i=u.length;s<i;++s)if(r=u[s].name.toUpperCase(),a=u[s].abbr.toUpperCase(),o=u[s].narrow.toUpperCase(),n)switch(t){case"N":case"NN":case"NNN":if(a===e)return u[s];break;case"NNNN":if(r===e)return u[s];break;case"NNNNN":if(o===e)return u[s];break}else if(0<=[r,a,o].indexOf(e))return u[s]},kn.erasConvertYear=function(e,t){var n=e.since<=e.until?1:-1;return void 0===t?f(e.since).year():f(e.since).year()+(t-e.offset)*n},kn.erasAbbrRegex=function(e){return m(this,"_erasAbbrRegex")||hn.call(this),e?this._erasAbbrRegex:this._erasRegex},kn.erasNameRegex=function(e){return m(this,"_erasNameRegex")||hn.call(this),e?this._erasNameRegex:this._erasRegex},kn.erasNarrowRegex=function(e){return m(this,"_erasNarrowRegex")||hn.call(this),e?this._erasNarrowRegex:this._erasRegex},kn.months=function(e,t){return e?o(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Pe).test(t)?"format":"standalone"][e.month()]:o(this._months)?this._months:this._months.standalone},kn.monthsShort=function(e,t){return e?o(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Pe.test(t)?"format":"standalone"][e.month()]:o(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},kn.monthsParse=function(e,t,n){var s,i,r;if(this._monthsParseExact)return function(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],s=0;s<12;++s)r=_([2e3,s]),this._shortMonthsParse[s]=this.monthsShort(r,"").toLocaleLowerCase(),this._longMonthsParse[s]=this.months(r,"").toLocaleLowerCase();return n?"MMM"===t?-1!==(i=we.call(this._shortMonthsParse,a))?i:null:-1!==(i=we.call(this._longMonthsParse,a))?i:null:"MMM"===t?-1!==(i=we.call(this._shortMonthsParse,a))||-1!==(i=we.call(this._longMonthsParse,a))?i:null:-1!==(i=we.call(this._longMonthsParse,a))||-1!==(i=we.call(this._shortMonthsParse,a))?i:null}.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;s<12;s++){if(i=_([2e3,s]),n&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp("^"+this.months(i,"").replace(".","")+"$","i"),this._shortMonthsParse[s]=new RegExp("^"+this.monthsShort(i,"").replace(".","")+"$","i")),n||this._monthsParse[s]||(r="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[s]=new RegExp(r.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[s].test(e))return s;if(n&&"MMM"===t&&this._shortMonthsParse[s].test(e))return s;if(!n&&this._monthsParse[s].test(e))return s}},kn.monthsRegex=function(e){return this._monthsParseExact?(m(this,"_monthsRegex")||He.call(this),e?this._monthsStrictRegex:this._monthsRegex):(m(this,"_monthsRegex")||(this._monthsRegex=We),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},kn.monthsShortRegex=function(e){return this._monthsParseExact?(m(this,"_monthsRegex")||He.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(m(this,"_monthsShortRegex")||(this._monthsShortRegex=Re),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},kn.week=function(e){return Ae(e,this._week.dow,this._week.doy).week},kn.firstDayOfYear=function(){return this._week.doy},kn.firstDayOfWeek=function(){return this._week.dow},kn.weekdays=function(e,t){var n=o(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Ie(n,this._week.dow):e?n[e.day()]:n},kn.weekdaysMin=function(e){return!0===e?Ie(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},kn.weekdaysShort=function(e){return!0===e?Ie(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},kn.weekdaysParse=function(e,t,n){var s,i,r;if(this._weekdaysParseExact)return function(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)r=_([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(r,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(i=we.call(this._weekdaysParse,a))?i:null:"ddd"===t?-1!==(i=we.call(this._shortWeekdaysParse,a))?i:null:-1!==(i=we.call(this._minWeekdaysParse,a))?i:null:"dddd"===t?-1!==(i=we.call(this._weekdaysParse,a))||-1!==(i=we.call(this._shortWeekdaysParse,a))||-1!==(i=we.call(this._minWeekdaysParse,a))?i:null:"ddd"===t?-1!==(i=we.call(this._shortWeekdaysParse,a))||-1!==(i=we.call(this._weekdaysParse,a))||-1!==(i=we.call(this._minWeekdaysParse,a))?i:null:-1!==(i=we.call(this._minWeekdaysParse,a))||-1!==(i=we.call(this._weekdaysParse,a))||-1!==(i=we.call(this._shortWeekdaysParse,a))?i:null}.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(i=_([2e3,1]).day(s),n&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp("^"+this.weekdays(i,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[s]=new RegExp("^"+this.weekdaysShort(i,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[s]=new RegExp("^"+this.weekdaysMin(i,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[s]||(r="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[s]=new RegExp(r.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[s].test(e))return s;if(n&&"ddd"===t&&this._shortWeekdaysParse[s].test(e))return s;if(n&&"dd"===t&&this._minWeekdaysParse[s].test(e))return s;if(!n&&this._weekdaysParse[s].test(e))return s}},kn.weekdaysRegex=function(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Qe.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(m(this,"_weekdaysRegex")||(this._weekdaysRegex=qe),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},kn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Qe.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(m(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Be),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},kn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Qe.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(m(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Je),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},kn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},kn.meridiem=function(e,t,n){return 11<e?n?"pm":"PM":n?"am":"AM"},lt("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===Z(e%100/10)?"th":1==t?"st":2==t?"nd":3==t?"rd":"th")}}),f.lang=n("moment.lang is deprecated. Use moment.locale instead.",lt),f.langData=n("moment.langData is deprecated. Use moment.localeData instead.",dt);var Yn=Math.abs;function On(e,t,n,s){var i=Zt(t,n);return e._milliseconds+=s*i._milliseconds,e._days+=s*i._days,e._months+=s*i._months,e._bubble()}function bn(e){return e<0?Math.floor(e):Math.ceil(e)}function xn(e){return 4800*e/146097}function Tn(e){return 146097*e/4800}function Nn(e){return function(){return this.as(e)}}var Pn=Nn("ms"),Rn=Nn("s"),Wn=Nn("m"),Cn=Nn("h"),Un=Nn("d"),Hn=Nn("w"),Fn=Nn("M"),Ln=Nn("Q"),Vn=Nn("y");function Gn(e){return function(){return this.isValid()?this._data[e]:NaN}}var En=Gn("milliseconds"),An=Gn("seconds"),jn=Gn("minutes"),In=Gn("hours"),Zn=Gn("days"),zn=Gn("months"),$n=Gn("years");var qn=Math.round,Bn={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function Jn(e,t,n,s){var i=Zt(e).abs(),r=qn(i.as("s")),a=qn(i.as("m")),o=qn(i.as("h")),u=qn(i.as("d")),l=qn(i.as("M")),h=qn(i.as("w")),d=qn(i.as("y")),c=(r<=n.ss?["s",r]:r<n.s&&["ss",r])||a<=1&&["m"]||a<n.m&&["mm",a]||o<=1&&["h"]||o<n.h&&["hh",o]||u<=1&&["d"]||u<n.d&&["dd",u];return null!=n.w&&(c=c||h<=1&&["w"]||h<n.w&&["ww",h]),(c=c||l<=1&&["M"]||l<n.M&&["MM",l]||d<=1&&["y"]||["yy",d])[2]=t,c[3]=0<+e,c[4]=s,function(e,t,n,s,i){return i.relativeTime(t||1,!!n,e,s)}.apply(null,c)}var Qn=Math.abs;function Xn(e){return(0<e)-(e<0)||+e}function Kn(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n,s,i,r,a,o,u=Qn(this._milliseconds)/1e3,l=Qn(this._days),h=Qn(this._months),d=this.asSeconds();return d?(e=I(u/60),t=I(e/60),u%=60,e%=60,n=I(h/12),h%=12,s=u?u.toFixed(3).replace(/\.?0+$/,""):"",i=d<0?"-":"",r=Xn(this._months)!==Xn(d)?"-":"",a=Xn(this._days)!==Xn(d)?"-":"",o=Xn(this._milliseconds)!==Xn(d)?"-":"",i+"P"+(n?r+n+"Y":"")+(h?r+h+"M":"")+(l?a+l+"D":"")+(t||e||u?"T":"")+(t?o+t+"H":"")+(e?o+e+"M":"")+(u?o+s+"S":"")):"P0D"}var es=Ct.prototype;return es.isValid=function(){return this._isValid},es.abs=function(){var e=this._data;return this._milliseconds=Yn(this._milliseconds),this._days=Yn(this._days),this._months=Yn(this._months),e.milliseconds=Yn(e.milliseconds),e.seconds=Yn(e.seconds),e.minutes=Yn(e.minutes),e.hours=Yn(e.hours),e.months=Yn(e.months),e.years=Yn(e.years),this},es.add=function(e,t){return On(this,e,t,1)},es.subtract=function(e,t){return On(this,e,t,-1)},es.as=function(e){if(!this.isValid())return NaN;var t,n,s=this._milliseconds;if("month"===(e=V(e))||"quarter"===e||"year"===e)switch(t=this._days+s/864e5,n=this._months+xn(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(Tn(this._months)),e){case"week":return t/7+s/6048e5;case"day":return t+s/864e5;case"hour":return 24*t+s/36e5;case"minute":return 1440*t+s/6e4;case"second":return 86400*t+s/1e3;case"millisecond":return Math.floor(864e5*t)+s;default:throw new Error("Unknown unit "+e)}},es.asMilliseconds=Pn,es.asSeconds=Rn,es.asMinutes=Wn,es.asHours=Cn,es.asDays=Un,es.asWeeks=Hn,es.asMonths=Fn,es.asQuarters=Ln,es.asYears=Vn,es.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*Z(this._months/12):NaN},es._bubble=function(){var e,t,n,s,i,r=this._milliseconds,a=this._days,o=this._months,u=this._data;return 0<=r&&0<=a&&0<=o||r<=0&&a<=0&&o<=0||(r+=864e5*bn(Tn(o)+a),o=a=0),u.milliseconds=r%1e3,e=I(r/1e3),u.seconds=e%60,t=I(e/60),u.minutes=t%60,n=I(t/60),u.hours=n%24,a+=I(n/24),o+=i=I(xn(a)),a-=bn(Tn(i)),s=I(o/12),o%=12,u.days=a,u.months=o,u.years=s,this},es.clone=function(){return Zt(this)},es.get=function(e){return e=V(e),this.isValid()?this[e+"s"]():NaN},es.milliseconds=En,es.seconds=An,es.minutes=jn,es.hours=In,es.days=Zn,es.weeks=function(){return I(this.days()/7)},es.months=zn,es.years=$n,es.humanize=function(e,t){if(!this.isValid())return this.localeData().invalidDate();var n,s,i=!1,r=Bn;return"object"==typeof e&&(t=e,e=!1),"boolean"==typeof e&&(i=e),"object"==typeof t&&(r=Object.assign({},Bn,t),null!=t.s&&null==t.ss&&(r.ss=t.s-1)),n=this.localeData(),s=Jn(this,!i,r,n),i&&(s=n.pastFuture(+this,s)),n.postformat(s)},es.toISOString=Kn,es.toString=Kn,es.toJSON=Kn,es.locale=tn,es.localeData=sn,es.toIsoString=n("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Kn),es.lang=nn,C("X",0,0,"unix"),C("x",0,0,"valueOf"),ce("x",ue),ce("X",/[+-]?\d+(\.\d{1,3})?/),ye("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e))}),ye("x",function(e,t,n){n._d=new Date(Z(e))}),f.version="2.29.1",e=Tt,f.fn=pn,f.min=function(){return Rt("isBefore",[].slice.call(arguments,0))},f.max=function(){return Rt("isAfter",[].slice.call(arguments,0))},f.now=function(){return Date.now?Date.now():+new Date},f.utc=_,f.unix=function(e){return Tt(1e3*e)},f.months=function(e,t){return Dn(e,t,"months")},f.isDate=a,f.locale=lt,f.invalid=w,f.duration=Zt,f.isMoment=M,f.weekdays=function(e,t,n){return Sn(e,t,n,"weekdays")},f.parseZone=function(){return Tt.apply(null,arguments).parseZone()},f.localeData=dt,f.isDuration=Ut,f.monthsShort=function(e,t){return Dn(e,t,"monthsShort")},f.weekdaysMin=function(e,t,n){return Sn(e,t,n,"weekdaysMin")},f.defineLocale=ht,f.updateLocale=function(e,t){var n,s,i;return null!=t?(i=st,null!=it[e]&&null!=it[e].parentLocale?it[e].set(b(it[e]._config,t)):(null!=(s=ut(e))&&(i=s._config),t=b(i,t),null==s&&(t.abbr=e),(n=new x(t)).parentLocale=it[e],it[e]=n),lt(e)):null!=it[e]&&(null!=it[e].parentLocale?(it[e]=it[e].parentLocale,e===lt()&<(e)):null!=it[e]&&delete it[e]),it[e]},f.locales=function(){return s(it)},f.weekdaysShort=function(e,t,n){return Sn(e,t,n,"weekdaysShort")},f.normalizeUnits=V,f.relativeTimeRounding=function(e){return void 0===e?qn:"function"==typeof e&&(qn=e,!0)},f.relativeTimeThreshold=function(e,t){return void 0!==Bn[e]&&(void 0===t?Bn[e]:(Bn[e]=t,"s"===e&&(Bn.ss=t-1),!0))},f.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},f.prototype=pn,f.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},f}); +//# sourceMappingURL=moment.min.js.map \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/js/sortablejs.js b/NMP 3.0 Moodle Pluggin/fliplearning/js/sortablejs.js new file mode 100644 index 0000000000000000000000000000000000000000..a2081a015c2ec17525234cc75547fa650e24129e --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/js/sortablejs.js @@ -0,0 +1,2 @@ +/*! Sortable 1.8.4 - MIT | git://github.com/SortableJS/Sortable.git */ +!function(t){"use strict";"function"==typeof define&&define.amd?define(t):"undefined"!=typeof module&&void 0!==module.exports?module.exports=t():window.Sortable=t()}(function(){"use strict";if("undefined"==typeof window||!window.document)return function(){throw new Error("Sortable.js requires a window with a document")};var U,V,f,u,q,G,h,X,Y,A,K,n,Z,Q,l,s,c,p,k,J,$,tt,et,ot,g,nt,I=[],B=!1,v=!1,it=!1,d=[],rt=!1,at=!1,m=[],i=/\s+/g,lt="Sortable"+(new Date).getTime(),b=window,st=b.document,w=b.parseInt,ct=b.setTimeout,e=b.jQuery||b.Zepto,o=b.Polymer,r={capture:!1,passive:!1},dt=!!navigator.userAgent.match(/(?:Trident.*rv[ :]?11\.|msie|iemobile)/i),_=!!navigator.userAgent.match(/Edge/i),y=!!navigator.userAgent.match(/firefox/i),D=!(!navigator.userAgent.match(/safari/i)||navigator.userAgent.match(/chrome/i)||navigator.userAgent.match(/android/i)),S=!!navigator.userAgent.match(/iP(ad|od|hone)/i),T=_||dt?"cssFloat":"float",a="draggable"in st.createElement("div"),C=function(){if(dt)return!1;var t=st.createElement("x");return t.style.cssText="pointer-events:auto","auto"===t.style.pointerEvents}(),ht=!1,E=!1,ut=Math.abs,x=Math.min,N=Math.max,M=[],P=function(t,e){var o=Dt(t),n=w(o.width)-w(o.paddingLeft)-w(o.paddingRight)-w(o.borderLeftWidth)-w(o.borderRightWidth),i=Mt(t,0,e),r=Mt(t,1,e),a=i&&Dt(i),l=r&&Dt(r),s=a&&w(a.marginLeft)+w(a.marginRight)+Lt(i).width,c=l&&w(l.marginLeft)+w(l.marginRight)+Lt(r).width;if("flex"===o.display)return"column"===o.flexDirection||"column-reverse"===o.flexDirection?"vertical":"horizontal";if("grid"===o.display)return o.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(i&&"none"!==a.float){var d="left"===a.float?"left":"right";return!r||"both"!==l.clear&&l.clear!==d?"horizontal":"vertical"}return i&&("block"===a.display||"flex"===a.display||"table"===a.display||"grid"===a.display||n<=s&&"none"===o[T]||r&&"none"===o[T]&&n<s+c)?"vertical":"horizontal"},O=function(t,e){if(!t||!t.getBoundingClientRect)return H();var o=t,n=!1;do{if(o.clientWidth<o.scrollWidth||o.clientHeight<o.scrollHeight){var i=Dt(o);if(o.clientWidth<o.scrollWidth&&("auto"==i.overflowX||"scroll"==i.overflowX)||o.clientHeight<o.scrollHeight&&("auto"==i.overflowY||"scroll"==i.overflowY)){if(!o||!o.getBoundingClientRect||o===st.body)return H();if(n||e)return o;n=!0}}}while(o=o.parentNode);return H()},H=function(){return dt?st.documentElement:st.scrollingElement},ft=function(t,e,o){t.scrollLeft+=e,t.scrollTop+=o},R=It(function(o,t,e,n){if(t.scroll){var i=e?e[lt]:window,r=t.scrollSensitivity,a=t.scrollSpeed,l=o.clientX,s=o.clientY,c=H(),d=!1;Y!==e&&(L(),X=t.scroll,A=t.scrollFn,!0===X&&(X=O(e,!0),Y=X));var h=0,u=X;do{var f,p,g,v,m,b,w,_,y,D=u,S=Lt(D),T=S.top,C=S.bottom,E=S.left,x=S.right,N=S.width,M=S.height;if(f=D.scrollWidth,p=D.scrollHeight,g=Dt(D),_=D.scrollLeft,y=D.scrollTop,w=D===c?(b=N<f&&("auto"===g.overflowX||"scroll"===g.overflowX||"visible"===g.overflowX),M<p&&("auto"===g.overflowY||"scroll"===g.overflowY||"visible"===g.overflowY)):(b=N<f&&("auto"===g.overflowX||"scroll"===g.overflowX),M<p&&("auto"===g.overflowY||"scroll"===g.overflowY)),v=b&&(ut(x-l)<=r&&_+N<f)-(ut(E-l)<=r&&!!_),m=w&&(ut(C-s)<=r&&y+M<p)-(ut(T-s)<=r&&!!y),!I[h])for(var P=0;P<=h;P++)I[P]||(I[P]={});I[h].vx==v&&I[h].vy==m&&I[h].el===D||(I[h].el=D,I[h].vx=v,I[h].vy=m,clearInterval(I[h].pid),!D||0==v&&0==m||(d=!0,I[h].pid=setInterval(function(){n&&0===this.layer&&(mt.active._emulateDragOver(!0),mt.active._onTouchMove(k,!0));var t=I[this.layer].vy?I[this.layer].vy*a:0,e=I[this.layer].vx?I[this.layer].vx*a:0;"function"==typeof A&&"continue"!==A.call(i,e,t,o,k,I[this.layer].el)||ft(I[this.layer].el,e,t)}.bind({layer:h}),24))),h++}while(t.bubbleScroll&&u!==c&&(u=O(u,!1)));B=d}},30),L=function(){I.forEach(function(t){clearInterval(t.pid)}),I=[]},W=function(t){function s(a,l){return function(t,e,o,n){var i=t.options.group.name&&e.options.group.name&&t.options.group.name===e.options.group.name;if(null==a&&(l||i))return!0;if(null==a||!1===a)return!1;if(l&&"clone"===a)return a;if("function"==typeof a)return s(a(t,e,o,n),l)(t,e,o,n);var r=(l?t:e).options.group.name;return!0===a||"string"==typeof a&&a===r||a.join&&-1<a.indexOf(r)}}var e={},o=t.group;o&&"object"==typeof o||(o={name:o}),e.name=o.name,e.checkPull=s(o.pull,!0),e.checkPut=s(o.put),e.revertClone=o.revertClone,t.group=e},F=function(t){U&&U.parentNode&&U.parentNode[lt]&&U.parentNode[lt]._computeIsAligned(t)},pt=function(t,e){for(var o=e;!o[lt];)o=o.parentNode;return t===o},gt=function(t,e,o){for(var n=t.parentNode;n&&!n[lt];)n=n.parentNode;n&&n[lt][o](Bt(e,{artificialBubble:!0}))},z=function(){!C&&f&&Dt(f,"display","none")},j=function(){!C&&f&&Dt(f,"display","")};st.addEventListener("click",function(t){if(it)return t.preventDefault(),t.stopPropagation&&t.stopPropagation(),t.stopImmediatePropagation&&t.stopImmediatePropagation(),it=!1},!0);var vt,t=function(t){if(t=t.touches?t.touches[0]:t,U){var e=function(t,e){for(var o=0;o<d.length;o++)if(!Pt(d[o])){var n=Lt(d[o]),i=d[o][lt].options.emptyInsertThreshold,r=t>=n.left-i&&t<=n.right+i,a=e>=n.top-i&&e<=n.bottom+i;if(r&&a)return d[o]}}(t.clientX,t.clientY);e&&e[lt]._onDragOver({clientX:t.clientX,clientY:t.clientY,target:e,rootEl:e})}};function mt(t,e){if(!t||!t.nodeType||1!==t.nodeType)throw"Sortable: `el` must be HTMLElement, not "+{}.toString.call(t);this.el=t,this.options=e=Bt({},e),t[lt]=this;var o={group:null,sort:!0,disabled:!1,store:null,handle:null,scroll:!0,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0,draggable:/[uo]l/i.test(t.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return P(t,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(t,e){t.setData("Text",e.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,touchStartThreshold:w(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==mt.supportPointer&&("PointerEvent"in window||window.navigator&&"msPointerEnabled"in window.navigator),emptyInsertThreshold:5};for(var n in o)!(n in e)&&(e[n]=o[n]);for(var i in W(e),this)"_"===i.charAt(0)&&"function"==typeof this[i]&&(this[i]=this[i].bind(this));this.nativeDraggable=!e.forceFallback&&a,this.nativeDraggable&&(this.options.touchStartThreshold=1),e.supportPointer?wt(t,"pointerdown",this._onTapStart):(wt(t,"mousedown",this._onTapStart),wt(t,"touchstart",this._onTapStart)),this.nativeDraggable&&(wt(t,"dragover",this),wt(t,"dragenter",this)),d.push(this.el),e.store&&e.store.get&&this.sort(e.store.get(this)||[])}function bt(t,e,o,n){if(t){o=o||st;do{if(null!=e&&(">"===e[0]&&t.parentNode===o&&kt(t,e.substring(1))||kt(t,e))||n&&t===o)return t;if(t===o)break}while(t=(i=t).host&&i!==st&&i.host.nodeType?i.host:i.parentNode)}var i;return null}function wt(t,e,o){t.addEventListener(e,o,r)}function _t(t,e,o){t.removeEventListener(e,o,r)}function yt(t,e,o){if(t&&e)if(t.classList)t.classList[o?"add":"remove"](e);else{var n=(" "+t.className+" ").replace(i," ").replace(" "+e+" "," ");t.className=(n+(o?" "+e:"")).replace(i," ")}}function Dt(t,e,o){var n=t&&t.style;if(n){if(void 0===o)return st.defaultView&&st.defaultView.getComputedStyle?o=st.defaultView.getComputedStyle(t,""):t.currentStyle&&(o=t.currentStyle),void 0===e?o:o[e];e in n||-1!==e.indexOf("webkit")||(e="-webkit-"+e),n[e]=o+("string"==typeof o?"":"px")}}function St(t){var e="";do{var o=Dt(t,"transform");o&&"none"!==o&&(e=o+" "+e)}while(t=t.parentNode);return window.DOMMatrix?new DOMMatrix(e):window.WebKitCSSMatrix?new WebKitCSSMatrix(e):window.CSSMatrix?new CSSMatrix(e):void 0}function Tt(t,e,o){if(t){var n=t.getElementsByTagName(e),i=0,r=n.length;if(o)for(;i<r;i++)o(n[i],i);return n}return[]}function Ct(t,e,o,n,i,r,a,l,s){var c,d=(t=t||e[lt]).options,h="on"+o.charAt(0).toUpperCase()+o.substr(1);!window.CustomEvent||dt||_?(c=st.createEvent("Event")).initEvent(o,!0,!0):c=new CustomEvent(o,{bubbles:!0,cancelable:!0}),c.to=i||e,c.from=r||e,c.item=n||e,c.clone=u,c.oldIndex=a,c.newIndex=l,c.originalEvent=s,c.pullMode=Q?Q.lastPutMode:void 0,e&&e.dispatchEvent(c),d[h]&&d[h].call(t,c)}function Et(t,e,o,n,i,r,a,l){var s,c,d=t[lt],h=d.options.onMove;return!window.CustomEvent||dt||_?(s=st.createEvent("Event")).initEvent("move",!0,!0):s=new CustomEvent("move",{bubbles:!0,cancelable:!0}),s.to=e,s.from=t,s.dragged=o,s.draggedRect=n,s.related=i||e,s.relatedRect=r||Lt(e),s.willInsertAfter=l,s.originalEvent=a,t.dispatchEvent(s),h&&(c=h.call(d,s,a)),c}function xt(t){t.draggable=!1}function Nt(){ht=!1}function Mt(t,e,o){for(var n=0,i=0,r=t.children;i<r.length;){if("none"!==r[i].style.display&&r[i]!==f&&r[i]!==U&&bt(r[i],o.draggable,t,!1)){if(n===e)return r[i];n++}i++}return null}function Pt(t){for(var e=t.lastElementChild;e&&(e===f||"none"===e.style.display);)e=e.previousElementSibling;return e||null}function Xt(t){return At(U)<At(t)?1:-1}function Yt(t){for(var e=t.tagName+t.className+t.src+t.href+t.textContent,o=e.length,n=0;o--;)n+=e.charCodeAt(o);return n.toString(36)}function At(t,e){var o=0;if(!t||!t.parentNode)return-1;for(;t&&(t=t.previousElementSibling);)"TEMPLATE"!==t.nodeName.toUpperCase()&&t!==u&&o++;return o}function kt(t,e){if(t)try{if(t.matches)return t.matches(e);if(t.msMatchesSelector)return t.msMatchesSelector(e);if(t.webkitMatchesSelector)return t.webkitMatchesSelector(e)}catch(t){return!1}return!1}function It(o,n){return function(){if(!vt){var t=arguments,e=this;vt=ct(function(){1===t.length?o.call(e,t[0]):o.apply(e,t),vt=void 0},n)}}}function Bt(t,e){if(t&&e)for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);return t}function Ot(t){return o&&o.dom?o.dom(t).cloneNode(!0):e?e(t).clone(!0)[0]:t.cloneNode(!0)}function Ht(t){return ct(t,0)}function Rt(t){return clearTimeout(t)}function Lt(t,e,o,n){if(t.getBoundingClientRect||t===b){var i,r,a,l,s,c,d;if(d=t!==b&&t!==H()?(r=(i=t.getBoundingClientRect()).top,a=i.left,l=i.bottom,s=i.right,c=i.height,i.width):(a=r=0,l=window.innerHeight,s=window.innerWidth,c=window.innerHeight,window.innerWidth),n&&t!==b&&(o=o||t.parentNode,!dt))do{if(o&&o.getBoundingClientRect&&"none"!==Dt(o,"transform")){var h=o.getBoundingClientRect();r-=h.top+w(Dt(o,"border-top-width")),a-=h.left+w(Dt(o,"border-left-width")),l=r+i.height,s=a+i.width;break}}while(o=o.parentNode);if(e&&t!==b){var u=St(o||t),f=u&&u.a,p=u&&u.d;u&&(l=(r/=p)+(c/=p),s=(a/=f)+(d/=f))}return{top:r,left:a,bottom:l,right:s,width:d,height:c}}}function Wt(t,e){for(var o=O(t,!0),n=Lt(t)[e];o;){var i=Lt(o)[e];if(!("top"===e||"left"===e?i<=n:n<=i))return o;if(o===H())break;o=O(o,!1)}return!1}function Ft(t){var e=0,o=0,n=H();if(t)do{var i=St(t),r=i.a,a=i.d;e+=t.scrollLeft*r,o+=t.scrollTop*a}while(t!==n&&(t=t.parentNode));return[e,o]}return wt(st,"dragover",t),wt(st,"mousemove",t),wt(st,"touchmove",t),mt.prototype={constructor:mt,_computeIsAligned:function(t){var e;if(f&&!C?(z(),e=st.elementFromPoint(t.clientX,t.clientY),j()):e=t.target,e=bt(e,this.options.draggable,this.el,!1),!E&&U&&U.parentNode===this.el){for(var o,n,i,r,a,l,s,c,d=this.el.children,h=0;h<d.length;h++)bt(d[h],this.options.draggable,this.el,!1)&&d[h]!==e&&(d[h].sortableMouseAligned=(o=t.clientX,n=t.clientY,i=d[h],r=this._getDirection(t,null),this.options,void 0,a=Lt(i),l="vertical"===r?a.left:a.top,s="vertical"===r?a.right:a.bottom,l<(c="vertical"===r?o:n)&&c<s));bt(e,this.options.draggable,this.el,!0)||($=null),E=!0,ct(function(){E=!1},30)}},_getDirection:function(t,e){return"function"==typeof this.options.direction?this.options.direction.call(this,t,e,U):this.options.direction},_onTapStart:function(t){if(t.cancelable){var e,o=this,n=this.el,i=this.options,r=i.preventOnFilter,a=t.type,l=t.touches&&t.touches[0],s=(l||t).target,c=t.target.shadowRoot&&(t.path&&t.path[0]||t.composedPath&&t.composedPath()[0])||s,d=i.filter;if(function(t){M.length=0;var e=t.getElementsByTagName("input"),o=e.length;for(;o--;){var n=e[o];n.checked&&M.push(n)}}(n),(!dt||t.artificialBubble||pt(n,s))&&!U&&!(/mousedown|pointerdown/.test(a)&&0!==t.button||i.disabled||c.isContentEditable))if(s=bt(s,i.draggable,n,!1)){if(h!==s){if(e=At(s,i.draggable),"function"==typeof d){if(d.call(this,t,s,this))return Ct(o,c,"filter",s,n,n,e),void(r&&t.cancelable&&t.preventDefault())}else if(d&&(d=d.split(",").some(function(t){if(t=bt(c,t.trim(),n,!1))return Ct(o,t,"filter",s,n,n,e),!0})))return void(r&&t.cancelable&&t.preventDefault());i.handle&&!bt(c,i.handle,n,!1)||this._prepareDragStart(t,l,s,e)}}else dt&>(n,t,"_onTapStart")}},_handleAutoScroll:function(e,o){if(U&&this.options.scroll){var n=e.clientX,i=e.clientY,t=st.elementFromPoint(n,i),r=this;if(o||_||dt||D){R(e,r.options,t,o);var a=O(t,!0);!B||l&&n===s&&i===c||(l&&clearInterval(l),l=setInterval(function(){if(U){var t=O(st.elementFromPoint(n,i),!0);t!==a&&(a=t,L(),R(e,r.options,a,o))}},10),s=n,c=i)}else{if(!r.options.bubbleScroll||O(t,!0)===H())return void L();R(e,r.options,O(t,!1),!1)}}},_prepareDragStart:function(t,e,o,n){var i,r=this,a=r.el,l=r.options,s=a.ownerDocument;o&&!U&&o.parentNode===a&&(q=a,V=(U=o).parentNode,G=U.nextSibling,h=o,Z=l.group,K=n,p={target:U,clientX:(e||t).clientX,clientY:(e||t).clientY},this._lastX=(e||t).clientX,this._lastY=(e||t).clientY,U.style["will-change"]="all",U.style.transition="",U.style.transform="",i=function(){r._disableDelayedDragEvents(),!y&&r.nativeDraggable&&(U.draggable=!0),r._triggerDragStart(t,e),Ct(r,q,"choose",U,q,q,K),yt(U,l.chosenClass,!0)},l.ignore.split(",").forEach(function(t){Tt(U,t.trim(),xt)}),l.supportPointer?wt(s,"pointerup",r._onDrop):(wt(s,"mouseup",r._onDrop),wt(s,"touchend",r._onDrop),wt(s,"touchcancel",r._onDrop)),y&&this.nativeDraggable&&(this.options.touchStartThreshold=4,U.draggable=!0),!l.delay||this.nativeDraggable&&(_||dt)?i():(wt(s,"mouseup",r._disableDelayedDrag),wt(s,"touchend",r._disableDelayedDrag),wt(s,"touchcancel",r._disableDelayedDrag),wt(s,"mousemove",r._delayedDragTouchMoveHandler),wt(s,"touchmove",r._delayedDragTouchMoveHandler),l.supportPointer&&wt(s,"pointermove",r._delayedDragTouchMoveHandler),r._dragStartTimer=ct(i,l.delay)))},_delayedDragTouchMoveHandler:function(t){var e=t.touches?t.touches[0]:t;N(ut(e.clientX-this._lastX),ut(e.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){U&&xt(U),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var t=this.el.ownerDocument;_t(t,"mouseup",this._disableDelayedDrag),_t(t,"touchend",this._disableDelayedDrag),_t(t,"touchcancel",this._disableDelayedDrag),_t(t,"mousemove",this._delayedDragTouchMoveHandler),_t(t,"touchmove",this._delayedDragTouchMoveHandler),_t(t,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(t,e){e=e||("touch"==t.pointerType?t:null),!this.nativeDraggable||e?this.options.supportPointer?wt(st,"pointermove",this._onTouchMove):wt(st,e?"touchmove":"mousemove",this._onTouchMove):(wt(U,"dragend",this),wt(q,"dragstart",this._onDragStart));try{st.selection?Ht(function(){st.selection.empty()}):window.getSelection().removeAllRanges()}catch(t){}},_dragStarted:function(t,e){if(v=!1,q&&U){this.nativeDraggable&&(wt(st,"dragover",this._handleAutoScroll),wt(st,"dragover",F));var o=this.options;!t&&yt(U,o.dragClass,!1),yt(U,o.ghostClass,!0),Dt(U,"transform",""),mt.active=this,t&&this._appendGhost(),Ct(this,q,"start",U,q,q,K,void 0,e)}else this._nulling()},_emulateDragOver:function(t){if(k){if(this._lastX===k.clientX&&this._lastY===k.clientY&&!t)return;this._lastX=k.clientX,this._lastY=k.clientY,z();for(var e=st.elementFromPoint(k.clientX,k.clientY),o=e;e&&e.shadowRoot;)o=e=e.shadowRoot.elementFromPoint(k.clientX,k.clientY);if(o)do{if(o[lt])if(o[lt]._onDragOver({clientX:k.clientX,clientY:k.clientY,target:e,rootEl:o})&&!this.options.dragoverBubble)break;e=o}while(o=o.parentNode);U.parentNode[lt]._computeIsAligned(k),j()}},_onTouchMove:function(t,e){if(p){var o=this.options,n=o.fallbackTolerance,i=o.fallbackOffset,r=t.touches?t.touches[0]:t,a=f&&St(f),l=f&&a&&a.a,s=f&&a&&a.d,c=S&&g&&Ft(g),d=(r.clientX-p.clientX+i.x)/(l||1)+(c?c[0]-m[0]:0)/(l||1),h=(r.clientY-p.clientY+i.y)/(s||1)+(c?c[1]-m[1]:0)/(s||1),u=t.touches?"translate3d("+d+"px,"+h+"px,0)":"translate("+d+"px,"+h+"px)";if(!mt.active&&!v){if(n&&x(ut(r.clientX-this._lastX),ut(r.clientY-this._lastY))<n)return;this._onDragStart(t,!0)}!e&&this._handleAutoScroll(r,!0),J=!0,k=r,Dt(f,"webkitTransform",u),Dt(f,"mozTransform",u),Dt(f,"msTransform",u),Dt(f,"transform",u),t.cancelable&&t.preventDefault()}},_appendGhost:function(){if(!f){var t=this.options.fallbackOnBody?st.body:q,e=Lt(U,!0,t,!S),o=(Dt(U),this.options);if(S){for(g=t;"static"===Dt(g,"position")&&"none"===Dt(g,"transform")&&g!==st;)g=g.parentNode;if(g!==st){var n=Lt(g,!0);e.top-=n.top,e.left-=n.left}g!==st.body&&g!==st.documentElement?(g===st&&(g=H()),e.top+=g.scrollTop,e.left+=g.scrollLeft):g=H(),m=Ft(g)}yt(f=U.cloneNode(!0),o.ghostClass,!1),yt(f,o.fallbackClass,!0),yt(f,o.dragClass,!0),Dt(f,"box-sizing","border-box"),Dt(f,"margin",0),Dt(f,"top",e.top),Dt(f,"left",e.left),Dt(f,"width",e.width),Dt(f,"height",e.height),Dt(f,"opacity","0.8"),Dt(f,"position",S?"absolute":"fixed"),Dt(f,"zIndex","100000"),Dt(f,"pointerEvents","none"),t.appendChild(f)}},_onDragStart:function(t,e){var o=this,n=t.dataTransfer,i=o.options;(u=Ot(U)).draggable=!1,u.style["will-change"]="",this._hideClone(),yt(u,o.options.chosenClass,!1),o._cloneId=Ht(function(){o.options.removeCloneOnHide||q.insertBefore(u,U),Ct(o,q,"clone",U)}),!e&&yt(U,i.dragClass,!0),e?(it=!0,o._loopId=setInterval(o._emulateDragOver,50)):(_t(st,"mouseup",o._onDrop),_t(st,"touchend",o._onDrop),_t(st,"touchcancel",o._onDrop),n&&(n.effectAllowed="move",i.setData&&i.setData.call(o,n,U)),wt(st,"drop",o),Dt(U,"transform","translateZ(0)")),v=!0,o._dragStartId=Ht(o._dragStarted.bind(o,e,t)),wt(st,"selectstart",o),D&&Dt(st.body,"user-select","none")},_onDragOver:function(e){var o,n,t,i=this.el,r=e.target,a=this.options,l=a.group,s=mt.active,c=Z===l,d=a.sort,h=this;if(!ht&&(!dt||e.rootEl||e.artificialBubble||pt(i,r))){if(void 0!==e.preventDefault&&e.cancelable&&e.preventDefault(),J=!0,r=bt(r,a.draggable,i,!0),bt(e.target,null,U,!0)||r.animated)return z(!1);if(r!==U&&(it=!1),s&&!a.disabled&&(c?d||(t=!q.contains(U)):Q===this||(this.lastPutMode=Z.checkPull(this,s,U,e))&&l.checkPut(this,s,U,e))){var u=this._getDirection(e,r);if(o=Lt(U),t)return this._hideClone(),V=q,G?q.insertBefore(U,G):q.appendChild(U),z(!0);var f=Pt(i);if(f&&(I=e,B=u,O=Lt(Pt(i)),H="vertical"===B?I.clientY:I.clientX,R="vertical"===B?I.clientX:I.clientY,L="vertical"===B?O.bottom:O.right,W="vertical"===B?O.left:O.top,F="vertical"===B?O.right:O.bottom,!("vertical"===B?F+10<R||R<=F&&L<H&&W<=R:L<H&&W<R||H<=L&&F+10<R)||f.animated)){if(r&&r!==U&&r.parentNode===i){var p,g=0,v=r.sortableMouseAligned,m=U.parentNode!==i,b="vertical"===u?"top":"left",w=Wt(r,"top")||Wt(U,"top"),_=w?w.scrollTop:void 0;if($!==r&&(et=null,p=Lt(r)[b],rt=!1),C=r,E=u,x=(T=U)===U&&nt||Lt(T),N=C===U&&nt||Lt(C),M="vertical"===E?x.left:x.top,P="vertical"===E?x.right:x.bottom,X="vertical"===E?x.width:x.height,Y="vertical"===E?N.left:N.top,A="vertical"===E?N.right:N.bottom,k="vertical"===E?N.width:N.height,et=(M===Y||P===A||M+X/2===Y+k/2)&&v||m||w||a.invertSwap||"insert"===et||"swap"===et?("swap"!==et&&(at=a.invertSwap||m),g=function(t,e,o,n,i,r,a){var l=Lt(e),s="vertical"===o?t.clientY:t.clientX,c="vertical"===o?l.height:l.width,d="vertical"===o?l.top:l.left,h="vertical"===o?l.bottom:l.right,u=Lt(U),f=!1;if(!r)if(a&&ot<c*n)if(!rt&&(1===tt?d+c*i/2<s:s<h-c*i/2)&&(rt=!0),rt)f=!0;else{"vertical"===o?u.top:u.left,"vertical"===o?u.bottom:u.right;if(1===tt?s<d+ot:h-ot<s)return-1*tt}else if(d+c*(1-n)/2<s&&s<h-c*(1-n)/2)return Xt(e);if((f=f||r)&&(s<d+c*i/2||h-c*i/2<s))return d+c/2<s?1:-1;return 0}(e,r,u,a.swapThreshold,null==a.invertedSwapThreshold?a.swapThreshold:a.invertedSwapThreshold,at,$===r),"swap"):(g=Xt(r),"insert"),0===g)return z(!1);nt=null,tt=g,n=Lt($=r);var y=r.nextElementSibling,D=!1,S=Et(q,i,U,o,r,n,e,D=1===g);if(!1!==S)return 1!==S&&-1!==S||(D=1===S),ht=!0,ct(Nt,30),c?s._hideClone():s._showClone(this),D&&!y?i.appendChild(U):r.parentNode.insertBefore(U,D?y:r),w&&ft(w,0,_-w.scrollTop),V=U.parentNode,void 0===p||at||(ot=ut(p-Lt(r)[b])),j(),z(!0)}}else if(f&&i===e.target&&(r=f),r&&(n=Lt(r)),c?s._hideClone():s._showClone(this),!1!==Et(q,i,U,o,r,n,e,!!r))return i.appendChild(U),V=i,nt=null,j(),z(!0);if(i.contains(U))return z(!1)}var T,C,E,x,N,M,P,X,Y,A,k,I,B,O,H,R,L,W,F;return dt&&!e.rootEl&>(i,e,"_onDragOver"),!1}function z(t){return t&&(c?s._hideClone():s._showClone(h),s&&(yt(U,Q?Q.options.ghostClass:s.options.ghostClass,!1),yt(U,a.ghostClass,!0)),Q!==h&&h!==mt.active?Q=h:h===mt.active&&(Q=null),o&&h._animate(o,U),r&&n&&h._animate(n,r)),(r===U&&!U.animated||r===i&&!r.animated)&&($=null),a.dragoverBubble||e.rootEl||r===st||(h._handleAutoScroll(e),U.parentNode[lt]._computeIsAligned(e)),!a.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),!0}function j(){Ct(h,q,"change",r,i,q,K,At(U,a.draggable),e)}},_animate:function(t,e){var o=this.options.animation;if(o){var n=Lt(e);if(e===U&&(nt=n),1===t.nodeType&&(t=Lt(t)),t.left+t.width/2!==n.left+n.width/2||t.top+t.height/2!==n.top+n.height/2){var i=St(this.el),r=i&&i.a,a=i&&i.d;Dt(e,"transition","none"),Dt(e,"transform","translate3d("+(t.left-n.left)/(r||1)+"px,"+(t.top-n.top)/(a||1)+"px,0)"),e.offsetWidth,Dt(e,"transition","transform "+o+"ms"+(this.options.easing?" "+this.options.easing:"")),Dt(e,"transform","translate3d(0,0,0)")}"number"==typeof e.animated&&clearTimeout(e.animated),e.animated=ct(function(){Dt(e,"transition",""),Dt(e,"transform",""),e.animated=!1},o)}},_offUpEvents:function(){var t=this.el.ownerDocument;_t(st,"touchmove",this._onTouchMove),_t(st,"pointermove",this._onTouchMove),_t(t,"mouseup",this._onDrop),_t(t,"touchend",this._onDrop),_t(t,"pointerup",this._onDrop),_t(t,"touchcancel",this._onDrop),_t(st,"selectstart",this)},_onDrop:function(t){var e=this.el,o=this.options;rt=at=B=v=!1,clearInterval(this._loopId),clearInterval(l),L(),clearTimeout(vt),vt=void 0,clearTimeout(this._dragStartTimer),Rt(this._cloneId),Rt(this._dragStartId),_t(st,"mousemove",this._onTouchMove),this.nativeDraggable&&(_t(st,"drop",this),_t(e,"dragstart",this._onDragStart),_t(st,"dragover",this._handleAutoScroll),_t(st,"dragover",F)),D&&Dt(st.body,"user-select",""),this._offUpEvents(),t&&(J&&(t.cancelable&&t.preventDefault(),!o.dropBubble&&t.stopPropagation()),f&&f.parentNode&&f.parentNode.removeChild(f),(q===V||Q&&"clone"!==Q.lastPutMode)&&u&&u.parentNode&&u.parentNode.removeChild(u),U&&(this.nativeDraggable&&_t(U,"dragend",this),xt(U),U.style["will-change"]="",yt(U,Q?Q.options.ghostClass:this.options.ghostClass,!1),yt(U,this.options.chosenClass,!1),Ct(this,q,"unchoose",U,V,q,K,null,t),q!==V?(0<=(n=At(U,o.draggable))&&(Ct(null,V,"add",U,V,q,K,n,t),Ct(this,q,"remove",U,V,q,K,n,t),Ct(null,V,"sort",U,V,q,K,n,t),Ct(this,q,"sort",U,V,q,K,n,t)),Q&&Q.save()):U.nextSibling!==G&&0<=(n=At(U,o.draggable))&&(Ct(this,q,"update",U,V,q,K,n,t),Ct(this,q,"sort",U,V,q,K,n,t)),mt.active&&(null!=n&&-1!==n||(n=K),Ct(this,q,"end",U,V,q,K,n,t),this.save()))),this._nulling()},_nulling:function(){q=U=V=f=G=u=h=X=Y=I.length=l=s=c=p=k=J=n=K=$=tt=nt=Q=Z=mt.active=null,M.forEach(function(t){t.checked=!0}),M.length=0},handleEvent:function(t){switch(t.type){case"drop":case"dragend":this._onDrop(t);break;case"dragenter":case"dragover":U&&(this._onDragOver(t),function(t){t.dataTransfer&&(t.dataTransfer.dropEffect="move");t.cancelable&&t.preventDefault()}(t));break;case"selectstart":t.preventDefault()}},toArray:function(){for(var t,e=[],o=this.el.children,n=0,i=o.length,r=this.options;n<i;n++)bt(t=o[n],r.draggable,this.el,!1)&&e.push(t.getAttribute(r.dataIdAttr)||Yt(t));return e},sort:function(t){var n={},i=this.el;this.toArray().forEach(function(t,e){var o=i.children[e];bt(o,this.options.draggable,i,!1)&&(n[t]=o)},this),t.forEach(function(t){n[t]&&(i.removeChild(n[t]),i.appendChild(n[t]))})},save:function(){var t=this.options.store;t&&t.set&&t.set(this)},closest:function(t,e){return bt(t,e||this.options.draggable,this.el,!1)},option:function(t,e){var o=this.options;if(void 0===e)return o[t];o[t]=e,"group"===t&&W(o)},destroy:function(){var t=this.el;t[lt]=null,_t(t,"mousedown",this._onTapStart),_t(t,"touchstart",this._onTapStart),_t(t,"pointerdown",this._onTapStart),this.nativeDraggable&&(_t(t,"dragover",this),_t(t,"dragenter",this)),Array.prototype.forEach.call(t.querySelectorAll("[draggable]"),function(t){t.removeAttribute("draggable")}),this._onDrop(),d.splice(d.indexOf(this.el),1),this.el=t=null},_hideClone:function(){u.cloneHidden||(Dt(u,"display","none"),u.cloneHidden=!0,u.parentNode&&this.options.removeCloneOnHide&&u.parentNode.removeChild(u))},_showClone:function(t){"clone"===t.lastPutMode?u.cloneHidden&&(q.contains(U)&&!this.options.group.revertClone?q.insertBefore(u,U):G?q.insertBefore(u,G):q.appendChild(u),this.options.group.revertClone&&this._animate(U,u),Dt(u,"display",""),u.cloneHidden=!1):this._hideClone()}},wt(st,"touchmove",function(t){(mt.active||v)&&t.cancelable&&t.preventDefault()}),mt.utils={on:wt,off:_t,css:Dt,find:Tt,is:function(t,e){return!!bt(t,e,t,!1)},extend:Bt,throttle:It,closest:bt,toggleClass:yt,clone:Ot,index:At,nextTick:Ht,cancelNextTick:Rt,detectDirection:P,getChild:Mt},mt.create=function(t,e){return new mt(t,e)},mt.version="1.8.4",mt}); \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/js/vue.js b/NMP 3.0 Moodle Pluggin/fliplearning/js/vue.js new file mode 100644 index 0000000000000000000000000000000000000000..919aa1251299c4970b9860571d26c1852141e4ad --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/js/vue.js @@ -0,0 +1,11965 @@ +/*! + * Vue.js v2.6.12 + * (c) 2014-2020 Evan You + * Released under the MIT License. + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = global || self, global.Vue = factory()); +}(this, function () { 'use strict'; + + /* */ + + var emptyObject = Object.freeze({}); + + // These helpers produce better VM code in JS engines due to their + // explicitness and function inlining. + function isUndef (v) { + return v === undefined || v === null + } + + function isDef (v) { + return v !== undefined && v !== null + } + + function isTrue (v) { + return v === true + } + + function isFalse (v) { + return v === false + } + + /** + * Check if value is primitive. + */ + function isPrimitive (value) { + return ( + typeof value === 'string' || + typeof value === 'number' || + // $flow-disable-line + typeof value === 'symbol' || + typeof value === 'boolean' + ) + } + + /** + * Quick object check - this is primarily used to tell + * Objects from primitive values when we know the value + * is a JSON-compliant type. + */ + function isObject (obj) { + return obj !== null && typeof obj === 'object' + } + + /** + * Get the raw type string of a value, e.g., [object Object]. + */ + var _toString = Object.prototype.toString; + + function toRawType (value) { + return _toString.call(value).slice(8, -1) + } + + /** + * Strict object type check. Only returns true + * for plain JavaScript objects. + */ + function isPlainObject (obj) { + return _toString.call(obj) === '[object Object]' + } + + function isRegExp (v) { + return _toString.call(v) === '[object RegExp]' + } + + /** + * Check if val is a valid array index. + */ + function isValidArrayIndex (val) { + var n = parseFloat(String(val)); + return n >= 0 && Math.floor(n) === n && isFinite(val) + } + + function isPromise (val) { + return ( + isDef(val) && + typeof val.then === 'function' && + typeof val.catch === 'function' + ) + } + + /** + * Convert a value to a string that is actually rendered. + */ + function toString (val) { + return val == null + ? '' + : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString) + ? JSON.stringify(val, null, 2) + : String(val) + } + + /** + * Convert an input value to a number for persistence. + * If the conversion fails, return original string. + */ + function toNumber (val) { + var n = parseFloat(val); + return isNaN(n) ? val : n + } + + /** + * Make a map and return a function for checking if a key + * is in that map. + */ + function makeMap ( + str, + expectsLowerCase + ) { + var map = Object.create(null); + var list = str.split(','); + for (var i = 0; i < list.length; i++) { + map[list[i]] = true; + } + return expectsLowerCase + ? function (val) { return map[val.toLowerCase()]; } + : function (val) { return map[val]; } + } + + /** + * Check if a tag is a built-in tag. + */ + var isBuiltInTag = makeMap('slot,component', true); + + /** + * Check if an attribute is a reserved attribute. + */ + var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is'); + + /** + * Remove an item from an array. + */ + function remove (arr, item) { + if (arr.length) { + var index = arr.indexOf(item); + if (index > -1) { + return arr.splice(index, 1) + } + } + } + + /** + * Check whether an object has the property. + */ + var hasOwnProperty = Object.prototype.hasOwnProperty; + function hasOwn (obj, key) { + return hasOwnProperty.call(obj, key) + } + + /** + * Create a cached version of a pure function. + */ + function cached (fn) { + var cache = Object.create(null); + return (function cachedFn (str) { + var hit = cache[str]; + return hit || (cache[str] = fn(str)) + }) + } + + /** + * Camelize a hyphen-delimited string. + */ + var camelizeRE = /-(\w)/g; + var camelize = cached(function (str) { + return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; }) + }); + + /** + * Capitalize a string. + */ + var capitalize = cached(function (str) { + return str.charAt(0).toUpperCase() + str.slice(1) + }); + + /** + * Hyphenate a camelCase string. + */ + var hyphenateRE = /\B([A-Z])/g; + var hyphenate = cached(function (str) { + return str.replace(hyphenateRE, '-$1').toLowerCase() + }); + + /** + * Simple bind polyfill for environments that do not support it, + * e.g., PhantomJS 1.x. Technically, we don't need this anymore + * since native bind is now performant enough in most browsers. + * But removing it would mean breaking code that was able to run in + * PhantomJS 1.x, so this must be kept for backward compatibility. + */ + + /* istanbul ignore next */ + function polyfillBind (fn, ctx) { + function boundFn (a) { + var l = arguments.length; + return l + ? l > 1 + ? fn.apply(ctx, arguments) + : fn.call(ctx, a) + : fn.call(ctx) + } + + boundFn._length = fn.length; + return boundFn + } + + function nativeBind (fn, ctx) { + return fn.bind(ctx) + } + + var bind = Function.prototype.bind + ? nativeBind + : polyfillBind; + + /** + * Convert an Array-like object to a real Array. + */ + function toArray (list, start) { + start = start || 0; + var i = list.length - start; + var ret = new Array(i); + while (i--) { + ret[i] = list[i + start]; + } + return ret + } + + /** + * Mix properties into target object. + */ + function extend (to, _from) { + for (var key in _from) { + to[key] = _from[key]; + } + return to + } + + /** + * Merge an Array of Objects into a single Object. + */ + function toObject (arr) { + var res = {}; + for (var i = 0; i < arr.length; i++) { + if (arr[i]) { + extend(res, arr[i]); + } + } + return res + } + + /* eslint-disable no-unused-vars */ + + /** + * Perform no operation. + * Stubbing args to make Flow happy without leaving useless transpiled code + * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/). + */ + function noop (a, b, c) {} + + /** + * Always return false. + */ + var no = function (a, b, c) { return false; }; + + /* eslint-enable no-unused-vars */ + + /** + * Return the same value. + */ + var identity = function (_) { return _; }; + + /** + * Generate a string containing static keys from compiler modules. + */ + function genStaticKeys (modules) { + return modules.reduce(function (keys, m) { + return keys.concat(m.staticKeys || []) + }, []).join(',') + } + + /** + * Check if two values are loosely equal - that is, + * if they are plain objects, do they have the same shape? + */ + function looseEqual (a, b) { + if (a === b) { return true } + var isObjectA = isObject(a); + var isObjectB = isObject(b); + if (isObjectA && isObjectB) { + try { + var isArrayA = Array.isArray(a); + var isArrayB = Array.isArray(b); + if (isArrayA && isArrayB) { + return a.length === b.length && a.every(function (e, i) { + return looseEqual(e, b[i]) + }) + } else if (a instanceof Date && b instanceof Date) { + return a.getTime() === b.getTime() + } else if (!isArrayA && !isArrayB) { + var keysA = Object.keys(a); + var keysB = Object.keys(b); + return keysA.length === keysB.length && keysA.every(function (key) { + return looseEqual(a[key], b[key]) + }) + } else { + /* istanbul ignore next */ + return false + } + } catch (e) { + /* istanbul ignore next */ + return false + } + } else if (!isObjectA && !isObjectB) { + return String(a) === String(b) + } else { + return false + } + } + + /** + * Return the first index at which a loosely equal value can be + * found in the array (if value is a plain object, the array must + * contain an object of the same shape), or -1 if it is not present. + */ + function looseIndexOf (arr, val) { + for (var i = 0; i < arr.length; i++) { + if (looseEqual(arr[i], val)) { return i } + } + return -1 + } + + /** + * Ensure a function is called only once. + */ + function once (fn) { + var called = false; + return function () { + if (!called) { + called = true; + fn.apply(this, arguments); + } + } + } + + var SSR_ATTR = 'data-server-rendered'; + + var ASSET_TYPES = [ + 'component', + 'directive', + 'filter' + ]; + + var LIFECYCLE_HOOKS = [ + 'beforeCreate', + 'created', + 'beforeMount', + 'mounted', + 'beforeUpdate', + 'updated', + 'beforeDestroy', + 'destroyed', + 'activated', + 'deactivated', + 'errorCaptured', + 'serverPrefetch' + ]; + + /* */ + + + + var config = ({ + /** + * Option merge strategies (used in core/util/options) + */ + // $flow-disable-line + optionMergeStrategies: Object.create(null), + + /** + * Whether to suppress warnings. + */ + silent: false, + + /** + * Show production mode tip message on boot? + */ + productionTip: "development" !== 'production', + + /** + * Whether to enable devtools + */ + devtools: "development" !== 'production', + + /** + * Whether to record perf + */ + performance: false, + + /** + * Error handler for watcher errors + */ + errorHandler: null, + + /** + * Warn handler for watcher warns + */ + warnHandler: null, + + /** + * Ignore certain custom elements + */ + ignoredElements: [], + + /** + * Custom user key aliases for v-on + */ + // $flow-disable-line + keyCodes: Object.create(null), + + /** + * Check if a tag is reserved so that it cannot be registered as a + * component. This is platform-dependent and may be overwritten. + */ + isReservedTag: no, + + /** + * Check if an attribute is reserved so that it cannot be used as a component + * prop. This is platform-dependent and may be overwritten. + */ + isReservedAttr: no, + + /** + * Check if a tag is an unknown element. + * Platform-dependent. + */ + isUnknownElement: no, + + /** + * Get the namespace of an element + */ + getTagNamespace: noop, + + /** + * Parse the real tag name for the specific platform. + */ + parsePlatformTagName: identity, + + /** + * Check if an attribute must be bound using property, e.g. value + * Platform-dependent. + */ + mustUseProp: no, + + /** + * Perform updates asynchronously. Intended to be used by Vue Test Utils + * This will significantly reduce performance if set to false. + */ + async: true, + + /** + * Exposed for legacy reasons + */ + _lifecycleHooks: LIFECYCLE_HOOKS + }); + + /* */ + + /** + * unicode letters used for parsing html tags, component names and property paths. + * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname + * skipping \u10000-\uEFFFF due to it freezing up PhantomJS + */ + var unicodeRegExp = /a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/; + + /** + * Check if a string starts with $ or _ + */ + function isReserved (str) { + var c = (str + '').charCodeAt(0); + return c === 0x24 || c === 0x5F + } + + /** + * Define a property. + */ + function def (obj, key, val, enumerable) { + Object.defineProperty(obj, key, { + value: val, + enumerable: !!enumerable, + writable: true, + configurable: true + }); + } + + /** + * Parse simple path. + */ + var bailRE = new RegExp(("[^" + (unicodeRegExp.source) + ".$_\\d]")); + function parsePath (path) { + if (bailRE.test(path)) { + return + } + var segments = path.split('.'); + return function (obj) { + for (var i = 0; i < segments.length; i++) { + if (!obj) { return } + obj = obj[segments[i]]; + } + return obj + } + } + + /* */ + + // can we use __proto__? + var hasProto = '__proto__' in {}; + + // Browser environment sniffing + var inBrowser = typeof window !== 'undefined'; + var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform; + var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase(); + var UA = inBrowser && window.navigator.userAgent.toLowerCase(); + var isIE = UA && /msie|trident/.test(UA); + var isIE9 = UA && UA.indexOf('msie 9.0') > 0; + var isEdge = UA && UA.indexOf('edge/') > 0; + var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android'); + var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios'); + var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge; + var isPhantomJS = UA && /phantomjs/.test(UA); + var isFF = UA && UA.match(/firefox\/(\d+)/); + + // Firefox has a "watch" function on Object.prototype... + var nativeWatch = ({}).watch; + + var supportsPassive = false; + if (inBrowser) { + try { + var opts = {}; + Object.defineProperty(opts, 'passive', ({ + get: function get () { + /* istanbul ignore next */ + supportsPassive = true; + } + })); // https://github.com/facebook/flow/issues/285 + window.addEventListener('test-passive', null, opts); + } catch (e) {} + } + + // this needs to be lazy-evaled because vue may be required before + // vue-server-renderer can set VUE_ENV + var _isServer; + var isServerRendering = function () { + if (_isServer === undefined) { + /* istanbul ignore if */ + if (!inBrowser && !inWeex && typeof global !== 'undefined') { + // detect presence of vue-server-renderer and avoid + // Webpack shimming the process + _isServer = global['process'] && global['process'].env.VUE_ENV === 'server'; + } else { + _isServer = false; + } + } + return _isServer + }; + + // detect devtools + var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__; + + /* istanbul ignore next */ + function isNative (Ctor) { + return typeof Ctor === 'function' && /native code/.test(Ctor.toString()) + } + + var hasSymbol = + typeof Symbol !== 'undefined' && isNative(Symbol) && + typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys); + + var _Set; + /* istanbul ignore if */ // $flow-disable-line + if (typeof Set !== 'undefined' && isNative(Set)) { + // use native Set when available. + _Set = Set; + } else { + // a non-standard Set polyfill that only works with primitive keys. + _Set = /*@__PURE__*/(function () { + function Set () { + this.set = Object.create(null); + } + Set.prototype.has = function has (key) { + return this.set[key] === true + }; + Set.prototype.add = function add (key) { + this.set[key] = true; + }; + Set.prototype.clear = function clear () { + this.set = Object.create(null); + }; + + return Set; + }()); + } + + /* */ + + var warn = noop; + var tip = noop; + var generateComponentTrace = (noop); // work around flow check + var formatComponentName = (noop); + + { + var hasConsole = typeof console !== 'undefined'; + var classifyRE = /(?:^|[-_])(\w)/g; + var classify = function (str) { return str + .replace(classifyRE, function (c) { return c.toUpperCase(); }) + .replace(/[-_]/g, ''); }; + + warn = function (msg, vm) { + var trace = vm ? generateComponentTrace(vm) : ''; + + if (config.warnHandler) { + config.warnHandler.call(null, msg, vm, trace); + } else if (hasConsole && (!config.silent)) { + console.error(("[Vue warn]: " + msg + trace)); + } + }; + + tip = function (msg, vm) { + if (hasConsole && (!config.silent)) { + console.warn("[Vue tip]: " + msg + ( + vm ? generateComponentTrace(vm) : '' + )); + } + }; + + formatComponentName = function (vm, includeFile) { + if (vm.$root === vm) { + return '<Root>' + } + var options = typeof vm === 'function' && vm.cid != null + ? vm.options + : vm._isVue + ? vm.$options || vm.constructor.options + : vm; + var name = options.name || options._componentTag; + var file = options.__file; + if (!name && file) { + var match = file.match(/([^/\\]+)\.vue$/); + name = match && match[1]; + } + + return ( + (name ? ("<" + (classify(name)) + ">") : "<Anonymous>") + + (file && includeFile !== false ? (" at " + file) : '') + ) + }; + + var repeat = function (str, n) { + var res = ''; + while (n) { + if (n % 2 === 1) { res += str; } + if (n > 1) { str += str; } + n >>= 1; + } + return res + }; + + generateComponentTrace = function (vm) { + if (vm._isVue && vm.$parent) { + var tree = []; + var currentRecursiveSequence = 0; + while (vm) { + if (tree.length > 0) { + var last = tree[tree.length - 1]; + if (last.constructor === vm.constructor) { + currentRecursiveSequence++; + vm = vm.$parent; + continue + } else if (currentRecursiveSequence > 0) { + tree[tree.length - 1] = [last, currentRecursiveSequence]; + currentRecursiveSequence = 0; + } + } + tree.push(vm); + vm = vm.$parent; + } + return '\n\nfound in\n\n' + tree + .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm) + ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)") + : formatComponentName(vm))); }) + .join('\n') + } else { + return ("\n\n(found in " + (formatComponentName(vm)) + ")") + } + }; + } + + /* */ + + var uid = 0; + + /** + * A dep is an observable that can have multiple + * directives subscribing to it. + */ + var Dep = function Dep () { + this.id = uid++; + this.subs = []; + }; + + Dep.prototype.addSub = function addSub (sub) { + this.subs.push(sub); + }; + + Dep.prototype.removeSub = function removeSub (sub) { + remove(this.subs, sub); + }; + + Dep.prototype.depend = function depend () { + if (Dep.target) { + Dep.target.addDep(this); + } + }; + + Dep.prototype.notify = function notify () { + // stabilize the subscriber list first + var subs = this.subs.slice(); + if (!config.async) { + // subs aren't sorted in scheduler if not running async + // we need to sort them now to make sure they fire in correct + // order + subs.sort(function (a, b) { return a.id - b.id; }); + } + for (var i = 0, l = subs.length; i < l; i++) { + subs[i].update(); + } + }; + + // The current target watcher being evaluated. + // This is globally unique because only one watcher + // can be evaluated at a time. + Dep.target = null; + var targetStack = []; + + function pushTarget (target) { + targetStack.push(target); + Dep.target = target; + } + + function popTarget () { + targetStack.pop(); + Dep.target = targetStack[targetStack.length - 1]; + } + + /* */ + + var VNode = function VNode ( + tag, + data, + children, + text, + elm, + context, + componentOptions, + asyncFactory + ) { + this.tag = tag; + this.data = data; + this.children = children; + this.text = text; + this.elm = elm; + this.ns = undefined; + this.context = context; + this.fnContext = undefined; + this.fnOptions = undefined; + this.fnScopeId = undefined; + this.key = data && data.key; + this.componentOptions = componentOptions; + this.componentInstance = undefined; + this.parent = undefined; + this.raw = false; + this.isStatic = false; + this.isRootInsert = true; + this.isComment = false; + this.isCloned = false; + this.isOnce = false; + this.asyncFactory = asyncFactory; + this.asyncMeta = undefined; + this.isAsyncPlaceholder = false; + }; + + var prototypeAccessors = { child: { configurable: true } }; + + // DEPRECATED: alias for componentInstance for backwards compat. + /* istanbul ignore next */ + prototypeAccessors.child.get = function () { + return this.componentInstance + }; + + Object.defineProperties( VNode.prototype, prototypeAccessors ); + + var createEmptyVNode = function (text) { + if ( text === void 0 ) text = ''; + + var node = new VNode(); + node.text = text; + node.isComment = true; + return node + }; + + function createTextVNode (val) { + return new VNode(undefined, undefined, undefined, String(val)) + } + + // optimized shallow clone + // used for static nodes and slot nodes because they may be reused across + // multiple renders, cloning them avoids errors when DOM manipulations rely + // on their elm reference. + function cloneVNode (vnode) { + var cloned = new VNode( + vnode.tag, + vnode.data, + // #7975 + // clone children array to avoid mutating original in case of cloning + // a child. + vnode.children && vnode.children.slice(), + vnode.text, + vnode.elm, + vnode.context, + vnode.componentOptions, + vnode.asyncFactory + ); + cloned.ns = vnode.ns; + cloned.isStatic = vnode.isStatic; + cloned.key = vnode.key; + cloned.isComment = vnode.isComment; + cloned.fnContext = vnode.fnContext; + cloned.fnOptions = vnode.fnOptions; + cloned.fnScopeId = vnode.fnScopeId; + cloned.asyncMeta = vnode.asyncMeta; + cloned.isCloned = true; + return cloned + } + + /* + * not type checking this file because flow doesn't play well with + * dynamically accessing methods on Array prototype + */ + + var arrayProto = Array.prototype; + var arrayMethods = Object.create(arrayProto); + + var methodsToPatch = [ + 'push', + 'pop', + 'shift', + 'unshift', + 'splice', + 'sort', + 'reverse' + ]; + + /** + * Intercept mutating methods and emit events + */ + methodsToPatch.forEach(function (method) { + // cache original method + var original = arrayProto[method]; + def(arrayMethods, method, function mutator () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var result = original.apply(this, args); + var ob = this.__ob__; + var inserted; + switch (method) { + case 'push': + case 'unshift': + inserted = args; + break + case 'splice': + inserted = args.slice(2); + break + } + if (inserted) { ob.observeArray(inserted); } + // notify change + ob.dep.notify(); + return result + }); + }); + + /* */ + + var arrayKeys = Object.getOwnPropertyNames(arrayMethods); + + /** + * In some cases we may want to disable observation inside a component's + * update computation. + */ + var shouldObserve = true; + + function toggleObserving (value) { + shouldObserve = value; + } + + /** + * Observer class that is attached to each observed + * object. Once attached, the observer converts the target + * object's property keys into getter/setters that + * collect dependencies and dispatch updates. + */ + var Observer = function Observer (value) { + this.value = value; + this.dep = new Dep(); + this.vmCount = 0; + def(value, '__ob__', this); + if (Array.isArray(value)) { + if (hasProto) { + protoAugment(value, arrayMethods); + } else { + copyAugment(value, arrayMethods, arrayKeys); + } + this.observeArray(value); + } else { + this.walk(value); + } + }; + + /** + * Walk through all properties and convert them into + * getter/setters. This method should only be called when + * value type is Object. + */ + Observer.prototype.walk = function walk (obj) { + var keys = Object.keys(obj); + for (var i = 0; i < keys.length; i++) { + defineReactive$$1(obj, keys[i]); + } + }; + + /** + * Observe a list of Array items. + */ + Observer.prototype.observeArray = function observeArray (items) { + for (var i = 0, l = items.length; i < l; i++) { + observe(items[i]); + } + }; + + // helpers + + /** + * Augment a target Object or Array by intercepting + * the prototype chain using __proto__ + */ + function protoAugment (target, src) { + /* eslint-disable no-proto */ + target.__proto__ = src; + /* eslint-enable no-proto */ + } + + /** + * Augment a target Object or Array by defining + * hidden properties. + */ + /* istanbul ignore next */ + function copyAugment (target, src, keys) { + for (var i = 0, l = keys.length; i < l; i++) { + var key = keys[i]; + def(target, key, src[key]); + } + } + + /** + * Attempt to create an observer instance for a value, + * returns the new observer if successfully observed, + * or the existing observer if the value already has one. + */ + function observe (value, asRootData) { + if (!isObject(value) || value instanceof VNode) { + return + } + var ob; + if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) { + ob = value.__ob__; + } else if ( + shouldObserve && + !isServerRendering() && + (Array.isArray(value) || isPlainObject(value)) && + Object.isExtensible(value) && + !value._isVue + ) { + ob = new Observer(value); + } + if (asRootData && ob) { + ob.vmCount++; + } + return ob + } + + /** + * Define a reactive property on an Object. + */ + function defineReactive$$1 ( + obj, + key, + val, + customSetter, + shallow + ) { + var dep = new Dep(); + + var property = Object.getOwnPropertyDescriptor(obj, key); + if (property && property.configurable === false) { + return + } + + // cater for pre-defined getter/setters + var getter = property && property.get; + var setter = property && property.set; + if ((!getter || setter) && arguments.length === 2) { + val = obj[key]; + } + + var childOb = !shallow && observe(val); + Object.defineProperty(obj, key, { + enumerable: true, + configurable: true, + get: function reactiveGetter () { + var value = getter ? getter.call(obj) : val; + if (Dep.target) { + dep.depend(); + if (childOb) { + childOb.dep.depend(); + if (Array.isArray(value)) { + dependArray(value); + } + } + } + return value + }, + set: function reactiveSetter (newVal) { + var value = getter ? getter.call(obj) : val; + /* eslint-disable no-self-compare */ + if (newVal === value || (newVal !== newVal && value !== value)) { + return + } + /* eslint-enable no-self-compare */ + if (customSetter) { + customSetter(); + } + // #7981: for accessor properties without setter + if (getter && !setter) { return } + if (setter) { + setter.call(obj, newVal); + } else { + val = newVal; + } + childOb = !shallow && observe(newVal); + dep.notify(); + } + }); + } + + /** + * Set a property on an object. Adds the new property and + * triggers change notification if the property doesn't + * already exist. + */ + function set (target, key, val) { + if (isUndef(target) || isPrimitive(target) + ) { + warn(("Cannot set reactive property on undefined, null, or primitive value: " + ((target)))); + } + if (Array.isArray(target) && isValidArrayIndex(key)) { + target.length = Math.max(target.length, key); + target.splice(key, 1, val); + return val + } + if (key in target && !(key in Object.prototype)) { + target[key] = val; + return val + } + var ob = (target).__ob__; + if (target._isVue || (ob && ob.vmCount)) { + warn( + 'Avoid adding reactive properties to a Vue instance or its root $data ' + + 'at runtime - declare it upfront in the data option.' + ); + return val + } + if (!ob) { + target[key] = val; + return val + } + defineReactive$$1(ob.value, key, val); + ob.dep.notify(); + return val + } + + /** + * Delete a property and trigger change if necessary. + */ + function del (target, key) { + if (isUndef(target) || isPrimitive(target) + ) { + warn(("Cannot delete reactive property on undefined, null, or primitive value: " + ((target)))); + } + if (Array.isArray(target) && isValidArrayIndex(key)) { + target.splice(key, 1); + return + } + var ob = (target).__ob__; + if (target._isVue || (ob && ob.vmCount)) { + warn( + 'Avoid deleting properties on a Vue instance or its root $data ' + + '- just set it to null.' + ); + return + } + if (!hasOwn(target, key)) { + return + } + delete target[key]; + if (!ob) { + return + } + ob.dep.notify(); + } + + /** + * Collect dependencies on array elements when the array is touched, since + * we cannot intercept array element access like property getters. + */ + function dependArray (value) { + for (var e = (void 0), i = 0, l = value.length; i < l; i++) { + e = value[i]; + e && e.__ob__ && e.__ob__.dep.depend(); + if (Array.isArray(e)) { + dependArray(e); + } + } + } + + /* */ + + /** + * Option overwriting strategies are functions that handle + * how to merge a parent option value and a child option + * value into the final value. + */ + var strats = config.optionMergeStrategies; + + /** + * Options with restrictions + */ + { + strats.el = strats.propsData = function (parent, child, vm, key) { + if (!vm) { + warn( + "option \"" + key + "\" can only be used during instance " + + 'creation with the `new` keyword.' + ); + } + return defaultStrat(parent, child) + }; + } + + /** + * Helper that recursively merges two data objects together. + */ + function mergeData (to, from) { + if (!from) { return to } + var key, toVal, fromVal; + + var keys = hasSymbol + ? Reflect.ownKeys(from) + : Object.keys(from); + + for (var i = 0; i < keys.length; i++) { + key = keys[i]; + // in case the object is already observed... + if (key === '__ob__') { continue } + toVal = to[key]; + fromVal = from[key]; + if (!hasOwn(to, key)) { + set(to, key, fromVal); + } else if ( + toVal !== fromVal && + isPlainObject(toVal) && + isPlainObject(fromVal) + ) { + mergeData(toVal, fromVal); + } + } + return to + } + + /** + * Data + */ + function mergeDataOrFn ( + parentVal, + childVal, + vm + ) { + if (!vm) { + // in a Vue.extend merge, both should be functions + if (!childVal) { + return parentVal + } + if (!parentVal) { + return childVal + } + // when parentVal & childVal are both present, + // we need to return a function that returns the + // merged result of both functions... no need to + // check if parentVal is a function here because + // it has to be a function to pass previous merges. + return function mergedDataFn () { + return mergeData( + typeof childVal === 'function' ? childVal.call(this, this) : childVal, + typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal + ) + } + } else { + return function mergedInstanceDataFn () { + // instance merge + var instanceData = typeof childVal === 'function' + ? childVal.call(vm, vm) + : childVal; + var defaultData = typeof parentVal === 'function' + ? parentVal.call(vm, vm) + : parentVal; + if (instanceData) { + return mergeData(instanceData, defaultData) + } else { + return defaultData + } + } + } + } + + strats.data = function ( + parentVal, + childVal, + vm + ) { + if (!vm) { + if (childVal && typeof childVal !== 'function') { + warn( + 'The "data" option should be a function ' + + 'that returns a per-instance value in component ' + + 'definitions.', + vm + ); + + return parentVal + } + return mergeDataOrFn(parentVal, childVal) + } + + return mergeDataOrFn(parentVal, childVal, vm) + }; + + /** + * Hooks and props are merged as arrays. + */ + function mergeHook ( + parentVal, + childVal + ) { + var res = childVal + ? parentVal + ? parentVal.concat(childVal) + : Array.isArray(childVal) + ? childVal + : [childVal] + : parentVal; + return res + ? dedupeHooks(res) + : res + } + + function dedupeHooks (hooks) { + var res = []; + for (var i = 0; i < hooks.length; i++) { + if (res.indexOf(hooks[i]) === -1) { + res.push(hooks[i]); + } + } + return res + } + + LIFECYCLE_HOOKS.forEach(function (hook) { + strats[hook] = mergeHook; + }); + + /** + * Assets + * + * When a vm is present (instance creation), we need to do + * a three-way merge between constructor options, instance + * options and parent options. + */ + function mergeAssets ( + parentVal, + childVal, + vm, + key + ) { + var res = Object.create(parentVal || null); + if (childVal) { + assertObjectType(key, childVal, vm); + return extend(res, childVal) + } else { + return res + } + } + + ASSET_TYPES.forEach(function (type) { + strats[type + 's'] = mergeAssets; + }); + + /** + * Watchers. + * + * Watchers hashes should not overwrite one + * another, so we merge them as arrays. + */ + strats.watch = function ( + parentVal, + childVal, + vm, + key + ) { + // work around Firefox's Object.prototype.watch... + if (parentVal === nativeWatch) { parentVal = undefined; } + if (childVal === nativeWatch) { childVal = undefined; } + /* istanbul ignore if */ + if (!childVal) { return Object.create(parentVal || null) } + { + assertObjectType(key, childVal, vm); + } + if (!parentVal) { return childVal } + var ret = {}; + extend(ret, parentVal); + for (var key$1 in childVal) { + var parent = ret[key$1]; + var child = childVal[key$1]; + if (parent && !Array.isArray(parent)) { + parent = [parent]; + } + ret[key$1] = parent + ? parent.concat(child) + : Array.isArray(child) ? child : [child]; + } + return ret + }; + + /** + * Other object hashes. + */ + strats.props = + strats.methods = + strats.inject = + strats.computed = function ( + parentVal, + childVal, + vm, + key + ) { + if (childVal && "development" !== 'production') { + assertObjectType(key, childVal, vm); + } + if (!parentVal) { return childVal } + var ret = Object.create(null); + extend(ret, parentVal); + if (childVal) { extend(ret, childVal); } + return ret + }; + strats.provide = mergeDataOrFn; + + /** + * Default strategy. + */ + var defaultStrat = function (parentVal, childVal) { + return childVal === undefined + ? parentVal + : childVal + }; + + /** + * Validate component names + */ + function checkComponents (options) { + for (var key in options.components) { + validateComponentName(key); + } + } + + function validateComponentName (name) { + if (!new RegExp(("^[a-zA-Z][\\-\\.0-9_" + (unicodeRegExp.source) + "]*$")).test(name)) { + warn( + 'Invalid component name: "' + name + '". Component names ' + + 'should conform to valid custom element name in html5 specification.' + ); + } + if (isBuiltInTag(name) || config.isReservedTag(name)) { + warn( + 'Do not use built-in or reserved HTML elements as component ' + + 'id: ' + name + ); + } + } + + /** + * Ensure all props option syntax are normalized into the + * Object-based format. + */ + function normalizeProps (options, vm) { + var props = options.props; + if (!props) { return } + var res = {}; + var i, val, name; + if (Array.isArray(props)) { + i = props.length; + while (i--) { + val = props[i]; + if (typeof val === 'string') { + name = camelize(val); + res[name] = { type: null }; + } else { + warn('props must be strings when using array syntax.'); + } + } + } else if (isPlainObject(props)) { + for (var key in props) { + val = props[key]; + name = camelize(key); + res[name] = isPlainObject(val) + ? val + : { type: val }; + } + } else { + warn( + "Invalid value for option \"props\": expected an Array or an Object, " + + "but got " + (toRawType(props)) + ".", + vm + ); + } + options.props = res; + } + + /** + * Normalize all injections into Object-based format + */ + function normalizeInject (options, vm) { + var inject = options.inject; + if (!inject) { return } + var normalized = options.inject = {}; + if (Array.isArray(inject)) { + for (var i = 0; i < inject.length; i++) { + normalized[inject[i]] = { from: inject[i] }; + } + } else if (isPlainObject(inject)) { + for (var key in inject) { + var val = inject[key]; + normalized[key] = isPlainObject(val) + ? extend({ from: key }, val) + : { from: val }; + } + } else { + warn( + "Invalid value for option \"inject\": expected an Array or an Object, " + + "but got " + (toRawType(inject)) + ".", + vm + ); + } + } + + /** + * Normalize raw function directives into object format. + */ + function normalizeDirectives (options) { + var dirs = options.directives; + if (dirs) { + for (var key in dirs) { + var def$$1 = dirs[key]; + if (typeof def$$1 === 'function') { + dirs[key] = { bind: def$$1, update: def$$1 }; + } + } + } + } + + function assertObjectType (name, value, vm) { + if (!isPlainObject(value)) { + warn( + "Invalid value for option \"" + name + "\": expected an Object, " + + "but got " + (toRawType(value)) + ".", + vm + ); + } + } + + /** + * Merge two option objects into a new one. + * Core utility used in both instantiation and inheritance. + */ + function mergeOptions ( + parent, + child, + vm + ) { + { + checkComponents(child); + } + + if (typeof child === 'function') { + child = child.options; + } + + normalizeProps(child, vm); + normalizeInject(child, vm); + normalizeDirectives(child); + + // Apply extends and mixins on the child options, + // but only if it is a raw options object that isn't + // the result of another mergeOptions call. + // Only merged options has the _base property. + if (!child._base) { + if (child.extends) { + parent = mergeOptions(parent, child.extends, vm); + } + if (child.mixins) { + for (var i = 0, l = child.mixins.length; i < l; i++) { + parent = mergeOptions(parent, child.mixins[i], vm); + } + } + } + + var options = {}; + var key; + for (key in parent) { + mergeField(key); + } + for (key in child) { + if (!hasOwn(parent, key)) { + mergeField(key); + } + } + function mergeField (key) { + var strat = strats[key] || defaultStrat; + options[key] = strat(parent[key], child[key], vm, key); + } + return options + } + + /** + * Resolve an asset. + * This function is used because child instances need access + * to assets defined in its ancestor chain. + */ + function resolveAsset ( + options, + type, + id, + warnMissing + ) { + /* istanbul ignore if */ + if (typeof id !== 'string') { + return + } + var assets = options[type]; + // check local registration variations first + if (hasOwn(assets, id)) { return assets[id] } + var camelizedId = camelize(id); + if (hasOwn(assets, camelizedId)) { return assets[camelizedId] } + var PascalCaseId = capitalize(camelizedId); + if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] } + // fallback to prototype chain + var res = assets[id] || assets[camelizedId] || assets[PascalCaseId]; + if (warnMissing && !res) { + warn( + 'Failed to resolve ' + type.slice(0, -1) + ': ' + id, + options + ); + } + return res + } + + /* */ + + + + function validateProp ( + key, + propOptions, + propsData, + vm + ) { + var prop = propOptions[key]; + var absent = !hasOwn(propsData, key); + var value = propsData[key]; + // boolean casting + var booleanIndex = getTypeIndex(Boolean, prop.type); + if (booleanIndex > -1) { + if (absent && !hasOwn(prop, 'default')) { + value = false; + } else if (value === '' || value === hyphenate(key)) { + // only cast empty string / same name to boolean if + // boolean has higher priority + var stringIndex = getTypeIndex(String, prop.type); + if (stringIndex < 0 || booleanIndex < stringIndex) { + value = true; + } + } + } + // check default value + if (value === undefined) { + value = getPropDefaultValue(vm, prop, key); + // since the default value is a fresh copy, + // make sure to observe it. + var prevShouldObserve = shouldObserve; + toggleObserving(true); + observe(value); + toggleObserving(prevShouldObserve); + } + { + assertProp(prop, key, value, vm, absent); + } + return value + } + + /** + * Get the default value of a prop. + */ + function getPropDefaultValue (vm, prop, key) { + // no default, return undefined + if (!hasOwn(prop, 'default')) { + return undefined + } + var def = prop.default; + // warn against non-factory defaults for Object & Array + if (isObject(def)) { + warn( + 'Invalid default value for prop "' + key + '": ' + + 'Props with type Object/Array must use a factory function ' + + 'to return the default value.', + vm + ); + } + // the raw prop value was also undefined from previous render, + // return previous default value to avoid unnecessary watcher trigger + if (vm && vm.$options.propsData && + vm.$options.propsData[key] === undefined && + vm._props[key] !== undefined + ) { + return vm._props[key] + } + // call factory function for non-Function types + // a value is Function if its prototype is function even across different execution context + return typeof def === 'function' && getType(prop.type) !== 'Function' + ? def.call(vm) + : def + } + + /** + * Assert whether a prop is valid. + */ + function assertProp ( + prop, + name, + value, + vm, + absent + ) { + if (prop.required && absent) { + warn( + 'Missing required prop: "' + name + '"', + vm + ); + return + } + if (value == null && !prop.required) { + return + } + var type = prop.type; + var valid = !type || type === true; + var expectedTypes = []; + if (type) { + if (!Array.isArray(type)) { + type = [type]; + } + for (var i = 0; i < type.length && !valid; i++) { + var assertedType = assertType(value, type[i]); + expectedTypes.push(assertedType.expectedType || ''); + valid = assertedType.valid; + } + } + + if (!valid) { + warn( + getInvalidTypeMessage(name, value, expectedTypes), + vm + ); + return + } + var validator = prop.validator; + if (validator) { + if (!validator(value)) { + warn( + 'Invalid prop: custom validator check failed for prop "' + name + '".', + vm + ); + } + } + } + + var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/; + + function assertType (value, type) { + var valid; + var expectedType = getType(type); + if (simpleCheckRE.test(expectedType)) { + var t = typeof value; + valid = t === expectedType.toLowerCase(); + // for primitive wrapper objects + if (!valid && t === 'object') { + valid = value instanceof type; + } + } else if (expectedType === 'Object') { + valid = isPlainObject(value); + } else if (expectedType === 'Array') { + valid = Array.isArray(value); + } else { + valid = value instanceof type; + } + return { + valid: valid, + expectedType: expectedType + } + } + + /** + * Use function string name to check built-in types, + * because a simple equality check will fail when running + * across different vms / iframes. + */ + function getType (fn) { + var match = fn && fn.toString().match(/^\s*function (\w+)/); + return match ? match[1] : '' + } + + function isSameType (a, b) { + return getType(a) === getType(b) + } + + function getTypeIndex (type, expectedTypes) { + if (!Array.isArray(expectedTypes)) { + return isSameType(expectedTypes, type) ? 0 : -1 + } + for (var i = 0, len = expectedTypes.length; i < len; i++) { + if (isSameType(expectedTypes[i], type)) { + return i + } + } + return -1 + } + + function getInvalidTypeMessage (name, value, expectedTypes) { + var message = "Invalid prop: type check failed for prop \"" + name + "\"." + + " Expected " + (expectedTypes.map(capitalize).join(', ')); + var expectedType = expectedTypes[0]; + var receivedType = toRawType(value); + var expectedValue = styleValue(value, expectedType); + var receivedValue = styleValue(value, receivedType); + // check if we need to specify expected value + if (expectedTypes.length === 1 && + isExplicable(expectedType) && + !isBoolean(expectedType, receivedType)) { + message += " with value " + expectedValue; + } + message += ", got " + receivedType + " "; + // check if we need to specify received value + if (isExplicable(receivedType)) { + message += "with value " + receivedValue + "."; + } + return message + } + + function styleValue (value, type) { + if (type === 'String') { + return ("\"" + value + "\"") + } else if (type === 'Number') { + return ("" + (Number(value))) + } else { + return ("" + value) + } + } + + function isExplicable (value) { + var explicitTypes = ['string', 'number', 'boolean']; + return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; }) + } + + function isBoolean () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; }) + } + + /* */ + + function handleError (err, vm, info) { + // Deactivate deps tracking while processing error handler to avoid possible infinite rendering. + // See: https://github.com/vuejs/vuex/issues/1505 + pushTarget(); + try { + if (vm) { + var cur = vm; + while ((cur = cur.$parent)) { + var hooks = cur.$options.errorCaptured; + if (hooks) { + for (var i = 0; i < hooks.length; i++) { + try { + var capture = hooks[i].call(cur, err, vm, info) === false; + if (capture) { return } + } catch (e) { + globalHandleError(e, cur, 'errorCaptured hook'); + } + } + } + } + } + globalHandleError(err, vm, info); + } finally { + popTarget(); + } + } + + function invokeWithErrorHandling ( + handler, + context, + args, + vm, + info + ) { + var res; + try { + res = args ? handler.apply(context, args) : handler.call(context); + if (res && !res._isVue && isPromise(res) && !res._handled) { + res.catch(function (e) { return handleError(e, vm, info + " (Promise/async)"); }); + // issue #9511 + // avoid catch triggering multiple times when nested calls + res._handled = true; + } + } catch (e) { + handleError(e, vm, info); + } + return res + } + + function globalHandleError (err, vm, info) { + if (config.errorHandler) { + try { + return config.errorHandler.call(null, err, vm, info) + } catch (e) { + // if the user intentionally throws the original error in the handler, + // do not log it twice + if (e !== err) { + logError(e, null, 'config.errorHandler'); + } + } + } + logError(err, vm, info); + } + + function logError (err, vm, info) { + { + warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm); + } + /* istanbul ignore else */ + if ((inBrowser || inWeex) && typeof console !== 'undefined') { + console.error(err); + } else { + throw err + } + } + + /* */ + + var isUsingMicroTask = false; + + var callbacks = []; + var pending = false; + + function flushCallbacks () { + pending = false; + var copies = callbacks.slice(0); + callbacks.length = 0; + for (var i = 0; i < copies.length; i++) { + copies[i](); + } + } + + // Here we have async deferring wrappers using microtasks. + // In 2.5 we used (macro) tasks (in combination with microtasks). + // However, it has subtle problems when state is changed right before repaint + // (e.g. #6813, out-in transitions). + // Also, using (macro) tasks in event handler would cause some weird behaviors + // that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109). + // So we now use microtasks everywhere, again. + // A major drawback of this tradeoff is that there are some scenarios + // where microtasks have too high a priority and fire in between supposedly + // sequential events (e.g. #4521, #6690, which have workarounds) + // or even between bubbling of the same event (#6566). + var timerFunc; + + // The nextTick behavior leverages the microtask queue, which can be accessed + // via either native Promise.then or MutationObserver. + // MutationObserver has wider support, however it is seriously bugged in + // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It + // completely stops working after triggering a few times... so, if native + // Promise is available, we will use it: + /* istanbul ignore next, $flow-disable-line */ + if (typeof Promise !== 'undefined' && isNative(Promise)) { + var p = Promise.resolve(); + timerFunc = function () { + p.then(flushCallbacks); + // In problematic UIWebViews, Promise.then doesn't completely break, but + // it can get stuck in a weird state where callbacks are pushed into the + // microtask queue but the queue isn't being flushed, until the browser + // needs to do some other work, e.g. handle a timer. Therefore we can + // "force" the microtask queue to be flushed by adding an empty timer. + if (isIOS) { setTimeout(noop); } + }; + isUsingMicroTask = true; + } else if (!isIE && typeof MutationObserver !== 'undefined' && ( + isNative(MutationObserver) || + // PhantomJS and iOS 7.x + MutationObserver.toString() === '[object MutationObserverConstructor]' + )) { + // Use MutationObserver where native Promise is not available, + // e.g. PhantomJS, iOS7, Android 4.4 + // (#6466 MutationObserver is unreliable in IE11) + var counter = 1; + var observer = new MutationObserver(flushCallbacks); + var textNode = document.createTextNode(String(counter)); + observer.observe(textNode, { + characterData: true + }); + timerFunc = function () { + counter = (counter + 1) % 2; + textNode.data = String(counter); + }; + isUsingMicroTask = true; + } else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) { + // Fallback to setImmediate. + // Technically it leverages the (macro) task queue, + // but it is still a better choice than setTimeout. + timerFunc = function () { + setImmediate(flushCallbacks); + }; + } else { + // Fallback to setTimeout. + timerFunc = function () { + setTimeout(flushCallbacks, 0); + }; + } + + function nextTick (cb, ctx) { + var _resolve; + callbacks.push(function () { + if (cb) { + try { + cb.call(ctx); + } catch (e) { + handleError(e, ctx, 'nextTick'); + } + } else if (_resolve) { + _resolve(ctx); + } + }); + if (!pending) { + pending = true; + timerFunc(); + } + // $flow-disable-line + if (!cb && typeof Promise !== 'undefined') { + return new Promise(function (resolve) { + _resolve = resolve; + }) + } + } + + /* */ + + var mark; + var measure; + + { + var perf = inBrowser && window.performance; + /* istanbul ignore if */ + if ( + perf && + perf.mark && + perf.measure && + perf.clearMarks && + perf.clearMeasures + ) { + mark = function (tag) { return perf.mark(tag); }; + measure = function (name, startTag, endTag) { + perf.measure(name, startTag, endTag); + perf.clearMarks(startTag); + perf.clearMarks(endTag); + // perf.clearMeasures(name) + }; + } + } + + /* not type checking this file because flow doesn't play well with Proxy */ + + var initProxy; + + { + var allowedGlobals = makeMap( + 'Infinity,undefined,NaN,isFinite,isNaN,' + + 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' + + 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' + + 'require' // for Webpack/Browserify + ); + + var warnNonPresent = function (target, key) { + warn( + "Property or method \"" + key + "\" is not defined on the instance but " + + 'referenced during render. Make sure that this property is reactive, ' + + 'either in the data option, or for class-based components, by ' + + 'initializing the property. ' + + 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', + target + ); + }; + + var warnReservedPrefix = function (target, key) { + warn( + "Property \"" + key + "\" must be accessed with \"$data." + key + "\" because " + + 'properties starting with "$" or "_" are not proxied in the Vue instance to ' + + 'prevent conflicts with Vue internals. ' + + 'See: https://vuejs.org/v2/api/#data', + target + ); + }; + + var hasProxy = + typeof Proxy !== 'undefined' && isNative(Proxy); + + if (hasProxy) { + var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact'); + config.keyCodes = new Proxy(config.keyCodes, { + set: function set (target, key, value) { + if (isBuiltInModifier(key)) { + warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key)); + return false + } else { + target[key] = value; + return true + } + } + }); + } + + var hasHandler = { + has: function has (target, key) { + var has = key in target; + var isAllowed = allowedGlobals(key) || + (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data)); + if (!has && !isAllowed) { + if (key in target.$data) { warnReservedPrefix(target, key); } + else { warnNonPresent(target, key); } + } + return has || !isAllowed + } + }; + + var getHandler = { + get: function get (target, key) { + if (typeof key === 'string' && !(key in target)) { + if (key in target.$data) { warnReservedPrefix(target, key); } + else { warnNonPresent(target, key); } + } + return target[key] + } + }; + + initProxy = function initProxy (vm) { + if (hasProxy) { + // determine which proxy handler to use + var options = vm.$options; + var handlers = options.render && options.render._withStripped + ? getHandler + : hasHandler; + vm._renderProxy = new Proxy(vm, handlers); + } else { + vm._renderProxy = vm; + } + }; + } + + /* */ + + var seenObjects = new _Set(); + + /** + * Recursively traverse an object to evoke all converted + * getters, so that every nested property inside the object + * is collected as a "deep" dependency. + */ + function traverse (val) { + _traverse(val, seenObjects); + seenObjects.clear(); + } + + function _traverse (val, seen) { + var i, keys; + var isA = Array.isArray(val); + if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) { + return + } + if (val.__ob__) { + var depId = val.__ob__.dep.id; + if (seen.has(depId)) { + return + } + seen.add(depId); + } + if (isA) { + i = val.length; + while (i--) { _traverse(val[i], seen); } + } else { + keys = Object.keys(val); + i = keys.length; + while (i--) { _traverse(val[keys[i]], seen); } + } + } + + /* */ + + var normalizeEvent = cached(function (name) { + var passive = name.charAt(0) === '&'; + name = passive ? name.slice(1) : name; + var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first + name = once$$1 ? name.slice(1) : name; + var capture = name.charAt(0) === '!'; + name = capture ? name.slice(1) : name; + return { + name: name, + once: once$$1, + capture: capture, + passive: passive + } + }); + + function createFnInvoker (fns, vm) { + function invoker () { + var arguments$1 = arguments; + + var fns = invoker.fns; + if (Array.isArray(fns)) { + var cloned = fns.slice(); + for (var i = 0; i < cloned.length; i++) { + invokeWithErrorHandling(cloned[i], null, arguments$1, vm, "v-on handler"); + } + } else { + // return handler return value for single handlers + return invokeWithErrorHandling(fns, null, arguments, vm, "v-on handler") + } + } + invoker.fns = fns; + return invoker + } + + function updateListeners ( + on, + oldOn, + add, + remove$$1, + createOnceHandler, + vm + ) { + var name, def$$1, cur, old, event; + for (name in on) { + def$$1 = cur = on[name]; + old = oldOn[name]; + event = normalizeEvent(name); + if (isUndef(cur)) { + warn( + "Invalid handler for event \"" + (event.name) + "\": got " + String(cur), + vm + ); + } else if (isUndef(old)) { + if (isUndef(cur.fns)) { + cur = on[name] = createFnInvoker(cur, vm); + } + if (isTrue(event.once)) { + cur = on[name] = createOnceHandler(event.name, cur, event.capture); + } + add(event.name, cur, event.capture, event.passive, event.params); + } else if (cur !== old) { + old.fns = cur; + on[name] = old; + } + } + for (name in oldOn) { + if (isUndef(on[name])) { + event = normalizeEvent(name); + remove$$1(event.name, oldOn[name], event.capture); + } + } + } + + /* */ + + function mergeVNodeHook (def, hookKey, hook) { + if (def instanceof VNode) { + def = def.data.hook || (def.data.hook = {}); + } + var invoker; + var oldHook = def[hookKey]; + + function wrappedHook () { + hook.apply(this, arguments); + // important: remove merged hook to ensure it's called only once + // and prevent memory leak + remove(invoker.fns, wrappedHook); + } + + if (isUndef(oldHook)) { + // no existing hook + invoker = createFnInvoker([wrappedHook]); + } else { + /* istanbul ignore if */ + if (isDef(oldHook.fns) && isTrue(oldHook.merged)) { + // already a merged invoker + invoker = oldHook; + invoker.fns.push(wrappedHook); + } else { + // existing plain hook + invoker = createFnInvoker([oldHook, wrappedHook]); + } + } + + invoker.merged = true; + def[hookKey] = invoker; + } + + /* */ + + function extractPropsFromVNodeData ( + data, + Ctor, + tag + ) { + // we are only extracting raw values here. + // validation and default values are handled in the child + // component itself. + var propOptions = Ctor.options.props; + if (isUndef(propOptions)) { + return + } + var res = {}; + var attrs = data.attrs; + var props = data.props; + if (isDef(attrs) || isDef(props)) { + for (var key in propOptions) { + var altKey = hyphenate(key); + { + var keyInLowerCase = key.toLowerCase(); + if ( + key !== keyInLowerCase && + attrs && hasOwn(attrs, keyInLowerCase) + ) { + tip( + "Prop \"" + keyInLowerCase + "\" is passed to component " + + (formatComponentName(tag || Ctor)) + ", but the declared prop name is" + + " \"" + key + "\". " + + "Note that HTML attributes are case-insensitive and camelCased " + + "props need to use their kebab-case equivalents when using in-DOM " + + "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"." + ); + } + } + checkProp(res, props, key, altKey, true) || + checkProp(res, attrs, key, altKey, false); + } + } + return res + } + + function checkProp ( + res, + hash, + key, + altKey, + preserve + ) { + if (isDef(hash)) { + if (hasOwn(hash, key)) { + res[key] = hash[key]; + if (!preserve) { + delete hash[key]; + } + return true + } else if (hasOwn(hash, altKey)) { + res[key] = hash[altKey]; + if (!preserve) { + delete hash[altKey]; + } + return true + } + } + return false + } + + /* */ + + // The template compiler attempts to minimize the need for normalization by + // statically analyzing the template at compile time. + // + // For plain HTML markup, normalization can be completely skipped because the + // generated render function is guaranteed to return Array<VNode>. There are + // two cases where extra normalization is needed: + + // 1. When the children contains components - because a functional component + // may return an Array instead of a single root. In this case, just a simple + // normalization is needed - if any child is an Array, we flatten the whole + // thing with Array.prototype.concat. It is guaranteed to be only 1-level deep + // because functional components already normalize their own children. + function simpleNormalizeChildren (children) { + for (var i = 0; i < children.length; i++) { + if (Array.isArray(children[i])) { + return Array.prototype.concat.apply([], children) + } + } + return children + } + + // 2. When the children contains constructs that always generated nested Arrays, + // e.g. <template>, <slot>, v-for, or when the children is provided by user + // with hand-written render functions / JSX. In such cases a full normalization + // is needed to cater to all possible types of children values. + function normalizeChildren (children) { + return isPrimitive(children) + ? [createTextVNode(children)] + : Array.isArray(children) + ? normalizeArrayChildren(children) + : undefined + } + + function isTextNode (node) { + return isDef(node) && isDef(node.text) && isFalse(node.isComment) + } + + function normalizeArrayChildren (children, nestedIndex) { + var res = []; + var i, c, lastIndex, last; + for (i = 0; i < children.length; i++) { + c = children[i]; + if (isUndef(c) || typeof c === 'boolean') { continue } + lastIndex = res.length - 1; + last = res[lastIndex]; + // nested + if (Array.isArray(c)) { + if (c.length > 0) { + c = normalizeArrayChildren(c, ((nestedIndex || '') + "_" + i)); + // merge adjacent text nodes + if (isTextNode(c[0]) && isTextNode(last)) { + res[lastIndex] = createTextVNode(last.text + (c[0]).text); + c.shift(); + } + res.push.apply(res, c); + } + } else if (isPrimitive(c)) { + if (isTextNode(last)) { + // merge adjacent text nodes + // this is necessary for SSR hydration because text nodes are + // essentially merged when rendered to HTML strings + res[lastIndex] = createTextVNode(last.text + c); + } else if (c !== '') { + // convert primitive to vnode + res.push(createTextVNode(c)); + } + } else { + if (isTextNode(c) && isTextNode(last)) { + // merge adjacent text nodes + res[lastIndex] = createTextVNode(last.text + c.text); + } else { + // default key for nested array children (likely generated by v-for) + if (isTrue(children._isVList) && + isDef(c.tag) && + isUndef(c.key) && + isDef(nestedIndex)) { + c.key = "__vlist" + nestedIndex + "_" + i + "__"; + } + res.push(c); + } + } + } + return res + } + + /* */ + + function initProvide (vm) { + var provide = vm.$options.provide; + if (provide) { + vm._provided = typeof provide === 'function' + ? provide.call(vm) + : provide; + } + } + + function initInjections (vm) { + var result = resolveInject(vm.$options.inject, vm); + if (result) { + toggleObserving(false); + Object.keys(result).forEach(function (key) { + /* istanbul ignore else */ + { + defineReactive$$1(vm, key, result[key], function () { + warn( + "Avoid mutating an injected value directly since the changes will be " + + "overwritten whenever the provided component re-renders. " + + "injection being mutated: \"" + key + "\"", + vm + ); + }); + } + }); + toggleObserving(true); + } + } + + function resolveInject (inject, vm) { + if (inject) { + // inject is :any because flow is not smart enough to figure out cached + var result = Object.create(null); + var keys = hasSymbol + ? Reflect.ownKeys(inject) + : Object.keys(inject); + + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + // #6574 in case the inject object is observed... + if (key === '__ob__') { continue } + var provideKey = inject[key].from; + var source = vm; + while (source) { + if (source._provided && hasOwn(source._provided, provideKey)) { + result[key] = source._provided[provideKey]; + break + } + source = source.$parent; + } + if (!source) { + if ('default' in inject[key]) { + var provideDefault = inject[key].default; + result[key] = typeof provideDefault === 'function' + ? provideDefault.call(vm) + : provideDefault; + } else { + warn(("Injection \"" + key + "\" not found"), vm); + } + } + } + return result + } + } + + /* */ + + + + /** + * Runtime helper for resolving raw children VNodes into a slot object. + */ + function resolveSlots ( + children, + context + ) { + if (!children || !children.length) { + return {} + } + var slots = {}; + for (var i = 0, l = children.length; i < l; i++) { + var child = children[i]; + var data = child.data; + // remove slot attribute if the node is resolved as a Vue slot node + if (data && data.attrs && data.attrs.slot) { + delete data.attrs.slot; + } + // named slots should only be respected if the vnode was rendered in the + // same context. + if ((child.context === context || child.fnContext === context) && + data && data.slot != null + ) { + var name = data.slot; + var slot = (slots[name] || (slots[name] = [])); + if (child.tag === 'template') { + slot.push.apply(slot, child.children || []); + } else { + slot.push(child); + } + } else { + (slots.default || (slots.default = [])).push(child); + } + } + // ignore slots that contains only whitespace + for (var name$1 in slots) { + if (slots[name$1].every(isWhitespace)) { + delete slots[name$1]; + } + } + return slots + } + + function isWhitespace (node) { + return (node.isComment && !node.asyncFactory) || node.text === ' ' + } + + /* */ + + function normalizeScopedSlots ( + slots, + normalSlots, + prevSlots + ) { + var res; + var hasNormalSlots = Object.keys(normalSlots).length > 0; + var isStable = slots ? !!slots.$stable : !hasNormalSlots; + var key = slots && slots.$key; + if (!slots) { + res = {}; + } else if (slots._normalized) { + // fast path 1: child component re-render only, parent did not change + return slots._normalized + } else if ( + isStable && + prevSlots && + prevSlots !== emptyObject && + key === prevSlots.$key && + !hasNormalSlots && + !prevSlots.$hasNormal + ) { + // fast path 2: stable scoped slots w/ no normal slots to proxy, + // only need to normalize once + return prevSlots + } else { + res = {}; + for (var key$1 in slots) { + if (slots[key$1] && key$1[0] !== '$') { + res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]); + } + } + } + // expose normal slots on scopedSlots + for (var key$2 in normalSlots) { + if (!(key$2 in res)) { + res[key$2] = proxyNormalSlot(normalSlots, key$2); + } + } + // avoriaz seems to mock a non-extensible $scopedSlots object + // and when that is passed down this would cause an error + if (slots && Object.isExtensible(slots)) { + (slots)._normalized = res; + } + def(res, '$stable', isStable); + def(res, '$key', key); + def(res, '$hasNormal', hasNormalSlots); + return res + } + + function normalizeScopedSlot(normalSlots, key, fn) { + var normalized = function () { + var res = arguments.length ? fn.apply(null, arguments) : fn({}); + res = res && typeof res === 'object' && !Array.isArray(res) + ? [res] // single vnode + : normalizeChildren(res); + return res && ( + res.length === 0 || + (res.length === 1 && res[0].isComment) // #9658 + ) ? undefined + : res + }; + // this is a slot using the new v-slot syntax without scope. although it is + // compiled as a scoped slot, render fn users would expect it to be present + // on this.$slots because the usage is semantically a normal slot. + if (fn.proxy) { + Object.defineProperty(normalSlots, key, { + get: normalized, + enumerable: true, + configurable: true + }); + } + return normalized + } + + function proxyNormalSlot(slots, key) { + return function () { return slots[key]; } + } + + /* */ + + /** + * Runtime helper for rendering v-for lists. + */ + function renderList ( + val, + render + ) { + var ret, i, l, keys, key; + if (Array.isArray(val) || typeof val === 'string') { + ret = new Array(val.length); + for (i = 0, l = val.length; i < l; i++) { + ret[i] = render(val[i], i); + } + } else if (typeof val === 'number') { + ret = new Array(val); + for (i = 0; i < val; i++) { + ret[i] = render(i + 1, i); + } + } else if (isObject(val)) { + if (hasSymbol && val[Symbol.iterator]) { + ret = []; + var iterator = val[Symbol.iterator](); + var result = iterator.next(); + while (!result.done) { + ret.push(render(result.value, ret.length)); + result = iterator.next(); + } + } else { + keys = Object.keys(val); + ret = new Array(keys.length); + for (i = 0, l = keys.length; i < l; i++) { + key = keys[i]; + ret[i] = render(val[key], key, i); + } + } + } + if (!isDef(ret)) { + ret = []; + } + (ret)._isVList = true; + return ret + } + + /* */ + + /** + * Runtime helper for rendering <slot> + */ + function renderSlot ( + name, + fallback, + props, + bindObject + ) { + var scopedSlotFn = this.$scopedSlots[name]; + var nodes; + if (scopedSlotFn) { // scoped slot + props = props || {}; + if (bindObject) { + if (!isObject(bindObject)) { + warn( + 'slot v-bind without argument expects an Object', + this + ); + } + props = extend(extend({}, bindObject), props); + } + nodes = scopedSlotFn(props) || fallback; + } else { + nodes = this.$slots[name] || fallback; + } + + var target = props && props.slot; + if (target) { + return this.$createElement('template', { slot: target }, nodes) + } else { + return nodes + } + } + + /* */ + + /** + * Runtime helper for resolving filters + */ + function resolveFilter (id) { + return resolveAsset(this.$options, 'filters', id, true) || identity + } + + /* */ + + function isKeyNotMatch (expect, actual) { + if (Array.isArray(expect)) { + return expect.indexOf(actual) === -1 + } else { + return expect !== actual + } + } + + /** + * Runtime helper for checking keyCodes from config. + * exposed as Vue.prototype._k + * passing in eventKeyName as last argument separately for backwards compat + */ + function checkKeyCodes ( + eventKeyCode, + key, + builtInKeyCode, + eventKeyName, + builtInKeyName + ) { + var mappedKeyCode = config.keyCodes[key] || builtInKeyCode; + if (builtInKeyName && eventKeyName && !config.keyCodes[key]) { + return isKeyNotMatch(builtInKeyName, eventKeyName) + } else if (mappedKeyCode) { + return isKeyNotMatch(mappedKeyCode, eventKeyCode) + } else if (eventKeyName) { + return hyphenate(eventKeyName) !== key + } + } + + /* */ + + /** + * Runtime helper for merging v-bind="object" into a VNode's data. + */ + function bindObjectProps ( + data, + tag, + value, + asProp, + isSync + ) { + if (value) { + if (!isObject(value)) { + warn( + 'v-bind without argument expects an Object or Array value', + this + ); + } else { + if (Array.isArray(value)) { + value = toObject(value); + } + var hash; + var loop = function ( key ) { + if ( + key === 'class' || + key === 'style' || + isReservedAttribute(key) + ) { + hash = data; + } else { + var type = data.attrs && data.attrs.type; + hash = asProp || config.mustUseProp(tag, type, key) + ? data.domProps || (data.domProps = {}) + : data.attrs || (data.attrs = {}); + } + var camelizedKey = camelize(key); + var hyphenatedKey = hyphenate(key); + if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) { + hash[key] = value[key]; + + if (isSync) { + var on = data.on || (data.on = {}); + on[("update:" + key)] = function ($event) { + value[key] = $event; + }; + } + } + }; + + for (var key in value) loop( key ); + } + } + return data + } + + /* */ + + /** + * Runtime helper for rendering static trees. + */ + function renderStatic ( + index, + isInFor + ) { + var cached = this._staticTrees || (this._staticTrees = []); + var tree = cached[index]; + // if has already-rendered static tree and not inside v-for, + // we can reuse the same tree. + if (tree && !isInFor) { + return tree + } + // otherwise, render a fresh tree. + tree = cached[index] = this.$options.staticRenderFns[index].call( + this._renderProxy, + null, + this // for render fns generated for functional component templates + ); + markStatic(tree, ("__static__" + index), false); + return tree + } + + /** + * Runtime helper for v-once. + * Effectively it means marking the node as static with a unique key. + */ + function markOnce ( + tree, + index, + key + ) { + markStatic(tree, ("__once__" + index + (key ? ("_" + key) : "")), true); + return tree + } + + function markStatic ( + tree, + key, + isOnce + ) { + if (Array.isArray(tree)) { + for (var i = 0; i < tree.length; i++) { + if (tree[i] && typeof tree[i] !== 'string') { + markStaticNode(tree[i], (key + "_" + i), isOnce); + } + } + } else { + markStaticNode(tree, key, isOnce); + } + } + + function markStaticNode (node, key, isOnce) { + node.isStatic = true; + node.key = key; + node.isOnce = isOnce; + } + + /* */ + + function bindObjectListeners (data, value) { + if (value) { + if (!isPlainObject(value)) { + warn( + 'v-on without argument expects an Object value', + this + ); + } else { + var on = data.on = data.on ? extend({}, data.on) : {}; + for (var key in value) { + var existing = on[key]; + var ours = value[key]; + on[key] = existing ? [].concat(existing, ours) : ours; + } + } + } + return data + } + + /* */ + + function resolveScopedSlots ( + fns, // see flow/vnode + res, + // the following are added in 2.6 + hasDynamicKeys, + contentHashKey + ) { + res = res || { $stable: !hasDynamicKeys }; + for (var i = 0; i < fns.length; i++) { + var slot = fns[i]; + if (Array.isArray(slot)) { + resolveScopedSlots(slot, res, hasDynamicKeys); + } else if (slot) { + // marker for reverse proxying v-slot without scope on this.$slots + if (slot.proxy) { + slot.fn.proxy = true; + } + res[slot.key] = slot.fn; + } + } + if (contentHashKey) { + (res).$key = contentHashKey; + } + return res + } + + /* */ + + function bindDynamicKeys (baseObj, values) { + for (var i = 0; i < values.length; i += 2) { + var key = values[i]; + if (typeof key === 'string' && key) { + baseObj[values[i]] = values[i + 1]; + } else if (key !== '' && key !== null) { + // null is a special value for explicitly removing a binding + warn( + ("Invalid value for dynamic directive argument (expected string or null): " + key), + this + ); + } + } + return baseObj + } + + // helper to dynamically append modifier runtime markers to event names. + // ensure only append when value is already string, otherwise it will be cast + // to string and cause the type check to miss. + function prependModifier (value, symbol) { + return typeof value === 'string' ? symbol + value : value + } + + /* */ + + function installRenderHelpers (target) { + target._o = markOnce; + target._n = toNumber; + target._s = toString; + target._l = renderList; + target._t = renderSlot; + target._q = looseEqual; + target._i = looseIndexOf; + target._m = renderStatic; + target._f = resolveFilter; + target._k = checkKeyCodes; + target._b = bindObjectProps; + target._v = createTextVNode; + target._e = createEmptyVNode; + target._u = resolveScopedSlots; + target._g = bindObjectListeners; + target._d = bindDynamicKeys; + target._p = prependModifier; + } + + /* */ + + function FunctionalRenderContext ( + data, + props, + children, + parent, + Ctor + ) { + var this$1 = this; + + var options = Ctor.options; + // ensure the createElement function in functional components + // gets a unique context - this is necessary for correct named slot check + var contextVm; + if (hasOwn(parent, '_uid')) { + contextVm = Object.create(parent); + // $flow-disable-line + contextVm._original = parent; + } else { + // the context vm passed in is a functional context as well. + // in this case we want to make sure we are able to get a hold to the + // real context instance. + contextVm = parent; + // $flow-disable-line + parent = parent._original; + } + var isCompiled = isTrue(options._compiled); + var needNormalization = !isCompiled; + + this.data = data; + this.props = props; + this.children = children; + this.parent = parent; + this.listeners = data.on || emptyObject; + this.injections = resolveInject(options.inject, parent); + this.slots = function () { + if (!this$1.$slots) { + normalizeScopedSlots( + data.scopedSlots, + this$1.$slots = resolveSlots(children, parent) + ); + } + return this$1.$slots + }; + + Object.defineProperty(this, 'scopedSlots', ({ + enumerable: true, + get: function get () { + return normalizeScopedSlots(data.scopedSlots, this.slots()) + } + })); + + // support for compiled functional template + if (isCompiled) { + // exposing $options for renderStatic() + this.$options = options; + // pre-resolve slots for renderSlot() + this.$slots = this.slots(); + this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots); + } + + if (options._scopeId) { + this._c = function (a, b, c, d) { + var vnode = createElement(contextVm, a, b, c, d, needNormalization); + if (vnode && !Array.isArray(vnode)) { + vnode.fnScopeId = options._scopeId; + vnode.fnContext = parent; + } + return vnode + }; + } else { + this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); }; + } + } + + installRenderHelpers(FunctionalRenderContext.prototype); + + function createFunctionalComponent ( + Ctor, + propsData, + data, + contextVm, + children + ) { + var options = Ctor.options; + var props = {}; + var propOptions = options.props; + if (isDef(propOptions)) { + for (var key in propOptions) { + props[key] = validateProp(key, propOptions, propsData || emptyObject); + } + } else { + if (isDef(data.attrs)) { mergeProps(props, data.attrs); } + if (isDef(data.props)) { mergeProps(props, data.props); } + } + + var renderContext = new FunctionalRenderContext( + data, + props, + children, + contextVm, + Ctor + ); + + var vnode = options.render.call(null, renderContext._c, renderContext); + + if (vnode instanceof VNode) { + return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext) + } else if (Array.isArray(vnode)) { + var vnodes = normalizeChildren(vnode) || []; + var res = new Array(vnodes.length); + for (var i = 0; i < vnodes.length; i++) { + res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext); + } + return res + } + } + + function cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) { + // #7817 clone node before setting fnContext, otherwise if the node is reused + // (e.g. it was from a cached normal slot) the fnContext causes named slots + // that should not be matched to match. + var clone = cloneVNode(vnode); + clone.fnContext = contextVm; + clone.fnOptions = options; + { + (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext; + } + if (data.slot) { + (clone.data || (clone.data = {})).slot = data.slot; + } + return clone + } + + function mergeProps (to, from) { + for (var key in from) { + to[camelize(key)] = from[key]; + } + } + + /* */ + + /* */ + + /* */ + + /* */ + + // inline hooks to be invoked on component VNodes during patch + var componentVNodeHooks = { + init: function init (vnode, hydrating) { + if ( + vnode.componentInstance && + !vnode.componentInstance._isDestroyed && + vnode.data.keepAlive + ) { + // kept-alive components, treat as a patch + var mountedNode = vnode; // work around flow + componentVNodeHooks.prepatch(mountedNode, mountedNode); + } else { + var child = vnode.componentInstance = createComponentInstanceForVnode( + vnode, + activeInstance + ); + child.$mount(hydrating ? vnode.elm : undefined, hydrating); + } + }, + + prepatch: function prepatch (oldVnode, vnode) { + var options = vnode.componentOptions; + var child = vnode.componentInstance = oldVnode.componentInstance; + updateChildComponent( + child, + options.propsData, // updated props + options.listeners, // updated listeners + vnode, // new parent vnode + options.children // new children + ); + }, + + insert: function insert (vnode) { + var context = vnode.context; + var componentInstance = vnode.componentInstance; + if (!componentInstance._isMounted) { + componentInstance._isMounted = true; + callHook(componentInstance, 'mounted'); + } + if (vnode.data.keepAlive) { + if (context._isMounted) { + // vue-router#1212 + // During updates, a kept-alive component's child components may + // change, so directly walking the tree here may call activated hooks + // on incorrect children. Instead we push them into a queue which will + // be processed after the whole patch process ended. + queueActivatedComponent(componentInstance); + } else { + activateChildComponent(componentInstance, true /* direct */); + } + } + }, + + destroy: function destroy (vnode) { + var componentInstance = vnode.componentInstance; + if (!componentInstance._isDestroyed) { + if (!vnode.data.keepAlive) { + componentInstance.$destroy(); + } else { + deactivateChildComponent(componentInstance, true /* direct */); + } + } + } + }; + + var hooksToMerge = Object.keys(componentVNodeHooks); + + function createComponent ( + Ctor, + data, + context, + children, + tag + ) { + if (isUndef(Ctor)) { + return + } + + var baseCtor = context.$options._base; + + // plain options object: turn it into a constructor + if (isObject(Ctor)) { + Ctor = baseCtor.extend(Ctor); + } + + // if at this stage it's not a constructor or an async component factory, + // reject. + if (typeof Ctor !== 'function') { + { + warn(("Invalid Component definition: " + (String(Ctor))), context); + } + return + } + + // async component + var asyncFactory; + if (isUndef(Ctor.cid)) { + asyncFactory = Ctor; + Ctor = resolveAsyncComponent(asyncFactory, baseCtor); + if (Ctor === undefined) { + // return a placeholder node for async component, which is rendered + // as a comment node but preserves all the raw information for the node. + // the information will be used for async server-rendering and hydration. + return createAsyncPlaceholder( + asyncFactory, + data, + context, + children, + tag + ) + } + } + + data = data || {}; + + // resolve constructor options in case global mixins are applied after + // component constructor creation + resolveConstructorOptions(Ctor); + + // transform component v-model data into props & events + if (isDef(data.model)) { + transformModel(Ctor.options, data); + } + + // extract props + var propsData = extractPropsFromVNodeData(data, Ctor, tag); + + // functional component + if (isTrue(Ctor.options.functional)) { + return createFunctionalComponent(Ctor, propsData, data, context, children) + } + + // extract listeners, since these needs to be treated as + // child component listeners instead of DOM listeners + var listeners = data.on; + // replace with listeners with .native modifier + // so it gets processed during parent component patch. + data.on = data.nativeOn; + + if (isTrue(Ctor.options.abstract)) { + // abstract components do not keep anything + // other than props & listeners & slot + + // work around flow + var slot = data.slot; + data = {}; + if (slot) { + data.slot = slot; + } + } + + // install component management hooks onto the placeholder node + installComponentHooks(data); + + // return a placeholder vnode + var name = Ctor.options.name || tag; + var vnode = new VNode( + ("vue-component-" + (Ctor.cid) + (name ? ("-" + name) : '')), + data, undefined, undefined, undefined, context, + { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children }, + asyncFactory + ); + + return vnode + } + + function createComponentInstanceForVnode ( + vnode, // we know it's MountedComponentVNode but flow doesn't + parent // activeInstance in lifecycle state + ) { + var options = { + _isComponent: true, + _parentVnode: vnode, + parent: parent + }; + // check inline-template render functions + var inlineTemplate = vnode.data.inlineTemplate; + if (isDef(inlineTemplate)) { + options.render = inlineTemplate.render; + options.staticRenderFns = inlineTemplate.staticRenderFns; + } + return new vnode.componentOptions.Ctor(options) + } + + function installComponentHooks (data) { + var hooks = data.hook || (data.hook = {}); + for (var i = 0; i < hooksToMerge.length; i++) { + var key = hooksToMerge[i]; + var existing = hooks[key]; + var toMerge = componentVNodeHooks[key]; + if (existing !== toMerge && !(existing && existing._merged)) { + hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge; + } + } + } + + function mergeHook$1 (f1, f2) { + var merged = function (a, b) { + // flow complains about extra args which is why we use any + f1(a, b); + f2(a, b); + }; + merged._merged = true; + return merged + } + + // transform component v-model info (value and callback) into + // prop and event handler respectively. + function transformModel (options, data) { + var prop = (options.model && options.model.prop) || 'value'; + var event = (options.model && options.model.event) || 'input' + ;(data.attrs || (data.attrs = {}))[prop] = data.model.value; + var on = data.on || (data.on = {}); + var existing = on[event]; + var callback = data.model.callback; + if (isDef(existing)) { + if ( + Array.isArray(existing) + ? existing.indexOf(callback) === -1 + : existing !== callback + ) { + on[event] = [callback].concat(existing); + } + } else { + on[event] = callback; + } + } + + /* */ + + var SIMPLE_NORMALIZE = 1; + var ALWAYS_NORMALIZE = 2; + + // wrapper function for providing a more flexible interface + // without getting yelled at by flow + function createElement ( + context, + tag, + data, + children, + normalizationType, + alwaysNormalize + ) { + if (Array.isArray(data) || isPrimitive(data)) { + normalizationType = children; + children = data; + data = undefined; + } + if (isTrue(alwaysNormalize)) { + normalizationType = ALWAYS_NORMALIZE; + } + return _createElement(context, tag, data, children, normalizationType) + } + + function _createElement ( + context, + tag, + data, + children, + normalizationType + ) { + if (isDef(data) && isDef((data).__ob__)) { + warn( + "Avoid using observed data object as vnode data: " + (JSON.stringify(data)) + "\n" + + 'Always create fresh vnode data objects in each render!', + context + ); + return createEmptyVNode() + } + // object syntax in v-bind + if (isDef(data) && isDef(data.is)) { + tag = data.is; + } + if (!tag) { + // in case of component :is set to falsy value + return createEmptyVNode() + } + // warn against non-primitive key + if (isDef(data) && isDef(data.key) && !isPrimitive(data.key) + ) { + { + warn( + 'Avoid using non-primitive value as key, ' + + 'use string/number value instead.', + context + ); + } + } + // support single function children as default scoped slot + if (Array.isArray(children) && + typeof children[0] === 'function' + ) { + data = data || {}; + data.scopedSlots = { default: children[0] }; + children.length = 0; + } + if (normalizationType === ALWAYS_NORMALIZE) { + children = normalizeChildren(children); + } else if (normalizationType === SIMPLE_NORMALIZE) { + children = simpleNormalizeChildren(children); + } + var vnode, ns; + if (typeof tag === 'string') { + var Ctor; + ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag); + if (config.isReservedTag(tag)) { + // platform built-in elements + if (isDef(data) && isDef(data.nativeOn)) { + warn( + ("The .native modifier for v-on is only valid on components but it was used on <" + tag + ">."), + context + ); + } + vnode = new VNode( + config.parsePlatformTagName(tag), data, children, + undefined, undefined, context + ); + } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) { + // component + vnode = createComponent(Ctor, data, context, children, tag); + } else { + // unknown or unlisted namespaced elements + // check at runtime because it may get assigned a namespace when its + // parent normalizes children + vnode = new VNode( + tag, data, children, + undefined, undefined, context + ); + } + } else { + // direct component options / constructor + vnode = createComponent(tag, data, context, children); + } + if (Array.isArray(vnode)) { + return vnode + } else if (isDef(vnode)) { + if (isDef(ns)) { applyNS(vnode, ns); } + if (isDef(data)) { registerDeepBindings(data); } + return vnode + } else { + return createEmptyVNode() + } + } + + function applyNS (vnode, ns, force) { + vnode.ns = ns; + if (vnode.tag === 'foreignObject') { + // use default namespace inside foreignObject + ns = undefined; + force = true; + } + if (isDef(vnode.children)) { + for (var i = 0, l = vnode.children.length; i < l; i++) { + var child = vnode.children[i]; + if (isDef(child.tag) && ( + isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) { + applyNS(child, ns, force); + } + } + } + } + + // ref #5318 + // necessary to ensure parent re-render when deep bindings like :style and + // :class are used on slot nodes + function registerDeepBindings (data) { + if (isObject(data.style)) { + traverse(data.style); + } + if (isObject(data.class)) { + traverse(data.class); + } + } + + /* */ + + function initRender (vm) { + vm._vnode = null; // the root of the child tree + vm._staticTrees = null; // v-once cached trees + var options = vm.$options; + var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree + var renderContext = parentVnode && parentVnode.context; + vm.$slots = resolveSlots(options._renderChildren, renderContext); + vm.$scopedSlots = emptyObject; + // bind the createElement fn to this instance + // so that we get proper render context inside it. + // args order: tag, data, children, normalizationType, alwaysNormalize + // internal version is used by render functions compiled from templates + vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); }; + // normalization is always applied for the public version, used in + // user-written render functions. + vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); }; + + // $attrs & $listeners are exposed for easier HOC creation. + // they need to be reactive so that HOCs using them are always updated + var parentData = parentVnode && parentVnode.data; + + /* istanbul ignore else */ + { + defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () { + !isUpdatingChildComponent && warn("$attrs is readonly.", vm); + }, true); + defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () { + !isUpdatingChildComponent && warn("$listeners is readonly.", vm); + }, true); + } + } + + var currentRenderingInstance = null; + + function renderMixin (Vue) { + // install runtime convenience helpers + installRenderHelpers(Vue.prototype); + + Vue.prototype.$nextTick = function (fn) { + return nextTick(fn, this) + }; + + Vue.prototype._render = function () { + var vm = this; + var ref = vm.$options; + var render = ref.render; + var _parentVnode = ref._parentVnode; + + if (_parentVnode) { + vm.$scopedSlots = normalizeScopedSlots( + _parentVnode.data.scopedSlots, + vm.$slots, + vm.$scopedSlots + ); + } + + // set parent vnode. this allows render functions to have access + // to the data on the placeholder node. + vm.$vnode = _parentVnode; + // render self + var vnode; + try { + // There's no need to maintain a stack because all render fns are called + // separately from one another. Nested component's render fns are called + // when parent component is patched. + currentRenderingInstance = vm; + vnode = render.call(vm._renderProxy, vm.$createElement); + } catch (e) { + handleError(e, vm, "render"); + // return error render result, + // or previous vnode to prevent render error causing blank component + /* istanbul ignore else */ + if (vm.$options.renderError) { + try { + vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e); + } catch (e) { + handleError(e, vm, "renderError"); + vnode = vm._vnode; + } + } else { + vnode = vm._vnode; + } + } finally { + currentRenderingInstance = null; + } + // if the returned array contains only a single node, allow it + if (Array.isArray(vnode) && vnode.length === 1) { + vnode = vnode[0]; + } + // return empty vnode in case the render function errored out + if (!(vnode instanceof VNode)) { + if (Array.isArray(vnode)) { + warn( + 'Multiple root nodes returned from render function. Render function ' + + 'should return a single root node.', + vm + ); + } + vnode = createEmptyVNode(); + } + // set parent + vnode.parent = _parentVnode; + return vnode + }; + } + + /* */ + + function ensureCtor (comp, base) { + if ( + comp.__esModule || + (hasSymbol && comp[Symbol.toStringTag] === 'Module') + ) { + comp = comp.default; + } + return isObject(comp) + ? base.extend(comp) + : comp + } + + function createAsyncPlaceholder ( + factory, + data, + context, + children, + tag + ) { + var node = createEmptyVNode(); + node.asyncFactory = factory; + node.asyncMeta = { data: data, context: context, children: children, tag: tag }; + return node + } + + function resolveAsyncComponent ( + factory, + baseCtor + ) { + if (isTrue(factory.error) && isDef(factory.errorComp)) { + return factory.errorComp + } + + if (isDef(factory.resolved)) { + return factory.resolved + } + + var owner = currentRenderingInstance; + if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) { + // already pending + factory.owners.push(owner); + } + + if (isTrue(factory.loading) && isDef(factory.loadingComp)) { + return factory.loadingComp + } + + if (owner && !isDef(factory.owners)) { + var owners = factory.owners = [owner]; + var sync = true; + var timerLoading = null; + var timerTimeout = null + + ;(owner).$on('hook:destroyed', function () { return remove(owners, owner); }); + + var forceRender = function (renderCompleted) { + for (var i = 0, l = owners.length; i < l; i++) { + (owners[i]).$forceUpdate(); + } + + if (renderCompleted) { + owners.length = 0; + if (timerLoading !== null) { + clearTimeout(timerLoading); + timerLoading = null; + } + if (timerTimeout !== null) { + clearTimeout(timerTimeout); + timerTimeout = null; + } + } + }; + + var resolve = once(function (res) { + // cache resolved + factory.resolved = ensureCtor(res, baseCtor); + // invoke callbacks only if this is not a synchronous resolve + // (async resolves are shimmed as synchronous during SSR) + if (!sync) { + forceRender(true); + } else { + owners.length = 0; + } + }); + + var reject = once(function (reason) { + warn( + "Failed to resolve async component: " + (String(factory)) + + (reason ? ("\nReason: " + reason) : '') + ); + if (isDef(factory.errorComp)) { + factory.error = true; + forceRender(true); + } + }); + + var res = factory(resolve, reject); + + if (isObject(res)) { + if (isPromise(res)) { + // () => Promise + if (isUndef(factory.resolved)) { + res.then(resolve, reject); + } + } else if (isPromise(res.component)) { + res.component.then(resolve, reject); + + if (isDef(res.error)) { + factory.errorComp = ensureCtor(res.error, baseCtor); + } + + if (isDef(res.loading)) { + factory.loadingComp = ensureCtor(res.loading, baseCtor); + if (res.delay === 0) { + factory.loading = true; + } else { + timerLoading = setTimeout(function () { + timerLoading = null; + if (isUndef(factory.resolved) && isUndef(factory.error)) { + factory.loading = true; + forceRender(false); + } + }, res.delay || 200); + } + } + + if (isDef(res.timeout)) { + timerTimeout = setTimeout(function () { + timerTimeout = null; + if (isUndef(factory.resolved)) { + reject( + "timeout (" + (res.timeout) + "ms)" + ); + } + }, res.timeout); + } + } + } + + sync = false; + // return in case resolved synchronously + return factory.loading + ? factory.loadingComp + : factory.resolved + } + } + + /* */ + + function isAsyncPlaceholder (node) { + return node.isComment && node.asyncFactory + } + + /* */ + + function getFirstComponentChild (children) { + if (Array.isArray(children)) { + for (var i = 0; i < children.length; i++) { + var c = children[i]; + if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) { + return c + } + } + } + } + + /* */ + + /* */ + + function initEvents (vm) { + vm._events = Object.create(null); + vm._hasHookEvent = false; + // init parent attached events + var listeners = vm.$options._parentListeners; + if (listeners) { + updateComponentListeners(vm, listeners); + } + } + + var target; + + function add (event, fn) { + target.$on(event, fn); + } + + function remove$1 (event, fn) { + target.$off(event, fn); + } + + function createOnceHandler (event, fn) { + var _target = target; + return function onceHandler () { + var res = fn.apply(null, arguments); + if (res !== null) { + _target.$off(event, onceHandler); + } + } + } + + function updateComponentListeners ( + vm, + listeners, + oldListeners + ) { + target = vm; + updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm); + target = undefined; + } + + function eventsMixin (Vue) { + var hookRE = /^hook:/; + Vue.prototype.$on = function (event, fn) { + var vm = this; + if (Array.isArray(event)) { + for (var i = 0, l = event.length; i < l; i++) { + vm.$on(event[i], fn); + } + } else { + (vm._events[event] || (vm._events[event] = [])).push(fn); + // optimize hook:event cost by using a boolean flag marked at registration + // instead of a hash lookup + if (hookRE.test(event)) { + vm._hasHookEvent = true; + } + } + return vm + }; + + Vue.prototype.$once = function (event, fn) { + var vm = this; + function on () { + vm.$off(event, on); + fn.apply(vm, arguments); + } + on.fn = fn; + vm.$on(event, on); + return vm + }; + + Vue.prototype.$off = function (event, fn) { + var vm = this; + // all + if (!arguments.length) { + vm._events = Object.create(null); + return vm + } + // array of events + if (Array.isArray(event)) { + for (var i$1 = 0, l = event.length; i$1 < l; i$1++) { + vm.$off(event[i$1], fn); + } + return vm + } + // specific event + var cbs = vm._events[event]; + if (!cbs) { + return vm + } + if (!fn) { + vm._events[event] = null; + return vm + } + // specific handler + var cb; + var i = cbs.length; + while (i--) { + cb = cbs[i]; + if (cb === fn || cb.fn === fn) { + cbs.splice(i, 1); + break + } + } + return vm + }; + + Vue.prototype.$emit = function (event) { + var vm = this; + { + var lowerCaseEvent = event.toLowerCase(); + if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) { + tip( + "Event \"" + lowerCaseEvent + "\" is emitted in component " + + (formatComponentName(vm)) + " but the handler is registered for \"" + event + "\". " + + "Note that HTML attributes are case-insensitive and you cannot use " + + "v-on to listen to camelCase events when using in-DOM templates. " + + "You should probably use \"" + (hyphenate(event)) + "\" instead of \"" + event + "\"." + ); + } + } + var cbs = vm._events[event]; + if (cbs) { + cbs = cbs.length > 1 ? toArray(cbs) : cbs; + var args = toArray(arguments, 1); + var info = "event handler for \"" + event + "\""; + for (var i = 0, l = cbs.length; i < l; i++) { + invokeWithErrorHandling(cbs[i], vm, args, vm, info); + } + } + return vm + }; + } + + /* */ + + var activeInstance = null; + var isUpdatingChildComponent = false; + + function setActiveInstance(vm) { + var prevActiveInstance = activeInstance; + activeInstance = vm; + return function () { + activeInstance = prevActiveInstance; + } + } + + function initLifecycle (vm) { + var options = vm.$options; + + // locate first non-abstract parent + var parent = options.parent; + if (parent && !options.abstract) { + while (parent.$options.abstract && parent.$parent) { + parent = parent.$parent; + } + parent.$children.push(vm); + } + + vm.$parent = parent; + vm.$root = parent ? parent.$root : vm; + + vm.$children = []; + vm.$refs = {}; + + vm._watcher = null; + vm._inactive = null; + vm._directInactive = false; + vm._isMounted = false; + vm._isDestroyed = false; + vm._isBeingDestroyed = false; + } + + function lifecycleMixin (Vue) { + Vue.prototype._update = function (vnode, hydrating) { + var vm = this; + var prevEl = vm.$el; + var prevVnode = vm._vnode; + var restoreActiveInstance = setActiveInstance(vm); + vm._vnode = vnode; + // Vue.prototype.__patch__ is injected in entry points + // based on the rendering backend used. + if (!prevVnode) { + // initial render + vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */); + } else { + // updates + vm.$el = vm.__patch__(prevVnode, vnode); + } + restoreActiveInstance(); + // update __vue__ reference + if (prevEl) { + prevEl.__vue__ = null; + } + if (vm.$el) { + vm.$el.__vue__ = vm; + } + // if parent is an HOC, update its $el as well + if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) { + vm.$parent.$el = vm.$el; + } + // updated hook is called by the scheduler to ensure that children are + // updated in a parent's updated hook. + }; + + Vue.prototype.$forceUpdate = function () { + var vm = this; + if (vm._watcher) { + vm._watcher.update(); + } + }; + + Vue.prototype.$destroy = function () { + var vm = this; + if (vm._isBeingDestroyed) { + return + } + callHook(vm, 'beforeDestroy'); + vm._isBeingDestroyed = true; + // remove self from parent + var parent = vm.$parent; + if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) { + remove(parent.$children, vm); + } + // teardown watchers + if (vm._watcher) { + vm._watcher.teardown(); + } + var i = vm._watchers.length; + while (i--) { + vm._watchers[i].teardown(); + } + // remove reference from data ob + // frozen object may not have observer. + if (vm._data.__ob__) { + vm._data.__ob__.vmCount--; + } + // call the last hook... + vm._isDestroyed = true; + // invoke destroy hooks on current rendered tree + vm.__patch__(vm._vnode, null); + // fire destroyed hook + callHook(vm, 'destroyed'); + // turn off all instance listeners. + vm.$off(); + // remove __vue__ reference + if (vm.$el) { + vm.$el.__vue__ = null; + } + // release circular reference (#6759) + if (vm.$vnode) { + vm.$vnode.parent = null; + } + }; + } + + function mountComponent ( + vm, + el, + hydrating + ) { + vm.$el = el; + if (!vm.$options.render) { + vm.$options.render = createEmptyVNode; + { + /* istanbul ignore if */ + if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') || + vm.$options.el || el) { + warn( + 'You are using the runtime-only build of Vue where the template ' + + 'compiler is not available. Either pre-compile the templates into ' + + 'render functions, or use the compiler-included build.', + vm + ); + } else { + warn( + 'Failed to mount component: template or render function not defined.', + vm + ); + } + } + } + callHook(vm, 'beforeMount'); + + var updateComponent; + /* istanbul ignore if */ + if (config.performance && mark) { + updateComponent = function () { + var name = vm._name; + var id = vm._uid; + var startTag = "vue-perf-start:" + id; + var endTag = "vue-perf-end:" + id; + + mark(startTag); + var vnode = vm._render(); + mark(endTag); + measure(("vue " + name + " render"), startTag, endTag); + + mark(startTag); + vm._update(vnode, hydrating); + mark(endTag); + measure(("vue " + name + " patch"), startTag, endTag); + }; + } else { + updateComponent = function () { + vm._update(vm._render(), hydrating); + }; + } + + // we set this to vm._watcher inside the watcher's constructor + // since the watcher's initial patch may call $forceUpdate (e.g. inside child + // component's mounted hook), which relies on vm._watcher being already defined + new Watcher(vm, updateComponent, noop, { + before: function before () { + if (vm._isMounted && !vm._isDestroyed) { + callHook(vm, 'beforeUpdate'); + } + } + }, true /* isRenderWatcher */); + hydrating = false; + + // manually mounted instance, call mounted on self + // mounted is called for render-created child components in its inserted hook + if (vm.$vnode == null) { + vm._isMounted = true; + callHook(vm, 'mounted'); + } + return vm + } + + function updateChildComponent ( + vm, + propsData, + listeners, + parentVnode, + renderChildren + ) { + { + isUpdatingChildComponent = true; + } + + // determine whether component has slot children + // we need to do this before overwriting $options._renderChildren. + + // check if there are dynamic scopedSlots (hand-written or compiled but with + // dynamic slot names). Static scoped slots compiled from template has the + // "$stable" marker. + var newScopedSlots = parentVnode.data.scopedSlots; + var oldScopedSlots = vm.$scopedSlots; + var hasDynamicScopedSlot = !!( + (newScopedSlots && !newScopedSlots.$stable) || + (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) || + (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key) + ); + + // Any static slot children from the parent may have changed during parent's + // update. Dynamic scoped slots may also have changed. In such cases, a forced + // update is necessary to ensure correctness. + var needsForceUpdate = !!( + renderChildren || // has new static slots + vm.$options._renderChildren || // has old static slots + hasDynamicScopedSlot + ); + + vm.$options._parentVnode = parentVnode; + vm.$vnode = parentVnode; // update vm's placeholder node without re-render + + if (vm._vnode) { // update child tree's parent + vm._vnode.parent = parentVnode; + } + vm.$options._renderChildren = renderChildren; + + // update $attrs and $listeners hash + // these are also reactive so they may trigger child update if the child + // used them during render + vm.$attrs = parentVnode.data.attrs || emptyObject; + vm.$listeners = listeners || emptyObject; + + // update props + if (propsData && vm.$options.props) { + toggleObserving(false); + var props = vm._props; + var propKeys = vm.$options._propKeys || []; + for (var i = 0; i < propKeys.length; i++) { + var key = propKeys[i]; + var propOptions = vm.$options.props; // wtf flow? + props[key] = validateProp(key, propOptions, propsData, vm); + } + toggleObserving(true); + // keep a copy of raw propsData + vm.$options.propsData = propsData; + } + + // update listeners + listeners = listeners || emptyObject; + var oldListeners = vm.$options._parentListeners; + vm.$options._parentListeners = listeners; + updateComponentListeners(vm, listeners, oldListeners); + + // resolve slots + force update if has children + if (needsForceUpdate) { + vm.$slots = resolveSlots(renderChildren, parentVnode.context); + vm.$forceUpdate(); + } + + { + isUpdatingChildComponent = false; + } + } + + function isInInactiveTree (vm) { + while (vm && (vm = vm.$parent)) { + if (vm._inactive) { return true } + } + return false + } + + function activateChildComponent (vm, direct) { + if (direct) { + vm._directInactive = false; + if (isInInactiveTree(vm)) { + return + } + } else if (vm._directInactive) { + return + } + if (vm._inactive || vm._inactive === null) { + vm._inactive = false; + for (var i = 0; i < vm.$children.length; i++) { + activateChildComponent(vm.$children[i]); + } + callHook(vm, 'activated'); + } + } + + function deactivateChildComponent (vm, direct) { + if (direct) { + vm._directInactive = true; + if (isInInactiveTree(vm)) { + return + } + } + if (!vm._inactive) { + vm._inactive = true; + for (var i = 0; i < vm.$children.length; i++) { + deactivateChildComponent(vm.$children[i]); + } + callHook(vm, 'deactivated'); + } + } + + function callHook (vm, hook) { + // #7573 disable dep collection when invoking lifecycle hooks + pushTarget(); + var handlers = vm.$options[hook]; + var info = hook + " hook"; + if (handlers) { + for (var i = 0, j = handlers.length; i < j; i++) { + invokeWithErrorHandling(handlers[i], vm, null, vm, info); + } + } + if (vm._hasHookEvent) { + vm.$emit('hook:' + hook); + } + popTarget(); + } + + /* */ + + var MAX_UPDATE_COUNT = 100; + + var queue = []; + var activatedChildren = []; + var has = {}; + var circular = {}; + var waiting = false; + var flushing = false; + var index = 0; + + /** + * Reset the scheduler's state. + */ + function resetSchedulerState () { + index = queue.length = activatedChildren.length = 0; + has = {}; + { + circular = {}; + } + waiting = flushing = false; + } + + // Async edge case #6566 requires saving the timestamp when event listeners are + // attached. However, calling performance.now() has a perf overhead especially + // if the page has thousands of event listeners. Instead, we take a timestamp + // every time the scheduler flushes and use that for all event listeners + // attached during that flush. + var currentFlushTimestamp = 0; + + // Async edge case fix requires storing an event listener's attach timestamp. + var getNow = Date.now; + + // Determine what event timestamp the browser is using. Annoyingly, the + // timestamp can either be hi-res (relative to page load) or low-res + // (relative to UNIX epoch), so in order to compare time we have to use the + // same timestamp type when saving the flush timestamp. + // All IE versions use low-res event timestamps, and have problematic clock + // implementations (#9632) + if (inBrowser && !isIE) { + var performance = window.performance; + if ( + performance && + typeof performance.now === 'function' && + getNow() > document.createEvent('Event').timeStamp + ) { + // if the event timestamp, although evaluated AFTER the Date.now(), is + // smaller than it, it means the event is using a hi-res timestamp, + // and we need to use the hi-res version for event listener timestamps as + // well. + getNow = function () { return performance.now(); }; + } + } + + /** + * Flush both queues and run the watchers. + */ + function flushSchedulerQueue () { + currentFlushTimestamp = getNow(); + flushing = true; + var watcher, id; + + // Sort queue before flush. + // This ensures that: + // 1. Components are updated from parent to child. (because parent is always + // created before the child) + // 2. A component's user watchers are run before its render watcher (because + // user watchers are created before the render watcher) + // 3. If a component is destroyed during a parent component's watcher run, + // its watchers can be skipped. + queue.sort(function (a, b) { return a.id - b.id; }); + + // do not cache length because more watchers might be pushed + // as we run existing watchers + for (index = 0; index < queue.length; index++) { + watcher = queue[index]; + if (watcher.before) { + watcher.before(); + } + id = watcher.id; + has[id] = null; + watcher.run(); + // in dev build, check and stop circular updates. + if (has[id] != null) { + circular[id] = (circular[id] || 0) + 1; + if (circular[id] > MAX_UPDATE_COUNT) { + warn( + 'You may have an infinite update loop ' + ( + watcher.user + ? ("in watcher with expression \"" + (watcher.expression) + "\"") + : "in a component render function." + ), + watcher.vm + ); + break + } + } + } + + // keep copies of post queues before resetting state + var activatedQueue = activatedChildren.slice(); + var updatedQueue = queue.slice(); + + resetSchedulerState(); + + // call component updated and activated hooks + callActivatedHooks(activatedQueue); + callUpdatedHooks(updatedQueue); + + // devtool hook + /* istanbul ignore if */ + if (devtools && config.devtools) { + devtools.emit('flush'); + } + } + + function callUpdatedHooks (queue) { + var i = queue.length; + while (i--) { + var watcher = queue[i]; + var vm = watcher.vm; + if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) { + callHook(vm, 'updated'); + } + } + } + + /** + * Queue a kept-alive component that was activated during patch. + * The queue will be processed after the entire tree has been patched. + */ + function queueActivatedComponent (vm) { + // setting _inactive to false here so that a render function can + // rely on checking whether it's in an inactive tree (e.g. router-view) + vm._inactive = false; + activatedChildren.push(vm); + } + + function callActivatedHooks (queue) { + for (var i = 0; i < queue.length; i++) { + queue[i]._inactive = true; + activateChildComponent(queue[i], true /* true */); + } + } + + /** + * Push a watcher into the watcher queue. + * Jobs with duplicate IDs will be skipped unless it's + * pushed when the queue is being flushed. + */ + function queueWatcher (watcher) { + var id = watcher.id; + if (has[id] == null) { + has[id] = true; + if (!flushing) { + queue.push(watcher); + } else { + // if already flushing, splice the watcher based on its id + // if already past its id, it will be run next immediately. + var i = queue.length - 1; + while (i > index && queue[i].id > watcher.id) { + i--; + } + queue.splice(i + 1, 0, watcher); + } + // queue the flush + if (!waiting) { + waiting = true; + + if (!config.async) { + flushSchedulerQueue(); + return + } + nextTick(flushSchedulerQueue); + } + } + } + + /* */ + + + + var uid$2 = 0; + + /** + * A watcher parses an expression, collects dependencies, + * and fires callback when the expression value changes. + * This is used for both the $watch() api and directives. + */ + var Watcher = function Watcher ( + vm, + expOrFn, + cb, + options, + isRenderWatcher + ) { + this.vm = vm; + if (isRenderWatcher) { + vm._watcher = this; + } + vm._watchers.push(this); + // options + if (options) { + this.deep = !!options.deep; + this.user = !!options.user; + this.lazy = !!options.lazy; + this.sync = !!options.sync; + this.before = options.before; + } else { + this.deep = this.user = this.lazy = this.sync = false; + } + this.cb = cb; + this.id = ++uid$2; // uid for batching + this.active = true; + this.dirty = this.lazy; // for lazy watchers + this.deps = []; + this.newDeps = []; + this.depIds = new _Set(); + this.newDepIds = new _Set(); + this.expression = expOrFn.toString(); + // parse expression for getter + if (typeof expOrFn === 'function') { + this.getter = expOrFn; + } else { + this.getter = parsePath(expOrFn); + if (!this.getter) { + this.getter = noop; + warn( + "Failed watching path: \"" + expOrFn + "\" " + + 'Watcher only accepts simple dot-delimited paths. ' + + 'For full control, use a function instead.', + vm + ); + } + } + this.value = this.lazy + ? undefined + : this.get(); + }; + + /** + * Evaluate the getter, and re-collect dependencies. + */ + Watcher.prototype.get = function get () { + pushTarget(this); + var value; + var vm = this.vm; + try { + value = this.getter.call(vm, vm); + } catch (e) { + if (this.user) { + handleError(e, vm, ("getter for watcher \"" + (this.expression) + "\"")); + } else { + throw e + } + } finally { + // "touch" every property so they are all tracked as + // dependencies for deep watching + if (this.deep) { + traverse(value); + } + popTarget(); + this.cleanupDeps(); + } + return value + }; + + /** + * Add a dependency to this directive. + */ + Watcher.prototype.addDep = function addDep (dep) { + var id = dep.id; + if (!this.newDepIds.has(id)) { + this.newDepIds.add(id); + this.newDeps.push(dep); + if (!this.depIds.has(id)) { + dep.addSub(this); + } + } + }; + + /** + * Clean up for dependency collection. + */ + Watcher.prototype.cleanupDeps = function cleanupDeps () { + var i = this.deps.length; + while (i--) { + var dep = this.deps[i]; + if (!this.newDepIds.has(dep.id)) { + dep.removeSub(this); + } + } + var tmp = this.depIds; + this.depIds = this.newDepIds; + this.newDepIds = tmp; + this.newDepIds.clear(); + tmp = this.deps; + this.deps = this.newDeps; + this.newDeps = tmp; + this.newDeps.length = 0; + }; + + /** + * Subscriber interface. + * Will be called when a dependency changes. + */ + Watcher.prototype.update = function update () { + /* istanbul ignore else */ + if (this.lazy) { + this.dirty = true; + } else if (this.sync) { + this.run(); + } else { + queueWatcher(this); + } + }; + + /** + * Scheduler job interface. + * Will be called by the scheduler. + */ + Watcher.prototype.run = function run () { + if (this.active) { + var value = this.get(); + if ( + value !== this.value || + // Deep watchers and watchers on Object/Arrays should fire even + // when the value is the same, because the value may + // have mutated. + isObject(value) || + this.deep + ) { + // set new value + var oldValue = this.value; + this.value = value; + if (this.user) { + try { + this.cb.call(this.vm, value, oldValue); + } catch (e) { + handleError(e, this.vm, ("callback for watcher \"" + (this.expression) + "\"")); + } + } else { + this.cb.call(this.vm, value, oldValue); + } + } + } + }; + + /** + * Evaluate the value of the watcher. + * This only gets called for lazy watchers. + */ + Watcher.prototype.evaluate = function evaluate () { + this.value = this.get(); + this.dirty = false; + }; + + /** + * Depend on all deps collected by this watcher. + */ + Watcher.prototype.depend = function depend () { + var i = this.deps.length; + while (i--) { + this.deps[i].depend(); + } + }; + + /** + * Remove self from all dependencies' subscriber list. + */ + Watcher.prototype.teardown = function teardown () { + if (this.active) { + // remove self from vm's watcher list + // this is a somewhat expensive operation so we skip it + // if the vm is being destroyed. + if (!this.vm._isBeingDestroyed) { + remove(this.vm._watchers, this); + } + var i = this.deps.length; + while (i--) { + this.deps[i].removeSub(this); + } + this.active = false; + } + }; + + /* */ + + var sharedPropertyDefinition = { + enumerable: true, + configurable: true, + get: noop, + set: noop + }; + + function proxy (target, sourceKey, key) { + sharedPropertyDefinition.get = function proxyGetter () { + return this[sourceKey][key] + }; + sharedPropertyDefinition.set = function proxySetter (val) { + this[sourceKey][key] = val; + }; + Object.defineProperty(target, key, sharedPropertyDefinition); + } + + function initState (vm) { + vm._watchers = []; + var opts = vm.$options; + if (opts.props) { initProps(vm, opts.props); } + if (opts.methods) { initMethods(vm, opts.methods); } + if (opts.data) { + initData(vm); + } else { + observe(vm._data = {}, true /* asRootData */); + } + if (opts.computed) { initComputed(vm, opts.computed); } + if (opts.watch && opts.watch !== nativeWatch) { + initWatch(vm, opts.watch); + } + } + + function initProps (vm, propsOptions) { + var propsData = vm.$options.propsData || {}; + var props = vm._props = {}; + // cache prop keys so that future props updates can iterate using Array + // instead of dynamic object key enumeration. + var keys = vm.$options._propKeys = []; + var isRoot = !vm.$parent; + // root instance props should be converted + if (!isRoot) { + toggleObserving(false); + } + var loop = function ( key ) { + keys.push(key); + var value = validateProp(key, propsOptions, propsData, vm); + /* istanbul ignore else */ + { + var hyphenatedKey = hyphenate(key); + if (isReservedAttribute(hyphenatedKey) || + config.isReservedAttr(hyphenatedKey)) { + warn( + ("\"" + hyphenatedKey + "\" is a reserved attribute and cannot be used as component prop."), + vm + ); + } + defineReactive$$1(props, key, value, function () { + if (!isRoot && !isUpdatingChildComponent) { + warn( + "Avoid mutating a prop directly since the value will be " + + "overwritten whenever the parent component re-renders. " + + "Instead, use a data or computed property based on the prop's " + + "value. Prop being mutated: \"" + key + "\"", + vm + ); + } + }); + } + // static props are already proxied on the component's prototype + // during Vue.extend(). We only need to proxy props defined at + // instantiation here. + if (!(key in vm)) { + proxy(vm, "_props", key); + } + }; + + for (var key in propsOptions) loop( key ); + toggleObserving(true); + } + + function initData (vm) { + var data = vm.$options.data; + data = vm._data = typeof data === 'function' + ? getData(data, vm) + : data || {}; + if (!isPlainObject(data)) { + data = {}; + warn( + 'data functions should return an object:\n' + + 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function', + vm + ); + } + // proxy data on instance + var keys = Object.keys(data); + var props = vm.$options.props; + var methods = vm.$options.methods; + var i = keys.length; + while (i--) { + var key = keys[i]; + { + if (methods && hasOwn(methods, key)) { + warn( + ("Method \"" + key + "\" has already been defined as a data property."), + vm + ); + } + } + if (props && hasOwn(props, key)) { + warn( + "The data property \"" + key + "\" is already declared as a prop. " + + "Use prop default value instead.", + vm + ); + } else if (!isReserved(key)) { + proxy(vm, "_data", key); + } + } + // observe data + observe(data, true /* asRootData */); + } + + function getData (data, vm) { + // #7573 disable dep collection when invoking data getters + pushTarget(); + try { + return data.call(vm, vm) + } catch (e) { + handleError(e, vm, "data()"); + return {} + } finally { + popTarget(); + } + } + + var computedWatcherOptions = { lazy: true }; + + function initComputed (vm, computed) { + // $flow-disable-line + var watchers = vm._computedWatchers = Object.create(null); + // computed properties are just getters during SSR + var isSSR = isServerRendering(); + + for (var key in computed) { + var userDef = computed[key]; + var getter = typeof userDef === 'function' ? userDef : userDef.get; + if (getter == null) { + warn( + ("Getter is missing for computed property \"" + key + "\"."), + vm + ); + } + + if (!isSSR) { + // create internal watcher for the computed property. + watchers[key] = new Watcher( + vm, + getter || noop, + noop, + computedWatcherOptions + ); + } + + // component-defined computed properties are already defined on the + // component prototype. We only need to define computed properties defined + // at instantiation here. + if (!(key in vm)) { + defineComputed(vm, key, userDef); + } else { + if (key in vm.$data) { + warn(("The computed property \"" + key + "\" is already defined in data."), vm); + } else if (vm.$options.props && key in vm.$options.props) { + warn(("The computed property \"" + key + "\" is already defined as a prop."), vm); + } + } + } + } + + function defineComputed ( + target, + key, + userDef + ) { + var shouldCache = !isServerRendering(); + if (typeof userDef === 'function') { + sharedPropertyDefinition.get = shouldCache + ? createComputedGetter(key) + : createGetterInvoker(userDef); + sharedPropertyDefinition.set = noop; + } else { + sharedPropertyDefinition.get = userDef.get + ? shouldCache && userDef.cache !== false + ? createComputedGetter(key) + : createGetterInvoker(userDef.get) + : noop; + sharedPropertyDefinition.set = userDef.set || noop; + } + if (sharedPropertyDefinition.set === noop) { + sharedPropertyDefinition.set = function () { + warn( + ("Computed property \"" + key + "\" was assigned to but it has no setter."), + this + ); + }; + } + Object.defineProperty(target, key, sharedPropertyDefinition); + } + + function createComputedGetter (key) { + return function computedGetter () { + var watcher = this._computedWatchers && this._computedWatchers[key]; + if (watcher) { + if (watcher.dirty) { + watcher.evaluate(); + } + if (Dep.target) { + watcher.depend(); + } + return watcher.value + } + } + } + + function createGetterInvoker(fn) { + return function computedGetter () { + return fn.call(this, this) + } + } + + function initMethods (vm, methods) { + var props = vm.$options.props; + for (var key in methods) { + { + if (typeof methods[key] !== 'function') { + warn( + "Method \"" + key + "\" has type \"" + (typeof methods[key]) + "\" in the component definition. " + + "Did you reference the function correctly?", + vm + ); + } + if (props && hasOwn(props, key)) { + warn( + ("Method \"" + key + "\" has already been defined as a prop."), + vm + ); + } + if ((key in vm) && isReserved(key)) { + warn( + "Method \"" + key + "\" conflicts with an existing Vue instance method. " + + "Avoid defining component methods that start with _ or $." + ); + } + } + vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm); + } + } + + function initWatch (vm, watch) { + for (var key in watch) { + var handler = watch[key]; + if (Array.isArray(handler)) { + for (var i = 0; i < handler.length; i++) { + createWatcher(vm, key, handler[i]); + } + } else { + createWatcher(vm, key, handler); + } + } + } + + function createWatcher ( + vm, + expOrFn, + handler, + options + ) { + if (isPlainObject(handler)) { + options = handler; + handler = handler.handler; + } + if (typeof handler === 'string') { + handler = vm[handler]; + } + return vm.$watch(expOrFn, handler, options) + } + + function stateMixin (Vue) { + // flow somehow has problems with directly declared definition object + // when using Object.defineProperty, so we have to procedurally build up + // the object here. + var dataDef = {}; + dataDef.get = function () { return this._data }; + var propsDef = {}; + propsDef.get = function () { return this._props }; + { + dataDef.set = function () { + warn( + 'Avoid replacing instance root $data. ' + + 'Use nested data properties instead.', + this + ); + }; + propsDef.set = function () { + warn("$props is readonly.", this); + }; + } + Object.defineProperty(Vue.prototype, '$data', dataDef); + Object.defineProperty(Vue.prototype, '$props', propsDef); + + Vue.prototype.$set = set; + Vue.prototype.$delete = del; + + Vue.prototype.$watch = function ( + expOrFn, + cb, + options + ) { + var vm = this; + if (isPlainObject(cb)) { + return createWatcher(vm, expOrFn, cb, options) + } + options = options || {}; + options.user = true; + var watcher = new Watcher(vm, expOrFn, cb, options); + if (options.immediate) { + try { + cb.call(vm, watcher.value); + } catch (error) { + handleError(error, vm, ("callback for immediate watcher \"" + (watcher.expression) + "\"")); + } + } + return function unwatchFn () { + watcher.teardown(); + } + }; + } + + /* */ + + var uid$3 = 0; + + function initMixin (Vue) { + Vue.prototype._init = function (options) { + var vm = this; + // a uid + vm._uid = uid$3++; + + var startTag, endTag; + /* istanbul ignore if */ + if (config.performance && mark) { + startTag = "vue-perf-start:" + (vm._uid); + endTag = "vue-perf-end:" + (vm._uid); + mark(startTag); + } + + // a flag to avoid this being observed + vm._isVue = true; + // merge options + if (options && options._isComponent) { + // optimize internal component instantiation + // since dynamic options merging is pretty slow, and none of the + // internal component options needs special treatment. + initInternalComponent(vm, options); + } else { + vm.$options = mergeOptions( + resolveConstructorOptions(vm.constructor), + options || {}, + vm + ); + } + /* istanbul ignore else */ + { + initProxy(vm); + } + // expose real self + vm._self = vm; + initLifecycle(vm); + initEvents(vm); + initRender(vm); + callHook(vm, 'beforeCreate'); + initInjections(vm); // resolve injections before data/props + initState(vm); + initProvide(vm); // resolve provide after data/props + callHook(vm, 'created'); + + /* istanbul ignore if */ + if (config.performance && mark) { + vm._name = formatComponentName(vm, false); + mark(endTag); + measure(("vue " + (vm._name) + " init"), startTag, endTag); + } + + if (vm.$options.el) { + vm.$mount(vm.$options.el); + } + }; + } + + function initInternalComponent (vm, options) { + var opts = vm.$options = Object.create(vm.constructor.options); + // doing this because it's faster than dynamic enumeration. + var parentVnode = options._parentVnode; + opts.parent = options.parent; + opts._parentVnode = parentVnode; + + var vnodeComponentOptions = parentVnode.componentOptions; + opts.propsData = vnodeComponentOptions.propsData; + opts._parentListeners = vnodeComponentOptions.listeners; + opts._renderChildren = vnodeComponentOptions.children; + opts._componentTag = vnodeComponentOptions.tag; + + if (options.render) { + opts.render = options.render; + opts.staticRenderFns = options.staticRenderFns; + } + } + + function resolveConstructorOptions (Ctor) { + var options = Ctor.options; + if (Ctor.super) { + var superOptions = resolveConstructorOptions(Ctor.super); + var cachedSuperOptions = Ctor.superOptions; + if (superOptions !== cachedSuperOptions) { + // super option changed, + // need to resolve new options. + Ctor.superOptions = superOptions; + // check if there are any late-modified/attached options (#4976) + var modifiedOptions = resolveModifiedOptions(Ctor); + // update base extend options + if (modifiedOptions) { + extend(Ctor.extendOptions, modifiedOptions); + } + options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions); + if (options.name) { + options.components[options.name] = Ctor; + } + } + } + return options + } + + function resolveModifiedOptions (Ctor) { + var modified; + var latest = Ctor.options; + var sealed = Ctor.sealedOptions; + for (var key in latest) { + if (latest[key] !== sealed[key]) { + if (!modified) { modified = {}; } + modified[key] = latest[key]; + } + } + return modified + } + + function Vue (options) { + if (!(this instanceof Vue) + ) { + warn('Vue is a constructor and should be called with the `new` keyword'); + } + this._init(options); + } + + initMixin(Vue); + stateMixin(Vue); + eventsMixin(Vue); + lifecycleMixin(Vue); + renderMixin(Vue); + + /* */ + + function initUse (Vue) { + Vue.use = function (plugin) { + var installedPlugins = (this._installedPlugins || (this._installedPlugins = [])); + if (installedPlugins.indexOf(plugin) > -1) { + return this + } + + // additional parameters + var args = toArray(arguments, 1); + args.unshift(this); + if (typeof plugin.install === 'function') { + plugin.install.apply(plugin, args); + } else if (typeof plugin === 'function') { + plugin.apply(null, args); + } + installedPlugins.push(plugin); + return this + }; + } + + /* */ + + function initMixin$1 (Vue) { + Vue.mixin = function (mixin) { + this.options = mergeOptions(this.options, mixin); + return this + }; + } + + /* */ + + function initExtend (Vue) { + /** + * Each instance constructor, including Vue, has a unique + * cid. This enables us to create wrapped "child + * constructors" for prototypal inheritance and cache them. + */ + Vue.cid = 0; + var cid = 1; + + /** + * Class inheritance + */ + Vue.extend = function (extendOptions) { + extendOptions = extendOptions || {}; + var Super = this; + var SuperId = Super.cid; + var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {}); + if (cachedCtors[SuperId]) { + return cachedCtors[SuperId] + } + + var name = extendOptions.name || Super.options.name; + if (name) { + validateComponentName(name); + } + + var Sub = function VueComponent (options) { + this._init(options); + }; + Sub.prototype = Object.create(Super.prototype); + Sub.prototype.constructor = Sub; + Sub.cid = cid++; + Sub.options = mergeOptions( + Super.options, + extendOptions + ); + Sub['super'] = Super; + + // For props and computed properties, we define the proxy getters on + // the Vue instances at extension time, on the extended prototype. This + // avoids Object.defineProperty calls for each instance created. + if (Sub.options.props) { + initProps$1(Sub); + } + if (Sub.options.computed) { + initComputed$1(Sub); + } + + // allow further extension/mixin/plugin usage + Sub.extend = Super.extend; + Sub.mixin = Super.mixin; + Sub.use = Super.use; + + // create asset registers, so extended classes + // can have their private assets too. + ASSET_TYPES.forEach(function (type) { + Sub[type] = Super[type]; + }); + // enable recursive self-lookup + if (name) { + Sub.options.components[name] = Sub; + } + + // keep a reference to the super options at extension time. + // later at instantiation we can check if Super's options have + // been updated. + Sub.superOptions = Super.options; + Sub.extendOptions = extendOptions; + Sub.sealedOptions = extend({}, Sub.options); + + // cache constructor + cachedCtors[SuperId] = Sub; + return Sub + }; + } + + function initProps$1 (Comp) { + var props = Comp.options.props; + for (var key in props) { + proxy(Comp.prototype, "_props", key); + } + } + + function initComputed$1 (Comp) { + var computed = Comp.options.computed; + for (var key in computed) { + defineComputed(Comp.prototype, key, computed[key]); + } + } + + /* */ + + function initAssetRegisters (Vue) { + /** + * Create asset registration methods. + */ + ASSET_TYPES.forEach(function (type) { + Vue[type] = function ( + id, + definition + ) { + if (!definition) { + return this.options[type + 's'][id] + } else { + /* istanbul ignore if */ + if (type === 'component') { + validateComponentName(id); + } + if (type === 'component' && isPlainObject(definition)) { + definition.name = definition.name || id; + definition = this.options._base.extend(definition); + } + if (type === 'directive' && typeof definition === 'function') { + definition = { bind: definition, update: definition }; + } + this.options[type + 's'][id] = definition; + return definition + } + }; + }); + } + + /* */ + + + + function getComponentName (opts) { + return opts && (opts.Ctor.options.name || opts.tag) + } + + function matches (pattern, name) { + if (Array.isArray(pattern)) { + return pattern.indexOf(name) > -1 + } else if (typeof pattern === 'string') { + return pattern.split(',').indexOf(name) > -1 + } else if (isRegExp(pattern)) { + return pattern.test(name) + } + /* istanbul ignore next */ + return false + } + + function pruneCache (keepAliveInstance, filter) { + var cache = keepAliveInstance.cache; + var keys = keepAliveInstance.keys; + var _vnode = keepAliveInstance._vnode; + for (var key in cache) { + var cachedNode = cache[key]; + if (cachedNode) { + var name = getComponentName(cachedNode.componentOptions); + if (name && !filter(name)) { + pruneCacheEntry(cache, key, keys, _vnode); + } + } + } + } + + function pruneCacheEntry ( + cache, + key, + keys, + current + ) { + var cached$$1 = cache[key]; + if (cached$$1 && (!current || cached$$1.tag !== current.tag)) { + cached$$1.componentInstance.$destroy(); + } + cache[key] = null; + remove(keys, key); + } + + var patternTypes = [String, RegExp, Array]; + + var KeepAlive = { + name: 'keep-alive', + abstract: true, + + props: { + include: patternTypes, + exclude: patternTypes, + max: [String, Number] + }, + + created: function created () { + this.cache = Object.create(null); + this.keys = []; + }, + + destroyed: function destroyed () { + for (var key in this.cache) { + pruneCacheEntry(this.cache, key, this.keys); + } + }, + + mounted: function mounted () { + var this$1 = this; + + this.$watch('include', function (val) { + pruneCache(this$1, function (name) { return matches(val, name); }); + }); + this.$watch('exclude', function (val) { + pruneCache(this$1, function (name) { return !matches(val, name); }); + }); + }, + + render: function render () { + var slot = this.$slots.default; + var vnode = getFirstComponentChild(slot); + var componentOptions = vnode && vnode.componentOptions; + if (componentOptions) { + // check pattern + var name = getComponentName(componentOptions); + var ref = this; + var include = ref.include; + var exclude = ref.exclude; + if ( + // not included + (include && (!name || !matches(include, name))) || + // excluded + (exclude && name && matches(exclude, name)) + ) { + return vnode + } + + var ref$1 = this; + var cache = ref$1.cache; + var keys = ref$1.keys; + var key = vnode.key == null + // same constructor may get registered as different local components + // so cid alone is not enough (#3269) + ? componentOptions.Ctor.cid + (componentOptions.tag ? ("::" + (componentOptions.tag)) : '') + : vnode.key; + if (cache[key]) { + vnode.componentInstance = cache[key].componentInstance; + // make current key freshest + remove(keys, key); + keys.push(key); + } else { + cache[key] = vnode; + keys.push(key); + // prune oldest entry + if (this.max && keys.length > parseInt(this.max)) { + pruneCacheEntry(cache, keys[0], keys, this._vnode); + } + } + + vnode.data.keepAlive = true; + } + return vnode || (slot && slot[0]) + } + }; + + var builtInComponents = { + KeepAlive: KeepAlive + }; + + /* */ + + function initGlobalAPI (Vue) { + // config + var configDef = {}; + configDef.get = function () { return config; }; + { + configDef.set = function () { + warn( + 'Do not replace the Vue.config object, set individual fields instead.' + ); + }; + } + Object.defineProperty(Vue, 'config', configDef); + + // exposed util methods. + // NOTE: these are not considered part of the public API - avoid relying on + // them unless you are aware of the risk. + Vue.util = { + warn: warn, + extend: extend, + mergeOptions: mergeOptions, + defineReactive: defineReactive$$1 + }; + + Vue.set = set; + Vue.delete = del; + Vue.nextTick = nextTick; + + // 2.6 explicit observable API + Vue.observable = function (obj) { + observe(obj); + return obj + }; + + Vue.options = Object.create(null); + ASSET_TYPES.forEach(function (type) { + Vue.options[type + 's'] = Object.create(null); + }); + + // this is used to identify the "base" constructor to extend all plain-object + // components with in Weex's multi-instance scenarios. + Vue.options._base = Vue; + + extend(Vue.options.components, builtInComponents); + + initUse(Vue); + initMixin$1(Vue); + initExtend(Vue); + initAssetRegisters(Vue); + } + + initGlobalAPI(Vue); + + Object.defineProperty(Vue.prototype, '$isServer', { + get: isServerRendering + }); + + Object.defineProperty(Vue.prototype, '$ssrContext', { + get: function get () { + /* istanbul ignore next */ + return this.$vnode && this.$vnode.ssrContext + } + }); + + // expose FunctionalRenderContext for ssr runtime helper installation + Object.defineProperty(Vue, 'FunctionalRenderContext', { + value: FunctionalRenderContext + }); + + Vue.version = '2.6.12'; + + /* */ + + // these are reserved for web because they are directly compiled away + // during template compilation + var isReservedAttr = makeMap('style,class'); + + // attributes that should be using props for binding + var acceptValue = makeMap('input,textarea,option,select,progress'); + var mustUseProp = function (tag, type, attr) { + return ( + (attr === 'value' && acceptValue(tag)) && type !== 'button' || + (attr === 'selected' && tag === 'option') || + (attr === 'checked' && tag === 'input') || + (attr === 'muted' && tag === 'video') + ) + }; + + var isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck'); + + var isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only'); + + var convertEnumeratedValue = function (key, value) { + return isFalsyAttrValue(value) || value === 'false' + ? 'false' + // allow arbitrary string value for contenteditable + : key === 'contenteditable' && isValidContentEditableValue(value) + ? value + : 'true' + }; + + var isBooleanAttr = makeMap( + 'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' + + 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' + + 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' + + 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' + + 'required,reversed,scoped,seamless,selected,sortable,translate,' + + 'truespeed,typemustmatch,visible' + ); + + var xlinkNS = 'http://www.w3.org/1999/xlink'; + + var isXlink = function (name) { + return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink' + }; + + var getXlinkProp = function (name) { + return isXlink(name) ? name.slice(6, name.length) : '' + }; + + var isFalsyAttrValue = function (val) { + return val == null || val === false + }; + + /* */ + + function genClassForVnode (vnode) { + var data = vnode.data; + var parentNode = vnode; + var childNode = vnode; + while (isDef(childNode.componentInstance)) { + childNode = childNode.componentInstance._vnode; + if (childNode && childNode.data) { + data = mergeClassData(childNode.data, data); + } + } + while (isDef(parentNode = parentNode.parent)) { + if (parentNode && parentNode.data) { + data = mergeClassData(data, parentNode.data); + } + } + return renderClass(data.staticClass, data.class) + } + + function mergeClassData (child, parent) { + return { + staticClass: concat(child.staticClass, parent.staticClass), + class: isDef(child.class) + ? [child.class, parent.class] + : parent.class + } + } + + function renderClass ( + staticClass, + dynamicClass + ) { + if (isDef(staticClass) || isDef(dynamicClass)) { + return concat(staticClass, stringifyClass(dynamicClass)) + } + /* istanbul ignore next */ + return '' + } + + function concat (a, b) { + return a ? b ? (a + ' ' + b) : a : (b || '') + } + + function stringifyClass (value) { + if (Array.isArray(value)) { + return stringifyArray(value) + } + if (isObject(value)) { + return stringifyObject(value) + } + if (typeof value === 'string') { + return value + } + /* istanbul ignore next */ + return '' + } + + function stringifyArray (value) { + var res = ''; + var stringified; + for (var i = 0, l = value.length; i < l; i++) { + if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') { + if (res) { res += ' '; } + res += stringified; + } + } + return res + } + + function stringifyObject (value) { + var res = ''; + for (var key in value) { + if (value[key]) { + if (res) { res += ' '; } + res += key; + } + } + return res + } + + /* */ + + var namespaceMap = { + svg: 'http://www.w3.org/2000/svg', + math: 'http://www.w3.org/1998/Math/MathML' + }; + + var isHTMLTag = makeMap( + 'html,body,base,head,link,meta,style,title,' + + 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' + + 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' + + 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' + + 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' + + 'embed,object,param,source,canvas,script,noscript,del,ins,' + + 'caption,col,colgroup,table,thead,tbody,td,th,tr,' + + 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' + + 'output,progress,select,textarea,' + + 'details,dialog,menu,menuitem,summary,' + + 'content,element,shadow,template,blockquote,iframe,tfoot' + ); + + // this map is intentionally selective, only covering SVG elements that may + // contain child elements. + var isSVG = makeMap( + 'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' + + 'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' + + 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view', + true + ); + + var isPreTag = function (tag) { return tag === 'pre'; }; + + var isReservedTag = function (tag) { + return isHTMLTag(tag) || isSVG(tag) + }; + + function getTagNamespace (tag) { + if (isSVG(tag)) { + return 'svg' + } + // basic support for MathML + // note it doesn't support other MathML elements being component roots + if (tag === 'math') { + return 'math' + } + } + + var unknownElementCache = Object.create(null); + function isUnknownElement (tag) { + /* istanbul ignore if */ + if (!inBrowser) { + return true + } + if (isReservedTag(tag)) { + return false + } + tag = tag.toLowerCase(); + /* istanbul ignore if */ + if (unknownElementCache[tag] != null) { + return unknownElementCache[tag] + } + var el = document.createElement(tag); + if (tag.indexOf('-') > -1) { + // http://stackoverflow.com/a/28210364/1070244 + return (unknownElementCache[tag] = ( + el.constructor === window.HTMLUnknownElement || + el.constructor === window.HTMLElement + )) + } else { + return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString())) + } + } + + var isTextInputType = makeMap('text,number,password,search,email,tel,url'); + + /* */ + + /** + * Query an element selector if it's not an element already. + */ + function query (el) { + if (typeof el === 'string') { + var selected = document.querySelector(el); + if (!selected) { + warn( + 'Cannot find element: ' + el + ); + return document.createElement('div') + } + return selected + } else { + return el + } + } + + /* */ + + function createElement$1 (tagName, vnode) { + var elm = document.createElement(tagName); + if (tagName !== 'select') { + return elm + } + // false or null will remove the attribute but undefined will not + if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) { + elm.setAttribute('multiple', 'multiple'); + } + return elm + } + + function createElementNS (namespace, tagName) { + return document.createElementNS(namespaceMap[namespace], tagName) + } + + function createTextNode (text) { + return document.createTextNode(text) + } + + function createComment (text) { + return document.createComment(text) + } + + function insertBefore (parentNode, newNode, referenceNode) { + parentNode.insertBefore(newNode, referenceNode); + } + + function removeChild (node, child) { + node.removeChild(child); + } + + function appendChild (node, child) { + node.appendChild(child); + } + + function parentNode (node) { + return node.parentNode + } + + function nextSibling (node) { + return node.nextSibling + } + + function tagName (node) { + return node.tagName + } + + function setTextContent (node, text) { + node.textContent = text; + } + + function setStyleScope (node, scopeId) { + node.setAttribute(scopeId, ''); + } + + var nodeOps = /*#__PURE__*/Object.freeze({ + createElement: createElement$1, + createElementNS: createElementNS, + createTextNode: createTextNode, + createComment: createComment, + insertBefore: insertBefore, + removeChild: removeChild, + appendChild: appendChild, + parentNode: parentNode, + nextSibling: nextSibling, + tagName: tagName, + setTextContent: setTextContent, + setStyleScope: setStyleScope + }); + + /* */ + + var ref = { + create: function create (_, vnode) { + registerRef(vnode); + }, + update: function update (oldVnode, vnode) { + if (oldVnode.data.ref !== vnode.data.ref) { + registerRef(oldVnode, true); + registerRef(vnode); + } + }, + destroy: function destroy (vnode) { + registerRef(vnode, true); + } + }; + + function registerRef (vnode, isRemoval) { + var key = vnode.data.ref; + if (!isDef(key)) { return } + + var vm = vnode.context; + var ref = vnode.componentInstance || vnode.elm; + var refs = vm.$refs; + if (isRemoval) { + if (Array.isArray(refs[key])) { + remove(refs[key], ref); + } else if (refs[key] === ref) { + refs[key] = undefined; + } + } else { + if (vnode.data.refInFor) { + if (!Array.isArray(refs[key])) { + refs[key] = [ref]; + } else if (refs[key].indexOf(ref) < 0) { + // $flow-disable-line + refs[key].push(ref); + } + } else { + refs[key] = ref; + } + } + } + + /** + * Virtual DOM patching algorithm based on Snabbdom by + * Simon Friis Vindum (@paldepind) + * Licensed under the MIT License + * https://github.com/paldepind/snabbdom/blob/master/LICENSE + * + * modified by Evan You (@yyx990803) + * + * Not type-checking this because this file is perf-critical and the cost + * of making flow understand it is not worth it. + */ + + var emptyNode = new VNode('', {}, []); + + var hooks = ['create', 'activate', 'update', 'remove', 'destroy']; + + function sameVnode (a, b) { + return ( + a.key === b.key && ( + ( + a.tag === b.tag && + a.isComment === b.isComment && + isDef(a.data) === isDef(b.data) && + sameInputType(a, b) + ) || ( + isTrue(a.isAsyncPlaceholder) && + a.asyncFactory === b.asyncFactory && + isUndef(b.asyncFactory.error) + ) + ) + ) + } + + function sameInputType (a, b) { + if (a.tag !== 'input') { return true } + var i; + var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type; + var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type; + return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB) + } + + function createKeyToOldIdx (children, beginIdx, endIdx) { + var i, key; + var map = {}; + for (i = beginIdx; i <= endIdx; ++i) { + key = children[i].key; + if (isDef(key)) { map[key] = i; } + } + return map + } + + function createPatchFunction (backend) { + var i, j; + var cbs = {}; + + var modules = backend.modules; + var nodeOps = backend.nodeOps; + + for (i = 0; i < hooks.length; ++i) { + cbs[hooks[i]] = []; + for (j = 0; j < modules.length; ++j) { + if (isDef(modules[j][hooks[i]])) { + cbs[hooks[i]].push(modules[j][hooks[i]]); + } + } + } + + function emptyNodeAt (elm) { + return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm) + } + + function createRmCb (childElm, listeners) { + function remove$$1 () { + if (--remove$$1.listeners === 0) { + removeNode(childElm); + } + } + remove$$1.listeners = listeners; + return remove$$1 + } + + function removeNode (el) { + var parent = nodeOps.parentNode(el); + // element may have already been removed due to v-html / v-text + if (isDef(parent)) { + nodeOps.removeChild(parent, el); + } + } + + function isUnknownElement$$1 (vnode, inVPre) { + return ( + !inVPre && + !vnode.ns && + !( + config.ignoredElements.length && + config.ignoredElements.some(function (ignore) { + return isRegExp(ignore) + ? ignore.test(vnode.tag) + : ignore === vnode.tag + }) + ) && + config.isUnknownElement(vnode.tag) + ) + } + + var creatingElmInVPre = 0; + + function createElm ( + vnode, + insertedVnodeQueue, + parentElm, + refElm, + nested, + ownerArray, + index + ) { + if (isDef(vnode.elm) && isDef(ownerArray)) { + // This vnode was used in a previous render! + // now it's used as a new node, overwriting its elm would cause + // potential patch errors down the road when it's used as an insertion + // reference node. Instead, we clone the node on-demand before creating + // associated DOM element for it. + vnode = ownerArray[index] = cloneVNode(vnode); + } + + vnode.isRootInsert = !nested; // for transition enter check + if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) { + return + } + + var data = vnode.data; + var children = vnode.children; + var tag = vnode.tag; + if (isDef(tag)) { + { + if (data && data.pre) { + creatingElmInVPre++; + } + if (isUnknownElement$$1(vnode, creatingElmInVPre)) { + warn( + 'Unknown custom element: <' + tag + '> - did you ' + + 'register the component correctly? For recursive components, ' + + 'make sure to provide the "name" option.', + vnode.context + ); + } + } + + vnode.elm = vnode.ns + ? nodeOps.createElementNS(vnode.ns, tag) + : nodeOps.createElement(tag, vnode); + setScope(vnode); + + /* istanbul ignore if */ + { + createChildren(vnode, children, insertedVnodeQueue); + if (isDef(data)) { + invokeCreateHooks(vnode, insertedVnodeQueue); + } + insert(parentElm, vnode.elm, refElm); + } + + if (data && data.pre) { + creatingElmInVPre--; + } + } else if (isTrue(vnode.isComment)) { + vnode.elm = nodeOps.createComment(vnode.text); + insert(parentElm, vnode.elm, refElm); + } else { + vnode.elm = nodeOps.createTextNode(vnode.text); + insert(parentElm, vnode.elm, refElm); + } + } + + function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) { + var i = vnode.data; + if (isDef(i)) { + var isReactivated = isDef(vnode.componentInstance) && i.keepAlive; + if (isDef(i = i.hook) && isDef(i = i.init)) { + i(vnode, false /* hydrating */); + } + // after calling the init hook, if the vnode is a child component + // it should've created a child instance and mounted it. the child + // component also has set the placeholder vnode's elm. + // in that case we can just return the element and be done. + if (isDef(vnode.componentInstance)) { + initComponent(vnode, insertedVnodeQueue); + insert(parentElm, vnode.elm, refElm); + if (isTrue(isReactivated)) { + reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm); + } + return true + } + } + } + + function initComponent (vnode, insertedVnodeQueue) { + if (isDef(vnode.data.pendingInsert)) { + insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert); + vnode.data.pendingInsert = null; + } + vnode.elm = vnode.componentInstance.$el; + if (isPatchable(vnode)) { + invokeCreateHooks(vnode, insertedVnodeQueue); + setScope(vnode); + } else { + // empty component root. + // skip all element-related modules except for ref (#3455) + registerRef(vnode); + // make sure to invoke the insert hook + insertedVnodeQueue.push(vnode); + } + } + + function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) { + var i; + // hack for #4339: a reactivated component with inner transition + // does not trigger because the inner node's created hooks are not called + // again. It's not ideal to involve module-specific logic in here but + // there doesn't seem to be a better way to do it. + var innerNode = vnode; + while (innerNode.componentInstance) { + innerNode = innerNode.componentInstance._vnode; + if (isDef(i = innerNode.data) && isDef(i = i.transition)) { + for (i = 0; i < cbs.activate.length; ++i) { + cbs.activate[i](emptyNode, innerNode); + } + insertedVnodeQueue.push(innerNode); + break + } + } + // unlike a newly created component, + // a reactivated keep-alive component doesn't insert itself + insert(parentElm, vnode.elm, refElm); + } + + function insert (parent, elm, ref$$1) { + if (isDef(parent)) { + if (isDef(ref$$1)) { + if (nodeOps.parentNode(ref$$1) === parent) { + nodeOps.insertBefore(parent, elm, ref$$1); + } + } else { + nodeOps.appendChild(parent, elm); + } + } + } + + function createChildren (vnode, children, insertedVnodeQueue) { + if (Array.isArray(children)) { + { + checkDuplicateKeys(children); + } + for (var i = 0; i < children.length; ++i) { + createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i); + } + } else if (isPrimitive(vnode.text)) { + nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text))); + } + } + + function isPatchable (vnode) { + while (vnode.componentInstance) { + vnode = vnode.componentInstance._vnode; + } + return isDef(vnode.tag) + } + + function invokeCreateHooks (vnode, insertedVnodeQueue) { + for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) { + cbs.create[i$1](emptyNode, vnode); + } + i = vnode.data.hook; // Reuse variable + if (isDef(i)) { + if (isDef(i.create)) { i.create(emptyNode, vnode); } + if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); } + } + } + + // set scope id attribute for scoped CSS. + // this is implemented as a special case to avoid the overhead + // of going through the normal attribute patching process. + function setScope (vnode) { + var i; + if (isDef(i = vnode.fnScopeId)) { + nodeOps.setStyleScope(vnode.elm, i); + } else { + var ancestor = vnode; + while (ancestor) { + if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) { + nodeOps.setStyleScope(vnode.elm, i); + } + ancestor = ancestor.parent; + } + } + // for slot content they should also get the scopeId from the host instance. + if (isDef(i = activeInstance) && + i !== vnode.context && + i !== vnode.fnContext && + isDef(i = i.$options._scopeId) + ) { + nodeOps.setStyleScope(vnode.elm, i); + } + } + + function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) { + for (; startIdx <= endIdx; ++startIdx) { + createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx); + } + } + + function invokeDestroyHook (vnode) { + var i, j; + var data = vnode.data; + if (isDef(data)) { + if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); } + for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); } + } + if (isDef(i = vnode.children)) { + for (j = 0; j < vnode.children.length; ++j) { + invokeDestroyHook(vnode.children[j]); + } + } + } + + function removeVnodes (vnodes, startIdx, endIdx) { + for (; startIdx <= endIdx; ++startIdx) { + var ch = vnodes[startIdx]; + if (isDef(ch)) { + if (isDef(ch.tag)) { + removeAndInvokeRemoveHook(ch); + invokeDestroyHook(ch); + } else { // Text node + removeNode(ch.elm); + } + } + } + } + + function removeAndInvokeRemoveHook (vnode, rm) { + if (isDef(rm) || isDef(vnode.data)) { + var i; + var listeners = cbs.remove.length + 1; + if (isDef(rm)) { + // we have a recursively passed down rm callback + // increase the listeners count + rm.listeners += listeners; + } else { + // directly removing + rm = createRmCb(vnode.elm, listeners); + } + // recursively invoke hooks on child component root node + if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) { + removeAndInvokeRemoveHook(i, rm); + } + for (i = 0; i < cbs.remove.length; ++i) { + cbs.remove[i](vnode, rm); + } + if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) { + i(vnode, rm); + } else { + rm(); + } + } else { + removeNode(vnode.elm); + } + } + + function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) { + var oldStartIdx = 0; + var newStartIdx = 0; + var oldEndIdx = oldCh.length - 1; + var oldStartVnode = oldCh[0]; + var oldEndVnode = oldCh[oldEndIdx]; + var newEndIdx = newCh.length - 1; + var newStartVnode = newCh[0]; + var newEndVnode = newCh[newEndIdx]; + var oldKeyToIdx, idxInOld, vnodeToMove, refElm; + + // removeOnly is a special flag used only by <transition-group> + // to ensure removed elements stay in correct relative positions + // during leaving transitions + var canMove = !removeOnly; + + { + checkDuplicateKeys(newCh); + } + + while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) { + if (isUndef(oldStartVnode)) { + oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left + } else if (isUndef(oldEndVnode)) { + oldEndVnode = oldCh[--oldEndIdx]; + } else if (sameVnode(oldStartVnode, newStartVnode)) { + patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx); + oldStartVnode = oldCh[++oldStartIdx]; + newStartVnode = newCh[++newStartIdx]; + } else if (sameVnode(oldEndVnode, newEndVnode)) { + patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx); + oldEndVnode = oldCh[--oldEndIdx]; + newEndVnode = newCh[--newEndIdx]; + } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right + patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx); + canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm)); + oldStartVnode = oldCh[++oldStartIdx]; + newEndVnode = newCh[--newEndIdx]; + } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left + patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx); + canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm); + oldEndVnode = oldCh[--oldEndIdx]; + newStartVnode = newCh[++newStartIdx]; + } else { + if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); } + idxInOld = isDef(newStartVnode.key) + ? oldKeyToIdx[newStartVnode.key] + : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx); + if (isUndef(idxInOld)) { // New element + createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx); + } else { + vnodeToMove = oldCh[idxInOld]; + if (sameVnode(vnodeToMove, newStartVnode)) { + patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx); + oldCh[idxInOld] = undefined; + canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm); + } else { + // same key but different element. treat as new element + createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx); + } + } + newStartVnode = newCh[++newStartIdx]; + } + } + if (oldStartIdx > oldEndIdx) { + refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm; + addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue); + } else if (newStartIdx > newEndIdx) { + removeVnodes(oldCh, oldStartIdx, oldEndIdx); + } + } + + function checkDuplicateKeys (children) { + var seenKeys = {}; + for (var i = 0; i < children.length; i++) { + var vnode = children[i]; + var key = vnode.key; + if (isDef(key)) { + if (seenKeys[key]) { + warn( + ("Duplicate keys detected: '" + key + "'. This may cause an update error."), + vnode.context + ); + } else { + seenKeys[key] = true; + } + } + } + } + + function findIdxInOld (node, oldCh, start, end) { + for (var i = start; i < end; i++) { + var c = oldCh[i]; + if (isDef(c) && sameVnode(node, c)) { return i } + } + } + + function patchVnode ( + oldVnode, + vnode, + insertedVnodeQueue, + ownerArray, + index, + removeOnly + ) { + if (oldVnode === vnode) { + return + } + + if (isDef(vnode.elm) && isDef(ownerArray)) { + // clone reused vnode + vnode = ownerArray[index] = cloneVNode(vnode); + } + + var elm = vnode.elm = oldVnode.elm; + + if (isTrue(oldVnode.isAsyncPlaceholder)) { + if (isDef(vnode.asyncFactory.resolved)) { + hydrate(oldVnode.elm, vnode, insertedVnodeQueue); + } else { + vnode.isAsyncPlaceholder = true; + } + return + } + + // reuse element for static trees. + // note we only do this if the vnode is cloned - + // if the new node is not cloned it means the render functions have been + // reset by the hot-reload-api and we need to do a proper re-render. + if (isTrue(vnode.isStatic) && + isTrue(oldVnode.isStatic) && + vnode.key === oldVnode.key && + (isTrue(vnode.isCloned) || isTrue(vnode.isOnce)) + ) { + vnode.componentInstance = oldVnode.componentInstance; + return + } + + var i; + var data = vnode.data; + if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) { + i(oldVnode, vnode); + } + + var oldCh = oldVnode.children; + var ch = vnode.children; + if (isDef(data) && isPatchable(vnode)) { + for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); } + if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); } + } + if (isUndef(vnode.text)) { + if (isDef(oldCh) && isDef(ch)) { + if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); } + } else if (isDef(ch)) { + { + checkDuplicateKeys(ch); + } + if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); } + addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue); + } else if (isDef(oldCh)) { + removeVnodes(oldCh, 0, oldCh.length - 1); + } else if (isDef(oldVnode.text)) { + nodeOps.setTextContent(elm, ''); + } + } else if (oldVnode.text !== vnode.text) { + nodeOps.setTextContent(elm, vnode.text); + } + if (isDef(data)) { + if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); } + } + } + + function invokeInsertHook (vnode, queue, initial) { + // delay insert hooks for component root nodes, invoke them after the + // element is really inserted + if (isTrue(initial) && isDef(vnode.parent)) { + vnode.parent.data.pendingInsert = queue; + } else { + for (var i = 0; i < queue.length; ++i) { + queue[i].data.hook.insert(queue[i]); + } + } + } + + var hydrationBailed = false; + // list of modules that can skip create hook during hydration because they + // are already rendered on the client or has no need for initialization + // Note: style is excluded because it relies on initial clone for future + // deep updates (#7063). + var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key'); + + // Note: this is a browser-only function so we can assume elms are DOM nodes. + function hydrate (elm, vnode, insertedVnodeQueue, inVPre) { + var i; + var tag = vnode.tag; + var data = vnode.data; + var children = vnode.children; + inVPre = inVPre || (data && data.pre); + vnode.elm = elm; + + if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) { + vnode.isAsyncPlaceholder = true; + return true + } + // assert node match + { + if (!assertNodeMatch(elm, vnode, inVPre)) { + return false + } + } + if (isDef(data)) { + if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); } + if (isDef(i = vnode.componentInstance)) { + // child component. it should have hydrated its own tree. + initComponent(vnode, insertedVnodeQueue); + return true + } + } + if (isDef(tag)) { + if (isDef(children)) { + // empty element, allow client to pick up and populate children + if (!elm.hasChildNodes()) { + createChildren(vnode, children, insertedVnodeQueue); + } else { + // v-html and domProps: innerHTML + if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) { + if (i !== elm.innerHTML) { + /* istanbul ignore if */ + if (typeof console !== 'undefined' && + !hydrationBailed + ) { + hydrationBailed = true; + console.warn('Parent: ', elm); + console.warn('server innerHTML: ', i); + console.warn('client innerHTML: ', elm.innerHTML); + } + return false + } + } else { + // iterate and compare children lists + var childrenMatch = true; + var childNode = elm.firstChild; + for (var i$1 = 0; i$1 < children.length; i$1++) { + if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) { + childrenMatch = false; + break + } + childNode = childNode.nextSibling; + } + // if childNode is not null, it means the actual childNodes list is + // longer than the virtual children list. + if (!childrenMatch || childNode) { + /* istanbul ignore if */ + if (typeof console !== 'undefined' && + !hydrationBailed + ) { + hydrationBailed = true; + console.warn('Parent: ', elm); + console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children); + } + return false + } + } + } + } + if (isDef(data)) { + var fullInvoke = false; + for (var key in data) { + if (!isRenderedModule(key)) { + fullInvoke = true; + invokeCreateHooks(vnode, insertedVnodeQueue); + break + } + } + if (!fullInvoke && data['class']) { + // ensure collecting deps for deep class bindings for future updates + traverse(data['class']); + } + } + } else if (elm.data !== vnode.text) { + elm.data = vnode.text; + } + return true + } + + function assertNodeMatch (node, vnode, inVPre) { + if (isDef(vnode.tag)) { + return vnode.tag.indexOf('vue-component') === 0 || ( + !isUnknownElement$$1(vnode, inVPre) && + vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase()) + ) + } else { + return node.nodeType === (vnode.isComment ? 8 : 3) + } + } + + return function patch (oldVnode, vnode, hydrating, removeOnly) { + if (isUndef(vnode)) { + if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); } + return + } + + var isInitialPatch = false; + var insertedVnodeQueue = []; + + if (isUndef(oldVnode)) { + // empty mount (likely as component), create new root element + isInitialPatch = true; + createElm(vnode, insertedVnodeQueue); + } else { + var isRealElement = isDef(oldVnode.nodeType); + if (!isRealElement && sameVnode(oldVnode, vnode)) { + // patch existing root node + patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly); + } else { + if (isRealElement) { + // mounting to a real element + // check if this is server-rendered content and if we can perform + // a successful hydration. + if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) { + oldVnode.removeAttribute(SSR_ATTR); + hydrating = true; + } + if (isTrue(hydrating)) { + if (hydrate(oldVnode, vnode, insertedVnodeQueue)) { + invokeInsertHook(vnode, insertedVnodeQueue, true); + return oldVnode + } else { + warn( + 'The client-side rendered virtual DOM tree is not matching ' + + 'server-rendered content. This is likely caused by incorrect ' + + 'HTML markup, for example nesting block-level elements inside ' + + '<p>, or missing <tbody>. Bailing hydration and performing ' + + 'full client-side render.' + ); + } + } + // either not server-rendered, or hydration failed. + // create an empty node and replace it + oldVnode = emptyNodeAt(oldVnode); + } + + // replacing existing element + var oldElm = oldVnode.elm; + var parentElm = nodeOps.parentNode(oldElm); + + // create new node + createElm( + vnode, + insertedVnodeQueue, + // extremely rare edge case: do not insert if old element is in a + // leaving transition. Only happens when combining transition + + // keep-alive + HOCs. (#4590) + oldElm._leaveCb ? null : parentElm, + nodeOps.nextSibling(oldElm) + ); + + // update parent placeholder node element, recursively + if (isDef(vnode.parent)) { + var ancestor = vnode.parent; + var patchable = isPatchable(vnode); + while (ancestor) { + for (var i = 0; i < cbs.destroy.length; ++i) { + cbs.destroy[i](ancestor); + } + ancestor.elm = vnode.elm; + if (patchable) { + for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) { + cbs.create[i$1](emptyNode, ancestor); + } + // #6513 + // invoke insert hooks that may have been merged by create hooks. + // e.g. for directives that uses the "inserted" hook. + var insert = ancestor.data.hook.insert; + if (insert.merged) { + // start at index 1 to avoid re-invoking component mounted hook + for (var i$2 = 1; i$2 < insert.fns.length; i$2++) { + insert.fns[i$2](); + } + } + } else { + registerRef(ancestor); + } + ancestor = ancestor.parent; + } + } + + // destroy old node + if (isDef(parentElm)) { + removeVnodes([oldVnode], 0, 0); + } else if (isDef(oldVnode.tag)) { + invokeDestroyHook(oldVnode); + } + } + } + + invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch); + return vnode.elm + } + } + + /* */ + + var directives = { + create: updateDirectives, + update: updateDirectives, + destroy: function unbindDirectives (vnode) { + updateDirectives(vnode, emptyNode); + } + }; + + function updateDirectives (oldVnode, vnode) { + if (oldVnode.data.directives || vnode.data.directives) { + _update(oldVnode, vnode); + } + } + + function _update (oldVnode, vnode) { + var isCreate = oldVnode === emptyNode; + var isDestroy = vnode === emptyNode; + var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context); + var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context); + + var dirsWithInsert = []; + var dirsWithPostpatch = []; + + var key, oldDir, dir; + for (key in newDirs) { + oldDir = oldDirs[key]; + dir = newDirs[key]; + if (!oldDir) { + // new directive, bind + callHook$1(dir, 'bind', vnode, oldVnode); + if (dir.def && dir.def.inserted) { + dirsWithInsert.push(dir); + } + } else { + // existing directive, update + dir.oldValue = oldDir.value; + dir.oldArg = oldDir.arg; + callHook$1(dir, 'update', vnode, oldVnode); + if (dir.def && dir.def.componentUpdated) { + dirsWithPostpatch.push(dir); + } + } + } + + if (dirsWithInsert.length) { + var callInsert = function () { + for (var i = 0; i < dirsWithInsert.length; i++) { + callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode); + } + }; + if (isCreate) { + mergeVNodeHook(vnode, 'insert', callInsert); + } else { + callInsert(); + } + } + + if (dirsWithPostpatch.length) { + mergeVNodeHook(vnode, 'postpatch', function () { + for (var i = 0; i < dirsWithPostpatch.length; i++) { + callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode); + } + }); + } + + if (!isCreate) { + for (key in oldDirs) { + if (!newDirs[key]) { + // no longer present, unbind + callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy); + } + } + } + } + + var emptyModifiers = Object.create(null); + + function normalizeDirectives$1 ( + dirs, + vm + ) { + var res = Object.create(null); + if (!dirs) { + // $flow-disable-line + return res + } + var i, dir; + for (i = 0; i < dirs.length; i++) { + dir = dirs[i]; + if (!dir.modifiers) { + // $flow-disable-line + dir.modifiers = emptyModifiers; + } + res[getRawDirName(dir)] = dir; + dir.def = resolveAsset(vm.$options, 'directives', dir.name, true); + } + // $flow-disable-line + return res + } + + function getRawDirName (dir) { + return dir.rawName || ((dir.name) + "." + (Object.keys(dir.modifiers || {}).join('.'))) + } + + function callHook$1 (dir, hook, vnode, oldVnode, isDestroy) { + var fn = dir.def && dir.def[hook]; + if (fn) { + try { + fn(vnode.elm, dir, vnode, oldVnode, isDestroy); + } catch (e) { + handleError(e, vnode.context, ("directive " + (dir.name) + " " + hook + " hook")); + } + } + } + + var baseModules = [ + ref, + directives + ]; + + /* */ + + function updateAttrs (oldVnode, vnode) { + var opts = vnode.componentOptions; + if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) { + return + } + if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) { + return + } + var key, cur, old; + var elm = vnode.elm; + var oldAttrs = oldVnode.data.attrs || {}; + var attrs = vnode.data.attrs || {}; + // clone observed objects, as the user probably wants to mutate it + if (isDef(attrs.__ob__)) { + attrs = vnode.data.attrs = extend({}, attrs); + } + + for (key in attrs) { + cur = attrs[key]; + old = oldAttrs[key]; + if (old !== cur) { + setAttr(elm, key, cur); + } + } + // #4391: in IE9, setting type can reset value for input[type=radio] + // #6666: IE/Edge forces progress value down to 1 before setting a max + /* istanbul ignore if */ + if ((isIE || isEdge) && attrs.value !== oldAttrs.value) { + setAttr(elm, 'value', attrs.value); + } + for (key in oldAttrs) { + if (isUndef(attrs[key])) { + if (isXlink(key)) { + elm.removeAttributeNS(xlinkNS, getXlinkProp(key)); + } else if (!isEnumeratedAttr(key)) { + elm.removeAttribute(key); + } + } + } + } + + function setAttr (el, key, value) { + if (el.tagName.indexOf('-') > -1) { + baseSetAttr(el, key, value); + } else if (isBooleanAttr(key)) { + // set attribute for blank value + // e.g. <option disabled>Select one</option> + if (isFalsyAttrValue(value)) { + el.removeAttribute(key); + } else { + // technically allowfullscreen is a boolean attribute for <iframe>, + // but Flash expects a value of "true" when used on <embed> tag + value = key === 'allowfullscreen' && el.tagName === 'EMBED' + ? 'true' + : key; + el.setAttribute(key, value); + } + } else if (isEnumeratedAttr(key)) { + el.setAttribute(key, convertEnumeratedValue(key, value)); + } else if (isXlink(key)) { + if (isFalsyAttrValue(value)) { + el.removeAttributeNS(xlinkNS, getXlinkProp(key)); + } else { + el.setAttributeNS(xlinkNS, key, value); + } + } else { + baseSetAttr(el, key, value); + } + } + + function baseSetAttr (el, key, value) { + if (isFalsyAttrValue(value)) { + el.removeAttribute(key); + } else { + // #7138: IE10 & 11 fires input event when setting placeholder on + // <textarea>... block the first input event and remove the blocker + // immediately. + /* istanbul ignore if */ + if ( + isIE && !isIE9 && + el.tagName === 'TEXTAREA' && + key === 'placeholder' && value !== '' && !el.__ieph + ) { + var blocker = function (e) { + e.stopImmediatePropagation(); + el.removeEventListener('input', blocker); + }; + el.addEventListener('input', blocker); + // $flow-disable-line + el.__ieph = true; /* IE placeholder patched */ + } + el.setAttribute(key, value); + } + } + + var attrs = { + create: updateAttrs, + update: updateAttrs + }; + + /* */ + + function updateClass (oldVnode, vnode) { + var el = vnode.elm; + var data = vnode.data; + var oldData = oldVnode.data; + if ( + isUndef(data.staticClass) && + isUndef(data.class) && ( + isUndef(oldData) || ( + isUndef(oldData.staticClass) && + isUndef(oldData.class) + ) + ) + ) { + return + } + + var cls = genClassForVnode(vnode); + + // handle transition classes + var transitionClass = el._transitionClasses; + if (isDef(transitionClass)) { + cls = concat(cls, stringifyClass(transitionClass)); + } + + // set the class + if (cls !== el._prevClass) { + el.setAttribute('class', cls); + el._prevClass = cls; + } + } + + var klass = { + create: updateClass, + update: updateClass + }; + + /* */ + + var validDivisionCharRE = /[\w).+\-_$\]]/; + + function parseFilters (exp) { + var inSingle = false; + var inDouble = false; + var inTemplateString = false; + var inRegex = false; + var curly = 0; + var square = 0; + var paren = 0; + var lastFilterIndex = 0; + var c, prev, i, expression, filters; + + for (i = 0; i < exp.length; i++) { + prev = c; + c = exp.charCodeAt(i); + if (inSingle) { + if (c === 0x27 && prev !== 0x5C) { inSingle = false; } + } else if (inDouble) { + if (c === 0x22 && prev !== 0x5C) { inDouble = false; } + } else if (inTemplateString) { + if (c === 0x60 && prev !== 0x5C) { inTemplateString = false; } + } else if (inRegex) { + if (c === 0x2f && prev !== 0x5C) { inRegex = false; } + } else if ( + c === 0x7C && // pipe + exp.charCodeAt(i + 1) !== 0x7C && + exp.charCodeAt(i - 1) !== 0x7C && + !curly && !square && !paren + ) { + if (expression === undefined) { + // first filter, end of expression + lastFilterIndex = i + 1; + expression = exp.slice(0, i).trim(); + } else { + pushFilter(); + } + } else { + switch (c) { + case 0x22: inDouble = true; break // " + case 0x27: inSingle = true; break // ' + case 0x60: inTemplateString = true; break // ` + case 0x28: paren++; break // ( + case 0x29: paren--; break // ) + case 0x5B: square++; break // [ + case 0x5D: square--; break // ] + case 0x7B: curly++; break // { + case 0x7D: curly--; break // } + } + if (c === 0x2f) { // / + var j = i - 1; + var p = (void 0); + // find first non-whitespace prev char + for (; j >= 0; j--) { + p = exp.charAt(j); + if (p !== ' ') { break } + } + if (!p || !validDivisionCharRE.test(p)) { + inRegex = true; + } + } + } + } + + if (expression === undefined) { + expression = exp.slice(0, i).trim(); + } else if (lastFilterIndex !== 0) { + pushFilter(); + } + + function pushFilter () { + (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim()); + lastFilterIndex = i + 1; + } + + if (filters) { + for (i = 0; i < filters.length; i++) { + expression = wrapFilter(expression, filters[i]); + } + } + + return expression + } + + function wrapFilter (exp, filter) { + var i = filter.indexOf('('); + if (i < 0) { + // _f: resolveFilter + return ("_f(\"" + filter + "\")(" + exp + ")") + } else { + var name = filter.slice(0, i); + var args = filter.slice(i + 1); + return ("_f(\"" + name + "\")(" + exp + (args !== ')' ? ',' + args : args)) + } + } + + /* */ + + + + /* eslint-disable no-unused-vars */ + function baseWarn (msg, range) { + console.error(("[Vue compiler]: " + msg)); + } + /* eslint-enable no-unused-vars */ + + function pluckModuleFunction ( + modules, + key + ) { + return modules + ? modules.map(function (m) { return m[key]; }).filter(function (_) { return _; }) + : [] + } + + function addProp (el, name, value, range, dynamic) { + (el.props || (el.props = [])).push(rangeSetItem({ name: name, value: value, dynamic: dynamic }, range)); + el.plain = false; + } + + function addAttr (el, name, value, range, dynamic) { + var attrs = dynamic + ? (el.dynamicAttrs || (el.dynamicAttrs = [])) + : (el.attrs || (el.attrs = [])); + attrs.push(rangeSetItem({ name: name, value: value, dynamic: dynamic }, range)); + el.plain = false; + } + + // add a raw attr (use this in preTransforms) + function addRawAttr (el, name, value, range) { + el.attrsMap[name] = value; + el.attrsList.push(rangeSetItem({ name: name, value: value }, range)); + } + + function addDirective ( + el, + name, + rawName, + value, + arg, + isDynamicArg, + modifiers, + range + ) { + (el.directives || (el.directives = [])).push(rangeSetItem({ + name: name, + rawName: rawName, + value: value, + arg: arg, + isDynamicArg: isDynamicArg, + modifiers: modifiers + }, range)); + el.plain = false; + } + + function prependModifierMarker (symbol, name, dynamic) { + return dynamic + ? ("_p(" + name + ",\"" + symbol + "\")") + : symbol + name // mark the event as captured + } + + function addHandler ( + el, + name, + value, + modifiers, + important, + warn, + range, + dynamic + ) { + modifiers = modifiers || emptyObject; + // warn prevent and passive modifier + /* istanbul ignore if */ + if ( + warn && + modifiers.prevent && modifiers.passive + ) { + warn( + 'passive and prevent can\'t be used together. ' + + 'Passive handler can\'t prevent default event.', + range + ); + } + + // normalize click.right and click.middle since they don't actually fire + // this is technically browser-specific, but at least for now browsers are + // the only target envs that have right/middle clicks. + if (modifiers.right) { + if (dynamic) { + name = "(" + name + ")==='click'?'contextmenu':(" + name + ")"; + } else if (name === 'click') { + name = 'contextmenu'; + delete modifiers.right; + } + } else if (modifiers.middle) { + if (dynamic) { + name = "(" + name + ")==='click'?'mouseup':(" + name + ")"; + } else if (name === 'click') { + name = 'mouseup'; + } + } + + // check capture modifier + if (modifiers.capture) { + delete modifiers.capture; + name = prependModifierMarker('!', name, dynamic); + } + if (modifiers.once) { + delete modifiers.once; + name = prependModifierMarker('~', name, dynamic); + } + /* istanbul ignore if */ + if (modifiers.passive) { + delete modifiers.passive; + name = prependModifierMarker('&', name, dynamic); + } + + var events; + if (modifiers.native) { + delete modifiers.native; + events = el.nativeEvents || (el.nativeEvents = {}); + } else { + events = el.events || (el.events = {}); + } + + var newHandler = rangeSetItem({ value: value.trim(), dynamic: dynamic }, range); + if (modifiers !== emptyObject) { + newHandler.modifiers = modifiers; + } + + var handlers = events[name]; + /* istanbul ignore if */ + if (Array.isArray(handlers)) { + important ? handlers.unshift(newHandler) : handlers.push(newHandler); + } else if (handlers) { + events[name] = important ? [newHandler, handlers] : [handlers, newHandler]; + } else { + events[name] = newHandler; + } + + el.plain = false; + } + + function getRawBindingAttr ( + el, + name + ) { + return el.rawAttrsMap[':' + name] || + el.rawAttrsMap['v-bind:' + name] || + el.rawAttrsMap[name] + } + + function getBindingAttr ( + el, + name, + getStatic + ) { + var dynamicValue = + getAndRemoveAttr(el, ':' + name) || + getAndRemoveAttr(el, 'v-bind:' + name); + if (dynamicValue != null) { + return parseFilters(dynamicValue) + } else if (getStatic !== false) { + var staticValue = getAndRemoveAttr(el, name); + if (staticValue != null) { + return JSON.stringify(staticValue) + } + } + } + + // note: this only removes the attr from the Array (attrsList) so that it + // doesn't get processed by processAttrs. + // By default it does NOT remove it from the map (attrsMap) because the map is + // needed during codegen. + function getAndRemoveAttr ( + el, + name, + removeFromMap + ) { + var val; + if ((val = el.attrsMap[name]) != null) { + var list = el.attrsList; + for (var i = 0, l = list.length; i < l; i++) { + if (list[i].name === name) { + list.splice(i, 1); + break + } + } + } + if (removeFromMap) { + delete el.attrsMap[name]; + } + return val + } + + function getAndRemoveAttrByRegex ( + el, + name + ) { + var list = el.attrsList; + for (var i = 0, l = list.length; i < l; i++) { + var attr = list[i]; + if (name.test(attr.name)) { + list.splice(i, 1); + return attr + } + } + } + + function rangeSetItem ( + item, + range + ) { + if (range) { + if (range.start != null) { + item.start = range.start; + } + if (range.end != null) { + item.end = range.end; + } + } + return item + } + + /* */ + + /** + * Cross-platform code generation for component v-model + */ + function genComponentModel ( + el, + value, + modifiers + ) { + var ref = modifiers || {}; + var number = ref.number; + var trim = ref.trim; + + var baseValueExpression = '$$v'; + var valueExpression = baseValueExpression; + if (trim) { + valueExpression = + "(typeof " + baseValueExpression + " === 'string'" + + "? " + baseValueExpression + ".trim()" + + ": " + baseValueExpression + ")"; + } + if (number) { + valueExpression = "_n(" + valueExpression + ")"; + } + var assignment = genAssignmentCode(value, valueExpression); + + el.model = { + value: ("(" + value + ")"), + expression: JSON.stringify(value), + callback: ("function (" + baseValueExpression + ") {" + assignment + "}") + }; + } + + /** + * Cross-platform codegen helper for generating v-model value assignment code. + */ + function genAssignmentCode ( + value, + assignment + ) { + var res = parseModel(value); + if (res.key === null) { + return (value + "=" + assignment) + } else { + return ("$set(" + (res.exp) + ", " + (res.key) + ", " + assignment + ")") + } + } + + /** + * Parse a v-model expression into a base path and a final key segment. + * Handles both dot-path and possible square brackets. + * + * Possible cases: + * + * - test + * - test[key] + * - test[test1[key]] + * - test["a"][key] + * - xxx.test[a[a].test1[key]] + * - test.xxx.a["asa"][test1[key]] + * + */ + + var len, str, chr, index$1, expressionPos, expressionEndPos; + + + + function parseModel (val) { + // Fix https://github.com/vuejs/vue/pull/7730 + // allow v-model="obj.val " (trailing whitespace) + val = val.trim(); + len = val.length; + + if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) { + index$1 = val.lastIndexOf('.'); + if (index$1 > -1) { + return { + exp: val.slice(0, index$1), + key: '"' + val.slice(index$1 + 1) + '"' + } + } else { + return { + exp: val, + key: null + } + } + } + + str = val; + index$1 = expressionPos = expressionEndPos = 0; + + while (!eof()) { + chr = next(); + /* istanbul ignore if */ + if (isStringStart(chr)) { + parseString(chr); + } else if (chr === 0x5B) { + parseBracket(chr); + } + } + + return { + exp: val.slice(0, expressionPos), + key: val.slice(expressionPos + 1, expressionEndPos) + } + } + + function next () { + return str.charCodeAt(++index$1) + } + + function eof () { + return index$1 >= len + } + + function isStringStart (chr) { + return chr === 0x22 || chr === 0x27 + } + + function parseBracket (chr) { + var inBracket = 1; + expressionPos = index$1; + while (!eof()) { + chr = next(); + if (isStringStart(chr)) { + parseString(chr); + continue + } + if (chr === 0x5B) { inBracket++; } + if (chr === 0x5D) { inBracket--; } + if (inBracket === 0) { + expressionEndPos = index$1; + break + } + } + } + + function parseString (chr) { + var stringQuote = chr; + while (!eof()) { + chr = next(); + if (chr === stringQuote) { + break + } + } + } + + /* */ + + var warn$1; + + // in some cases, the event used has to be determined at runtime + // so we used some reserved tokens during compile. + var RANGE_TOKEN = '__r'; + var CHECKBOX_RADIO_TOKEN = '__c'; + + function model ( + el, + dir, + _warn + ) { + warn$1 = _warn; + var value = dir.value; + var modifiers = dir.modifiers; + var tag = el.tag; + var type = el.attrsMap.type; + + { + // inputs with type="file" are read only and setting the input's + // value will throw an error. + if (tag === 'input' && type === 'file') { + warn$1( + "<" + (el.tag) + " v-model=\"" + value + "\" type=\"file\">:\n" + + "File inputs are read only. Use a v-on:change listener instead.", + el.rawAttrsMap['v-model'] + ); + } + } + + if (el.component) { + genComponentModel(el, value, modifiers); + // component v-model doesn't need extra runtime + return false + } else if (tag === 'select') { + genSelect(el, value, modifiers); + } else if (tag === 'input' && type === 'checkbox') { + genCheckboxModel(el, value, modifiers); + } else if (tag === 'input' && type === 'radio') { + genRadioModel(el, value, modifiers); + } else if (tag === 'input' || tag === 'textarea') { + genDefaultModel(el, value, modifiers); + } else if (!config.isReservedTag(tag)) { + genComponentModel(el, value, modifiers); + // component v-model doesn't need extra runtime + return false + } else { + warn$1( + "<" + (el.tag) + " v-model=\"" + value + "\">: " + + "v-model is not supported on this element type. " + + 'If you are working with contenteditable, it\'s recommended to ' + + 'wrap a library dedicated for that purpose inside a custom component.', + el.rawAttrsMap['v-model'] + ); + } + + // ensure runtime directive metadata + return true + } + + function genCheckboxModel ( + el, + value, + modifiers + ) { + var number = modifiers && modifiers.number; + var valueBinding = getBindingAttr(el, 'value') || 'null'; + var trueValueBinding = getBindingAttr(el, 'true-value') || 'true'; + var falseValueBinding = getBindingAttr(el, 'false-value') || 'false'; + addProp(el, 'checked', + "Array.isArray(" + value + ")" + + "?_i(" + value + "," + valueBinding + ")>-1" + ( + trueValueBinding === 'true' + ? (":(" + value + ")") + : (":_q(" + value + "," + trueValueBinding + ")") + ) + ); + addHandler(el, 'change', + "var $$a=" + value + "," + + '$$el=$event.target,' + + "$$c=$$el.checked?(" + trueValueBinding + "):(" + falseValueBinding + ");" + + 'if(Array.isArray($$a)){' + + "var $$v=" + (number ? '_n(' + valueBinding + ')' : valueBinding) + "," + + '$$i=_i($$a,$$v);' + + "if($$el.checked){$$i<0&&(" + (genAssignmentCode(value, '$$a.concat([$$v])')) + ")}" + + "else{$$i>-1&&(" + (genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))')) + ")}" + + "}else{" + (genAssignmentCode(value, '$$c')) + "}", + null, true + ); + } + + function genRadioModel ( + el, + value, + modifiers + ) { + var number = modifiers && modifiers.number; + var valueBinding = getBindingAttr(el, 'value') || 'null'; + valueBinding = number ? ("_n(" + valueBinding + ")") : valueBinding; + addProp(el, 'checked', ("_q(" + value + "," + valueBinding + ")")); + addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true); + } + + function genSelect ( + el, + value, + modifiers + ) { + var number = modifiers && modifiers.number; + var selectedVal = "Array.prototype.filter" + + ".call($event.target.options,function(o){return o.selected})" + + ".map(function(o){var val = \"_value\" in o ? o._value : o.value;" + + "return " + (number ? '_n(val)' : 'val') + "})"; + + var assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]'; + var code = "var $$selectedVal = " + selectedVal + ";"; + code = code + " " + (genAssignmentCode(value, assignment)); + addHandler(el, 'change', code, null, true); + } + + function genDefaultModel ( + el, + value, + modifiers + ) { + var type = el.attrsMap.type; + + // warn if v-bind:value conflicts with v-model + // except for inputs with v-bind:type + { + var value$1 = el.attrsMap['v-bind:value'] || el.attrsMap[':value']; + var typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type']; + if (value$1 && !typeBinding) { + var binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value'; + warn$1( + binding + "=\"" + value$1 + "\" conflicts with v-model on the same element " + + 'because the latter already expands to a value binding internally', + el.rawAttrsMap[binding] + ); + } + } + + var ref = modifiers || {}; + var lazy = ref.lazy; + var number = ref.number; + var trim = ref.trim; + var needCompositionGuard = !lazy && type !== 'range'; + var event = lazy + ? 'change' + : type === 'range' + ? RANGE_TOKEN + : 'input'; + + var valueExpression = '$event.target.value'; + if (trim) { + valueExpression = "$event.target.value.trim()"; + } + if (number) { + valueExpression = "_n(" + valueExpression + ")"; + } + + var code = genAssignmentCode(value, valueExpression); + if (needCompositionGuard) { + code = "if($event.target.composing)return;" + code; + } + + addProp(el, 'value', ("(" + value + ")")); + addHandler(el, event, code, null, true); + if (trim || number) { + addHandler(el, 'blur', '$forceUpdate()'); + } + } + + /* */ + + // normalize v-model event tokens that can only be determined at runtime. + // it's important to place the event as the first in the array because + // the whole point is ensuring the v-model callback gets called before + // user-attached handlers. + function normalizeEvents (on) { + /* istanbul ignore if */ + if (isDef(on[RANGE_TOKEN])) { + // IE input[type=range] only supports `change` event + var event = isIE ? 'change' : 'input'; + on[event] = [].concat(on[RANGE_TOKEN], on[event] || []); + delete on[RANGE_TOKEN]; + } + // This was originally intended to fix #4521 but no longer necessary + // after 2.5. Keeping it for backwards compat with generated code from < 2.4 + /* istanbul ignore if */ + if (isDef(on[CHECKBOX_RADIO_TOKEN])) { + on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []); + delete on[CHECKBOX_RADIO_TOKEN]; + } + } + + var target$1; + + function createOnceHandler$1 (event, handler, capture) { + var _target = target$1; // save current target element in closure + return function onceHandler () { + var res = handler.apply(null, arguments); + if (res !== null) { + remove$2(event, onceHandler, capture, _target); + } + } + } + + // #9446: Firefox <= 53 (in particular, ESR 52) has incorrect Event.timeStamp + // implementation and does not fire microtasks in between event propagation, so + // safe to exclude. + var useMicrotaskFix = isUsingMicroTask && !(isFF && Number(isFF[1]) <= 53); + + function add$1 ( + name, + handler, + capture, + passive + ) { + // async edge case #6566: inner click event triggers patch, event handler + // attached to outer element during patch, and triggered again. This + // happens because browsers fire microtask ticks between event propagation. + // the solution is simple: we save the timestamp when a handler is attached, + // and the handler would only fire if the event passed to it was fired + // AFTER it was attached. + if (useMicrotaskFix) { + var attachedTimestamp = currentFlushTimestamp; + var original = handler; + handler = original._wrapper = function (e) { + if ( + // no bubbling, should always fire. + // this is just a safety net in case event.timeStamp is unreliable in + // certain weird environments... + e.target === e.currentTarget || + // event is fired after handler attachment + e.timeStamp >= attachedTimestamp || + // bail for environments that have buggy event.timeStamp implementations + // #9462 iOS 9 bug: event.timeStamp is 0 after history.pushState + // #9681 QtWebEngine event.timeStamp is negative value + e.timeStamp <= 0 || + // #9448 bail if event is fired in another document in a multi-page + // electron/nw.js app, since event.timeStamp will be using a different + // starting reference + e.target.ownerDocument !== document + ) { + return original.apply(this, arguments) + } + }; + } + target$1.addEventListener( + name, + handler, + supportsPassive + ? { capture: capture, passive: passive } + : capture + ); + } + + function remove$2 ( + name, + handler, + capture, + _target + ) { + (_target || target$1).removeEventListener( + name, + handler._wrapper || handler, + capture + ); + } + + function updateDOMListeners (oldVnode, vnode) { + if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) { + return + } + var on = vnode.data.on || {}; + var oldOn = oldVnode.data.on || {}; + target$1 = vnode.elm; + normalizeEvents(on); + updateListeners(on, oldOn, add$1, remove$2, createOnceHandler$1, vnode.context); + target$1 = undefined; + } + + var events = { + create: updateDOMListeners, + update: updateDOMListeners + }; + + /* */ + + var svgContainer; + + function updateDOMProps (oldVnode, vnode) { + if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) { + return + } + var key, cur; + var elm = vnode.elm; + var oldProps = oldVnode.data.domProps || {}; + var props = vnode.data.domProps || {}; + // clone observed objects, as the user probably wants to mutate it + if (isDef(props.__ob__)) { + props = vnode.data.domProps = extend({}, props); + } + + for (key in oldProps) { + if (!(key in props)) { + elm[key] = ''; + } + } + + for (key in props) { + cur = props[key]; + // ignore children if the node has textContent or innerHTML, + // as these will throw away existing DOM nodes and cause removal errors + // on subsequent patches (#3360) + if (key === 'textContent' || key === 'innerHTML') { + if (vnode.children) { vnode.children.length = 0; } + if (cur === oldProps[key]) { continue } + // #6601 work around Chrome version <= 55 bug where single textNode + // replaced by innerHTML/textContent retains its parentNode property + if (elm.childNodes.length === 1) { + elm.removeChild(elm.childNodes[0]); + } + } + + if (key === 'value' && elm.tagName !== 'PROGRESS') { + // store value as _value as well since + // non-string values will be stringified + elm._value = cur; + // avoid resetting cursor position when value is the same + var strCur = isUndef(cur) ? '' : String(cur); + if (shouldUpdateValue(elm, strCur)) { + elm.value = strCur; + } + } else if (key === 'innerHTML' && isSVG(elm.tagName) && isUndef(elm.innerHTML)) { + // IE doesn't support innerHTML for SVG elements + svgContainer = svgContainer || document.createElement('div'); + svgContainer.innerHTML = "<svg>" + cur + "</svg>"; + var svg = svgContainer.firstChild; + while (elm.firstChild) { + elm.removeChild(elm.firstChild); + } + while (svg.firstChild) { + elm.appendChild(svg.firstChild); + } + } else if ( + // skip the update if old and new VDOM state is the same. + // `value` is handled separately because the DOM value may be temporarily + // out of sync with VDOM state due to focus, composition and modifiers. + // This #4521 by skipping the unnecessary `checked` update. + cur !== oldProps[key] + ) { + // some property updates can throw + // e.g. `value` on <progress> w/ non-finite value + try { + elm[key] = cur; + } catch (e) {} + } + } + } + + // check platforms/web/util/attrs.js acceptValue + + + function shouldUpdateValue (elm, checkVal) { + return (!elm.composing && ( + elm.tagName === 'OPTION' || + isNotInFocusAndDirty(elm, checkVal) || + isDirtyWithModifiers(elm, checkVal) + )) + } + + function isNotInFocusAndDirty (elm, checkVal) { + // return true when textbox (.number and .trim) loses focus and its value is + // not equal to the updated value + var notInFocus = true; + // #6157 + // work around IE bug when accessing document.activeElement in an iframe + try { notInFocus = document.activeElement !== elm; } catch (e) {} + return notInFocus && elm.value !== checkVal + } + + function isDirtyWithModifiers (elm, newVal) { + var value = elm.value; + var modifiers = elm._vModifiers; // injected by v-model runtime + if (isDef(modifiers)) { + if (modifiers.number) { + return toNumber(value) !== toNumber(newVal) + } + if (modifiers.trim) { + return value.trim() !== newVal.trim() + } + } + return value !== newVal + } + + var domProps = { + create: updateDOMProps, + update: updateDOMProps + }; + + /* */ + + var parseStyleText = cached(function (cssText) { + var res = {}; + var listDelimiter = /;(?![^(]*\))/g; + var propertyDelimiter = /:(.+)/; + cssText.split(listDelimiter).forEach(function (item) { + if (item) { + var tmp = item.split(propertyDelimiter); + tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim()); + } + }); + return res + }); + + // merge static and dynamic style data on the same vnode + function normalizeStyleData (data) { + var style = normalizeStyleBinding(data.style); + // static style is pre-processed into an object during compilation + // and is always a fresh object, so it's safe to merge into it + return data.staticStyle + ? extend(data.staticStyle, style) + : style + } + + // normalize possible array / string values into Object + function normalizeStyleBinding (bindingStyle) { + if (Array.isArray(bindingStyle)) { + return toObject(bindingStyle) + } + if (typeof bindingStyle === 'string') { + return parseStyleText(bindingStyle) + } + return bindingStyle + } + + /** + * parent component style should be after child's + * so that parent component's style could override it + */ + function getStyle (vnode, checkChild) { + var res = {}; + var styleData; + + if (checkChild) { + var childNode = vnode; + while (childNode.componentInstance) { + childNode = childNode.componentInstance._vnode; + if ( + childNode && childNode.data && + (styleData = normalizeStyleData(childNode.data)) + ) { + extend(res, styleData); + } + } + } + + if ((styleData = normalizeStyleData(vnode.data))) { + extend(res, styleData); + } + + var parentNode = vnode; + while ((parentNode = parentNode.parent)) { + if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) { + extend(res, styleData); + } + } + return res + } + + /* */ + + var cssVarRE = /^--/; + var importantRE = /\s*!important$/; + var setProp = function (el, name, val) { + /* istanbul ignore if */ + if (cssVarRE.test(name)) { + el.style.setProperty(name, val); + } else if (importantRE.test(val)) { + el.style.setProperty(hyphenate(name), val.replace(importantRE, ''), 'important'); + } else { + var normalizedName = normalize(name); + if (Array.isArray(val)) { + // Support values array created by autoprefixer, e.g. + // {display: ["-webkit-box", "-ms-flexbox", "flex"]} + // Set them one by one, and the browser will only set those it can recognize + for (var i = 0, len = val.length; i < len; i++) { + el.style[normalizedName] = val[i]; + } + } else { + el.style[normalizedName] = val; + } + } + }; + + var vendorNames = ['Webkit', 'Moz', 'ms']; + + var emptyStyle; + var normalize = cached(function (prop) { + emptyStyle = emptyStyle || document.createElement('div').style; + prop = camelize(prop); + if (prop !== 'filter' && (prop in emptyStyle)) { + return prop + } + var capName = prop.charAt(0).toUpperCase() + prop.slice(1); + for (var i = 0; i < vendorNames.length; i++) { + var name = vendorNames[i] + capName; + if (name in emptyStyle) { + return name + } + } + }); + + function updateStyle (oldVnode, vnode) { + var data = vnode.data; + var oldData = oldVnode.data; + + if (isUndef(data.staticStyle) && isUndef(data.style) && + isUndef(oldData.staticStyle) && isUndef(oldData.style) + ) { + return + } + + var cur, name; + var el = vnode.elm; + var oldStaticStyle = oldData.staticStyle; + var oldStyleBinding = oldData.normalizedStyle || oldData.style || {}; + + // if static style exists, stylebinding already merged into it when doing normalizeStyleData + var oldStyle = oldStaticStyle || oldStyleBinding; + + var style = normalizeStyleBinding(vnode.data.style) || {}; + + // store normalized style under a different key for next diff + // make sure to clone it if it's reactive, since the user likely wants + // to mutate it. + vnode.data.normalizedStyle = isDef(style.__ob__) + ? extend({}, style) + : style; + + var newStyle = getStyle(vnode, true); + + for (name in oldStyle) { + if (isUndef(newStyle[name])) { + setProp(el, name, ''); + } + } + for (name in newStyle) { + cur = newStyle[name]; + if (cur !== oldStyle[name]) { + // ie9 setting to null has no effect, must use empty string + setProp(el, name, cur == null ? '' : cur); + } + } + } + + var style = { + create: updateStyle, + update: updateStyle + }; + + /* */ + + var whitespaceRE = /\s+/; + + /** + * Add class with compatibility for SVG since classList is not supported on + * SVG elements in IE + */ + function addClass (el, cls) { + /* istanbul ignore if */ + if (!cls || !(cls = cls.trim())) { + return + } + + /* istanbul ignore else */ + if (el.classList) { + if (cls.indexOf(' ') > -1) { + cls.split(whitespaceRE).forEach(function (c) { return el.classList.add(c); }); + } else { + el.classList.add(cls); + } + } else { + var cur = " " + (el.getAttribute('class') || '') + " "; + if (cur.indexOf(' ' + cls + ' ') < 0) { + el.setAttribute('class', (cur + cls).trim()); + } + } + } + + /** + * Remove class with compatibility for SVG since classList is not supported on + * SVG elements in IE + */ + function removeClass (el, cls) { + /* istanbul ignore if */ + if (!cls || !(cls = cls.trim())) { + return + } + + /* istanbul ignore else */ + if (el.classList) { + if (cls.indexOf(' ') > -1) { + cls.split(whitespaceRE).forEach(function (c) { return el.classList.remove(c); }); + } else { + el.classList.remove(cls); + } + if (!el.classList.length) { + el.removeAttribute('class'); + } + } else { + var cur = " " + (el.getAttribute('class') || '') + " "; + var tar = ' ' + cls + ' '; + while (cur.indexOf(tar) >= 0) { + cur = cur.replace(tar, ' '); + } + cur = cur.trim(); + if (cur) { + el.setAttribute('class', cur); + } else { + el.removeAttribute('class'); + } + } + } + + /* */ + + function resolveTransition (def$$1) { + if (!def$$1) { + return + } + /* istanbul ignore else */ + if (typeof def$$1 === 'object') { + var res = {}; + if (def$$1.css !== false) { + extend(res, autoCssTransition(def$$1.name || 'v')); + } + extend(res, def$$1); + return res + } else if (typeof def$$1 === 'string') { + return autoCssTransition(def$$1) + } + } + + var autoCssTransition = cached(function (name) { + return { + enterClass: (name + "-enter"), + enterToClass: (name + "-enter-to"), + enterActiveClass: (name + "-enter-active"), + leaveClass: (name + "-leave"), + leaveToClass: (name + "-leave-to"), + leaveActiveClass: (name + "-leave-active") + } + }); + + var hasTransition = inBrowser && !isIE9; + var TRANSITION = 'transition'; + var ANIMATION = 'animation'; + + // Transition property/event sniffing + var transitionProp = 'transition'; + var transitionEndEvent = 'transitionend'; + var animationProp = 'animation'; + var animationEndEvent = 'animationend'; + if (hasTransition) { + /* istanbul ignore if */ + if (window.ontransitionend === undefined && + window.onwebkittransitionend !== undefined + ) { + transitionProp = 'WebkitTransition'; + transitionEndEvent = 'webkitTransitionEnd'; + } + if (window.onanimationend === undefined && + window.onwebkitanimationend !== undefined + ) { + animationProp = 'WebkitAnimation'; + animationEndEvent = 'webkitAnimationEnd'; + } + } + + // binding to window is necessary to make hot reload work in IE in strict mode + var raf = inBrowser + ? window.requestAnimationFrame + ? window.requestAnimationFrame.bind(window) + : setTimeout + : /* istanbul ignore next */ function (fn) { return fn(); }; + + function nextFrame (fn) { + raf(function () { + raf(fn); + }); + } + + function addTransitionClass (el, cls) { + var transitionClasses = el._transitionClasses || (el._transitionClasses = []); + if (transitionClasses.indexOf(cls) < 0) { + transitionClasses.push(cls); + addClass(el, cls); + } + } + + function removeTransitionClass (el, cls) { + if (el._transitionClasses) { + remove(el._transitionClasses, cls); + } + removeClass(el, cls); + } + + function whenTransitionEnds ( + el, + expectedType, + cb + ) { + var ref = getTransitionInfo(el, expectedType); + var type = ref.type; + var timeout = ref.timeout; + var propCount = ref.propCount; + if (!type) { return cb() } + var event = type === TRANSITION ? transitionEndEvent : animationEndEvent; + var ended = 0; + var end = function () { + el.removeEventListener(event, onEnd); + cb(); + }; + var onEnd = function (e) { + if (e.target === el) { + if (++ended >= propCount) { + end(); + } + } + }; + setTimeout(function () { + if (ended < propCount) { + end(); + } + }, timeout + 1); + el.addEventListener(event, onEnd); + } + + var transformRE = /\b(transform|all)(,|$)/; + + function getTransitionInfo (el, expectedType) { + var styles = window.getComputedStyle(el); + // JSDOM may return undefined for transition properties + var transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', '); + var transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', '); + var transitionTimeout = getTimeout(transitionDelays, transitionDurations); + var animationDelays = (styles[animationProp + 'Delay'] || '').split(', '); + var animationDurations = (styles[animationProp + 'Duration'] || '').split(', '); + var animationTimeout = getTimeout(animationDelays, animationDurations); + + var type; + var timeout = 0; + var propCount = 0; + /* istanbul ignore if */ + if (expectedType === TRANSITION) { + if (transitionTimeout > 0) { + type = TRANSITION; + timeout = transitionTimeout; + propCount = transitionDurations.length; + } + } else if (expectedType === ANIMATION) { + if (animationTimeout > 0) { + type = ANIMATION; + timeout = animationTimeout; + propCount = animationDurations.length; + } + } else { + timeout = Math.max(transitionTimeout, animationTimeout); + type = timeout > 0 + ? transitionTimeout > animationTimeout + ? TRANSITION + : ANIMATION + : null; + propCount = type + ? type === TRANSITION + ? transitionDurations.length + : animationDurations.length + : 0; + } + var hasTransform = + type === TRANSITION && + transformRE.test(styles[transitionProp + 'Property']); + return { + type: type, + timeout: timeout, + propCount: propCount, + hasTransform: hasTransform + } + } + + function getTimeout (delays, durations) { + /* istanbul ignore next */ + while (delays.length < durations.length) { + delays = delays.concat(delays); + } + + return Math.max.apply(null, durations.map(function (d, i) { + return toMs(d) + toMs(delays[i]) + })) + } + + // Old versions of Chromium (below 61.0.3163.100) formats floating pointer numbers + // in a locale-dependent way, using a comma instead of a dot. + // If comma is not replaced with a dot, the input will be rounded down (i.e. acting + // as a floor function) causing unexpected behaviors + function toMs (s) { + return Number(s.slice(0, -1).replace(',', '.')) * 1000 + } + + /* */ + + function enter (vnode, toggleDisplay) { + var el = vnode.elm; + + // call leave callback now + if (isDef(el._leaveCb)) { + el._leaveCb.cancelled = true; + el._leaveCb(); + } + + var data = resolveTransition(vnode.data.transition); + if (isUndef(data)) { + return + } + + /* istanbul ignore if */ + if (isDef(el._enterCb) || el.nodeType !== 1) { + return + } + + var css = data.css; + var type = data.type; + var enterClass = data.enterClass; + var enterToClass = data.enterToClass; + var enterActiveClass = data.enterActiveClass; + var appearClass = data.appearClass; + var appearToClass = data.appearToClass; + var appearActiveClass = data.appearActiveClass; + var beforeEnter = data.beforeEnter; + var enter = data.enter; + var afterEnter = data.afterEnter; + var enterCancelled = data.enterCancelled; + var beforeAppear = data.beforeAppear; + var appear = data.appear; + var afterAppear = data.afterAppear; + var appearCancelled = data.appearCancelled; + var duration = data.duration; + + // activeInstance will always be the <transition> component managing this + // transition. One edge case to check is when the <transition> is placed + // as the root node of a child component. In that case we need to check + // <transition>'s parent for appear check. + var context = activeInstance; + var transitionNode = activeInstance.$vnode; + while (transitionNode && transitionNode.parent) { + context = transitionNode.context; + transitionNode = transitionNode.parent; + } + + var isAppear = !context._isMounted || !vnode.isRootInsert; + + if (isAppear && !appear && appear !== '') { + return + } + + var startClass = isAppear && appearClass + ? appearClass + : enterClass; + var activeClass = isAppear && appearActiveClass + ? appearActiveClass + : enterActiveClass; + var toClass = isAppear && appearToClass + ? appearToClass + : enterToClass; + + var beforeEnterHook = isAppear + ? (beforeAppear || beforeEnter) + : beforeEnter; + var enterHook = isAppear + ? (typeof appear === 'function' ? appear : enter) + : enter; + var afterEnterHook = isAppear + ? (afterAppear || afterEnter) + : afterEnter; + var enterCancelledHook = isAppear + ? (appearCancelled || enterCancelled) + : enterCancelled; + + var explicitEnterDuration = toNumber( + isObject(duration) + ? duration.enter + : duration + ); + + if (explicitEnterDuration != null) { + checkDuration(explicitEnterDuration, 'enter', vnode); + } + + var expectsCSS = css !== false && !isIE9; + var userWantsControl = getHookArgumentsLength(enterHook); + + var cb = el._enterCb = once(function () { + if (expectsCSS) { + removeTransitionClass(el, toClass); + removeTransitionClass(el, activeClass); + } + if (cb.cancelled) { + if (expectsCSS) { + removeTransitionClass(el, startClass); + } + enterCancelledHook && enterCancelledHook(el); + } else { + afterEnterHook && afterEnterHook(el); + } + el._enterCb = null; + }); + + if (!vnode.data.show) { + // remove pending leave element on enter by injecting an insert hook + mergeVNodeHook(vnode, 'insert', function () { + var parent = el.parentNode; + var pendingNode = parent && parent._pending && parent._pending[vnode.key]; + if (pendingNode && + pendingNode.tag === vnode.tag && + pendingNode.elm._leaveCb + ) { + pendingNode.elm._leaveCb(); + } + enterHook && enterHook(el, cb); + }); + } + + // start enter transition + beforeEnterHook && beforeEnterHook(el); + if (expectsCSS) { + addTransitionClass(el, startClass); + addTransitionClass(el, activeClass); + nextFrame(function () { + removeTransitionClass(el, startClass); + if (!cb.cancelled) { + addTransitionClass(el, toClass); + if (!userWantsControl) { + if (isValidDuration(explicitEnterDuration)) { + setTimeout(cb, explicitEnterDuration); + } else { + whenTransitionEnds(el, type, cb); + } + } + } + }); + } + + if (vnode.data.show) { + toggleDisplay && toggleDisplay(); + enterHook && enterHook(el, cb); + } + + if (!expectsCSS && !userWantsControl) { + cb(); + } + } + + function leave (vnode, rm) { + var el = vnode.elm; + + // call enter callback now + if (isDef(el._enterCb)) { + el._enterCb.cancelled = true; + el._enterCb(); + } + + var data = resolveTransition(vnode.data.transition); + if (isUndef(data) || el.nodeType !== 1) { + return rm() + } + + /* istanbul ignore if */ + if (isDef(el._leaveCb)) { + return + } + + var css = data.css; + var type = data.type; + var leaveClass = data.leaveClass; + var leaveToClass = data.leaveToClass; + var leaveActiveClass = data.leaveActiveClass; + var beforeLeave = data.beforeLeave; + var leave = data.leave; + var afterLeave = data.afterLeave; + var leaveCancelled = data.leaveCancelled; + var delayLeave = data.delayLeave; + var duration = data.duration; + + var expectsCSS = css !== false && !isIE9; + var userWantsControl = getHookArgumentsLength(leave); + + var explicitLeaveDuration = toNumber( + isObject(duration) + ? duration.leave + : duration + ); + + if (isDef(explicitLeaveDuration)) { + checkDuration(explicitLeaveDuration, 'leave', vnode); + } + + var cb = el._leaveCb = once(function () { + if (el.parentNode && el.parentNode._pending) { + el.parentNode._pending[vnode.key] = null; + } + if (expectsCSS) { + removeTransitionClass(el, leaveToClass); + removeTransitionClass(el, leaveActiveClass); + } + if (cb.cancelled) { + if (expectsCSS) { + removeTransitionClass(el, leaveClass); + } + leaveCancelled && leaveCancelled(el); + } else { + rm(); + afterLeave && afterLeave(el); + } + el._leaveCb = null; + }); + + if (delayLeave) { + delayLeave(performLeave); + } else { + performLeave(); + } + + function performLeave () { + // the delayed leave may have already been cancelled + if (cb.cancelled) { + return + } + // record leaving element + if (!vnode.data.show && el.parentNode) { + (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode; + } + beforeLeave && beforeLeave(el); + if (expectsCSS) { + addTransitionClass(el, leaveClass); + addTransitionClass(el, leaveActiveClass); + nextFrame(function () { + removeTransitionClass(el, leaveClass); + if (!cb.cancelled) { + addTransitionClass(el, leaveToClass); + if (!userWantsControl) { + if (isValidDuration(explicitLeaveDuration)) { + setTimeout(cb, explicitLeaveDuration); + } else { + whenTransitionEnds(el, type, cb); + } + } + } + }); + } + leave && leave(el, cb); + if (!expectsCSS && !userWantsControl) { + cb(); + } + } + } + + // only used in dev mode + function checkDuration (val, name, vnode) { + if (typeof val !== 'number') { + warn( + "<transition> explicit " + name + " duration is not a valid number - " + + "got " + (JSON.stringify(val)) + ".", + vnode.context + ); + } else if (isNaN(val)) { + warn( + "<transition> explicit " + name + " duration is NaN - " + + 'the duration expression might be incorrect.', + vnode.context + ); + } + } + + function isValidDuration (val) { + return typeof val === 'number' && !isNaN(val) + } + + /** + * Normalize a transition hook's argument length. The hook may be: + * - a merged hook (invoker) with the original in .fns + * - a wrapped component method (check ._length) + * - a plain function (.length) + */ + function getHookArgumentsLength (fn) { + if (isUndef(fn)) { + return false + } + var invokerFns = fn.fns; + if (isDef(invokerFns)) { + // invoker + return getHookArgumentsLength( + Array.isArray(invokerFns) + ? invokerFns[0] + : invokerFns + ) + } else { + return (fn._length || fn.length) > 1 + } + } + + function _enter (_, vnode) { + if (vnode.data.show !== true) { + enter(vnode); + } + } + + var transition = inBrowser ? { + create: _enter, + activate: _enter, + remove: function remove$$1 (vnode, rm) { + /* istanbul ignore else */ + if (vnode.data.show !== true) { + leave(vnode, rm); + } else { + rm(); + } + } + } : {}; + + var platformModules = [ + attrs, + klass, + events, + domProps, + style, + transition + ]; + + /* */ + + // the directive module should be applied last, after all + // built-in modules have been applied. + var modules = platformModules.concat(baseModules); + + var patch = createPatchFunction({ nodeOps: nodeOps, modules: modules }); + + /** + * Not type checking this file because flow doesn't like attaching + * properties to Elements. + */ + + /* istanbul ignore if */ + if (isIE9) { + // http://www.matts411.com/post/internet-explorer-9-oninput/ + document.addEventListener('selectionchange', function () { + var el = document.activeElement; + if (el && el.vmodel) { + trigger(el, 'input'); + } + }); + } + + var directive = { + inserted: function inserted (el, binding, vnode, oldVnode) { + if (vnode.tag === 'select') { + // #6903 + if (oldVnode.elm && !oldVnode.elm._vOptions) { + mergeVNodeHook(vnode, 'postpatch', function () { + directive.componentUpdated(el, binding, vnode); + }); + } else { + setSelected(el, binding, vnode.context); + } + el._vOptions = [].map.call(el.options, getValue); + } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) { + el._vModifiers = binding.modifiers; + if (!binding.modifiers.lazy) { + el.addEventListener('compositionstart', onCompositionStart); + el.addEventListener('compositionend', onCompositionEnd); + // Safari < 10.2 & UIWebView doesn't fire compositionend when + // switching focus before confirming composition choice + // this also fixes the issue where some browsers e.g. iOS Chrome + // fires "change" instead of "input" on autocomplete. + el.addEventListener('change', onCompositionEnd); + /* istanbul ignore if */ + if (isIE9) { + el.vmodel = true; + } + } + } + }, + + componentUpdated: function componentUpdated (el, binding, vnode) { + if (vnode.tag === 'select') { + setSelected(el, binding, vnode.context); + // in case the options rendered by v-for have changed, + // it's possible that the value is out-of-sync with the rendered options. + // detect such cases and filter out values that no longer has a matching + // option in the DOM. + var prevOptions = el._vOptions; + var curOptions = el._vOptions = [].map.call(el.options, getValue); + if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) { + // trigger change event if + // no matching option found for at least one value + var needReset = el.multiple + ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); }) + : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions); + if (needReset) { + trigger(el, 'change'); + } + } + } + } + }; + + function setSelected (el, binding, vm) { + actuallySetSelected(el, binding, vm); + /* istanbul ignore if */ + if (isIE || isEdge) { + setTimeout(function () { + actuallySetSelected(el, binding, vm); + }, 0); + } + } + + function actuallySetSelected (el, binding, vm) { + var value = binding.value; + var isMultiple = el.multiple; + if (isMultiple && !Array.isArray(value)) { + warn( + "<select multiple v-model=\"" + (binding.expression) + "\"> " + + "expects an Array value for its binding, but got " + (Object.prototype.toString.call(value).slice(8, -1)), + vm + ); + return + } + var selected, option; + for (var i = 0, l = el.options.length; i < l; i++) { + option = el.options[i]; + if (isMultiple) { + selected = looseIndexOf(value, getValue(option)) > -1; + if (option.selected !== selected) { + option.selected = selected; + } + } else { + if (looseEqual(getValue(option), value)) { + if (el.selectedIndex !== i) { + el.selectedIndex = i; + } + return + } + } + } + if (!isMultiple) { + el.selectedIndex = -1; + } + } + + function hasNoMatchingOption (value, options) { + return options.every(function (o) { return !looseEqual(o, value); }) + } + + function getValue (option) { + return '_value' in option + ? option._value + : option.value + } + + function onCompositionStart (e) { + e.target.composing = true; + } + + function onCompositionEnd (e) { + // prevent triggering an input event for no reason + if (!e.target.composing) { return } + e.target.composing = false; + trigger(e.target, 'input'); + } + + function trigger (el, type) { + var e = document.createEvent('HTMLEvents'); + e.initEvent(type, true, true); + el.dispatchEvent(e); + } + + /* */ + + // recursively search for possible transition defined inside the component root + function locateNode (vnode) { + return vnode.componentInstance && (!vnode.data || !vnode.data.transition) + ? locateNode(vnode.componentInstance._vnode) + : vnode + } + + var show = { + bind: function bind (el, ref, vnode) { + var value = ref.value; + + vnode = locateNode(vnode); + var transition$$1 = vnode.data && vnode.data.transition; + var originalDisplay = el.__vOriginalDisplay = + el.style.display === 'none' ? '' : el.style.display; + if (value && transition$$1) { + vnode.data.show = true; + enter(vnode, function () { + el.style.display = originalDisplay; + }); + } else { + el.style.display = value ? originalDisplay : 'none'; + } + }, + + update: function update (el, ref, vnode) { + var value = ref.value; + var oldValue = ref.oldValue; + + /* istanbul ignore if */ + if (!value === !oldValue) { return } + vnode = locateNode(vnode); + var transition$$1 = vnode.data && vnode.data.transition; + if (transition$$1) { + vnode.data.show = true; + if (value) { + enter(vnode, function () { + el.style.display = el.__vOriginalDisplay; + }); + } else { + leave(vnode, function () { + el.style.display = 'none'; + }); + } + } else { + el.style.display = value ? el.__vOriginalDisplay : 'none'; + } + }, + + unbind: function unbind ( + el, + binding, + vnode, + oldVnode, + isDestroy + ) { + if (!isDestroy) { + el.style.display = el.__vOriginalDisplay; + } + } + }; + + var platformDirectives = { + model: directive, + show: show + }; + + /* */ + + var transitionProps = { + name: String, + appear: Boolean, + css: Boolean, + mode: String, + type: String, + enterClass: String, + leaveClass: String, + enterToClass: String, + leaveToClass: String, + enterActiveClass: String, + leaveActiveClass: String, + appearClass: String, + appearActiveClass: String, + appearToClass: String, + duration: [Number, String, Object] + }; + + // in case the child is also an abstract component, e.g. <keep-alive> + // we want to recursively retrieve the real component to be rendered + function getRealChild (vnode) { + var compOptions = vnode && vnode.componentOptions; + if (compOptions && compOptions.Ctor.options.abstract) { + return getRealChild(getFirstComponentChild(compOptions.children)) + } else { + return vnode + } + } + + function extractTransitionData (comp) { + var data = {}; + var options = comp.$options; + // props + for (var key in options.propsData) { + data[key] = comp[key]; + } + // events. + // extract listeners and pass them directly to the transition methods + var listeners = options._parentListeners; + for (var key$1 in listeners) { + data[camelize(key$1)] = listeners[key$1]; + } + return data + } + + function placeholder (h, rawChild) { + if (/\d-keep-alive$/.test(rawChild.tag)) { + return h('keep-alive', { + props: rawChild.componentOptions.propsData + }) + } + } + + function hasParentTransition (vnode) { + while ((vnode = vnode.parent)) { + if (vnode.data.transition) { + return true + } + } + } + + function isSameChild (child, oldChild) { + return oldChild.key === child.key && oldChild.tag === child.tag + } + + var isNotTextNode = function (c) { return c.tag || isAsyncPlaceholder(c); }; + + var isVShowDirective = function (d) { return d.name === 'show'; }; + + var Transition = { + name: 'transition', + props: transitionProps, + abstract: true, + + render: function render (h) { + var this$1 = this; + + var children = this.$slots.default; + if (!children) { + return + } + + // filter out text nodes (possible whitespaces) + children = children.filter(isNotTextNode); + /* istanbul ignore if */ + if (!children.length) { + return + } + + // warn multiple elements + if (children.length > 1) { + warn( + '<transition> can only be used on a single element. Use ' + + '<transition-group> for lists.', + this.$parent + ); + } + + var mode = this.mode; + + // warn invalid mode + if (mode && mode !== 'in-out' && mode !== 'out-in' + ) { + warn( + 'invalid <transition> mode: ' + mode, + this.$parent + ); + } + + var rawChild = children[0]; + + // if this is a component root node and the component's + // parent container node also has transition, skip. + if (hasParentTransition(this.$vnode)) { + return rawChild + } + + // apply transition data to child + // use getRealChild() to ignore abstract components e.g. keep-alive + var child = getRealChild(rawChild); + /* istanbul ignore if */ + if (!child) { + return rawChild + } + + if (this._leaving) { + return placeholder(h, rawChild) + } + + // ensure a key that is unique to the vnode type and to this transition + // component instance. This key will be used to remove pending leaving nodes + // during entering. + var id = "__transition-" + (this._uid) + "-"; + child.key = child.key == null + ? child.isComment + ? id + 'comment' + : id + child.tag + : isPrimitive(child.key) + ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key) + : child.key; + + var data = (child.data || (child.data = {})).transition = extractTransitionData(this); + var oldRawChild = this._vnode; + var oldChild = getRealChild(oldRawChild); + + // mark v-show + // so that the transition module can hand over the control to the directive + if (child.data.directives && child.data.directives.some(isVShowDirective)) { + child.data.show = true; + } + + if ( + oldChild && + oldChild.data && + !isSameChild(child, oldChild) && + !isAsyncPlaceholder(oldChild) && + // #6687 component root is a comment node + !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment) + ) { + // replace old child transition data with fresh one + // important for dynamic transitions! + var oldData = oldChild.data.transition = extend({}, data); + // handle transition mode + if (mode === 'out-in') { + // return placeholder node and queue update when leave finishes + this._leaving = true; + mergeVNodeHook(oldData, 'afterLeave', function () { + this$1._leaving = false; + this$1.$forceUpdate(); + }); + return placeholder(h, rawChild) + } else if (mode === 'in-out') { + if (isAsyncPlaceholder(child)) { + return oldRawChild + } + var delayedLeave; + var performLeave = function () { delayedLeave(); }; + mergeVNodeHook(data, 'afterEnter', performLeave); + mergeVNodeHook(data, 'enterCancelled', performLeave); + mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; }); + } + } + + return rawChild + } + }; + + /* */ + + var props = extend({ + tag: String, + moveClass: String + }, transitionProps); + + delete props.mode; + + var TransitionGroup = { + props: props, + + beforeMount: function beforeMount () { + var this$1 = this; + + var update = this._update; + this._update = function (vnode, hydrating) { + var restoreActiveInstance = setActiveInstance(this$1); + // force removing pass + this$1.__patch__( + this$1._vnode, + this$1.kept, + false, // hydrating + true // removeOnly (!important, avoids unnecessary moves) + ); + this$1._vnode = this$1.kept; + restoreActiveInstance(); + update.call(this$1, vnode, hydrating); + }; + }, + + render: function render (h) { + var tag = this.tag || this.$vnode.data.tag || 'span'; + var map = Object.create(null); + var prevChildren = this.prevChildren = this.children; + var rawChildren = this.$slots.default || []; + var children = this.children = []; + var transitionData = extractTransitionData(this); + + for (var i = 0; i < rawChildren.length; i++) { + var c = rawChildren[i]; + if (c.tag) { + if (c.key != null && String(c.key).indexOf('__vlist') !== 0) { + children.push(c); + map[c.key] = c + ;(c.data || (c.data = {})).transition = transitionData; + } else { + var opts = c.componentOptions; + var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag; + warn(("<transition-group> children must be keyed: <" + name + ">")); + } + } + } + + if (prevChildren) { + var kept = []; + var removed = []; + for (var i$1 = 0; i$1 < prevChildren.length; i$1++) { + var c$1 = prevChildren[i$1]; + c$1.data.transition = transitionData; + c$1.data.pos = c$1.elm.getBoundingClientRect(); + if (map[c$1.key]) { + kept.push(c$1); + } else { + removed.push(c$1); + } + } + this.kept = h(tag, null, kept); + this.removed = removed; + } + + return h(tag, null, children) + }, + + updated: function updated () { + var children = this.prevChildren; + var moveClass = this.moveClass || ((this.name || 'v') + '-move'); + if (!children.length || !this.hasMove(children[0].elm, moveClass)) { + return + } + + // we divide the work into three loops to avoid mixing DOM reads and writes + // in each iteration - which helps prevent layout thrashing. + children.forEach(callPendingCbs); + children.forEach(recordPosition); + children.forEach(applyTranslation); + + // force reflow to put everything in position + // assign to this to avoid being removed in tree-shaking + // $flow-disable-line + this._reflow = document.body.offsetHeight; + + children.forEach(function (c) { + if (c.data.moved) { + var el = c.elm; + var s = el.style; + addTransitionClass(el, moveClass); + s.transform = s.WebkitTransform = s.transitionDuration = ''; + el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) { + if (e && e.target !== el) { + return + } + if (!e || /transform$/.test(e.propertyName)) { + el.removeEventListener(transitionEndEvent, cb); + el._moveCb = null; + removeTransitionClass(el, moveClass); + } + }); + } + }); + }, + + methods: { + hasMove: function hasMove (el, moveClass) { + /* istanbul ignore if */ + if (!hasTransition) { + return false + } + /* istanbul ignore if */ + if (this._hasMove) { + return this._hasMove + } + // Detect whether an element with the move class applied has + // CSS transitions. Since the element may be inside an entering + // transition at this very moment, we make a clone of it and remove + // all other transition classes applied to ensure only the move class + // is applied. + var clone = el.cloneNode(); + if (el._transitionClasses) { + el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); }); + } + addClass(clone, moveClass); + clone.style.display = 'none'; + this.$el.appendChild(clone); + var info = getTransitionInfo(clone); + this.$el.removeChild(clone); + return (this._hasMove = info.hasTransform) + } + } + }; + + function callPendingCbs (c) { + /* istanbul ignore if */ + if (c.elm._moveCb) { + c.elm._moveCb(); + } + /* istanbul ignore if */ + if (c.elm._enterCb) { + c.elm._enterCb(); + } + } + + function recordPosition (c) { + c.data.newPos = c.elm.getBoundingClientRect(); + } + + function applyTranslation (c) { + var oldPos = c.data.pos; + var newPos = c.data.newPos; + var dx = oldPos.left - newPos.left; + var dy = oldPos.top - newPos.top; + if (dx || dy) { + c.data.moved = true; + var s = c.elm.style; + s.transform = s.WebkitTransform = "translate(" + dx + "px," + dy + "px)"; + s.transitionDuration = '0s'; + } + } + + var platformComponents = { + Transition: Transition, + TransitionGroup: TransitionGroup + }; + + /* */ + + // install platform specific utils + Vue.config.mustUseProp = mustUseProp; + Vue.config.isReservedTag = isReservedTag; + Vue.config.isReservedAttr = isReservedAttr; + Vue.config.getTagNamespace = getTagNamespace; + Vue.config.isUnknownElement = isUnknownElement; + + // install platform runtime directives & components + extend(Vue.options.directives, platformDirectives); + extend(Vue.options.components, platformComponents); + + // install platform patch function + Vue.prototype.__patch__ = inBrowser ? patch : noop; + + // public mount method + Vue.prototype.$mount = function ( + el, + hydrating + ) { + el = el && inBrowser ? query(el) : undefined; + return mountComponent(this, el, hydrating) + }; + + // devtools global hook + /* istanbul ignore next */ + if (inBrowser) { + setTimeout(function () { + if (config.devtools) { + if (devtools) { + devtools.emit('init', Vue); + } else { + console[console.info ? 'info' : 'log']( + 'Download the Vue Devtools extension for a better development experience:\n' + + 'https://github.com/vuejs/vue-devtools' + ); + } + } + if (config.productionTip !== false && + typeof console !== 'undefined' + ) { + console[console.info ? 'info' : 'log']( + "You are running Vue in development mode.\n" + + "Make sure to turn on production mode when deploying for production.\n" + + "See more tips at https://vuejs.org/guide/deployment.html" + ); + } + }, 0); + } + + /* */ + + var defaultTagRE = /\{\{((?:.|\r?\n)+?)\}\}/g; + var regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g; + + var buildRegex = cached(function (delimiters) { + var open = delimiters[0].replace(regexEscapeRE, '\\$&'); + var close = delimiters[1].replace(regexEscapeRE, '\\$&'); + return new RegExp(open + '((?:.|\\n)+?)' + close, 'g') + }); + + + + function parseText ( + text, + delimiters + ) { + var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE; + if (!tagRE.test(text)) { + return + } + var tokens = []; + var rawTokens = []; + var lastIndex = tagRE.lastIndex = 0; + var match, index, tokenValue; + while ((match = tagRE.exec(text))) { + index = match.index; + // push text token + if (index > lastIndex) { + rawTokens.push(tokenValue = text.slice(lastIndex, index)); + tokens.push(JSON.stringify(tokenValue)); + } + // tag token + var exp = parseFilters(match[1].trim()); + tokens.push(("_s(" + exp + ")")); + rawTokens.push({ '@binding': exp }); + lastIndex = index + match[0].length; + } + if (lastIndex < text.length) { + rawTokens.push(tokenValue = text.slice(lastIndex)); + tokens.push(JSON.stringify(tokenValue)); + } + return { + expression: tokens.join('+'), + tokens: rawTokens + } + } + + /* */ + + function transformNode (el, options) { + var warn = options.warn || baseWarn; + var staticClass = getAndRemoveAttr(el, 'class'); + if (staticClass) { + var res = parseText(staticClass, options.delimiters); + if (res) { + warn( + "class=\"" + staticClass + "\": " + + 'Interpolation inside attributes has been removed. ' + + 'Use v-bind or the colon shorthand instead. For example, ' + + 'instead of <div class="{{ val }}">, use <div :class="val">.', + el.rawAttrsMap['class'] + ); + } + } + if (staticClass) { + el.staticClass = JSON.stringify(staticClass); + } + var classBinding = getBindingAttr(el, 'class', false /* getStatic */); + if (classBinding) { + el.classBinding = classBinding; + } + } + + function genData (el) { + var data = ''; + if (el.staticClass) { + data += "staticClass:" + (el.staticClass) + ","; + } + if (el.classBinding) { + data += "class:" + (el.classBinding) + ","; + } + return data + } + + var klass$1 = { + staticKeys: ['staticClass'], + transformNode: transformNode, + genData: genData + }; + + /* */ + + function transformNode$1 (el, options) { + var warn = options.warn || baseWarn; + var staticStyle = getAndRemoveAttr(el, 'style'); + if (staticStyle) { + /* istanbul ignore if */ + { + var res = parseText(staticStyle, options.delimiters); + if (res) { + warn( + "style=\"" + staticStyle + "\": " + + 'Interpolation inside attributes has been removed. ' + + 'Use v-bind or the colon shorthand instead. For example, ' + + 'instead of <div style="{{ val }}">, use <div :style="val">.', + el.rawAttrsMap['style'] + ); + } + } + el.staticStyle = JSON.stringify(parseStyleText(staticStyle)); + } + + var styleBinding = getBindingAttr(el, 'style', false /* getStatic */); + if (styleBinding) { + el.styleBinding = styleBinding; + } + } + + function genData$1 (el) { + var data = ''; + if (el.staticStyle) { + data += "staticStyle:" + (el.staticStyle) + ","; + } + if (el.styleBinding) { + data += "style:(" + (el.styleBinding) + "),"; + } + return data + } + + var style$1 = { + staticKeys: ['staticStyle'], + transformNode: transformNode$1, + genData: genData$1 + }; + + /* */ + + var decoder; + + var he = { + decode: function decode (html) { + decoder = decoder || document.createElement('div'); + decoder.innerHTML = html; + return decoder.textContent + } + }; + + /* */ + + var isUnaryTag = makeMap( + 'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' + + 'link,meta,param,source,track,wbr' + ); + + // Elements that you can, intentionally, leave open + // (and which close themselves) + var canBeLeftOpenTag = makeMap( + 'colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source' + ); + + // HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3 + // Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content + var isNonPhrasingTag = makeMap( + 'address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' + + 'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' + + 'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' + + 'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' + + 'title,tr,track' + ); + + /** + * Not type-checking this file because it's mostly vendor code. + */ + + // Regular Expressions for parsing tags and attributes + var attribute = /^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/; + var dynamicArgAttribute = /^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/; + var ncname = "[a-zA-Z_][\\-\\.0-9_a-zA-Z" + (unicodeRegExp.source) + "]*"; + var qnameCapture = "((?:" + ncname + "\\:)?" + ncname + ")"; + var startTagOpen = new RegExp(("^<" + qnameCapture)); + var startTagClose = /^\s*(\/?)>/; + var endTag = new RegExp(("^<\\/" + qnameCapture + "[^>]*>")); + var doctype = /^<!DOCTYPE [^>]+>/i; + // #7298: escape - to avoid being passed as HTML comment when inlined in page + var comment = /^<!\--/; + var conditionalComment = /^<!\[/; + + // Special Elements (can contain anything) + var isPlainTextElement = makeMap('script,style,textarea', true); + var reCache = {}; + + var decodingMap = { + '<': '<', + '>': '>', + '"': '"', + '&': '&', + ' ': '\n', + '	': '\t', + ''': "'" + }; + var encodedAttr = /&(?:lt|gt|quot|amp|#39);/g; + var encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#39|#10|#9);/g; + + // #5992 + var isIgnoreNewlineTag = makeMap('pre,textarea', true); + var shouldIgnoreFirstNewline = function (tag, html) { return tag && isIgnoreNewlineTag(tag) && html[0] === '\n'; }; + + function decodeAttr (value, shouldDecodeNewlines) { + var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr; + return value.replace(re, function (match) { return decodingMap[match]; }) + } + + function parseHTML (html, options) { + var stack = []; + var expectHTML = options.expectHTML; + var isUnaryTag$$1 = options.isUnaryTag || no; + var canBeLeftOpenTag$$1 = options.canBeLeftOpenTag || no; + var index = 0; + var last, lastTag; + while (html) { + last = html; + // Make sure we're not in a plaintext content element like script/style + if (!lastTag || !isPlainTextElement(lastTag)) { + var textEnd = html.indexOf('<'); + if (textEnd === 0) { + // Comment: + if (comment.test(html)) { + var commentEnd = html.indexOf('-->'); + + if (commentEnd >= 0) { + if (options.shouldKeepComment) { + options.comment(html.substring(4, commentEnd), index, index + commentEnd + 3); + } + advance(commentEnd + 3); + continue + } + } + + // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment + if (conditionalComment.test(html)) { + var conditionalEnd = html.indexOf(']>'); + + if (conditionalEnd >= 0) { + advance(conditionalEnd + 2); + continue + } + } + + // Doctype: + var doctypeMatch = html.match(doctype); + if (doctypeMatch) { + advance(doctypeMatch[0].length); + continue + } + + // End tag: + var endTagMatch = html.match(endTag); + if (endTagMatch) { + var curIndex = index; + advance(endTagMatch[0].length); + parseEndTag(endTagMatch[1], curIndex, index); + continue + } + + // Start tag: + var startTagMatch = parseStartTag(); + if (startTagMatch) { + handleStartTag(startTagMatch); + if (shouldIgnoreFirstNewline(startTagMatch.tagName, html)) { + advance(1); + } + continue + } + } + + var text = (void 0), rest = (void 0), next = (void 0); + if (textEnd >= 0) { + rest = html.slice(textEnd); + while ( + !endTag.test(rest) && + !startTagOpen.test(rest) && + !comment.test(rest) && + !conditionalComment.test(rest) + ) { + // < in plain text, be forgiving and treat it as text + next = rest.indexOf('<', 1); + if (next < 0) { break } + textEnd += next; + rest = html.slice(textEnd); + } + text = html.substring(0, textEnd); + } + + if (textEnd < 0) { + text = html; + } + + if (text) { + advance(text.length); + } + + if (options.chars && text) { + options.chars(text, index - text.length, index); + } + } else { + var endTagLength = 0; + var stackedTag = lastTag.toLowerCase(); + var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\s\\S]*?)(</' + stackedTag + '[^>]*>)', 'i')); + var rest$1 = html.replace(reStackedTag, function (all, text, endTag) { + endTagLength = endTag.length; + if (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') { + text = text + .replace(/<!\--([\s\S]*?)-->/g, '$1') // #7298 + .replace(/<!\[CDATA\[([\s\S]*?)]]>/g, '$1'); + } + if (shouldIgnoreFirstNewline(stackedTag, text)) { + text = text.slice(1); + } + if (options.chars) { + options.chars(text); + } + return '' + }); + index += html.length - rest$1.length; + html = rest$1; + parseEndTag(stackedTag, index - endTagLength, index); + } + + if (html === last) { + options.chars && options.chars(html); + if (!stack.length && options.warn) { + options.warn(("Mal-formatted tag at end of template: \"" + html + "\""), { start: index + html.length }); + } + break + } + } + + // Clean up any remaining tags + parseEndTag(); + + function advance (n) { + index += n; + html = html.substring(n); + } + + function parseStartTag () { + var start = html.match(startTagOpen); + if (start) { + var match = { + tagName: start[1], + attrs: [], + start: index + }; + advance(start[0].length); + var end, attr; + while (!(end = html.match(startTagClose)) && (attr = html.match(dynamicArgAttribute) || html.match(attribute))) { + attr.start = index; + advance(attr[0].length); + attr.end = index; + match.attrs.push(attr); + } + if (end) { + match.unarySlash = end[1]; + advance(end[0].length); + match.end = index; + return match + } + } + } + + function handleStartTag (match) { + var tagName = match.tagName; + var unarySlash = match.unarySlash; + + if (expectHTML) { + if (lastTag === 'p' && isNonPhrasingTag(tagName)) { + parseEndTag(lastTag); + } + if (canBeLeftOpenTag$$1(tagName) && lastTag === tagName) { + parseEndTag(tagName); + } + } + + var unary = isUnaryTag$$1(tagName) || !!unarySlash; + + var l = match.attrs.length; + var attrs = new Array(l); + for (var i = 0; i < l; i++) { + var args = match.attrs[i]; + var value = args[3] || args[4] || args[5] || ''; + var shouldDecodeNewlines = tagName === 'a' && args[1] === 'href' + ? options.shouldDecodeNewlinesForHref + : options.shouldDecodeNewlines; + attrs[i] = { + name: args[1], + value: decodeAttr(value, shouldDecodeNewlines) + }; + if (options.outputSourceRange) { + attrs[i].start = args.start + args[0].match(/^\s*/).length; + attrs[i].end = args.end; + } + } + + if (!unary) { + stack.push({ tag: tagName, lowerCasedTag: tagName.toLowerCase(), attrs: attrs, start: match.start, end: match.end }); + lastTag = tagName; + } + + if (options.start) { + options.start(tagName, attrs, unary, match.start, match.end); + } + } + + function parseEndTag (tagName, start, end) { + var pos, lowerCasedTagName; + if (start == null) { start = index; } + if (end == null) { end = index; } + + // Find the closest opened tag of the same type + if (tagName) { + lowerCasedTagName = tagName.toLowerCase(); + for (pos = stack.length - 1; pos >= 0; pos--) { + if (stack[pos].lowerCasedTag === lowerCasedTagName) { + break + } + } + } else { + // If no tag name is provided, clean shop + pos = 0; + } + + if (pos >= 0) { + // Close all the open elements, up the stack + for (var i = stack.length - 1; i >= pos; i--) { + if (i > pos || !tagName && + options.warn + ) { + options.warn( + ("tag <" + (stack[i].tag) + "> has no matching end tag."), + { start: stack[i].start, end: stack[i].end } + ); + } + if (options.end) { + options.end(stack[i].tag, start, end); + } + } + + // Remove the open elements from the stack + stack.length = pos; + lastTag = pos && stack[pos - 1].tag; + } else if (lowerCasedTagName === 'br') { + if (options.start) { + options.start(tagName, [], true, start, end); + } + } else if (lowerCasedTagName === 'p') { + if (options.start) { + options.start(tagName, [], false, start, end); + } + if (options.end) { + options.end(tagName, start, end); + } + } + } + } + + /* */ + + var onRE = /^@|^v-on:/; + var dirRE = /^v-|^@|^:|^#/; + var forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/; + var forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/; + var stripParensRE = /^\(|\)$/g; + var dynamicArgRE = /^\[.*\]$/; + + var argRE = /:(.*)$/; + var bindRE = /^:|^\.|^v-bind:/; + var modifierRE = /\.[^.\]]+(?=[^\]]*$)/g; + + var slotRE = /^v-slot(:|$)|^#/; + + var lineBreakRE = /[\r\n]/; + var whitespaceRE$1 = /\s+/g; + + var invalidAttributeRE = /[\s"'<>\/=]/; + + var decodeHTMLCached = cached(he.decode); + + var emptySlotScopeToken = "_empty_"; + + // configurable state + var warn$2; + var delimiters; + var transforms; + var preTransforms; + var postTransforms; + var platformIsPreTag; + var platformMustUseProp; + var platformGetTagNamespace; + var maybeComponent; + + function createASTElement ( + tag, + attrs, + parent + ) { + return { + type: 1, + tag: tag, + attrsList: attrs, + attrsMap: makeAttrsMap(attrs), + rawAttrsMap: {}, + parent: parent, + children: [] + } + } + + /** + * Convert HTML string to AST. + */ + function parse ( + template, + options + ) { + warn$2 = options.warn || baseWarn; + + platformIsPreTag = options.isPreTag || no; + platformMustUseProp = options.mustUseProp || no; + platformGetTagNamespace = options.getTagNamespace || no; + var isReservedTag = options.isReservedTag || no; + maybeComponent = function (el) { return !!el.component || !isReservedTag(el.tag); }; + + transforms = pluckModuleFunction(options.modules, 'transformNode'); + preTransforms = pluckModuleFunction(options.modules, 'preTransformNode'); + postTransforms = pluckModuleFunction(options.modules, 'postTransformNode'); + + delimiters = options.delimiters; + + var stack = []; + var preserveWhitespace = options.preserveWhitespace !== false; + var whitespaceOption = options.whitespace; + var root; + var currentParent; + var inVPre = false; + var inPre = false; + var warned = false; + + function warnOnce (msg, range) { + if (!warned) { + warned = true; + warn$2(msg, range); + } + } + + function closeElement (element) { + trimEndingWhitespace(element); + if (!inVPre && !element.processed) { + element = processElement(element, options); + } + // tree management + if (!stack.length && element !== root) { + // allow root elements with v-if, v-else-if and v-else + if (root.if && (element.elseif || element.else)) { + { + checkRootConstraints(element); + } + addIfCondition(root, { + exp: element.elseif, + block: element + }); + } else { + warnOnce( + "Component template should contain exactly one root element. " + + "If you are using v-if on multiple elements, " + + "use v-else-if to chain them instead.", + { start: element.start } + ); + } + } + if (currentParent && !element.forbidden) { + if (element.elseif || element.else) { + processIfConditions(element, currentParent); + } else { + if (element.slotScope) { + // scoped slot + // keep it in the children list so that v-else(-if) conditions can + // find it as the prev node. + var name = element.slotTarget || '"default"' + ;(currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element; + } + currentParent.children.push(element); + element.parent = currentParent; + } + } + + // final children cleanup + // filter out scoped slots + element.children = element.children.filter(function (c) { return !(c).slotScope; }); + // remove trailing whitespace node again + trimEndingWhitespace(element); + + // check pre state + if (element.pre) { + inVPre = false; + } + if (platformIsPreTag(element.tag)) { + inPre = false; + } + // apply post-transforms + for (var i = 0; i < postTransforms.length; i++) { + postTransforms[i](element, options); + } + } + + function trimEndingWhitespace (el) { + // remove trailing whitespace node + if (!inPre) { + var lastNode; + while ( + (lastNode = el.children[el.children.length - 1]) && + lastNode.type === 3 && + lastNode.text === ' ' + ) { + el.children.pop(); + } + } + } + + function checkRootConstraints (el) { + if (el.tag === 'slot' || el.tag === 'template') { + warnOnce( + "Cannot use <" + (el.tag) + "> as component root element because it may " + + 'contain multiple nodes.', + { start: el.start } + ); + } + if (el.attrsMap.hasOwnProperty('v-for')) { + warnOnce( + 'Cannot use v-for on stateful component root element because ' + + 'it renders multiple elements.', + el.rawAttrsMap['v-for'] + ); + } + } + + parseHTML(template, { + warn: warn$2, + expectHTML: options.expectHTML, + isUnaryTag: options.isUnaryTag, + canBeLeftOpenTag: options.canBeLeftOpenTag, + shouldDecodeNewlines: options.shouldDecodeNewlines, + shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref, + shouldKeepComment: options.comments, + outputSourceRange: options.outputSourceRange, + start: function start (tag, attrs, unary, start$1, end) { + // check namespace. + // inherit parent ns if there is one + var ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag); + + // handle IE svg bug + /* istanbul ignore if */ + if (isIE && ns === 'svg') { + attrs = guardIESVGBug(attrs); + } + + var element = createASTElement(tag, attrs, currentParent); + if (ns) { + element.ns = ns; + } + + { + if (options.outputSourceRange) { + element.start = start$1; + element.end = end; + element.rawAttrsMap = element.attrsList.reduce(function (cumulated, attr) { + cumulated[attr.name] = attr; + return cumulated + }, {}); + } + attrs.forEach(function (attr) { + if (invalidAttributeRE.test(attr.name)) { + warn$2( + "Invalid dynamic argument expression: attribute names cannot contain " + + "spaces, quotes, <, >, / or =.", + { + start: attr.start + attr.name.indexOf("["), + end: attr.start + attr.name.length + } + ); + } + }); + } + + if (isForbiddenTag(element) && !isServerRendering()) { + element.forbidden = true; + warn$2( + 'Templates should only be responsible for mapping the state to the ' + + 'UI. Avoid placing tags with side-effects in your templates, such as ' + + "<" + tag + ">" + ', as they will not be parsed.', + { start: element.start } + ); + } + + // apply pre-transforms + for (var i = 0; i < preTransforms.length; i++) { + element = preTransforms[i](element, options) || element; + } + + if (!inVPre) { + processPre(element); + if (element.pre) { + inVPre = true; + } + } + if (platformIsPreTag(element.tag)) { + inPre = true; + } + if (inVPre) { + processRawAttrs(element); + } else if (!element.processed) { + // structural directives + processFor(element); + processIf(element); + processOnce(element); + } + + if (!root) { + root = element; + { + checkRootConstraints(root); + } + } + + if (!unary) { + currentParent = element; + stack.push(element); + } else { + closeElement(element); + } + }, + + end: function end (tag, start, end$1) { + var element = stack[stack.length - 1]; + // pop stack + stack.length -= 1; + currentParent = stack[stack.length - 1]; + if (options.outputSourceRange) { + element.end = end$1; + } + closeElement(element); + }, + + chars: function chars (text, start, end) { + if (!currentParent) { + { + if (text === template) { + warnOnce( + 'Component template requires a root element, rather than just text.', + { start: start } + ); + } else if ((text = text.trim())) { + warnOnce( + ("text \"" + text + "\" outside root element will be ignored."), + { start: start } + ); + } + } + return + } + // IE textarea placeholder bug + /* istanbul ignore if */ + if (isIE && + currentParent.tag === 'textarea' && + currentParent.attrsMap.placeholder === text + ) { + return + } + var children = currentParent.children; + if (inPre || text.trim()) { + text = isTextTag(currentParent) ? text : decodeHTMLCached(text); + } else if (!children.length) { + // remove the whitespace-only node right after an opening tag + text = ''; + } else if (whitespaceOption) { + if (whitespaceOption === 'condense') { + // in condense mode, remove the whitespace node if it contains + // line break, otherwise condense to a single space + text = lineBreakRE.test(text) ? '' : ' '; + } else { + text = ' '; + } + } else { + text = preserveWhitespace ? ' ' : ''; + } + if (text) { + if (!inPre && whitespaceOption === 'condense') { + // condense consecutive whitespaces into single space + text = text.replace(whitespaceRE$1, ' '); + } + var res; + var child; + if (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) { + child = { + type: 2, + expression: res.expression, + tokens: res.tokens, + text: text + }; + } else if (text !== ' ' || !children.length || children[children.length - 1].text !== ' ') { + child = { + type: 3, + text: text + }; + } + if (child) { + if (options.outputSourceRange) { + child.start = start; + child.end = end; + } + children.push(child); + } + } + }, + comment: function comment (text, start, end) { + // adding anything as a sibling to the root node is forbidden + // comments should still be allowed, but ignored + if (currentParent) { + var child = { + type: 3, + text: text, + isComment: true + }; + if (options.outputSourceRange) { + child.start = start; + child.end = end; + } + currentParent.children.push(child); + } + } + }); + return root + } + + function processPre (el) { + if (getAndRemoveAttr(el, 'v-pre') != null) { + el.pre = true; + } + } + + function processRawAttrs (el) { + var list = el.attrsList; + var len = list.length; + if (len) { + var attrs = el.attrs = new Array(len); + for (var i = 0; i < len; i++) { + attrs[i] = { + name: list[i].name, + value: JSON.stringify(list[i].value) + }; + if (list[i].start != null) { + attrs[i].start = list[i].start; + attrs[i].end = list[i].end; + } + } + } else if (!el.pre) { + // non root node in pre blocks with no attributes + el.plain = true; + } + } + + function processElement ( + element, + options + ) { + processKey(element); + + // determine whether this is a plain element after + // removing structural attributes + element.plain = ( + !element.key && + !element.scopedSlots && + !element.attrsList.length + ); + + processRef(element); + processSlotContent(element); + processSlotOutlet(element); + processComponent(element); + for (var i = 0; i < transforms.length; i++) { + element = transforms[i](element, options) || element; + } + processAttrs(element); + return element + } + + function processKey (el) { + var exp = getBindingAttr(el, 'key'); + if (exp) { + { + if (el.tag === 'template') { + warn$2( + "<template> cannot be keyed. Place the key on real elements instead.", + getRawBindingAttr(el, 'key') + ); + } + if (el.for) { + var iterator = el.iterator2 || el.iterator1; + var parent = el.parent; + if (iterator && iterator === exp && parent && parent.tag === 'transition-group') { + warn$2( + "Do not use v-for index as key on <transition-group> children, " + + "this is the same as not using keys.", + getRawBindingAttr(el, 'key'), + true /* tip */ + ); + } + } + } + el.key = exp; + } + } + + function processRef (el) { + var ref = getBindingAttr(el, 'ref'); + if (ref) { + el.ref = ref; + el.refInFor = checkInFor(el); + } + } + + function processFor (el) { + var exp; + if ((exp = getAndRemoveAttr(el, 'v-for'))) { + var res = parseFor(exp); + if (res) { + extend(el, res); + } else { + warn$2( + ("Invalid v-for expression: " + exp), + el.rawAttrsMap['v-for'] + ); + } + } + } + + + + function parseFor (exp) { + var inMatch = exp.match(forAliasRE); + if (!inMatch) { return } + var res = {}; + res.for = inMatch[2].trim(); + var alias = inMatch[1].trim().replace(stripParensRE, ''); + var iteratorMatch = alias.match(forIteratorRE); + if (iteratorMatch) { + res.alias = alias.replace(forIteratorRE, '').trim(); + res.iterator1 = iteratorMatch[1].trim(); + if (iteratorMatch[2]) { + res.iterator2 = iteratorMatch[2].trim(); + } + } else { + res.alias = alias; + } + return res + } + + function processIf (el) { + var exp = getAndRemoveAttr(el, 'v-if'); + if (exp) { + el.if = exp; + addIfCondition(el, { + exp: exp, + block: el + }); + } else { + if (getAndRemoveAttr(el, 'v-else') != null) { + el.else = true; + } + var elseif = getAndRemoveAttr(el, 'v-else-if'); + if (elseif) { + el.elseif = elseif; + } + } + } + + function processIfConditions (el, parent) { + var prev = findPrevElement(parent.children); + if (prev && prev.if) { + addIfCondition(prev, { + exp: el.elseif, + block: el + }); + } else { + warn$2( + "v-" + (el.elseif ? ('else-if="' + el.elseif + '"') : 'else') + " " + + "used on element <" + (el.tag) + "> without corresponding v-if.", + el.rawAttrsMap[el.elseif ? 'v-else-if' : 'v-else'] + ); + } + } + + function findPrevElement (children) { + var i = children.length; + while (i--) { + if (children[i].type === 1) { + return children[i] + } else { + if (children[i].text !== ' ') { + warn$2( + "text \"" + (children[i].text.trim()) + "\" between v-if and v-else(-if) " + + "will be ignored.", + children[i] + ); + } + children.pop(); + } + } + } + + function addIfCondition (el, condition) { + if (!el.ifConditions) { + el.ifConditions = []; + } + el.ifConditions.push(condition); + } + + function processOnce (el) { + var once$$1 = getAndRemoveAttr(el, 'v-once'); + if (once$$1 != null) { + el.once = true; + } + } + + // handle content being passed to a component as slot, + // e.g. <template slot="xxx">, <div slot-scope="xxx"> + function processSlotContent (el) { + var slotScope; + if (el.tag === 'template') { + slotScope = getAndRemoveAttr(el, 'scope'); + /* istanbul ignore if */ + if (slotScope) { + warn$2( + "the \"scope\" attribute for scoped slots have been deprecated and " + + "replaced by \"slot-scope\" since 2.5. The new \"slot-scope\" attribute " + + "can also be used on plain elements in addition to <template> to " + + "denote scoped slots.", + el.rawAttrsMap['scope'], + true + ); + } + el.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope'); + } else if ((slotScope = getAndRemoveAttr(el, 'slot-scope'))) { + /* istanbul ignore if */ + if (el.attrsMap['v-for']) { + warn$2( + "Ambiguous combined usage of slot-scope and v-for on <" + (el.tag) + "> " + + "(v-for takes higher priority). Use a wrapper <template> for the " + + "scoped slot to make it clearer.", + el.rawAttrsMap['slot-scope'], + true + ); + } + el.slotScope = slotScope; + } + + // slot="xxx" + var slotTarget = getBindingAttr(el, 'slot'); + if (slotTarget) { + el.slotTarget = slotTarget === '""' ? '"default"' : slotTarget; + el.slotTargetDynamic = !!(el.attrsMap[':slot'] || el.attrsMap['v-bind:slot']); + // preserve slot as an attribute for native shadow DOM compat + // only for non-scoped slots. + if (el.tag !== 'template' && !el.slotScope) { + addAttr(el, 'slot', slotTarget, getRawBindingAttr(el, 'slot')); + } + } + + // 2.6 v-slot syntax + { + if (el.tag === 'template') { + // v-slot on <template> + var slotBinding = getAndRemoveAttrByRegex(el, slotRE); + if (slotBinding) { + { + if (el.slotTarget || el.slotScope) { + warn$2( + "Unexpected mixed usage of different slot syntaxes.", + el + ); + } + if (el.parent && !maybeComponent(el.parent)) { + warn$2( + "<template v-slot> can only appear at the root level inside " + + "the receiving component", + el + ); + } + } + var ref = getSlotName(slotBinding); + var name = ref.name; + var dynamic = ref.dynamic; + el.slotTarget = name; + el.slotTargetDynamic = dynamic; + el.slotScope = slotBinding.value || emptySlotScopeToken; // force it into a scoped slot for perf + } + } else { + // v-slot on component, denotes default slot + var slotBinding$1 = getAndRemoveAttrByRegex(el, slotRE); + if (slotBinding$1) { + { + if (!maybeComponent(el)) { + warn$2( + "v-slot can only be used on components or <template>.", + slotBinding$1 + ); + } + if (el.slotScope || el.slotTarget) { + warn$2( + "Unexpected mixed usage of different slot syntaxes.", + el + ); + } + if (el.scopedSlots) { + warn$2( + "To avoid scope ambiguity, the default slot should also use " + + "<template> syntax when there are other named slots.", + slotBinding$1 + ); + } + } + // add the component's children to its default slot + var slots = el.scopedSlots || (el.scopedSlots = {}); + var ref$1 = getSlotName(slotBinding$1); + var name$1 = ref$1.name; + var dynamic$1 = ref$1.dynamic; + var slotContainer = slots[name$1] = createASTElement('template', [], el); + slotContainer.slotTarget = name$1; + slotContainer.slotTargetDynamic = dynamic$1; + slotContainer.children = el.children.filter(function (c) { + if (!c.slotScope) { + c.parent = slotContainer; + return true + } + }); + slotContainer.slotScope = slotBinding$1.value || emptySlotScopeToken; + // remove children as they are returned from scopedSlots now + el.children = []; + // mark el non-plain so data gets generated + el.plain = false; + } + } + } + } + + function getSlotName (binding) { + var name = binding.name.replace(slotRE, ''); + if (!name) { + if (binding.name[0] !== '#') { + name = 'default'; + } else { + warn$2( + "v-slot shorthand syntax requires a slot name.", + binding + ); + } + } + return dynamicArgRE.test(name) + // dynamic [name] + ? { name: name.slice(1, -1), dynamic: true } + // static name + : { name: ("\"" + name + "\""), dynamic: false } + } + + // handle <slot/> outlets + function processSlotOutlet (el) { + if (el.tag === 'slot') { + el.slotName = getBindingAttr(el, 'name'); + if (el.key) { + warn$2( + "`key` does not work on <slot> because slots are abstract outlets " + + "and can possibly expand into multiple elements. " + + "Use the key on a wrapping element instead.", + getRawBindingAttr(el, 'key') + ); + } + } + } + + function processComponent (el) { + var binding; + if ((binding = getBindingAttr(el, 'is'))) { + el.component = binding; + } + if (getAndRemoveAttr(el, 'inline-template') != null) { + el.inlineTemplate = true; + } + } + + function processAttrs (el) { + var list = el.attrsList; + var i, l, name, rawName, value, modifiers, syncGen, isDynamic; + for (i = 0, l = list.length; i < l; i++) { + name = rawName = list[i].name; + value = list[i].value; + if (dirRE.test(name)) { + // mark element as dynamic + el.hasBindings = true; + // modifiers + modifiers = parseModifiers(name.replace(dirRE, '')); + // support .foo shorthand syntax for the .prop modifier + if (modifiers) { + name = name.replace(modifierRE, ''); + } + if (bindRE.test(name)) { // v-bind + name = name.replace(bindRE, ''); + value = parseFilters(value); + isDynamic = dynamicArgRE.test(name); + if (isDynamic) { + name = name.slice(1, -1); + } + if ( + value.trim().length === 0 + ) { + warn$2( + ("The value for a v-bind expression cannot be empty. Found in \"v-bind:" + name + "\"") + ); + } + if (modifiers) { + if (modifiers.prop && !isDynamic) { + name = camelize(name); + if (name === 'innerHtml') { name = 'innerHTML'; } + } + if (modifiers.camel && !isDynamic) { + name = camelize(name); + } + if (modifiers.sync) { + syncGen = genAssignmentCode(value, "$event"); + if (!isDynamic) { + addHandler( + el, + ("update:" + (camelize(name))), + syncGen, + null, + false, + warn$2, + list[i] + ); + if (hyphenate(name) !== camelize(name)) { + addHandler( + el, + ("update:" + (hyphenate(name))), + syncGen, + null, + false, + warn$2, + list[i] + ); + } + } else { + // handler w/ dynamic event name + addHandler( + el, + ("\"update:\"+(" + name + ")"), + syncGen, + null, + false, + warn$2, + list[i], + true // dynamic + ); + } + } + } + if ((modifiers && modifiers.prop) || ( + !el.component && platformMustUseProp(el.tag, el.attrsMap.type, name) + )) { + addProp(el, name, value, list[i], isDynamic); + } else { + addAttr(el, name, value, list[i], isDynamic); + } + } else if (onRE.test(name)) { // v-on + name = name.replace(onRE, ''); + isDynamic = dynamicArgRE.test(name); + if (isDynamic) { + name = name.slice(1, -1); + } + addHandler(el, name, value, modifiers, false, warn$2, list[i], isDynamic); + } else { // normal directives + name = name.replace(dirRE, ''); + // parse arg + var argMatch = name.match(argRE); + var arg = argMatch && argMatch[1]; + isDynamic = false; + if (arg) { + name = name.slice(0, -(arg.length + 1)); + if (dynamicArgRE.test(arg)) { + arg = arg.slice(1, -1); + isDynamic = true; + } + } + addDirective(el, name, rawName, value, arg, isDynamic, modifiers, list[i]); + if (name === 'model') { + checkForAliasModel(el, value); + } + } + } else { + // literal attribute + { + var res = parseText(value, delimiters); + if (res) { + warn$2( + name + "=\"" + value + "\": " + + 'Interpolation inside attributes has been removed. ' + + 'Use v-bind or the colon shorthand instead. For example, ' + + 'instead of <div id="{{ val }}">, use <div :id="val">.', + list[i] + ); + } + } + addAttr(el, name, JSON.stringify(value), list[i]); + // #6887 firefox doesn't update muted state if set via attribute + // even immediately after element creation + if (!el.component && + name === 'muted' && + platformMustUseProp(el.tag, el.attrsMap.type, name)) { + addProp(el, name, 'true', list[i]); + } + } + } + } + + function checkInFor (el) { + var parent = el; + while (parent) { + if (parent.for !== undefined) { + return true + } + parent = parent.parent; + } + return false + } + + function parseModifiers (name) { + var match = name.match(modifierRE); + if (match) { + var ret = {}; + match.forEach(function (m) { ret[m.slice(1)] = true; }); + return ret + } + } + + function makeAttrsMap (attrs) { + var map = {}; + for (var i = 0, l = attrs.length; i < l; i++) { + if ( + map[attrs[i].name] && !isIE && !isEdge + ) { + warn$2('duplicate attribute: ' + attrs[i].name, attrs[i]); + } + map[attrs[i].name] = attrs[i].value; + } + return map + } + + // for script (e.g. type="x/template") or style, do not decode content + function isTextTag (el) { + return el.tag === 'script' || el.tag === 'style' + } + + function isForbiddenTag (el) { + return ( + el.tag === 'style' || + (el.tag === 'script' && ( + !el.attrsMap.type || + el.attrsMap.type === 'text/javascript' + )) + ) + } + + var ieNSBug = /^xmlns:NS\d+/; + var ieNSPrefix = /^NS\d+:/; + + /* istanbul ignore next */ + function guardIESVGBug (attrs) { + var res = []; + for (var i = 0; i < attrs.length; i++) { + var attr = attrs[i]; + if (!ieNSBug.test(attr.name)) { + attr.name = attr.name.replace(ieNSPrefix, ''); + res.push(attr); + } + } + return res + } + + function checkForAliasModel (el, value) { + var _el = el; + while (_el) { + if (_el.for && _el.alias === value) { + warn$2( + "<" + (el.tag) + " v-model=\"" + value + "\">: " + + "You are binding v-model directly to a v-for iteration alias. " + + "This will not be able to modify the v-for source array because " + + "writing to the alias is like modifying a function local variable. " + + "Consider using an array of objects and use v-model on an object property instead.", + el.rawAttrsMap['v-model'] + ); + } + _el = _el.parent; + } + } + + /* */ + + function preTransformNode (el, options) { + if (el.tag === 'input') { + var map = el.attrsMap; + if (!map['v-model']) { + return + } + + var typeBinding; + if (map[':type'] || map['v-bind:type']) { + typeBinding = getBindingAttr(el, 'type'); + } + if (!map.type && !typeBinding && map['v-bind']) { + typeBinding = "(" + (map['v-bind']) + ").type"; + } + + if (typeBinding) { + var ifCondition = getAndRemoveAttr(el, 'v-if', true); + var ifConditionExtra = ifCondition ? ("&&(" + ifCondition + ")") : ""; + var hasElse = getAndRemoveAttr(el, 'v-else', true) != null; + var elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true); + // 1. checkbox + var branch0 = cloneASTElement(el); + // process for on the main node + processFor(branch0); + addRawAttr(branch0, 'type', 'checkbox'); + processElement(branch0, options); + branch0.processed = true; // prevent it from double-processed + branch0.if = "(" + typeBinding + ")==='checkbox'" + ifConditionExtra; + addIfCondition(branch0, { + exp: branch0.if, + block: branch0 + }); + // 2. add radio else-if condition + var branch1 = cloneASTElement(el); + getAndRemoveAttr(branch1, 'v-for', true); + addRawAttr(branch1, 'type', 'radio'); + processElement(branch1, options); + addIfCondition(branch0, { + exp: "(" + typeBinding + ")==='radio'" + ifConditionExtra, + block: branch1 + }); + // 3. other + var branch2 = cloneASTElement(el); + getAndRemoveAttr(branch2, 'v-for', true); + addRawAttr(branch2, ':type', typeBinding); + processElement(branch2, options); + addIfCondition(branch0, { + exp: ifCondition, + block: branch2 + }); + + if (hasElse) { + branch0.else = true; + } else if (elseIfCondition) { + branch0.elseif = elseIfCondition; + } + + return branch0 + } + } + } + + function cloneASTElement (el) { + return createASTElement(el.tag, el.attrsList.slice(), el.parent) + } + + var model$1 = { + preTransformNode: preTransformNode + }; + + var modules$1 = [ + klass$1, + style$1, + model$1 + ]; + + /* */ + + function text (el, dir) { + if (dir.value) { + addProp(el, 'textContent', ("_s(" + (dir.value) + ")"), dir); + } + } + + /* */ + + function html (el, dir) { + if (dir.value) { + addProp(el, 'innerHTML', ("_s(" + (dir.value) + ")"), dir); + } + } + + var directives$1 = { + model: model, + text: text, + html: html + }; + + /* */ + + var baseOptions = { + expectHTML: true, + modules: modules$1, + directives: directives$1, + isPreTag: isPreTag, + isUnaryTag: isUnaryTag, + mustUseProp: mustUseProp, + canBeLeftOpenTag: canBeLeftOpenTag, + isReservedTag: isReservedTag, + getTagNamespace: getTagNamespace, + staticKeys: genStaticKeys(modules$1) + }; + + /* */ + + var isStaticKey; + var isPlatformReservedTag; + + var genStaticKeysCached = cached(genStaticKeys$1); + + /** + * Goal of the optimizer: walk the generated template AST tree + * and detect sub-trees that are purely static, i.e. parts of + * the DOM that never needs to change. + * + * Once we detect these sub-trees, we can: + * + * 1. Hoist them into constants, so that we no longer need to + * create fresh nodes for them on each re-render; + * 2. Completely skip them in the patching process. + */ + function optimize (root, options) { + if (!root) { return } + isStaticKey = genStaticKeysCached(options.staticKeys || ''); + isPlatformReservedTag = options.isReservedTag || no; + // first pass: mark all non-static nodes. + markStatic$1(root); + // second pass: mark static roots. + markStaticRoots(root, false); + } + + function genStaticKeys$1 (keys) { + return makeMap( + 'type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap' + + (keys ? ',' + keys : '') + ) + } + + function markStatic$1 (node) { + node.static = isStatic(node); + if (node.type === 1) { + // do not make component slot content static. this avoids + // 1. components not able to mutate slot nodes + // 2. static slot content fails for hot-reloading + if ( + !isPlatformReservedTag(node.tag) && + node.tag !== 'slot' && + node.attrsMap['inline-template'] == null + ) { + return + } + for (var i = 0, l = node.children.length; i < l; i++) { + var child = node.children[i]; + markStatic$1(child); + if (!child.static) { + node.static = false; + } + } + if (node.ifConditions) { + for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) { + var block = node.ifConditions[i$1].block; + markStatic$1(block); + if (!block.static) { + node.static = false; + } + } + } + } + } + + function markStaticRoots (node, isInFor) { + if (node.type === 1) { + if (node.static || node.once) { + node.staticInFor = isInFor; + } + // For a node to qualify as a static root, it should have children that + // are not just static text. Otherwise the cost of hoisting out will + // outweigh the benefits and it's better off to just always render it fresh. + if (node.static && node.children.length && !( + node.children.length === 1 && + node.children[0].type === 3 + )) { + node.staticRoot = true; + return + } else { + node.staticRoot = false; + } + if (node.children) { + for (var i = 0, l = node.children.length; i < l; i++) { + markStaticRoots(node.children[i], isInFor || !!node.for); + } + } + if (node.ifConditions) { + for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) { + markStaticRoots(node.ifConditions[i$1].block, isInFor); + } + } + } + } + + function isStatic (node) { + if (node.type === 2) { // expression + return false + } + if (node.type === 3) { // text + return true + } + return !!(node.pre || ( + !node.hasBindings && // no dynamic bindings + !node.if && !node.for && // not v-if or v-for or v-else + !isBuiltInTag(node.tag) && // not a built-in + isPlatformReservedTag(node.tag) && // not a component + !isDirectChildOfTemplateFor(node) && + Object.keys(node).every(isStaticKey) + )) + } + + function isDirectChildOfTemplateFor (node) { + while (node.parent) { + node = node.parent; + if (node.tag !== 'template') { + return false + } + if (node.for) { + return true + } + } + return false + } + + /* */ + + var fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/; + var fnInvokeRE = /\([^)]*?\);*$/; + var simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/; + + // KeyboardEvent.keyCode aliases + var keyCodes = { + esc: 27, + tab: 9, + enter: 13, + space: 32, + up: 38, + left: 37, + right: 39, + down: 40, + 'delete': [8, 46] + }; + + // KeyboardEvent.key aliases + var keyNames = { + // #7880: IE11 and Edge use `Esc` for Escape key name. + esc: ['Esc', 'Escape'], + tab: 'Tab', + enter: 'Enter', + // #9112: IE11 uses `Spacebar` for Space key name. + space: [' ', 'Spacebar'], + // #7806: IE11 uses key names without `Arrow` prefix for arrow keys. + up: ['Up', 'ArrowUp'], + left: ['Left', 'ArrowLeft'], + right: ['Right', 'ArrowRight'], + down: ['Down', 'ArrowDown'], + // #9112: IE11 uses `Del` for Delete key name. + 'delete': ['Backspace', 'Delete', 'Del'] + }; + + // #4868: modifiers that prevent the execution of the listener + // need to explicitly return null so that we can determine whether to remove + // the listener for .once + var genGuard = function (condition) { return ("if(" + condition + ")return null;"); }; + + var modifierCode = { + stop: '$event.stopPropagation();', + prevent: '$event.preventDefault();', + self: genGuard("$event.target !== $event.currentTarget"), + ctrl: genGuard("!$event.ctrlKey"), + shift: genGuard("!$event.shiftKey"), + alt: genGuard("!$event.altKey"), + meta: genGuard("!$event.metaKey"), + left: genGuard("'button' in $event && $event.button !== 0"), + middle: genGuard("'button' in $event && $event.button !== 1"), + right: genGuard("'button' in $event && $event.button !== 2") + }; + + function genHandlers ( + events, + isNative + ) { + var prefix = isNative ? 'nativeOn:' : 'on:'; + var staticHandlers = ""; + var dynamicHandlers = ""; + for (var name in events) { + var handlerCode = genHandler(events[name]); + if (events[name] && events[name].dynamic) { + dynamicHandlers += name + "," + handlerCode + ","; + } else { + staticHandlers += "\"" + name + "\":" + handlerCode + ","; + } + } + staticHandlers = "{" + (staticHandlers.slice(0, -1)) + "}"; + if (dynamicHandlers) { + return prefix + "_d(" + staticHandlers + ",[" + (dynamicHandlers.slice(0, -1)) + "])" + } else { + return prefix + staticHandlers + } + } + + function genHandler (handler) { + if (!handler) { + return 'function(){}' + } + + if (Array.isArray(handler)) { + return ("[" + (handler.map(function (handler) { return genHandler(handler); }).join(',')) + "]") + } + + var isMethodPath = simplePathRE.test(handler.value); + var isFunctionExpression = fnExpRE.test(handler.value); + var isFunctionInvocation = simplePathRE.test(handler.value.replace(fnInvokeRE, '')); + + if (!handler.modifiers) { + if (isMethodPath || isFunctionExpression) { + return handler.value + } + return ("function($event){" + (isFunctionInvocation ? ("return " + (handler.value)) : handler.value) + "}") // inline statement + } else { + var code = ''; + var genModifierCode = ''; + var keys = []; + for (var key in handler.modifiers) { + if (modifierCode[key]) { + genModifierCode += modifierCode[key]; + // left/right + if (keyCodes[key]) { + keys.push(key); + } + } else if (key === 'exact') { + var modifiers = (handler.modifiers); + genModifierCode += genGuard( + ['ctrl', 'shift', 'alt', 'meta'] + .filter(function (keyModifier) { return !modifiers[keyModifier]; }) + .map(function (keyModifier) { return ("$event." + keyModifier + "Key"); }) + .join('||') + ); + } else { + keys.push(key); + } + } + if (keys.length) { + code += genKeyFilter(keys); + } + // Make sure modifiers like prevent and stop get executed after key filtering + if (genModifierCode) { + code += genModifierCode; + } + var handlerCode = isMethodPath + ? ("return " + (handler.value) + "($event)") + : isFunctionExpression + ? ("return (" + (handler.value) + ")($event)") + : isFunctionInvocation + ? ("return " + (handler.value)) + : handler.value; + return ("function($event){" + code + handlerCode + "}") + } + } + + function genKeyFilter (keys) { + return ( + // make sure the key filters only apply to KeyboardEvents + // #9441: can't use 'keyCode' in $event because Chrome autofill fires fake + // key events that do not have keyCode property... + "if(!$event.type.indexOf('key')&&" + + (keys.map(genFilterCode).join('&&')) + ")return null;" + ) + } + + function genFilterCode (key) { + var keyVal = parseInt(key, 10); + if (keyVal) { + return ("$event.keyCode!==" + keyVal) + } + var keyCode = keyCodes[key]; + var keyName = keyNames[key]; + return ( + "_k($event.keyCode," + + (JSON.stringify(key)) + "," + + (JSON.stringify(keyCode)) + "," + + "$event.key," + + "" + (JSON.stringify(keyName)) + + ")" + ) + } + + /* */ + + function on (el, dir) { + if (dir.modifiers) { + warn("v-on without argument does not support modifiers."); + } + el.wrapListeners = function (code) { return ("_g(" + code + "," + (dir.value) + ")"); }; + } + + /* */ + + function bind$1 (el, dir) { + el.wrapData = function (code) { + return ("_b(" + code + ",'" + (el.tag) + "'," + (dir.value) + "," + (dir.modifiers && dir.modifiers.prop ? 'true' : 'false') + (dir.modifiers && dir.modifiers.sync ? ',true' : '') + ")") + }; + } + + /* */ + + var baseDirectives = { + on: on, + bind: bind$1, + cloak: noop + }; + + /* */ + + + + + + var CodegenState = function CodegenState (options) { + this.options = options; + this.warn = options.warn || baseWarn; + this.transforms = pluckModuleFunction(options.modules, 'transformCode'); + this.dataGenFns = pluckModuleFunction(options.modules, 'genData'); + this.directives = extend(extend({}, baseDirectives), options.directives); + var isReservedTag = options.isReservedTag || no; + this.maybeComponent = function (el) { return !!el.component || !isReservedTag(el.tag); }; + this.onceId = 0; + this.staticRenderFns = []; + this.pre = false; + }; + + + + function generate ( + ast, + options + ) { + var state = new CodegenState(options); + var code = ast ? genElement(ast, state) : '_c("div")'; + return { + render: ("with(this){return " + code + "}"), + staticRenderFns: state.staticRenderFns + } + } + + function genElement (el, state) { + if (el.parent) { + el.pre = el.pre || el.parent.pre; + } + + if (el.staticRoot && !el.staticProcessed) { + return genStatic(el, state) + } else if (el.once && !el.onceProcessed) { + return genOnce(el, state) + } else if (el.for && !el.forProcessed) { + return genFor(el, state) + } else if (el.if && !el.ifProcessed) { + return genIf(el, state) + } else if (el.tag === 'template' && !el.slotTarget && !state.pre) { + return genChildren(el, state) || 'void 0' + } else if (el.tag === 'slot') { + return genSlot(el, state) + } else { + // component or element + var code; + if (el.component) { + code = genComponent(el.component, el, state); + } else { + var data; + if (!el.plain || (el.pre && state.maybeComponent(el))) { + data = genData$2(el, state); + } + + var children = el.inlineTemplate ? null : genChildren(el, state, true); + code = "_c('" + (el.tag) + "'" + (data ? ("," + data) : '') + (children ? ("," + children) : '') + ")"; + } + // module transforms + for (var i = 0; i < state.transforms.length; i++) { + code = state.transforms[i](el, code); + } + return code + } + } + + // hoist static sub-trees out + function genStatic (el, state) { + el.staticProcessed = true; + // Some elements (templates) need to behave differently inside of a v-pre + // node. All pre nodes are static roots, so we can use this as a location to + // wrap a state change and reset it upon exiting the pre node. + var originalPreState = state.pre; + if (el.pre) { + state.pre = el.pre; + } + state.staticRenderFns.push(("with(this){return " + (genElement(el, state)) + "}")); + state.pre = originalPreState; + return ("_m(" + (state.staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + ")") + } + + // v-once + function genOnce (el, state) { + el.onceProcessed = true; + if (el.if && !el.ifProcessed) { + return genIf(el, state) + } else if (el.staticInFor) { + var key = ''; + var parent = el.parent; + while (parent) { + if (parent.for) { + key = parent.key; + break + } + parent = parent.parent; + } + if (!key) { + state.warn( + "v-once can only be used inside v-for that is keyed. ", + el.rawAttrsMap['v-once'] + ); + return genElement(el, state) + } + return ("_o(" + (genElement(el, state)) + "," + (state.onceId++) + "," + key + ")") + } else { + return genStatic(el, state) + } + } + + function genIf ( + el, + state, + altGen, + altEmpty + ) { + el.ifProcessed = true; // avoid recursion + return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty) + } + + function genIfConditions ( + conditions, + state, + altGen, + altEmpty + ) { + if (!conditions.length) { + return altEmpty || '_e()' + } + + var condition = conditions.shift(); + if (condition.exp) { + return ("(" + (condition.exp) + ")?" + (genTernaryExp(condition.block)) + ":" + (genIfConditions(conditions, state, altGen, altEmpty))) + } else { + return ("" + (genTernaryExp(condition.block))) + } + + // v-if with v-once should generate code like (a)?_m(0):_m(1) + function genTernaryExp (el) { + return altGen + ? altGen(el, state) + : el.once + ? genOnce(el, state) + : genElement(el, state) + } + } + + function genFor ( + el, + state, + altGen, + altHelper + ) { + var exp = el.for; + var alias = el.alias; + var iterator1 = el.iterator1 ? ("," + (el.iterator1)) : ''; + var iterator2 = el.iterator2 ? ("," + (el.iterator2)) : ''; + + if (state.maybeComponent(el) && + el.tag !== 'slot' && + el.tag !== 'template' && + !el.key + ) { + state.warn( + "<" + (el.tag) + " v-for=\"" + alias + " in " + exp + "\">: component lists rendered with " + + "v-for should have explicit keys. " + + "See https://vuejs.org/guide/list.html#key for more info.", + el.rawAttrsMap['v-for'], + true /* tip */ + ); + } + + el.forProcessed = true; // avoid recursion + return (altHelper || '_l') + "((" + exp + ")," + + "function(" + alias + iterator1 + iterator2 + "){" + + "return " + ((altGen || genElement)(el, state)) + + '})' + } + + function genData$2 (el, state) { + var data = '{'; + + // directives first. + // directives may mutate the el's other properties before they are generated. + var dirs = genDirectives(el, state); + if (dirs) { data += dirs + ','; } + + // key + if (el.key) { + data += "key:" + (el.key) + ","; + } + // ref + if (el.ref) { + data += "ref:" + (el.ref) + ","; + } + if (el.refInFor) { + data += "refInFor:true,"; + } + // pre + if (el.pre) { + data += "pre:true,"; + } + // record original tag name for components using "is" attribute + if (el.component) { + data += "tag:\"" + (el.tag) + "\","; + } + // module data generation functions + for (var i = 0; i < state.dataGenFns.length; i++) { + data += state.dataGenFns[i](el); + } + // attributes + if (el.attrs) { + data += "attrs:" + (genProps(el.attrs)) + ","; + } + // DOM props + if (el.props) { + data += "domProps:" + (genProps(el.props)) + ","; + } + // event handlers + if (el.events) { + data += (genHandlers(el.events, false)) + ","; + } + if (el.nativeEvents) { + data += (genHandlers(el.nativeEvents, true)) + ","; + } + // slot target + // only for non-scoped slots + if (el.slotTarget && !el.slotScope) { + data += "slot:" + (el.slotTarget) + ","; + } + // scoped slots + if (el.scopedSlots) { + data += (genScopedSlots(el, el.scopedSlots, state)) + ","; + } + // component v-model + if (el.model) { + data += "model:{value:" + (el.model.value) + ",callback:" + (el.model.callback) + ",expression:" + (el.model.expression) + "},"; + } + // inline-template + if (el.inlineTemplate) { + var inlineTemplate = genInlineTemplate(el, state); + if (inlineTemplate) { + data += inlineTemplate + ","; + } + } + data = data.replace(/,$/, '') + '}'; + // v-bind dynamic argument wrap + // v-bind with dynamic arguments must be applied using the same v-bind object + // merge helper so that class/style/mustUseProp attrs are handled correctly. + if (el.dynamicAttrs) { + data = "_b(" + data + ",\"" + (el.tag) + "\"," + (genProps(el.dynamicAttrs)) + ")"; + } + // v-bind data wrap + if (el.wrapData) { + data = el.wrapData(data); + } + // v-on data wrap + if (el.wrapListeners) { + data = el.wrapListeners(data); + } + return data + } + + function genDirectives (el, state) { + var dirs = el.directives; + if (!dirs) { return } + var res = 'directives:['; + var hasRuntime = false; + var i, l, dir, needRuntime; + for (i = 0, l = dirs.length; i < l; i++) { + dir = dirs[i]; + needRuntime = true; + var gen = state.directives[dir.name]; + if (gen) { + // compile-time directive that manipulates AST. + // returns true if it also needs a runtime counterpart. + needRuntime = !!gen(el, dir, state.warn); + } + if (needRuntime) { + hasRuntime = true; + res += "{name:\"" + (dir.name) + "\",rawName:\"" + (dir.rawName) + "\"" + (dir.value ? (",value:(" + (dir.value) + "),expression:" + (JSON.stringify(dir.value))) : '') + (dir.arg ? (",arg:" + (dir.isDynamicArg ? dir.arg : ("\"" + (dir.arg) + "\""))) : '') + (dir.modifiers ? (",modifiers:" + (JSON.stringify(dir.modifiers))) : '') + "},"; + } + } + if (hasRuntime) { + return res.slice(0, -1) + ']' + } + } + + function genInlineTemplate (el, state) { + var ast = el.children[0]; + if (el.children.length !== 1 || ast.type !== 1) { + state.warn( + 'Inline-template components must have exactly one child element.', + { start: el.start } + ); + } + if (ast && ast.type === 1) { + var inlineRenderFns = generate(ast, state.options); + return ("inlineTemplate:{render:function(){" + (inlineRenderFns.render) + "},staticRenderFns:[" + (inlineRenderFns.staticRenderFns.map(function (code) { return ("function(){" + code + "}"); }).join(',')) + "]}") + } + } + + function genScopedSlots ( + el, + slots, + state + ) { + // by default scoped slots are considered "stable", this allows child + // components with only scoped slots to skip forced updates from parent. + // but in some cases we have to bail-out of this optimization + // for example if the slot contains dynamic names, has v-if or v-for on them... + var needsForceUpdate = el.for || Object.keys(slots).some(function (key) { + var slot = slots[key]; + return ( + slot.slotTargetDynamic || + slot.if || + slot.for || + containsSlotChild(slot) // is passing down slot from parent which may be dynamic + ) + }); + + // #9534: if a component with scoped slots is inside a conditional branch, + // it's possible for the same component to be reused but with different + // compiled slot content. To avoid that, we generate a unique key based on + // the generated code of all the slot contents. + var needsKey = !!el.if; + + // OR when it is inside another scoped slot or v-for (the reactivity may be + // disconnected due to the intermediate scope variable) + // #9438, #9506 + // TODO: this can be further optimized by properly analyzing in-scope bindings + // and skip force updating ones that do not actually use scope variables. + if (!needsForceUpdate) { + var parent = el.parent; + while (parent) { + if ( + (parent.slotScope && parent.slotScope !== emptySlotScopeToken) || + parent.for + ) { + needsForceUpdate = true; + break + } + if (parent.if) { + needsKey = true; + } + parent = parent.parent; + } + } + + var generatedSlots = Object.keys(slots) + .map(function (key) { return genScopedSlot(slots[key], state); }) + .join(','); + + return ("scopedSlots:_u([" + generatedSlots + "]" + (needsForceUpdate ? ",null,true" : "") + (!needsForceUpdate && needsKey ? (",null,false," + (hash(generatedSlots))) : "") + ")") + } + + function hash(str) { + var hash = 5381; + var i = str.length; + while(i) { + hash = (hash * 33) ^ str.charCodeAt(--i); + } + return hash >>> 0 + } + + function containsSlotChild (el) { + if (el.type === 1) { + if (el.tag === 'slot') { + return true + } + return el.children.some(containsSlotChild) + } + return false + } + + function genScopedSlot ( + el, + state + ) { + var isLegacySyntax = el.attrsMap['slot-scope']; + if (el.if && !el.ifProcessed && !isLegacySyntax) { + return genIf(el, state, genScopedSlot, "null") + } + if (el.for && !el.forProcessed) { + return genFor(el, state, genScopedSlot) + } + var slotScope = el.slotScope === emptySlotScopeToken + ? "" + : String(el.slotScope); + var fn = "function(" + slotScope + "){" + + "return " + (el.tag === 'template' + ? el.if && isLegacySyntax + ? ("(" + (el.if) + ")?" + (genChildren(el, state) || 'undefined') + ":undefined") + : genChildren(el, state) || 'undefined' + : genElement(el, state)) + "}"; + // reverse proxy v-slot without scope on this.$slots + var reverseProxy = slotScope ? "" : ",proxy:true"; + return ("{key:" + (el.slotTarget || "\"default\"") + ",fn:" + fn + reverseProxy + "}") + } + + function genChildren ( + el, + state, + checkSkip, + altGenElement, + altGenNode + ) { + var children = el.children; + if (children.length) { + var el$1 = children[0]; + // optimize single v-for + if (children.length === 1 && + el$1.for && + el$1.tag !== 'template' && + el$1.tag !== 'slot' + ) { + var normalizationType = checkSkip + ? state.maybeComponent(el$1) ? ",1" : ",0" + : ""; + return ("" + ((altGenElement || genElement)(el$1, state)) + normalizationType) + } + var normalizationType$1 = checkSkip + ? getNormalizationType(children, state.maybeComponent) + : 0; + var gen = altGenNode || genNode; + return ("[" + (children.map(function (c) { return gen(c, state); }).join(',')) + "]" + (normalizationType$1 ? ("," + normalizationType$1) : '')) + } + } + + // determine the normalization needed for the children array. + // 0: no normalization needed + // 1: simple normalization needed (possible 1-level deep nested array) + // 2: full normalization needed + function getNormalizationType ( + children, + maybeComponent + ) { + var res = 0; + for (var i = 0; i < children.length; i++) { + var el = children[i]; + if (el.type !== 1) { + continue + } + if (needsNormalization(el) || + (el.ifConditions && el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) { + res = 2; + break + } + if (maybeComponent(el) || + (el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) { + res = 1; + } + } + return res + } + + function needsNormalization (el) { + return el.for !== undefined || el.tag === 'template' || el.tag === 'slot' + } + + function genNode (node, state) { + if (node.type === 1) { + return genElement(node, state) + } else if (node.type === 3 && node.isComment) { + return genComment(node) + } else { + return genText(node) + } + } + + function genText (text) { + return ("_v(" + (text.type === 2 + ? text.expression // no need for () because already wrapped in _s() + : transformSpecialNewlines(JSON.stringify(text.text))) + ")") + } + + function genComment (comment) { + return ("_e(" + (JSON.stringify(comment.text)) + ")") + } + + function genSlot (el, state) { + var slotName = el.slotName || '"default"'; + var children = genChildren(el, state); + var res = "_t(" + slotName + (children ? ("," + children) : ''); + var attrs = el.attrs || el.dynamicAttrs + ? genProps((el.attrs || []).concat(el.dynamicAttrs || []).map(function (attr) { return ({ + // slot props are camelized + name: camelize(attr.name), + value: attr.value, + dynamic: attr.dynamic + }); })) + : null; + var bind$$1 = el.attrsMap['v-bind']; + if ((attrs || bind$$1) && !children) { + res += ",null"; + } + if (attrs) { + res += "," + attrs; + } + if (bind$$1) { + res += (attrs ? '' : ',null') + "," + bind$$1; + } + return res + ')' + } + + // componentName is el.component, take it as argument to shun flow's pessimistic refinement + function genComponent ( + componentName, + el, + state + ) { + var children = el.inlineTemplate ? null : genChildren(el, state, true); + return ("_c(" + componentName + "," + (genData$2(el, state)) + (children ? ("," + children) : '') + ")") + } + + function genProps (props) { + var staticProps = ""; + var dynamicProps = ""; + for (var i = 0; i < props.length; i++) { + var prop = props[i]; + var value = transformSpecialNewlines(prop.value); + if (prop.dynamic) { + dynamicProps += (prop.name) + "," + value + ","; + } else { + staticProps += "\"" + (prop.name) + "\":" + value + ","; + } + } + staticProps = "{" + (staticProps.slice(0, -1)) + "}"; + if (dynamicProps) { + return ("_d(" + staticProps + ",[" + (dynamicProps.slice(0, -1)) + "])") + } else { + return staticProps + } + } + + // #3895, #4268 + function transformSpecialNewlines (text) { + return text + .replace(/\u2028/g, '\\u2028') + .replace(/\u2029/g, '\\u2029') + } + + /* */ + + + + // these keywords should not appear inside expressions, but operators like + // typeof, instanceof and in are allowed + var prohibitedKeywordRE = new RegExp('\\b' + ( + 'do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' + + 'super,throw,while,yield,delete,export,import,return,switch,default,' + + 'extends,finally,continue,debugger,function,arguments' + ).split(',').join('\\b|\\b') + '\\b'); + + // these unary operators should not be used as property/method names + var unaryOperatorsRE = new RegExp('\\b' + ( + 'delete,typeof,void' + ).split(',').join('\\s*\\([^\\)]*\\)|\\b') + '\\s*\\([^\\)]*\\)'); + + // strip strings in expressions + var stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g; + + // detect problematic expressions in a template + function detectErrors (ast, warn) { + if (ast) { + checkNode(ast, warn); + } + } + + function checkNode (node, warn) { + if (node.type === 1) { + for (var name in node.attrsMap) { + if (dirRE.test(name)) { + var value = node.attrsMap[name]; + if (value) { + var range = node.rawAttrsMap[name]; + if (name === 'v-for') { + checkFor(node, ("v-for=\"" + value + "\""), warn, range); + } else if (name === 'v-slot' || name[0] === '#') { + checkFunctionParameterExpression(value, (name + "=\"" + value + "\""), warn, range); + } else if (onRE.test(name)) { + checkEvent(value, (name + "=\"" + value + "\""), warn, range); + } else { + checkExpression(value, (name + "=\"" + value + "\""), warn, range); + } + } + } + } + if (node.children) { + for (var i = 0; i < node.children.length; i++) { + checkNode(node.children[i], warn); + } + } + } else if (node.type === 2) { + checkExpression(node.expression, node.text, warn, node); + } + } + + function checkEvent (exp, text, warn, range) { + var stripped = exp.replace(stripStringRE, ''); + var keywordMatch = stripped.match(unaryOperatorsRE); + if (keywordMatch && stripped.charAt(keywordMatch.index - 1) !== '$') { + warn( + "avoid using JavaScript unary operator as property name: " + + "\"" + (keywordMatch[0]) + "\" in expression " + (text.trim()), + range + ); + } + checkExpression(exp, text, warn, range); + } + + function checkFor (node, text, warn, range) { + checkExpression(node.for || '', text, warn, range); + checkIdentifier(node.alias, 'v-for alias', text, warn, range); + checkIdentifier(node.iterator1, 'v-for iterator', text, warn, range); + checkIdentifier(node.iterator2, 'v-for iterator', text, warn, range); + } + + function checkIdentifier ( + ident, + type, + text, + warn, + range + ) { + if (typeof ident === 'string') { + try { + new Function(("var " + ident + "=_")); + } catch (e) { + warn(("invalid " + type + " \"" + ident + "\" in expression: " + (text.trim())), range); + } + } + } + + function checkExpression (exp, text, warn, range) { + try { + new Function(("return " + exp)); + } catch (e) { + var keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE); + if (keywordMatch) { + warn( + "avoid using JavaScript keyword as property name: " + + "\"" + (keywordMatch[0]) + "\"\n Raw expression: " + (text.trim()), + range + ); + } else { + warn( + "invalid expression: " + (e.message) + " in\n\n" + + " " + exp + "\n\n" + + " Raw expression: " + (text.trim()) + "\n", + range + ); + } + } + } + + function checkFunctionParameterExpression (exp, text, warn, range) { + try { + new Function(exp, ''); + } catch (e) { + warn( + "invalid function parameter expression: " + (e.message) + " in\n\n" + + " " + exp + "\n\n" + + " Raw expression: " + (text.trim()) + "\n", + range + ); + } + } + + /* */ + + var range = 2; + + function generateCodeFrame ( + source, + start, + end + ) { + if ( start === void 0 ) start = 0; + if ( end === void 0 ) end = source.length; + + var lines = source.split(/\r?\n/); + var count = 0; + var res = []; + for (var i = 0; i < lines.length; i++) { + count += lines[i].length + 1; + if (count >= start) { + for (var j = i - range; j <= i + range || end > count; j++) { + if (j < 0 || j >= lines.length) { continue } + res.push(("" + (j + 1) + (repeat$1(" ", 3 - String(j + 1).length)) + "| " + (lines[j]))); + var lineLength = lines[j].length; + if (j === i) { + // push underline + var pad = start - (count - lineLength) + 1; + var length = end > count ? lineLength - pad : end - start; + res.push(" | " + repeat$1(" ", pad) + repeat$1("^", length)); + } else if (j > i) { + if (end > count) { + var length$1 = Math.min(end - count, lineLength); + res.push(" | " + repeat$1("^", length$1)); + } + count += lineLength + 1; + } + } + break + } + } + return res.join('\n') + } + + function repeat$1 (str, n) { + var result = ''; + if (n > 0) { + while (true) { // eslint-disable-line + if (n & 1) { result += str; } + n >>>= 1; + if (n <= 0) { break } + str += str; + } + } + return result + } + + /* */ + + + + function createFunction (code, errors) { + try { + return new Function(code) + } catch (err) { + errors.push({ err: err, code: code }); + return noop + } + } + + function createCompileToFunctionFn (compile) { + var cache = Object.create(null); + + return function compileToFunctions ( + template, + options, + vm + ) { + options = extend({}, options); + var warn$$1 = options.warn || warn; + delete options.warn; + + /* istanbul ignore if */ + { + // detect possible CSP restriction + try { + new Function('return 1'); + } catch (e) { + if (e.toString().match(/unsafe-eval|CSP/)) { + warn$$1( + 'It seems you are using the standalone build of Vue.js in an ' + + 'environment with Content Security Policy that prohibits unsafe-eval. ' + + 'The template compiler cannot work in this environment. Consider ' + + 'relaxing the policy to allow unsafe-eval or pre-compiling your ' + + 'templates into render functions.' + ); + } + } + } + + // check cache + var key = options.delimiters + ? String(options.delimiters) + template + : template; + if (cache[key]) { + return cache[key] + } + + // compile + var compiled = compile(template, options); + + // check compilation errors/tips + { + if (compiled.errors && compiled.errors.length) { + if (options.outputSourceRange) { + compiled.errors.forEach(function (e) { + warn$$1( + "Error compiling template:\n\n" + (e.msg) + "\n\n" + + generateCodeFrame(template, e.start, e.end), + vm + ); + }); + } else { + warn$$1( + "Error compiling template:\n\n" + template + "\n\n" + + compiled.errors.map(function (e) { return ("- " + e); }).join('\n') + '\n', + vm + ); + } + } + if (compiled.tips && compiled.tips.length) { + if (options.outputSourceRange) { + compiled.tips.forEach(function (e) { return tip(e.msg, vm); }); + } else { + compiled.tips.forEach(function (msg) { return tip(msg, vm); }); + } + } + } + + // turn code into functions + var res = {}; + var fnGenErrors = []; + res.render = createFunction(compiled.render, fnGenErrors); + res.staticRenderFns = compiled.staticRenderFns.map(function (code) { + return createFunction(code, fnGenErrors) + }); + + // check function generation errors. + // this should only happen if there is a bug in the compiler itself. + // mostly for codegen development use + /* istanbul ignore if */ + { + if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) { + warn$$1( + "Failed to generate render function:\n\n" + + fnGenErrors.map(function (ref) { + var err = ref.err; + var code = ref.code; + + return ((err.toString()) + " in\n\n" + code + "\n"); + }).join('\n'), + vm + ); + } + } + + return (cache[key] = res) + } + } + + /* */ + + function createCompilerCreator (baseCompile) { + return function createCompiler (baseOptions) { + function compile ( + template, + options + ) { + var finalOptions = Object.create(baseOptions); + var errors = []; + var tips = []; + + var warn = function (msg, range, tip) { + (tip ? tips : errors).push(msg); + }; + + if (options) { + if (options.outputSourceRange) { + // $flow-disable-line + var leadingSpaceLength = template.match(/^\s*/)[0].length; + + warn = function (msg, range, tip) { + var data = { msg: msg }; + if (range) { + if (range.start != null) { + data.start = range.start + leadingSpaceLength; + } + if (range.end != null) { + data.end = range.end + leadingSpaceLength; + } + } + (tip ? tips : errors).push(data); + }; + } + // merge custom modules + if (options.modules) { + finalOptions.modules = + (baseOptions.modules || []).concat(options.modules); + } + // merge custom directives + if (options.directives) { + finalOptions.directives = extend( + Object.create(baseOptions.directives || null), + options.directives + ); + } + // copy other options + for (var key in options) { + if (key !== 'modules' && key !== 'directives') { + finalOptions[key] = options[key]; + } + } + } + + finalOptions.warn = warn; + + var compiled = baseCompile(template.trim(), finalOptions); + { + detectErrors(compiled.ast, warn); + } + compiled.errors = errors; + compiled.tips = tips; + return compiled + } + + return { + compile: compile, + compileToFunctions: createCompileToFunctionFn(compile) + } + } + } + + /* */ + + // `createCompilerCreator` allows creating compilers that use alternative + // parser/optimizer/codegen, e.g the SSR optimizing compiler. + // Here we just export a default compiler using the default parts. + var createCompiler = createCompilerCreator(function baseCompile ( + template, + options + ) { + var ast = parse(template.trim(), options); + if (options.optimize !== false) { + optimize(ast, options); + } + var code = generate(ast, options); + return { + ast: ast, + render: code.render, + staticRenderFns: code.staticRenderFns + } + }); + + /* */ + + var ref$1 = createCompiler(baseOptions); + var compile = ref$1.compile; + var compileToFunctions = ref$1.compileToFunctions; + + /* */ + + // check whether current browser encodes a char inside attribute values + var div; + function getShouldDecode (href) { + div = div || document.createElement('div'); + div.innerHTML = href ? "<a href=\"\n\"/>" : "<div a=\"\n\"/>"; + return div.innerHTML.indexOf(' ') > 0 + } + + // #3663: IE encodes newlines inside attribute values while other browsers don't + var shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false; + // #6828: chrome encodes content in a[href] + var shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false; + + /* */ + + var idToTemplate = cached(function (id) { + var el = query(id); + return el && el.innerHTML + }); + + var mount = Vue.prototype.$mount; + Vue.prototype.$mount = function ( + el, + hydrating + ) { + el = el && query(el); + + /* istanbul ignore if */ + if (el === document.body || el === document.documentElement) { + warn( + "Do not mount Vue to <html> or <body> - mount to normal elements instead." + ); + return this + } + + var options = this.$options; + // resolve template/el and convert to render function + if (!options.render) { + var template = options.template; + if (template) { + if (typeof template === 'string') { + if (template.charAt(0) === '#') { + template = idToTemplate(template); + /* istanbul ignore if */ + if (!template) { + warn( + ("Template element not found or is empty: " + (options.template)), + this + ); + } + } + } else if (template.nodeType) { + template = template.innerHTML; + } else { + { + warn('invalid template option:' + template, this); + } + return this + } + } else if (el) { + template = getOuterHTML(el); + } + if (template) { + /* istanbul ignore if */ + if (config.performance && mark) { + mark('compile'); + } + + var ref = compileToFunctions(template, { + outputSourceRange: "development" !== 'production', + shouldDecodeNewlines: shouldDecodeNewlines, + shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref, + delimiters: options.delimiters, + comments: options.comments + }, this); + var render = ref.render; + var staticRenderFns = ref.staticRenderFns; + options.render = render; + options.staticRenderFns = staticRenderFns; + + /* istanbul ignore if */ + if (config.performance && mark) { + mark('compile end'); + measure(("vue " + (this._name) + " compile"), 'compile', 'compile end'); + } + } + } + return mount.call(this, el, hydrating) + }; + + /** + * Get outerHTML of elements, taking care + * of SVG elements in IE as well. + */ + function getOuterHTML (el) { + if (el.outerHTML) { + return el.outerHTML + } else { + var container = document.createElement('div'); + container.appendChild(el.cloneNode(true)); + return container.innerHTML + } + } + + Vue.compile = compileToFunctions; + + return Vue; + +})); diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/js/vuetify.js b/NMP 3.0 Moodle Pluggin/fliplearning/js/vuetify.js new file mode 100644 index 0000000000000000000000000000000000000000..faec41145efaf188b4ce1e2033fb819a17f561ad --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/js/vuetify.js @@ -0,0 +1,43998 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(require("vue")); + else if(typeof define === 'function' && define.amd) + define(["vue"], factory); + else if(typeof exports === 'object') + exports["Vuetify"] = factory(require("vue")); + else + root["Vuetify"] = factory(root["Vue"]); +})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_vue__) { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = "/dist/"; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./src/index.ts"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./src/components/VAlert/VAlert.sass": +/*!*******************************************!*\ + !*** ./src/components/VAlert/VAlert.sass ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VAlert/VAlert.ts": +/*!*****************************************!*\ + !*** ./src/components/VAlert/VAlert.ts ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VAlert_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VAlert.sass */ "./src/components/VAlert/VAlert.sass"); +/* harmony import */ var _VAlert_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VAlert_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VSheet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VSheet */ "./src/components/VSheet/index.ts"); +/* harmony import */ var _VBtn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../VBtn */ "./src/components/VBtn/index.ts"); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../VIcon */ "./src/components/VIcon/index.ts"); +/* harmony import */ var _mixins_toggleable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/toggleable */ "./src/mixins/toggleable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _mixins_transitionable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../mixins/transitionable */ "./src/mixins/transitionable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Extensions + + // Components + + + // Mixins + + + + // Utilities + + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_7__["default"])(_VSheet__WEBPACK_IMPORTED_MODULE_1__["default"], _mixins_toggleable__WEBPACK_IMPORTED_MODULE_4__["default"], _mixins_transitionable__WEBPACK_IMPORTED_MODULE_6__["default"]).extend({ + name: 'v-alert', + props: { + border: { + type: String, + validator: function validator(val) { + return ['top', 'right', 'bottom', 'left'].includes(val); + } + }, + closeLabel: { + type: String, + default: '$vuetify.close' + }, + coloredBorder: Boolean, + dense: Boolean, + dismissible: Boolean, + closeIcon: { + type: String, + default: '$cancel' + }, + icon: { + default: '', + type: [Boolean, String], + validator: function validator(val) { + return typeof val === 'string' || val === false; + } + }, + outlined: Boolean, + prominent: Boolean, + text: Boolean, + type: { + type: String, + validator: function validator(val) { + return ['info', 'error', 'success', 'warning'].includes(val); + } + }, + value: { + type: Boolean, + default: true + } + }, + computed: { + __cachedBorder: function __cachedBorder() { + var _a; + + if (!this.border) return null; + var data = { + staticClass: 'v-alert__border', + class: (_a = {}, _a["v-alert__border--" + this.border] = true, _a) + }; + + if (this.coloredBorder) { + data = this.setBackgroundColor(this.computedColor, data); + data.class['v-alert__border--has-color'] = true; + } + + return this.$createElement('div', data); + }, + __cachedDismissible: function __cachedDismissible() { + var _this = this; + + if (!this.dismissible) return null; + var color = this.iconColor; + return this.$createElement(_VBtn__WEBPACK_IMPORTED_MODULE_2__["default"], { + staticClass: 'v-alert__dismissible', + props: { + color: color, + icon: true, + small: true + }, + attrs: { + 'aria-label': this.$vuetify.lang.t(this.closeLabel) + }, + on: { + click: function click() { + return _this.isActive = false; + } + } + }, [this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_3__["default"], { + props: { + color: color + } + }, this.closeIcon)]); + }, + __cachedIcon: function __cachedIcon() { + if (!this.computedIcon) return null; + return this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_3__["default"], { + staticClass: 'v-alert__icon', + props: { + color: this.iconColor + } + }, this.computedIcon); + }, + classes: function classes() { + var classes = __assign(__assign({}, _VSheet__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.classes.call(this)), { + 'v-alert--border': Boolean(this.border), + 'v-alert--dense': this.dense, + 'v-alert--outlined': this.outlined, + 'v-alert--prominent': this.prominent, + 'v-alert--text': this.text + }); + + if (this.border) { + classes["v-alert--border-" + this.border] = true; + } + + return classes; + }, + computedColor: function computedColor() { + return this.color || this.type; + }, + computedIcon: function computedIcon() { + if (this.icon === false) return false; + if (typeof this.icon === 'string' && this.icon) return this.icon; + if (!['error', 'info', 'success', 'warning'].includes(this.type)) return false; + return "$" + this.type; + }, + hasColoredIcon: function hasColoredIcon() { + return this.hasText || Boolean(this.border) && this.coloredBorder; + }, + hasText: function hasText() { + return this.text || this.outlined; + }, + iconColor: function iconColor() { + return this.hasColoredIcon ? this.computedColor : undefined; + }, + isDark: function isDark() { + if (this.type && !this.coloredBorder && !this.outlined) return true; + return _mixins_themeable__WEBPACK_IMPORTED_MODULE_5__["default"].options.computed.isDark.call(this); + } + }, + created: function created() { + /* istanbul ignore next */ + if (this.$attrs.hasOwnProperty('outline')) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_8__["breaking"])('outline', 'outlined', this); + } + }, + methods: { + genWrapper: function genWrapper() { + var children = [this.$slots.prepend || this.__cachedIcon, this.genContent(), this.__cachedBorder, this.$slots.append, this.$scopedSlots.close ? this.$scopedSlots.close({ + toggle: this.toggle + }) : this.__cachedDismissible]; + var data = { + staticClass: 'v-alert__wrapper' + }; + return this.$createElement('div', data, children); + }, + genContent: function genContent() { + return this.$createElement('div', { + staticClass: 'v-alert__content' + }, this.$slots.default); + }, + genAlert: function genAlert() { + var data = { + staticClass: 'v-alert', + attrs: { + role: 'alert' + }, + on: this.listeners$, + class: this.classes, + style: this.styles, + directives: [{ + name: 'show', + value: this.isActive + }] + }; + + if (!this.coloredBorder) { + var setColor = this.hasText ? this.setTextColor : this.setBackgroundColor; + data = setColor(this.computedColor, data); + } + + return this.$createElement('div', data, [this.genWrapper()]); + }, + + /** @public */ + toggle: function toggle() { + this.isActive = !this.isActive; + } + }, + render: function render(h) { + var render = this.genAlert(); + if (!this.transition) return render; + return h('transition', { + props: { + name: this.transition, + origin: this.origin, + mode: this.mode + } + }, [render]); + } +})); + +/***/ }), + +/***/ "./src/components/VAlert/index.ts": +/*!****************************************!*\ + !*** ./src/components/VAlert/index.ts ***! + \****************************************/ +/*! exports provided: VAlert, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VAlert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VAlert */ "./src/components/VAlert/VAlert.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VAlert", function() { return _VAlert__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VAlert__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VApp/VApp.sass": +/*!***************************************!*\ + !*** ./src/components/VApp/VApp.sass ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VApp/VApp.ts": +/*!*************************************!*\ + !*** ./src/components/VApp/VApp.ts ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VApp_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VApp.sass */ "./src/components/VApp/VApp.sass"); +/* harmony import */ var _VApp_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VApp_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Mixins + + // Utilities + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_2__["default"])(_mixins_themeable__WEBPACK_IMPORTED_MODULE_1__["default"]).extend({ + name: 'v-app', + props: { + dark: { + type: Boolean, + default: undefined + }, + id: { + type: String, + default: 'app' + }, + light: { + type: Boolean, + default: undefined + } + }, + computed: { + isDark: function isDark() { + return this.$vuetify.theme.dark; + } + }, + beforeCreate: function beforeCreate() { + if (!this.$vuetify || this.$vuetify === this.$root) { + throw new Error('Vuetify is not properly initialized, see https://vuetifyjs.com/getting-started/quick-start#bootstrapping-the-vuetify-object'); + } + }, + render: function render(h) { + var wrapper = h('div', { + staticClass: 'v-application--wrap' + }, this.$slots.default); + return h('div', { + staticClass: 'v-application', + class: __assign({ + 'v-application--is-rtl': this.$vuetify.rtl, + 'v-application--is-ltr': !this.$vuetify.rtl + }, this.themeClasses), + attrs: { + 'data-app': true + }, + domProps: { + id: this.id + } + }, [wrapper]); + } +})); + +/***/ }), + +/***/ "./src/components/VApp/index.ts": +/*!**************************************!*\ + !*** ./src/components/VApp/index.ts ***! + \**************************************/ +/*! exports provided: VApp, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VApp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VApp */ "./src/components/VApp/VApp.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VApp", function() { return _VApp__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VApp__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VAppBar/VAppBar.sass": +/*!*********************************************!*\ + !*** ./src/components/VAppBar/VAppBar.sass ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VAppBar/VAppBar.ts": +/*!*******************************************!*\ + !*** ./src/components/VAppBar/VAppBar.ts ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VAppBar_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VAppBar.sass */ "./src/components/VAppBar/VAppBar.sass"); +/* harmony import */ var _VAppBar_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VAppBar_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VToolbar_VToolbar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VToolbar/VToolbar */ "./src/components/VToolbar/VToolbar.ts"); +/* harmony import */ var _directives_scroll__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../directives/scroll */ "./src/directives/scroll/index.ts"); +/* harmony import */ var _mixins_applicationable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/applicationable */ "./src/mixins/applicationable/index.ts"); +/* harmony import */ var _mixins_scrollable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/scrollable */ "./src/mixins/scrollable/index.ts"); +/* harmony import */ var _mixins_ssr_bootable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/ssr-bootable */ "./src/mixins/ssr-bootable/index.ts"); +/* harmony import */ var _mixins_toggleable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../mixins/toggleable */ "./src/mixins/toggleable/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Extensions + + // Directives + + // Mixins + + + + + // Utilities + + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_8__["default"])(_VToolbar_VToolbar__WEBPACK_IMPORTED_MODULE_1__["default"], _mixins_scrollable__WEBPACK_IMPORTED_MODULE_4__["default"], _mixins_ssr_bootable__WEBPACK_IMPORTED_MODULE_5__["default"], _mixins_toggleable__WEBPACK_IMPORTED_MODULE_6__["default"], Object(_mixins_applicationable__WEBPACK_IMPORTED_MODULE_3__["default"])('top', ['clippedLeft', 'clippedRight', 'computedHeight', 'invertedScroll', 'isExtended', 'isProminent', 'value'])); +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend({ + name: 'v-app-bar', + directives: { + Scroll: _directives_scroll__WEBPACK_IMPORTED_MODULE_2__["default"] + }, + props: { + clippedLeft: Boolean, + clippedRight: Boolean, + collapseOnScroll: Boolean, + elevateOnScroll: Boolean, + fadeImgOnScroll: Boolean, + hideOnScroll: Boolean, + invertedScroll: Boolean, + scrollOffScreen: Boolean, + shrinkOnScroll: Boolean, + value: { + type: Boolean, + default: true + } + }, + data: function data() { + return { + isActive: this.value + }; + }, + computed: { + applicationProperty: function applicationProperty() { + return !this.bottom ? 'top' : 'bottom'; + }, + canScroll: function canScroll() { + return _mixins_scrollable__WEBPACK_IMPORTED_MODULE_4__["default"].options.computed.canScroll.call(this) && (this.invertedScroll || this.elevateOnScroll || this.hideOnScroll || this.collapseOnScroll || this.isBooted || // If falsey, user has provided an + // explicit value which should + // overwrite anything we do + !this.value); + }, + classes: function classes() { + return __assign(__assign({}, _VToolbar_VToolbar__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.classes.call(this)), { + 'v-toolbar--collapse': this.collapse || this.collapseOnScroll, + 'v-app-bar': true, + 'v-app-bar--clipped': this.clippedLeft || this.clippedRight, + 'v-app-bar--fade-img-on-scroll': this.fadeImgOnScroll, + 'v-app-bar--elevate-on-scroll': this.elevateOnScroll, + 'v-app-bar--fixed': !this.absolute && (this.app || this.fixed), + 'v-app-bar--hide-shadow': this.hideShadow, + 'v-app-bar--is-scrolled': this.currentScroll > 0, + 'v-app-bar--shrink-on-scroll': this.shrinkOnScroll + }); + }, + computedContentHeight: function computedContentHeight() { + if (!this.shrinkOnScroll) return _VToolbar_VToolbar__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.computedContentHeight.call(this); + var height = this.computedOriginalHeight; + var min = this.dense ? 48 : 56; + var max = height; + var difference = max - min; + var iteration = difference / this.computedScrollThreshold; + var offset = this.currentScroll * iteration; + return Math.max(min, max - offset); + }, + computedFontSize: function computedFontSize() { + if (!this.isProminent) return undefined; + var max = this.dense ? 96 : 128; + var difference = max - this.computedContentHeight; + var increment = 0.00347; // 1.5rem to a minimum of 1.25rem + + return Number((1.50 - difference * increment).toFixed(2)); + }, + computedLeft: function computedLeft() { + if (!this.app || this.clippedLeft) return 0; + return this.$vuetify.application.left; + }, + computedMarginTop: function computedMarginTop() { + if (!this.app) return 0; + return this.$vuetify.application.bar; + }, + computedOpacity: function computedOpacity() { + if (!this.fadeImgOnScroll) return undefined; + var opacity = Math.max((this.computedScrollThreshold - this.currentScroll) / this.computedScrollThreshold, 0); + return Number(parseFloat(opacity).toFixed(2)); + }, + computedOriginalHeight: function computedOriginalHeight() { + var height = _VToolbar_VToolbar__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.computedContentHeight.call(this); + if (this.isExtended) height += parseInt(this.extensionHeight); + return height; + }, + computedRight: function computedRight() { + if (!this.app || this.clippedRight) return 0; + return this.$vuetify.application.right; + }, + computedScrollThreshold: function computedScrollThreshold() { + if (this.scrollThreshold) return Number(this.scrollThreshold); + return this.computedOriginalHeight - (this.dense ? 48 : 56); + }, + computedTransform: function computedTransform() { + if (!this.canScroll || this.elevateOnScroll && this.currentScroll === 0 && this.isActive) return 0; + if (this.isActive) return 0; + var scrollOffScreen = this.scrollOffScreen ? this.computedHeight : this.computedContentHeight; + return this.bottom ? scrollOffScreen : -scrollOffScreen; + }, + hideShadow: function hideShadow() { + if (this.elevateOnScroll && this.isExtended) { + return this.currentScroll < this.computedScrollThreshold; + } + + if (this.elevateOnScroll) { + return this.currentScroll === 0 || this.computedTransform < 0; + } + + return (!this.isExtended || this.scrollOffScreen) && this.computedTransform !== 0; + }, + isCollapsed: function isCollapsed() { + if (!this.collapseOnScroll) { + return _VToolbar_VToolbar__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.isCollapsed.call(this); + } + + return this.currentScroll > 0; + }, + isProminent: function isProminent() { + return _VToolbar_VToolbar__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.isProminent.call(this) || this.shrinkOnScroll; + }, + styles: function styles() { + return __assign(__assign({}, _VToolbar_VToolbar__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.styles.call(this)), { + fontSize: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_7__["convertToUnit"])(this.computedFontSize, 'rem'), + marginTop: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_7__["convertToUnit"])(this.computedMarginTop), + transform: "translateY(" + Object(_util_helpers__WEBPACK_IMPORTED_MODULE_7__["convertToUnit"])(this.computedTransform) + ")", + left: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_7__["convertToUnit"])(this.computedLeft), + right: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_7__["convertToUnit"])(this.computedRight) + }); + } + }, + watch: { + canScroll: 'onScroll', + computedTransform: function computedTransform() { + // Normally we do not want the v-app-bar + // to update the application top value + // to avoid screen jump. However, in + // this situation, we must so that + // the clipped drawer can update + // its top value when scrolled + if (!this.canScroll || !this.clippedLeft && !this.clippedRight) return; + this.callUpdate(); + }, + invertedScroll: function invertedScroll(val) { + this.isActive = !val || this.currentScroll !== 0; + } + }, + created: function created() { + if (this.invertedScroll) this.isActive = false; + }, + methods: { + genBackground: function genBackground() { + var render = _VToolbar_VToolbar__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.genBackground.call(this); + render.data = this._b(render.data || {}, render.tag, { + style: { + opacity: this.computedOpacity + } + }); + return render; + }, + updateApplication: function updateApplication() { + return this.invertedScroll ? 0 : this.computedHeight + this.computedTransform; + }, + thresholdMet: function thresholdMet() { + if (this.invertedScroll) { + this.isActive = this.currentScroll > this.computedScrollThreshold; + return; + } + + if (this.hideOnScroll) { + this.isActive = this.isScrollingUp || this.currentScroll < this.computedScrollThreshold; + } + + if (this.currentThreshold < this.computedScrollThreshold) return; + this.savedScroll = this.currentScroll; + } + }, + render: function render(h) { + var render = _VToolbar_VToolbar__WEBPACK_IMPORTED_MODULE_1__["default"].options.render.call(this, h); + render.data = render.data || {}; + + if (this.canScroll) { + render.data.directives = render.data.directives || []; + render.data.directives.push({ + arg: this.scrollTarget, + name: 'scroll', + value: this.onScroll + }); + } + + return render; + } +})); + +/***/ }), + +/***/ "./src/components/VAppBar/VAppBarNavIcon.ts": +/*!**************************************************!*\ + !*** ./src/components/VAppBar/VAppBarNavIcon.ts ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../VIcon */ "./src/components/VIcon/index.ts"); +/* harmony import */ var _VBtn_VBtn__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VBtn/VBtn */ "./src/components/VBtn/VBtn.ts"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_2__); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Components + + + + // Types + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_2___default.a.extend({ + name: 'v-app-bar-nav-icon', + functional: true, + render: function render(h, _a) { + var slots = _a.slots, + listeners = _a.listeners, + props = _a.props, + data = _a.data; + var d = Object.assign(data, { + staticClass: ("v-app-bar__nav-icon " + (data.staticClass || '')).trim(), + props: __assign(__assign({}, props), { + icon: true + }), + on: listeners + }); + var defaultSlot = slots().default; + return h(_VBtn_VBtn__WEBPACK_IMPORTED_MODULE_1__["default"], d, defaultSlot || [h(_VIcon__WEBPACK_IMPORTED_MODULE_0__["default"], '$menu')]); + } +})); + +/***/ }), + +/***/ "./src/components/VAppBar/index.ts": +/*!*****************************************!*\ + !*** ./src/components/VAppBar/index.ts ***! + \*****************************************/ +/*! exports provided: VAppBar, VAppBarNavIcon, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VAppBar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VAppBar */ "./src/components/VAppBar/VAppBar.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VAppBar", function() { return _VAppBar__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + +/* harmony import */ var _VAppBarNavIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VAppBarNavIcon */ "./src/components/VAppBar/VAppBarNavIcon.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VAppBarNavIcon", function() { return _VAppBarNavIcon__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + $_vuetify_subcomponents: { + VAppBar: _VAppBar__WEBPACK_IMPORTED_MODULE_0__["default"], + VAppBarNavIcon: _VAppBarNavIcon__WEBPACK_IMPORTED_MODULE_1__["default"] + } +}); + +/***/ }), + +/***/ "./src/components/VAutocomplete/VAutocomplete.sass": +/*!*********************************************************!*\ + !*** ./src/components/VAutocomplete/VAutocomplete.sass ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VAutocomplete/VAutocomplete.ts": +/*!*******************************************************!*\ + !*** ./src/components/VAutocomplete/VAutocomplete.ts ***! + \*******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VAutocomplete_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VAutocomplete.sass */ "./src/components/VAutocomplete/VAutocomplete.sass"); +/* harmony import */ var _VAutocomplete_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VAutocomplete_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VSelect/VSelect */ "./src/components/VSelect/VSelect.ts"); +/* harmony import */ var _VTextField_VTextField__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../VTextField/VTextField */ "./src/components/VTextField/VTextField.ts"); +/* harmony import */ var _util_mergeData__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/mergeData */ "./src/util/mergeData.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Extensions + + + // Utilities + + + + +var defaultMenuProps = __assign(__assign({}, _VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__["defaultMenuProps"]), { + offsetY: true, + offsetOverflow: true, + transition: false +}); +/* @vue/component */ + + +/* harmony default export */ __webpack_exports__["default"] = (_VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__["default"].extend({ + name: 'v-autocomplete', + props: { + allowOverflow: { + type: Boolean, + default: true + }, + autoSelectFirst: { + type: Boolean, + default: false + }, + filter: { + type: Function, + default: function _default(item, queryText, itemText) { + return itemText.toLocaleLowerCase().indexOf(queryText.toLocaleLowerCase()) > -1; + } + }, + hideNoData: Boolean, + menuProps: { + type: _VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__["default"].options.props.menuProps.type, + default: function _default() { + return defaultMenuProps; + } + }, + noFilter: Boolean, + searchInput: { + type: String, + default: undefined + } + }, + data: function data() { + return { + lazySearch: this.searchInput + }; + }, + computed: { + classes: function classes() { + return __assign(__assign({}, _VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.classes.call(this)), { + 'v-autocomplete': true, + 'v-autocomplete--is-selecting-index': this.selectedIndex > -1 + }); + }, + computedItems: function computedItems() { + return this.filteredItems; + }, + selectedValues: function selectedValues() { + var _this = this; + + return this.selectedItems.map(function (item) { + return _this.getValue(item); + }); + }, + hasDisplayedItems: function hasDisplayedItems() { + var _this = this; + + return this.hideSelected ? this.filteredItems.some(function (item) { + return !_this.hasItem(item); + }) : this.filteredItems.length > 0; + }, + currentRange: function currentRange() { + if (this.selectedItem == null) return 0; + return String(this.getText(this.selectedItem)).length; + }, + filteredItems: function filteredItems() { + var _this = this; + + if (!this.isSearching || this.noFilter || this.internalSearch == null) return this.allItems; + return this.allItems.filter(function (item) { + var value = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getPropertyFromItem"])(item, _this.itemText); + var text = value != null ? String(value) : ''; + return _this.filter(item, String(_this.internalSearch), text); + }); + }, + internalSearch: { + get: function get() { + return this.lazySearch; + }, + set: function set(val) { + this.lazySearch = val; + this.$emit('update:search-input', val); + } + }, + isAnyValueAllowed: function isAnyValueAllowed() { + return false; + }, + isDirty: function isDirty() { + return this.searchIsDirty || this.selectedItems.length > 0; + }, + isSearching: function isSearching() { + return this.multiple && this.searchIsDirty || this.searchIsDirty && this.internalSearch !== this.getText(this.selectedItem); + }, + menuCanShow: function menuCanShow() { + if (!this.isFocused) return false; + return this.hasDisplayedItems || !this.hideNoData; + }, + $_menuProps: function $_menuProps() { + var props = _VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.$_menuProps.call(this); + props.contentClass = ("v-autocomplete__content " + (props.contentClass || '')).trim(); + return __assign(__assign({}, defaultMenuProps), props); + }, + searchIsDirty: function searchIsDirty() { + return this.internalSearch != null; + }, + selectedItem: function selectedItem() { + var _this = this; + + if (this.multiple) return null; + return this.selectedItems.find(function (i) { + return _this.valueComparator(_this.getValue(i), _this.getValue(_this.internalValue)); + }); + }, + listData: function listData() { + var data = _VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.listData.call(this); + data.props = __assign(__assign({}, data.props), { + items: this.virtualizedItems, + noFilter: this.noFilter || !this.isSearching || !this.filteredItems.length, + searchInput: this.internalSearch + }); + return data; + } + }, + watch: { + filteredItems: 'onFilteredItemsChanged', + internalValue: 'setSearch', + isFocused: function isFocused(val) { + if (val) { + document.addEventListener('copy', this.onCopy); + this.$refs.input && this.$refs.input.select(); + } else { + document.removeEventListener('copy', this.onCopy); + this.updateSelf(); + } + }, + isMenuActive: function isMenuActive(val) { + if (val || !this.hasSlot) return; + this.lazySearch = undefined; + }, + items: function items(val, oldVal) { + // If we are focused, the menu + // is not active, hide no data is enabled, + // and items change + // User is probably async loading + // items, try to activate the menu + if (!(oldVal && oldVal.length) && this.hideNoData && this.isFocused && !this.isMenuActive && val.length) this.activateMenu(); + }, + searchInput: function searchInput(val) { + this.lazySearch = val; + }, + internalSearch: 'onInternalSearchChanged', + itemText: 'updateSelf' + }, + created: function created() { + this.setSearch(); + }, + destroyed: function destroyed() { + document.removeEventListener('copy', this.onCopy); + }, + methods: { + onFilteredItemsChanged: function onFilteredItemsChanged(val, oldVal) { + var _this = this; // TODO: How is the watcher triggered + // for duplicate items? no idea + + + if (val === oldVal) return; + this.setMenuIndex(-1); + this.$nextTick(function () { + if (!_this.internalSearch || val.length !== 1 && !_this.autoSelectFirst) return; + + _this.$refs.menu.getTiles(); + + _this.setMenuIndex(0); + }); + }, + onInternalSearchChanged: function onInternalSearchChanged() { + this.updateMenuDimensions(); + }, + updateMenuDimensions: function updateMenuDimensions() { + // Type from menuable is not making it through + this.isMenuActive && this.$refs.menu && this.$refs.menu.updateDimensions(); + }, + changeSelectedIndex: function changeSelectedIndex(keyCode) { + // Do not allow changing of selectedIndex + // when search is dirty + if (this.searchIsDirty) return; + + if (this.multiple && keyCode === _util_helpers__WEBPACK_IMPORTED_MODULE_4__["keyCodes"].left) { + if (this.selectedIndex === -1) { + this.selectedIndex = this.selectedItems.length - 1; + } else { + this.selectedIndex--; + } + } else if (this.multiple && keyCode === _util_helpers__WEBPACK_IMPORTED_MODULE_4__["keyCodes"].right) { + if (this.selectedIndex >= this.selectedItems.length - 1) { + this.selectedIndex = -1; + } else { + this.selectedIndex++; + } + } else if (keyCode === _util_helpers__WEBPACK_IMPORTED_MODULE_4__["keyCodes"].backspace || keyCode === _util_helpers__WEBPACK_IMPORTED_MODULE_4__["keyCodes"].delete) { + this.deleteCurrentItem(); + } + }, + deleteCurrentItem: function deleteCurrentItem() { + var curIndex = this.selectedIndex; + var curItem = this.selectedItems[curIndex]; // Do nothing if input or item is disabled + + if (!this.isInteractive || this.getDisabled(curItem)) return; + var lastIndex = this.selectedItems.length - 1; // Select the last item if + // there is no selection + + if (this.selectedIndex === -1 && lastIndex !== 0) { + this.selectedIndex = lastIndex; + return; + } + + var length = this.selectedItems.length; + var nextIndex = curIndex !== length - 1 ? curIndex : curIndex - 1; + var nextItem = this.selectedItems[nextIndex]; + + if (!nextItem) { + this.setValue(this.multiple ? [] : undefined); + } else { + this.selectItem(curItem); + } + + this.selectedIndex = nextIndex; + }, + clearableCallback: function clearableCallback() { + this.internalSearch = undefined; + _VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.clearableCallback.call(this); + }, + genInput: function genInput() { + var input = _VTextField_VTextField__WEBPACK_IMPORTED_MODULE_2__["default"].options.methods.genInput.call(this); + input.data = Object(_util_mergeData__WEBPACK_IMPORTED_MODULE_3__["default"])(input.data, { + attrs: { + 'aria-activedescendant': Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getObjectValueByPath"])(this.$refs.menu, 'activeTile.id'), + autocomplete: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getObjectValueByPath"])(input.data, 'attrs.autocomplete', 'off') + }, + domProps: { + value: this.internalSearch + } + }); + return input; + }, + genInputSlot: function genInputSlot() { + var slot = _VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.genInputSlot.call(this); + slot.data.attrs.role = 'combobox'; + return slot; + }, + genSelections: function genSelections() { + return this.hasSlot || this.multiple ? _VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.genSelections.call(this) : []; + }, + onClick: function onClick(e) { + if (!this.isInteractive) return; + this.selectedIndex > -1 ? this.selectedIndex = -1 : this.onFocus(); + if (!this.isAppendInner(e.target)) this.activateMenu(); + }, + onInput: function onInput(e) { + if (this.selectedIndex > -1 || !e.target) return; + var target = e.target; + var value = target.value; // If typing and menu is not currently active + + if (target.value) this.activateMenu(); + this.internalSearch = value; + this.badInput = target.validity && target.validity.badInput; + }, + onKeyDown: function onKeyDown(e) { + var keyCode = e.keyCode; + _VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.onKeyDown.call(this, e); // The ordering is important here + // allows new value to be updated + // and then moves the index to the + // proper location + + this.changeSelectedIndex(keyCode); + }, + onSpaceDown: function onSpaceDown(e) {}, + onTabDown: function onTabDown(e) { + _VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.onTabDown.call(this, e); + this.updateSelf(); + }, + onUpDown: function onUpDown(e) { + // Prevent screen from scrolling + e.preventDefault(); // For autocomplete / combobox, cycling + // interfers with native up/down behavior + // instead activate the menu + + this.activateMenu(); + }, + selectItem: function selectItem(item) { + _VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.selectItem.call(this, item); + this.setSearch(); + }, + setSelectedItems: function setSelectedItems() { + _VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.setSelectedItems.call(this); // #4273 Don't replace if searching + // #4403 Don't replace if focused + + if (!this.isFocused) this.setSearch(); + }, + setSearch: function setSearch() { + var _this = this; // Wait for nextTick so selectedItem + // has had time to update + + + this.$nextTick(function () { + if (!_this.multiple || !_this.internalSearch || !_this.isMenuActive) { + _this.internalSearch = !_this.selectedItems.length || _this.multiple || _this.hasSlot ? null : _this.getText(_this.selectedItem); + } + }); + }, + updateSelf: function updateSelf() { + if (!this.searchIsDirty && !this.internalValue) return; + + if (!this.valueComparator(this.internalSearch, this.getValue(this.internalValue))) { + this.setSearch(); + } + }, + hasItem: function hasItem(item) { + return this.selectedValues.indexOf(this.getValue(item)) > -1; + }, + onCopy: function onCopy(event) { + var _a, _b; + + if (this.selectedIndex === -1) return; + var currentItem = this.selectedItems[this.selectedIndex]; + var currentItemText = this.getText(currentItem); + (_a = event.clipboardData) === null || _a === void 0 ? void 0 : _a.setData('text/plain', currentItemText); + (_b = event.clipboardData) === null || _b === void 0 ? void 0 : _b.setData('text/vnd.vuetify.autocomplete.item+plain', currentItemText); + event.preventDefault(); + } + } +})); + +/***/ }), + +/***/ "./src/components/VAutocomplete/index.ts": +/*!***********************************************!*\ + !*** ./src/components/VAutocomplete/index.ts ***! + \***********************************************/ +/*! exports provided: VAutocomplete, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VAutocomplete__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VAutocomplete */ "./src/components/VAutocomplete/VAutocomplete.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VAutocomplete", function() { return _VAutocomplete__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VAutocomplete__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VAvatar/VAvatar.sass": +/*!*********************************************!*\ + !*** ./src/components/VAvatar/VAvatar.sass ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VAvatar/VAvatar.ts": +/*!*******************************************!*\ + !*** ./src/components/VAvatar/VAvatar.ts ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VAvatar_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VAvatar.sass */ "./src/components/VAvatar/VAvatar.sass"); +/* harmony import */ var _VAvatar_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VAvatar_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_measurable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/measurable */ "./src/mixins/measurable/index.ts"); +/* harmony import */ var _mixins_roundable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/roundable */ "./src/mixins/roundable/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + + // Mixins + + + + // Utilities + + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_5__["default"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_1__["default"], _mixins_measurable__WEBPACK_IMPORTED_MODULE_2__["default"], _mixins_roundable__WEBPACK_IMPORTED_MODULE_3__["default"]).extend({ + name: 'v-avatar', + props: { + left: Boolean, + right: Boolean, + size: { + type: [Number, String], + default: 48 + } + }, + computed: { + classes: function classes() { + return __assign({ + 'v-avatar--left': this.left, + 'v-avatar--right': this.right + }, this.roundedClasses); + }, + styles: function styles() { + return __assign({ + height: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["convertToUnit"])(this.size), + minWidth: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["convertToUnit"])(this.size), + width: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["convertToUnit"])(this.size) + }, this.measurableStyles); + } + }, + render: function render(h) { + var data = { + staticClass: 'v-avatar', + class: this.classes, + style: this.styles, + on: this.$listeners + }; + return h('div', this.setBackgroundColor(this.color, data), this.$slots.default); + } +})); + +/***/ }), + +/***/ "./src/components/VAvatar/index.ts": +/*!*****************************************!*\ + !*** ./src/components/VAvatar/index.ts ***! + \*****************************************/ +/*! exports provided: VAvatar, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VAvatar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VAvatar */ "./src/components/VAvatar/VAvatar.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VAvatar", function() { return _VAvatar__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VAvatar__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VBadge/VBadge.sass": +/*!*******************************************!*\ + !*** ./src/components/VBadge/VBadge.sass ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VBadge/VBadge.ts": +/*!*****************************************!*\ + !*** ./src/components/VBadge/VBadge.ts ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VBadge_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VBadge.sass */ "./src/components/VBadge/VBadge.sass"); +/* harmony import */ var _VBadge_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VBadge_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VIcon_VIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VIcon/VIcon */ "./src/components/VIcon/VIcon.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _mixins_toggleable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/toggleable */ "./src/mixins/toggleable/index.ts"); +/* harmony import */ var _mixins_transitionable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/transitionable */ "./src/mixins/transitionable/index.ts"); +/* harmony import */ var _mixins_positionable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../mixins/positionable */ "./src/mixins/positionable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __rest = undefined && undefined.__rest || function (s, e) { + var t = {}; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; + } + + if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; + } + return t; +}; // Styles + + + // Components + + // Mixins + + + + + + // Utilities + + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_7__["default"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_2__["default"], Object(_mixins_positionable__WEBPACK_IMPORTED_MODULE_6__["factory"])(['left', 'bottom']), _mixins_themeable__WEBPACK_IMPORTED_MODULE_3__["default"], _mixins_toggleable__WEBPACK_IMPORTED_MODULE_4__["default"], _mixins_transitionable__WEBPACK_IMPORTED_MODULE_5__["default"]).extend({ + name: 'v-badge', + props: { + avatar: Boolean, + bordered: Boolean, + color: { + type: String, + default: 'primary' + }, + content: { + required: false + }, + dot: Boolean, + label: { + type: String, + default: '$vuetify.badge' + }, + icon: String, + inline: Boolean, + offsetX: [Number, String], + offsetY: [Number, String], + overlap: Boolean, + tile: Boolean, + transition: { + type: String, + default: 'scale-rotate-transition' + }, + value: { + default: true + } + }, + computed: { + classes: function classes() { + return __assign({ + 'v-badge--avatar': this.avatar, + 'v-badge--bordered': this.bordered, + 'v-badge--bottom': this.bottom, + 'v-badge--dot': this.dot, + 'v-badge--icon': this.icon != null, + 'v-badge--inline': this.inline, + 'v-badge--left': this.left, + 'v-badge--overlap': this.overlap, + 'v-badge--tile': this.tile + }, this.themeClasses); + }, + computedBottom: function computedBottom() { + return this.bottom ? 'auto' : this.computedYOffset; + }, + computedLeft: function computedLeft() { + if (this.isRtl) { + return this.left ? this.computedXOffset : 'auto'; + } + + return this.left ? 'auto' : this.computedXOffset; + }, + computedRight: function computedRight() { + if (this.isRtl) { + return this.left ? 'auto' : this.computedXOffset; + } + + return !this.left ? 'auto' : this.computedXOffset; + }, + computedTop: function computedTop() { + return this.bottom ? this.computedYOffset : 'auto'; + }, + computedXOffset: function computedXOffset() { + return this.calcPosition(this.offsetX); + }, + computedYOffset: function computedYOffset() { + return this.calcPosition(this.offsetY); + }, + isRtl: function isRtl() { + return this.$vuetify.rtl; + }, + // Default fallback if offsetX + // or offsetY are undefined. + offset: function offset() { + if (this.overlap) return this.dot ? 8 : 12; + return this.dot ? 2 : 4; + }, + styles: function styles() { + if (this.inline) return {}; + return { + bottom: this.computedBottom, + left: this.computedLeft, + right: this.computedRight, + top: this.computedTop + }; + } + }, + methods: { + calcPosition: function calcPosition(offset) { + return "calc(100% - " + Object(_util_helpers__WEBPACK_IMPORTED_MODULE_8__["convertToUnit"])(offset || this.offset) + ")"; + }, + genBadge: function genBadge() { + var lang = this.$vuetify.lang; + var label = this.$attrs['aria-label'] || lang.t(this.label); + var data = this.setBackgroundColor(this.color, { + staticClass: 'v-badge__badge', + style: this.styles, + attrs: { + 'aria-atomic': this.$attrs['aria-atomic'] || 'true', + 'aria-label': label, + 'aria-live': this.$attrs['aria-live'] || 'polite', + title: this.$attrs.title, + role: this.$attrs.role || 'status' + }, + directives: [{ + name: 'show', + value: this.isActive + }] + }); + var badge = this.$createElement('span', data, [this.genBadgeContent()]); + if (!this.transition) return badge; + return this.$createElement('transition', { + props: { + name: this.transition, + origin: this.origin, + mode: this.mode + } + }, [badge]); + }, + genBadgeContent: function genBadgeContent() { + // Dot prop shows no content + if (this.dot) return undefined; + var slot = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_8__["getSlot"])(this, 'badge'); + if (slot) return slot; + if (this.content) return String(this.content); + if (this.icon) return this.$createElement(_VIcon_VIcon__WEBPACK_IMPORTED_MODULE_1__["default"], this.icon); + return undefined; + }, + genBadgeWrapper: function genBadgeWrapper() { + return this.$createElement('span', { + staticClass: 'v-badge__wrapper' + }, [this.genBadge()]); + } + }, + render: function render(h) { + var badge = [this.genBadgeWrapper()]; + var children = [Object(_util_helpers__WEBPACK_IMPORTED_MODULE_8__["getSlot"])(this)]; + + var _a = this.$attrs, + _x = _a["aria-atomic"], + _y = _a["aria-label"], + _z = _a["aria-live"], + role = _a.role, + title = _a.title, + attrs = __rest(_a, ['aria-atomic', 'aria-label', 'aria-live', "role", "title"]); + + if (this.inline && this.left) children.unshift(badge);else children.push(badge); + return h('span', { + staticClass: 'v-badge', + attrs: attrs, + class: this.classes + }, children); + } +})); + +/***/ }), + +/***/ "./src/components/VBadge/index.ts": +/*!****************************************!*\ + !*** ./src/components/VBadge/index.ts ***! + \****************************************/ +/*! exports provided: VBadge, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VBadge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VBadge */ "./src/components/VBadge/VBadge.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VBadge", function() { return _VBadge__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VBadge__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VBanner/VBanner.sass": +/*!*********************************************!*\ + !*** ./src/components/VBanner/VBanner.sass ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VBanner/VBanner.ts": +/*!*******************************************!*\ + !*** ./src/components/VBanner/VBanner.ts ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VBanner_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VBanner.sass */ "./src/components/VBanner/VBanner.sass"); +/* harmony import */ var _VBanner_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VBanner_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VSheet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VSheet */ "./src/components/VSheet/index.ts"); +/* harmony import */ var _VAvatar__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../VAvatar */ "./src/components/VAvatar/index.ts"); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../VIcon */ "./src/components/VIcon/index.ts"); +/* harmony import */ var _transitions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../transitions */ "./src/components/transitions/index.ts"); +/* harmony import */ var _mixins_mobile__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/mobile */ "./src/mixins/mobile/index.ts"); +/* harmony import */ var _mixins_toggleable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../mixins/toggleable */ "./src/mixins/toggleable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Extensions + + // Components + + + + // Mixins + + + // Utilities + + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_7__["default"])(_VSheet__WEBPACK_IMPORTED_MODULE_1__["default"], _mixins_mobile__WEBPACK_IMPORTED_MODULE_5__["default"], _mixins_toggleable__WEBPACK_IMPORTED_MODULE_6__["default"]).extend({ + name: 'v-banner', + inheritAttrs: false, + props: { + app: Boolean, + icon: String, + iconColor: String, + singleLine: Boolean, + sticky: Boolean, + value: { + type: Boolean, + default: true + } + }, + computed: { + classes: function classes() { + return __assign(__assign({}, _VSheet__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.classes.call(this)), { + 'v-banner--has-icon': this.hasIcon, + 'v-banner--is-mobile': this.isMobile, + 'v-banner--single-line': this.singleLine, + 'v-banner--sticky': this.isSticky + }); + }, + hasIcon: function hasIcon() { + return Boolean(this.icon || this.$slots.icon); + }, + isSticky: function isSticky() { + return this.sticky || this.app; + }, + styles: function styles() { + var styles = __assign({}, _VSheet__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.styles.call(this)); + + if (this.isSticky) { + var top = !this.app ? 0 : this.$vuetify.application.bar + this.$vuetify.application.top; + styles.top = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_8__["convertToUnit"])(top); + styles.position = 'sticky'; + styles.zIndex = 1; + } + + return styles; + } + }, + methods: { + /** @public */ + toggle: function toggle() { + this.isActive = !this.isActive; + }, + iconClick: function iconClick(e) { + this.$emit('click:icon', e); + }, + genIcon: function genIcon() { + if (!this.hasIcon) return undefined; + var content; + + if (this.icon) { + content = this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_3__["default"], { + props: { + color: this.iconColor, + size: 28 + } + }, [this.icon]); + } else { + content = this.$slots.icon; + } + + return this.$createElement(_VAvatar__WEBPACK_IMPORTED_MODULE_2__["default"], { + staticClass: 'v-banner__icon', + props: { + color: this.color, + size: 40 + }, + on: { + click: this.iconClick + } + }, [content]); + }, + genText: function genText() { + return this.$createElement('div', { + staticClass: 'v-banner__text' + }, this.$slots.default); + }, + genActions: function genActions() { + var _this = this; + + var children = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_8__["getSlot"])(this, 'actions', { + dismiss: function dismiss() { + return _this.isActive = false; + } + }); + if (!children) return undefined; + return this.$createElement('div', { + staticClass: 'v-banner__actions' + }, children); + }, + genContent: function genContent() { + return this.$createElement('div', { + staticClass: 'v-banner__content' + }, [this.genIcon(), this.genText()]); + }, + genWrapper: function genWrapper() { + return this.$createElement('div', { + staticClass: 'v-banner__wrapper' + }, [this.genContent(), this.genActions()]); + } + }, + render: function render(h) { + return h(_transitions__WEBPACK_IMPORTED_MODULE_4__["VExpandTransition"], [h('div', this.setBackgroundColor(this.color, { + staticClass: 'v-banner', + attrs: this.attrs$, + class: this.classes, + style: this.styles, + directives: [{ + name: 'show', + value: this.isActive + }] + }), [this.genWrapper()])]); + } +})); + +/***/ }), + +/***/ "./src/components/VBanner/index.ts": +/*!*****************************************!*\ + !*** ./src/components/VBanner/index.ts ***! + \*****************************************/ +/*! exports provided: VBanner, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VBanner__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VBanner */ "./src/components/VBanner/VBanner.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VBanner", function() { return _VBanner__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VBanner__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VBottomNavigation/VBottomNavigation.sass": +/*!*****************************************************************!*\ + !*** ./src/components/VBottomNavigation/VBottomNavigation.sass ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VBottomNavigation/VBottomNavigation.ts": +/*!***************************************************************!*\ + !*** ./src/components/VBottomNavigation/VBottomNavigation.ts ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VBottomNavigation_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VBottomNavigation.sass */ "./src/components/VBottomNavigation/VBottomNavigation.sass"); +/* harmony import */ var _VBottomNavigation_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VBottomNavigation_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_applicationable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/applicationable */ "./src/mixins/applicationable/index.ts"); +/* harmony import */ var _mixins_button_group__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/button-group */ "./src/mixins/button-group/index.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_measurable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/measurable */ "./src/mixins/measurable/index.ts"); +/* harmony import */ var _mixins_proxyable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/proxyable */ "./src/mixins/proxyable/index.ts"); +/* harmony import */ var _mixins_scrollable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../mixins/scrollable */ "./src/mixins/scrollable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _mixins_toggleable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../mixins/toggleable */ "./src/mixins/toggleable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Mixins + + + + + + + + + // Utilities + + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_9__["default"])(Object(_mixins_applicationable__WEBPACK_IMPORTED_MODULE_1__["default"])('bottom', ['height', 'inputValue']), _mixins_colorable__WEBPACK_IMPORTED_MODULE_3__["default"], _mixins_measurable__WEBPACK_IMPORTED_MODULE_4__["default"], Object(_mixins_toggleable__WEBPACK_IMPORTED_MODULE_8__["factory"])('inputValue'), _mixins_proxyable__WEBPACK_IMPORTED_MODULE_5__["default"], _mixins_scrollable__WEBPACK_IMPORTED_MODULE_6__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_7__["default"] +/* @vue/component */ +).extend({ + name: 'v-bottom-navigation', + props: { + activeClass: { + type: String, + default: 'v-btn--active' + }, + backgroundColor: String, + grow: Boolean, + height: { + type: [Number, String], + default: 56 + }, + hideOnScroll: Boolean, + horizontal: Boolean, + inputValue: { + type: Boolean, + default: true + }, + mandatory: Boolean, + shift: Boolean + }, + data: function data() { + return { + isActive: this.inputValue + }; + }, + computed: { + canScroll: function canScroll() { + return _mixins_scrollable__WEBPACK_IMPORTED_MODULE_6__["default"].options.computed.canScroll.call(this) && (this.hideOnScroll || !this.inputValue); + }, + classes: function classes() { + return { + 'v-bottom-navigation--absolute': this.absolute, + 'v-bottom-navigation--grow': this.grow, + 'v-bottom-navigation--fixed': !this.absolute && (this.app || this.fixed), + 'v-bottom-navigation--horizontal': this.horizontal, + 'v-bottom-navigation--shift': this.shift + }; + }, + styles: function styles() { + return __assign(__assign({}, this.measurableStyles), { + transform: this.isActive ? 'none' : 'translateY(100%)' + }); + } + }, + created: function created() { + /* istanbul ignore next */ + if (this.$attrs.hasOwnProperty('active')) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_10__["breaking"])('active.sync', 'value or v-model', this); + } + }, + methods: { + thresholdMet: function thresholdMet() { + this.isActive = !this.isScrollingUp; + this.$emit('update:input-value', this.isActive); + }, + updateApplication: function updateApplication() { + return this.$el ? this.$el.clientHeight : 0; + }, + updateValue: function updateValue(val) { + this.$emit('change', val); + } + }, + render: function render(h) { + var data = this.setBackgroundColor(this.backgroundColor, { + staticClass: 'v-bottom-navigation', + class: this.classes, + style: this.styles, + props: { + activeClass: this.activeClass, + mandatory: Boolean(this.mandatory || this.value !== undefined), + value: this.internalValue + }, + on: { + change: this.updateValue + } + }); + + if (this.canScroll) { + data.directives = data.directives || []; + data.directives.push({ + arg: this.scrollTarget, + name: 'scroll', + value: this.onScroll + }); + } + + return h(_mixins_button_group__WEBPACK_IMPORTED_MODULE_2__["default"], this.setTextColor(this.color, data), this.$slots.default); + } +})); + +/***/ }), + +/***/ "./src/components/VBottomNavigation/index.ts": +/*!***************************************************!*\ + !*** ./src/components/VBottomNavigation/index.ts ***! + \***************************************************/ +/*! exports provided: VBottomNavigation, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VBottomNavigation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VBottomNavigation */ "./src/components/VBottomNavigation/VBottomNavigation.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VBottomNavigation", function() { return _VBottomNavigation__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VBottomNavigation__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VBottomSheet/VBottomSheet.sass": +/*!*******************************************************!*\ + !*** ./src/components/VBottomSheet/VBottomSheet.sass ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VBottomSheet/VBottomSheet.ts": +/*!*****************************************************!*\ + !*** ./src/components/VBottomSheet/VBottomSheet.ts ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VBottomSheet_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VBottomSheet.sass */ "./src/components/VBottomSheet/VBottomSheet.sass"); +/* harmony import */ var _VBottomSheet_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VBottomSheet_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VDialog_VDialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VDialog/VDialog */ "./src/components/VDialog/VDialog.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + + // Extensions + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (_VDialog_VDialog__WEBPACK_IMPORTED_MODULE_1__["default"].extend({ + name: 'v-bottom-sheet', + props: { + inset: Boolean, + maxWidth: { + type: [String, Number], + default: 'auto' + }, + transition: { + type: String, + default: 'bottom-sheet-transition' + } + }, + computed: { + classes: function classes() { + return __assign(__assign({}, _VDialog_VDialog__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.classes.call(this)), { + 'v-bottom-sheet': true, + 'v-bottom-sheet--inset': this.inset + }); + } + } +})); + +/***/ }), + +/***/ "./src/components/VBottomSheet/index.ts": +/*!**********************************************!*\ + !*** ./src/components/VBottomSheet/index.ts ***! + \**********************************************/ +/*! exports provided: VBottomSheet, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VBottomSheet__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VBottomSheet */ "./src/components/VBottomSheet/VBottomSheet.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VBottomSheet", function() { return _VBottomSheet__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VBottomSheet__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VBreadcrumbs/VBreadcrumbs.sass": +/*!*******************************************************!*\ + !*** ./src/components/VBreadcrumbs/VBreadcrumbs.sass ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VBreadcrumbs/VBreadcrumbs.ts": +/*!*****************************************************!*\ + !*** ./src/components/VBreadcrumbs/VBreadcrumbs.ts ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VBreadcrumbs_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VBreadcrumbs.sass */ "./src/components/VBreadcrumbs/VBreadcrumbs.sass"); +/* harmony import */ var _VBreadcrumbs_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VBreadcrumbs_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VBreadcrumbsItem__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VBreadcrumbsItem */ "./src/components/VBreadcrumbs/VBreadcrumbsItem.ts"); +/* harmony import */ var _VBreadcrumbsDivider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./VBreadcrumbsDivider */ "./src/components/VBreadcrumbs/VBreadcrumbsDivider.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Components + + + // Mixins + + // Utils + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_4__["default"])(_mixins_themeable__WEBPACK_IMPORTED_MODULE_3__["default"] +/* @vue/component */ +).extend({ + name: 'v-breadcrumbs', + props: { + divider: { + type: String, + default: '/' + }, + items: { + type: Array, + default: function _default() { + return []; + } + }, + large: Boolean + }, + computed: { + classes: function classes() { + return __assign({ + 'v-breadcrumbs--large': this.large + }, this.themeClasses); + } + }, + methods: { + genDivider: function genDivider() { + return this.$createElement(_VBreadcrumbsDivider__WEBPACK_IMPORTED_MODULE_2__["default"], this.$slots.divider ? this.$slots.divider : this.divider); + }, + genItems: function genItems() { + var items = []; + var hasSlot = !!this.$scopedSlots.item; + var keys = []; + + for (var i = 0; i < this.items.length; i++) { + var item = this.items[i]; + keys.push(item.text); + if (hasSlot) items.push(this.$scopedSlots.item({ + item: item + }));else items.push(this.$createElement(_VBreadcrumbsItem__WEBPACK_IMPORTED_MODULE_1__["default"], { + key: keys.join('.'), + props: item + }, [item.text])); + if (i < this.items.length - 1) items.push(this.genDivider()); + } + + return items; + } + }, + render: function render(h) { + var children = this.$slots.default || this.genItems(); + return h('ul', { + staticClass: 'v-breadcrumbs', + class: this.classes + }, children); + } +})); + +/***/ }), + +/***/ "./src/components/VBreadcrumbs/VBreadcrumbsDivider.ts": +/*!************************************************************!*\ + !*** ./src/components/VBreadcrumbs/VBreadcrumbsDivider.ts ***! + \************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["createSimpleFunctional"])('v-breadcrumbs__divider', 'li')); + +/***/ }), + +/***/ "./src/components/VBreadcrumbs/VBreadcrumbsItem.ts": +/*!*********************************************************!*\ + !*** ./src/components/VBreadcrumbs/VBreadcrumbsItem.ts ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _mixins_routable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../mixins/routable */ "./src/mixins/routable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_1__["default"])(_mixins_routable__WEBPACK_IMPORTED_MODULE_0__["default"]).extend({ + name: 'v-breadcrumbs-item', + props: { + // In a breadcrumb, the currently + // active item should be dimmed + activeClass: { + type: String, + default: 'v-breadcrumbs__item--disabled' + }, + ripple: { + type: [Boolean, Object], + default: false + } + }, + computed: { + classes: function classes() { + var _a; + + return _a = { + 'v-breadcrumbs__item': true + }, _a[this.activeClass] = this.disabled, _a; + } + }, + render: function render(h) { + var _a = this.generateRouteLink(), + tag = _a.tag, + data = _a.data; + + return h('li', [h(tag, __assign(__assign({}, data), { + attrs: __assign(__assign({}, data.attrs), { + 'aria-current': this.isActive && this.isLink ? 'page' : undefined + }) + }), this.$slots.default)]); + } +})); + +/***/ }), + +/***/ "./src/components/VBreadcrumbs/index.ts": +/*!**********************************************!*\ + !*** ./src/components/VBreadcrumbs/index.ts ***! + \**********************************************/ +/*! exports provided: VBreadcrumbs, VBreadcrumbsItem, VBreadcrumbsDivider, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VBreadcrumbs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VBreadcrumbs */ "./src/components/VBreadcrumbs/VBreadcrumbs.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VBreadcrumbs", function() { return _VBreadcrumbs__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + +/* harmony import */ var _VBreadcrumbsItem__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VBreadcrumbsItem */ "./src/components/VBreadcrumbs/VBreadcrumbsItem.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VBreadcrumbsItem", function() { return _VBreadcrumbsItem__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + +/* harmony import */ var _VBreadcrumbsDivider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./VBreadcrumbsDivider */ "./src/components/VBreadcrumbs/VBreadcrumbsDivider.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VBreadcrumbsDivider", function() { return _VBreadcrumbsDivider__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + $_vuetify_subcomponents: { + VBreadcrumbs: _VBreadcrumbs__WEBPACK_IMPORTED_MODULE_0__["default"], + VBreadcrumbsItem: _VBreadcrumbsItem__WEBPACK_IMPORTED_MODULE_1__["default"], + VBreadcrumbsDivider: _VBreadcrumbsDivider__WEBPACK_IMPORTED_MODULE_2__["default"] + } +}); + +/***/ }), + +/***/ "./src/components/VBtn/VBtn.sass": +/*!***************************************!*\ + !*** ./src/components/VBtn/VBtn.sass ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VBtn/VBtn.ts": +/*!*************************************!*\ + !*** ./src/components/VBtn/VBtn.ts ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VBtn_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VBtn.sass */ "./src/components/VBtn/VBtn.sass"); +/* harmony import */ var _VBtn_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VBtn_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VSheet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VSheet */ "./src/components/VSheet/index.ts"); +/* harmony import */ var _VProgressCircular__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../VProgressCircular */ "./src/components/VProgressCircular/index.ts"); +/* harmony import */ var _mixins_groupable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/groupable */ "./src/mixins/groupable/index.ts"); +/* harmony import */ var _mixins_toggleable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/toggleable */ "./src/mixins/toggleable/index.ts"); +/* harmony import */ var _mixins_positionable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/positionable */ "./src/mixins/positionable/index.ts"); +/* harmony import */ var _mixins_routable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../mixins/routable */ "./src/mixins/routable/index.ts"); +/* harmony import */ var _mixins_sizeable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../mixins/sizeable */ "./src/mixins/sizeable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; // Styles + + + // Extensions + + // Components + + // Mixins + + + + + + // Utilities + + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_8__["default"])(_VSheet__WEBPACK_IMPORTED_MODULE_1__["default"], _mixins_routable__WEBPACK_IMPORTED_MODULE_6__["default"], _mixins_positionable__WEBPACK_IMPORTED_MODULE_5__["default"], _mixins_sizeable__WEBPACK_IMPORTED_MODULE_7__["default"], Object(_mixins_groupable__WEBPACK_IMPORTED_MODULE_3__["factory"])('btnToggle'), Object(_mixins_toggleable__WEBPACK_IMPORTED_MODULE_4__["factory"])('inputValue') +/* @vue/component */ +); +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend().extend({ + name: 'v-btn', + props: { + activeClass: { + type: String, + default: function _default() { + if (!this.btnToggle) return ''; + return this.btnToggle.activeClass; + } + }, + block: Boolean, + depressed: Boolean, + fab: Boolean, + icon: Boolean, + loading: Boolean, + outlined: Boolean, + retainFocusOnClick: Boolean, + rounded: Boolean, + tag: { + type: String, + default: 'button' + }, + text: Boolean, + tile: Boolean, + type: { + type: String, + default: 'button' + }, + value: null + }, + data: function data() { + return { + proxyClass: 'v-btn--active' + }; + }, + computed: { + classes: function classes() { + return __assign(__assign(__assign(__assign(__assign(__assign({ + 'v-btn': true + }, _mixins_routable__WEBPACK_IMPORTED_MODULE_6__["default"].options.computed.classes.call(this)), { + 'v-btn--absolute': this.absolute, + 'v-btn--block': this.block, + 'v-btn--bottom': this.bottom, + 'v-btn--contained': this.contained, + 'v-btn--depressed': this.depressed || this.outlined, + 'v-btn--disabled': this.disabled, + 'v-btn--fab': this.fab, + 'v-btn--fixed': this.fixed, + 'v-btn--flat': this.isFlat, + 'v-btn--icon': this.icon, + 'v-btn--left': this.left, + 'v-btn--loading': this.loading, + 'v-btn--outlined': this.outlined, + 'v-btn--right': this.right, + 'v-btn--round': this.isRound, + 'v-btn--rounded': this.rounded, + 'v-btn--router': this.to, + 'v-btn--text': this.text, + 'v-btn--tile': this.tile, + 'v-btn--top': this.top + }), this.themeClasses), this.groupClasses), this.elevationClasses), this.sizeableClasses); + }, + contained: function contained() { + return Boolean(!this.isFlat && !this.depressed && // Contained class only adds elevation + // is not needed if user provides value + !this.elevation); + }, + computedRipple: function computedRipple() { + var _a; + + var defaultRipple = this.icon || this.fab ? { + circle: true + } : true; + if (this.disabled) return false;else return (_a = this.ripple) !== null && _a !== void 0 ? _a : defaultRipple; + }, + isFlat: function isFlat() { + return Boolean(this.icon || this.text || this.outlined); + }, + isRound: function isRound() { + return Boolean(this.icon || this.fab); + }, + styles: function styles() { + return __assign({}, this.measurableStyles); + } + }, + created: function created() { + var _this = this; + + var breakingProps = [['flat', 'text'], ['outline', 'outlined'], ['round', 'rounded']]; + /* istanbul ignore next */ + + breakingProps.forEach(function (_a) { + var _b = __read(_a, 2), + original = _b[0], + replacement = _b[1]; + + if (_this.$attrs.hasOwnProperty(original)) Object(_util_console__WEBPACK_IMPORTED_MODULE_9__["breaking"])(original, replacement, _this); + }); + }, + methods: { + click: function click(e) { + // TODO: Remove this in v3 + !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur(); + this.$emit('click', e); + this.btnToggle && this.toggle(); + }, + genContent: function genContent() { + return this.$createElement('span', { + staticClass: 'v-btn__content' + }, this.$slots.default); + }, + genLoader: function genLoader() { + return this.$createElement('span', { + class: 'v-btn__loader' + }, this.$slots.loader || [this.$createElement(_VProgressCircular__WEBPACK_IMPORTED_MODULE_2__["default"], { + props: { + indeterminate: true, + size: 23, + width: 2 + } + })]); + } + }, + render: function render(h) { + var children = [this.genContent(), this.loading && this.genLoader()]; + var setColor = !this.isFlat ? this.setBackgroundColor : this.setTextColor; + + var _a = this.generateRouteLink(), + tag = _a.tag, + data = _a.data; + + if (tag === 'button') { + data.attrs.type = this.type; + data.attrs.disabled = this.disabled; + } + + data.attrs.value = ['string', 'number'].includes(_typeof(this.value)) ? this.value : JSON.stringify(this.value); + return h(tag, this.disabled ? data : setColor(this.color, data), children); + } +})); + +/***/ }), + +/***/ "./src/components/VBtn/index.ts": +/*!**************************************!*\ + !*** ./src/components/VBtn/index.ts ***! + \**************************************/ +/*! exports provided: VBtn, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VBtn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VBtn */ "./src/components/VBtn/VBtn.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VBtn", function() { return _VBtn__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VBtn__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VBtnToggle/VBtnToggle.sass": +/*!***************************************************!*\ + !*** ./src/components/VBtnToggle/VBtnToggle.sass ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VBtnToggle/VBtnToggle.ts": +/*!*************************************************!*\ + !*** ./src/components/VBtnToggle/VBtnToggle.ts ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VBtnToggle_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VBtnToggle.sass */ "./src/components/VBtnToggle/VBtnToggle.sass"); +/* harmony import */ var _VBtnToggle_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VBtnToggle_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_button_group__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/button-group */ "./src/mixins/button-group/index.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Mixins + + + // Utilities + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_3__["default"])(_mixins_button_group__WEBPACK_IMPORTED_MODULE_1__["default"], _mixins_colorable__WEBPACK_IMPORTED_MODULE_2__["default"]).extend({ + name: 'v-btn-toggle', + props: { + backgroundColor: String, + borderless: Boolean, + dense: Boolean, + group: Boolean, + rounded: Boolean, + shaped: Boolean, + tile: Boolean + }, + computed: { + classes: function classes() { + return __assign(__assign(__assign({}, _mixins_button_group__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.classes.call(this)), { + 'v-btn-toggle': true, + 'v-btn-toggle--borderless': this.borderless, + 'v-btn-toggle--dense': this.dense, + 'v-btn-toggle--group': this.group, + 'v-btn-toggle--rounded': this.rounded, + 'v-btn-toggle--shaped': this.shaped, + 'v-btn-toggle--tile': this.tile + }), this.themeClasses); + } + }, + methods: { + genData: function genData() { + var data = this.setTextColor(this.color, __assign({}, _mixins_button_group__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.genData.call(this))); + if (this.group) return data; + return this.setBackgroundColor(this.backgroundColor, data); + } + } +})); + +/***/ }), + +/***/ "./src/components/VBtnToggle/index.ts": +/*!********************************************!*\ + !*** ./src/components/VBtnToggle/index.ts ***! + \********************************************/ +/*! exports provided: VBtnToggle, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VBtnToggle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VBtnToggle */ "./src/components/VBtnToggle/VBtnToggle.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VBtnToggle", function() { return _VBtnToggle__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VBtnToggle__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VCalendar/VCalendar.ts": +/*!***********************************************!*\ + !*** ./src/components/VCalendar/VCalendar.ts ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _mixins_calendar_with_events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mixins/calendar-with-events */ "./src/components/VCalendar/mixins/calendar-with-events.ts"); +/* harmony import */ var _util_props__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/props */ "./src/components/VCalendar/util/props.ts"); +/* harmony import */ var _util_timestamp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/timestamp */ "./src/components/VCalendar/util/timestamp.ts"); +/* harmony import */ var _VCalendarMonthly__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./VCalendarMonthly */ "./src/components/VCalendar/VCalendarMonthly.ts"); +/* harmony import */ var _VCalendarDaily__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./VCalendarDaily */ "./src/components/VCalendar/VCalendarDaily.ts"); +/* harmony import */ var _VCalendarWeekly__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./VCalendarWeekly */ "./src/components/VCalendar/VCalendarWeekly.ts"); +/* harmony import */ var _VCalendarCategory__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./VCalendarCategory */ "./src/components/VCalendar/VCalendarCategory.ts"); +// Styles +// import '../../stylus/components/_calendar-daily.styl' +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Mixins + + + // Util + + + // Calendars + + + + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (_mixins_calendar_with_events__WEBPACK_IMPORTED_MODULE_0__["default"].extend({ + name: 'v-calendar', + props: __assign(__assign(__assign(__assign({}, _util_props__WEBPACK_IMPORTED_MODULE_1__["default"].calendar), _util_props__WEBPACK_IMPORTED_MODULE_1__["default"].weeks), _util_props__WEBPACK_IMPORTED_MODULE_1__["default"].intervals), _util_props__WEBPACK_IMPORTED_MODULE_1__["default"].category), + data: function data() { + return { + lastStart: null, + lastEnd: null + }; + }, + computed: { + parsedValue: function parsedValue() { + return Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["validateTimestamp"])(this.value) ? Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["parseTimestamp"])(this.value, true) : this.parsedStart || this.times.today; + }, + parsedCategoryDays: function parsedCategoryDays() { + return parseInt(this.categoryDays) || 1; + }, + renderProps: function renderProps() { + var around = this.parsedValue; + var component = null; + var maxDays = this.maxDays; + var weekdays = this.parsedWeekdays; + var categories = this.parsedCategories; + var start = around; + var end = around; + + switch (this.type) { + case 'month': + component = _VCalendarMonthly__WEBPACK_IMPORTED_MODULE_3__["default"]; + start = Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["getStartOfMonth"])(around); + end = Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["getEndOfMonth"])(around); + break; + + case 'week': + component = _VCalendarDaily__WEBPACK_IMPORTED_MODULE_4__["default"]; + start = this.getStartOfWeek(around); + end = this.getEndOfWeek(around); + maxDays = 7; + break; + + case 'day': + component = _VCalendarDaily__WEBPACK_IMPORTED_MODULE_4__["default"]; + maxDays = 1; + weekdays = [start.weekday]; + break; + + case '4day': + component = _VCalendarDaily__WEBPACK_IMPORTED_MODULE_4__["default"]; + end = Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["relativeDays"])(Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["copyTimestamp"])(end), _util_timestamp__WEBPACK_IMPORTED_MODULE_2__["nextDay"], 4); + Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["updateFormatted"])(end); + maxDays = 4; + weekdays = [start.weekday, (start.weekday + 1) % 7, (start.weekday + 2) % 7, (start.weekday + 3) % 7]; + break; + + case 'custom-weekly': + component = _VCalendarWeekly__WEBPACK_IMPORTED_MODULE_5__["default"]; + start = this.parsedStart || around; + end = this.parsedEnd; + break; + + case 'custom-daily': + component = _VCalendarDaily__WEBPACK_IMPORTED_MODULE_4__["default"]; + start = this.parsedStart || around; + end = this.parsedEnd; + break; + + case 'category': + var days = this.parsedCategoryDays; + component = _VCalendarCategory__WEBPACK_IMPORTED_MODULE_6__["default"]; + end = Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["relativeDays"])(Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["copyTimestamp"])(end), _util_timestamp__WEBPACK_IMPORTED_MODULE_2__["nextDay"], days); + Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["updateFormatted"])(end); + maxDays = days; + weekdays = []; + + for (var i = 0; i < days; i++) { + weekdays.push((start.weekday + i) % 7); + } + + categories = this.getCategoryList(categories); + break; + + default: + throw new Error(this.type + ' is not a valid Calendar type'); + } + + return { + component: component, + start: start, + end: end, + maxDays: maxDays, + weekdays: weekdays, + categories: categories + }; + }, + eventWeekdays: function eventWeekdays() { + return this.renderProps.weekdays; + }, + categoryMode: function categoryMode() { + return this.type === 'category'; + }, + title: function title() { + var _a = this.renderProps, + start = _a.start, + end = _a.end; + var spanYears = start.year !== end.year; + var spanMonths = spanYears || start.month !== end.month; + + if (spanYears) { + return this.monthShortFormatter(start, true) + ' ' + start.year + ' - ' + this.monthShortFormatter(end, true) + ' ' + end.year; + } + + if (spanMonths) { + return this.monthShortFormatter(start, true) + ' - ' + this.monthShortFormatter(end, true) + ' ' + end.year; + } else { + return this.monthLongFormatter(start, false) + ' ' + start.year; + } + }, + monthLongFormatter: function monthLongFormatter() { + return this.getFormatter({ + timeZone: 'UTC', + month: 'long' + }); + }, + monthShortFormatter: function monthShortFormatter() { + return this.getFormatter({ + timeZone: 'UTC', + month: 'short' + }); + }, + parsedCategories: function parsedCategories() { + return typeof this.categories === 'string' && this.categories ? this.categories.split(/\s*,\s*/) : Array.isArray(this.categories) ? this.categories : []; + } + }, + watch: { + renderProps: 'checkChange' + }, + mounted: function mounted() { + this.updateEventVisibility(); + this.checkChange(); + }, + updated: function updated() { + window.requestAnimationFrame(this.updateEventVisibility); + }, + methods: { + checkChange: function checkChange() { + var _a = this, + lastStart = _a.lastStart, + lastEnd = _a.lastEnd; + + var _b = this.renderProps, + start = _b.start, + end = _b.end; + + if (!lastStart || !lastEnd || start.date !== lastStart.date || end.date !== lastEnd.date) { + this.lastStart = start; + this.lastEnd = end; + this.$emit('change', { + start: start, + end: end + }); + } + }, + move: function move(amount) { + if (amount === void 0) { + amount = 1; + } + + var moved = Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["copyTimestamp"])(this.parsedValue); + var forward = amount > 0; + var mover = forward ? _util_timestamp__WEBPACK_IMPORTED_MODULE_2__["nextDay"] : _util_timestamp__WEBPACK_IMPORTED_MODULE_2__["prevDay"]; + var limit = forward ? _util_timestamp__WEBPACK_IMPORTED_MODULE_2__["DAYS_IN_MONTH_MAX"] : _util_timestamp__WEBPACK_IMPORTED_MODULE_2__["DAY_MIN"]; + var times = forward ? amount : -amount; + + while (--times >= 0) { + switch (this.type) { + case 'month': + moved.day = limit; + mover(moved); + break; + + case 'week': + Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["relativeDays"])(moved, mover, _util_timestamp__WEBPACK_IMPORTED_MODULE_2__["DAYS_IN_WEEK"]); + break; + + case 'day': + Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["relativeDays"])(moved, mover, 1); + break; + + case '4day': + Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["relativeDays"])(moved, mover, 4); + break; + + case 'category': + Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["relativeDays"])(moved, mover, this.parsedCategoryDays); + break; + } + } + + Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["updateWeekday"])(moved); + Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["updateFormatted"])(moved); + Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["updateRelative"])(moved, this.times.now); + + if (this.value instanceof Date) { + this.$emit('input', Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["timestampToDate"])(moved)); + } else if (typeof this.value === 'number') { + this.$emit('input', Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["timestampToDate"])(moved).getTime()); + } else { + this.$emit('input', moved.date); + } + + this.$emit('moved', moved); + }, + next: function next(amount) { + if (amount === void 0) { + amount = 1; + } + + this.move(amount); + }, + prev: function prev(amount) { + if (amount === void 0) { + amount = 1; + } + + this.move(-amount); + }, + timeToY: function timeToY(time, clamp) { + if (clamp === void 0) { + clamp = true; + } + + var c = this.$children[0]; + + if (c && c.timeToY) { + return c.timeToY(time, clamp); + } else { + return false; + } + }, + timeDelta: function timeDelta(time) { + var c = this.$children[0]; + + if (c && c.timeDelta) { + return c.timeDelta(time); + } else { + return false; + } + }, + minutesToPixels: function minutesToPixels(minutes) { + var c = this.$children[0]; + + if (c && c.minutesToPixels) { + return c.minutesToPixels(minutes); + } else { + return -1; + } + }, + scrollToTime: function scrollToTime(time) { + var c = this.$children[0]; + + if (c && c.scrollToTime) { + return c.scrollToTime(time); + } else { + return false; + } + }, + parseTimestamp: function parseTimestamp(input, required) { + return Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["parseTimestamp"])(input, required, this.times.now); + }, + timestampToDate: function timestampToDate(timestamp) { + return Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["timestampToDate"])(timestamp); + }, + getCategoryList: function getCategoryList(categories) { + var _this = this; + + if (!this.noEvents) { + var categoryMap_1 = categories.reduce(function (map, category, index) { + map[category] = { + index: index, + count: 0 + }; + return map; + }, Object.create(null)); + + if (!this.categoryHideDynamic || !this.categoryShowAll) { + var categoryLength_1 = categories.length; + this.parsedEvents.forEach(function (ev) { + var category = ev.category; + + if (typeof category !== 'string') { + category = _this.categoryForInvalid; + } + + if (!category) { + return; + } + + if (category in categoryMap_1) { + categoryMap_1[category].count++; + } else if (!_this.categoryHideDynamic) { + categoryMap_1[category] = { + index: categoryLength_1++, + count: 1 + }; + } + }); + } + + if (!this.categoryShowAll) { + for (var category in categoryMap_1) { + if (categoryMap_1[category].count === 0) { + delete categoryMap_1[category]; + } + } + } + + categories = Object.keys(categoryMap_1); + } + + return categories; + } + }, + render: function render(h) { + var _this = this; + + var _a = this.renderProps, + start = _a.start, + end = _a.end, + maxDays = _a.maxDays, + component = _a.component, + weekdays = _a.weekdays, + categories = _a.categories; + return h(component, { + staticClass: 'v-calendar', + class: { + 'v-calendar-events': !this.noEvents + }, + props: __assign(__assign({}, this.$props), { + start: start.date, + end: end.date, + maxDays: maxDays, + weekdays: weekdays, + categories: categories + }), + directives: [{ + modifiers: { + quiet: true + }, + name: 'resize', + value: this.updateEventVisibility + }], + on: __assign(__assign({}, this.$listeners), { + 'click:date': function clickDate(day) { + if (_this.$listeners.input) { + _this.$emit('input', day.date); + } + + if (_this.$listeners['click:date']) { + _this.$emit('click:date', day); + } + } + }), + scopedSlots: this.getScopedSlots() + }); + } +})); + +/***/ }), + +/***/ "./src/components/VCalendar/VCalendarCategory.sass": +/*!*********************************************************!*\ + !*** ./src/components/VCalendar/VCalendarCategory.sass ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VCalendar/VCalendarCategory.ts": +/*!*******************************************************!*\ + !*** ./src/components/VCalendar/VCalendarCategory.ts ***! + \*******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VCalendarCategory_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VCalendarCategory.sass */ "./src/components/VCalendar/VCalendarCategory.sass"); +/* harmony import */ var _VCalendarCategory_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VCalendarCategory_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VCalendarDaily__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VCalendarDaily */ "./src/components/VCalendar/VCalendarDaily.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_props__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util/props */ "./src/components/VCalendar/util/props.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Mixins + + // Util + + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (_VCalendarDaily__WEBPACK_IMPORTED_MODULE_1__["default"].extend({ + name: 'v-calendar-category', + props: _util_props__WEBPACK_IMPORTED_MODULE_3__["default"].category, + computed: { + classes: function classes() { + return __assign({ + 'v-calendar-daily': true, + 'v-calendar-category': true + }, this.themeClasses); + }, + parsedCategories: function parsedCategories() { + return typeof this.categories === 'string' && this.categories ? this.categories.split(/\s*,\s*/) : Array.isArray(this.categories) ? this.categories : []; + } + }, + methods: { + genDayHeader: function genDayHeader(day, index) { + var _this = this; + + var data = { + staticClass: 'v-calendar-category__columns' + }; + + var scope = __assign(__assign({ + week: this.days + }, day), { + index: index + }); + + var children = this.parsedCategories.map(function (category) { + return _this.genDayHeaderCategory(day, _this.getCategoryScope(scope, category)); + }); + return [this.$createElement('div', data, children)]; + }, + getCategoryScope: function getCategoryScope(scope, category) { + return __assign(__assign({}, scope), { + category: category === this.categoryForInvalid ? null : category + }); + }, + genDayHeaderCategory: function genDayHeaderCategory(day, scope) { + var _this = this; + + return this.$createElement('div', { + staticClass: 'v-calendar-category__column-header', + on: this.getDefaultMouseEventHandlers(':day-category', function (e) { + return _this.getCategoryScope(_this.getSlotScope(day), scope.category); + }) + }, [Object(_util_helpers__WEBPACK_IMPORTED_MODULE_2__["getSlot"])(this, 'category', scope) || this.genDayHeaderCategoryTitle(scope.category), Object(_util_helpers__WEBPACK_IMPORTED_MODULE_2__["getSlot"])(this, 'day-header', scope)]); + }, + genDayHeaderCategoryTitle: function genDayHeaderCategoryTitle(category) { + return this.$createElement('div', { + staticClass: 'v-calendar-category__category' + }, category === null ? this.categoryForInvalid : category); + }, + genDayBody: function genDayBody(day) { + var _this = this; + + var data = { + staticClass: 'v-calendar-category__columns' + }; + var children = this.parsedCategories.map(function (category) { + return _this.genDayBodyCategory(day, category); + }); + return [this.$createElement('div', data, children)]; + }, + genDayBodyCategory: function genDayBodyCategory(day, category) { + var _this = this; + + var data = { + staticClass: 'v-calendar-category__column', + on: this.getDefaultMouseEventHandlers(':time-category', function (e) { + return _this.getCategoryScope(_this.getSlotScope(_this.getTimestampAtEvent(e, day)), category); + }) + }; + var children = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_2__["getSlot"])(this, 'day-body', function () { + return _this.getCategoryScope(_this.getSlotScope(day), category); + }); + return this.$createElement('div', data, children); + } + } +})); + +/***/ }), + +/***/ "./src/components/VCalendar/VCalendarDaily.sass": +/*!******************************************************!*\ + !*** ./src/components/VCalendar/VCalendarDaily.sass ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VCalendar/VCalendarDaily.ts": +/*!****************************************************!*\ + !*** ./src/components/VCalendar/VCalendarDaily.ts ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VCalendarDaily_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VCalendarDaily.sass */ "./src/components/VCalendar/VCalendarDaily.sass"); +/* harmony import */ var _VCalendarDaily_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VCalendarDaily_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _directives_resize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../directives/resize */ "./src/directives/resize/index.ts"); +/* harmony import */ var _VBtn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../VBtn */ "./src/components/VBtn/index.ts"); +/* harmony import */ var _mixins_calendar_with_intervals__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mixins/calendar-with-intervals */ "./src/components/VCalendar/mixins/calendar-with-intervals.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + +var __spread = undefined && undefined.__spread || function () { + for (var ar = [], i = 0; i < arguments.length; i++) { + ar = ar.concat(__read(arguments[i])); + } + + return ar; +}; // Styles + + + // Directives + + // Components + + // Mixins + + // Util + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (_mixins_calendar_with_intervals__WEBPACK_IMPORTED_MODULE_3__["default"].extend({ + name: 'v-calendar-daily', + directives: { + Resize: _directives_resize__WEBPACK_IMPORTED_MODULE_1__["default"] + }, + data: function data() { + return { + scrollPush: 0 + }; + }, + computed: { + classes: function classes() { + return __assign({ + 'v-calendar-daily': true + }, this.themeClasses); + } + }, + mounted: function mounted() { + this.init(); + }, + methods: { + init: function init() { + this.$nextTick(this.onResize); + }, + onResize: function onResize() { + this.scrollPush = this.getScrollPush(); + }, + getScrollPush: function getScrollPush() { + var area = this.$refs.scrollArea; + var pane = this.$refs.pane; + return area && pane ? area.offsetWidth - pane.offsetWidth : 0; + }, + genHead: function genHead() { + return this.$createElement('div', { + staticClass: 'v-calendar-daily__head', + style: { + marginRight: this.scrollPush + 'px' + } + }, __spread([this.genHeadIntervals()], this.genHeadDays())); + }, + genHeadIntervals: function genHeadIntervals() { + var width = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["convertToUnit"])(this.intervalWidth); + return this.$createElement('div', { + staticClass: 'v-calendar-daily__intervals-head', + style: { + width: width + } + }, Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getSlot"])(this, 'interval-header')); + }, + genHeadDays: function genHeadDays() { + return this.days.map(this.genHeadDay); + }, + genHeadDay: function genHeadDay(day, index) { + var _this = this; + + return this.$createElement('div', { + key: day.date, + staticClass: 'v-calendar-daily_head-day', + class: this.getRelativeClasses(day), + on: this.getDefaultMouseEventHandlers(':day', function (_e) { + return _this.getSlotScope(day); + }) + }, __spread([this.genHeadWeekday(day), this.genHeadDayLabel(day)], this.genDayHeader(day, index))); + }, + genDayHeader: function genDayHeader(day, index) { + var _this = this; + + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getSlot"])(this, 'day-header', function () { + return __assign(__assign({ + week: _this.days + }, day), { + index: index + }); + }) || []; + }, + genHeadWeekday: function genHeadWeekday(day) { + var color = day.present ? this.color : undefined; + return this.$createElement('div', this.setTextColor(color, { + staticClass: 'v-calendar-daily_head-weekday' + }), this.weekdayFormatter(day, this.shortWeekdays)); + }, + genHeadDayLabel: function genHeadDayLabel(day) { + return this.$createElement('div', { + staticClass: 'v-calendar-daily_head-day-label' + }, Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getSlot"])(this, 'day-label-header', day) || [this.genHeadDayButton(day)]); + }, + genHeadDayButton: function genHeadDayButton(day) { + var color = day.present ? this.color : 'transparent'; + return this.$createElement(_VBtn__WEBPACK_IMPORTED_MODULE_2__["default"], { + props: { + color: color, + fab: true, + depressed: true + }, + on: this.getMouseEventHandlers({ + 'click:date': { + event: 'click', + stop: true + }, + 'contextmenu:date': { + event: 'contextmenu', + stop: true, + prevent: true, + result: false + } + }, function (_e) { + return day; + }) + }, this.dayFormatter(day, false)); + }, + genBody: function genBody() { + return this.$createElement('div', { + staticClass: 'v-calendar-daily__body' + }, [this.genScrollArea()]); + }, + genScrollArea: function genScrollArea() { + return this.$createElement('div', { + ref: 'scrollArea', + staticClass: 'v-calendar-daily__scroll-area' + }, [this.genPane()]); + }, + genPane: function genPane() { + return this.$createElement('div', { + ref: 'pane', + staticClass: 'v-calendar-daily__pane', + style: { + height: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["convertToUnit"])(this.bodyHeight) + } + }, [this.genDayContainer()]); + }, + genDayContainer: function genDayContainer() { + return this.$createElement('div', { + staticClass: 'v-calendar-daily__day-container' + }, __spread([this.genBodyIntervals()], this.genDays())); + }, + genDays: function genDays() { + return this.days.map(this.genDay); + }, + genDay: function genDay(day, index) { + var _this = this; + + return this.$createElement('div', { + key: day.date, + staticClass: 'v-calendar-daily__day', + class: this.getRelativeClasses(day), + on: this.getDefaultMouseEventHandlers(':time', function (e) { + return _this.getSlotScope(_this.getTimestampAtEvent(e, day)); + }) + }, __spread(this.genDayIntervals(index), this.genDayBody(day))); + }, + genDayBody: function genDayBody(day) { + var _this = this; + + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getSlot"])(this, 'day-body', function () { + return _this.getSlotScope(day); + }) || []; + }, + genDayIntervals: function genDayIntervals(index) { + return this.intervals[index].map(this.genDayInterval); + }, + genDayInterval: function genDayInterval(interval) { + var _this = this; + + var height = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["convertToUnit"])(this.intervalHeight); + var styler = this.intervalStyle || this.intervalStyleDefault; + var data = { + key: interval.time, + staticClass: 'v-calendar-daily__day-interval', + style: __assign({ + height: height + }, styler(interval)) + }; + var children = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getSlot"])(this, 'interval', function () { + return _this.getSlotScope(interval); + }); + return this.$createElement('div', data, children); + }, + genBodyIntervals: function genBodyIntervals() { + var _this = this; + + var width = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["convertToUnit"])(this.intervalWidth); + var data = { + staticClass: 'v-calendar-daily__intervals-body', + style: { + width: width + }, + on: this.getDefaultMouseEventHandlers(':interval', function (e) { + return _this.getTimestampAtEvent(e, _this.parsedStart); + }) + }; + return this.$createElement('div', data, this.genIntervalLabels()); + }, + genIntervalLabels: function genIntervalLabels() { + if (!this.intervals.length) return null; + return this.intervals[0].map(this.genIntervalLabel); + }, + genIntervalLabel: function genIntervalLabel(interval) { + var height = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["convertToUnit"])(this.intervalHeight); + var short = this.shortIntervals; + var shower = this.showIntervalLabel || this.showIntervalLabelDefault; + var show = shower(interval); + var label = show ? this.intervalFormatter(interval, short) : undefined; + return this.$createElement('div', { + key: interval.time, + staticClass: 'v-calendar-daily__interval', + style: { + height: height + } + }, [this.$createElement('div', { + staticClass: 'v-calendar-daily__interval-text' + }, label)]); + } + }, + render: function render(h) { + return h('div', { + class: this.classes, + on: { + dragstart: function dragstart(e) { + e.preventDefault(); + } + }, + directives: [{ + modifiers: { + quiet: true + }, + name: 'resize', + value: this.onResize + }] + }, [!this.hideHeader ? this.genHead() : '', this.genBody()]); + } +})); + +/***/ }), + +/***/ "./src/components/VCalendar/VCalendarMonthly.ts": +/*!******************************************************!*\ + !*** ./src/components/VCalendar/VCalendarMonthly.ts ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VCalendarWeekly_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VCalendarWeekly.sass */ "./src/components/VCalendar/VCalendarWeekly.sass"); +/* harmony import */ var _VCalendarWeekly_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VCalendarWeekly_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VCalendarWeekly__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VCalendarWeekly */ "./src/components/VCalendar/VCalendarWeekly.ts"); +/* harmony import */ var _util_timestamp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/timestamp */ "./src/components/VCalendar/util/timestamp.ts"); +// Styles + // Mixins + + // Util + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (_VCalendarWeekly__WEBPACK_IMPORTED_MODULE_1__["default"].extend({ + name: 'v-calendar-monthly', + computed: { + staticClass: function staticClass() { + return 'v-calendar-monthly v-calendar-weekly'; + }, + parsedStart: function parsedStart() { + return Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["getStartOfMonth"])(Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["parseTimestamp"])(this.start, true)); + }, + parsedEnd: function parsedEnd() { + return Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["getEndOfMonth"])(Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["parseTimestamp"])(this.end, true)); + } + } +})); + +/***/ }), + +/***/ "./src/components/VCalendar/VCalendarWeekly.sass": +/*!*******************************************************!*\ + !*** ./src/components/VCalendar/VCalendarWeekly.sass ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VCalendar/VCalendarWeekly.ts": +/*!*****************************************************!*\ + !*** ./src/components/VCalendar/VCalendarWeekly.ts ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VCalendarWeekly_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VCalendarWeekly.sass */ "./src/components/VCalendar/VCalendarWeekly.sass"); +/* harmony import */ var _VCalendarWeekly_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VCalendarWeekly_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VBtn__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VBtn */ "./src/components/VBtn/index.ts"); +/* harmony import */ var _mixins_calendar_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mixins/calendar-base */ "./src/components/VCalendar/mixins/calendar-base.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_dateTimeUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/dateTimeUtils */ "./src/util/dateTimeUtils.ts"); +/* harmony import */ var _util_props__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./util/props */ "./src/components/VCalendar/util/props.ts"); +/* harmony import */ var _util_timestamp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./util/timestamp */ "./src/components/VCalendar/util/timestamp.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + +var __spread = undefined && undefined.__spread || function () { + for (var ar = [], i = 0; i < arguments.length; i++) { + ar = ar.concat(__read(arguments[i])); + } + + return ar; +}; // Styles + + + // Components + + // Mixins + + // Util + + + + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (_mixins_calendar_base__WEBPACK_IMPORTED_MODULE_2__["default"].extend({ + name: 'v-calendar-weekly', + props: _util_props__WEBPACK_IMPORTED_MODULE_5__["default"].weeks, + computed: { + staticClass: function staticClass() { + return 'v-calendar-weekly'; + }, + classes: function classes() { + return this.themeClasses; + }, + parsedMinWeeks: function parsedMinWeeks() { + return parseInt(this.minWeeks); + }, + days: function days() { + var minDays = this.parsedMinWeeks * this.parsedWeekdays.length; + var start = this.getStartOfWeek(this.parsedStart); + var end = this.getEndOfWeek(this.parsedEnd); + return Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_6__["createDayList"])(start, end, this.times.today, this.weekdaySkips, Number.MAX_SAFE_INTEGER, minDays); + }, + todayWeek: function todayWeek() { + var today = this.times.today; + var start = this.getStartOfWeek(today); + var end = this.getEndOfWeek(today); + return Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_6__["createDayList"])(start, end, today, this.weekdaySkips, this.parsedWeekdays.length, this.parsedWeekdays.length); + }, + monthFormatter: function monthFormatter() { + if (this.monthFormat) { + return this.monthFormat; + } + + var longOptions = { + timeZone: 'UTC', + month: 'long' + }; + var shortOptions = { + timeZone: 'UTC', + month: 'short' + }; + return Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_6__["createNativeLocaleFormatter"])(this.currentLocale, function (_tms, short) { + return short ? shortOptions : longOptions; + }); + } + }, + methods: { + isOutside: function isOutside(day) { + var dayIdentifier = Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_6__["getDayIdentifier"])(day); + return dayIdentifier < Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_6__["getDayIdentifier"])(this.parsedStart) || dayIdentifier > Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_6__["getDayIdentifier"])(this.parsedEnd); + }, + genHead: function genHead() { + return this.$createElement('div', { + staticClass: 'v-calendar-weekly__head' + }, this.genHeadDays()); + }, + genHeadDays: function genHeadDays() { + var header = this.todayWeek.map(this.genHeadDay); + + if (this.showWeek) { + header.unshift(this.$createElement('div', { + staticClass: 'v-calendar-weekly__head-weeknumber' + })); + } + + return header; + }, + genHeadDay: function genHeadDay(day, index) { + var outside = this.isOutside(this.days[index]); + var color = day.present ? this.color : undefined; + return this.$createElement('div', this.setTextColor(color, { + key: day.date, + staticClass: 'v-calendar-weekly__head-weekday', + class: this.getRelativeClasses(day, outside) + }), this.weekdayFormatter(day, this.shortWeekdays)); + }, + genWeeks: function genWeeks() { + var days = this.days; + var weekDays = this.parsedWeekdays.length; + var weeks = []; + + for (var i = 0; i < days.length; i += weekDays) { + weeks.push(this.genWeek(days.slice(i, i + weekDays), this.getWeekNumber(days[i]))); + } + + return weeks; + }, + genWeek: function genWeek(week, weekNumber) { + var _this = this; + + var weekNodes = week.map(function (day, index) { + return _this.genDay(day, index, week); + }); + + if (this.showWeek) { + weekNodes.unshift(this.genWeekNumber(weekNumber)); + } + + return this.$createElement('div', { + key: week[0].date, + staticClass: 'v-calendar-weekly__week' + }, weekNodes); + }, + getWeekNumber: function getWeekNumber(determineDay) { + return Object(_util_dateTimeUtils__WEBPACK_IMPORTED_MODULE_4__["weekNumber"])(determineDay.year, determineDay.month - 1, determineDay.day, this.parsedWeekdays[0], parseInt(this.localeFirstDayOfYear)); + }, + genWeekNumber: function genWeekNumber(weekNumber) { + return this.$createElement('div', { + staticClass: 'v-calendar-weekly__weeknumber' + }, [this.$createElement('small', String(weekNumber))]); + }, + genDay: function genDay(day, index, week) { + var outside = this.isOutside(day); + return this.$createElement('div', { + key: day.date, + staticClass: 'v-calendar-weekly__day', + class: this.getRelativeClasses(day, outside), + on: this.getDefaultMouseEventHandlers(':day', function (_e) { + return day; + }) + }, __spread([this.genDayLabel(day)], Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["getSlot"])(this, 'day', function () { + return __assign({ + outside: outside, + index: index, + week: week + }, day); + }) || [])); + }, + genDayLabel: function genDayLabel(day) { + return this.$createElement('div', { + staticClass: 'v-calendar-weekly__day-label' + }, Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["getSlot"])(this, 'day-label', day) || [this.genDayLabelButton(day)]); + }, + genDayLabelButton: function genDayLabelButton(day) { + var color = day.present ? this.color : 'transparent'; + var hasMonth = day.day === 1 && this.showMonthOnFirst; + return this.$createElement(_VBtn__WEBPACK_IMPORTED_MODULE_1__["default"], { + props: { + color: color, + fab: true, + depressed: true, + small: true + }, + on: this.getMouseEventHandlers({ + 'click:date': { + event: 'click', + stop: true + }, + 'contextmenu:date': { + event: 'contextmenu', + stop: true, + prevent: true, + result: false + } + }, function (_e) { + return day; + }) + }, hasMonth ? this.monthFormatter(day, this.shortMonths) + ' ' + this.dayFormatter(day, false) : this.dayFormatter(day, false)); + }, + genDayMonth: function genDayMonth(day) { + var color = day.present ? this.color : undefined; + return this.$createElement('div', this.setTextColor(color, { + staticClass: 'v-calendar-weekly__day-month' + }), Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["getSlot"])(this, 'day-month', day) || this.monthFormatter(day, this.shortMonths)); + } + }, + render: function render(h) { + return h('div', { + staticClass: this.staticClass, + class: this.classes, + on: { + dragstart: function dragstart(e) { + e.preventDefault(); + } + } + }, __spread([!this.hideHeader ? this.genHead() : ''], this.genWeeks())); + } +})); + +/***/ }), + +/***/ "./src/components/VCalendar/index.ts": +/*!*******************************************!*\ + !*** ./src/components/VCalendar/index.ts ***! + \*******************************************/ +/*! exports provided: VCalendar, VCalendarCategory, VCalendarDaily, VCalendarWeekly, VCalendarMonthly, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VCalendar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VCalendar */ "./src/components/VCalendar/VCalendar.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCalendar", function() { return _VCalendar__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + +/* harmony import */ var _VCalendarDaily__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VCalendarDaily */ "./src/components/VCalendar/VCalendarDaily.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCalendarDaily", function() { return _VCalendarDaily__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + +/* harmony import */ var _VCalendarWeekly__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./VCalendarWeekly */ "./src/components/VCalendar/VCalendarWeekly.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCalendarWeekly", function() { return _VCalendarWeekly__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + +/* harmony import */ var _VCalendarMonthly__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./VCalendarMonthly */ "./src/components/VCalendar/VCalendarMonthly.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCalendarMonthly", function() { return _VCalendarMonthly__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + +/* harmony import */ var _VCalendarCategory__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./VCalendarCategory */ "./src/components/VCalendar/VCalendarCategory.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCalendarCategory", function() { return _VCalendarCategory__WEBPACK_IMPORTED_MODULE_4__["default"]; }); + + + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + $_vuetify_subcomponents: { + VCalendar: _VCalendar__WEBPACK_IMPORTED_MODULE_0__["default"], + VCalendarCategory: _VCalendarCategory__WEBPACK_IMPORTED_MODULE_4__["default"], + VCalendarDaily: _VCalendarDaily__WEBPACK_IMPORTED_MODULE_1__["default"], + VCalendarWeekly: _VCalendarWeekly__WEBPACK_IMPORTED_MODULE_2__["default"], + VCalendarMonthly: _VCalendarMonthly__WEBPACK_IMPORTED_MODULE_3__["default"] + } +}); + +/***/ }), + +/***/ "./src/components/VCalendar/mixins/calendar-base.ts": +/*!**********************************************************!*\ + !*** ./src/components/VCalendar/mixins/calendar-base.ts ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_localable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../mixins/localable */ "./src/mixins/localable/index.ts"); +/* harmony import */ var _mouse__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mouse */ "./src/components/VCalendar/mixins/mouse.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _times__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./times */ "./src/components/VCalendar/mixins/times.ts"); +/* harmony import */ var _directives_resize__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../directives/resize */ "./src/directives/resize/index.ts"); +/* harmony import */ var _util_props__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../util/props */ "./src/components/VCalendar/util/props.ts"); +/* harmony import */ var _util_timestamp__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../util/timestamp */ "./src/components/VCalendar/util/timestamp.ts"); +// Mixins + + + + + + // Directives + + // Util + + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_0__["default"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_1__["default"], _mixins_localable__WEBPACK_IMPORTED_MODULE_2__["default"], _mouse__WEBPACK_IMPORTED_MODULE_3__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_4__["default"], _times__WEBPACK_IMPORTED_MODULE_5__["default"] +/* @vue/component */ +).extend({ + name: 'calendar-base', + directives: { + Resize: _directives_resize__WEBPACK_IMPORTED_MODULE_6__["default"] + }, + props: _util_props__WEBPACK_IMPORTED_MODULE_7__["default"].base, + computed: { + parsedWeekdays: function parsedWeekdays() { + return Array.isArray(this.weekdays) ? this.weekdays : (this.weekdays || '').split(',').map(function (x) { + return parseInt(x, 10); + }); + }, + weekdaySkips: function weekdaySkips() { + return Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_8__["getWeekdaySkips"])(this.parsedWeekdays); + }, + weekdaySkipsReverse: function weekdaySkipsReverse() { + var reversed = this.weekdaySkips.slice(); + reversed.reverse(); + return reversed; + }, + parsedStart: function parsedStart() { + return Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_8__["parseTimestamp"])(this.start, true); + }, + parsedEnd: function parsedEnd() { + var start = this.parsedStart; + var end = this.end ? Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_8__["parseTimestamp"])(this.end) || start : start; + return Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_8__["getTimestampIdentifier"])(end) < Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_8__["getTimestampIdentifier"])(start) ? start : end; + }, + days: function days() { + return Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_8__["createDayList"])(this.parsedStart, this.parsedEnd, this.times.today, this.weekdaySkips); + }, + dayFormatter: function dayFormatter() { + if (this.dayFormat) { + return this.dayFormat; + } + + var options = { + timeZone: 'UTC', + day: 'numeric' + }; + return Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_8__["createNativeLocaleFormatter"])(this.currentLocale, function (_tms, _short) { + return options; + }); + }, + weekdayFormatter: function weekdayFormatter() { + if (this.weekdayFormat) { + return this.weekdayFormat; + } + + var longOptions = { + timeZone: 'UTC', + weekday: 'long' + }; + var shortOptions = { + timeZone: 'UTC', + weekday: 'short' + }; + return Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_8__["createNativeLocaleFormatter"])(this.currentLocale, function (_tms, short) { + return short ? shortOptions : longOptions; + }); + } + }, + methods: { + getRelativeClasses: function getRelativeClasses(timestamp, outside) { + if (outside === void 0) { + outside = false; + } + + return { + 'v-present': timestamp.present, + 'v-past': timestamp.past, + 'v-future': timestamp.future, + 'v-outside': outside + }; + }, + getStartOfWeek: function getStartOfWeek(timestamp) { + return Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_8__["getStartOfWeek"])(timestamp, this.parsedWeekdays, this.times.today); + }, + getEndOfWeek: function getEndOfWeek(timestamp) { + return Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_8__["getEndOfWeek"])(timestamp, this.parsedWeekdays, this.times.today); + }, + getFormatter: function getFormatter(options) { + return Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_8__["createNativeLocaleFormatter"])(this.locale, function (_tms, _short) { + return options; + }); + } + } +})); + +/***/ }), + +/***/ "./src/components/VCalendar/mixins/calendar-with-events.sass": +/*!*******************************************************************!*\ + !*** ./src/components/VCalendar/mixins/calendar-with-events.sass ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VCalendar/mixins/calendar-with-events.ts": +/*!*****************************************************************!*\ + !*** ./src/components/VCalendar/mixins/calendar-with-events.ts ***! + \*****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _calendar_with_events_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./calendar-with-events.sass */ "./src/components/VCalendar/mixins/calendar-with-events.sass"); +/* harmony import */ var _calendar_with_events_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_calendar_with_events_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _directives_ripple__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../directives/ripple */ "./src/directives/ripple/index.ts"); +/* harmony import */ var _calendar_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./calendar-base */ "./src/components/VCalendar/mixins/calendar-base.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_props__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/props */ "./src/components/VCalendar/util/props.ts"); +/* harmony import */ var _modes__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../modes */ "./src/components/VCalendar/modes/index.ts"); +/* harmony import */ var _util_timestamp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../util/timestamp */ "./src/components/VCalendar/util/timestamp.ts"); +/* harmony import */ var _util_events__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../util/events */ "./src/components/VCalendar/util/events.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Directives + + // Mixins + + // Helpers + + // Util + + + + + +var WIDTH_FULL = 100; +var WIDTH_START = 95; +var MINUTES_IN_DAY = 1440; +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (_calendar_base__WEBPACK_IMPORTED_MODULE_2__["default"].extend({ + name: 'calendar-with-events', + directives: { + ripple: _directives_ripple__WEBPACK_IMPORTED_MODULE_1__["default"] + }, + props: _util_props__WEBPACK_IMPORTED_MODULE_4__["default"].events, + computed: { + noEvents: function noEvents() { + return this.events.length === 0; + }, + parsedEvents: function parsedEvents() { + return this.events.map(this.parseEvent); + }, + parsedEventOverlapThreshold: function parsedEventOverlapThreshold() { + return parseInt(this.eventOverlapThreshold); + }, + eventColorFunction: function eventColorFunction() { + var _this = this; + + return typeof this.eventColor === 'function' ? this.eventColor : function () { + return _this.eventColor; + }; + }, + eventTimedFunction: function eventTimedFunction() { + var _this = this; + + return typeof this.eventTimed === 'function' ? this.eventTimed : function (event) { + return !!event[_this.eventTimed]; + }; + }, + eventCategoryFunction: function eventCategoryFunction() { + var _this = this; + + return typeof this.eventCategory === 'function' ? this.eventCategory : function (event) { + return event[_this.eventCategory]; + }; + }, + eventTextColorFunction: function eventTextColorFunction() { + var _this = this; + + return typeof this.eventTextColor === 'function' ? this.eventTextColor : function () { + return _this.eventTextColor; + }; + }, + eventNameFunction: function eventNameFunction() { + var _this = this; + + return typeof this.eventName === 'function' ? this.eventName : function (event, timedEvent) { + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["escapeHTML"])(event.input[_this.eventName]); + }; + }, + eventModeFunction: function eventModeFunction() { + return typeof this.eventOverlapMode === 'function' ? this.eventOverlapMode : _modes__WEBPACK_IMPORTED_MODULE_5__["CalendarEventOverlapModes"][this.eventOverlapMode]; + }, + eventWeekdays: function eventWeekdays() { + return this.parsedWeekdays; + }, + categoryMode: function categoryMode() { + return false; + } + }, + methods: { + parseEvent: function parseEvent(input, index) { + if (index === void 0) { + index = 0; + } + + return Object(_util_events__WEBPACK_IMPORTED_MODULE_7__["parseEvent"])(input, index, this.eventStart, this.eventEnd, this.eventTimedFunction(input), this.categoryMode ? this.eventCategoryFunction(input) : false); + }, + formatTime: function formatTime(withTime, ampm) { + var formatter = this.getFormatter({ + timeZone: 'UTC', + hour: 'numeric', + minute: withTime.minute > 0 ? 'numeric' : undefined + }); + return formatter(withTime, true); + }, + updateEventVisibility: function updateEventVisibility() { + if (this.noEvents || !this.eventMore) { + return; + } + + var eventHeight = this.eventHeight; + var eventsMap = this.getEventsMap(); + + for (var date in eventsMap) { + var _a = eventsMap[date], + parent = _a.parent, + events = _a.events, + more = _a.more; + + if (!more) { + break; + } + + var parentBounds = parent.getBoundingClientRect(); + var last = events.length - 1; + var hide = false; + var hidden = 0; + + for (var i = 0; i <= last; i++) { + if (!hide) { + var eventBounds = events[i].getBoundingClientRect(); + hide = i === last ? eventBounds.bottom > parentBounds.bottom : eventBounds.bottom + eventHeight > parentBounds.bottom; + } + + if (hide) { + events[i].style.display = 'none'; + hidden++; + } + } + + if (hide) { + more.style.display = ''; + more.innerHTML = this.$vuetify.lang.t(this.eventMoreText, hidden); + } else { + more.style.display = 'none'; + } + } + }, + getEventsMap: function getEventsMap() { + var eventsMap = {}; + var elements = this.$refs.events; + + if (!elements || !elements.forEach) { + return eventsMap; + } + + elements.forEach(function (el) { + var date = el.getAttribute('data-date'); + + if (el.parentElement && date) { + if (!(date in eventsMap)) { + eventsMap[date] = { + parent: el.parentElement, + more: null, + events: [] + }; + } + + if (el.getAttribute('data-more')) { + eventsMap[date].more = el; + } else { + eventsMap[date].events.push(el); + el.style.display = ''; + } + } + }); + return eventsMap; + }, + genDayEvent: function genDayEvent(_a, day) { + var event = _a.event; + var eventHeight = this.eventHeight; + var eventMarginBottom = this.eventMarginBottom; + var dayIdentifier = Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_6__["getDayIdentifier"])(day); + var week = day.week; + var start = dayIdentifier === event.startIdentifier; + var end = dayIdentifier === event.endIdentifier; + var width = WIDTH_START; + + if (!this.categoryMode) { + for (var i = day.index + 1; i < week.length; i++) { + var weekdayIdentifier = Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_6__["getDayIdentifier"])(week[i]); + + if (event.endIdentifier >= weekdayIdentifier) { + width += WIDTH_FULL; + end = end || weekdayIdentifier === event.endIdentifier; + } else { + end = true; + break; + } + } + } + + var scope = { + eventParsed: event, + day: day, + start: start, + end: end, + timed: false + }; + return this.genEvent(event, scope, false, { + staticClass: 'v-event', + class: { + 'v-event-start': start, + 'v-event-end': end + }, + style: { + height: eventHeight + "px", + width: width + "%", + 'margin-bottom': eventMarginBottom + "px" + }, + attrs: { + 'data-date': day.date + }, + key: event.index, + ref: 'events', + refInFor: true + }); + }, + genTimedEvent: function genTimedEvent(_a, day) { + var event = _a.event, + left = _a.left, + width = _a.width; + + if (day.timeDelta(event.end) <= 0 || day.timeDelta(event.start) >= 1) { + return false; + } + + var dayIdentifier = Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_6__["getDayIdentifier"])(day); + var start = event.startIdentifier >= dayIdentifier; + var end = event.endIdentifier > dayIdentifier; + var top = start ? day.timeToY(event.start) : 0; + var bottom = end ? day.timeToY(MINUTES_IN_DAY) : day.timeToY(event.end); + var height = Math.max(this.eventHeight, bottom - top); + var scope = { + eventParsed: event, + day: day, + start: start, + end: end, + timed: true + }; + return this.genEvent(event, scope, true, { + staticClass: 'v-event-timed', + style: { + top: top + "px", + height: height + "px", + left: left + "%", + width: width + "%" + } + }); + }, + genEvent: function genEvent(event, scopeInput, timedEvent, data) { + var _this = this; + + var _a; + + var slot = this.$scopedSlots.event; + var text = this.eventTextColorFunction(event.input); + var background = this.eventColorFunction(event.input); + var overlapsNoon = event.start.hour < 12 && event.end.hour >= 12; + var singline = Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_6__["diffMinutes"])(event.start, event.end) <= this.parsedEventOverlapThreshold; + var formatTime = this.formatTime; + + var timeSummary = function timeSummary() { + return formatTime(event.start, overlapsNoon) + ' - ' + formatTime(event.end, true); + }; + + var eventSummary = function eventSummary() { + var name = _this.eventNameFunction(event, timedEvent); + + if (event.start.hasTime) { + if (timedEvent) { + var time = timeSummary(); + var delimiter = singline ? ', ' : '<br>'; + return "<strong>" + name + "</strong>" + delimiter + time; + } else { + var time = formatTime(event.start, true); + return "<strong>" + time + "</strong> " + name; + } + } + + return name; + }; + + var scope = __assign(__assign({}, scopeInput), { + event: event.input, + outside: scopeInput.day.outside, + singline: singline, + overlapsNoon: overlapsNoon, + formatTime: formatTime, + timeSummary: timeSummary, + eventSummary: eventSummary + }); + + return this.$createElement('div', this.setTextColor(text, this.setBackgroundColor(background, __assign({ + on: this.getDefaultMouseEventHandlers(':event', function (nativeEvent) { + return __assign(__assign({}, scope), { + nativeEvent: nativeEvent + }); + }), + directives: [{ + name: 'ripple', + value: (_a = this.eventRipple) !== null && _a !== void 0 ? _a : true + }] + }, data))), slot ? slot(scope) : [this.genName(eventSummary)]); + }, + genName: function genName(eventSummary) { + return this.$createElement('div', { + staticClass: 'pl-1', + domProps: { + innerHTML: eventSummary() + } + }); + }, + genPlaceholder: function genPlaceholder(day) { + var height = this.eventHeight + this.eventMarginBottom; + return this.$createElement('div', { + style: { + height: height + "px" + }, + attrs: { + 'data-date': day.date + }, + ref: 'events', + refInFor: true + }); + }, + genMore: function genMore(day) { + var _this = this; + + var _a; + + var eventHeight = this.eventHeight; + var eventMarginBottom = this.eventMarginBottom; + return this.$createElement('div', { + staticClass: 'v-event-more pl-1', + class: { + 'v-outside': day.outside + }, + attrs: { + 'data-date': day.date, + 'data-more': 1 + }, + directives: [{ + name: 'ripple', + value: (_a = this.eventRipple) !== null && _a !== void 0 ? _a : true + }], + on: { + click: function click() { + return _this.$emit('click:more', day); + } + }, + style: { + display: 'none', + height: eventHeight + "px", + 'margin-bottom': eventMarginBottom + "px" + }, + ref: 'events', + refInFor: true + }); + }, + getVisibleEvents: function getVisibleEvents() { + var start = Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_6__["getDayIdentifier"])(this.days[0]); + var end = Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_6__["getDayIdentifier"])(this.days[this.days.length - 1]); + return this.parsedEvents.filter(function (event) { + return Object(_util_events__WEBPACK_IMPORTED_MODULE_7__["isEventOverlapping"])(event, start, end); + }); + }, + isEventForCategory: function isEventForCategory(event, category) { + return !this.categoryMode || category === event.category || typeof event.category !== 'string' && category === null; + }, + getEventsForDay: function getEventsForDay(day) { + var identifier = Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_6__["getDayIdentifier"])(day); + var firstWeekday = this.eventWeekdays[0]; + return this.parsedEvents.filter(function (event) { + return Object(_util_events__WEBPACK_IMPORTED_MODULE_7__["isEventStart"])(event, day, identifier, firstWeekday); + }); + }, + getEventsForDayAll: function getEventsForDayAll(day) { + var _this = this; + + var identifier = Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_6__["getDayIdentifier"])(day); + var firstWeekday = this.eventWeekdays[0]; + return this.parsedEvents.filter(function (event) { + return event.allDay && (_this.categoryMode ? Object(_util_events__WEBPACK_IMPORTED_MODULE_7__["isEventOn"])(event, identifier) : Object(_util_events__WEBPACK_IMPORTED_MODULE_7__["isEventStart"])(event, day, identifier, firstWeekday)) && _this.isEventForCategory(event, day.category); + }); + }, + getEventsForDayTimed: function getEventsForDayTimed(day) { + var _this = this; + + var identifier = Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_6__["getDayIdentifier"])(day); + return this.parsedEvents.filter(function (event) { + return !event.allDay && Object(_util_events__WEBPACK_IMPORTED_MODULE_7__["isEventOn"])(event, identifier) && _this.isEventForCategory(event, day.category); + }); + }, + getScopedSlots: function getScopedSlots() { + var _this = this; + + if (this.noEvents) { + return __assign({}, this.$scopedSlots); + } + + var mode = this.eventModeFunction(this.parsedEvents, this.eventWeekdays[0], this.parsedEventOverlapThreshold); + + var isNode = function isNode(input) { + return !!input; + }; + + var getSlotChildren = function getSlotChildren(day, getter, mapper, timed) { + var events = getter(day); + var visuals = mode(day, events, timed, _this.categoryMode); + + if (timed) { + return visuals.map(function (visual) { + return mapper(visual, day); + }).filter(isNode); + } + + var children = []; + visuals.forEach(function (visual, index) { + while (children.length < visual.column) { + children.push(_this.genPlaceholder(day)); + } + + var mapped = mapper(visual, day); + + if (mapped) { + children.push(mapped); + } + }); + return children; + }; + + var slots = this.$scopedSlots; + var slotDay = slots.day; + var slotDayHeader = slots['day-header']; + var slotDayBody = slots['day-body']; + return __assign(__assign({}, slots), { + day: function day(_day) { + var children = getSlotChildren(_day, _this.getEventsForDay, _this.genDayEvent, false); + + if (children && children.length > 0 && _this.eventMore) { + children.push(_this.genMore(_day)); + } + + if (slotDay) { + var slot = slotDay(_day); + + if (slot) { + children = children ? children.concat(slot) : slot; + } + } + + return children; + }, + 'day-header': function dayHeader(day) { + var children = getSlotChildren(day, _this.getEventsForDayAll, _this.genDayEvent, false); + + if (slotDayHeader) { + var slot = slotDayHeader(day); + + if (slot) { + children = children ? children.concat(slot) : slot; + } + } + + return children; + }, + 'day-body': function dayBody(day) { + var events = getSlotChildren(day, _this.getEventsForDayTimed, _this.genTimedEvent, true); + var children = [_this.$createElement('div', { + staticClass: 'v-event-timed-container' + }, events)]; + + if (slotDayBody) { + var slot = slotDayBody(day); + + if (slot) { + children = children.concat(slot); + } + } + + return children; + } + }); + } + } +})); + +/***/ }), + +/***/ "./src/components/VCalendar/mixins/calendar-with-intervals.ts": +/*!********************************************************************!*\ + !*** ./src/components/VCalendar/mixins/calendar-with-intervals.ts ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _calendar_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./calendar-base */ "./src/components/VCalendar/mixins/calendar-base.ts"); +/* harmony import */ var _util_props__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/props */ "./src/components/VCalendar/util/props.ts"); +/* harmony import */ var _util_timestamp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/timestamp */ "./src/components/VCalendar/util/timestamp.ts"); +// Mixins + // Util + + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (_calendar_base__WEBPACK_IMPORTED_MODULE_0__["default"].extend({ + name: 'calendar-with-intervals', + props: _util_props__WEBPACK_IMPORTED_MODULE_1__["default"].intervals, + computed: { + parsedFirstInterval: function parsedFirstInterval() { + return parseInt(this.firstInterval); + }, + parsedIntervalMinutes: function parsedIntervalMinutes() { + return parseInt(this.intervalMinutes); + }, + parsedIntervalCount: function parsedIntervalCount() { + return parseInt(this.intervalCount); + }, + parsedIntervalHeight: function parsedIntervalHeight() { + return parseFloat(this.intervalHeight); + }, + parsedFirstTime: function parsedFirstTime() { + return Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["parseTime"])(this.firstTime); + }, + firstMinute: function firstMinute() { + var time = this.parsedFirstTime; + return time !== false && time >= 0 && time <= _util_timestamp__WEBPACK_IMPORTED_MODULE_2__["MINUTES_IN_DAY"] ? time : this.parsedFirstInterval * this.parsedIntervalMinutes; + }, + bodyHeight: function bodyHeight() { + return this.parsedIntervalCount * this.parsedIntervalHeight; + }, + days: function days() { + return Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["createDayList"])(this.parsedStart, this.parsedEnd, this.times.today, this.weekdaySkips, this.maxDays); + }, + intervals: function intervals() { + var days = this.days; + var first = this.firstMinute; + var minutes = this.parsedIntervalMinutes; + var count = this.parsedIntervalCount; + var now = this.times.now; + return days.map(function (d) { + return Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["createIntervalList"])(d, first, minutes, count, now); + }); + }, + intervalFormatter: function intervalFormatter() { + if (this.intervalFormat) { + return this.intervalFormat; + } + + var longOptions = { + timeZone: 'UTC', + hour: '2-digit', + minute: '2-digit' + }; + var shortOptions = { + timeZone: 'UTC', + hour: 'numeric', + minute: '2-digit' + }; + var shortHourOptions = { + timeZone: 'UTC', + hour: 'numeric' + }; + return Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["createNativeLocaleFormatter"])(this.currentLocale, function (tms, short) { + return short ? tms.minute === 0 ? shortHourOptions : shortOptions : longOptions; + }); + } + }, + methods: { + showIntervalLabelDefault: function showIntervalLabelDefault(interval) { + var first = this.intervals[0][0]; + var isFirst = first.hour === interval.hour && first.minute === interval.minute; + return !isFirst; + }, + intervalStyleDefault: function intervalStyleDefault(_interval) { + return undefined; + }, + getTimestampAtEvent: function getTimestampAtEvent(e, day) { + var timestamp = Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["copyTimestamp"])(day); + var bounds = e.currentTarget.getBoundingClientRect(); + var baseMinutes = this.firstMinute; + var touchEvent = e; + var mouseEvent = e; + var touches = touchEvent.changedTouches || touchEvent.touches; + var clientY = touches && touches[0] ? touches[0].clientY : mouseEvent.clientY; + var addIntervals = (clientY - bounds.top) / this.parsedIntervalHeight; + var addMinutes = Math.floor(addIntervals * this.parsedIntervalMinutes); + var minutes = baseMinutes + addMinutes; + return Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["updateMinutes"])(timestamp, minutes, this.times.now); + }, + getSlotScope: function getSlotScope(timestamp) { + var scope = Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["copyTimestamp"])(timestamp); + scope.timeToY = this.timeToY; + scope.timeDelta = this.timeDelta; + scope.minutesToPixels = this.minutesToPixels; + scope.week = this.days; + return scope; + }, + scrollToTime: function scrollToTime(time) { + var y = this.timeToY(time); + var pane = this.$refs.scrollArea; + + if (y === false || !pane) { + return false; + } + + pane.scrollTop = y; + return true; + }, + minutesToPixels: function minutesToPixels(minutes) { + return minutes / this.parsedIntervalMinutes * this.parsedIntervalHeight; + }, + timeToY: function timeToY(time, clamp) { + if (clamp === void 0) { + clamp = true; + } + + var y = this.timeDelta(time); + + if (y !== false) { + y *= this.bodyHeight; + + if (clamp) { + if (y < 0) { + y = 0; + } + + if (y > this.bodyHeight) { + y = this.bodyHeight; + } + } + } + + return y; + }, + timeDelta: function timeDelta(time) { + var minutes = Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_2__["parseTime"])(time); + + if (minutes === false) { + return false; + } + + var min = this.firstMinute; + var gap = this.parsedIntervalCount * this.parsedIntervalMinutes; + return (minutes - min) / gap; + } + } +})); + +/***/ }), + +/***/ "./src/components/VCalendar/mixins/mouse.ts": +/*!**************************************************!*\ + !*** ./src/components/VCalendar/mixins/mouse.ts ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: 'mouse', + methods: { + getDefaultMouseEventHandlers: function getDefaultMouseEventHandlers(suffix, getEvent) { + var _a; + + return this.getMouseEventHandlers((_a = {}, _a['click' + suffix] = { + event: 'click' + }, _a['contextmenu' + suffix] = { + event: 'contextmenu', + prevent: true, + result: false + }, _a['mousedown' + suffix] = { + event: 'mousedown' + }, _a['mousemove' + suffix] = { + event: 'mousemove' + }, _a['mouseup' + suffix] = { + event: 'mouseup' + }, _a['mouseenter' + suffix] = { + event: 'mouseenter' + }, _a['mouseleave' + suffix] = { + event: 'mouseleave' + }, _a['touchstart' + suffix] = { + event: 'touchstart' + }, _a['touchmove' + suffix] = { + event: 'touchmove' + }, _a['touchend' + suffix] = { + event: 'touchend' + }, _a), getEvent); + }, + getMouseEventHandlers: function getMouseEventHandlers(events, getEvent) { + var _this = this; + + var on = {}; + + var _loop_1 = function _loop_1(event) { + var eventOptions = events[event]; + if (!this_1.$listeners[event]) return "continue"; // TODO somehow pull in modifiers + + var prefix = eventOptions.passive ? '&' : (eventOptions.once ? '~' : '') + (eventOptions.capture ? '!' : ''); + var key = prefix + eventOptions.event; + + var handler = function handler(e) { + var mouseEvent = e; + + if (eventOptions.button === undefined || mouseEvent.buttons > 0 && mouseEvent.button === eventOptions.button) { + if (eventOptions.prevent) { + e.preventDefault(); + } + + if (eventOptions.stop) { + e.stopPropagation(); + } + + _this.$emit(event, getEvent(e)); + } + + return eventOptions.result; + }; + + if (key in on) { + /* istanbul ignore next */ + if (Array.isArray(on[key])) { + on[key].push(handler); + } else { + on[key] = [on[key], handler]; + } + } else { + on[key] = handler; + } + }; + + var this_1 = this; + + for (var event in events) { + _loop_1(event); + } + + return on; + } + } +})); + +/***/ }), + +/***/ "./src/components/VCalendar/mixins/times.ts": +/*!**************************************************!*\ + !*** ./src/components/VCalendar/mixins/times.ts ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _util_timestamp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/timestamp */ "./src/components/VCalendar/util/timestamp.ts"); + + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: 'times', + props: { + now: { + type: String, + validator: _util_timestamp__WEBPACK_IMPORTED_MODULE_1__["validateTimestamp"] + } + }, + data: function data() { + return { + times: { + now: Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_1__["parseTimestamp"])('0000-00-00 00:00', true), + today: Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_1__["parseTimestamp"])('0000-00-00', true) + } + }; + }, + computed: { + parsedNow: function parsedNow() { + return this.now ? Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_1__["parseTimestamp"])(this.now, true) : null; + } + }, + watch: { + parsedNow: 'updateTimes' + }, + created: function created() { + this.updateTimes(); + this.setPresent(); + }, + methods: { + setPresent: function setPresent() { + this.times.now.present = this.times.today.present = true; + this.times.now.past = this.times.today.past = false; + this.times.now.future = this.times.today.future = false; + }, + updateTimes: function updateTimes() { + var now = this.parsedNow || this.getNow(); + this.updateDay(now, this.times.now); + this.updateTime(now, this.times.now); + this.updateDay(now, this.times.today); + }, + getNow: function getNow() { + return Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_1__["parseDate"])(new Date()); + }, + updateDay: function updateDay(now, target) { + if (now.date !== target.date) { + target.year = now.year; + target.month = now.month; + target.day = now.day; + target.weekday = now.weekday; + target.date = now.date; + } + }, + updateTime: function updateTime(now, target) { + if (now.time !== target.time) { + target.hour = now.hour; + target.minute = now.minute; + target.time = now.time; + } + } + } +})); + +/***/ }), + +/***/ "./src/components/VCalendar/modes/column.ts": +/*!**************************************************!*\ + !*** ./src/components/VCalendar/modes/column.ts ***! + \**************************************************/ +/*! exports provided: column */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "column", function() { return column; }); +/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./common */ "./src/components/VCalendar/modes/common.ts"); + +var FULL_WIDTH = 100; +var column = function column(events, firstWeekday, overlapThreshold) { + var handler = Object(_common__WEBPACK_IMPORTED_MODULE_0__["getOverlapGroupHandler"])(firstWeekday); + return function (day, dayEvents, timed, reset) { + var visuals = handler.getVisuals(day, dayEvents, timed, reset); + + if (timed) { + visuals.forEach(function (visual) { + visual.left = visual.column * FULL_WIDTH / visual.columnCount; + visual.width = FULL_WIDTH / visual.columnCount; + }); + } + + return visuals; + }; +}; + +/***/ }), + +/***/ "./src/components/VCalendar/modes/common.ts": +/*!**************************************************!*\ + !*** ./src/components/VCalendar/modes/common.ts ***! + \**************************************************/ +/*! exports provided: getVisuals, hasOverlap, setColumnCount, getRange, getDayRange, getNormalizedRange, getOpenGroup, getOverlapGroupHandler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getVisuals", function() { return _getVisuals; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasOverlap", function() { return hasOverlap; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setColumnCount", function() { return setColumnCount; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getRange", function() { return getRange; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDayRange", function() { return getDayRange; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNormalizedRange", function() { return getNormalizedRange; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOpenGroup", function() { return getOpenGroup; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOverlapGroupHandler", function() { return getOverlapGroupHandler; }); +/* harmony import */ var _util_timestamp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/timestamp */ "./src/components/VCalendar/util/timestamp.ts"); +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + + +var MILLIS_IN_DAY = 86400000; + +function _getVisuals(events, minStart) { + if (minStart === void 0) { + minStart = 0; + } + + var visuals = events.map(function (event) { + return { + event: event, + columnCount: 0, + column: 0, + left: 0, + width: 100 + }; + }); + visuals.sort(function (a, b) { + return Math.max(minStart, a.event.startTimestampIdentifier) - Math.max(minStart, b.event.startTimestampIdentifier) || b.event.endTimestampIdentifier - a.event.endTimestampIdentifier; + }); + return visuals; +} + + +function hasOverlap(s0, e0, s1, e1, exclude) { + if (exclude === void 0) { + exclude = true; + } + + return exclude ? !(s0 >= e1 || e0 <= s1) : !(s0 > e1 || e0 < s1); +} +function setColumnCount(groups) { + groups.forEach(function (group) { + group.visuals.forEach(function (groupVisual) { + groupVisual.columnCount = groups.length; + }); + }); +} +function getRange(event) { + return [event.startTimestampIdentifier, event.endTimestampIdentifier]; +} +function getDayRange(event) { + return [event.startIdentifier, event.endIdentifier]; +} +function getNormalizedRange(event, dayStart) { + return [Math.max(dayStart, event.startTimestampIdentifier), Math.min(dayStart + MILLIS_IN_DAY, event.endTimestampIdentifier)]; +} +function getOpenGroup(groups, start, end, timed) { + for (var i = 0; i < groups.length; i++) { + var group = groups[i]; + var intersected = false; + + if (hasOverlap(start, end, group.start, group.end, timed)) { + for (var k = 0; k < group.visuals.length; k++) { + var groupVisual = group.visuals[k]; + + var _a = __read(timed ? getRange(groupVisual.event) : getDayRange(groupVisual.event), 2), + groupStart = _a[0], + groupEnd = _a[1]; + + if (hasOverlap(start, end, groupStart, groupEnd, timed)) { + intersected = true; + break; + } + } + } + + if (!intersected) { + return i; + } + } + + return -1; +} +function getOverlapGroupHandler(firstWeekday) { + var handler = { + groups: [], + min: -1, + max: -1, + reset: function reset() { + handler.groups = []; + handler.min = handler.max = -1; + }, + getVisuals: function getVisuals(day, dayEvents, timed, reset) { + if (reset === void 0) { + reset = false; + } + + if (day.weekday === firstWeekday || reset) { + handler.reset(); + } + + var dayStart = Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_0__["getTimestampIdentifier"])(day); + + var visuals = _getVisuals(dayEvents, dayStart); + + visuals.forEach(function (visual) { + var _a = __read(timed ? getRange(visual.event) : getDayRange(visual.event), 2), + start = _a[0], + end = _a[1]; + + if (handler.groups.length > 0 && !hasOverlap(start, end, handler.min, handler.max, timed)) { + setColumnCount(handler.groups); + handler.reset(); + } + + var targetGroup = getOpenGroup(handler.groups, start, end, timed); + + if (targetGroup === -1) { + targetGroup = handler.groups.length; + handler.groups.push({ + start: start, + end: end, + visuals: [] + }); + } + + var target = handler.groups[targetGroup]; + target.visuals.push(visual); + target.start = Math.min(target.start, start); + target.end = Math.max(target.end, end); + visual.column = targetGroup; + + if (handler.min === -1) { + handler.min = start; + handler.max = end; + } else { + handler.min = Math.min(handler.min, start); + handler.max = Math.max(handler.max, end); + } + }); + setColumnCount(handler.groups); + + if (timed) { + handler.reset(); + } + + return visuals; + } + }; + return handler; +} + +/***/ }), + +/***/ "./src/components/VCalendar/modes/index.ts": +/*!*************************************************!*\ + !*** ./src/components/VCalendar/modes/index.ts ***! + \*************************************************/ +/*! exports provided: CalendarEventOverlapModes */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CalendarEventOverlapModes", function() { return CalendarEventOverlapModes; }); +/* harmony import */ var _stack__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./stack */ "./src/components/VCalendar/modes/stack.ts"); +/* harmony import */ var _column__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./column */ "./src/components/VCalendar/modes/column.ts"); + + +var CalendarEventOverlapModes = { + stack: _stack__WEBPACK_IMPORTED_MODULE_0__["stack"], + column: _column__WEBPACK_IMPORTED_MODULE_1__["column"] +}; + +/***/ }), + +/***/ "./src/components/VCalendar/modes/stack.ts": +/*!*************************************************!*\ + !*** ./src/components/VCalendar/modes/stack.ts ***! + \*************************************************/ +/*! exports provided: stack */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stack", function() { return stack; }); +/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./common */ "./src/components/VCalendar/modes/common.ts"); +/* harmony import */ var _util_timestamp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/timestamp */ "./src/components/VCalendar/util/timestamp.ts"); +var __values = undefined && undefined.__values || function (o) { + var s = typeof Symbol === "function" && Symbol.iterator, + m = s && o[s], + i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function next() { + if (o && i >= o.length) o = void 0; + return { + value: o && o[i++], + done: !o + }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + + + +var FULL_WIDTH = 100; +var DEFAULT_OFFSET = 5; +var WIDTH_MULTIPLIER = 1.7; +/** + * Variation of column mode where events can be stacked. The priority of this + * mode is to stack events together taking up the least amount of space while + * trying to ensure the content of the event is always visible as well as its + * start and end. A sibling column has intersecting event content and must be + * placed beside each other. Non-sibling columns are offset by 5% from the + * previous column. The width is scaled by 1.7 so the events overlap and + * whitespace is reduced. If there is a hole in columns the event width is + * scaled up so it intersects with the next column. The columns have equal + * width in the space they are given. If the event doesn't have any to the + * right of it that intersect with it's content it's right side is extended + * to the right side. + */ + +var stack = function stack(events, firstWeekday, overlapThreshold) { + var handler = Object(_common__WEBPACK_IMPORTED_MODULE_0__["getOverlapGroupHandler"])(firstWeekday); // eslint-disable-next-line max-statements + + return function (day, dayEvents, timed, reset) { + var e_1, _a, e_2, _b, e_3, _c; + + if (!timed) { + return handler.getVisuals(day, dayEvents, timed, reset); + } + + var dayStart = Object(_util_timestamp__WEBPACK_IMPORTED_MODULE_1__["getTimestampIdentifier"])(day); + var visuals = Object(_common__WEBPACK_IMPORTED_MODULE_0__["getVisuals"])(dayEvents, dayStart); + var groups = getGroups(visuals, dayStart); + + try { + for (var groups_1 = __values(groups), groups_1_1 = groups_1.next(); !groups_1_1.done; groups_1_1 = groups_1.next()) { + var group = groups_1_1.value; + var nodes = []; + + try { + for (var _d = (e_2 = void 0, __values(group.visuals)), _e = _d.next(); !_e.done; _e = _d.next()) { + var visual = _e.value; + var child = getNode(visual, dayStart); + var index = getNextIndex(child, nodes); + + if (index === false) { + var parent = getParent(child, nodes); + + if (parent) { + child.parent = parent; + child.sibling = Object(_common__WEBPACK_IMPORTED_MODULE_0__["hasOverlap"])(child.start, child.end, parent.start, addTime(parent.start, overlapThreshold)); + child.index = parent.index + 1; + parent.children.push(child); + } + } else { + var _f = __read(getOverlappingRange(child, nodes, index - 1, index - 1), 1), + parent = _f[0]; + + var children = getOverlappingRange(child, nodes, index + 1, index + nodes.length, true); + child.children = children; + child.index = index; + + if (parent) { + child.parent = parent; + child.sibling = Object(_common__WEBPACK_IMPORTED_MODULE_0__["hasOverlap"])(child.start, child.end, parent.start, addTime(parent.start, overlapThreshold)); + parent.children.push(child); + } + + try { + for (var children_1 = (e_3 = void 0, __values(children)), children_1_1 = children_1.next(); !children_1_1.done; children_1_1 = children_1.next()) { + var grand = children_1_1.value; + + if (grand.parent === parent) { + grand.parent = child; + } + + var grandNext = grand.index - child.index <= 1; + + if (grandNext && child.sibling && Object(_common__WEBPACK_IMPORTED_MODULE_0__["hasOverlap"])(child.start, addTime(child.start, overlapThreshold), grand.start, grand.end)) { + grand.sibling = true; + } + } + } catch (e_3_1) { + e_3 = { + error: e_3_1 + }; + } finally { + try { + if (children_1_1 && !children_1_1.done && (_c = children_1.return)) _c.call(children_1); + } finally { + if (e_3) throw e_3.error; + } + } + } + + nodes.push(child); + } + } catch (e_2_1) { + e_2 = { + error: e_2_1 + }; + } finally { + try { + if (_e && !_e.done && (_b = _d.return)) _b.call(_d); + } finally { + if (e_2) throw e_2.error; + } + } + + calculateBounds(nodes, overlapThreshold); + } + } catch (e_1_1) { + e_1 = { + error: e_1_1 + }; + } finally { + try { + if (groups_1_1 && !groups_1_1.done && (_a = groups_1.return)) _a.call(groups_1); + } finally { + if (e_1) throw e_1.error; + } + } + + visuals.sort(function (a, b) { + return a.left - b.left || a.event.startTimestampIdentifier - b.event.startTimestampIdentifier; + }); + return visuals; + }; +}; + +function calculateBounds(nodes, overlapThreshold) { + var e_4, _a; + + try { + for (var nodes_1 = __values(nodes), nodes_1_1 = nodes_1.next(); !nodes_1_1.done; nodes_1_1 = nodes_1.next()) { + var node = nodes_1_1.value; + var visual = node.visual, + parent = node.parent; + var columns = getMaxChildIndex(node) + 1; + var spaceLeft = parent ? parent.visual.left : 0; + var spaceWidth = FULL_WIDTH - spaceLeft; + var offset = Math.min(DEFAULT_OFFSET, FULL_WIDTH / columns); + var columnWidthMultiplier = getColumnWidthMultiplier(node, nodes); + var columnOffset = spaceWidth / (columns - node.index + 1); + var columnWidth = spaceWidth / (columns - node.index + (node.sibling ? 1 : 0)) * columnWidthMultiplier; + + if (parent) { + visual.left = node.sibling ? spaceLeft + columnOffset : spaceLeft + offset; + } + + visual.width = hasFullWidth(node, nodes, overlapThreshold) ? FULL_WIDTH - visual.left : Math.min(FULL_WIDTH - visual.left, columnWidth * WIDTH_MULTIPLIER); + } + } catch (e_4_1) { + e_4 = { + error: e_4_1 + }; + } finally { + try { + if (nodes_1_1 && !nodes_1_1.done && (_a = nodes_1.return)) _a.call(nodes_1); + } finally { + if (e_4) throw e_4.error; + } + } +} + +function getColumnWidthMultiplier(node, nodes) { + if (!node.children.length) { + return 1; + } + + var maxColumn = node.index + nodes.length; + var minColumn = node.children.reduce(function (min, c) { + return Math.min(min, c.index); + }, maxColumn); + return minColumn - node.index; +} + +function getOverlappingIndices(node, nodes) { + var e_5, _a; + + var indices = []; + + try { + for (var nodes_2 = __values(nodes), nodes_2_1 = nodes_2.next(); !nodes_2_1.done; nodes_2_1 = nodes_2.next()) { + var other = nodes_2_1.value; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_0__["hasOverlap"])(node.start, node.end, other.start, other.end)) { + indices.push(other.index); + } + } + } catch (e_5_1) { + e_5 = { + error: e_5_1 + }; + } finally { + try { + if (nodes_2_1 && !nodes_2_1.done && (_a = nodes_2.return)) _a.call(nodes_2); + } finally { + if (e_5) throw e_5.error; + } + } + + return indices; +} + +function getNextIndex(node, nodes) { + var indices = getOverlappingIndices(node, nodes); + indices.sort(); + + for (var i = 0; i < indices.length; i++) { + if (i < indices[i]) { + return i; + } + } + + return false; +} + +function getOverlappingRange(node, nodes, indexMin, indexMax, returnFirstColumn) { + var e_6, _a; + + if (returnFirstColumn === void 0) { + returnFirstColumn = false; + } + + var overlapping = []; + + try { + for (var nodes_3 = __values(nodes), nodes_3_1 = nodes_3.next(); !nodes_3_1.done; nodes_3_1 = nodes_3.next()) { + var other = nodes_3_1.value; + + if (other.index >= indexMin && other.index <= indexMax && Object(_common__WEBPACK_IMPORTED_MODULE_0__["hasOverlap"])(node.start, node.end, other.start, other.end)) { + overlapping.push(other); + } + } + } catch (e_6_1) { + e_6 = { + error: e_6_1 + }; + } finally { + try { + if (nodes_3_1 && !nodes_3_1.done && (_a = nodes_3.return)) _a.call(nodes_3); + } finally { + if (e_6) throw e_6.error; + } + } + + if (returnFirstColumn && overlapping.length > 0) { + var first_1 = overlapping.reduce(function (min, n) { + return Math.min(min, n.index); + }, overlapping[0].index); + return overlapping.filter(function (n) { + return n.index === first_1; + }); + } + + return overlapping; +} + +function getParent(node, nodes) { + var e_7, _a; + + var parent = null; + + try { + for (var nodes_4 = __values(nodes), nodes_4_1 = nodes_4.next(); !nodes_4_1.done; nodes_4_1 = nodes_4.next()) { + var other = nodes_4_1.value; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_0__["hasOverlap"])(node.start, node.end, other.start, other.end) && (parent === null || other.index > parent.index)) { + parent = other; + } + } + } catch (e_7_1) { + e_7 = { + error: e_7_1 + }; + } finally { + try { + if (nodes_4_1 && !nodes_4_1.done && (_a = nodes_4.return)) _a.call(nodes_4); + } finally { + if (e_7) throw e_7.error; + } + } + + return parent; +} + +function hasFullWidth(node, nodes, overlapThreshold) { + var e_8, _a; + + try { + for (var nodes_5 = __values(nodes), nodes_5_1 = nodes_5.next(); !nodes_5_1.done; nodes_5_1 = nodes_5.next()) { + var other = nodes_5_1.value; + + if (other !== node && other.index > node.index && Object(_common__WEBPACK_IMPORTED_MODULE_0__["hasOverlap"])(node.start, addTime(node.start, overlapThreshold), other.start, other.end)) { + return false; + } + } + } catch (e_8_1) { + e_8 = { + error: e_8_1 + }; + } finally { + try { + if (nodes_5_1 && !nodes_5_1.done && (_a = nodes_5.return)) _a.call(nodes_5); + } finally { + if (e_8) throw e_8.error; + } + } + + return true; +} + +function getGroups(visuals, dayStart) { + var e_9, _a, e_10, _b; + + var groups = []; + + try { + for (var visuals_1 = __values(visuals), visuals_1_1 = visuals_1.next(); !visuals_1_1.done; visuals_1_1 = visuals_1.next()) { + var visual = visuals_1_1.value; + + var _c = __read(Object(_common__WEBPACK_IMPORTED_MODULE_0__["getNormalizedRange"])(visual.event, dayStart), 2), + start = _c[0], + end = _c[1]; + + var added = false; + + try { + for (var groups_2 = (e_10 = void 0, __values(groups)), groups_2_1 = groups_2.next(); !groups_2_1.done; groups_2_1 = groups_2.next()) { + var group = groups_2_1.value; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_0__["hasOverlap"])(start, end, group.start, group.end)) { + group.visuals.push(visual); + group.end = Math.max(group.end, end); + added = true; + break; + } + } + } catch (e_10_1) { + e_10 = { + error: e_10_1 + }; + } finally { + try { + if (groups_2_1 && !groups_2_1.done && (_b = groups_2.return)) _b.call(groups_2); + } finally { + if (e_10) throw e_10.error; + } + } + + if (!added) { + groups.push({ + start: start, + end: end, + visuals: [visual] + }); + } + } + } catch (e_9_1) { + e_9 = { + error: e_9_1 + }; + } finally { + try { + if (visuals_1_1 && !visuals_1_1.done && (_a = visuals_1.return)) _a.call(visuals_1); + } finally { + if (e_9) throw e_9.error; + } + } + + return groups; +} + +function getNode(visual, dayStart) { + var _a = __read(Object(_common__WEBPACK_IMPORTED_MODULE_0__["getNormalizedRange"])(visual.event, dayStart), 2), + start = _a[0], + end = _a[1]; + + return { + parent: null, + sibling: true, + index: 0, + visual: visual, + start: start, + end: end, + children: [] + }; +} + +function getMaxChildIndex(node) { + var e_11, _a; + + var max = node.index; + + try { + for (var _b = __values(node.children), _c = _b.next(); !_c.done; _c = _b.next()) { + var child = _c.value; + var childMax = getMaxChildIndex(child); + + if (childMax > max) { + max = childMax; + } + } + } catch (e_11_1) { + e_11 = { + error: e_11_1 + }; + } finally { + try { + if (_c && !_c.done && (_a = _b.return)) _a.call(_b); + } finally { + if (e_11) throw e_11.error; + } + } + + return max; +} + +function addTime(identifier, minutes) { + var removeMinutes = identifier % 100; + var totalMinutes = removeMinutes + minutes; + var addHours = Math.floor(totalMinutes / 60); + var addMinutes = totalMinutes % 60; + return identifier - removeMinutes + addHours * 100 + addMinutes; +} + +/***/ }), + +/***/ "./src/components/VCalendar/util/events.ts": +/*!*************************************************!*\ + !*** ./src/components/VCalendar/util/events.ts ***! + \*************************************************/ +/*! exports provided: parseEvent, isEventOn, isEventStart, isEventOverlapping */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseEvent", function() { return parseEvent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isEventOn", function() { return isEventOn; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isEventStart", function() { return isEventStart; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isEventOverlapping", function() { return isEventOverlapping; }); +/* harmony import */ var _timestamp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./timestamp */ "./src/components/VCalendar/util/timestamp.ts"); + +function parseEvent(input, index, startProperty, endProperty, timed, category) { + if (timed === void 0) { + timed = false; + } + + if (category === void 0) { + category = false; + } + + var startInput = input[startProperty]; + var endInput = input[endProperty]; + var startParsed = Object(_timestamp__WEBPACK_IMPORTED_MODULE_0__["parseTimestamp"])(startInput, true); + var endParsed = endInput ? Object(_timestamp__WEBPACK_IMPORTED_MODULE_0__["parseTimestamp"])(endInput, true) : startParsed; + var start = Object(_timestamp__WEBPACK_IMPORTED_MODULE_0__["isTimedless"])(startInput) ? Object(_timestamp__WEBPACK_IMPORTED_MODULE_0__["updateHasTime"])(startParsed, timed) : startParsed; + var end = Object(_timestamp__WEBPACK_IMPORTED_MODULE_0__["isTimedless"])(endInput) ? Object(_timestamp__WEBPACK_IMPORTED_MODULE_0__["updateHasTime"])(endParsed, timed) : endParsed; + var startIdentifier = Object(_timestamp__WEBPACK_IMPORTED_MODULE_0__["getDayIdentifier"])(start); + var startTimestampIdentifier = Object(_timestamp__WEBPACK_IMPORTED_MODULE_0__["getTimestampIdentifier"])(start); + var endIdentifier = Object(_timestamp__WEBPACK_IMPORTED_MODULE_0__["getDayIdentifier"])(end); + var endOffset = start.hasTime ? 0 : 2359; + var endTimestampIdentifier = Object(_timestamp__WEBPACK_IMPORTED_MODULE_0__["getTimestampIdentifier"])(end) + endOffset; + var allDay = !start.hasTime; + return { + input: input, + start: start, + startIdentifier: startIdentifier, + startTimestampIdentifier: startTimestampIdentifier, + end: end, + endIdentifier: endIdentifier, + endTimestampIdentifier: endTimestampIdentifier, + allDay: allDay, + index: index, + category: category + }; +} +function isEventOn(event, dayIdentifier) { + return dayIdentifier >= event.startIdentifier && dayIdentifier <= event.endIdentifier && dayIdentifier * _timestamp__WEBPACK_IMPORTED_MODULE_0__["OFFSET_TIME"] !== event.endTimestampIdentifier; +} +function isEventStart(event, day, dayIdentifier, firstWeekday) { + return dayIdentifier === event.startIdentifier || firstWeekday === day.weekday && isEventOn(event, dayIdentifier); +} +function isEventOverlapping(event, startIdentifier, endIdentifier) { + return startIdentifier <= event.endIdentifier && endIdentifier >= event.startIdentifier; +} + +/***/ }), + +/***/ "./src/components/VCalendar/util/props.ts": +/*!************************************************!*\ + !*** ./src/components/VCalendar/util/props.ts ***! + \************************************************/ +/*! exports provided: default, validateNumber, validateWeekdays */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "validateNumber", function() { return validateNumber; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "validateWeekdays", function() { return validateWeekdays; }); +/* harmony import */ var _timestamp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./timestamp */ "./src/components/VCalendar/util/timestamp.ts"); +/* harmony import */ var _modes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../modes */ "./src/components/VCalendar/modes/index.ts"); + + +/* harmony default export */ __webpack_exports__["default"] = ({ + base: { + start: { + type: [String, Number, Date], + validate: _timestamp__WEBPACK_IMPORTED_MODULE_0__["validateTimestamp"], + default: function _default() { + return Object(_timestamp__WEBPACK_IMPORTED_MODULE_0__["parseDate"])(new Date()).date; + } + }, + end: { + type: [String, Number, Date], + validate: _timestamp__WEBPACK_IMPORTED_MODULE_0__["validateTimestamp"] + }, + weekdays: { + type: [Array, String], + default: function _default() { + return [0, 1, 2, 3, 4, 5, 6]; + }, + validate: validateWeekdays + }, + hideHeader: { + type: Boolean + }, + shortWeekdays: { + type: Boolean, + default: true + }, + weekdayFormat: { + type: Function, + default: null + }, + dayFormat: { + type: Function, + default: null + } + }, + intervals: { + maxDays: { + type: Number, + default: 7 + }, + shortIntervals: { + type: Boolean, + default: true + }, + intervalHeight: { + type: [Number, String], + default: 48, + validate: validateNumber + }, + intervalWidth: { + type: [Number, String], + default: 60, + validate: validateNumber + }, + intervalMinutes: { + type: [Number, String], + default: 60, + validate: validateNumber + }, + firstInterval: { + type: [Number, String], + default: 0, + validate: validateNumber + }, + firstTime: { + type: [Number, String, Object], + validate: _timestamp__WEBPACK_IMPORTED_MODULE_0__["validateTime"] + }, + intervalCount: { + type: [Number, String], + default: 24, + validate: validateNumber + }, + intervalFormat: { + type: Function, + default: null + }, + intervalStyle: { + type: Function, + default: null + }, + showIntervalLabel: { + type: Function, + default: null + } + }, + weeks: { + localeFirstDayOfYear: { + type: [String, Number], + default: 0 + }, + minWeeks: { + validate: validateNumber, + default: 1 + }, + shortMonths: { + type: Boolean, + default: true + }, + showMonthOnFirst: { + type: Boolean, + default: true + }, + showWeek: Boolean, + monthFormat: { + type: Function, + default: null + } + }, + calendar: { + type: { + type: String, + default: 'month' + }, + value: { + type: [String, Number, Date], + validate: _timestamp__WEBPACK_IMPORTED_MODULE_0__["validateTimestamp"] + } + }, + category: { + categories: { + type: [Array, String], + default: '' + }, + categoryHideDynamic: { + type: Boolean + }, + categoryShowAll: { + type: Boolean + }, + categoryForInvalid: { + type: String, + default: '' + }, + categoryDays: { + type: [Number, String], + default: 1, + validate: function validate(x) { + return isFinite(parseInt(x)) && parseInt(x) > 0; + } + } + }, + events: { + events: { + type: Array, + default: function _default() { + return []; + } + }, + eventStart: { + type: String, + default: 'start' + }, + eventEnd: { + type: String, + default: 'end' + }, + eventTimed: { + type: [String, Function], + default: 'timed' + }, + eventCategory: { + type: [String, Function], + default: 'category' + }, + eventHeight: { + type: Number, + default: 20 + }, + eventColor: { + type: [String, Function], + default: 'primary' + }, + eventTextColor: { + type: [String, Function], + default: 'white' + }, + eventName: { + type: [String, Function], + default: 'name' + }, + eventOverlapThreshold: { + type: [String, Number], + default: 60 + }, + eventOverlapMode: { + type: [String, Function], + default: 'stack', + validate: function validate(mode) { + return mode in _modes__WEBPACK_IMPORTED_MODULE_1__["CalendarEventOverlapModes"] || typeof mode === 'function'; + } + }, + eventMore: { + type: Boolean, + default: true + }, + eventMoreText: { + type: String, + default: '$vuetify.calendar.moreEvents' + }, + eventRipple: { + type: [Boolean, Object], + default: null + }, + eventMarginBottom: { + type: Number, + default: 1 + } + } +}); +function validateNumber(input) { + return isFinite(parseInt(input)); +} +function validateWeekdays(input) { + if (typeof input === 'string') { + input = input.split(','); + } + + if (Array.isArray(input)) { + var ints = input.map(function (x) { + return parseInt(x); + }); + + if (ints.length > _timestamp__WEBPACK_IMPORTED_MODULE_0__["DAYS_IN_WEEK"] || ints.length === 0) { + return false; + } + + var visited = {}; + var wrapped = false; + + for (var i = 0; i < ints.length; i++) { + var x = ints[i]; + + if (!isFinite(x) || x < 0 || x >= _timestamp__WEBPACK_IMPORTED_MODULE_0__["DAYS_IN_WEEK"]) { + return false; + } + + if (i > 0) { + var d = x - ints[i - 1]; + + if (d < 0) { + if (wrapped) { + return false; + } + + wrapped = true; + } else if (d === 0) { + return false; + } + } + + if (visited[x]) { + return false; + } + + visited[x] = true; + } + + return true; + } + + return false; +} + +/***/ }), + +/***/ "./src/components/VCalendar/util/timestamp.ts": +/*!****************************************************!*\ + !*** ./src/components/VCalendar/util/timestamp.ts ***! + \****************************************************/ +/*! exports provided: PARSE_REGEX, PARSE_TIME, DAYS_IN_MONTH, DAYS_IN_MONTH_LEAP, DAYS_IN_MONTH_MIN, DAYS_IN_MONTH_MAX, MONTH_MAX, MONTH_MIN, DAY_MIN, DAYS_IN_WEEK, MINUTES_IN_HOUR, MINUTE_MAX, MINUTES_IN_DAY, HOURS_IN_DAY, HOUR_MAX, FIRST_HOUR, OFFSET_YEAR, OFFSET_MONTH, OFFSET_HOUR, OFFSET_TIME, getStartOfWeek, getEndOfWeek, getStartOfMonth, getEndOfMonth, validateTime, parseTime, validateTimestamp, parseTimestamp, parseDate, getDayIdentifier, getTimeIdentifier, getTimestampIdentifier, updateRelative, isTimedless, updateHasTime, updateMinutes, updateWeekday, updateFormatted, getWeekday, daysInMonth, copyTimestamp, padNumber, getDate, getTime, nextMinutes, nextDay, prevDay, relativeDays, diffMinutes, findWeekday, getWeekdaySkips, timestampToDate, createDayList, createIntervalList, createNativeLocaleFormatter */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PARSE_REGEX", function() { return PARSE_REGEX; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PARSE_TIME", function() { return PARSE_TIME; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DAYS_IN_MONTH", function() { return DAYS_IN_MONTH; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DAYS_IN_MONTH_LEAP", function() { return DAYS_IN_MONTH_LEAP; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DAYS_IN_MONTH_MIN", function() { return DAYS_IN_MONTH_MIN; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DAYS_IN_MONTH_MAX", function() { return DAYS_IN_MONTH_MAX; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MONTH_MAX", function() { return MONTH_MAX; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MONTH_MIN", function() { return MONTH_MIN; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DAY_MIN", function() { return DAY_MIN; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DAYS_IN_WEEK", function() { return DAYS_IN_WEEK; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MINUTES_IN_HOUR", function() { return MINUTES_IN_HOUR; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MINUTE_MAX", function() { return MINUTE_MAX; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MINUTES_IN_DAY", function() { return MINUTES_IN_DAY; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HOURS_IN_DAY", function() { return HOURS_IN_DAY; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HOUR_MAX", function() { return HOUR_MAX; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FIRST_HOUR", function() { return FIRST_HOUR; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OFFSET_YEAR", function() { return OFFSET_YEAR; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OFFSET_MONTH", function() { return OFFSET_MONTH; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OFFSET_HOUR", function() { return OFFSET_HOUR; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OFFSET_TIME", function() { return OFFSET_TIME; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStartOfWeek", function() { return getStartOfWeek; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEndOfWeek", function() { return getEndOfWeek; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStartOfMonth", function() { return getStartOfMonth; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEndOfMonth", function() { return getEndOfMonth; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "validateTime", function() { return validateTime; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseTime", function() { return parseTime; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "validateTimestamp", function() { return validateTimestamp; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseTimestamp", function() { return parseTimestamp; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseDate", function() { return parseDate; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDayIdentifier", function() { return getDayIdentifier; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTimeIdentifier", function() { return getTimeIdentifier; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTimestampIdentifier", function() { return getTimestampIdentifier; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateRelative", function() { return updateRelative; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isTimedless", function() { return isTimedless; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateHasTime", function() { return updateHasTime; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateMinutes", function() { return updateMinutes; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateWeekday", function() { return updateWeekday; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateFormatted", function() { return updateFormatted; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getWeekday", function() { return getWeekday; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "daysInMonth", function() { return daysInMonth; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "copyTimestamp", function() { return copyTimestamp; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "padNumber", function() { return padNumber; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDate", function() { return getDate; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTime", function() { return getTime; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nextMinutes", function() { return nextMinutes; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nextDay", function() { return nextDay; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prevDay", function() { return prevDay; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "relativeDays", function() { return relativeDays; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "diffMinutes", function() { return diffMinutes; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findWeekday", function() { return findWeekday; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getWeekdaySkips", function() { return getWeekdaySkips; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timestampToDate", function() { return timestampToDate; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createDayList", function() { return createDayList; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createIntervalList", function() { return createIntervalList; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createNativeLocaleFormatter", function() { return createNativeLocaleFormatter; }); +/* harmony import */ var _util_dateTimeUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/dateTimeUtils */ "./src/util/dateTimeUtils.ts"); +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + + +var PARSE_REGEX = /^(\d{4})-(\d{1,2})(-(\d{1,2}))?([^\d]+(\d{1,2}))?(:(\d{1,2}))?(:(\d{1,2}))?$/; +var PARSE_TIME = /(\d\d?)(:(\d\d?)|)(:(\d\d?)|)/; +var DAYS_IN_MONTH = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; +var DAYS_IN_MONTH_LEAP = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; +var DAYS_IN_MONTH_MIN = 28; +var DAYS_IN_MONTH_MAX = 31; +var MONTH_MAX = 12; +var MONTH_MIN = 1; +var DAY_MIN = 1; +var DAYS_IN_WEEK = 7; +var MINUTES_IN_HOUR = 60; +var MINUTE_MAX = 59; +var MINUTES_IN_DAY = 24 * 60; +var HOURS_IN_DAY = 24; +var HOUR_MAX = 23; +var FIRST_HOUR = 0; +var OFFSET_YEAR = 10000; +var OFFSET_MONTH = 100; +var OFFSET_HOUR = 100; +var OFFSET_TIME = 10000; +function getStartOfWeek(timestamp, weekdays, today) { + var start = copyTimestamp(timestamp); + findWeekday(start, weekdays[0], prevDay); + updateFormatted(start); + + if (today) { + updateRelative(start, today, start.hasTime); + } + + return start; +} +function getEndOfWeek(timestamp, weekdays, today) { + var end = copyTimestamp(timestamp); + findWeekday(end, weekdays[weekdays.length - 1]); + updateFormatted(end); + + if (today) { + updateRelative(end, today, end.hasTime); + } + + return end; +} +function getStartOfMonth(timestamp) { + var start = copyTimestamp(timestamp); + start.day = DAY_MIN; + updateWeekday(start); + updateFormatted(start); + return start; +} +function getEndOfMonth(timestamp) { + var end = copyTimestamp(timestamp); + end.day = daysInMonth(end.year, end.month); + updateWeekday(end); + updateFormatted(end); + return end; +} +function validateTime(input) { + return typeof input === 'number' && isFinite(input) || !!PARSE_TIME.exec(input) || _typeof(input) === 'object' && isFinite(input.hour) && isFinite(input.minute); +} +function parseTime(input) { + if (typeof input === 'number') { + // when a number is given, it's minutes since 12:00am + return input; + } else if (typeof input === 'string') { + // when a string is given, it's a hh:mm:ss format where seconds are optional + var parts = PARSE_TIME.exec(input); + + if (!parts) { + return false; + } + + return parseInt(parts[1]) * 60 + parseInt(parts[3] || 0); + } else if (_typeof(input) === 'object') { + // when an object is given, it must have hour and minute + if (typeof input.hour !== 'number' || typeof input.minute !== 'number') { + return false; + } + + return input.hour * 60 + input.minute; + } else { + // unsupported type + return false; + } +} +function validateTimestamp(input) { + return typeof input === 'number' && isFinite(input) || typeof input === 'string' && !!PARSE_REGEX.exec(input) || input instanceof Date; +} +function parseTimestamp(input, required, now) { + if (required === void 0) { + required = false; + } + + if (typeof input === 'number' && isFinite(input)) { + input = new Date(input); + } + + if (input instanceof Date) { + var date = parseDate(input); + + if (now) { + updateRelative(date, now, date.hasTime); + } + + return date; + } + + if (typeof input !== 'string') { + if (required) { + throw new Error(input + " is not a valid timestamp. It must be a Date, number of seconds since Epoch, or a string in the format of YYYY-MM-DD or YYYY-MM-DD hh:mm. Zero-padding is optional and seconds are ignored."); + } + + return null; + } // YYYY-MM-DD hh:mm:ss + + + var parts = PARSE_REGEX.exec(input); + + if (!parts) { + if (required) { + throw new Error(input + " is not a valid timestamp. It must be a Date, number of seconds since Epoch, or a string in the format of YYYY-MM-DD or YYYY-MM-DD hh:mm. Zero-padding is optional and seconds are ignored."); + } + + return null; + } + + var timestamp = { + date: input, + time: '', + year: parseInt(parts[1]), + month: parseInt(parts[2]), + day: parseInt(parts[4]) || 1, + hour: parseInt(parts[6]) || 0, + minute: parseInt(parts[8]) || 0, + weekday: 0, + hasDay: !!parts[4], + hasTime: !!(parts[6] && parts[8]), + past: false, + present: false, + future: false + }; + updateWeekday(timestamp); + updateFormatted(timestamp); + + if (now) { + updateRelative(timestamp, now, timestamp.hasTime); + } + + return timestamp; +} +function parseDate(date) { + return updateFormatted({ + date: '', + time: '', + year: date.getFullYear(), + month: date.getMonth() + 1, + day: date.getDate(), + weekday: date.getDay(), + hour: date.getHours(), + minute: date.getMinutes(), + hasDay: true, + hasTime: true, + past: false, + present: true, + future: false + }); +} +function getDayIdentifier(timestamp) { + return timestamp.year * OFFSET_YEAR + timestamp.month * OFFSET_MONTH + timestamp.day; +} +function getTimeIdentifier(timestamp) { + return timestamp.hour * OFFSET_HOUR + timestamp.minute; +} +function getTimestampIdentifier(timestamp) { + return getDayIdentifier(timestamp) * OFFSET_TIME + getTimeIdentifier(timestamp); +} +function updateRelative(timestamp, now, time) { + if (time === void 0) { + time = false; + } + + var a = getDayIdentifier(now); + var b = getDayIdentifier(timestamp); + var present = a === b; + + if (timestamp.hasTime && time && present) { + a = getTimeIdentifier(now); + b = getTimeIdentifier(timestamp); + present = a === b; + } + + timestamp.past = b < a; + timestamp.present = present; + timestamp.future = b > a; + return timestamp; +} +function isTimedless(input) { + return input instanceof Date || typeof input === 'number' && isFinite(input); +} +function updateHasTime(timestamp, hasTime, now) { + if (timestamp.hasTime !== hasTime) { + timestamp.hasTime = hasTime; + + if (!hasTime) { + timestamp.hour = HOUR_MAX; + timestamp.minute = MINUTE_MAX; + timestamp.time = getTime(timestamp); + } + + if (now) { + updateRelative(timestamp, now, timestamp.hasTime); + } + } + + return timestamp; +} +function updateMinutes(timestamp, minutes, now) { + timestamp.hasTime = true; + timestamp.hour = Math.floor(minutes / MINUTES_IN_HOUR); + timestamp.minute = minutes % MINUTES_IN_HOUR; + timestamp.time = getTime(timestamp); + + if (now) { + updateRelative(timestamp, now, true); + } + + return timestamp; +} +function updateWeekday(timestamp) { + timestamp.weekday = getWeekday(timestamp); + return timestamp; +} +function updateFormatted(timestamp) { + timestamp.time = getTime(timestamp); + timestamp.date = getDate(timestamp); + return timestamp; +} +function getWeekday(timestamp) { + if (timestamp.hasDay) { + var _ = Math.floor; + var k = timestamp.day; + var m = (timestamp.month + 9) % MONTH_MAX + 1; + + var C = _(timestamp.year / 100); + + var Y = timestamp.year % 100 - (timestamp.month <= 2 ? 1 : 0); + return ((k + _(2.6 * m - 0.2) - 2 * C + Y + _(Y / 4) + _(C / 4)) % 7 + 7) % 7; + } + + return timestamp.weekday; +} +function daysInMonth(year, month) { + return Object(_util_dateTimeUtils__WEBPACK_IMPORTED_MODULE_0__["isLeapYear"])(year) ? DAYS_IN_MONTH_LEAP[month] : DAYS_IN_MONTH[month]; +} +function copyTimestamp(timestamp) { + var date = timestamp.date, + time = timestamp.time, + year = timestamp.year, + month = timestamp.month, + day = timestamp.day, + weekday = timestamp.weekday, + hour = timestamp.hour, + minute = timestamp.minute, + hasDay = timestamp.hasDay, + hasTime = timestamp.hasTime, + past = timestamp.past, + present = timestamp.present, + future = timestamp.future; + return { + date: date, + time: time, + year: year, + month: month, + day: day, + weekday: weekday, + hour: hour, + minute: minute, + hasDay: hasDay, + hasTime: hasTime, + past: past, + present: present, + future: future + }; +} +function padNumber(x, length) { + var padded = String(x); + + while (padded.length < length) { + padded = '0' + padded; + } + + return padded; +} +function getDate(timestamp) { + var str = padNumber(timestamp.year, 4) + "-" + padNumber(timestamp.month, 2); + if (timestamp.hasDay) str += "-" + padNumber(timestamp.day, 2); + return str; +} +function getTime(timestamp) { + if (!timestamp.hasTime) { + return ''; + } + + return padNumber(timestamp.hour, 2) + ":" + padNumber(timestamp.minute, 2); +} +function nextMinutes(timestamp, minutes) { + timestamp.minute += minutes; + + while (timestamp.minute > MINUTES_IN_HOUR) { + timestamp.minute -= MINUTES_IN_HOUR; + timestamp.hour++; + + if (timestamp.hour >= HOURS_IN_DAY) { + nextDay(timestamp); + timestamp.hour = FIRST_HOUR; + } + } + + return timestamp; +} +function nextDay(timestamp) { + timestamp.day++; + timestamp.weekday = (timestamp.weekday + 1) % DAYS_IN_WEEK; + + if (timestamp.day > DAYS_IN_MONTH_MIN && timestamp.day > daysInMonth(timestamp.year, timestamp.month)) { + timestamp.day = DAY_MIN; + timestamp.month++; + + if (timestamp.month > MONTH_MAX) { + timestamp.month = MONTH_MIN; + timestamp.year++; + } + } + + return timestamp; +} +function prevDay(timestamp) { + timestamp.day--; + timestamp.weekday = (timestamp.weekday + 6) % DAYS_IN_WEEK; + + if (timestamp.day < DAY_MIN) { + timestamp.month--; + + if (timestamp.month < MONTH_MIN) { + timestamp.year--; + timestamp.month = MONTH_MAX; + } + + timestamp.day = daysInMonth(timestamp.year, timestamp.month); + } + + return timestamp; +} +function relativeDays(timestamp, mover, days) { + if (mover === void 0) { + mover = nextDay; + } + + if (days === void 0) { + days = 1; + } + + while (--days >= 0) { + mover(timestamp); + } + + return timestamp; +} +function diffMinutes(min, max) { + var Y = (max.year - min.year) * 525600; + var M = (max.month - min.month) * 43800; + var D = (max.day - min.day) * 1440; + var h = (max.hour - min.hour) * 60; + var m = max.minute - min.minute; + return Y + M + D + h + m; +} +function findWeekday(timestamp, weekday, mover, maxDays) { + if (mover === void 0) { + mover = nextDay; + } + + if (maxDays === void 0) { + maxDays = 6; + } + + while (timestamp.weekday !== weekday && --maxDays >= 0) { + mover(timestamp); + } + + return timestamp; +} +function getWeekdaySkips(weekdays) { + var skips = [1, 1, 1, 1, 1, 1, 1]; + var filled = [0, 0, 0, 0, 0, 0, 0]; + + for (var i = 0; i < weekdays.length; i++) { + filled[weekdays[i]] = 1; + } + + for (var k = 0; k < DAYS_IN_WEEK; k++) { + var skip = 1; + + for (var j = 1; j < DAYS_IN_WEEK; j++) { + var next = (k + j) % DAYS_IN_WEEK; + + if (filled[next]) { + break; + } + + skip++; + } + + skips[k] = filled[k] * skip; + } + + return skips; +} +function timestampToDate(timestamp) { + var time = padNumber(timestamp.hour, 2) + ":" + padNumber(timestamp.minute, 2); + var date = timestamp.date; + return new Date(date + "T" + time + ":00+00:00"); +} +function createDayList(start, end, now, weekdaySkips, max, min) { + if (max === void 0) { + max = 42; + } + + if (min === void 0) { + min = 0; + } + + var stop = getDayIdentifier(end); + var days = []; + var current = copyTimestamp(start); + var currentIdentifier = 0; + var stopped = currentIdentifier === stop; + + if (stop < getDayIdentifier(start)) { + throw new Error('End date is earlier than start date.'); + } + + while ((!stopped || days.length < min) && days.length < max) { + currentIdentifier = getDayIdentifier(current); + stopped = stopped || currentIdentifier === stop; + + if (weekdaySkips[current.weekday] === 0) { + current = nextDay(current); + continue; + } + + var day = copyTimestamp(current); + updateFormatted(day); + updateRelative(day, now); + days.push(day); + current = relativeDays(current, nextDay, weekdaySkips[current.weekday]); + } + + if (!days.length) throw new Error('No dates found using specified start date, end date, and weekdays.'); + return days; +} +function createIntervalList(timestamp, first, minutes, count, now) { + var intervals = []; + + for (var i = 0; i < count; i++) { + var mins = first + i * minutes; + var int = copyTimestamp(timestamp); + intervals.push(updateMinutes(int, mins, now)); + } + + return intervals; +} +function createNativeLocaleFormatter(locale, getOptions) { + var emptyFormatter = function emptyFormatter(_t, _s) { + return ''; + }; + + if (typeof Intl === 'undefined' || typeof Intl.DateTimeFormat === 'undefined') { + return emptyFormatter; + } + + return function (timestamp, short) { + try { + var intlFormatter = new Intl.DateTimeFormat(locale || undefined, getOptions(timestamp, short)); + return intlFormatter.format(timestampToDate(timestamp)); + } catch (e) { + return ''; + } + }; +} + +/***/ }), + +/***/ "./src/components/VCard/VCard.sass": +/*!*****************************************!*\ + !*** ./src/components/VCard/VCard.sass ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VCard/VCard.ts": +/*!***************************************!*\ + !*** ./src/components/VCard/VCard.ts ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VCard_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VCard.sass */ "./src/components/VCard/VCard.sass"); +/* harmony import */ var _VCard_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VCard_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VSheet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VSheet */ "./src/components/VSheet/index.ts"); +/* harmony import */ var _mixins_loadable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/loadable */ "./src/mixins/loadable/index.ts"); +/* harmony import */ var _mixins_routable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/routable */ "./src/mixins/routable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Extensions + + // Mixins + + + // Helpers + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_4__["default"])(_mixins_loadable__WEBPACK_IMPORTED_MODULE_2__["default"], _mixins_routable__WEBPACK_IMPORTED_MODULE_3__["default"], _VSheet__WEBPACK_IMPORTED_MODULE_1__["default"]).extend({ + name: 'v-card', + props: { + flat: Boolean, + hover: Boolean, + img: String, + link: Boolean, + loaderHeight: { + type: [Number, String], + default: 4 + }, + raised: Boolean + }, + computed: { + classes: function classes() { + return __assign(__assign(__assign({ + 'v-card': true + }, _mixins_routable__WEBPACK_IMPORTED_MODULE_3__["default"].options.computed.classes.call(this)), { + 'v-card--flat': this.flat, + 'v-card--hover': this.hover, + 'v-card--link': this.isClickable, + 'v-card--loading': this.loading, + 'v-card--disabled': this.disabled, + 'v-card--raised': this.raised + }), _VSheet__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.classes.call(this)); + }, + styles: function styles() { + var style = __assign({}, _VSheet__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.styles.call(this)); + + if (this.img) { + style.background = "url(\"" + this.img + "\") center center / cover no-repeat"; + } + + return style; + } + }, + methods: { + genProgress: function genProgress() { + var render = _mixins_loadable__WEBPACK_IMPORTED_MODULE_2__["default"].options.methods.genProgress.call(this); + if (!render) return null; + return this.$createElement('div', { + staticClass: 'v-card__progress', + key: 'progress' + }, [render]); + } + }, + render: function render(h) { + var _a = this.generateRouteLink(), + tag = _a.tag, + data = _a.data; + + data.style = this.styles; + + if (this.isClickable) { + data.attrs = data.attrs || {}; + data.attrs.tabindex = 0; + } + + return h(tag, this.setBackgroundColor(this.color, data), [this.genProgress(), this.$slots.default]); + } +})); + +/***/ }), + +/***/ "./src/components/VCard/index.ts": +/*!***************************************!*\ + !*** ./src/components/VCard/index.ts ***! + \***************************************/ +/*! exports provided: VCard, VCardActions, VCardSubtitle, VCardText, VCardTitle, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VCardActions", function() { return VCardActions; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VCardSubtitle", function() { return VCardSubtitle; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VCardText", function() { return VCardText; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VCardTitle", function() { return VCardTitle; }); +/* harmony import */ var _VCard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VCard */ "./src/components/VCard/VCard.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCard", function() { return _VCard__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); + + +var VCardActions = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["createSimpleFunctional"])('v-card__actions'); +var VCardSubtitle = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["createSimpleFunctional"])('v-card__subtitle'); +var VCardText = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["createSimpleFunctional"])('v-card__text'); +var VCardTitle = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["createSimpleFunctional"])('v-card__title'); + +/* harmony default export */ __webpack_exports__["default"] = ({ + $_vuetify_subcomponents: { + VCard: _VCard__WEBPACK_IMPORTED_MODULE_0__["default"], + VCardActions: VCardActions, + VCardSubtitle: VCardSubtitle, + VCardText: VCardText, + VCardTitle: VCardTitle + } +}); + +/***/ }), + +/***/ "./src/components/VCarousel/VCarousel.sass": +/*!*************************************************!*\ + !*** ./src/components/VCarousel/VCarousel.sass ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VCarousel/VCarousel.ts": +/*!***********************************************!*\ + !*** ./src/components/VCarousel/VCarousel.ts ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VCarousel_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VCarousel.sass */ "./src/components/VCarousel/VCarousel.sass"); +/* harmony import */ var _VCarousel_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VCarousel_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VWindow_VWindow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VWindow/VWindow */ "./src/components/VWindow/VWindow.ts"); +/* harmony import */ var _VBtn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../VBtn */ "./src/components/VBtn/index.ts"); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../VIcon */ "./src/components/VIcon/index.ts"); +/* harmony import */ var _VProgressLinear__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../VProgressLinear */ "./src/components/VProgressLinear/index.ts"); +/* harmony import */ var _mixins_button_group__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/button-group */ "./src/mixins/button-group/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Extensions + + // Components + + + + // Mixins +// TODO: Move this into core components v2.0 + + // Utilities + + + +/* harmony default export */ __webpack_exports__["default"] = (_VWindow_VWindow__WEBPACK_IMPORTED_MODULE_1__["default"].extend({ + name: 'v-carousel', + props: { + continuous: { + type: Boolean, + default: true + }, + cycle: Boolean, + delimiterIcon: { + type: String, + default: '$delimiter' + }, + height: { + type: [Number, String], + default: 500 + }, + hideDelimiters: Boolean, + hideDelimiterBackground: Boolean, + interval: { + type: [Number, String], + default: 6000, + validator: function validator(value) { + return value > 0; + } + }, + mandatory: { + type: Boolean, + default: true + }, + progress: Boolean, + progressColor: String, + showArrows: { + type: Boolean, + default: true + }, + verticalDelimiters: { + type: String, + default: undefined + } + }, + data: function data() { + return { + internalHeight: this.height, + slideTimeout: undefined + }; + }, + computed: { + classes: function classes() { + return __assign(__assign({}, _VWindow_VWindow__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.classes.call(this)), { + 'v-carousel': true, + 'v-carousel--hide-delimiter-background': this.hideDelimiterBackground, + 'v-carousel--vertical-delimiters': this.isVertical + }); + }, + isDark: function isDark() { + return this.dark || !this.light; + }, + isVertical: function isVertical() { + return this.verticalDelimiters != null; + } + }, + watch: { + internalValue: 'restartTimeout', + interval: 'restartTimeout', + height: function height(val, oldVal) { + if (val === oldVal || !val) return; + this.internalHeight = val; + }, + cycle: function cycle(val) { + if (val) { + this.restartTimeout(); + } else { + clearTimeout(this.slideTimeout); + this.slideTimeout = undefined; + } + } + }, + created: function created() { + /* istanbul ignore next */ + if (this.$attrs.hasOwnProperty('hide-controls')) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_7__["breaking"])('hide-controls', ':show-arrows="false"', this); + } + }, + mounted: function mounted() { + this.startTimeout(); + }, + methods: { + genControlIcons: function genControlIcons() { + if (this.isVertical) return null; + return _VWindow_VWindow__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.genControlIcons.call(this); + }, + genDelimiters: function genDelimiters() { + return this.$createElement('div', { + staticClass: 'v-carousel__controls', + style: { + left: this.verticalDelimiters === 'left' && this.isVertical ? 0 : 'auto', + right: this.verticalDelimiters === 'right' ? 0 : 'auto' + } + }, [this.genItems()]); + }, + genItems: function genItems() { + var _this = this; + + var length = this.items.length; + var children = []; + + for (var i = 0; i < length; i++) { + var child = this.$createElement(_VBtn__WEBPACK_IMPORTED_MODULE_2__["default"], { + staticClass: 'v-carousel__controls__item', + attrs: { + 'aria-label': this.$vuetify.lang.t('$vuetify.carousel.ariaLabel.delimiter', i + 1, length) + }, + props: { + icon: true, + small: true, + value: this.getValue(this.items[i], i) + } + }, [this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_3__["default"], { + props: { + size: 18 + } + }, this.delimiterIcon)]); + children.push(child); + } + + return this.$createElement(_mixins_button_group__WEBPACK_IMPORTED_MODULE_5__["default"], { + props: { + value: this.internalValue, + mandatory: this.mandatory + }, + on: { + change: function change(val) { + _this.internalValue = val; + } + } + }, children); + }, + genProgress: function genProgress() { + return this.$createElement(_VProgressLinear__WEBPACK_IMPORTED_MODULE_4__["default"], { + staticClass: 'v-carousel__progress', + props: { + color: this.progressColor, + value: (this.internalIndex + 1) / this.items.length * 100 + } + }); + }, + restartTimeout: function restartTimeout() { + this.slideTimeout && clearTimeout(this.slideTimeout); + this.slideTimeout = undefined; + window.requestAnimationFrame(this.startTimeout); + }, + startTimeout: function startTimeout() { + if (!this.cycle) return; + this.slideTimeout = window.setTimeout(this.next, +this.interval > 0 ? +this.interval : 6000); + } + }, + render: function render(h) { + var render = _VWindow_VWindow__WEBPACK_IMPORTED_MODULE_1__["default"].options.render.call(this, h); + render.data.style = "height: " + Object(_util_helpers__WEBPACK_IMPORTED_MODULE_6__["convertToUnit"])(this.height) + ";"; + /* istanbul ignore else */ + + if (!this.hideDelimiters) { + render.children.push(this.genDelimiters()); + } + /* istanbul ignore else */ + + + if (this.progress || this.progressColor) { + render.children.push(this.genProgress()); + } + + return render; + } +})); + +/***/ }), + +/***/ "./src/components/VCarousel/VCarouselItem.ts": +/*!***************************************************!*\ + !*** ./src/components/VCarousel/VCarouselItem.ts ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VWindow_VWindowItem__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../VWindow/VWindowItem */ "./src/components/VWindow/VWindowItem.ts"); +/* harmony import */ var _VImg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VImg */ "./src/components/VImg/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _mixins_routable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/routable */ "./src/mixins/routable/index.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Extensions + + + // Components + + // Utilities + + + + // Types + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_2__["default"])(_VWindow_VWindowItem__WEBPACK_IMPORTED_MODULE_0__["default"], _mixins_routable__WEBPACK_IMPORTED_MODULE_4__["default"]); +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend({ + name: 'v-carousel-item', + inheritAttrs: false, + methods: { + genDefaultSlot: function genDefaultSlot() { + return [this.$createElement(_VImg__WEBPACK_IMPORTED_MODULE_1__["VImg"], { + staticClass: 'v-carousel__item', + props: __assign(__assign({}, this.$attrs), { + height: this.windowGroup.internalHeight + }), + on: this.$listeners, + scopedSlots: { + placeholder: this.$scopedSlots.placeholder + } + }, Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["getSlot"])(this))]; + }, + genWindowItem: function genWindowItem() { + var _a = this.generateRouteLink(), + tag = _a.tag, + data = _a.data; + + data.staticClass = 'v-window-item'; + data.directives.push({ + name: 'show', + value: this.isActive + }); + return this.$createElement(tag, data, this.genDefaultSlot()); + } + } +})); + +/***/ }), + +/***/ "./src/components/VCarousel/index.ts": +/*!*******************************************!*\ + !*** ./src/components/VCarousel/index.ts ***! + \*******************************************/ +/*! exports provided: VCarousel, VCarouselItem, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VCarousel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VCarousel */ "./src/components/VCarousel/VCarousel.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCarousel", function() { return _VCarousel__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + +/* harmony import */ var _VCarouselItem__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VCarouselItem */ "./src/components/VCarousel/VCarouselItem.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCarouselItem", function() { return _VCarouselItem__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + $_vuetify_subcomponents: { + VCarousel: _VCarousel__WEBPACK_IMPORTED_MODULE_0__["default"], + VCarouselItem: _VCarouselItem__WEBPACK_IMPORTED_MODULE_1__["default"] + } +}); + +/***/ }), + +/***/ "./src/components/VCheckbox/VCheckbox.sass": +/*!*************************************************!*\ + !*** ./src/components/VCheckbox/VCheckbox.sass ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VCheckbox/VCheckbox.ts": +/*!***********************************************!*\ + !*** ./src/components/VCheckbox/VCheckbox.ts ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VCheckbox_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VCheckbox.sass */ "./src/components/VCheckbox/VCheckbox.sass"); +/* harmony import */ var _VCheckbox_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VCheckbox_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _styles_components_selection_controls_sass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../styles/components/_selection-controls.sass */ "./src/styles/components/_selection-controls.sass"); +/* harmony import */ var _styles_components_selection_controls_sass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_styles_components_selection_controls_sass__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../VIcon */ "./src/components/VIcon/index.ts"); +/* harmony import */ var _VInput__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../VInput */ "./src/components/VInput/index.ts"); +/* harmony import */ var _mixins_selectable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/selectable */ "./src/mixins/selectable/index.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + + // Components + + + // Mixins + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (_mixins_selectable__WEBPACK_IMPORTED_MODULE_4__["default"].extend({ + name: 'v-checkbox', + props: { + indeterminate: Boolean, + indeterminateIcon: { + type: String, + default: '$checkboxIndeterminate' + }, + offIcon: { + type: String, + default: '$checkboxOff' + }, + onIcon: { + type: String, + default: '$checkboxOn' + } + }, + data: function data() { + return { + inputIndeterminate: this.indeterminate + }; + }, + computed: { + classes: function classes() { + return __assign(__assign({}, _VInput__WEBPACK_IMPORTED_MODULE_3__["default"].options.computed.classes.call(this)), { + 'v-input--selection-controls': true, + 'v-input--checkbox': true, + 'v-input--indeterminate': this.inputIndeterminate + }); + }, + computedIcon: function computedIcon() { + if (this.inputIndeterminate) { + return this.indeterminateIcon; + } else if (this.isActive) { + return this.onIcon; + } else { + return this.offIcon; + } + }, + // Do not return undefined if disabled, + // according to spec, should still show + // a color when disabled and active + validationState: function validationState() { + if (this.isDisabled && !this.inputIndeterminate) return undefined; + if (this.hasError && this.shouldValidate) return 'error'; + if (this.hasSuccess) return 'success'; + if (this.hasColor !== null) return this.computedColor; + return undefined; + } + }, + watch: { + indeterminate: function indeterminate(val) { + var _this = this; // https://github.com/vuetifyjs/vuetify/issues/8270 + + + this.$nextTick(function () { + return _this.inputIndeterminate = val; + }); + }, + inputIndeterminate: function inputIndeterminate(val) { + this.$emit('update:indeterminate', val); + }, + isActive: function isActive() { + if (!this.indeterminate) return; + this.inputIndeterminate = false; + } + }, + methods: { + genCheckbox: function genCheckbox() { + return this.$createElement('div', { + staticClass: 'v-input--selection-controls__input' + }, [this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_2__["default"], this.setTextColor(this.validationState, { + props: { + dense: this.dense, + dark: this.dark, + light: this.light + } + }), this.computedIcon), this.genInput('checkbox', __assign(__assign({}, this.attrs$), { + 'aria-checked': this.inputIndeterminate ? 'mixed' : this.isActive.toString() + })), this.genRipple(this.setTextColor(this.rippleState))]); + }, + genDefaultSlot: function genDefaultSlot() { + return [this.genCheckbox(), this.genLabel()]; + } + } +})); + +/***/ }), + +/***/ "./src/components/VCheckbox/VSimpleCheckbox.sass": +/*!*******************************************************!*\ + !*** ./src/components/VCheckbox/VSimpleCheckbox.sass ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VCheckbox/VSimpleCheckbox.ts": +/*!*****************************************************!*\ + !*** ./src/components/VCheckbox/VSimpleCheckbox.ts ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VSimpleCheckbox_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VSimpleCheckbox.sass */ "./src/components/VCheckbox/VSimpleCheckbox.sass"); +/* harmony import */ var _VSimpleCheckbox_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VSimpleCheckbox_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _directives_ripple__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../directives/ripple */ "./src/directives/ripple/index.ts"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../VIcon */ "./src/components/VIcon/index.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_mergeData__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util/mergeData */ "./src/util/mergeData.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + + + + + // Mixins + + + // Utilities + + + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_2___default.a.extend({ + name: 'v-simple-checkbox', + functional: true, + directives: { + ripple: _directives_ripple__WEBPACK_IMPORTED_MODULE_1__["default"] + }, + props: __assign(__assign(__assign({}, _mixins_colorable__WEBPACK_IMPORTED_MODULE_4__["default"].options.props), _mixins_themeable__WEBPACK_IMPORTED_MODULE_5__["default"].options.props), { + disabled: Boolean, + ripple: { + type: Boolean, + default: true + }, + value: Boolean, + indeterminate: Boolean, + indeterminateIcon: { + type: String, + default: '$checkboxIndeterminate' + }, + onIcon: { + type: String, + default: '$checkboxOn' + }, + offIcon: { + type: String, + default: '$checkboxOff' + } + }), + render: function render(h, _a) { + var props = _a.props, + data = _a.data, + listeners = _a.listeners; + var children = []; + + if (props.ripple && !props.disabled) { + var ripple_1 = h('div', _mixins_colorable__WEBPACK_IMPORTED_MODULE_4__["default"].options.methods.setTextColor(props.color, { + staticClass: 'v-input--selection-controls__ripple', + directives: [{ + name: 'ripple', + value: { + center: true + } + }] + })); + children.push(ripple_1); + } + + var icon = props.offIcon; + if (props.indeterminate) icon = props.indeterminateIcon;else if (props.value) icon = props.onIcon; + children.push(h(_VIcon__WEBPACK_IMPORTED_MODULE_3__["VIcon"], _mixins_colorable__WEBPACK_IMPORTED_MODULE_4__["default"].options.methods.setTextColor(props.value && props.color, { + props: { + disabled: props.disabled, + dark: props.dark, + light: props.light + } + }), icon)); + var classes = { + 'v-simple-checkbox': true, + 'v-simple-checkbox--disabled': props.disabled + }; + return h('div', Object(_util_mergeData__WEBPACK_IMPORTED_MODULE_6__["default"])(data, { + class: classes, + on: { + click: function click(e) { + e.stopPropagation(); + + if (data.on && data.on.input && !props.disabled) { + Object(_util_helpers__WEBPACK_IMPORTED_MODULE_7__["wrapInArray"])(data.on.input).forEach(function (f) { + return f(!props.value); + }); + } + } + } + }), children); + } +})); + +/***/ }), + +/***/ "./src/components/VCheckbox/index.ts": +/*!*******************************************!*\ + !*** ./src/components/VCheckbox/index.ts ***! + \*******************************************/ +/*! exports provided: VCheckbox, VSimpleCheckbox, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VCheckbox__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VCheckbox */ "./src/components/VCheckbox/VCheckbox.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCheckbox", function() { return _VCheckbox__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + +/* harmony import */ var _VSimpleCheckbox__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VSimpleCheckbox */ "./src/components/VCheckbox/VSimpleCheckbox.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSimpleCheckbox", function() { return _VSimpleCheckbox__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + $_vuetify_subcomponents: { + VCheckbox: _VCheckbox__WEBPACK_IMPORTED_MODULE_0__["default"], + VSimpleCheckbox: _VSimpleCheckbox__WEBPACK_IMPORTED_MODULE_1__["default"] + } +}); + +/***/ }), + +/***/ "./src/components/VChip/VChip.sass": +/*!*****************************************!*\ + !*** ./src/components/VChip/VChip.sass ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VChip/VChip.ts": +/*!***************************************!*\ + !*** ./src/components/VChip/VChip.ts ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VChip_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VChip.sass */ "./src/components/VChip/VChip.sass"); +/* harmony import */ var _VChip_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VChip_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _transitions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../transitions */ "./src/components/transitions/index.ts"); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../VIcon */ "./src/components/VIcon/index.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_groupable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/groupable */ "./src/mixins/groupable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _mixins_toggleable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../mixins/toggleable */ "./src/mixins/toggleable/index.ts"); +/* harmony import */ var _mixins_routable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../mixins/routable */ "./src/mixins/routable/index.ts"); +/* harmony import */ var _mixins_sizeable__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../mixins/sizeable */ "./src/mixins/sizeable/index.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; // Styles + + + + // Components + + + // Mixins + + + + + + + // Utilities + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_1__["default"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_4__["default"], _mixins_sizeable__WEBPACK_IMPORTED_MODULE_9__["default"], _mixins_routable__WEBPACK_IMPORTED_MODULE_8__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_6__["default"], Object(_mixins_groupable__WEBPACK_IMPORTED_MODULE_5__["factory"])('chipGroup'), Object(_mixins_toggleable__WEBPACK_IMPORTED_MODULE_7__["factory"])('inputValue')).extend({ + name: 'v-chip', + props: { + active: { + type: Boolean, + default: true + }, + activeClass: { + type: String, + default: function _default() { + if (!this.chipGroup) return ''; + return this.chipGroup.activeClass; + } + }, + close: Boolean, + closeIcon: { + type: String, + default: '$delete' + }, + disabled: Boolean, + draggable: Boolean, + filter: Boolean, + filterIcon: { + type: String, + default: '$complete' + }, + label: Boolean, + link: Boolean, + outlined: Boolean, + pill: Boolean, + tag: { + type: String, + default: 'span' + }, + textColor: String, + value: null + }, + data: function data() { + return { + proxyClass: 'v-chip--active' + }; + }, + computed: { + classes: function classes() { + return __assign(__assign(__assign(__assign(__assign({ + 'v-chip': true + }, _mixins_routable__WEBPACK_IMPORTED_MODULE_8__["default"].options.computed.classes.call(this)), { + 'v-chip--clickable': this.isClickable, + 'v-chip--disabled': this.disabled, + 'v-chip--draggable': this.draggable, + 'v-chip--label': this.label, + 'v-chip--link': this.isLink, + 'v-chip--no-color': !this.color, + 'v-chip--outlined': this.outlined, + 'v-chip--pill': this.pill, + 'v-chip--removable': this.hasClose + }), this.themeClasses), this.sizeableClasses), this.groupClasses); + }, + hasClose: function hasClose() { + return Boolean(this.close); + }, + isClickable: function isClickable() { + return Boolean(_mixins_routable__WEBPACK_IMPORTED_MODULE_8__["default"].options.computed.isClickable.call(this) || this.chipGroup); + } + }, + created: function created() { + var _this = this; + + var breakingProps = [['outline', 'outlined'], ['selected', 'input-value'], ['value', 'active'], ['@input', '@active.sync']]; + /* istanbul ignore next */ + + breakingProps.forEach(function (_a) { + var _b = __read(_a, 2), + original = _b[0], + replacement = _b[1]; + + if (_this.$attrs.hasOwnProperty(original)) Object(_util_console__WEBPACK_IMPORTED_MODULE_10__["breaking"])(original, replacement, _this); + }); + }, + methods: { + click: function click(e) { + this.$emit('click', e); + this.chipGroup && this.toggle(); + }, + genFilter: function genFilter() { + var children = []; + + if (this.isActive) { + children.push(this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_3__["default"], { + staticClass: 'v-chip__filter', + props: { + left: true + } + }, this.filterIcon)); + } + + return this.$createElement(_transitions__WEBPACK_IMPORTED_MODULE_2__["VExpandXTransition"], children); + }, + genClose: function genClose() { + var _this = this; + + return this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_3__["default"], { + staticClass: 'v-chip__close', + props: { + right: true, + size: 18 + }, + on: { + click: function click(e) { + e.stopPropagation(); + e.preventDefault(); + + _this.$emit('click:close'); + + _this.$emit('update:active', false); + } + } + }, this.closeIcon); + }, + genContent: function genContent() { + return this.$createElement('span', { + staticClass: 'v-chip__content' + }, [this.filter && this.genFilter(), this.$slots.default, this.hasClose && this.genClose()]); + } + }, + render: function render(h) { + var children = [this.genContent()]; + + var _a = this.generateRouteLink(), + tag = _a.tag, + data = _a.data; + + data.attrs = __assign(__assign({}, data.attrs), { + draggable: this.draggable ? 'true' : undefined, + tabindex: this.chipGroup && !this.disabled ? 0 : data.attrs.tabindex + }); + data.directives.push({ + name: 'show', + value: this.active + }); + data = this.setBackgroundColor(this.color, data); + var color = this.textColor || this.outlined && this.color; + return h(tag, this.setTextColor(color, data), children); + } +})); + +/***/ }), + +/***/ "./src/components/VChip/index.ts": +/*!***************************************!*\ + !*** ./src/components/VChip/index.ts ***! + \***************************************/ +/*! exports provided: VChip, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VChip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VChip */ "./src/components/VChip/VChip.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VChip", function() { return _VChip__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VChip__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VChipGroup/VChipGroup.sass": +/*!***************************************************!*\ + !*** ./src/components/VChipGroup/VChipGroup.sass ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VChipGroup/VChipGroup.ts": +/*!*************************************************!*\ + !*** ./src/components/VChipGroup/VChipGroup.ts ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VChipGroup_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VChipGroup.sass */ "./src/components/VChipGroup/VChipGroup.sass"); +/* harmony import */ var _VChipGroup_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VChipGroup_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VSlideGroup_VSlideGroup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VSlideGroup/VSlideGroup */ "./src/components/VSlideGroup/VSlideGroup.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Extensions + + // Mixins + + // Utilities + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_3__["default"])(_VSlideGroup_VSlideGroup__WEBPACK_IMPORTED_MODULE_1__["BaseSlideGroup"], _mixins_colorable__WEBPACK_IMPORTED_MODULE_2__["default"]).extend({ + name: 'v-chip-group', + provide: function provide() { + return { + chipGroup: this + }; + }, + props: { + column: Boolean + }, + computed: { + classes: function classes() { + return __assign(__assign({}, _VSlideGroup_VSlideGroup__WEBPACK_IMPORTED_MODULE_1__["BaseSlideGroup"].options.computed.classes.call(this)), { + 'v-chip-group': true, + 'v-chip-group--column': this.column + }); + } + }, + watch: { + column: function column(val) { + if (val) this.scrollOffset = 0; + this.$nextTick(this.onResize); + } + }, + methods: { + genData: function genData() { + return this.setTextColor(this.color, __assign({}, _VSlideGroup_VSlideGroup__WEBPACK_IMPORTED_MODULE_1__["BaseSlideGroup"].options.methods.genData.call(this))); + } + } +})); + +/***/ }), + +/***/ "./src/components/VChipGroup/index.ts": +/*!********************************************!*\ + !*** ./src/components/VChipGroup/index.ts ***! + \********************************************/ +/*! exports provided: VChipGroup, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VChipGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VChipGroup */ "./src/components/VChipGroup/VChipGroup.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VChipGroup", function() { return _VChipGroup__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VChipGroup__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VColorPicker/VColorPicker.sass": +/*!*******************************************************!*\ + !*** ./src/components/VColorPicker/VColorPicker.sass ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VColorPicker/VColorPicker.ts": +/*!*****************************************************!*\ + !*** ./src/components/VColorPicker/VColorPicker.ts ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VColorPicker_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VColorPicker.sass */ "./src/components/VColorPicker/VColorPicker.sass"); +/* harmony import */ var _VColorPicker_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VColorPicker_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VSheet_VSheet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VSheet/VSheet */ "./src/components/VSheet/VSheet.ts"); +/* harmony import */ var _VColorPickerPreview__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./VColorPickerPreview */ "./src/components/VColorPicker/VColorPickerPreview.ts"); +/* harmony import */ var _VColorPickerCanvas__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./VColorPickerCanvas */ "./src/components/VColorPicker/VColorPickerCanvas.ts"); +/* harmony import */ var _VColorPickerEdit__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./VColorPickerEdit */ "./src/components/VColorPicker/VColorPickerEdit.ts"); +/* harmony import */ var _VColorPickerSwatches__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./VColorPickerSwatches */ "./src/components/VColorPicker/VColorPickerSwatches.ts"); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./util */ "./src/components/VColorPicker/util/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _mixins_elevatable__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../mixins/elevatable */ "./src/mixins/elevatable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Components + + + + + + // Helpers + + + + // Mixins + + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_7__["default"])(_mixins_elevatable__WEBPACK_IMPORTED_MODULE_9__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_10__["default"]).extend({ + name: 'v-color-picker', + props: { + canvasHeight: { + type: [String, Number], + default: 150 + }, + disabled: Boolean, + dotSize: { + type: [Number, String], + default: 10 + }, + flat: Boolean, + hideCanvas: Boolean, + hideInputs: Boolean, + hideModeSwitch: Boolean, + mode: { + type: String, + default: 'rgba', + validator: function validator(v) { + return Object.keys(_VColorPickerEdit__WEBPACK_IMPORTED_MODULE_4__["modes"]).includes(v); + } + }, + showSwatches: Boolean, + swatches: Array, + swatchesMaxHeight: { + type: [Number, String], + default: 150 + }, + value: { + type: [Object, String] + }, + width: { + type: [Number, String], + default: 300 + } + }, + data: function data() { + return { + internalValue: Object(_util__WEBPACK_IMPORTED_MODULE_6__["fromRGBA"])({ + r: 255, + g: 0, + b: 0, + a: 1 + }) + }; + }, + computed: { + hideAlpha: function hideAlpha() { + if (!this.value) return false; + return !Object(_util__WEBPACK_IMPORTED_MODULE_6__["hasAlpha"])(this.value); + } + }, + watch: { + value: { + handler: function handler(color) { + this.updateColor(Object(_util__WEBPACK_IMPORTED_MODULE_6__["parseColor"])(color, this.internalValue)); + }, + immediate: true + } + }, + methods: { + updateColor: function updateColor(color) { + this.internalValue = color; + var value = Object(_util__WEBPACK_IMPORTED_MODULE_6__["extractColor"])(this.internalValue, this.value); + + if (!Object(_util_helpers__WEBPACK_IMPORTED_MODULE_8__["deepEqual"])(value, this.value)) { + this.$emit('input', value); + this.$emit('update:color', this.internalValue); + } + }, + genCanvas: function genCanvas() { + return this.$createElement(_VColorPickerCanvas__WEBPACK_IMPORTED_MODULE_3__["default"], { + props: { + color: this.internalValue, + disabled: this.disabled, + dotSize: this.dotSize, + width: this.width, + height: this.canvasHeight + }, + on: { + 'update:color': this.updateColor + } + }); + }, + genControls: function genControls() { + return this.$createElement('div', { + staticClass: 'v-color-picker__controls' + }, [this.genPreview(), !this.hideInputs && this.genEdit()]); + }, + genEdit: function genEdit() { + var _this = this; + + return this.$createElement(_VColorPickerEdit__WEBPACK_IMPORTED_MODULE_4__["default"], { + props: { + color: this.internalValue, + disabled: this.disabled, + hideAlpha: this.hideAlpha, + hideModeSwitch: this.hideModeSwitch, + mode: this.mode + }, + on: { + 'update:color': this.updateColor, + 'update:mode': function updateMode(v) { + return _this.$emit('update:mode', v); + } + } + }); + }, + genPreview: function genPreview() { + return this.$createElement(_VColorPickerPreview__WEBPACK_IMPORTED_MODULE_2__["default"], { + props: { + color: this.internalValue, + disabled: this.disabled, + hideAlpha: this.hideAlpha + }, + on: { + 'update:color': this.updateColor + } + }); + }, + genSwatches: function genSwatches() { + return this.$createElement(_VColorPickerSwatches__WEBPACK_IMPORTED_MODULE_5__["default"], { + props: { + dark: this.dark, + light: this.light, + swatches: this.swatches, + color: this.internalValue, + maxHeight: this.swatchesMaxHeight + }, + on: { + 'update:color': this.updateColor + } + }); + } + }, + render: function render(h) { + return h(_VSheet_VSheet__WEBPACK_IMPORTED_MODULE_1__["default"], { + staticClass: 'v-color-picker', + class: __assign(__assign({ + 'v-color-picker--flat': this.flat + }, this.themeClasses), this.elevationClasses), + props: { + maxWidth: this.width + } + }, [!this.hideCanvas && this.genCanvas(), this.genControls(), this.showSwatches && this.genSwatches()]); + } +})); + +/***/ }), + +/***/ "./src/components/VColorPicker/VColorPickerCanvas.sass": +/*!*************************************************************!*\ + !*** ./src/components/VColorPicker/VColorPickerCanvas.sass ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VColorPicker/VColorPickerCanvas.ts": +/*!***********************************************************!*\ + !*** ./src/components/VColorPicker/VColorPickerCanvas.ts ***! + \***********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VColorPickerCanvas_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VColorPickerCanvas.sass */ "./src/components/VColorPicker/VColorPickerCanvas.sass"); +/* harmony import */ var _VColorPickerCanvas_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VColorPickerCanvas_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util */ "./src/components/VColorPicker/util/index.ts"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_3__); +// Styles + // Helpers + + + // Types + + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_3___default.a.extend({ + name: 'v-color-picker-canvas', + props: { + color: { + type: Object, + default: function _default() { + return Object(_util__WEBPACK_IMPORTED_MODULE_2__["fromRGBA"])({ + r: 255, + g: 0, + b: 0, + a: 1 + }); + } + }, + disabled: Boolean, + dotSize: { + type: [Number, String], + default: 10 + }, + height: { + type: [Number, String], + default: 150 + }, + width: { + type: [Number, String], + default: 300 + } + }, + data: function data() { + return { + boundingRect: { + width: 0, + height: 0, + left: 0, + top: 0 + } + }; + }, + computed: { + dot: function dot() { + if (!this.color) return { + x: 0, + y: 0 + }; + return { + x: this.color.hsva.s * parseInt(this.width, 10), + y: (1 - this.color.hsva.v) * parseInt(this.height, 10) + }; + } + }, + watch: { + 'color.hue': 'updateCanvas' + }, + mounted: function mounted() { + this.updateCanvas(); + }, + methods: { + emitColor: function emitColor(x, y) { + var _a = this.boundingRect, + left = _a.left, + top = _a.top, + width = _a.width, + height = _a.height; + this.$emit('update:color', Object(_util__WEBPACK_IMPORTED_MODULE_2__["fromHSVA"])({ + h: this.color.hue, + s: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["clamp"])(x - left, 0, width) / width, + v: 1 - Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["clamp"])(y - top, 0, height) / height, + a: this.color.alpha + })); + }, + updateCanvas: function updateCanvas() { + if (!this.color) return; + var canvas = this.$refs.canvas; + var ctx = canvas.getContext('2d'); + if (!ctx) return; + var saturationGradient = ctx.createLinearGradient(0, 0, canvas.width, 0); + saturationGradient.addColorStop(0, 'hsla(0, 0%, 100%, 1)'); // white + + saturationGradient.addColorStop(1, "hsla(" + this.color.hue + ", 100%, 50%, 1)"); + ctx.fillStyle = saturationGradient; + ctx.fillRect(0, 0, canvas.width, canvas.height); + var valueGradient = ctx.createLinearGradient(0, 0, 0, canvas.height); + valueGradient.addColorStop(0, 'hsla(0, 0%, 100%, 0)'); // transparent + + valueGradient.addColorStop(1, 'hsla(0, 0%, 0%, 1)'); // black + + ctx.fillStyle = valueGradient; + ctx.fillRect(0, 0, canvas.width, canvas.height); + }, + handleClick: function handleClick(e) { + if (this.disabled) return; + this.boundingRect = this.$el.getBoundingClientRect(); + this.emitColor(e.clientX, e.clientY); + }, + handleMouseDown: function handleMouseDown(e) { + // To prevent selection while moving cursor + e.preventDefault(); + if (this.disabled) return; + this.boundingRect = this.$el.getBoundingClientRect(); + window.addEventListener('mousemove', this.handleMouseMove); + window.addEventListener('mouseup', this.handleMouseUp); + }, + handleMouseMove: function handleMouseMove(e) { + if (this.disabled) return; + this.emitColor(e.clientX, e.clientY); + }, + handleMouseUp: function handleMouseUp() { + window.removeEventListener('mousemove', this.handleMouseMove); + window.removeEventListener('mouseup', this.handleMouseUp); + }, + genCanvas: function genCanvas() { + return this.$createElement('canvas', { + ref: 'canvas', + attrs: { + width: this.width, + height: this.height + } + }); + }, + genDot: function genDot() { + var radius = parseInt(this.dotSize, 10) / 2; + var x = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["convertToUnit"])(this.dot.x - radius); + var y = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["convertToUnit"])(this.dot.y - radius); + return this.$createElement('div', { + staticClass: 'v-color-picker__canvas-dot', + class: { + 'v-color-picker__canvas-dot--disabled': this.disabled + }, + style: { + width: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["convertToUnit"])(this.dotSize), + height: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["convertToUnit"])(this.dotSize), + transform: "translate(" + x + ", " + y + ")" + } + }); + } + }, + render: function render(h) { + return h('div', { + staticClass: 'v-color-picker__canvas', + style: { + width: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["convertToUnit"])(this.width), + height: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["convertToUnit"])(this.height) + }, + on: { + click: this.handleClick, + mousedown: this.handleMouseDown + } + }, [this.genCanvas(), this.genDot()]); + } +})); + +/***/ }), + +/***/ "./src/components/VColorPicker/VColorPickerEdit.sass": +/*!***********************************************************!*\ + !*** ./src/components/VColorPicker/VColorPickerEdit.sass ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VColorPicker/VColorPickerEdit.ts": +/*!*********************************************************!*\ + !*** ./src/components/VColorPicker/VColorPickerEdit.ts ***! + \*********************************************************/ +/*! exports provided: modes, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modes", function() { return modes; }); +/* harmony import */ var _VColorPickerEdit_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VColorPickerEdit.sass */ "./src/components/VColorPicker/VColorPickerEdit.sass"); +/* harmony import */ var _VColorPickerEdit_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VColorPickerEdit_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VBtn__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VBtn */ "./src/components/VBtn/index.ts"); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../VIcon */ "./src/components/VIcon/index.ts"); +/* harmony import */ var _util_colorUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/colorUtils */ "./src/util/colorUtils.ts"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./util */ "./src/components/VColorPicker/util/index.ts"); +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; // Styles + + + // Components + + + // Helpers + + // Types + + + +var modes = { + rgba: { + inputs: [['r', 255, 'int'], ['g', 255, 'int'], ['b', 255, 'int'], ['a', 1, 'float']], + from: _util__WEBPACK_IMPORTED_MODULE_5__["fromRGBA"] + }, + hsla: { + inputs: [['h', 360, 'int'], ['s', 1, 'float'], ['l', 1, 'float'], ['a', 1, 'float']], + from: _util__WEBPACK_IMPORTED_MODULE_5__["fromHSLA"] + }, + hexa: { + from: _util__WEBPACK_IMPORTED_MODULE_5__["fromHexa"] + } +}; +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_4___default.a.extend({ + name: 'v-color-picker-edit', + props: { + color: Object, + disabled: Boolean, + hideAlpha: Boolean, + hideModeSwitch: Boolean, + mode: { + type: String, + default: 'rgba', + validator: function validator(v) { + return Object.keys(modes).includes(v); + } + } + }, + data: function data() { + return { + modes: modes, + internalMode: this.mode + }; + }, + computed: { + currentMode: function currentMode() { + return this.modes[this.internalMode]; + } + }, + watch: { + mode: function mode(_mode) { + this.internalMode = _mode; + } + }, + created: function created() { + this.internalMode = this.mode; + }, + methods: { + getValue: function getValue(v, type) { + if (type === 'float') return Math.round(v * 100) / 100;else if (type === 'int') return Math.round(v);else return 0; + }, + parseValue: function parseValue(v, type) { + if (type === 'float') return parseFloat(v);else if (type === 'int') return parseInt(v, 10) || 0;else return 0; + }, + changeMode: function changeMode() { + var modes = Object.keys(this.modes); + var index = modes.indexOf(this.internalMode); + var newMode = modes[(index + 1) % modes.length]; + this.internalMode = newMode; + this.$emit('update:mode', newMode); + }, + genInput: function genInput(target, attrs, value, on) { + return this.$createElement('div', { + staticClass: 'v-color-picker__input' + }, [this.$createElement('input', { + key: target, + attrs: attrs, + domProps: { + value: value + }, + on: on + }), this.$createElement('span', target.toUpperCase())]); + }, + genInputs: function genInputs() { + var _this = this; + + if (this.internalMode === 'hexa') { + var hex = this.color.hexa; + var value = this.hideAlpha && hex.endsWith('FF') ? hex.substr(0, 7) : hex; + return this.genInput('hex', { + maxlength: this.hideAlpha ? 7 : 9, + disabled: this.disabled + }, value, { + change: function change(e) { + var el = e.target; + + _this.$emit('update:color', _this.currentMode.from(Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_3__["parseHex"])(el.value))); + } + }); + } else { + var inputs = this.hideAlpha ? this.currentMode.inputs.slice(0, -1) : this.currentMode.inputs; + return inputs.map(function (_a) { + var _b = __read(_a, 3), + target = _b[0], + max = _b[1], + type = _b[2]; + + var value = _this.color[_this.internalMode]; + return _this.genInput(target, { + type: 'number', + min: 0, + max: max, + step: type === 'float' ? '0.01' : type === 'int' ? '1' : undefined, + disabled: _this.disabled + }, _this.getValue(value[target], type), { + input: function input(e) { + var _a; + + var el = e.target; + + var newVal = _this.parseValue(el.value || '0', type); + + _this.$emit('update:color', _this.currentMode.from(Object.assign({}, value, (_a = {}, _a[target] = newVal, _a)), _this.color.alpha)); + } + }); + }); + } + }, + genSwitch: function genSwitch() { + return this.$createElement(_VBtn__WEBPACK_IMPORTED_MODULE_1__["default"], { + props: { + small: true, + icon: true, + disabled: this.disabled + }, + on: { + click: this.changeMode + } + }, [this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_2__["default"], '$unfold')]); + } + }, + render: function render(h) { + return h('div', { + staticClass: 'v-color-picker__edit' + }, [this.genInputs(), !this.hideModeSwitch && this.genSwitch()]); + } +})); + +/***/ }), + +/***/ "./src/components/VColorPicker/VColorPickerPreview.sass": +/*!**************************************************************!*\ + !*** ./src/components/VColorPicker/VColorPickerPreview.sass ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VColorPicker/VColorPickerPreview.ts": +/*!************************************************************!*\ + !*** ./src/components/VColorPicker/VColorPickerPreview.ts ***! + \************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VColorPickerPreview_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VColorPickerPreview.sass */ "./src/components/VColorPicker/VColorPickerPreview.sass"); +/* harmony import */ var _VColorPickerPreview_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VColorPickerPreview_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VSlider_VSlider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VSlider/VSlider */ "./src/components/VSlider/VSlider.ts"); +/* harmony import */ var _util_colorUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/colorUtils */ "./src/util/colorUtils.ts"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util */ "./src/components/VColorPicker/util/index.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Components + + // Utilities + + // Types + + + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_3___default.a.extend({ + name: 'v-color-picker-preview', + props: { + color: Object, + disabled: Boolean, + hideAlpha: Boolean + }, + methods: { + genAlpha: function genAlpha() { + var _this = this; + + return this.genTrack({ + staticClass: 'v-color-picker__alpha', + props: { + thumbColor: 'grey lighten-2', + hideDetails: true, + value: this.color.alpha, + step: 0, + min: 0, + max: 1 + }, + style: { + backgroundImage: this.disabled ? undefined : "linear-gradient(to " + (this.$vuetify.rtl ? 'left' : 'right') + ", transparent, " + Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_2__["RGBtoCSS"])(this.color.rgba) + ")" + }, + on: { + input: function input(val) { + return _this.color.alpha !== val && _this.$emit('update:color', Object(_util__WEBPACK_IMPORTED_MODULE_4__["fromHSVA"])(__assign(__assign({}, _this.color.hsva), { + a: val + }))); + } + } + }); + }, + genSliders: function genSliders() { + return this.$createElement('div', { + staticClass: 'v-color-picker__sliders' + }, [this.genHue(), !this.hideAlpha && this.genAlpha()]); + }, + genDot: function genDot() { + return this.$createElement('div', { + staticClass: 'v-color-picker__dot' + }, [this.$createElement('div', { + style: { + background: Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_2__["RGBAtoCSS"])(this.color.rgba) + } + })]); + }, + genHue: function genHue() { + var _this = this; + + return this.genTrack({ + staticClass: 'v-color-picker__hue', + props: { + thumbColor: 'grey lighten-2', + hideDetails: true, + value: this.color.hue, + step: 0, + min: 0, + max: 360 + }, + on: { + input: function input(val) { + return _this.color.hue !== val && _this.$emit('update:color', Object(_util__WEBPACK_IMPORTED_MODULE_4__["fromHSVA"])(__assign(__assign({}, _this.color.hsva), { + h: val + }))); + } + } + }); + }, + genTrack: function genTrack(options) { + return this.$createElement(_VSlider_VSlider__WEBPACK_IMPORTED_MODULE_1__["default"], __assign(__assign({ + class: 'v-color-picker__track' + }, options), { + props: __assign({ + disabled: this.disabled + }, options.props) + })); + } + }, + render: function render(h) { + return h('div', { + staticClass: 'v-color-picker__preview', + class: { + 'v-color-picker__preview--hide-alpha': this.hideAlpha + } + }, [this.genDot(), this.genSliders()]); + } +})); + +/***/ }), + +/***/ "./src/components/VColorPicker/VColorPickerSwatches.sass": +/*!***************************************************************!*\ + !*** ./src/components/VColorPicker/VColorPickerSwatches.sass ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VColorPicker/VColorPickerSwatches.ts": +/*!*************************************************************!*\ + !*** ./src/components/VColorPicker/VColorPickerSwatches.ts ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VColorPickerSwatches_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VColorPickerSwatches.sass */ "./src/components/VColorPicker/VColorPickerSwatches.sass"); +/* harmony import */ var _VColorPickerSwatches_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VColorPickerSwatches_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VIcon */ "./src/components/VIcon/index.ts"); +/* harmony import */ var _util_colors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/colors */ "./src/util/colors.ts"); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util */ "./src/components/VColorPicker/util/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_colorUtils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util/colorUtils */ "./src/util/colorUtils.ts"); +// Styles + // Components + + // Helpers + + + + + + + + +function parseDefaultColors(colors) { + return Object.keys(colors).map(function (key) { + var color = colors[key]; + return color.base ? [color.base, color.darken4, color.darken3, color.darken2, color.darken1, color.lighten1, color.lighten2, color.lighten3, color.lighten4, color.lighten5] : [color.black, color.white, color.transparent]; + }); +} + +var white = Object(_util__WEBPACK_IMPORTED_MODULE_3__["fromHex"])('#FFFFFF').rgba; +var black = Object(_util__WEBPACK_IMPORTED_MODULE_3__["fromHex"])('#000000').rgba; +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_5__["default"])(_mixins_themeable__WEBPACK_IMPORTED_MODULE_6__["default"]).extend({ + name: 'v-color-picker-swatches', + props: { + swatches: { + type: Array, + default: function _default() { + return parseDefaultColors(_util_colors__WEBPACK_IMPORTED_MODULE_2__["default"]); + } + }, + color: Object, + maxWidth: [Number, String], + maxHeight: [Number, String] + }, + methods: { + genColor: function genColor(color) { + var _this = this; + + var content = this.$createElement('div', { + style: { + background: color + } + }, [Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["deepEqual"])(this.color, Object(_util__WEBPACK_IMPORTED_MODULE_3__["parseColor"])(color, null)) && this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_1__["default"], { + props: { + small: true, + dark: Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_7__["contrastRatio"])(this.color.rgba, white) > 2 && this.color.alpha > 0.5, + light: Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_7__["contrastRatio"])(this.color.rgba, black) > 2 && this.color.alpha > 0.5 + } + }, '$success')]); + return this.$createElement('div', { + staticClass: 'v-color-picker__color', + on: { + // TODO: Less hacky way of catching transparent + click: function click() { + return _this.$emit('update:color', Object(_util__WEBPACK_IMPORTED_MODULE_3__["fromHex"])(color === 'transparent' ? '#00000000' : color)); + } + } + }, [content]); + }, + genSwatches: function genSwatches() { + var _this = this; + + return this.swatches.map(function (swatch) { + var colors = swatch.map(_this.genColor); + return _this.$createElement('div', { + staticClass: 'v-color-picker__swatch' + }, colors); + }); + } + }, + render: function render(h) { + return h('div', { + staticClass: 'v-color-picker__swatches', + style: { + maxWidth: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["convertToUnit"])(this.maxWidth), + maxHeight: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["convertToUnit"])(this.maxHeight) + } + }, [this.$createElement('div', this.genSwatches())]); + } +})); + +/***/ }), + +/***/ "./src/components/VColorPicker/index.ts": +/*!**********************************************!*\ + !*** ./src/components/VColorPicker/index.ts ***! + \**********************************************/ +/*! exports provided: VColorPicker, VColorPickerSwatches, VColorPickerCanvas, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VColorPicker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VColorPicker */ "./src/components/VColorPicker/VColorPicker.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VColorPicker", function() { return _VColorPicker__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + +/* harmony import */ var _VColorPickerSwatches__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VColorPickerSwatches */ "./src/components/VColorPicker/VColorPickerSwatches.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VColorPickerSwatches", function() { return _VColorPickerSwatches__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + +/* harmony import */ var _VColorPickerCanvas__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./VColorPickerCanvas */ "./src/components/VColorPicker/VColorPickerCanvas.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VColorPickerCanvas", function() { return _VColorPickerCanvas__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + + + + +/* harmony default export */ __webpack_exports__["default"] = (_VColorPicker__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VColorPicker/util/index.ts": +/*!***************************************************!*\ + !*** ./src/components/VColorPicker/util/index.ts ***! + \***************************************************/ +/*! exports provided: fromHSVA, fromHSLA, fromRGBA, fromHexa, fromHex, parseColor, extractColor, hasAlpha */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromHSVA", function() { return fromHSVA; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromHSLA", function() { return fromHSLA; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromRGBA", function() { return fromRGBA; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromHexa", function() { return fromHexa; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromHex", function() { return fromHex; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseColor", function() { return parseColor; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "extractColor", function() { return extractColor; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasAlpha", function() { return hasAlpha; }); +/* harmony import */ var _util_colorUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/colorUtils */ "./src/util/colorUtils.ts"); +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __rest = undefined && undefined.__rest || function (s, e) { + var t = {}; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; + } + + if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; + } + return t; +}; // Utilities + + + +function fromHSVA(hsva) { + hsva = __assign({}, hsva); + var hexa = Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_0__["HSVAtoHex"])(hsva); + var hsla = Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_0__["HSVAtoHSLA"])(hsva); + var rgba = Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_0__["HSVAtoRGBA"])(hsva); + return { + alpha: hsva.a, + hex: hexa.substr(0, 7), + hexa: hexa, + hsla: hsla, + hsva: hsva, + hue: hsva.h, + rgba: rgba + }; +} +function fromHSLA(hsla) { + var hsva = Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_0__["HSLAtoHSVA"])(hsla); + var hexa = Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_0__["HSVAtoHex"])(hsva); + var rgba = Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_0__["HSVAtoRGBA"])(hsva); + return { + alpha: hsva.a, + hex: hexa.substr(0, 7), + hexa: hexa, + hsla: hsla, + hsva: hsva, + hue: hsva.h, + rgba: rgba + }; +} +function fromRGBA(rgba) { + var hsva = Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_0__["RGBAtoHSVA"])(rgba); + var hexa = Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_0__["RGBAtoHex"])(rgba); + var hsla = Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_0__["HSVAtoHSLA"])(hsva); + return { + alpha: hsva.a, + hex: hexa.substr(0, 7), + hexa: hexa, + hsla: hsla, + hsva: hsva, + hue: hsva.h, + rgba: rgba + }; +} +function fromHexa(hexa) { + var hsva = Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_0__["HexToHSVA"])(hexa); + var hsla = Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_0__["HSVAtoHSLA"])(hsva); + var rgba = Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_0__["HSVAtoRGBA"])(hsva); + return { + alpha: hsva.a, + hex: hexa.substr(0, 7), + hexa: hexa, + hsla: hsla, + hsva: hsva, + hue: hsva.h, + rgba: rgba + }; +} +function fromHex(hex) { + return fromHexa(Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_0__["parseHex"])(hex)); +} + +function has(obj, key) { + return key.every(function (k) { + return obj.hasOwnProperty(k); + }); +} + +function parseColor(color, oldColor) { + if (!color) return fromRGBA({ + r: 255, + g: 0, + b: 0, + a: 1 + }); + + if (typeof color === 'string') { + if (color === 'transparent') return fromHexa('#00000000'); + var hex = Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_0__["parseHex"])(color); + if (oldColor && hex === oldColor.hexa) return oldColor;else return fromHexa(hex); + } + + if (_typeof(color) === 'object') { + if (color.hasOwnProperty('alpha')) return color; + var a = color.hasOwnProperty('a') ? parseFloat(color.a) : 1; + + if (has(color, ['r', 'g', 'b'])) { + if (oldColor && color === oldColor.rgba) return oldColor;else return fromRGBA(__assign(__assign({}, color), { + a: a + })); + } else if (has(color, ['h', 's', 'l'])) { + if (oldColor && color === oldColor.hsla) return oldColor;else return fromHSLA(__assign(__assign({}, color), { + a: a + })); + } else if (has(color, ['h', 's', 'v'])) { + if (oldColor && color === oldColor.hsva) return oldColor;else return fromHSVA(__assign(__assign({}, color), { + a: a + })); + } + } + + return fromRGBA({ + r: 255, + g: 0, + b: 0, + a: 1 + }); +} + +function stripAlpha(color, stripAlpha) { + if (stripAlpha) { + var a = color.a, + rest = __rest(color, ["a"]); + + return rest; + } + + return color; +} + +function extractColor(color, input) { + if (input == null) return color; + + if (typeof input === 'string') { + return input.length === 7 ? color.hex : color.hexa; + } + + if (_typeof(input) === 'object') { + var shouldStrip = typeof input.a === 'number' && input.a === 0 ? !!input.a : !input.a; + if (has(input, ['r', 'g', 'b'])) return stripAlpha(color.rgba, shouldStrip);else if (has(input, ['h', 's', 'l'])) return stripAlpha(color.hsla, shouldStrip);else if (has(input, ['h', 's', 'v'])) return stripAlpha(color.hsva, shouldStrip); + } + + return color; +} +function hasAlpha(color) { + if (!color) return false; + + if (typeof color === 'string') { + return color.length > 7; + } + + if (_typeof(color) === 'object') { + return has(color, ['a']) || has(color, ['alpha']); + } + + return false; +} + +/***/ }), + +/***/ "./src/components/VCombobox/VCombobox.ts": +/*!***********************************************!*\ + !*** ./src/components/VCombobox/VCombobox.ts ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VAutocomplete_VAutocomplete_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../VAutocomplete/VAutocomplete.sass */ "./src/components/VAutocomplete/VAutocomplete.sass"); +/* harmony import */ var _VAutocomplete_VAutocomplete_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VAutocomplete_VAutocomplete_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VSelect/VSelect */ "./src/components/VSelect/VSelect.ts"); +/* harmony import */ var _VAutocomplete_VAutocomplete__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../VAutocomplete/VAutocomplete */ "./src/components/VAutocomplete/VAutocomplete.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Extensions + + + // Utils + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (_VAutocomplete_VAutocomplete__WEBPACK_IMPORTED_MODULE_2__["default"].extend({ + name: 'v-combobox', + props: { + delimiters: { + type: Array, + default: function _default() { + return []; + } + }, + returnObject: { + type: Boolean, + default: true + } + }, + data: function data() { + return { + editingIndex: -1 + }; + }, + computed: { + computedCounterValue: function computedCounterValue() { + return this.multiple ? this.selectedItems.length : (this.internalSearch || '').toString().length; + }, + hasSlot: function hasSlot() { + return _VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.hasSlot.call(this) || this.multiple; + }, + isAnyValueAllowed: function isAnyValueAllowed() { + return true; + }, + menuCanShow: function menuCanShow() { + if (!this.isFocused) return false; + return this.hasDisplayedItems || !!this.$slots['no-data'] && !this.hideNoData; + } + }, + methods: { + onInternalSearchChanged: function onInternalSearchChanged(val) { + if (val && this.multiple && this.delimiters.length) { + var delimiter = this.delimiters.find(function (d) { + return val.endsWith(d); + }); + + if (delimiter != null) { + this.internalSearch = val.slice(0, val.length - delimiter.length); + this.updateTags(); + } + } + + this.updateMenuDimensions(); + }, + genInput: function genInput() { + var input = _VAutocomplete_VAutocomplete__WEBPACK_IMPORTED_MODULE_2__["default"].options.methods.genInput.call(this); + delete input.data.attrs.name; + input.data.on.paste = this.onPaste; + return input; + }, + genChipSelection: function genChipSelection(item, index) { + var _this = this; + + var chip = _VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.genChipSelection.call(this, item, index); // Allow user to update an existing value + + if (this.multiple) { + chip.componentOptions.listeners = __assign(__assign({}, chip.componentOptions.listeners), { + dblclick: function dblclick() { + _this.editingIndex = index; + _this.internalSearch = _this.getText(item); + _this.selectedIndex = -1; + } + }); + } + + return chip; + }, + onChipInput: function onChipInput(item) { + _VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.onChipInput.call(this, item); + this.editingIndex = -1; + }, + // Requires a manual definition + // to overwrite removal in v-autocomplete + onEnterDown: function onEnterDown(e) { + e.preventDefault(); // If has menu index, let v-select-list handle + + if (this.getMenuIndex() > -1) return; + this.$nextTick(this.updateSelf); + }, + onFilteredItemsChanged: function onFilteredItemsChanged(val, oldVal) { + if (!this.autoSelectFirst) return; + _VAutocomplete_VAutocomplete__WEBPACK_IMPORTED_MODULE_2__["default"].options.methods.onFilteredItemsChanged.call(this, val, oldVal); + }, + onKeyDown: function onKeyDown(e) { + var keyCode = e.keyCode; + _VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.onKeyDown.call(this, e); // If user is at selection index of 0 + // create a new tag + + if (this.multiple && keyCode === _util_helpers__WEBPACK_IMPORTED_MODULE_3__["keyCodes"].left && this.$refs.input.selectionStart === 0) { + this.updateSelf(); + } else if (keyCode === _util_helpers__WEBPACK_IMPORTED_MODULE_3__["keyCodes"].enter) { + this.onEnterDown(e); + } // The ordering is important here + // allows new value to be updated + // and then moves the index to the + // proper location + + + this.changeSelectedIndex(keyCode); + }, + onTabDown: function onTabDown(e) { + // When adding tags, if searching and + // there is not a filtered options, + // add the value to the tags list + if (this.multiple && this.internalSearch && this.getMenuIndex() === -1) { + e.preventDefault(); + e.stopPropagation(); + return this.updateTags(); + } + + _VAutocomplete_VAutocomplete__WEBPACK_IMPORTED_MODULE_2__["default"].options.methods.onTabDown.call(this, e); + }, + selectItem: function selectItem(item) { + // Currently only supports items:<string[]> + if (this.editingIndex > -1) { + this.updateEditing(); + } else { + _VAutocomplete_VAutocomplete__WEBPACK_IMPORTED_MODULE_2__["default"].options.methods.selectItem.call(this, item); + } + }, + setSelectedItems: function setSelectedItems() { + if (this.internalValue == null || this.internalValue === '') { + this.selectedItems = []; + } else { + this.selectedItems = this.multiple ? this.internalValue : [this.internalValue]; + } + }, + setValue: function setValue(value) { + _VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.setValue.call(this, value !== null && value !== void 0 ? value : this.internalSearch); + }, + updateEditing: function updateEditing() { + var value = this.internalValue.slice(); + value[this.editingIndex] = this.internalSearch; + this.setValue(value); + this.editingIndex = -1; + }, + updateCombobox: function updateCombobox() { + // If search is not dirty, do nothing + if (!this.searchIsDirty) return; // The internal search is not matching + // the internal value, update the input + + if (this.internalSearch !== this.getText(this.internalValue)) this.setValue(); // Reset search if using slot to avoid a double input + + var isUsingSlot = Boolean(this.$scopedSlots.selection) || this.hasChips; + if (isUsingSlot) this.internalSearch = undefined; + }, + updateSelf: function updateSelf() { + this.multiple ? this.updateTags() : this.updateCombobox(); + }, + updateTags: function updateTags() { + var menuIndex = this.getMenuIndex(); // If the user is not searching + // and no menu item is selected + // do nothing + + if (menuIndex < 0 && !this.searchIsDirty) return; + + if (this.editingIndex > -1) { + return this.updateEditing(); + } + + var index = this.selectedItems.indexOf(this.internalSearch); // If it already exists, do nothing + // this might need to change to bring + // the duplicated item to the last entered + + if (index > -1) { + var internalValue = this.internalValue.slice(); + internalValue.splice(index, 1); + this.setValue(internalValue); + } // If menu index is greater than 1 + // the selection is handled elsewhere + // TODO: find out where + + + if (menuIndex > -1) return this.internalSearch = null; + this.selectItem(this.internalSearch); + this.internalSearch = null; + }, + onPaste: function onPaste(event) { + var _a; + + if (!this.multiple || this.searchIsDirty) return; + var pastedItemText = (_a = event.clipboardData) === null || _a === void 0 ? void 0 : _a.getData('text/vnd.vuetify.autocomplete.item+plain'); + + if (pastedItemText && this.findExistingIndex(pastedItemText) === -1) { + event.preventDefault(); + _VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.selectItem.call(this, pastedItemText); + } + } + } +})); + +/***/ }), + +/***/ "./src/components/VCombobox/index.ts": +/*!*******************************************!*\ + !*** ./src/components/VCombobox/index.ts ***! + \*******************************************/ +/*! exports provided: VCombobox, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VCombobox__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VCombobox */ "./src/components/VCombobox/VCombobox.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCombobox", function() { return _VCombobox__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VCombobox__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VContent/VContent.ts": +/*!*********************************************!*\ + !*** ./src/components/VContent/VContent.ts ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VMain_VMain__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../VMain/VMain */ "./src/components/VMain/VMain.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +// Extensions + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (_VMain_VMain__WEBPACK_IMPORTED_MODULE_0__["default"].extend({ + name: 'v-main', + created: function created() { + Object(_util_console__WEBPACK_IMPORTED_MODULE_1__["deprecate"])('v-content', 'v-main', this); + }, + render: function render(h) { + // Add the legacy class names + var node = _VMain_VMain__WEBPACK_IMPORTED_MODULE_0__["default"].options.render.call(this, h); + node.data.staticClass += ' v-content'; + node.children[0].data.staticClass += ' v-content__wrap'; + return h(node.tag, node.data, node.children); + } +})); + +/***/ }), + +/***/ "./src/components/VContent/index.ts": +/*!******************************************!*\ + !*** ./src/components/VContent/index.ts ***! + \******************************************/ +/*! exports provided: VContent, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VContent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VContent */ "./src/components/VContent/VContent.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VContent", function() { return _VContent__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VContent__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VCounter/VCounter.sass": +/*!***********************************************!*\ + !*** ./src/components/VCounter/VCounter.sass ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VCounter/VCounter.ts": +/*!*********************************************!*\ + !*** ./src/components/VCounter/VCounter.ts ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VCounter_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VCounter.sass */ "./src/components/VCounter/VCounter.sass"); +/* harmony import */ var _VCounter_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VCounter_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Mixins + + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_2__["default"])(_mixins_themeable__WEBPACK_IMPORTED_MODULE_1__["default"]).extend({ + name: 'v-counter', + functional: true, + props: { + value: { + type: [Number, String], + default: '' + }, + max: [Number, String] + }, + render: function render(h, ctx) { + var props = ctx.props; + var max = parseInt(props.max, 10); + var value = parseInt(props.value, 10); + var content = max ? value + " / " + max : String(props.value); + var isGreater = max && value > max; + return h('div', { + staticClass: 'v-counter', + class: __assign({ + 'error--text': isGreater + }, Object(_mixins_themeable__WEBPACK_IMPORTED_MODULE_1__["functionalThemeClasses"])(ctx)) + }, content); + } +})); + +/***/ }), + +/***/ "./src/components/VCounter/index.ts": +/*!******************************************!*\ + !*** ./src/components/VCounter/index.ts ***! + \******************************************/ +/*! exports provided: VCounter, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VCounter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VCounter */ "./src/components/VCounter/VCounter.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCounter", function() { return _VCounter__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VCounter__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VData/VData.ts": +/*!***************************************!*\ + !*** ./src/components/VData/VData.ts ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_1__); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + +var __spread = undefined && undefined.__spread || function () { + for (var ar = [], i = 0; i < arguments.length; i++) { + ar = ar.concat(__read(arguments[i])); + } + + return ar; +}; // Helpers + + + + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_1___default.a.extend({ + name: 'v-data', + inheritAttrs: false, + props: { + items: { + type: Array, + default: function _default() { + return []; + } + }, + options: { + type: Object, + default: function _default() { + return {}; + } + }, + sortBy: { + type: [String, Array], + default: function _default() { + return []; + } + }, + sortDesc: { + type: [Boolean, Array], + default: function _default() { + return []; + } + }, + customSort: { + type: Function, + default: _util_helpers__WEBPACK_IMPORTED_MODULE_0__["sortItems"] + }, + mustSort: Boolean, + multiSort: Boolean, + page: { + type: Number, + default: 1 + }, + itemsPerPage: { + type: Number, + default: 10 + }, + groupBy: { + type: [String, Array], + default: function _default() { + return []; + } + }, + groupDesc: { + type: [Boolean, Array], + default: function _default() { + return []; + } + }, + customGroup: { + type: Function, + default: _util_helpers__WEBPACK_IMPORTED_MODULE_0__["groupItems"] + }, + locale: { + type: String, + default: 'en-US' + }, + disableSort: Boolean, + disablePagination: Boolean, + disableFiltering: Boolean, + search: String, + customFilter: { + type: Function, + default: _util_helpers__WEBPACK_IMPORTED_MODULE_0__["searchItems"] + }, + serverItemsLength: { + type: Number, + default: -1 + } + }, + data: function data() { + var _a, _b; + + var internalOptions = { + page: this.page, + itemsPerPage: this.itemsPerPage, + sortBy: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["wrapInArray"])(this.sortBy), + sortDesc: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["wrapInArray"])(this.sortDesc), + groupBy: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["wrapInArray"])(this.groupBy), + groupDesc: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["wrapInArray"])(this.groupDesc), + mustSort: this.mustSort, + multiSort: this.multiSort + }; + + if (this.options) { + internalOptions = Object.assign(internalOptions, this.options); + } + + var sortBy = internalOptions.sortBy, + sortDesc = internalOptions.sortDesc, + groupBy = internalOptions.groupBy, + groupDesc = internalOptions.groupDesc; + var sortDiff = sortBy.length - sortDesc.length; + var groupDiff = groupBy.length - groupDesc.length; + + if (sortDiff > 0) { + (_a = internalOptions.sortDesc).push.apply(_a, __spread(Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["fillArray"])(sortDiff, false))); + } + + if (groupDiff > 0) { + (_b = internalOptions.groupDesc).push.apply(_b, __spread(Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["fillArray"])(groupDiff, false))); + } + + return { + internalOptions: internalOptions + }; + }, + computed: { + itemsLength: function itemsLength() { + return this.serverItemsLength >= 0 ? this.serverItemsLength : this.filteredItems.length; + }, + pageCount: function pageCount() { + return this.internalOptions.itemsPerPage <= 0 ? 1 : Math.ceil(this.itemsLength / this.internalOptions.itemsPerPage); + }, + pageStart: function pageStart() { + if (this.internalOptions.itemsPerPage === -1 || !this.items.length) return 0; + return (this.internalOptions.page - 1) * this.internalOptions.itemsPerPage; + }, + pageStop: function pageStop() { + if (this.internalOptions.itemsPerPage === -1) return this.itemsLength; + if (!this.items.length) return 0; + return Math.min(this.itemsLength, this.internalOptions.page * this.internalOptions.itemsPerPage); + }, + isGrouped: function isGrouped() { + return !!this.internalOptions.groupBy.length; + }, + pagination: function pagination() { + return { + page: this.internalOptions.page, + itemsPerPage: this.internalOptions.itemsPerPage, + pageStart: this.pageStart, + pageStop: this.pageStop, + pageCount: this.pageCount, + itemsLength: this.itemsLength + }; + }, + filteredItems: function filteredItems() { + var items = this.items.slice(); + + if (!this.disableFiltering && this.serverItemsLength <= 0) { + items = this.customFilter(items, this.search); + } + + return items; + }, + computedItems: function computedItems() { + var items = this.filteredItems.slice(); + + if (!this.disableSort && this.serverItemsLength <= 0) { + items = this.sortItems(items); + } + + if (!this.disablePagination && this.serverItemsLength <= 0) { + items = this.paginateItems(items); + } + + return items; + }, + groupedItems: function groupedItems() { + return this.isGrouped ? this.groupItems(this.computedItems) : null; + }, + scopedProps: function scopedProps() { + return { + sort: this.sort, + sortArray: this.sortArray, + group: this.group, + items: this.computedItems, + options: this.internalOptions, + updateOptions: this.updateOptions, + pagination: this.pagination, + groupedItems: this.groupedItems, + originalItemsLength: this.items.length + }; + }, + computedOptions: function computedOptions() { + return __assign({}, this.options); + } + }, + watch: { + computedOptions: { + handler: function handler(options, old) { + if (Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["deepEqual"])(options, old)) return; + this.updateOptions(options); + }, + deep: true, + immediate: true + }, + internalOptions: { + handler: function handler(options, old) { + if (Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["deepEqual"])(options, old)) return; + this.$emit('update:options', options); + }, + deep: true, + immediate: true + }, + page: function page(_page) { + this.updateOptions({ + page: _page + }); + }, + 'internalOptions.page': function internalOptionsPage(page) { + this.$emit('update:page', page); + }, + itemsPerPage: function itemsPerPage(_itemsPerPage) { + this.updateOptions({ + itemsPerPage: _itemsPerPage + }); + }, + 'internalOptions.itemsPerPage': function internalOptionsItemsPerPage(itemsPerPage) { + this.$emit('update:items-per-page', itemsPerPage); + }, + sortBy: function sortBy(_sortBy) { + this.updateOptions({ + sortBy: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["wrapInArray"])(_sortBy) + }); + }, + 'internalOptions.sortBy': function internalOptionsSortBy(sortBy, old) { + !Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["deepEqual"])(sortBy, old) && this.$emit('update:sort-by', Array.isArray(this.sortBy) ? sortBy : sortBy[0]); + }, + sortDesc: function sortDesc(_sortDesc) { + this.updateOptions({ + sortDesc: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["wrapInArray"])(_sortDesc) + }); + }, + 'internalOptions.sortDesc': function internalOptionsSortDesc(sortDesc, old) { + !Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["deepEqual"])(sortDesc, old) && this.$emit('update:sort-desc', Array.isArray(this.sortDesc) ? sortDesc : sortDesc[0]); + }, + groupBy: function groupBy(_groupBy) { + this.updateOptions({ + groupBy: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["wrapInArray"])(_groupBy) + }); + }, + 'internalOptions.groupBy': function internalOptionsGroupBy(groupBy, old) { + !Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["deepEqual"])(groupBy, old) && this.$emit('update:group-by', Array.isArray(this.groupBy) ? groupBy : groupBy[0]); + }, + groupDesc: function groupDesc(_groupDesc) { + this.updateOptions({ + groupDesc: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["wrapInArray"])(_groupDesc) + }); + }, + 'internalOptions.groupDesc': function internalOptionsGroupDesc(groupDesc, old) { + !Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["deepEqual"])(groupDesc, old) && this.$emit('update:group-desc', Array.isArray(this.groupDesc) ? groupDesc : groupDesc[0]); + }, + multiSort: function multiSort(_multiSort) { + this.updateOptions({ + multiSort: _multiSort + }); + }, + 'internalOptions.multiSort': function internalOptionsMultiSort(multiSort) { + this.$emit('update:multi-sort', multiSort); + }, + mustSort: function mustSort(_mustSort) { + this.updateOptions({ + mustSort: _mustSort + }); + }, + 'internalOptions.mustSort': function internalOptionsMustSort(mustSort) { + this.$emit('update:must-sort', mustSort); + }, + pageCount: { + handler: function handler(pageCount) { + this.$emit('page-count', pageCount); + }, + immediate: true + }, + computedItems: { + handler: function handler(computedItems) { + this.$emit('current-items', computedItems); + }, + immediate: true + }, + pagination: { + handler: function handler(pagination, old) { + if (Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["deepEqual"])(pagination, old)) return; + this.$emit('pagination', this.pagination); + }, + immediate: true + } + }, + methods: { + toggle: function toggle(key, oldBy, oldDesc, page, mustSort, multiSort) { + var by = oldBy.slice(); + var desc = oldDesc.slice(); + var byIndex = by.findIndex(function (k) { + return k === key; + }); + + if (byIndex < 0) { + if (!multiSort) { + by = []; + desc = []; + } + + by.push(key); + desc.push(false); + } else if (byIndex >= 0 && !desc[byIndex]) { + desc[byIndex] = true; + } else if (!mustSort) { + by.splice(byIndex, 1); + desc.splice(byIndex, 1); + } else { + desc[byIndex] = false; + } // Reset page to 1 if sortBy or sortDesc have changed + + + if (!Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["deepEqual"])(by, oldBy) || !Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["deepEqual"])(desc, oldDesc)) { + page = 1; + } + + return { + by: by, + desc: desc, + page: page + }; + }, + group: function group(key) { + var _a = this.toggle(key, this.internalOptions.groupBy, this.internalOptions.groupDesc, this.internalOptions.page, true, false), + groupBy = _a.by, + groupDesc = _a.desc, + page = _a.page; + + this.updateOptions({ + groupBy: groupBy, + groupDesc: groupDesc, + page: page + }); + }, + sort: function sort(key) { + if (Array.isArray(key)) return this.sortArray(key); + + var _a = this.toggle(key, this.internalOptions.sortBy, this.internalOptions.sortDesc, this.internalOptions.page, this.internalOptions.mustSort, this.internalOptions.multiSort), + sortBy = _a.by, + sortDesc = _a.desc, + page = _a.page; + + this.updateOptions({ + sortBy: sortBy, + sortDesc: sortDesc, + page: page + }); + }, + sortArray: function sortArray(sortBy) { + var _this = this; + + var sortDesc = sortBy.map(function (s) { + var i = _this.internalOptions.sortBy.findIndex(function (k) { + return k === s; + }); + + return i > -1 ? _this.internalOptions.sortDesc[i] : false; + }); + this.updateOptions({ + sortBy: sortBy, + sortDesc: sortDesc + }); + }, + updateOptions: function updateOptions(options) { + this.internalOptions = __assign(__assign(__assign({}, this.internalOptions), options), { + page: this.serverItemsLength < 0 ? Math.max(1, Math.min(options.page || this.internalOptions.page, this.pageCount)) : options.page || this.internalOptions.page + }); + }, + sortItems: function sortItems(items) { + var sortBy = this.internalOptions.sortBy; + var sortDesc = this.internalOptions.sortDesc; + + if (this.internalOptions.groupBy.length) { + sortBy = __spread(this.internalOptions.groupBy, sortBy); + sortDesc = __spread(this.internalOptions.groupDesc, sortDesc); + } + + return this.customSort(items, sortBy, sortDesc, this.locale); + }, + groupItems: function groupItems(items) { + return this.customGroup(items, this.internalOptions.groupBy, this.internalOptions.groupDesc); + }, + paginateItems: function paginateItems(items) { + // Make sure we don't try to display non-existant page if items suddenly change + // TODO: Could possibly move this to pageStart/pageStop? + if (this.serverItemsLength === -1 && items.length <= this.pageStart) { + this.internalOptions.page = Math.max(1, this.internalOptions.page - 1); + } + + return items.slice(this.pageStart, this.pageStop); + } + }, + render: function render() { + return this.$scopedSlots.default && this.$scopedSlots.default(this.scopedProps); + } +})); + +/***/ }), + +/***/ "./src/components/VData/index.ts": +/*!***************************************!*\ + !*** ./src/components/VData/index.ts ***! + \***************************************/ +/*! exports provided: VData, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VData__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VData */ "./src/components/VData/VData.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VData", function() { return _VData__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VData__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VDataIterator/VDataFooter.sass": +/*!*******************************************************!*\ + !*** ./src/components/VDataIterator/VDataFooter.sass ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VDataIterator/VDataFooter.ts": +/*!*****************************************************!*\ + !*** ./src/components/VDataIterator/VDataFooter.ts ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VDataFooter_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VDataFooter.sass */ "./src/components/VDataIterator/VDataFooter.sass"); +/* harmony import */ var _VDataFooter_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VDataFooter_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VSelect/VSelect */ "./src/components/VSelect/VSelect.ts"); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../VIcon */ "./src/components/VIcon/index.ts"); +/* harmony import */ var _VBtn__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../VBtn */ "./src/components/VBtn/index.ts"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_4__); +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + + // Components + + + + // Types + + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_4___default.a.extend({ + name: 'v-data-footer', + props: { + options: { + type: Object, + required: true + }, + pagination: { + type: Object, + required: true + }, + itemsPerPageOptions: { + type: Array, + default: function _default() { + return [5, 10, 15, -1]; + } + }, + prevIcon: { + type: String, + default: '$prev' + }, + nextIcon: { + type: String, + default: '$next' + }, + firstIcon: { + type: String, + default: '$first' + }, + lastIcon: { + type: String, + default: '$last' + }, + itemsPerPageText: { + type: String, + default: '$vuetify.dataFooter.itemsPerPageText' + }, + itemsPerPageAllText: { + type: String, + default: '$vuetify.dataFooter.itemsPerPageAll' + }, + showFirstLastPage: Boolean, + showCurrentPage: Boolean, + disablePagination: Boolean, + disableItemsPerPage: Boolean, + pageText: { + type: String, + default: '$vuetify.dataFooter.pageText' + } + }, + computed: { + disableNextPageIcon: function disableNextPageIcon() { + return this.options.itemsPerPage <= 0 || this.options.page * this.options.itemsPerPage >= this.pagination.itemsLength || this.pagination.pageStop < 0; + }, + computedDataItemsPerPageOptions: function computedDataItemsPerPageOptions() { + var _this = this; + + return this.itemsPerPageOptions.map(function (option) { + if (_typeof(option) === 'object') return option;else return _this.genDataItemsPerPageOption(option); + }); + } + }, + methods: { + updateOptions: function updateOptions(obj) { + this.$emit('update:options', Object.assign({}, this.options, obj)); + }, + onFirstPage: function onFirstPage() { + this.updateOptions({ + page: 1 + }); + }, + onPreviousPage: function onPreviousPage() { + this.updateOptions({ + page: this.options.page - 1 + }); + }, + onNextPage: function onNextPage() { + this.updateOptions({ + page: this.options.page + 1 + }); + }, + onLastPage: function onLastPage() { + this.updateOptions({ + page: this.pagination.pageCount + }); + }, + onChangeItemsPerPage: function onChangeItemsPerPage(itemsPerPage) { + this.updateOptions({ + itemsPerPage: itemsPerPage, + page: 1 + }); + }, + genDataItemsPerPageOption: function genDataItemsPerPageOption(option) { + return { + text: option === -1 ? this.$vuetify.lang.t(this.itemsPerPageAllText) : String(option), + value: option + }; + }, + genItemsPerPageSelect: function genItemsPerPageSelect() { + var value = this.options.itemsPerPage; + var computedIPPO = this.computedDataItemsPerPageOptions; + if (computedIPPO.length <= 1) return null; + if (!computedIPPO.find(function (ippo) { + return ippo.value === value; + })) value = computedIPPO[0]; + return this.$createElement('div', { + staticClass: 'v-data-footer__select' + }, [this.$vuetify.lang.t(this.itemsPerPageText), this.$createElement(_VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__["default"], { + attrs: { + 'aria-label': this.$vuetify.lang.t(this.itemsPerPageText) + }, + props: { + disabled: this.disableItemsPerPage, + items: computedIPPO, + value: value, + hideDetails: true, + auto: true, + minWidth: '75px' + }, + on: { + input: this.onChangeItemsPerPage + } + })]); + }, + genPaginationInfo: function genPaginationInfo() { + var children = ['–']; + var itemsLength = this.pagination.itemsLength; + var pageStart = this.pagination.pageStart; + var pageStop = this.pagination.pageStop; + + if (this.pagination.itemsLength && this.pagination.itemsPerPage) { + pageStart = this.pagination.pageStart + 1; + pageStop = itemsLength < this.pagination.pageStop || this.pagination.pageStop < 0 ? itemsLength : this.pagination.pageStop; + children = this.$scopedSlots['page-text'] ? [this.$scopedSlots['page-text']({ + pageStart: pageStart, + pageStop: pageStop, + itemsLength: itemsLength + })] : [this.$vuetify.lang.t(this.pageText, pageStart, pageStop, itemsLength)]; + } else if (this.$scopedSlots['page-text']) { + children = [this.$scopedSlots['page-text']({ + pageStart: pageStart, + pageStop: pageStop, + itemsLength: itemsLength + })]; + } + + return this.$createElement('div', { + class: 'v-data-footer__pagination' + }, children); + }, + genIcon: function genIcon(click, disabled, label, icon) { + return this.$createElement(_VBtn__WEBPACK_IMPORTED_MODULE_3__["default"], { + props: { + disabled: disabled || this.disablePagination, + icon: true, + text: true + }, + on: { + click: click + }, + attrs: { + 'aria-label': label + } + }, [this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_2__["default"], icon)]); + }, + genIcons: function genIcons() { + var before = []; + var after = []; + before.push(this.genIcon(this.onPreviousPage, this.options.page === 1, this.$vuetify.lang.t('$vuetify.dataFooter.prevPage'), this.$vuetify.rtl ? this.nextIcon : this.prevIcon)); + after.push(this.genIcon(this.onNextPage, this.disableNextPageIcon, this.$vuetify.lang.t('$vuetify.dataFooter.nextPage'), this.$vuetify.rtl ? this.prevIcon : this.nextIcon)); + + if (this.showFirstLastPage) { + before.unshift(this.genIcon(this.onFirstPage, this.options.page === 1, this.$vuetify.lang.t('$vuetify.dataFooter.firstPage'), this.$vuetify.rtl ? this.lastIcon : this.firstIcon)); + after.push(this.genIcon(this.onLastPage, this.options.page >= this.pagination.pageCount || this.options.itemsPerPage === -1, this.$vuetify.lang.t('$vuetify.dataFooter.lastPage'), this.$vuetify.rtl ? this.firstIcon : this.lastIcon)); + } + + return [this.$createElement('div', { + staticClass: 'v-data-footer__icons-before' + }, before), this.showCurrentPage && this.$createElement('span', [this.options.page.toString()]), this.$createElement('div', { + staticClass: 'v-data-footer__icons-after' + }, after)]; + } + }, + render: function render() { + return this.$createElement('div', { + staticClass: 'v-data-footer' + }, [this.genItemsPerPageSelect(), this.genPaginationInfo(), this.genIcons()]); + } +})); + +/***/ }), + +/***/ "./src/components/VDataIterator/VDataIterator.ts": +/*!*******************************************************!*\ + !*** ./src/components/VDataIterator/VDataIterator.ts ***! + \*******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VData__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../VData */ "./src/components/VData/index.ts"); +/* harmony import */ var _VDataFooter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VDataFooter */ "./src/components/VDataIterator/VDataFooter.ts"); +/* harmony import */ var _mixins_mobile__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/mobile */ "./src/mixins/mobile/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; // Components + + + + // Mixins + + + // Helpers + + + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_4__["default"])(_mixins_mobile__WEBPACK_IMPORTED_MODULE_2__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_3__["default"]).extend({ + name: 'v-data-iterator', + props: __assign(__assign({}, _VData__WEBPACK_IMPORTED_MODULE_0__["VData"].options.props), { + itemKey: { + type: String, + default: 'id' + }, + value: { + type: Array, + default: function _default() { + return []; + } + }, + singleSelect: Boolean, + expanded: { + type: Array, + default: function _default() { + return []; + } + }, + mobileBreakpoint: __assign(__assign({}, _mixins_mobile__WEBPACK_IMPORTED_MODULE_2__["default"].options.props.mobileBreakpoint), { + default: 600 + }), + singleExpand: Boolean, + loading: [Boolean, String], + noResultsText: { + type: String, + default: '$vuetify.dataIterator.noResultsText' + }, + noDataText: { + type: String, + default: '$vuetify.noDataText' + }, + loadingText: { + type: String, + default: '$vuetify.dataIterator.loadingText' + }, + hideDefaultFooter: Boolean, + footerProps: Object, + selectableKey: { + type: String, + default: 'isSelectable' + } + }), + data: function data() { + return { + selection: {}, + expansion: {}, + internalCurrentItems: [] + }; + }, + computed: { + everyItem: function everyItem() { + var _this = this; + + return !!this.selectableItems.length && this.selectableItems.every(function (i) { + return _this.isSelected(i); + }); + }, + someItems: function someItems() { + var _this = this; + + return this.selectableItems.some(function (i) { + return _this.isSelected(i); + }); + }, + sanitizedFooterProps: function sanitizedFooterProps() { + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["camelizeObjectKeys"])(this.footerProps); + }, + selectableItems: function selectableItems() { + var _this = this; + + return this.internalCurrentItems.filter(function (item) { + return _this.isSelectable(item); + }); + } + }, + watch: { + value: { + handler: function handler(value) { + var _this = this; + + this.selection = value.reduce(function (selection, item) { + selection[Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["getObjectValueByPath"])(item, _this.itemKey)] = item; + return selection; + }, {}); + }, + immediate: true + }, + selection: function selection(value, old) { + if (Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["deepEqual"])(Object.keys(value), Object.keys(old))) return; + this.$emit('input', Object.values(value)); + }, + expanded: { + handler: function handler(value) { + var _this = this; + + this.expansion = value.reduce(function (expansion, item) { + expansion[Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["getObjectValueByPath"])(item, _this.itemKey)] = true; + return expansion; + }, {}); + }, + immediate: true + }, + expansion: function expansion(value, old) { + var _this = this; + + if (Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["deepEqual"])(value, old)) return; + var keys = Object.keys(value).filter(function (k) { + return value[k]; + }); + var expanded = !keys.length ? [] : this.items.filter(function (i) { + return keys.includes(String(Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["getObjectValueByPath"])(i, _this.itemKey))); + }); + this.$emit('update:expanded', expanded); + } + }, + created: function created() { + var _this = this; + + var breakingProps = [['disable-initial-sort', 'sort-by'], ['filter', 'custom-filter'], ['pagination', 'options'], ['total-items', 'server-items-length'], ['hide-actions', 'hide-default-footer'], ['rows-per-page-items', 'footer-props.items-per-page-options'], ['rows-per-page-text', 'footer-props.items-per-page-text'], ['prev-icon', 'footer-props.prev-icon'], ['next-icon', 'footer-props.next-icon']]; + /* istanbul ignore next */ + + breakingProps.forEach(function (_a) { + var _b = __read(_a, 2), + original = _b[0], + replacement = _b[1]; + + if (_this.$attrs.hasOwnProperty(original)) Object(_util_console__WEBPACK_IMPORTED_MODULE_6__["breaking"])(original, replacement, _this); + }); + var removedProps = ['expand', 'content-class', 'content-props', 'content-tag']; + /* istanbul ignore next */ + + removedProps.forEach(function (prop) { + if (_this.$attrs.hasOwnProperty(prop)) Object(_util_console__WEBPACK_IMPORTED_MODULE_6__["removed"])(prop); + }); + }, + methods: { + toggleSelectAll: function toggleSelectAll(value) { + var selection = Object.assign({}, this.selection); + + for (var i = 0; i < this.selectableItems.length; i++) { + var item = this.selectableItems[i]; + if (!this.isSelectable(item)) continue; + var key = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["getObjectValueByPath"])(item, this.itemKey); + if (value) selection[key] = item;else delete selection[key]; + } + + this.selection = selection; + this.$emit('toggle-select-all', { + items: this.internalCurrentItems, + value: value + }); + }, + isSelectable: function isSelectable(item) { + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["getObjectValueByPath"])(item, this.selectableKey) !== false; + }, + isSelected: function isSelected(item) { + return !!this.selection[Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["getObjectValueByPath"])(item, this.itemKey)] || false; + }, + select: function select(item, value, emit) { + if (value === void 0) { + value = true; + } + + if (emit === void 0) { + emit = true; + } + + if (!this.isSelectable(item)) return; + var selection = this.singleSelect ? {} : Object.assign({}, this.selection); + var key = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["getObjectValueByPath"])(item, this.itemKey); + if (value) selection[key] = item;else delete selection[key]; + + if (this.singleSelect && emit) { + var keys = Object.keys(this.selection); + var old = keys.length && Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["getObjectValueByPath"])(this.selection[keys[0]], this.itemKey); + old && old !== key && this.$emit('item-selected', { + item: this.selection[old], + value: false + }); + } + + this.selection = selection; + emit && this.$emit('item-selected', { + item: item, + value: value + }); + }, + isExpanded: function isExpanded(item) { + return this.expansion[Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["getObjectValueByPath"])(item, this.itemKey)] || false; + }, + expand: function expand(item, value) { + if (value === void 0) { + value = true; + } + + var expansion = this.singleExpand ? {} : Object.assign({}, this.expansion); + var key = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["getObjectValueByPath"])(item, this.itemKey); + if (value) expansion[key] = true;else delete expansion[key]; + this.expansion = expansion; + this.$emit('item-expanded', { + item: item, + value: value + }); + }, + createItemProps: function createItemProps(item) { + var _this = this; + + return { + item: item, + select: function select(v) { + return _this.select(item, v); + }, + isSelected: this.isSelected(item), + expand: function expand(v) { + return _this.expand(item, v); + }, + isExpanded: this.isExpanded(item), + isMobile: this.isMobile + }; + }, + genEmptyWrapper: function genEmptyWrapper(content) { + return this.$createElement('div', content); + }, + genEmpty: function genEmpty(originalItemsLength, filteredItemsLength) { + if (originalItemsLength === 0 && this.loading) { + var loading = this.$slots.loading || this.$vuetify.lang.t(this.loadingText); + return this.genEmptyWrapper(loading); + } else if (originalItemsLength === 0) { + var noData = this.$slots['no-data'] || this.$vuetify.lang.t(this.noDataText); + return this.genEmptyWrapper(noData); + } else if (filteredItemsLength === 0) { + var noResults = this.$slots['no-results'] || this.$vuetify.lang.t(this.noResultsText); + return this.genEmptyWrapper(noResults); + } + + return null; + }, + genItems: function genItems(props) { + var _this = this; + + var empty = this.genEmpty(props.originalItemsLength, props.pagination.itemsLength); + if (empty) return [empty]; + + if (this.$scopedSlots.default) { + return this.$scopedSlots.default(__assign(__assign({}, props), { + isSelected: this.isSelected, + select: this.select, + isExpanded: this.isExpanded, + expand: this.expand + })); + } + + if (this.$scopedSlots.item) { + return props.items.map(function (item) { + return _this.$scopedSlots.item(_this.createItemProps(item)); + }); + } + + return []; + }, + genFooter: function genFooter(props) { + if (this.hideDefaultFooter) return null; + var data = { + props: __assign(__assign({}, this.sanitizedFooterProps), { + options: props.options, + pagination: props.pagination + }), + on: { + 'update:options': function updateOptions(value) { + return props.updateOptions(value); + } + } + }; + var scopedSlots = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["getPrefixedScopedSlots"])('footer.', this.$scopedSlots); + return this.$createElement(_VDataFooter__WEBPACK_IMPORTED_MODULE_1__["default"], __assign({ + scopedSlots: scopedSlots + }, data)); + }, + genDefaultScopedSlot: function genDefaultScopedSlot(props) { + var outerProps = __assign(__assign({}, props), { + someItems: this.someItems, + everyItem: this.everyItem, + toggleSelectAll: this.toggleSelectAll + }); + + return this.$createElement('div', { + staticClass: 'v-data-iterator' + }, [Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["getSlot"])(this, 'header', outerProps, true), this.genItems(props), this.genFooter(props), Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["getSlot"])(this, 'footer', outerProps, true)]); + } + }, + render: function render() { + var _this = this; + + return this.$createElement(_VData__WEBPACK_IMPORTED_MODULE_0__["VData"], { + props: this.$props, + on: { + 'update:options': function updateOptions(v, old) { + return !Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["deepEqual"])(v, old) && _this.$emit('update:options', v); + }, + 'update:page': function updatePage(v) { + return _this.$emit('update:page', v); + }, + 'update:items-per-page': function updateItemsPerPage(v) { + return _this.$emit('update:items-per-page', v); + }, + 'update:sort-by': function updateSortBy(v) { + return _this.$emit('update:sort-by', v); + }, + 'update:sort-desc': function updateSortDesc(v) { + return _this.$emit('update:sort-desc', v); + }, + 'update:group-by': function updateGroupBy(v) { + return _this.$emit('update:group-by', v); + }, + 'update:group-desc': function updateGroupDesc(v) { + return _this.$emit('update:group-desc', v); + }, + pagination: function pagination(v, old) { + return !Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["deepEqual"])(v, old) && _this.$emit('pagination', v); + }, + 'current-items': function currentItems(v) { + _this.internalCurrentItems = v; + + _this.$emit('current-items', v); + }, + 'page-count': function pageCount(v) { + return _this.$emit('page-count', v); + } + }, + scopedSlots: { + default: this.genDefaultScopedSlot + } + }); + } +})); + +/***/ }), + +/***/ "./src/components/VDataIterator/index.ts": +/*!***********************************************!*\ + !*** ./src/components/VDataIterator/index.ts ***! + \***********************************************/ +/*! exports provided: VDataIterator, VDataFooter, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VDataIterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VDataIterator */ "./src/components/VDataIterator/VDataIterator.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDataIterator", function() { return _VDataIterator__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + +/* harmony import */ var _VDataFooter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VDataFooter */ "./src/components/VDataIterator/VDataFooter.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDataFooter", function() { return _VDataFooter__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + $_vuetify_subcomponents: { + VDataIterator: _VDataIterator__WEBPACK_IMPORTED_MODULE_0__["default"], + VDataFooter: _VDataFooter__WEBPACK_IMPORTED_MODULE_1__["default"] + } +}); + +/***/ }), + +/***/ "./src/components/VDataTable/MobileRow.ts": +/*!************************************************!*\ + !*** ./src/components/VDataTable/MobileRow.ts ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + + + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: 'row', + functional: true, + props: { + headers: Array, + hideDefaultHeader: Boolean, + item: Object, + rtl: Boolean + }, + render: function render(h, _a) { + var props = _a.props, + slots = _a.slots, + data = _a.data; + var computedSlots = slots(); + var columns = props.headers.map(function (header) { + var classes = { + 'v-data-table__mobile-row': true + }; + var children = []; + var value = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["getObjectValueByPath"])(props.item, header.value); + var slotName = header.value; + var scopedSlot = data.scopedSlots && data.scopedSlots[slotName]; + var regularSlot = computedSlots[slotName]; + + if (scopedSlot) { + children.push(scopedSlot({ + item: props.item, + header: header, + value: value + })); + } else if (regularSlot) { + children.push(regularSlot); + } else { + children.push(value == null ? value : String(value)); + } + + var mobileRowChildren = [h('div', { + staticClass: 'v-data-table__mobile-row__cell' + }, children)]; + + if (header.value !== 'dataTableSelect' && !props.hideDefaultHeader) { + mobileRowChildren.unshift(h('div', { + staticClass: 'v-data-table__mobile-row__header' + }, [header.text])); + } + + return h('td', { + class: classes + }, mobileRowChildren); + }); + return h('tr', __assign(__assign({}, data), { + staticClass: 'v-data-table__mobile-table-row' + }), columns); + } +})); + +/***/ }), + +/***/ "./src/components/VDataTable/Row.ts": +/*!******************************************!*\ + !*** ./src/components/VDataTable/Row.ts ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +// Types + // Utils + + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: 'row', + functional: true, + props: { + headers: Array, + item: Object, + rtl: Boolean + }, + render: function render(h, _a) { + var props = _a.props, + slots = _a.slots, + data = _a.data; + var computedSlots = slots(); + var columns = props.headers.map(function (header) { + var _a; + + var children = []; + var value = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["getObjectValueByPath"])(props.item, header.value); + var slotName = header.value; + var scopedSlot = data.scopedSlots && data.scopedSlots[slotName]; + var regularSlot = computedSlots[slotName]; + + if (scopedSlot) { + children.push(scopedSlot({ + item: props.item, + header: header, + value: value + })); + } else if (regularSlot) { + children.push(regularSlot); + } else { + children.push(value == null ? value : String(value)); + } + + var textAlign = "text-" + (header.align || 'start'); + return h('td', { + class: (_a = {}, _a[textAlign] = true, _a['v-data-table__divider'] = header.divider, _a) + }, children); + }); + return h('tr', data, columns); + } +})); + +/***/ }), + +/***/ "./src/components/VDataTable/RowGroup.ts": +/*!***********************************************!*\ + !*** ./src/components/VDataTable/RowGroup.ts ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + +var __spread = undefined && undefined.__spread || function () { + for (var ar = [], i = 0; i < arguments.length; i++) { + ar = ar.concat(__read(arguments[i])); + } + + return ar; +}; + + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: 'row-group', + functional: true, + props: { + value: { + type: Boolean, + default: true + }, + headerClass: { + type: String, + default: 'v-row-group__header' + }, + contentClass: String, + summaryClass: { + type: String, + default: 'v-row-group__summary' + } + }, + render: function render(h, _a) { + var slots = _a.slots, + props = _a.props; + var computedSlots = slots(); + var children = []; + + if (computedSlots['column.header']) { + children.push(h('tr', { + staticClass: props.headerClass + }, computedSlots['column.header'])); + } else if (computedSlots['row.header']) { + children.push.apply(children, __spread(computedSlots['row.header'])); + } + + if (computedSlots['row.content'] && props.value) children.push.apply(children, __spread(computedSlots['row.content'])); + + if (computedSlots['column.summary']) { + children.push(h('tr', { + staticClass: props.summaryClass + }, computedSlots['column.summary'])); + } else if (computedSlots['row.summary']) { + children.push.apply(children, __spread(computedSlots['row.summary'])); + } + + return children; + } +})); + +/***/ }), + +/***/ "./src/components/VDataTable/VDataTable.sass": +/*!***************************************************!*\ + !*** ./src/components/VDataTable/VDataTable.sass ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VDataTable/VDataTable.ts": +/*!*************************************************!*\ + !*** ./src/components/VDataTable/VDataTable.ts ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VDataTable_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VDataTable.sass */ "./src/components/VDataTable/VDataTable.sass"); +/* harmony import */ var _VDataTable_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VDataTable_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VData__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VData */ "./src/components/VData/index.ts"); +/* harmony import */ var _VDataIterator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../VDataIterator */ "./src/components/VDataIterator/index.ts"); +/* harmony import */ var _VBtn__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../VBtn */ "./src/components/VBtn/index.ts"); +/* harmony import */ var _VDataTableHeader__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./VDataTableHeader */ "./src/components/VDataTable/VDataTableHeader.ts"); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../VIcon */ "./src/components/VIcon/index.ts"); +/* harmony import */ var _Row__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Row */ "./src/components/VDataTable/Row.ts"); +/* harmony import */ var _RowGroup__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./RowGroup */ "./src/components/VDataTable/RowGroup.ts"); +/* harmony import */ var _VCheckbox_VSimpleCheckbox__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../VCheckbox/VSimpleCheckbox */ "./src/components/VCheckbox/VSimpleCheckbox.ts"); +/* harmony import */ var _VSimpleTable__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./VSimpleTable */ "./src/components/VDataTable/VSimpleTable.ts"); +/* harmony import */ var _MobileRow__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./MobileRow */ "./src/components/VDataTable/MobileRow.ts"); +/* harmony import */ var _mixins_loadable__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../mixins/loadable */ "./src/mixins/loadable/index.ts"); +/* harmony import */ var _directives_ripple__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../directives/ripple */ "./src/directives/ripple/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +/* harmony import */ var _util_mergeData__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../util/mergeData */ "./src/util/mergeData.ts"); +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + + // Components + + + + + // import VVirtualTable from './VVirtualTable' + + + + + + + // Mixins + + // Directives + + // Helpers + + + + + + +function filterFn(item, search, filter) { + return function (header) { + var value = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_14__["getObjectValueByPath"])(item, header.value); + return header.filter ? header.filter(value, search, item) : filter(value, search, item); + }; +} + +function searchTableItems(items, search, headersWithCustomFilters, headersWithoutCustomFilters, customFilter) { + search = typeof search === 'string' ? search.trim() : null; + return items.filter(function (item) { + // Headers with custom filters are evaluated whether or not a search term has been provided. + // We need to match every filter to be included in the results. + var matchesColumnFilters = headersWithCustomFilters.every(filterFn(item, search, _util_helpers__WEBPACK_IMPORTED_MODULE_14__["defaultFilter"])); // Headers without custom filters are only filtered by the `search` property if it is defined. + // We only need a single column to match the search term to be included in the results. + + var matchesSearchTerm = !search || headersWithoutCustomFilters.some(filterFn(item, search, customFilter)); + return matchesColumnFilters && matchesSearchTerm; + }); +} +/* @vue/component */ + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_13__["default"])(_VDataIterator__WEBPACK_IMPORTED_MODULE_2__["VDataIterator"], _mixins_loadable__WEBPACK_IMPORTED_MODULE_11__["default"]).extend({ + name: 'v-data-table', + // https://github.com/vuejs/vue/issues/6872 + directives: { + ripple: _directives_ripple__WEBPACK_IMPORTED_MODULE_12__["default"] + }, + props: { + headers: { + type: Array, + default: function _default() { + return []; + } + }, + showSelect: Boolean, + showExpand: Boolean, + showGroupBy: Boolean, + // TODO: Fix + // virtualRows: Boolean, + height: [Number, String], + hideDefaultHeader: Boolean, + caption: String, + dense: Boolean, + headerProps: Object, + calculateWidths: Boolean, + fixedHeader: Boolean, + headersLength: Number, + expandIcon: { + type: String, + default: '$expand' + }, + customFilter: { + type: Function, + default: _util_helpers__WEBPACK_IMPORTED_MODULE_14__["defaultFilter"] + }, + itemClass: { + type: [String, Function], + default: function _default() { + return ''; + } + }, + loaderHeight: { + type: [Number, String], + default: 4 + } + }, + data: function data() { + return { + internalGroupBy: [], + openCache: {}, + widths: [] + }; + }, + computed: { + computedHeaders: function computedHeaders() { + var _this = this; + + if (!this.headers) return []; + var headers = this.headers.filter(function (h) { + return h.value === undefined || !_this.internalGroupBy.find(function (v) { + return v === h.value; + }); + }); + var defaultHeader = { + text: '', + sortable: false, + width: '1px' + }; + + if (this.showSelect) { + var index = headers.findIndex(function (h) { + return h.value === 'data-table-select'; + }); + if (index < 0) headers.unshift(__assign(__assign({}, defaultHeader), { + value: 'data-table-select' + }));else headers.splice(index, 1, __assign(__assign({}, defaultHeader), headers[index])); + } + + if (this.showExpand) { + var index = headers.findIndex(function (h) { + return h.value === 'data-table-expand'; + }); + if (index < 0) headers.unshift(__assign(__assign({}, defaultHeader), { + value: 'data-table-expand' + }));else headers.splice(index, 1, __assign(__assign({}, defaultHeader), headers[index])); + } + + return headers; + }, + colspanAttrs: function colspanAttrs() { + return this.isMobile ? undefined : { + colspan: this.headersLength || this.computedHeaders.length + }; + }, + columnSorters: function columnSorters() { + return this.computedHeaders.reduce(function (acc, header) { + if (header.sort) acc[header.value] = header.sort; + return acc; + }, {}); + }, + headersWithCustomFilters: function headersWithCustomFilters() { + return this.headers.filter(function (header) { + return header.filter && (!header.hasOwnProperty('filterable') || header.filterable === true); + }); + }, + headersWithoutCustomFilters: function headersWithoutCustomFilters() { + return this.headers.filter(function (header) { + return !header.filter && (!header.hasOwnProperty('filterable') || header.filterable === true); + }); + }, + sanitizedHeaderProps: function sanitizedHeaderProps() { + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_14__["camelizeObjectKeys"])(this.headerProps); + }, + computedItemsPerPage: function computedItemsPerPage() { + var itemsPerPage = this.options && this.options.itemsPerPage ? this.options.itemsPerPage : this.itemsPerPage; + var itemsPerPageOptions = this.sanitizedFooterProps.itemsPerPageOptions; + + if (itemsPerPageOptions && !itemsPerPageOptions.find(function (item) { + return typeof item === 'number' ? item === itemsPerPage : item.value === itemsPerPage; + })) { + var firstOption = itemsPerPageOptions[0]; + return _typeof(firstOption) === 'object' ? firstOption.value : firstOption; + } + + return itemsPerPage; + } + }, + created: function created() { + var _this = this; + + var breakingProps = [['sort-icon', 'header-props.sort-icon'], ['hide-headers', 'hide-default-header'], ['select-all', 'show-select']]; + /* istanbul ignore next */ + + breakingProps.forEach(function (_a) { + var _b = __read(_a, 2), + original = _b[0], + replacement = _b[1]; + + if (_this.$attrs.hasOwnProperty(original)) Object(_util_console__WEBPACK_IMPORTED_MODULE_15__["breaking"])(original, replacement, _this); + }); + }, + mounted: function mounted() { + // if ((!this.sortBy || !this.sortBy.length) && (!this.options.sortBy || !this.options.sortBy.length)) { + // const firstSortable = this.headers.find(h => !('sortable' in h) || !!h.sortable) + // if (firstSortable) this.updateOptions({ sortBy: [firstSortable.value], sortDesc: [false] }) + // } + if (this.calculateWidths) { + window.addEventListener('resize', this.calcWidths); + this.calcWidths(); + } + }, + beforeDestroy: function beforeDestroy() { + if (this.calculateWidths) { + window.removeEventListener('resize', this.calcWidths); + } + }, + methods: { + calcWidths: function calcWidths() { + this.widths = Array.from(this.$el.querySelectorAll('th')).map(function (e) { + return e.clientWidth; + }); + }, + customFilterWithColumns: function customFilterWithColumns(items, search) { + return searchTableItems(items, search, this.headersWithCustomFilters, this.headersWithoutCustomFilters, this.customFilter); + }, + customSortWithHeaders: function customSortWithHeaders(items, sortBy, sortDesc, locale) { + return this.customSort(items, sortBy, sortDesc, locale, this.columnSorters); + }, + createItemProps: function createItemProps(item) { + var props = _VDataIterator__WEBPACK_IMPORTED_MODULE_2__["VDataIterator"].options.methods.createItemProps.call(this, item); + return Object.assign(props, { + headers: this.computedHeaders + }); + }, + genCaption: function genCaption(props) { + if (this.caption) return [this.$createElement('caption', [this.caption])]; + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_14__["getSlot"])(this, 'caption', props, true); + }, + genColgroup: function genColgroup(props) { + var _this = this; + + return this.$createElement('colgroup', this.computedHeaders.map(function (header) { + return _this.$createElement('col', { + class: { + divider: header.divider + } + }); + })); + }, + genLoading: function genLoading() { + var th = this.$createElement('th', { + staticClass: 'column', + attrs: this.colspanAttrs + }, [this.genProgress()]); + var tr = this.$createElement('tr', { + staticClass: 'v-data-table__progress' + }, [th]); + return this.$createElement('thead', [tr]); + }, + genHeaders: function genHeaders(props) { + var data = { + props: __assign(__assign({}, this.sanitizedHeaderProps), { + headers: this.computedHeaders, + options: props.options, + mobile: this.isMobile, + showGroupBy: this.showGroupBy, + someItems: this.someItems, + everyItem: this.everyItem, + singleSelect: this.singleSelect, + disableSort: this.disableSort + }), + on: { + sort: props.sort, + group: props.group, + 'toggle-select-all': this.toggleSelectAll + } + }; + var children = [Object(_util_helpers__WEBPACK_IMPORTED_MODULE_14__["getSlot"])(this, 'header', data)]; + + if (!this.hideDefaultHeader) { + var scopedSlots = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_14__["getPrefixedScopedSlots"])('header.', this.$scopedSlots); + children.push(this.$createElement(_VDataTableHeader__WEBPACK_IMPORTED_MODULE_4__["default"], __assign(__assign({}, data), { + scopedSlots: scopedSlots + }))); + } + + if (this.loading) children.push(this.genLoading()); + return children; + }, + genEmptyWrapper: function genEmptyWrapper(content) { + return this.$createElement('tr', { + staticClass: 'v-data-table__empty-wrapper' + }, [this.$createElement('td', { + attrs: this.colspanAttrs + }, content)]); + }, + genItems: function genItems(items, props) { + var empty = this.genEmpty(props.originalItemsLength, props.pagination.itemsLength); + if (empty) return [empty]; + return props.groupedItems ? this.genGroupedRows(props.groupedItems, props) : this.genRows(items, props); + }, + genGroupedRows: function genGroupedRows(groupedItems, props) { + var _this = this; + + return groupedItems.map(function (group) { + if (!_this.openCache.hasOwnProperty(group.name)) _this.$set(_this.openCache, group.name, true); + + if (_this.$scopedSlots.group) { + return _this.$scopedSlots.group({ + group: group.name, + options: props.options, + items: group.items, + headers: _this.computedHeaders + }); + } else { + return _this.genDefaultGroupedRow(group.name, group.items, props); + } + }); + }, + genDefaultGroupedRow: function genDefaultGroupedRow(group, items, props) { + var _this = this; + + var isOpen = !!this.openCache[group]; + var children = [this.$createElement('template', { + slot: 'row.content' + }, this.genRows(items, props))]; + + var toggleFn = function toggleFn() { + return _this.$set(_this.openCache, group, !_this.openCache[group]); + }; + + var removeFn = function removeFn() { + return props.updateOptions({ + groupBy: [], + groupDesc: [] + }); + }; + + if (this.$scopedSlots['group.header']) { + children.unshift(this.$createElement('template', { + slot: 'column.header' + }, [this.$scopedSlots['group.header']({ + group: group, + groupBy: props.options.groupBy, + items: items, + headers: this.computedHeaders, + isOpen: isOpen, + toggle: toggleFn, + remove: removeFn + })])); + } else { + var toggle = this.$createElement(_VBtn__WEBPACK_IMPORTED_MODULE_3__["default"], { + staticClass: 'ma-0', + props: { + icon: true, + small: true + }, + on: { + click: toggleFn + } + }, [this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_5__["default"], [isOpen ? '$minus' : '$plus'])]); + var remove = this.$createElement(_VBtn__WEBPACK_IMPORTED_MODULE_3__["default"], { + staticClass: 'ma-0', + props: { + icon: true, + small: true + }, + on: { + click: removeFn + } + }, [this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_5__["default"], ['$close'])]); + var column = this.$createElement('td', { + staticClass: 'text-start', + attrs: this.colspanAttrs + }, [toggle, props.options.groupBy[0] + ": " + group, remove]); + children.unshift(this.$createElement('template', { + slot: 'column.header' + }, [column])); + } + + if (this.$scopedSlots['group.summary']) { + children.push(this.$createElement('template', { + slot: 'column.summary' + }, [this.$scopedSlots['group.summary']({ + group: group, + groupBy: props.options.groupBy, + items: items, + headers: this.computedHeaders, + isOpen: isOpen, + toggle: toggleFn + })])); + } + + return this.$createElement(_RowGroup__WEBPACK_IMPORTED_MODULE_7__["default"], { + key: group, + props: { + value: isOpen + } + }, children); + }, + genRows: function genRows(items, props) { + return this.$scopedSlots.item ? this.genScopedRows(items, props) : this.genDefaultRows(items, props); + }, + genScopedRows: function genScopedRows(items, props) { + var rows = []; + + for (var i = 0; i < items.length; i++) { + var item = items[i]; + rows.push(this.$scopedSlots.item(__assign(__assign({}, this.createItemProps(item)), { + index: i + }))); + + if (this.isExpanded(item)) { + rows.push(this.$scopedSlots['expanded-item']({ + item: item, + headers: this.computedHeaders + })); + } + } + + return rows; + }, + genDefaultRows: function genDefaultRows(items, props) { + var _this = this; + + return this.$scopedSlots['expanded-item'] ? items.map(function (item) { + return _this.genDefaultExpandedRow(item); + }) : items.map(function (item) { + return _this.genDefaultSimpleRow(item); + }); + }, + genDefaultExpandedRow: function genDefaultExpandedRow(item) { + var isExpanded = this.isExpanded(item); + var classes = { + 'v-data-table__expanded v-data-table__expanded__row': isExpanded + }; + var headerRow = this.genDefaultSimpleRow(item, classes); + var expandedRow = this.$createElement('tr', { + staticClass: 'v-data-table__expanded v-data-table__expanded__content' + }, [this.$scopedSlots['expanded-item']({ + item: item, + headers: this.computedHeaders + })]); + return this.$createElement(_RowGroup__WEBPACK_IMPORTED_MODULE_7__["default"], { + props: { + value: isExpanded + } + }, [this.$createElement('template', { + slot: 'row.header' + }, [headerRow]), this.$createElement('template', { + slot: 'row.content' + }, [expandedRow])]); + }, + genDefaultSimpleRow: function genDefaultSimpleRow(item, classes) { + var _this = this; + + if (classes === void 0) { + classes = {}; + } + + var scopedSlots = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_14__["getPrefixedScopedSlots"])('item.', this.$scopedSlots); + var data = this.createItemProps(item); + + if (this.showSelect) { + var slot_1 = scopedSlots['data-table-select']; + scopedSlots['data-table-select'] = slot_1 ? function () { + return slot_1(data); + } : function () { + return _this.$createElement(_VCheckbox_VSimpleCheckbox__WEBPACK_IMPORTED_MODULE_8__["default"], { + staticClass: 'v-data-table__checkbox', + props: { + value: data.isSelected, + disabled: !_this.isSelectable(item) + }, + on: { + input: function input(val) { + return data.select(val); + } + } + }); + }; + } + + if (this.showExpand) { + var slot_2 = scopedSlots['data-table-expand']; + scopedSlots['data-table-expand'] = slot_2 ? function () { + return slot_2(data); + } : function () { + return _this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_5__["default"], { + staticClass: 'v-data-table__expand-icon', + class: { + 'v-data-table__expand-icon--active': data.isExpanded + }, + on: { + click: function click(e) { + e.stopPropagation(); + data.expand(!data.isExpanded); + } + } + }, [_this.expandIcon]); + }; + } + + return this.$createElement(this.isMobile ? _MobileRow__WEBPACK_IMPORTED_MODULE_10__["default"] : _Row__WEBPACK_IMPORTED_MODULE_6__["default"], { + key: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_14__["getObjectValueByPath"])(item, this.itemKey), + class: Object(_util_mergeData__WEBPACK_IMPORTED_MODULE_16__["mergeClasses"])(__assign(__assign({}, classes), { + 'v-data-table__selected': data.isSelected + }), Object(_util_helpers__WEBPACK_IMPORTED_MODULE_14__["getPropertyFromItem"])(item, this.itemClass)), + props: { + headers: this.computedHeaders, + hideDefaultHeader: this.hideDefaultHeader, + item: item, + rtl: this.$vuetify.rtl + }, + scopedSlots: scopedSlots, + on: { + // TODO: for click, the first argument should be the event, and the second argument should be data, + // but this is a breaking change so it's for v3 + click: function click() { + return _this.$emit('click:row', item, data); + }, + contextmenu: function contextmenu(event) { + return _this.$emit('contextmenu:row', event, data); + }, + dblclick: function dblclick(event) { + return _this.$emit('dblclick:row', event, data); + } + } + }); + }, + genBody: function genBody(props) { + var data = __assign(__assign({}, props), { + expand: this.expand, + headers: this.computedHeaders, + isExpanded: this.isExpanded, + isMobile: this.isMobile, + isSelected: this.isSelected, + select: this.select + }); + + if (this.$scopedSlots.body) { + return this.$scopedSlots.body(data); + } + + return this.$createElement('tbody', [Object(_util_helpers__WEBPACK_IMPORTED_MODULE_14__["getSlot"])(this, 'body.prepend', data, true), this.genItems(props.items, props), Object(_util_helpers__WEBPACK_IMPORTED_MODULE_14__["getSlot"])(this, 'body.append', data, true)]); + }, + genFooters: function genFooters(props) { + var data = { + props: __assign({ + options: props.options, + pagination: props.pagination, + itemsPerPageText: '$vuetify.dataTable.itemsPerPageText' + }, this.sanitizedFooterProps), + on: { + 'update:options': function updateOptions(value) { + return props.updateOptions(value); + } + }, + widths: this.widths, + headers: this.computedHeaders + }; + var children = [Object(_util_helpers__WEBPACK_IMPORTED_MODULE_14__["getSlot"])(this, 'footer', data, true)]; + + if (!this.hideDefaultFooter) { + children.push(this.$createElement(_VDataIterator__WEBPACK_IMPORTED_MODULE_2__["VDataFooter"], __assign(__assign({}, data), { + scopedSlots: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_14__["getPrefixedScopedSlots"])('footer.', this.$scopedSlots) + }))); + } + + return children; + }, + genDefaultScopedSlot: function genDefaultScopedSlot(props) { + var simpleProps = { + height: this.height, + fixedHeader: this.fixedHeader, + dense: this.dense + }; // if (this.virtualRows) { + // return this.$createElement(VVirtualTable, { + // props: Object.assign(simpleProps, { + // items: props.items, + // height: this.height, + // rowHeight: this.dense ? 24 : 48, + // headerHeight: this.dense ? 32 : 48, + // // TODO: expose rest of props from virtual table? + // }), + // scopedSlots: { + // items: ({ items }) => this.genItems(items, props) as any, + // }, + // }, [ + // this.proxySlot('body.before', [this.genCaption(props), this.genHeaders(props)]), + // this.proxySlot('bottom', this.genFooters(props)), + // ]) + // } + + return this.$createElement(_VSimpleTable__WEBPACK_IMPORTED_MODULE_9__["default"], { + props: simpleProps + }, [this.proxySlot('top', Object(_util_helpers__WEBPACK_IMPORTED_MODULE_14__["getSlot"])(this, 'top', props, true)), this.genCaption(props), this.genColgroup(props), this.genHeaders(props), this.genBody(props), this.proxySlot('bottom', this.genFooters(props))]); + }, + proxySlot: function proxySlot(slot, content) { + return this.$createElement('template', { + slot: slot + }, content); + } + }, + render: function render() { + var _this = this; + + return this.$createElement(_VData__WEBPACK_IMPORTED_MODULE_1__["VData"], { + props: __assign(__assign({}, this.$props), { + customFilter: this.customFilterWithColumns, + customSort: this.customSortWithHeaders, + itemsPerPage: this.computedItemsPerPage + }), + on: { + 'update:options': function updateOptions(v, old) { + _this.internalGroupBy = v.groupBy || []; + !Object(_util_helpers__WEBPACK_IMPORTED_MODULE_14__["deepEqual"])(v, old) && _this.$emit('update:options', v); + }, + 'update:page': function updatePage(v) { + return _this.$emit('update:page', v); + }, + 'update:items-per-page': function updateItemsPerPage(v) { + return _this.$emit('update:items-per-page', v); + }, + 'update:sort-by': function updateSortBy(v) { + return _this.$emit('update:sort-by', v); + }, + 'update:sort-desc': function updateSortDesc(v) { + return _this.$emit('update:sort-desc', v); + }, + 'update:group-by': function updateGroupBy(v) { + return _this.$emit('update:group-by', v); + }, + 'update:group-desc': function updateGroupDesc(v) { + return _this.$emit('update:group-desc', v); + }, + pagination: function pagination(v, old) { + return !Object(_util_helpers__WEBPACK_IMPORTED_MODULE_14__["deepEqual"])(v, old) && _this.$emit('pagination', v); + }, + 'current-items': function currentItems(v) { + _this.internalCurrentItems = v; + + _this.$emit('current-items', v); + }, + 'page-count': function pageCount(v) { + return _this.$emit('page-count', v); + } + }, + scopedSlots: { + default: this.genDefaultScopedSlot + } + }); + } +})); + +/***/ }), + +/***/ "./src/components/VDataTable/VDataTableHeader.sass": +/*!*********************************************************!*\ + !*** ./src/components/VDataTable/VDataTableHeader.sass ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VDataTable/VDataTableHeader.ts": +/*!*******************************************************!*\ + !*** ./src/components/VDataTable/VDataTableHeader.ts ***! + \*******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VDataTableHeader_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VDataTableHeader.sass */ "./src/components/VDataTable/VDataTableHeader.sass"); +/* harmony import */ var _VDataTableHeader_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VDataTableHeader_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VDataTableHeaderMobile__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VDataTableHeaderMobile */ "./src/components/VDataTable/VDataTableHeaderMobile.ts"); +/* harmony import */ var _VDataTableHeaderDesktop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./VDataTableHeaderDesktop */ "./src/components/VDataTable/VDataTableHeaderDesktop.ts"); +/* harmony import */ var _mixins_header__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mixins/header */ "./src/components/VDataTable/mixins/header.ts"); +/* harmony import */ var _util_dedupeModelListeners__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/dedupeModelListeners */ "./src/util/dedupeModelListeners.ts"); +/* harmony import */ var _util_mergeData__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/mergeData */ "./src/util/mergeData.ts"); +/* harmony import */ var _util_rebuildFunctionalSlots__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util/rebuildFunctionalSlots */ "./src/util/rebuildFunctionalSlots.ts"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_7__); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Components + + + // Mixins + + // Utilities + + + + // Types + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_7___default.a.extend({ + name: 'v-data-table-header', + functional: true, + props: __assign(__assign({}, _mixins_header__WEBPACK_IMPORTED_MODULE_3__["default"].options.props), { + mobile: Boolean + }), + render: function render(h, _a) { + var props = _a.props, + data = _a.data, + slots = _a.slots; + Object(_util_dedupeModelListeners__WEBPACK_IMPORTED_MODULE_4__["default"])(data); + var children = Object(_util_rebuildFunctionalSlots__WEBPACK_IMPORTED_MODULE_6__["default"])(slots(), h); + data = Object(_util_mergeData__WEBPACK_IMPORTED_MODULE_5__["default"])(data, { + props: props + }); + + if (props.mobile) { + return h(_VDataTableHeaderMobile__WEBPACK_IMPORTED_MODULE_1__["default"], data, children); + } else { + return h(_VDataTableHeaderDesktop__WEBPACK_IMPORTED_MODULE_2__["default"], data, children); + } + } +})); + +/***/ }), + +/***/ "./src/components/VDataTable/VDataTableHeaderDesktop.ts": +/*!**************************************************************!*\ + !*** ./src/components/VDataTable/VDataTableHeaderDesktop.ts ***! + \**************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _mixins_header__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mixins/header */ "./src/components/VDataTable/mixins/header.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + +var __spread = undefined && undefined.__spread || function () { + for (var ar = [], i = 0; i < arguments.length; i++) { + ar = ar.concat(__read(arguments[i])); + } + + return ar; +}; + + + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_0__["default"])(_mixins_header__WEBPACK_IMPORTED_MODULE_1__["default"]).extend({ + name: 'v-data-table-header-desktop', + methods: { + genGroupByToggle: function genGroupByToggle(header) { + var _this = this; + + return this.$createElement('span', { + on: { + click: function click(e) { + e.stopPropagation(); + + _this.$emit('group', header.value); + } + } + }, ['group']); + }, + getAria: function getAria(beingSorted, isDesc) { + var _this = this; + + var $t = function $t(key) { + return _this.$vuetify.lang.t("$vuetify.dataTable.ariaLabel." + key); + }; + + var ariaSort = 'none'; + var ariaLabel = [$t('sortNone'), $t('activateAscending')]; + + if (!beingSorted) { + return { + ariaSort: ariaSort, + ariaLabel: ariaLabel.join(' ') + }; + } + + if (isDesc) { + ariaSort = 'descending'; + ariaLabel = [$t('sortDescending'), $t(this.options.mustSort ? 'activateAscending' : 'activateNone')]; + } else { + ariaSort = 'ascending'; + ariaLabel = [$t('sortAscending'), $t('activateDescending')]; + } + + return { + ariaSort: ariaSort, + ariaLabel: ariaLabel.join(' ') + }; + }, + genHeader: function genHeader(header) { + var _this = this; + + var data = { + attrs: { + role: 'columnheader', + scope: 'col', + 'aria-label': header.text || '' + }, + style: { + width: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_2__["convertToUnit"])(header.width), + minWidth: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_2__["convertToUnit"])(header.width) + }, + class: __spread(["text-" + (header.align || 'start')], Object(_util_helpers__WEBPACK_IMPORTED_MODULE_2__["wrapInArray"])(header.class), [header.divider && 'v-data-table__divider']), + on: {} + }; + var children = []; + + if (header.value === 'data-table-select' && !this.singleSelect) { + return this.$createElement('th', data, [this.genSelectAll()]); + } + + children.push(this.$scopedSlots[header.value] ? this.$scopedSlots[header.value]({ + header: header + }) : this.$createElement('span', [header.text])); + + if (!this.disableSort && (header.sortable || !header.hasOwnProperty('sortable'))) { + data.on.click = function () { + return _this.$emit('sort', header.value); + }; + + var sortIndex = this.options.sortBy.findIndex(function (k) { + return k === header.value; + }); + var beingSorted = sortIndex >= 0; + var isDesc = this.options.sortDesc[sortIndex]; + data.class.push('sortable'); + + var _a = this.getAria(beingSorted, isDesc), + ariaLabel = _a.ariaLabel, + ariaSort = _a.ariaSort; + + data.attrs['aria-label'] += "" + (header.text ? ': ' : '') + ariaLabel; + data.attrs['aria-sort'] = ariaSort; + + if (beingSorted) { + data.class.push('active'); + data.class.push(isDesc ? 'desc' : 'asc'); + } + + if (header.align === 'end') children.unshift(this.genSortIcon());else children.push(this.genSortIcon()); + + if (this.options.multiSort && beingSorted) { + children.push(this.$createElement('span', { + class: 'v-data-table-header__sort-badge' + }, [String(sortIndex + 1)])); + } + } + + if (this.showGroupBy && header.groupable !== false) children.push(this.genGroupByToggle(header)); + return this.$createElement('th', data, children); + } + }, + render: function render() { + var _this = this; + + return this.$createElement('thead', { + staticClass: 'v-data-table-header' + }, [this.$createElement('tr', this.headers.map(function (header) { + return _this.genHeader(header); + }))]); + } +})); + +/***/ }), + +/***/ "./src/components/VDataTable/VDataTableHeaderMobile.ts": +/*!*************************************************************!*\ + !*** ./src/components/VDataTable/VDataTableHeaderMobile.ts ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VSelect/VSelect */ "./src/components/VSelect/VSelect.ts"); +/* harmony import */ var _VChip__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../VChip */ "./src/components/VChip/index.ts"); +/* harmony import */ var _mixins_header__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mixins/header */ "./src/components/VDataTable/mixins/header.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + +var __spread = undefined && undefined.__spread || function () { + for (var ar = [], i = 0; i < arguments.length; i++) { + ar = ar.concat(__read(arguments[i])); + } + + return ar; +}; + + + + + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_0__["default"])(_mixins_header__WEBPACK_IMPORTED_MODULE_3__["default"]).extend({ + name: 'v-data-table-header-mobile', + props: { + sortByText: { + type: String, + default: '$vuetify.dataTable.sortBy' + } + }, + methods: { + genSortChip: function genSortChip(props) { + var _this = this; + + var children = [props.item.text]; + var sortIndex = this.options.sortBy.findIndex(function (k) { + return k === props.item.value; + }); + var beingSorted = sortIndex >= 0; + var isDesc = this.options.sortDesc[sortIndex]; + children.push(this.$createElement('div', { + staticClass: 'v-chip__close', + class: { + sortable: true, + active: beingSorted, + asc: beingSorted && !isDesc, + desc: beingSorted && isDesc + } + }, [this.genSortIcon()])); + return this.$createElement(_VChip__WEBPACK_IMPORTED_MODULE_2__["default"], { + staticClass: 'sortable', + on: { + click: function click(e) { + e.stopPropagation(); + + _this.$emit('sort', props.item.value); + } + } + }, children); + }, + genSortSelect: function genSortSelect(items) { + var _this = this; + + return this.$createElement(_VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__["default"], { + props: { + label: this.$vuetify.lang.t(this.sortByText), + items: items, + hideDetails: true, + multiple: this.options.multiSort, + value: this.options.multiSort ? this.options.sortBy : this.options.sortBy[0], + menuProps: { + closeOnContentClick: true + } + }, + on: { + change: function change(v) { + return _this.$emit('sort', v); + } + }, + scopedSlots: { + selection: function selection(props) { + return _this.genSortChip(props); + } + } + }); + } + }, + render: function render(h) { + var children = []; + var header = this.headers.find(function (h) { + return h.value === 'data-table-select'; + }); + + if (header && !this.singleSelect) { + children.push(this.$createElement('div', { + class: __spread(['v-data-table-header-mobile__select'], Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["wrapInArray"])(header.class)), + attrs: { + width: header.width + } + }, [this.genSelectAll()])); + } + + var sortHeaders = this.headers.filter(function (h) { + return h.sortable !== false && h.value !== 'data-table-select'; + }).map(function (h) { + return { + text: h.text, + value: h.value + }; + }); + + if (!this.disableSort && sortHeaders.length) { + children.push(this.genSortSelect(sortHeaders)); + } + + var th = h('th', [h('div', { + staticClass: 'v-data-table-header-mobile__wrapper' + }, children)]); + var tr = h('tr', [th]); + return h('thead', { + staticClass: 'v-data-table-header v-data-table-header-mobile' + }, [tr]); + } +})); + +/***/ }), + +/***/ "./src/components/VDataTable/VEditDialog.sass": +/*!****************************************************!*\ + !*** ./src/components/VDataTable/VEditDialog.sass ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VDataTable/VEditDialog.ts": +/*!**************************************************!*\ + !*** ./src/components/VDataTable/VEditDialog.ts ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VEditDialog_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VEditDialog.sass */ "./src/components/VDataTable/VEditDialog.sass"); +/* harmony import */ var _VEditDialog_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VEditDialog_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_returnable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/returnable */ "./src/mixins/returnable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _VBtn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../VBtn */ "./src/components/VBtn/index.ts"); +/* harmony import */ var _VMenu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../VMenu */ "./src/components/VMenu/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +// Styles + // Mixins + + + // Utils + + // Component + + + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_6__["default"])(_mixins_returnable__WEBPACK_IMPORTED_MODULE_1__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_2__["default"]).extend({ + name: 'v-edit-dialog', + props: { + cancelText: { + default: 'Cancel' + }, + large: Boolean, + eager: Boolean, + persistent: Boolean, + saveText: { + default: 'Save' + }, + transition: { + type: String, + default: 'slide-x-reverse-transition' + } + }, + data: function data() { + return { + isActive: false + }; + }, + watch: { + isActive: function isActive(val) { + if (val) { + this.$emit('open'); + setTimeout(this.focus, 50); // Give DOM time to paint + } else { + this.$emit('close'); + } + } + }, + methods: { + cancel: function cancel() { + this.isActive = false; + this.$emit('cancel'); + }, + focus: function focus() { + var input = this.$refs.content.querySelector('input'); + input && input.focus(); + }, + genButton: function genButton(fn, text) { + return this.$createElement(_VBtn__WEBPACK_IMPORTED_MODULE_4__["default"], { + props: { + text: true, + color: 'primary', + light: true + }, + on: { + click: fn + } + }, text); + }, + genActions: function genActions() { + var _this = this; + + return this.$createElement('div', { + class: 'v-small-dialog__actions' + }, [this.genButton(this.cancel, this.cancelText), this.genButton(function () { + _this.save(_this.returnValue); + + _this.$emit('save'); + }, this.saveText)]); + }, + genContent: function genContent() { + var _this = this; + + return this.$createElement('div', { + staticClass: 'v-small-dialog__content', + on: { + keydown: function keydown(e) { + e.keyCode === _util_helpers__WEBPACK_IMPORTED_MODULE_3__["keyCodes"].esc && _this.cancel(); + + if (e.keyCode === _util_helpers__WEBPACK_IMPORTED_MODULE_3__["keyCodes"].enter) { + _this.save(_this.returnValue); + + _this.$emit('save'); + } + } + }, + ref: 'content' + }, [this.$slots.input]); + } + }, + render: function render(h) { + var _this = this; + + return h(_VMenu__WEBPACK_IMPORTED_MODULE_5__["default"], { + staticClass: 'v-small-dialog', + class: this.themeClasses, + props: { + contentClass: 'v-small-dialog__menu-content', + transition: this.transition, + origin: 'top right', + right: true, + value: this.isActive, + closeOnClick: !this.persistent, + closeOnContentClick: false, + eager: this.eager, + light: this.light, + dark: this.dark + }, + on: { + input: function input(val) { + return _this.isActive = val; + } + }, + scopedSlots: { + activator: function activator(_a) { + var on = _a.on; + return h('div', { + staticClass: 'v-small-dialog__activator', + on: on + }, [h('span', { + staticClass: 'v-small-dialog__activator__content' + }, _this.$slots.default)]); + } + } + }, [this.genContent(), this.large ? this.genActions() : null]); + } +})); + +/***/ }), + +/***/ "./src/components/VDataTable/VSimpleTable.sass": +/*!*****************************************************!*\ + !*** ./src/components/VDataTable/VSimpleTable.sass ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VDataTable/VSimpleTable.ts": +/*!***************************************************!*\ + !*** ./src/components/VDataTable/VSimpleTable.ts ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VSimpleTable_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VSimpleTable.sass */ "./src/components/VDataTable/VSimpleTable.sass"); +/* harmony import */ var _VSimpleTable_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VSimpleTable_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + + + + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_3__["default"])(_mixins_themeable__WEBPACK_IMPORTED_MODULE_2__["default"]).extend({ + name: 'v-simple-table', + props: { + dense: Boolean, + fixedHeader: Boolean, + height: [Number, String] + }, + computed: { + classes: function classes() { + return __assign({ + 'v-data-table--dense': this.dense, + 'v-data-table--fixed-height': !!this.height && !this.fixedHeader, + 'v-data-table--fixed-header': this.fixedHeader, + 'v-data-table--has-top': !!this.$slots.top, + 'v-data-table--has-bottom': !!this.$slots.bottom + }, this.themeClasses); + } + }, + methods: { + genWrapper: function genWrapper() { + return this.$slots.wrapper || this.$createElement('div', { + staticClass: 'v-data-table__wrapper', + style: { + height: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["convertToUnit"])(this.height) + } + }, [this.$createElement('table', this.$slots.default)]); + } + }, + render: function render(h) { + return h('div', { + staticClass: 'v-data-table', + class: this.classes + }, [this.$slots.top, this.genWrapper(), this.$slots.bottom]); + } +})); + +/***/ }), + +/***/ "./src/components/VDataTable/VVirtualTable.sass": +/*!******************************************************!*\ + !*** ./src/components/VDataTable/VVirtualTable.sass ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VDataTable/VVirtualTable.ts": +/*!****************************************************!*\ + !*** ./src/components/VDataTable/VVirtualTable.ts ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VVirtualTable_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VVirtualTable.sass */ "./src/components/VDataTable/VVirtualTable.sass"); +/* harmony import */ var _VVirtualTable_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VVirtualTable_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VSimpleTable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VSimpleTable */ "./src/components/VDataTable/VSimpleTable.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); + // Components + + + // Utiltiies + + // Types + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_2__["default"])(_VSimpleTable__WEBPACK_IMPORTED_MODULE_1__["default"]); +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend().extend({ + name: 'v-virtual-table', + props: { + chunkSize: { + type: Number, + default: 25 + }, + headerHeight: { + type: Number, + default: 48 + }, + items: { + type: Array, + default: function _default() { + return []; + } + }, + rowHeight: { + type: Number, + default: 48 + } + }, + data: function data() { + return { + scrollTop: 0, + oldChunk: 0, + scrollDebounce: null, + invalidateCache: false + }; + }, + computed: { + itemsLength: function itemsLength() { + return this.items.length; + }, + totalHeight: function totalHeight() { + return this.itemsLength * this.rowHeight + this.headerHeight; + }, + topIndex: function topIndex() { + return Math.floor(this.scrollTop / this.rowHeight); + }, + chunkIndex: function chunkIndex() { + return Math.floor(this.topIndex / this.chunkSize); + }, + startIndex: function startIndex() { + return Math.max(0, this.chunkIndex * this.chunkSize - this.chunkSize); + }, + offsetTop: function offsetTop() { + return Math.max(0, this.startIndex * this.rowHeight); + }, + stopIndex: function stopIndex() { + return Math.min(this.startIndex + this.chunkSize * 3, this.itemsLength); + }, + offsetBottom: function offsetBottom() { + return Math.max(0, (this.itemsLength - this.stopIndex - this.startIndex) * this.rowHeight); + } + }, + watch: { + chunkIndex: function chunkIndex(newValue, oldValue) { + this.oldChunk = oldValue; + }, + items: function items() { + this.cachedItems = null; + this.$refs.table.scrollTop = 0; + } + }, + created: function created() { + this.cachedItems = null; + }, + mounted: function mounted() { + this.scrollDebounce = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["debounce"])(this.onScroll, 50); + this.$refs.table.addEventListener('scroll', this.scrollDebounce, { + passive: true + }); + }, + beforeDestroy: function beforeDestroy() { + this.$refs.table.removeEventListener('scroll', this.scrollDebounce); + }, + methods: { + createStyleHeight: function createStyleHeight(height) { + return { + height: height + "px" + }; + }, + genBody: function genBody() { + if (this.cachedItems === null || this.chunkIndex !== this.oldChunk) { + this.cachedItems = this.genItems(); + this.oldChunk = this.chunkIndex; + } + + return this.$createElement('tbody', [this.$createElement('tr', { + style: this.createStyleHeight(this.offsetTop) + }), this.cachedItems, this.$createElement('tr', { + style: this.createStyleHeight(this.offsetBottom) + })]); + }, + genItems: function genItems() { + return this.$scopedSlots.items({ + items: this.items.slice(this.startIndex, this.stopIndex) + }); + }, + onScroll: function onScroll(e) { + var target = e.target; + this.scrollTop = target.scrollTop; + }, + genTable: function genTable() { + return this.$createElement('div', { + ref: 'table', + staticClass: 'v-virtual-table__table' + }, [this.$createElement('table', [this.$slots['body.before'], this.genBody(), this.$slots['body.after']])]); + }, + genWrapper: function genWrapper() { + return this.$createElement('div', { + staticClass: 'v-virtual-table__wrapper', + style: { + height: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["convertToUnit"])(this.height) + } + }, [this.genTable()]); + } + }, + render: function render(h) { + return h('div', { + staticClass: 'v-data-table v-virtual-table', + class: this.classes + }, [this.$slots.top, this.genWrapper(), this.$slots.bottom]); + } +})); + +/***/ }), + +/***/ "./src/components/VDataTable/index.ts": +/*!********************************************!*\ + !*** ./src/components/VDataTable/index.ts ***! + \********************************************/ +/*! exports provided: VDataTable, VEditDialog, VTableOverflow, VDataTableHeader, VSimpleTable, VVirtualTable, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VTableOverflow", function() { return VTableOverflow; }); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _VDataTable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VDataTable */ "./src/components/VDataTable/VDataTable.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDataTable", function() { return _VDataTable__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + +/* harmony import */ var _VDataTableHeader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./VDataTableHeader */ "./src/components/VDataTable/VDataTableHeader.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDataTableHeader", function() { return _VDataTableHeader__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + +/* harmony import */ var _VEditDialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./VEditDialog */ "./src/components/VDataTable/VEditDialog.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VEditDialog", function() { return _VEditDialog__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + +/* harmony import */ var _VSimpleTable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./VSimpleTable */ "./src/components/VDataTable/VSimpleTable.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSimpleTable", function() { return _VSimpleTable__WEBPACK_IMPORTED_MODULE_4__["default"]; }); + +/* harmony import */ var _VVirtualTable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./VVirtualTable */ "./src/components/VDataTable/VVirtualTable.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VVirtualTable", function() { return _VVirtualTable__WEBPACK_IMPORTED_MODULE_5__["default"]; }); + + + + + + + +var VTableOverflow = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["createSimpleFunctional"])('v-table__overflow'); + +/* harmony default export */ __webpack_exports__["default"] = ({ + $_vuetify_subcomponents: { + VDataTable: _VDataTable__WEBPACK_IMPORTED_MODULE_1__["default"], + VDataTableHeader: _VDataTableHeader__WEBPACK_IMPORTED_MODULE_2__["default"], + VEditDialog: _VEditDialog__WEBPACK_IMPORTED_MODULE_3__["default"], + VTableOverflow: VTableOverflow, + VSimpleTable: _VSimpleTable__WEBPACK_IMPORTED_MODULE_4__["default"], + VVirtualTable: _VVirtualTable__WEBPACK_IMPORTED_MODULE_5__["default"] + } +}); + +/***/ }), + +/***/ "./src/components/VDataTable/mixins/header.ts": +/*!****************************************************!*\ + !*** ./src/components/VDataTable/mixins/header.ts ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../VIcon */ "./src/components/VIcon/index.ts"); +/* harmony import */ var _VCheckbox_VSimpleCheckbox__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../VCheckbox/VSimpleCheckbox */ "./src/components/VCheckbox/VSimpleCheckbox.ts"); +/* harmony import */ var _directives_ripple__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../directives/ripple */ "./src/directives/ripple/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + + + + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_3__["default"])().extend({ + // https://github.com/vuejs/vue/issues/6872 + directives: { + ripple: _directives_ripple__WEBPACK_IMPORTED_MODULE_2__["default"] + }, + props: { + headers: { + type: Array, + default: function _default() { + return []; + } + }, + options: { + type: Object, + default: function _default() { + return { + page: 1, + itemsPerPage: 10, + sortBy: [], + sortDesc: [], + groupBy: [], + groupDesc: [], + multiSort: false, + mustSort: false + }; + } + }, + sortIcon: { + type: String, + default: '$sort' + }, + everyItem: Boolean, + someItems: Boolean, + showGroupBy: Boolean, + singleSelect: Boolean, + disableSort: Boolean + }, + methods: { + genSelectAll: function genSelectAll() { + var _this = this; + + var data = { + props: { + value: this.everyItem, + indeterminate: !this.everyItem && this.someItems + }, + on: { + input: function input(v) { + return _this.$emit('toggle-select-all', v); + } + } + }; + + if (this.$scopedSlots['data-table-select']) { + return this.$scopedSlots['data-table-select'](data); + } + + return this.$createElement(_VCheckbox_VSimpleCheckbox__WEBPACK_IMPORTED_MODULE_1__["default"], __assign({ + staticClass: 'v-data-table__checkbox' + }, data)); + }, + genSortIcon: function genSortIcon() { + return this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_0__["default"], { + staticClass: 'v-data-table-header__icon', + props: { + size: 18 + } + }, [this.sortIcon]); + } + } +})); + +/***/ }), + +/***/ "./src/components/VDatePicker/VDatePicker.ts": +/*!***************************************************!*\ + !*** ./src/components/VDatePicker/VDatePicker.ts ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VDatePickerTitle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VDatePickerTitle */ "./src/components/VDatePicker/VDatePickerTitle.ts"); +/* harmony import */ var _VDatePickerHeader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VDatePickerHeader */ "./src/components/VDatePicker/VDatePickerHeader.ts"); +/* harmony import */ var _VDatePickerDateTable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./VDatePickerDateTable */ "./src/components/VDatePicker/VDatePickerDateTable.ts"); +/* harmony import */ var _VDatePickerMonthTable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./VDatePickerMonthTable */ "./src/components/VDatePicker/VDatePickerMonthTable.ts"); +/* harmony import */ var _VDatePickerYears__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./VDatePickerYears */ "./src/components/VDatePicker/VDatePickerYears.ts"); +/* harmony import */ var _mixins_localable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/localable */ "./src/mixins/localable/index.ts"); +/* harmony import */ var _mixins_picker__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../mixins/picker */ "./src/mixins/picker/index.ts"); +/* harmony import */ var _util_isDateAllowed__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./util/isDateAllowed */ "./src/components/VDatePicker/util/isDateAllowed.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _VCalendar_util_timestamp__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../VCalendar/util/timestamp */ "./src/components/VCalendar/util/timestamp.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./util */ "./src/components/VDatePicker/util/index.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; // Components + + + + + + + // Mixins + + + // Utils + + + + + + + // Adds leading zero to month/day if necessary, returns 'YYYY' if type = 'year', +// 'YYYY-MM' if 'month' and 'YYYY-MM-DD' if 'date' + +function sanitizeDateString(dateString, type) { + var _a = __read(dateString.split('-'), 3), + year = _a[0], + _b = _a[1], + month = _b === void 0 ? 1 : _b, + _c = _a[2], + date = _c === void 0 ? 1 : _c; + + return (year + "-" + Object(_util__WEBPACK_IMPORTED_MODULE_12__["pad"])(month) + "-" + Object(_util__WEBPACK_IMPORTED_MODULE_12__["pad"])(date)).substr(0, { + date: 10, + month: 7, + year: 4 + }[type]); +} + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_8__["default"])(_mixins_localable__WEBPACK_IMPORTED_MODULE_5__["default"], _mixins_picker__WEBPACK_IMPORTED_MODULE_6__["default"]).extend({ + name: 'v-date-picker', + props: { + allowedDates: Function, + // Function formatting the day in date picker table + dayFormat: Function, + disabled: Boolean, + events: { + type: [Array, Function, Object], + default: function _default() { + return null; + } + }, + eventColor: { + type: [Array, Function, Object, String], + default: function _default() { + return 'warning'; + } + }, + firstDayOfWeek: { + type: [String, Number], + default: 0 + }, + // Function formatting the tableDate in the day/month table header + headerDateFormat: Function, + localeFirstDayOfYear: { + type: [String, Number], + default: 0 + }, + max: String, + min: String, + // Function formatting month in the months table + monthFormat: Function, + multiple: Boolean, + nextIcon: { + type: String, + default: '$next' + }, + nextMonthAriaLabel: { + type: String, + default: '$vuetify.datePicker.nextMonthAriaLabel' + }, + nextYearAriaLabel: { + type: String, + default: '$vuetify.datePicker.nextYearAriaLabel' + }, + pickerDate: String, + prevIcon: { + type: String, + default: '$prev' + }, + prevMonthAriaLabel: { + type: String, + default: '$vuetify.datePicker.prevMonthAriaLabel' + }, + prevYearAriaLabel: { + type: String, + default: '$vuetify.datePicker.prevYearAriaLabel' + }, + range: Boolean, + reactive: Boolean, + readonly: Boolean, + scrollable: Boolean, + showCurrent: { + type: [Boolean, String], + default: true + }, + selectedItemsText: { + type: String, + default: '$vuetify.datePicker.itemsSelected' + }, + showWeek: Boolean, + // Function formatting currently selected date in the picker title + titleDateFormat: Function, + type: { + type: String, + default: 'date', + validator: function validator(type) { + return ['date', 'month'].includes(type); + } + }, + value: [Array, String], + weekdayFormat: Function, + // Function formatting the year in table header and pickup title + yearFormat: Function, + yearIcon: String + }, + data: function data() { + var _this = this; + + var now = new Date(); + return { + activePicker: this.type.toUpperCase(), + inputDay: null, + inputMonth: null, + inputYear: null, + isReversing: false, + now: now, + // tableDate is a string in 'YYYY' / 'YYYY-M' format (leading zero for month is not required) + tableDate: function () { + if (_this.pickerDate) { + return _this.pickerDate; + } + + var multipleValue = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_9__["wrapInArray"])(_this.value); + var date = multipleValue[multipleValue.length - 1] || (typeof _this.showCurrent === 'string' ? _this.showCurrent : now.getFullYear() + "-" + (now.getMonth() + 1)); + return sanitizeDateString(date, _this.type === 'date' ? 'month' : 'year'); + }() + }; + }, + computed: { + multipleValue: function multipleValue() { + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_9__["wrapInArray"])(this.value); + }, + isMultiple: function isMultiple() { + return this.multiple || this.range; + }, + lastValue: function lastValue() { + return this.isMultiple ? this.multipleValue[this.multipleValue.length - 1] : this.value; + }, + selectedMonths: function selectedMonths() { + if (!this.value || this.type === 'month') { + return this.value; + } else if (this.isMultiple) { + return this.multipleValue.map(function (val) { + return val.substr(0, 7); + }); + } else { + return this.value.substr(0, 7); + } + }, + current: function current() { + if (this.showCurrent === true) { + return sanitizeDateString(this.now.getFullYear() + "-" + (this.now.getMonth() + 1) + "-" + this.now.getDate(), this.type); + } + + return this.showCurrent || null; + }, + inputDate: function inputDate() { + return this.type === 'date' ? this.inputYear + "-" + Object(_util__WEBPACK_IMPORTED_MODULE_12__["pad"])(this.inputMonth + 1) + "-" + Object(_util__WEBPACK_IMPORTED_MODULE_12__["pad"])(this.inputDay) : this.inputYear + "-" + Object(_util__WEBPACK_IMPORTED_MODULE_12__["pad"])(this.inputMonth + 1); + }, + tableMonth: function tableMonth() { + return Number((this.pickerDate || this.tableDate).split('-')[1]) - 1; + }, + tableYear: function tableYear() { + return Number((this.pickerDate || this.tableDate).split('-')[0]); + }, + minMonth: function minMonth() { + return this.min ? sanitizeDateString(this.min, 'month') : null; + }, + maxMonth: function maxMonth() { + return this.max ? sanitizeDateString(this.max, 'month') : null; + }, + minYear: function minYear() { + return this.min ? sanitizeDateString(this.min, 'year') : null; + }, + maxYear: function maxYear() { + return this.max ? sanitizeDateString(this.max, 'year') : null; + }, + formatters: function formatters() { + return { + year: this.yearFormat || Object(_util__WEBPACK_IMPORTED_MODULE_12__["createNativeLocaleFormatter"])(this.currentLocale, { + year: 'numeric', + timeZone: 'UTC' + }, { + length: 4 + }), + titleDate: this.titleDateFormat || (this.isMultiple ? this.defaultTitleMultipleDateFormatter : this.defaultTitleDateFormatter) + }; + }, + defaultTitleMultipleDateFormatter: function defaultTitleMultipleDateFormatter() { + var _this = this; + + return function (dates) { + if (!dates.length) { + return '-'; + } + + if (dates.length === 1) { + return _this.defaultTitleDateFormatter(dates[0]); + } + + return _this.$vuetify.lang.t(_this.selectedItemsText, dates.length); + }; + }, + defaultTitleDateFormatter: function defaultTitleDateFormatter() { + var titleFormats = { + year: { + year: 'numeric', + timeZone: 'UTC' + }, + month: { + month: 'long', + timeZone: 'UTC' + }, + date: { + weekday: 'short', + month: 'short', + day: 'numeric', + timeZone: 'UTC' + } + }; + var titleDateFormatter = Object(_util__WEBPACK_IMPORTED_MODULE_12__["createNativeLocaleFormatter"])(this.currentLocale, titleFormats[this.type], { + start: 0, + length: { + date: 10, + month: 7, + year: 4 + }[this.type] + }); + + var landscapeFormatter = function landscapeFormatter(date) { + return titleDateFormatter(date).replace(/([^\d\s])([\d])/g, function (match, nonDigit, digit) { + return nonDigit + " " + digit; + }).replace(', ', ',<br>'); + }; + + return this.landscape ? landscapeFormatter : titleDateFormatter; + } + }, + watch: { + tableDate: function tableDate(val, prev) { + // Make a ISO 8601 strings from val and prev for comparision, otherwise it will incorrectly + // compare for example '2000-9' and '2000-10' + var sanitizeType = this.type === 'month' ? 'year' : 'month'; + this.isReversing = sanitizeDateString(val, sanitizeType) < sanitizeDateString(prev, sanitizeType); + this.$emit('update:picker-date', val); + }, + pickerDate: function pickerDate(val) { + if (val) { + this.tableDate = val; + } else if (this.lastValue && this.type === 'date') { + this.tableDate = sanitizeDateString(this.lastValue, 'month'); + } else if (this.lastValue && this.type === 'month') { + this.tableDate = sanitizeDateString(this.lastValue, 'year'); + } + }, + value: function value(newValue, oldValue) { + this.checkMultipleProp(); + this.setInputDate(); + + if (!this.isMultiple && this.value && !this.pickerDate || this.isMultiple && this.multipleValue.length && (!oldValue || !oldValue.length) && !this.pickerDate) { + this.tableDate = sanitizeDateString(this.inputDate, this.type === 'month' ? 'year' : 'month'); + } + }, + type: function type(_type) { + this.activePicker = _type.toUpperCase(); + + if (this.value && this.value.length) { + var output = this.multipleValue.map(function (val) { + return sanitizeDateString(val, _type); + }).filter(this.isDateAllowed); + this.$emit('input', this.isMultiple ? output : output[0]); + } + } + }, + created: function created() { + this.checkMultipleProp(); + + if (this.pickerDate !== this.tableDate) { + this.$emit('update:picker-date', this.tableDate); + } + + this.setInputDate(); + }, + methods: { + emitInput: function emitInput(newInput) { + if (this.range) { + if (this.multipleValue.length !== 1) { + this.$emit('input', [newInput]); + } else { + var output_1 = [this.multipleValue[0], newInput]; + this.$emit('input', output_1); + this.$emit('change', output_1); + } + + return; + } + + var output = this.multiple ? this.multipleValue.indexOf(newInput) === -1 ? this.multipleValue.concat([newInput]) : this.multipleValue.filter(function (x) { + return x !== newInput; + }) : newInput; + this.$emit('input', output); + this.multiple || this.$emit('change', newInput); + }, + checkMultipleProp: function checkMultipleProp() { + if (this.value == null) return; + var valueType = this.value.constructor.name; + var expected = this.isMultiple ? 'Array' : 'String'; + + if (valueType !== expected) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_11__["consoleWarn"])("Value must be " + (this.isMultiple ? 'an' : 'a') + " " + expected + ", got " + valueType, this); + } + }, + isDateAllowed: function isDateAllowed(value) { + return Object(_util_isDateAllowed__WEBPACK_IMPORTED_MODULE_7__["default"])(value, this.min, this.max, this.allowedDates); + }, + yearClick: function yearClick(value) { + this.inputYear = value; + + if (this.type === 'month') { + this.tableDate = "" + value; + } else { + this.tableDate = value + "-" + Object(_util__WEBPACK_IMPORTED_MODULE_12__["pad"])((this.tableMonth || 0) + 1); + } + + this.activePicker = 'MONTH'; + + if (this.reactive && !this.readonly && !this.isMultiple && this.isDateAllowed(this.inputDate)) { + this.$emit('input', this.inputDate); + } + }, + monthClick: function monthClick(value) { + this.inputYear = parseInt(value.split('-')[0], 10); + this.inputMonth = parseInt(value.split('-')[1], 10) - 1; + + if (this.type === 'date') { + if (this.inputDay) { + this.inputDay = Math.min(this.inputDay, Object(_VCalendar_util_timestamp__WEBPACK_IMPORTED_MODULE_10__["daysInMonth"])(this.inputYear, this.inputMonth + 1)); + } + + this.tableDate = value; + this.activePicker = 'DATE'; + + if (this.reactive && !this.readonly && !this.isMultiple && this.isDateAllowed(this.inputDate)) { + this.$emit('input', this.inputDate); + } + } else { + this.emitInput(this.inputDate); + } + }, + dateClick: function dateClick(value) { + this.inputYear = parseInt(value.split('-')[0], 10); + this.inputMonth = parseInt(value.split('-')[1], 10) - 1; + this.inputDay = parseInt(value.split('-')[2], 10); + this.emitInput(this.inputDate); + }, + genPickerTitle: function genPickerTitle() { + var _this = this; + + return this.$createElement(_VDatePickerTitle__WEBPACK_IMPORTED_MODULE_0__["default"], { + props: { + date: this.value ? this.formatters.titleDate(this.isMultiple ? this.multipleValue : this.value) : '', + disabled: this.disabled, + readonly: this.readonly, + selectingYear: this.activePicker === 'YEAR', + year: this.formatters.year(this.multipleValue.length ? "" + this.inputYear : this.tableDate), + yearIcon: this.yearIcon, + value: this.multipleValue[0] + }, + slot: 'title', + on: { + 'update:selecting-year': function updateSelectingYear(value) { + return _this.activePicker = value ? 'YEAR' : _this.type.toUpperCase(); + } + } + }); + }, + genTableHeader: function genTableHeader() { + var _this = this; + + return this.$createElement(_VDatePickerHeader__WEBPACK_IMPORTED_MODULE_1__["default"], { + props: { + nextIcon: this.nextIcon, + color: this.color, + dark: this.dark, + disabled: this.disabled, + format: this.headerDateFormat, + light: this.light, + locale: this.locale, + min: this.activePicker === 'DATE' ? this.minMonth : this.minYear, + max: this.activePicker === 'DATE' ? this.maxMonth : this.maxYear, + nextAriaLabel: this.activePicker === 'DATE' ? this.nextMonthAriaLabel : this.nextYearAriaLabel, + prevAriaLabel: this.activePicker === 'DATE' ? this.prevMonthAriaLabel : this.prevYearAriaLabel, + prevIcon: this.prevIcon, + readonly: this.readonly, + value: this.activePicker === 'DATE' ? Object(_util__WEBPACK_IMPORTED_MODULE_12__["pad"])(this.tableYear, 4) + "-" + Object(_util__WEBPACK_IMPORTED_MODULE_12__["pad"])(this.tableMonth + 1) : "" + Object(_util__WEBPACK_IMPORTED_MODULE_12__["pad"])(this.tableYear, 4) + }, + on: { + toggle: function toggle() { + return _this.activePicker = _this.activePicker === 'DATE' ? 'MONTH' : 'YEAR'; + }, + input: function input(value) { + return _this.tableDate = value; + } + } + }); + }, + genDateTable: function genDateTable() { + var _this = this; + + return this.$createElement(_VDatePickerDateTable__WEBPACK_IMPORTED_MODULE_2__["default"], { + props: { + allowedDates: this.allowedDates, + color: this.color, + current: this.current, + dark: this.dark, + disabled: this.disabled, + events: this.events, + eventColor: this.eventColor, + firstDayOfWeek: this.firstDayOfWeek, + format: this.dayFormat, + light: this.light, + locale: this.locale, + localeFirstDayOfYear: this.localeFirstDayOfYear, + min: this.min, + max: this.max, + range: this.range, + readonly: this.readonly, + scrollable: this.scrollable, + showWeek: this.showWeek, + tableDate: Object(_util__WEBPACK_IMPORTED_MODULE_12__["pad"])(this.tableYear, 4) + "-" + Object(_util__WEBPACK_IMPORTED_MODULE_12__["pad"])(this.tableMonth + 1), + value: this.value, + weekdayFormat: this.weekdayFormat + }, + ref: 'table', + on: __assign({ + input: this.dateClick, + 'update:table-date': function updateTableDate(value) { + return _this.tableDate = value; + } + }, Object(_util__WEBPACK_IMPORTED_MODULE_12__["createItemTypeListeners"])(this, ':date')) + }); + }, + genMonthTable: function genMonthTable() { + var _this = this; + + return this.$createElement(_VDatePickerMonthTable__WEBPACK_IMPORTED_MODULE_3__["default"], { + props: { + allowedDates: this.type === 'month' ? this.allowedDates : null, + color: this.color, + current: this.current ? sanitizeDateString(this.current, 'month') : null, + dark: this.dark, + disabled: this.disabled, + events: this.type === 'month' ? this.events : null, + eventColor: this.type === 'month' ? this.eventColor : null, + format: this.monthFormat, + light: this.light, + locale: this.locale, + min: this.minMonth, + max: this.maxMonth, + range: this.range, + readonly: this.readonly && this.type === 'month', + scrollable: this.scrollable, + value: this.selectedMonths, + tableDate: "" + Object(_util__WEBPACK_IMPORTED_MODULE_12__["pad"])(this.tableYear, 4) + }, + ref: 'table', + on: __assign({ + input: this.monthClick, + 'update:table-date': function updateTableDate(value) { + return _this.tableDate = value; + } + }, Object(_util__WEBPACK_IMPORTED_MODULE_12__["createItemTypeListeners"])(this, ':month')) + }); + }, + genYears: function genYears() { + return this.$createElement(_VDatePickerYears__WEBPACK_IMPORTED_MODULE_4__["default"], { + props: { + color: this.color, + format: this.yearFormat, + locale: this.locale, + min: this.minYear, + max: this.maxYear, + value: this.tableYear + }, + on: __assign({ + input: this.yearClick + }, Object(_util__WEBPACK_IMPORTED_MODULE_12__["createItemTypeListeners"])(this, ':year')) + }); + }, + genPickerBody: function genPickerBody() { + var children = this.activePicker === 'YEAR' ? [this.genYears()] : [this.genTableHeader(), this.activePicker === 'DATE' ? this.genDateTable() : this.genMonthTable()]; + return this.$createElement('div', { + key: this.activePicker + }, children); + }, + setInputDate: function setInputDate() { + if (this.lastValue) { + var array = this.lastValue.split('-'); + this.inputYear = parseInt(array[0], 10); + this.inputMonth = parseInt(array[1], 10) - 1; + + if (this.type === 'date') { + this.inputDay = parseInt(array[2], 10); + } + } else { + this.inputYear = this.inputYear || this.now.getFullYear(); + this.inputMonth = this.inputMonth == null ? this.inputMonth : this.now.getMonth(); + this.inputDay = this.inputDay || this.now.getDate(); + } + } + }, + render: function render() { + return this.genPicker('v-picker--date'); + } +})); + +/***/ }), + +/***/ "./src/components/VDatePicker/VDatePickerDateTable.ts": +/*!************************************************************!*\ + !*** ./src/components/VDatePicker/VDatePickerDateTable.ts ***! + \************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _mixins_date_picker_table__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mixins/date-picker-table */ "./src/components/VDatePicker/mixins/date-picker-table.ts"); +/* harmony import */ var _util_dateTimeUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/dateTimeUtils */ "./src/util/dateTimeUtils.ts"); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util */ "./src/components/VDatePicker/util/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +// Mixins + // Utils + + + + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_4__["default"])(_mixins_date_picker_table__WEBPACK_IMPORTED_MODULE_0__["default"] +/* @vue/component */ +).extend({ + name: 'v-date-picker-date-table', + props: { + firstDayOfWeek: { + type: [String, Number], + default: 0 + }, + localeFirstDayOfYear: { + type: [String, Number], + default: 0 + }, + showWeek: Boolean, + weekdayFormat: Function + }, + computed: { + formatter: function formatter() { + return this.format || Object(_util__WEBPACK_IMPORTED_MODULE_2__["createNativeLocaleFormatter"])(this.currentLocale, { + day: 'numeric', + timeZone: 'UTC' + }, { + start: 8, + length: 2 + }); + }, + weekdayFormatter: function weekdayFormatter() { + return this.weekdayFormat || Object(_util__WEBPACK_IMPORTED_MODULE_2__["createNativeLocaleFormatter"])(this.currentLocale, { + weekday: 'narrow', + timeZone: 'UTC' + }); + }, + weekDays: function weekDays() { + var _this = this; + + var first = parseInt(this.firstDayOfWeek, 10); + return this.weekdayFormatter ? Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["createRange"])(7).map(function (i) { + return _this.weekdayFormatter("2017-01-" + (first + i + 15)); + }) // 2017-01-15 is Sunday + : Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["createRange"])(7).map(function (i) { + return ['S', 'M', 'T', 'W', 'T', 'F', 'S'][(i + first) % 7]; + }); + } + }, + methods: { + calculateTableDate: function calculateTableDate(delta) { + return Object(_util__WEBPACK_IMPORTED_MODULE_2__["monthChange"])(this.tableDate, Math.sign(delta || 1)); + }, + genTHead: function genTHead() { + var _this = this; + + var days = this.weekDays.map(function (day) { + return _this.$createElement('th', day); + }); + + if (this.showWeek) { + days.unshift(this.$createElement('th')); + } + + return this.$createElement('thead', this.genTR(days)); + }, + // Returns number of the days from the firstDayOfWeek to the first day of the current month + weekDaysBeforeFirstDayOfTheMonth: function weekDaysBeforeFirstDayOfTheMonth() { + var firstDayOfTheMonth = new Date(this.displayedYear + "-" + Object(_util__WEBPACK_IMPORTED_MODULE_2__["pad"])(this.displayedMonth + 1) + "-01T00:00:00+00:00"); + var weekDay = firstDayOfTheMonth.getUTCDay(); + return (weekDay - parseInt(this.firstDayOfWeek) + 7) % 7; + }, + getWeekNumber: function getWeekNumber(dayInMonth) { + return Object(_util_dateTimeUtils__WEBPACK_IMPORTED_MODULE_1__["weekNumber"])(this.displayedYear, this.displayedMonth, dayInMonth, parseInt(this.firstDayOfWeek), parseInt(this.localeFirstDayOfYear)); + }, + genWeekNumber: function genWeekNumber(weekNumber) { + return this.$createElement('td', [this.$createElement('small', { + staticClass: 'v-date-picker-table--date__week' + }, String(weekNumber).padStart(2, '0'))]); + }, + genTBody: function genTBody() { + var children = []; + var daysInMonth = new Date(this.displayedYear, this.displayedMonth + 1, 0).getDate(); + var rows = []; + var day = this.weekDaysBeforeFirstDayOfTheMonth(); + + if (this.showWeek) { + rows.push(this.genWeekNumber(this.getWeekNumber(1))); + } + + while (day--) { + rows.push(this.$createElement('td')); + } + + for (day = 1; day <= daysInMonth; day++) { + var date = this.displayedYear + "-" + Object(_util__WEBPACK_IMPORTED_MODULE_2__["pad"])(this.displayedMonth + 1) + "-" + Object(_util__WEBPACK_IMPORTED_MODULE_2__["pad"])(day); + rows.push(this.$createElement('td', [this.genButton(date, true, 'date', this.formatter)])); + + if (rows.length % (this.showWeek ? 8 : 7) === 0) { + children.push(this.genTR(rows)); + rows = []; + + if (this.showWeek && day < daysInMonth) { + rows.push(this.genWeekNumber(this.getWeekNumber(day + 7))); + } + } + } + + if (rows.length) { + children.push(this.genTR(rows)); + } + + return this.$createElement('tbody', children); + }, + genTR: function genTR(children) { + return [this.$createElement('tr', children)]; + } + }, + render: function render() { + return this.genTable('v-date-picker-table v-date-picker-table--date', [this.genTHead(), this.genTBody()], this.calculateTableDate); + } +})); + +/***/ }), + +/***/ "./src/components/VDatePicker/VDatePickerHeader.sass": +/*!***********************************************************!*\ + !*** ./src/components/VDatePicker/VDatePickerHeader.sass ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VDatePicker/VDatePickerHeader.ts": +/*!*********************************************************!*\ + !*** ./src/components/VDatePicker/VDatePickerHeader.ts ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VDatePickerHeader_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VDatePickerHeader.sass */ "./src/components/VDatePicker/VDatePickerHeader.sass"); +/* harmony import */ var _VDatePickerHeader_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VDatePickerHeader_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VBtn__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VBtn */ "./src/components/VBtn/index.ts"); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../VIcon */ "./src/components/VIcon/index.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_localable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/localable */ "./src/mixins/localable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./util */ "./src/components/VDatePicker/util/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + + // Components + + + // Mixins + + + + // Utils + + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_7__["default"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_3__["default"], _mixins_localable__WEBPACK_IMPORTED_MODULE_4__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_5__["default"] +/* @vue/component */ +).extend({ + name: 'v-date-picker-header', + props: { + disabled: Boolean, + format: Function, + min: String, + max: String, + nextAriaLabel: String, + nextIcon: { + type: String, + default: '$next' + }, + prevAriaLabel: String, + prevIcon: { + type: String, + default: '$prev' + }, + readonly: Boolean, + value: { + type: [Number, String], + required: true + } + }, + data: function data() { + return { + isReversing: false + }; + }, + computed: { + formatter: function formatter() { + if (this.format) { + return this.format; + } else if (String(this.value).split('-')[1]) { + return Object(_util__WEBPACK_IMPORTED_MODULE_6__["createNativeLocaleFormatter"])(this.currentLocale, { + month: 'long', + year: 'numeric', + timeZone: 'UTC' + }, { + length: 7 + }); + } else { + return Object(_util__WEBPACK_IMPORTED_MODULE_6__["createNativeLocaleFormatter"])(this.currentLocale, { + year: 'numeric', + timeZone: 'UTC' + }, { + length: 4 + }); + } + } + }, + watch: { + value: function value(newVal, oldVal) { + this.isReversing = newVal < oldVal; + } + }, + methods: { + genBtn: function genBtn(change) { + var _this = this; + + var ariaLabelId = change > 0 ? this.nextAriaLabel : this.prevAriaLabel; + var ariaLabel = ariaLabelId ? this.$vuetify.lang.t(ariaLabelId) : undefined; + var disabled = this.disabled || change < 0 && this.min && this.calculateChange(change) < this.min || change > 0 && this.max && this.calculateChange(change) > this.max; + return this.$createElement(_VBtn__WEBPACK_IMPORTED_MODULE_1__["default"], { + attrs: { + 'aria-label': ariaLabel + }, + props: { + dark: this.dark, + disabled: disabled, + icon: true, + light: this.light + }, + on: { + click: function click(e) { + e.stopPropagation(); + + _this.$emit('input', _this.calculateChange(change)); + } + } + }, [this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_2__["default"], change < 0 === !this.$vuetify.rtl ? this.prevIcon : this.nextIcon)]); + }, + calculateChange: function calculateChange(sign) { + var _a = __read(String(this.value).split('-').map(Number), 2), + year = _a[0], + month = _a[1]; + + if (month == null) { + return "" + (year + sign); + } else { + return Object(_util__WEBPACK_IMPORTED_MODULE_6__["monthChange"])(String(this.value), sign); + } + }, + genHeader: function genHeader() { + var _this = this; + + var color = !this.disabled && (this.color || 'accent'); + var header = this.$createElement('div', this.setTextColor(color, { + key: String(this.value) + }), [this.$createElement('button', { + attrs: { + type: 'button' + }, + on: { + click: function click() { + return _this.$emit('toggle'); + } + } + }, [this.$slots.default || this.formatter(String(this.value))])]); + var transition = this.$createElement('transition', { + props: { + name: this.isReversing === !this.$vuetify.rtl ? 'tab-reverse-transition' : 'tab-transition' + } + }, [header]); + return this.$createElement('div', { + staticClass: 'v-date-picker-header__value', + class: { + 'v-date-picker-header__value--disabled': this.disabled + } + }, [transition]); + } + }, + render: function render() { + return this.$createElement('div', { + staticClass: 'v-date-picker-header', + class: __assign({ + 'v-date-picker-header--disabled': this.disabled + }, this.themeClasses) + }, [this.genBtn(-1), this.genHeader(), this.genBtn(+1)]); + } +})); + +/***/ }), + +/***/ "./src/components/VDatePicker/VDatePickerMonthTable.ts": +/*!*************************************************************!*\ + !*** ./src/components/VDatePicker/VDatePickerMonthTable.ts ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _mixins_date_picker_table__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mixins/date-picker-table */ "./src/components/VDatePicker/mixins/date-picker-table.ts"); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "./src/components/VDatePicker/util/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +// Mixins + // Utils + + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_2__["default"])(_mixins_date_picker_table__WEBPACK_IMPORTED_MODULE_0__["default"] +/* @vue/component */ +).extend({ + name: 'v-date-picker-month-table', + computed: { + formatter: function formatter() { + return this.format || Object(_util__WEBPACK_IMPORTED_MODULE_1__["createNativeLocaleFormatter"])(this.currentLocale, { + month: 'short', + timeZone: 'UTC' + }, { + start: 5, + length: 2 + }); + } + }, + methods: { + calculateTableDate: function calculateTableDate(delta) { + return "" + (parseInt(this.tableDate, 10) + Math.sign(delta || 1)); + }, + genTBody: function genTBody() { + var _this = this; + + var children = []; + var cols = Array(3).fill(null); + var rows = 12 / cols.length; + + var _loop_1 = function _loop_1(row) { + var tds = cols.map(function (_, col) { + var month = row * cols.length + col; + var date = _this.displayedYear + "-" + Object(_util__WEBPACK_IMPORTED_MODULE_1__["pad"])(month + 1); + return _this.$createElement('td', { + key: month + }, [_this.genButton(date, false, 'month', _this.formatter)]); + }); + children.push(this_1.$createElement('tr', { + key: row + }, tds)); + }; + + var this_1 = this; + + for (var row = 0; row < rows; row++) { + _loop_1(row); + } + + return this.$createElement('tbody', children); + } + }, + render: function render() { + return this.genTable('v-date-picker-table v-date-picker-table--month', [this.genTBody()], this.calculateTableDate); + } +})); + +/***/ }), + +/***/ "./src/components/VDatePicker/VDatePickerTable.sass": +/*!**********************************************************!*\ + !*** ./src/components/VDatePicker/VDatePickerTable.sass ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VDatePicker/VDatePickerTitle.sass": +/*!**********************************************************!*\ + !*** ./src/components/VDatePicker/VDatePickerTitle.sass ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VDatePicker/VDatePickerTitle.ts": +/*!********************************************************!*\ + !*** ./src/components/VDatePicker/VDatePickerTitle.ts ***! + \********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VDatePickerTitle_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VDatePickerTitle.sass */ "./src/components/VDatePicker/VDatePickerTitle.sass"); +/* harmony import */ var _VDatePickerTitle_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VDatePickerTitle_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VIcon */ "./src/components/VIcon/index.ts"); +/* harmony import */ var _mixins_picker_button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/picker-button */ "./src/mixins/picker-button/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); + // Components + + // Mixins + + // Utils + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_3__["default"])(_mixins_picker_button__WEBPACK_IMPORTED_MODULE_2__["default"] +/* @vue/component */ +).extend({ + name: 'v-date-picker-title', + props: { + date: { + type: String, + default: '' + }, + disabled: Boolean, + readonly: Boolean, + selectingYear: Boolean, + value: { + type: String + }, + year: { + type: [Number, String], + default: '' + }, + yearIcon: { + type: String + } + }, + data: function data() { + return { + isReversing: false + }; + }, + computed: { + computedTransition: function computedTransition() { + return this.isReversing ? 'picker-reverse-transition' : 'picker-transition'; + } + }, + watch: { + value: function value(val, prev) { + this.isReversing = val < prev; + } + }, + methods: { + genYearIcon: function genYearIcon() { + return this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_1__["default"], { + props: { + dark: true + } + }, this.yearIcon); + }, + getYearBtn: function getYearBtn() { + return this.genPickerButton('selectingYear', true, [String(this.year), this.yearIcon ? this.genYearIcon() : null], false, 'v-date-picker-title__year'); + }, + genTitleText: function genTitleText() { + return this.$createElement('transition', { + props: { + name: this.computedTransition + } + }, [this.$createElement('div', { + domProps: { + innerHTML: this.date || ' ' + }, + key: this.value + })]); + }, + genTitleDate: function genTitleDate() { + return this.genPickerButton('selectingYear', false, [this.genTitleText()], false, 'v-date-picker-title__date'); + } + }, + render: function render(h) { + return h('div', { + staticClass: 'v-date-picker-title', + class: { + 'v-date-picker-title--disabled': this.disabled + } + }, [this.getYearBtn(), this.genTitleDate()]); + } +})); + +/***/ }), + +/***/ "./src/components/VDatePicker/VDatePickerYears.sass": +/*!**********************************************************!*\ + !*** ./src/components/VDatePicker/VDatePickerYears.sass ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VDatePicker/VDatePickerYears.ts": +/*!********************************************************!*\ + !*** ./src/components/VDatePicker/VDatePickerYears.ts ***! + \********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VDatePickerYears_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VDatePickerYears.sass */ "./src/components/VDatePicker/VDatePickerYears.sass"); +/* harmony import */ var _VDatePickerYears_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VDatePickerYears_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_localable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/localable */ "./src/mixins/localable/index.ts"); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util */ "./src/components/VDatePicker/util/index.ts"); +/* harmony import */ var _util_mergeData__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/mergeData */ "./src/util/mergeData.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); + // Mixins + + + // Utils + + + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_5__["default"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_1__["default"], _mixins_localable__WEBPACK_IMPORTED_MODULE_2__["default"] +/* @vue/component */ +).extend({ + name: 'v-date-picker-years', + props: { + format: Function, + min: [Number, String], + max: [Number, String], + readonly: Boolean, + value: [Number, String] + }, + data: function data() { + return { + defaultColor: 'primary' + }; + }, + computed: { + formatter: function formatter() { + return this.format || Object(_util__WEBPACK_IMPORTED_MODULE_3__["createNativeLocaleFormatter"])(this.currentLocale, { + year: 'numeric', + timeZone: 'UTC' + }, { + length: 4 + }); + } + }, + mounted: function mounted() { + var _this = this; + + setTimeout(function () { + var activeItem = _this.$el.getElementsByClassName('active')[0]; + + if (activeItem) { + _this.$el.scrollTop = activeItem.offsetTop - _this.$el.offsetHeight / 2 + activeItem.offsetHeight / 2; + } else if (_this.min && !_this.max) { + _this.$el.scrollTop = _this.$el.scrollHeight; + } else if (!_this.min && _this.max) { + _this.$el.scrollTop = 0; + } else { + _this.$el.scrollTop = _this.$el.scrollHeight / 2 - _this.$el.offsetHeight / 2; + } + }); + }, + methods: { + genYearItem: function genYearItem(year) { + var _this = this; + + var formatted = this.formatter("" + year); + var active = parseInt(this.value, 10) === year; + var color = active && (this.color || 'primary'); + return this.$createElement('li', this.setTextColor(color, { + key: year, + class: { + active: active + }, + on: Object(_util_mergeData__WEBPACK_IMPORTED_MODULE_4__["mergeListeners"])({ + click: function click() { + return _this.$emit('input', year); + } + }, Object(_util__WEBPACK_IMPORTED_MODULE_3__["createItemTypeNativeListeners"])(this, ':year', year)) + }), formatted); + }, + genYearItems: function genYearItems() { + var children = []; + var selectedYear = this.value ? parseInt(this.value, 10) : new Date().getFullYear(); + var maxYear = this.max ? parseInt(this.max, 10) : selectedYear + 100; + var minYear = Math.min(maxYear, this.min ? parseInt(this.min, 10) : selectedYear - 100); + + for (var year = maxYear; year >= minYear; year--) { + children.push(this.genYearItem(year)); + } + + return children; + } + }, + render: function render() { + return this.$createElement('ul', { + staticClass: 'v-date-picker-years', + ref: 'years' + }, this.genYearItems()); + } +})); + +/***/ }), + +/***/ "./src/components/VDatePicker/index.ts": +/*!*********************************************!*\ + !*** ./src/components/VDatePicker/index.ts ***! + \*********************************************/ +/*! exports provided: VDatePicker, VDatePickerTitle, VDatePickerHeader, VDatePickerDateTable, VDatePickerMonthTable, VDatePickerYears, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VDatePicker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VDatePicker */ "./src/components/VDatePicker/VDatePicker.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDatePicker", function() { return _VDatePicker__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + +/* harmony import */ var _VDatePickerTitle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VDatePickerTitle */ "./src/components/VDatePicker/VDatePickerTitle.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDatePickerTitle", function() { return _VDatePickerTitle__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + +/* harmony import */ var _VDatePickerHeader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./VDatePickerHeader */ "./src/components/VDatePicker/VDatePickerHeader.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDatePickerHeader", function() { return _VDatePickerHeader__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + +/* harmony import */ var _VDatePickerDateTable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./VDatePickerDateTable */ "./src/components/VDatePicker/VDatePickerDateTable.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDatePickerDateTable", function() { return _VDatePickerDateTable__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + +/* harmony import */ var _VDatePickerMonthTable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./VDatePickerMonthTable */ "./src/components/VDatePicker/VDatePickerMonthTable.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDatePickerMonthTable", function() { return _VDatePickerMonthTable__WEBPACK_IMPORTED_MODULE_4__["default"]; }); + +/* harmony import */ var _VDatePickerYears__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./VDatePickerYears */ "./src/components/VDatePicker/VDatePickerYears.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDatePickerYears", function() { return _VDatePickerYears__WEBPACK_IMPORTED_MODULE_5__["default"]; }); + + + + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + $_vuetify_subcomponents: { + VDatePicker: _VDatePicker__WEBPACK_IMPORTED_MODULE_0__["default"], + VDatePickerTitle: _VDatePickerTitle__WEBPACK_IMPORTED_MODULE_1__["default"], + VDatePickerHeader: _VDatePickerHeader__WEBPACK_IMPORTED_MODULE_2__["default"], + VDatePickerDateTable: _VDatePickerDateTable__WEBPACK_IMPORTED_MODULE_3__["default"], + VDatePickerMonthTable: _VDatePickerMonthTable__WEBPACK_IMPORTED_MODULE_4__["default"], + VDatePickerYears: _VDatePickerYears__WEBPACK_IMPORTED_MODULE_5__["default"] + } +}); + +/***/ }), + +/***/ "./src/components/VDatePicker/mixins/date-picker-table.ts": +/*!****************************************************************!*\ + !*** ./src/components/VDatePicker/mixins/date-picker-table.ts ***! + \****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VDatePickerTable_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../VDatePickerTable.sass */ "./src/components/VDatePicker/VDatePickerTable.sass"); +/* harmony import */ var _VDatePickerTable_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VDatePickerTable_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _directives_touch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../directives/touch */ "./src/directives/touch/index.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_localable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../mixins/localable */ "./src/mixins/localable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util */ "./src/components/VDatePicker/util/index.ts"); +/* harmony import */ var _util_isDateAllowed__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../util/isDateAllowed */ "./src/components/VDatePicker/util/isDateAllowed.ts"); +/* harmony import */ var _util_mergeData__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../util/mergeData */ "./src/util/mergeData.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../util/helpers */ "./src/util/helpers.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + +var __spread = undefined && undefined.__spread || function () { + for (var ar = [], i = 0; i < arguments.length; i++) { + ar = ar.concat(__read(arguments[i])); + } + + return ar; +}; + + // Directives + + // Mixins + + + + // Utils + + + + + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_8__["default"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_2__["default"], _mixins_localable__WEBPACK_IMPORTED_MODULE_3__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_4__["default"] +/* @vue/component */ +).extend({ + directives: { + Touch: _directives_touch__WEBPACK_IMPORTED_MODULE_1__["default"] + }, + props: { + allowedDates: Function, + current: String, + disabled: Boolean, + format: Function, + events: { + type: [Array, Function, Object], + default: function _default() { + return null; + } + }, + eventColor: { + type: [Array, Function, Object, String], + default: function _default() { + return 'warning'; + } + }, + min: String, + max: String, + range: Boolean, + readonly: Boolean, + scrollable: Boolean, + tableDate: { + type: String, + required: true + }, + value: [String, Array] + }, + data: function data() { + return { + isReversing: false, + wheelThrottle: null + }; + }, + computed: { + computedTransition: function computedTransition() { + return this.isReversing === !this.$vuetify.rtl ? 'tab-reverse-transition' : 'tab-transition'; + }, + displayedMonth: function displayedMonth() { + return Number(this.tableDate.split('-')[1]) - 1; + }, + displayedYear: function displayedYear() { + return Number(this.tableDate.split('-')[0]); + } + }, + watch: { + tableDate: function tableDate(newVal, oldVal) { + this.isReversing = newVal < oldVal; + } + }, + mounted: function mounted() { + this.wheelThrottle = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_9__["throttle"])(this.wheel, 250); + }, + methods: { + genButtonClasses: function genButtonClasses(isAllowed, isFloating, isSelected, isCurrent) { + return __assign({ + 'v-size--default': !isFloating, + 'v-date-picker-table__current': isCurrent, + 'v-btn--active': isSelected, + 'v-btn--flat': !isAllowed || this.disabled, + 'v-btn--text': isSelected === isCurrent, + 'v-btn--rounded': isFloating, + 'v-btn--disabled': !isAllowed || this.disabled, + 'v-btn--outlined': isCurrent && !isSelected + }, this.themeClasses); + }, + genButtonEvents: function genButtonEvents(value, isAllowed, mouseEventType) { + var _this = this; + + if (this.disabled) return undefined; + return Object(_util_mergeData__WEBPACK_IMPORTED_MODULE_7__["mergeListeners"])({ + click: function click() { + if (isAllowed && !_this.readonly) _this.$emit('input', value); + } + }, Object(_util__WEBPACK_IMPORTED_MODULE_5__["createItemTypeNativeListeners"])(this, ":" + mouseEventType, value)); + }, + genButton: function genButton(value, isFloating, mouseEventType, formatter) { + var isAllowed = Object(_util_isDateAllowed__WEBPACK_IMPORTED_MODULE_6__["default"])(value, this.min, this.max, this.allowedDates); + var isSelected = this.isSelected(value) && isAllowed; + var isCurrent = value === this.current; + var setColor = isSelected ? this.setBackgroundColor : this.setTextColor; + var color = (isSelected || isCurrent) && (this.color || 'accent'); + return this.$createElement('button', setColor(color, { + staticClass: 'v-btn', + class: this.genButtonClasses(isAllowed, isFloating, isSelected, isCurrent), + attrs: { + type: 'button' + }, + domProps: { + disabled: this.disabled || !isAllowed + }, + on: this.genButtonEvents(value, isAllowed, mouseEventType) + }), [this.$createElement('div', { + staticClass: 'v-btn__content' + }, [formatter(value)]), this.genEvents(value)]); + }, + getEventColors: function getEventColors(date) { + var arrayize = function arrayize(v) { + return Array.isArray(v) ? v : [v]; + }; + + var eventData; + var eventColors = []; + + if (Array.isArray(this.events)) { + eventData = this.events.includes(date); + } else if (this.events instanceof Function) { + eventData = this.events(date) || false; + } else if (this.events) { + eventData = this.events[date] || false; + } else { + eventData = false; + } + + if (!eventData) { + return []; + } else if (eventData !== true) { + eventColors = arrayize(eventData); + } else if (typeof this.eventColor === 'string') { + eventColors = [this.eventColor]; + } else if (typeof this.eventColor === 'function') { + eventColors = arrayize(this.eventColor(date)); + } else if (Array.isArray(this.eventColor)) { + eventColors = this.eventColor; + } else { + eventColors = arrayize(this.eventColor[date]); + } + + return eventColors.filter(function (v) { + return v; + }); + }, + genEvents: function genEvents(date) { + var _this = this; + + var eventColors = this.getEventColors(date); + return eventColors.length ? this.$createElement('div', { + staticClass: 'v-date-picker-table__events' + }, eventColors.map(function (color) { + return _this.$createElement('div', _this.setBackgroundColor(color)); + })) : null; + }, + wheel: function wheel(e, calculateTableDate) { + this.$emit('update:table-date', calculateTableDate(e.deltaY)); + }, + touch: function touch(value, calculateTableDate) { + this.$emit('update:table-date', calculateTableDate(value)); + }, + genTable: function genTable(staticClass, children, calculateTableDate) { + var _this = this; + + var transition = this.$createElement('transition', { + props: { + name: this.computedTransition + } + }, [this.$createElement('table', { + key: this.tableDate + }, children)]); + var touchDirective = { + name: 'touch', + value: { + left: function left(e) { + return e.offsetX < -15 && _this.touch(1, calculateTableDate); + }, + right: function right(e) { + return e.offsetX > 15 && _this.touch(-1, calculateTableDate); + } + } + }; + return this.$createElement('div', { + staticClass: staticClass, + class: __assign({ + 'v-date-picker-table--disabled': this.disabled + }, this.themeClasses), + on: !this.disabled && this.scrollable ? { + wheel: function wheel(e) { + e.preventDefault(); + + _this.wheelThrottle(e, calculateTableDate); + } + } : undefined, + directives: [touchDirective] + }, [transition]); + }, + isSelected: function isSelected(value) { + if (Array.isArray(this.value)) { + if (this.range && this.value.length === 2) { + var _a = __read(__spread(this.value).sort(), 2), + from = _a[0], + to = _a[1]; + + return from <= value && value <= to; + } else { + return this.value.indexOf(value) !== -1; + } + } + + return value === this.value; + } + } +})); + +/***/ }), + +/***/ "./src/components/VDatePicker/util/createNativeLocaleFormatter.ts": +/*!************************************************************************!*\ + !*** ./src/components/VDatePicker/util/createNativeLocaleFormatter.ts ***! + \************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _pad__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pad */ "./src/components/VDatePicker/util/pad.ts"); +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + + + +function createNativeLocaleFormatter(locale, options, substrOptions) { + if (substrOptions === void 0) { + substrOptions = { + start: 0, + length: 0 + }; + } + + var makeIsoString = function makeIsoString(dateString) { + var _a = __read(dateString.trim().split(' ')[0].split('-'), 3), + year = _a[0], + month = _a[1], + date = _a[2]; + + return [Object(_pad__WEBPACK_IMPORTED_MODULE_0__["default"])(year, 4), Object(_pad__WEBPACK_IMPORTED_MODULE_0__["default"])(month || 1), Object(_pad__WEBPACK_IMPORTED_MODULE_0__["default"])(date || 1)].join('-'); + }; + + try { + var intlFormatter_1 = new Intl.DateTimeFormat(locale || undefined, options); + return function (dateString) { + return intlFormatter_1.format(new Date(makeIsoString(dateString) + "T00:00:00+00:00")); + }; + } catch (e) { + return substrOptions.start || substrOptions.length ? function (dateString) { + return makeIsoString(dateString).substr(substrOptions.start || 0, substrOptions.length); + } : undefined; + } +} + +/* harmony default export */ __webpack_exports__["default"] = (createNativeLocaleFormatter); + +/***/ }), + +/***/ "./src/components/VDatePicker/util/eventHelpers.ts": +/*!*********************************************************!*\ + !*** ./src/components/VDatePicker/util/eventHelpers.ts ***! + \*********************************************************/ +/*! exports provided: createItemTypeNativeListeners, createItemTypeListeners */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createItemTypeNativeListeners", function() { return createItemTypeNativeListeners; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createItemTypeListeners", function() { return createItemTypeListeners; }); +function createItemTypeNativeListeners(instance, itemTypeSuffix, value) { + return Object.keys(instance.$listeners).reduce(function (on, eventName) { + if (eventName.endsWith(itemTypeSuffix)) { + on[eventName.slice(0, -itemTypeSuffix.length)] = function (event) { + return instance.$emit(eventName, value, event); + }; + } + + return on; + }, {}); +} +function createItemTypeListeners(instance, itemTypeSuffix) { + return Object.keys(instance.$listeners).reduce(function (on, eventName) { + if (eventName.endsWith(itemTypeSuffix)) { + on[eventName] = instance.$listeners[eventName]; + } + + return on; + }, {}); +} + +/***/ }), + +/***/ "./src/components/VDatePicker/util/index.ts": +/*!**************************************************!*\ + !*** ./src/components/VDatePicker/util/index.ts ***! + \**************************************************/ +/*! exports provided: createItemTypeListeners, createItemTypeNativeListeners, createNativeLocaleFormatter, monthChange, pad */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _eventHelpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./eventHelpers */ "./src/components/VDatePicker/util/eventHelpers.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createItemTypeListeners", function() { return _eventHelpers__WEBPACK_IMPORTED_MODULE_0__["createItemTypeListeners"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createItemTypeNativeListeners", function() { return _eventHelpers__WEBPACK_IMPORTED_MODULE_0__["createItemTypeNativeListeners"]; }); + +/* harmony import */ var _createNativeLocaleFormatter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createNativeLocaleFormatter */ "./src/components/VDatePicker/util/createNativeLocaleFormatter.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createNativeLocaleFormatter", function() { return _createNativeLocaleFormatter__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + +/* harmony import */ var _monthChange__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./monthChange */ "./src/components/VDatePicker/util/monthChange.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "monthChange", function() { return _monthChange__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + +/* harmony import */ var _pad__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pad */ "./src/components/VDatePicker/util/pad.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pad", function() { return _pad__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + + + + + + + +/***/ }), + +/***/ "./src/components/VDatePicker/util/isDateAllowed.ts": +/*!**********************************************************!*\ + !*** ./src/components/VDatePicker/util/isDateAllowed.ts ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return isDateAllowed; }); +function isDateAllowed(date, min, max, allowedFn) { + return (!allowedFn || allowedFn(date)) && (!min || date >= min.substr(0, 10)) && (!max || date <= max); +} + +/***/ }), + +/***/ "./src/components/VDatePicker/util/monthChange.ts": +/*!********************************************************!*\ + !*** ./src/components/VDatePicker/util/monthChange.ts ***! + \********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _pad__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pad */ "./src/components/VDatePicker/util/pad.ts"); +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + + +/** + * @param {String} value YYYY-MM format + * @param {Number} sign -1 or +1 + */ + +/* harmony default export */ __webpack_exports__["default"] = (function (value, sign) { + var _a = __read(value.split('-').map(Number), 2), + year = _a[0], + month = _a[1]; + + if (month + sign === 0) { + return year - 1 + "-12"; + } else if (month + sign === 13) { + return year + 1 + "-01"; + } else { + return year + "-" + Object(_pad__WEBPACK_IMPORTED_MODULE_0__["default"])(month + sign); + } +}); + +/***/ }), + +/***/ "./src/components/VDatePicker/util/pad.ts": +/*!************************************************!*\ + !*** ./src/components/VDatePicker/util/pad.ts ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +var padStart = function padStart(string, targetLength, padString) { + targetLength = targetLength >> 0; + string = String(string); + padString = String(padString); + + if (string.length > targetLength) { + return String(string); + } + + targetLength = targetLength - string.length; + + if (targetLength > padString.length) { + padString += padString.repeat(targetLength / padString.length); + } + + return padString.slice(0, targetLength) + String(string); +}; + +/* harmony default export */ __webpack_exports__["default"] = (function (n, length) { + if (length === void 0) { + length = 2; + } + + return padStart(n, length, '0'); +}); + +/***/ }), + +/***/ "./src/components/VDialog/VDialog.sass": +/*!*********************************************!*\ + !*** ./src/components/VDialog/VDialog.sass ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VDialog/VDialog.ts": +/*!*******************************************!*\ + !*** ./src/components/VDialog/VDialog.ts ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VDialog_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VDialog.sass */ "./src/components/VDialog/VDialog.sass"); +/* harmony import */ var _VDialog_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VDialog_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VThemeProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VThemeProvider */ "./src/components/VThemeProvider/index.ts"); +/* harmony import */ var _mixins_activatable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/activatable */ "./src/mixins/activatable/index.ts"); +/* harmony import */ var _mixins_dependent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/dependent */ "./src/mixins/dependent/index.ts"); +/* harmony import */ var _mixins_detachable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/detachable */ "./src/mixins/detachable/index.ts"); +/* harmony import */ var _mixins_overlayable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/overlayable */ "./src/mixins/overlayable/index.ts"); +/* harmony import */ var _mixins_returnable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../mixins/returnable */ "./src/mixins/returnable/index.ts"); +/* harmony import */ var _mixins_stackable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../mixins/stackable */ "./src/mixins/stackable/index.ts"); +/* harmony import */ var _mixins_toggleable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../mixins/toggleable */ "./src/mixins/toggleable/index.ts"); +/* harmony import */ var _directives_click_outside__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../directives/click-outside */ "./src/directives/click-outside/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + +var __spread = undefined && undefined.__spread || function () { + for (var ar = [], i = 0; i < arguments.length; i++) { + ar = ar.concat(__read(arguments[i])); + } + + return ar; +}; // Styles + + + // Components + + // Mixins + + + + + + + + // Directives + + // Helpers + + + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_10__["default"])(_mixins_activatable__WEBPACK_IMPORTED_MODULE_2__["default"], _mixins_dependent__WEBPACK_IMPORTED_MODULE_3__["default"], _mixins_detachable__WEBPACK_IMPORTED_MODULE_4__["default"], _mixins_overlayable__WEBPACK_IMPORTED_MODULE_5__["default"], _mixins_returnable__WEBPACK_IMPORTED_MODULE_6__["default"], _mixins_stackable__WEBPACK_IMPORTED_MODULE_7__["default"], _mixins_toggleable__WEBPACK_IMPORTED_MODULE_8__["default"]); +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend({ + name: 'v-dialog', + directives: { + ClickOutside: _directives_click_outside__WEBPACK_IMPORTED_MODULE_9__["default"] + }, + props: { + dark: Boolean, + disabled: Boolean, + fullscreen: Boolean, + light: Boolean, + maxWidth: { + type: [String, Number], + default: 'none' + }, + noClickAnimation: Boolean, + origin: { + type: String, + default: 'center center' + }, + persistent: Boolean, + retainFocus: { + type: Boolean, + default: true + }, + scrollable: Boolean, + transition: { + type: [String, Boolean], + default: 'dialog-transition' + }, + width: { + type: [String, Number], + default: 'auto' + } + }, + data: function data() { + return { + activatedBy: null, + animate: false, + animateTimeout: -1, + isActive: !!this.value, + stackMinZIndex: 200, + previousActiveElement: null + }; + }, + computed: { + classes: function classes() { + var _a; + + return _a = {}, _a[("v-dialog " + this.contentClass).trim()] = true, _a['v-dialog--active'] = this.isActive, _a['v-dialog--persistent'] = this.persistent, _a['v-dialog--fullscreen'] = this.fullscreen, _a['v-dialog--scrollable'] = this.scrollable, _a['v-dialog--animated'] = this.animate, _a; + }, + contentClasses: function contentClasses() { + return { + 'v-dialog__content': true, + 'v-dialog__content--active': this.isActive + }; + }, + hasActivator: function hasActivator() { + return Boolean(!!this.$slots.activator || !!this.$scopedSlots.activator); + } + }, + watch: { + isActive: function isActive(val) { + var _a; + + if (val) { + this.show(); + this.hideScroll(); + } else { + this.removeOverlay(); + this.unbind(); + (_a = this.previousActiveElement) === null || _a === void 0 ? void 0 : _a.focus(); + } + }, + fullscreen: function fullscreen(val) { + if (!this.isActive) return; + + if (val) { + this.hideScroll(); + this.removeOverlay(false); + } else { + this.showScroll(); + this.genOverlay(); + } + } + }, + created: function created() { + /* istanbul ignore next */ + if (this.$attrs.hasOwnProperty('full-width')) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_11__["removed"])('full-width', this); + } + }, + beforeMount: function beforeMount() { + var _this = this; + + this.$nextTick(function () { + _this.isBooted = _this.isActive; + _this.isActive && _this.show(); + }); + }, + beforeDestroy: function beforeDestroy() { + if (typeof window !== 'undefined') this.unbind(); + }, + methods: { + animateClick: function animateClick() { + var _this = this; + + this.animate = false; // Needed for when clicking very fast + // outside of the dialog + + this.$nextTick(function () { + _this.animate = true; + window.clearTimeout(_this.animateTimeout); + _this.animateTimeout = window.setTimeout(function () { + return _this.animate = false; + }, 150); + }); + }, + closeConditional: function closeConditional(e) { + var target = e.target; // Ignore the click if the dialog is closed or destroyed, + // if it was on an element inside the content, + // if it was dragged onto the overlay (#6969), + // or if this isn't the topmost dialog (#9907) + + return !(this._isDestroyed || !this.isActive || this.$refs.content.contains(target) || this.overlay && target && !this.overlay.$el.contains(target)) && this.activeZIndex >= this.getMaxZIndex(); + }, + hideScroll: function hideScroll() { + if (this.fullscreen) { + document.documentElement.classList.add('overflow-y-hidden'); + } else { + _mixins_overlayable__WEBPACK_IMPORTED_MODULE_5__["default"].options.methods.hideScroll.call(this); + } + }, + show: function show() { + var _this = this; + + !this.fullscreen && !this.hideOverlay && this.genOverlay(); // Double nextTick to wait for lazy content to be generated + + this.$nextTick(function () { + _this.$nextTick(function () { + _this.previousActiveElement = document.activeElement; + + _this.$refs.content.focus(); + + _this.bind(); + }); + }); + }, + bind: function bind() { + window.addEventListener('focusin', this.onFocusin); + }, + unbind: function unbind() { + window.removeEventListener('focusin', this.onFocusin); + }, + onClickOutside: function onClickOutside(e) { + this.$emit('click:outside', e); + + if (this.persistent) { + this.noClickAnimation || this.animateClick(); + } else { + this.isActive = false; + } + }, + onKeydown: function onKeydown(e) { + if (e.keyCode === _util_helpers__WEBPACK_IMPORTED_MODULE_12__["keyCodes"].esc && !this.getOpenDependents().length) { + if (!this.persistent) { + this.isActive = false; + var activator_1 = this.getActivator(); + this.$nextTick(function () { + return activator_1 && activator_1.focus(); + }); + } else if (!this.noClickAnimation) { + this.animateClick(); + } + } + + this.$emit('keydown', e); + }, + // On focus change, wrap focus to stay inside the dialog + // https://github.com/vuetifyjs/vuetify/issues/6892 + onFocusin: function onFocusin(e) { + if (!e || !this.retainFocus) return; + var target = e.target; + + if (!!target && // It isn't the document or the dialog body + ![document, this.$refs.content].includes(target) && // It isn't inside the dialog body + !this.$refs.content.contains(target) && // We're the topmost dialog + this.activeZIndex >= this.getMaxZIndex() && // It isn't inside a dependent element (like a menu) + !this.getOpenDependentElements().some(function (el) { + return el.contains(target); + }) // So we must have focused something outside the dialog and its children + ) { + // Find and focus the first available element inside the dialog + var focusable = this.$refs.content.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'); + + var el = __spread(focusable).find(function (el) { + return !el.hasAttribute('disabled'); + }); + + el && el.focus(); + } + }, + genContent: function genContent() { + var _this = this; + + return this.showLazyContent(function () { + return [_this.$createElement(_VThemeProvider__WEBPACK_IMPORTED_MODULE_1__["VThemeProvider"], { + props: { + root: true, + light: _this.light, + dark: _this.dark + } + }, [_this.$createElement('div', { + class: _this.contentClasses, + attrs: __assign({ + role: 'document', + tabindex: _this.isActive ? 0 : undefined + }, _this.getScopeIdAttrs()), + on: { + keydown: _this.onKeydown + }, + style: { + zIndex: _this.activeZIndex + }, + ref: 'content' + }, [_this.genTransition()])])]; + }); + }, + genTransition: function genTransition() { + var content = this.genInnerContent(); + if (!this.transition) return content; + return this.$createElement('transition', { + props: { + name: this.transition, + origin: this.origin, + appear: true + } + }, [content]); + }, + genInnerContent: function genInnerContent() { + var data = { + class: this.classes, + ref: 'dialog', + directives: [{ + name: 'click-outside', + value: { + handler: this.onClickOutside, + closeConditional: this.closeConditional, + include: this.getOpenDependentElements + } + }, { + name: 'show', + value: this.isActive + }], + style: { + transformOrigin: this.origin + } + }; + + if (!this.fullscreen) { + data.style = __assign(__assign({}, data.style), { + maxWidth: this.maxWidth === 'none' ? undefined : Object(_util_helpers__WEBPACK_IMPORTED_MODULE_12__["convertToUnit"])(this.maxWidth), + width: this.width === 'auto' ? undefined : Object(_util_helpers__WEBPACK_IMPORTED_MODULE_12__["convertToUnit"])(this.width) + }); + } + + return this.$createElement('div', data, this.getContentSlot()); + } + }, + render: function render(h) { + return h('div', { + staticClass: 'v-dialog__container', + class: { + 'v-dialog__container--attached': this.attach === '' || this.attach === true || this.attach === 'attach' + }, + attrs: { + role: 'dialog' + } + }, [this.genActivator(), this.genContent()]); + } +})); + +/***/ }), + +/***/ "./src/components/VDialog/index.ts": +/*!*****************************************!*\ + !*** ./src/components/VDialog/index.ts ***! + \*****************************************/ +/*! exports provided: VDialog, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VDialog__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VDialog */ "./src/components/VDialog/VDialog.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDialog", function() { return _VDialog__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VDialog__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VDivider/VDivider.sass": +/*!***********************************************!*\ + !*** ./src/components/VDivider/VDivider.sass ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VDivider/VDivider.ts": +/*!*********************************************!*\ + !*** ./src/components/VDivider/VDivider.ts ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VDivider_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VDivider.sass */ "./src/components/VDivider/VDivider.sass"); +/* harmony import */ var _VDivider_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VDivider_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Mixins + + +/* harmony default export */ __webpack_exports__["default"] = (_mixins_themeable__WEBPACK_IMPORTED_MODULE_1__["default"].extend({ + name: 'v-divider', + props: { + inset: Boolean, + vertical: Boolean + }, + render: function render(h) { + // WAI-ARIA attributes + var orientation; + + if (!this.$attrs.role || this.$attrs.role === 'separator') { + orientation = this.vertical ? 'vertical' : 'horizontal'; + } + + return h('hr', { + class: __assign({ + 'v-divider': true, + 'v-divider--inset': this.inset, + 'v-divider--vertical': this.vertical + }, this.themeClasses), + attrs: __assign({ + role: 'separator', + 'aria-orientation': orientation + }, this.$attrs), + on: this.$listeners + }); + } +})); + +/***/ }), + +/***/ "./src/components/VDivider/index.ts": +/*!******************************************!*\ + !*** ./src/components/VDivider/index.ts ***! + \******************************************/ +/*! exports provided: VDivider, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VDivider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VDivider */ "./src/components/VDivider/VDivider.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDivider", function() { return _VDivider__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VDivider__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VExpansionPanel/VExpansionPanel.sass": +/*!*************************************************************!*\ + !*** ./src/components/VExpansionPanel/VExpansionPanel.sass ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VExpansionPanel/VExpansionPanel.ts": +/*!***********************************************************!*\ + !*** ./src/components/VExpansionPanel/VExpansionPanel.ts ***! + \***********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _mixins_groupable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../mixins/groupable */ "./src/mixins/groupable/index.ts"); +/* harmony import */ var _mixins_registrable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/registrable */ "./src/mixins/registrable/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Mixins + + + + // Utilities + + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_3__["default"])(Object(_mixins_groupable__WEBPACK_IMPORTED_MODULE_0__["factory"])('expansionPanels', 'v-expansion-panel', 'v-expansion-panels'), Object(_mixins_registrable__WEBPACK_IMPORTED_MODULE_1__["provide"])('expansionPanel', true) +/* @vue/component */ +).extend({ + name: 'v-expansion-panel', + props: { + disabled: Boolean, + readonly: Boolean + }, + data: function data() { + return { + content: null, + header: null, + nextIsActive: false + }; + }, + computed: { + classes: function classes() { + return __assign({ + 'v-expansion-panel--active': this.isActive, + 'v-expansion-panel--next-active': this.nextIsActive, + 'v-expansion-panel--disabled': this.isDisabled + }, this.groupClasses); + }, + isDisabled: function isDisabled() { + return this.expansionPanels.disabled || this.disabled; + }, + isReadonly: function isReadonly() { + return this.expansionPanels.readonly || this.readonly; + } + }, + methods: { + registerContent: function registerContent(vm) { + this.content = vm; + }, + unregisterContent: function unregisterContent() { + this.content = null; + }, + registerHeader: function registerHeader(vm) { + this.header = vm; + vm.$on('click', this.onClick); + }, + unregisterHeader: function unregisterHeader() { + this.header = null; + }, + onClick: function onClick(e) { + if (e.detail) this.header.$el.blur(); + this.$emit('click', e); + this.isReadonly || this.isDisabled || this.toggle(); + }, + toggle: function toggle() { + var _this = this; + /* istanbul ignore else */ + + + if (this.content) this.content.isBooted = true; + this.$nextTick(function () { + return _this.$emit('change'); + }); + } + }, + render: function render(h) { + return h('div', { + staticClass: 'v-expansion-panel', + class: this.classes, + attrs: { + 'aria-expanded': String(this.isActive) + } + }, Object(_util_helpers__WEBPACK_IMPORTED_MODULE_2__["getSlot"])(this)); + } +})); + +/***/ }), + +/***/ "./src/components/VExpansionPanel/VExpansionPanelContent.ts": +/*!******************************************************************!*\ + !*** ./src/components/VExpansionPanel/VExpansionPanelContent.ts ***! + \******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _transitions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../transitions */ "./src/components/transitions/index.ts"); +/* harmony import */ var _mixins_bootable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/bootable */ "./src/mixins/bootable/index.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_registrable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/registrable */ "./src/mixins/registrable/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); + // Mixins + + + + // Utilities + + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_5__["default"])(_mixins_bootable__WEBPACK_IMPORTED_MODULE_1__["default"], _mixins_colorable__WEBPACK_IMPORTED_MODULE_2__["default"], Object(_mixins_registrable__WEBPACK_IMPORTED_MODULE_3__["inject"])('expansionPanel', 'v-expansion-panel-content', 'v-expansion-panel')); +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend().extend({ + name: 'v-expansion-panel-content', + computed: { + isActive: function isActive() { + return this.expansionPanel.isActive; + } + }, + created: function created() { + this.expansionPanel.registerContent(this); + }, + beforeDestroy: function beforeDestroy() { + this.expansionPanel.unregisterContent(); + }, + render: function render(h) { + var _this = this; + + return h(_transitions__WEBPACK_IMPORTED_MODULE_0__["VExpandTransition"], this.showLazyContent(function () { + return [h('div', _this.setBackgroundColor(_this.color, { + staticClass: 'v-expansion-panel-content', + directives: [{ + name: 'show', + value: _this.isActive + }] + }), [h('div', { + class: 'v-expansion-panel-content__wrap' + }, Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getSlot"])(_this))])]; + })); + } +})); + +/***/ }), + +/***/ "./src/components/VExpansionPanel/VExpansionPanelHeader.ts": +/*!*****************************************************************!*\ + !*** ./src/components/VExpansionPanel/VExpansionPanelHeader.ts ***! + \*****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _transitions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../transitions */ "./src/components/transitions/index.ts"); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VIcon */ "./src/components/VIcon/index.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_registrable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/registrable */ "./src/mixins/registrable/index.ts"); +/* harmony import */ var _directives_ripple__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../directives/ripple */ "./src/directives/ripple/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Components + + + + // Mixins + + + // Directives + + // Utilities + + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_6__["default"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_2__["default"], Object(_mixins_registrable__WEBPACK_IMPORTED_MODULE_3__["inject"])('expansionPanel', 'v-expansion-panel-header', 'v-expansion-panel')); +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend().extend({ + name: 'v-expansion-panel-header', + directives: { + ripple: _directives_ripple__WEBPACK_IMPORTED_MODULE_4__["default"] + }, + props: { + disableIconRotate: Boolean, + expandIcon: { + type: String, + default: '$expand' + }, + hideActions: Boolean, + ripple: { + type: [Boolean, Object], + default: false + } + }, + data: function data() { + return { + hasMousedown: false + }; + }, + computed: { + classes: function classes() { + return { + 'v-expansion-panel-header--active': this.isActive, + 'v-expansion-panel-header--mousedown': this.hasMousedown + }; + }, + isActive: function isActive() { + return this.expansionPanel.isActive; + }, + isDisabled: function isDisabled() { + return this.expansionPanel.isDisabled; + }, + isReadonly: function isReadonly() { + return this.expansionPanel.isReadonly; + } + }, + created: function created() { + this.expansionPanel.registerHeader(this); + }, + beforeDestroy: function beforeDestroy() { + this.expansionPanel.unregisterHeader(); + }, + methods: { + onClick: function onClick(e) { + this.$emit('click', e); + }, + genIcon: function genIcon() { + var icon = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["getSlot"])(this, 'actions') || [this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_1__["default"], this.expandIcon)]; + return this.$createElement(_transitions__WEBPACK_IMPORTED_MODULE_0__["VFadeTransition"], [this.$createElement('div', { + staticClass: 'v-expansion-panel-header__icon', + class: { + 'v-expansion-panel-header__icon--disable-rotate': this.disableIconRotate + }, + directives: [{ + name: 'show', + value: !this.isDisabled + }] + }, icon)]); + } + }, + render: function render(h) { + var _this = this; + + return h('button', this.setBackgroundColor(this.color, { + staticClass: 'v-expansion-panel-header', + class: this.classes, + attrs: { + tabindex: this.isDisabled ? -1 : null, + type: 'button' + }, + directives: [{ + name: 'ripple', + value: this.ripple + }], + on: __assign(__assign({}, this.$listeners), { + click: this.onClick, + mousedown: function mousedown() { + return _this.hasMousedown = true; + }, + mouseup: function mouseup() { + return _this.hasMousedown = false; + } + }) + }), [Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["getSlot"])(this, 'default', { + open: this.isActive + }, true), this.hideActions || this.genIcon()]); + } +})); + +/***/ }), + +/***/ "./src/components/VExpansionPanel/VExpansionPanels.ts": +/*!************************************************************!*\ + !*** ./src/components/VExpansionPanel/VExpansionPanels.ts ***! + \************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VExpansionPanel_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VExpansionPanel.sass */ "./src/components/VExpansionPanel/VExpansionPanel.sass"); +/* harmony import */ var _VExpansionPanel_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VExpansionPanel_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VItemGroup/VItemGroup */ "./src/components/VItemGroup/VItemGroup.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Components + + // Utilities + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (_VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_1__["BaseItemGroup"].extend({ + name: 'v-expansion-panels', + provide: function provide() { + return { + expansionPanels: this + }; + }, + props: { + accordion: Boolean, + disabled: Boolean, + flat: Boolean, + hover: Boolean, + focusable: Boolean, + inset: Boolean, + popout: Boolean, + readonly: Boolean, + tile: Boolean + }, + computed: { + classes: function classes() { + return __assign(__assign({}, _VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_1__["BaseItemGroup"].options.computed.classes.call(this)), { + 'v-expansion-panels': true, + 'v-expansion-panels--accordion': this.accordion, + 'v-expansion-panels--flat': this.flat, + 'v-expansion-panels--hover': this.hover, + 'v-expansion-panels--focusable': this.focusable, + 'v-expansion-panels--inset': this.inset, + 'v-expansion-panels--popout': this.popout, + 'v-expansion-panels--tile': this.tile + }); + } + }, + created: function created() { + /* istanbul ignore next */ + if (this.$attrs.hasOwnProperty('expand')) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_2__["breaking"])('expand', 'multiple', this); + } + /* istanbul ignore next */ + + + if (Array.isArray(this.value) && this.value.length > 0 && typeof this.value[0] === 'boolean') { + Object(_util_console__WEBPACK_IMPORTED_MODULE_2__["breaking"])(':value="[true, false, true]"', ':value="[0, 2]"', this); + } + }, + methods: { + updateItem: function updateItem(item, index) { + var value = this.getValue(item, index); + var nextValue = this.getValue(item, index + 1); + item.isActive = this.toggleMethod(value); + item.nextIsActive = this.toggleMethod(nextValue); + } + } +})); + +/***/ }), + +/***/ "./src/components/VExpansionPanel/index.ts": +/*!*************************************************!*\ + !*** ./src/components/VExpansionPanel/index.ts ***! + \*************************************************/ +/*! exports provided: VExpansionPanels, VExpansionPanel, VExpansionPanelHeader, VExpansionPanelContent, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VExpansionPanels__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VExpansionPanels */ "./src/components/VExpansionPanel/VExpansionPanels.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VExpansionPanels", function() { return _VExpansionPanels__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + +/* harmony import */ var _VExpansionPanel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VExpansionPanel */ "./src/components/VExpansionPanel/VExpansionPanel.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VExpansionPanel", function() { return _VExpansionPanel__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + +/* harmony import */ var _VExpansionPanelContent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./VExpansionPanelContent */ "./src/components/VExpansionPanel/VExpansionPanelContent.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VExpansionPanelContent", function() { return _VExpansionPanelContent__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + +/* harmony import */ var _VExpansionPanelHeader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./VExpansionPanelHeader */ "./src/components/VExpansionPanel/VExpansionPanelHeader.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VExpansionPanelHeader", function() { return _VExpansionPanelHeader__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + $_vuetify_subcomponents: { + VExpansionPanels: _VExpansionPanels__WEBPACK_IMPORTED_MODULE_0__["default"], + VExpansionPanel: _VExpansionPanel__WEBPACK_IMPORTED_MODULE_1__["default"], + VExpansionPanelHeader: _VExpansionPanelHeader__WEBPACK_IMPORTED_MODULE_3__["default"], + VExpansionPanelContent: _VExpansionPanelContent__WEBPACK_IMPORTED_MODULE_2__["default"] + } +}); + +/***/ }), + +/***/ "./src/components/VFileInput/VFileInput.sass": +/*!***************************************************!*\ + !*** ./src/components/VFileInput/VFileInput.sass ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VFileInput/VFileInput.ts": +/*!*************************************************!*\ + !*** ./src/components/VFileInput/VFileInput.ts ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VFileInput_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VFileInput.sass */ "./src/components/VFileInput/VFileInput.sass"); +/* harmony import */ var _VFileInput_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VFileInput_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VTextField__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VTextField */ "./src/components/VTextField/index.ts"); +/* harmony import */ var _VChip__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../VChip */ "./src/components/VChip/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +/* harmony import */ var _util_mergeData__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/mergeData */ "./src/util/mergeData.ts"); +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + +var __spread = undefined && undefined.__spread || function () { + for (var ar = [], i = 0; i < arguments.length; i++) { + ar = ar.concat(__read(arguments[i])); + } + + return ar; +}; // Styles + + + // Extensions + + // Components + + // Utilities + + + + +/* harmony default export */ __webpack_exports__["default"] = (_VTextField__WEBPACK_IMPORTED_MODULE_1__["default"].extend({ + name: 'v-file-input', + model: { + prop: 'value', + event: 'change' + }, + props: { + chips: Boolean, + clearable: { + type: Boolean, + default: true + }, + counterSizeString: { + type: String, + default: '$vuetify.fileInput.counterSize' + }, + counterString: { + type: String, + default: '$vuetify.fileInput.counter' + }, + hideInput: Boolean, + placeholder: String, + prependIcon: { + type: String, + default: '$file' + }, + readonly: { + type: Boolean, + default: false + }, + showSize: { + type: [Boolean, Number], + default: false, + validator: function validator(v) { + return typeof v === 'boolean' || [1000, 1024].includes(v); + } + }, + smallChips: Boolean, + truncateLength: { + type: [Number, String], + default: 22 + }, + type: { + type: String, + default: 'file' + }, + value: { + default: undefined, + validator: function validator(val) { + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["wrapInArray"])(val).every(function (v) { + return v != null && _typeof(v) === 'object'; + }); + } + } + }, + computed: { + classes: function classes() { + return __assign(__assign({}, _VTextField__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.classes.call(this)), { + 'v-file-input': true + }); + }, + computedCounterValue: function computedCounterValue() { + var fileCount = this.isMultiple && this.lazyValue ? this.lazyValue.length : this.lazyValue instanceof File ? 1 : 0; + if (!this.showSize) return this.$vuetify.lang.t(this.counterString, fileCount); + var bytes = this.internalArrayValue.reduce(function (bytes, _a) { + var _b = _a.size, + size = _b === void 0 ? 0 : _b; + return bytes + size; + }, 0); + return this.$vuetify.lang.t(this.counterSizeString, fileCount, Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["humanReadableFileSize"])(bytes, this.base === 1024)); + }, + internalArrayValue: function internalArrayValue() { + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["wrapInArray"])(this.internalValue); + }, + internalValue: { + get: function get() { + return this.lazyValue; + }, + set: function set(val) { + this.lazyValue = val; + this.$emit('change', this.lazyValue); + } + }, + isDirty: function isDirty() { + return this.internalArrayValue.length > 0; + }, + isLabelActive: function isLabelActive() { + return this.isDirty; + }, + isMultiple: function isMultiple() { + return this.$attrs.hasOwnProperty('multiple'); + }, + text: function text() { + var _this = this; + + if (!this.isDirty) return [this.placeholder]; + return this.internalArrayValue.map(function (file) { + var _a = file.name, + name = _a === void 0 ? '' : _a, + _b = file.size, + size = _b === void 0 ? 0 : _b; + + var truncatedText = _this.truncateText(name); + + return !_this.showSize ? truncatedText : truncatedText + " (" + Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["humanReadableFileSize"])(size, _this.base === 1024) + ")"; + }); + }, + base: function base() { + return typeof this.showSize !== 'boolean' ? this.showSize : undefined; + }, + hasChips: function hasChips() { + return this.chips || this.smallChips; + } + }, + watch: { + readonly: { + handler: function handler(v) { + if (v === true) Object(_util_console__WEBPACK_IMPORTED_MODULE_4__["consoleError"])('readonly is not supported on <v-file-input>', this); + }, + immediate: true + }, + value: function value(v) { + var value = this.isMultiple ? v : v ? [v] : []; + + if (!Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["deepEqual"])(value, this.$refs.input.files)) { + // When the input value is changed programatically, clear the + // internal input's value so that the `onInput` handler + // can be triggered again if the user re-selects the exact + // same file(s). Ideally, `input.files` should be + // manipulated directly but that property is readonly. + this.$refs.input.value = ''; + } + } + }, + methods: { + clearableCallback: function clearableCallback() { + this.internalValue = this.isMultiple ? [] : undefined; + this.$refs.input.value = ''; + }, + genChips: function genChips() { + var _this = this; + + if (!this.isDirty) return []; + return this.text.map(function (text, index) { + return _this.$createElement(_VChip__WEBPACK_IMPORTED_MODULE_2__["VChip"], { + props: { + small: _this.smallChips + }, + on: { + 'click:close': function clickClose() { + var internalValue = _this.internalValue; + internalValue.splice(index, 1); + _this.internalValue = internalValue; // Trigger the watcher + } + } + }, [text]); + }); + }, + genControl: function genControl() { + var render = _VTextField__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.genControl.call(this); + + if (this.hideInput) { + render.data.style = Object(_util_mergeData__WEBPACK_IMPORTED_MODULE_5__["mergeStyles"])(render.data.style, { + display: 'none' + }); + } + + return render; + }, + genInput: function genInput() { + var input = _VTextField__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.genInput.call(this); // We should not be setting value + // programmatically on the input + // when it is using type="file" + + delete input.data.domProps.value; // This solves an issue in Safari where + // nothing happens when adding a file + // do to the input event not firing + // https://github.com/vuetifyjs/vuetify/issues/7941 + + delete input.data.on.input; + input.data.on.change = this.onInput; + return [this.genSelections(), input]; + }, + genPrependSlot: function genPrependSlot() { + var _this = this; + + if (!this.prependIcon) return null; + var icon = this.genIcon('prepend', function () { + _this.$refs.input.click(); + }); + return this.genSlot('prepend', 'outer', [icon]); + }, + genSelectionText: function genSelectionText() { + var length = this.text.length; + if (length < 2) return this.text; + if (this.showSize && !this.counter) return [this.computedCounterValue]; + return [this.$vuetify.lang.t(this.counterString, length)]; + }, + genSelections: function genSelections() { + var _this = this; + + var children = []; + + if (this.isDirty && this.$scopedSlots.selection) { + this.internalArrayValue.forEach(function (file, index) { + if (!_this.$scopedSlots.selection) return; + children.push(_this.$scopedSlots.selection({ + text: _this.text[index], + file: file, + index: index + })); + }); + } else { + children.push(this.hasChips && this.isDirty ? this.genChips() : this.genSelectionText()); + } + + return this.$createElement('div', { + staticClass: 'v-file-input__text', + class: { + 'v-file-input__text--placeholder': this.placeholder && !this.isDirty, + 'v-file-input__text--chips': this.hasChips && !this.$scopedSlots.selection + } + }, children); + }, + genTextFieldSlot: function genTextFieldSlot() { + var _this = this; + + var node = _VTextField__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.genTextFieldSlot.call(this); + node.data.on = __assign(__assign({}, node.data.on || {}), { + click: function click() { + return _this.$refs.input.click(); + } + }); + return node; + }, + onInput: function onInput(e) { + var files = __spread(e.target.files || []); + + this.internalValue = this.isMultiple ? files : files[0]; // Set initialValue here otherwise isFocused + // watcher in VTextField will emit a change + // event whenever the component is blurred + + this.initialValue = this.internalValue; + }, + onKeyDown: function onKeyDown(e) { + this.$emit('keydown', e); + }, + truncateText: function truncateText(str) { + if (str.length < Number(this.truncateLength)) return str; + var charsKeepOneSide = Math.floor((Number(this.truncateLength) - 1) / 2); + return str.slice(0, charsKeepOneSide) + "\u2026" + str.slice(str.length - charsKeepOneSide); + } + } +})); + +/***/ }), + +/***/ "./src/components/VFileInput/index.ts": +/*!********************************************!*\ + !*** ./src/components/VFileInput/index.ts ***! + \********************************************/ +/*! exports provided: VFileInput, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VFileInput__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VFileInput */ "./src/components/VFileInput/VFileInput.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VFileInput", function() { return _VFileInput__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VFileInput__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VFooter/VFooter.sass": +/*!*********************************************!*\ + !*** ./src/components/VFooter/VFooter.sass ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VFooter/VFooter.ts": +/*!*******************************************!*\ + !*** ./src/components/VFooter/VFooter.ts ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VFooter_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VFooter.sass */ "./src/components/VFooter/VFooter.sass"); +/* harmony import */ var _VFooter_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VFooter_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VSheet_VSheet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VSheet/VSheet */ "./src/components/VSheet/VSheet.ts"); +/* harmony import */ var _mixins_applicationable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/applicationable */ "./src/mixins/applicationable/index.ts"); +/* harmony import */ var _mixins_ssr_bootable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/ssr-bootable */ "./src/mixins/ssr-bootable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Components + + // Mixins + + + // Utilities + + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_4__["default"])(_VSheet_VSheet__WEBPACK_IMPORTED_MODULE_1__["default"], Object(_mixins_applicationable__WEBPACK_IMPORTED_MODULE_2__["default"])('footer', ['height', 'inset']), _mixins_ssr_bootable__WEBPACK_IMPORTED_MODULE_3__["default"]).extend({ + name: 'v-footer', + props: { + height: { + default: 'auto', + type: [Number, String] + }, + inset: Boolean, + padless: Boolean, + tag: { + type: String, + default: 'footer' + } + }, + computed: { + applicationProperty: function applicationProperty() { + return this.inset ? 'insetFooter' : 'footer'; + }, + classes: function classes() { + return __assign(__assign({}, _VSheet_VSheet__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.classes.call(this)), { + 'v-footer--absolute': this.absolute, + 'v-footer--fixed': !this.absolute && (this.app || this.fixed), + 'v-footer--padless': this.padless, + 'v-footer--inset': this.inset + }); + }, + computedBottom: function computedBottom() { + if (!this.isPositioned) return undefined; + return this.app ? this.$vuetify.application.bottom : 0; + }, + computedLeft: function computedLeft() { + if (!this.isPositioned) return undefined; + return this.app && this.inset ? this.$vuetify.application.left : 0; + }, + computedRight: function computedRight() { + if (!this.isPositioned) return undefined; + return this.app && this.inset ? this.$vuetify.application.right : 0; + }, + isPositioned: function isPositioned() { + return Boolean(this.absolute || this.fixed || this.app); + }, + styles: function styles() { + var height = parseInt(this.height); + return __assign(__assign({}, _VSheet_VSheet__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.styles.call(this)), { + height: isNaN(height) ? height : Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["convertToUnit"])(height), + left: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["convertToUnit"])(this.computedLeft), + right: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["convertToUnit"])(this.computedRight), + bottom: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["convertToUnit"])(this.computedBottom) + }); + } + }, + methods: { + updateApplication: function updateApplication() { + var height = parseInt(this.height); + return isNaN(height) ? this.$el ? this.$el.clientHeight : 0 : height; + } + }, + render: function render(h) { + var data = this.setBackgroundColor(this.color, { + staticClass: 'v-footer', + class: this.classes, + style: this.styles + }); + return h(this.tag, data, this.$slots.default); + } +})); + +/***/ }), + +/***/ "./src/components/VFooter/index.ts": +/*!*****************************************!*\ + !*** ./src/components/VFooter/index.ts ***! + \*****************************************/ +/*! exports provided: VFooter, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VFooter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VFooter */ "./src/components/VFooter/VFooter.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VFooter", function() { return _VFooter__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VFooter__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VForm/VForm.ts": +/*!***************************************!*\ + !*** ./src/components/VForm/VForm.ts ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _mixins_binds_attrs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/binds-attrs */ "./src/mixins/binds-attrs/index.ts"); +/* harmony import */ var _mixins_registrable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/registrable */ "./src/mixins/registrable/index.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Mixins + + + + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_0__["default"])(_mixins_binds_attrs__WEBPACK_IMPORTED_MODULE_1__["default"], Object(_mixins_registrable__WEBPACK_IMPORTED_MODULE_2__["provide"])('form') +/* @vue/component */ +).extend({ + name: 'v-form', + provide: function provide() { + return { + form: this + }; + }, + inheritAttrs: false, + props: { + disabled: Boolean, + lazyValidation: Boolean, + readonly: Boolean, + value: Boolean + }, + data: function data() { + return { + inputs: [], + watchers: [], + errorBag: {} + }; + }, + watch: { + errorBag: { + handler: function handler(val) { + var errors = Object.values(val).includes(true); + this.$emit('input', !errors); + }, + deep: true, + immediate: true + } + }, + methods: { + watchInput: function watchInput(input) { + var _this = this; + + var watcher = function watcher(input) { + return input.$watch('hasError', function (val) { + _this.$set(_this.errorBag, input._uid, val); + }, { + immediate: true + }); + }; + + var watchers = { + _uid: input._uid, + valid: function valid() {}, + shouldValidate: function shouldValidate() {} + }; + + if (this.lazyValidation) { + // Only start watching inputs if we need to + watchers.shouldValidate = input.$watch('shouldValidate', function (val) { + if (!val) return; // Only watch if we're not already doing it + + if (_this.errorBag.hasOwnProperty(input._uid)) return; + watchers.valid = watcher(input); + }); + } else { + watchers.valid = watcher(input); + } + + return watchers; + }, + + /** @public */ + validate: function validate() { + return this.inputs.filter(function (input) { + return !input.validate(true); + }).length === 0; + }, + + /** @public */ + reset: function reset() { + this.inputs.forEach(function (input) { + return input.reset(); + }); + this.resetErrorBag(); + }, + resetErrorBag: function resetErrorBag() { + var _this = this; + + if (this.lazyValidation) { + // Account for timeout in validatable + setTimeout(function () { + _this.errorBag = {}; + }, 0); + } + }, + + /** @public */ + resetValidation: function resetValidation() { + this.inputs.forEach(function (input) { + return input.resetValidation(); + }); + this.resetErrorBag(); + }, + register: function register(input) { + this.inputs.push(input); + this.watchers.push(this.watchInput(input)); + }, + unregister: function unregister(input) { + var found = this.inputs.find(function (i) { + return i._uid === input._uid; + }); + if (!found) return; + var unwatch = this.watchers.find(function (i) { + return i._uid === found._uid; + }); + + if (unwatch) { + unwatch.valid(); + unwatch.shouldValidate(); + } + + this.watchers = this.watchers.filter(function (i) { + return i._uid !== found._uid; + }); + this.inputs = this.inputs.filter(function (i) { + return i._uid !== found._uid; + }); + this.$delete(this.errorBag, found._uid); + } + }, + render: function render(h) { + var _this = this; + + return h('form', { + staticClass: 'v-form', + attrs: __assign({ + novalidate: true + }, this.attrs$), + on: { + submit: function submit(e) { + return _this.$emit('submit', e); + } + } + }, this.$slots.default); + } +})); + +/***/ }), + +/***/ "./src/components/VForm/index.ts": +/*!***************************************!*\ + !*** ./src/components/VForm/index.ts ***! + \***************************************/ +/*! exports provided: VForm, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VForm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VForm */ "./src/components/VForm/VForm.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VForm", function() { return _VForm__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VForm__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VGrid/VCol.ts": +/*!**************************************!*\ + !*** ./src/components/VGrid/VCol.ts ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VGrid_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VGrid.sass */ "./src/components/VGrid/VGrid.sass"); +/* harmony import */ var _VGrid_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VGrid_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _util_mergeData__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/mergeData */ "./src/util/mergeData.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + + + + + // no xs + +var breakpoints = ['sm', 'md', 'lg', 'xl']; + +var breakpointProps = function () { + return breakpoints.reduce(function (props, val) { + props[val] = { + type: [Boolean, String, Number], + default: false + }; + return props; + }, {}); +}(); + +var offsetProps = function () { + return breakpoints.reduce(function (props, val) { + props['offset' + Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["upperFirst"])(val)] = { + type: [String, Number], + default: null + }; + return props; + }, {}); +}(); + +var orderProps = function () { + return breakpoints.reduce(function (props, val) { + props['order' + Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["upperFirst"])(val)] = { + type: [String, Number], + default: null + }; + return props; + }, {}); +}(); + +var propMap = { + col: Object.keys(breakpointProps), + offset: Object.keys(offsetProps), + order: Object.keys(orderProps) +}; + +function breakpointClass(type, prop, val) { + var className = type; + + if (val == null || val === false) { + return undefined; + } + + if (prop) { + var breakpoint = prop.replace(type, ''); + className += "-" + breakpoint; + } // Handling the boolean style prop when accepting [Boolean, String, Number] + // means Vue will not convert <v-col sm></v-col> to sm: true for us. + // Since the default is false, an empty string indicates the prop's presence. + + + if (type === 'col' && (val === '' || val === true)) { + // .col-md + return className.toLowerCase(); + } // .order-md-6 + + + className += "-" + val; + return className.toLowerCase(); +} + +var cache = new Map(); +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_1___default.a.extend({ + name: 'v-col', + functional: true, + props: __assign(__assign(__assign(__assign(__assign(__assign({ + cols: { + type: [Boolean, String, Number], + default: false + } + }, breakpointProps), { + offset: { + type: [String, Number], + default: null + } + }), offsetProps), { + order: { + type: [String, Number], + default: null + } + }), orderProps), { + alignSelf: { + type: String, + default: null, + validator: function validator(str) { + return ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str); + } + }, + tag: { + type: String, + default: 'div' + } + }), + render: function render(h, _a) { + var _b; + + var props = _a.props, + data = _a.data, + children = _a.children, + parent = _a.parent; // Super-fast memoization based on props, 5x faster than JSON.stringify + + var cacheKey = ''; + + for (var prop in props) { + cacheKey += String(props[prop]); + } + + var classList = cache.get(cacheKey); + + if (!classList) { + classList = []; // Loop through `col`, `offset`, `order` breakpoint props + + var type_1; + + for (type_1 in propMap) { + propMap[type_1].forEach(function (prop) { + var value = props[prop]; + var className = breakpointClass(type_1, prop, value); + if (className) classList.push(className); + }); + } + + var hasColClasses = classList.some(function (className) { + return className.startsWith('col-'); + }); + classList.push((_b = { + // Default to .col if no other col-{bp}-* classes generated nor `cols` specified. + col: !hasColClasses || !props.cols + }, _b["col-" + props.cols] = props.cols, _b["offset-" + props.offset] = props.offset, _b["order-" + props.order] = props.order, _b["align-self-" + props.alignSelf] = props.alignSelf, _b)); + cache.set(cacheKey, classList); + } + + return h(props.tag, Object(_util_mergeData__WEBPACK_IMPORTED_MODULE_2__["default"])(data, { + class: classList + }), children); + } +})); + +/***/ }), + +/***/ "./src/components/VGrid/VContainer.ts": +/*!********************************************!*\ + !*** ./src/components/VGrid/VContainer.ts ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _grid_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_grid.sass */ "./src/components/VGrid/_grid.sass"); +/* harmony import */ var _grid_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_grid_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VGrid_sass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VGrid.sass */ "./src/components/VGrid/VGrid.sass"); +/* harmony import */ var _VGrid_sass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_VGrid_sass__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _grid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./grid */ "./src/components/VGrid/grid.ts"); +/* harmony import */ var _util_mergeData__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/mergeData */ "./src/util/mergeData.ts"); + + + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_grid__WEBPACK_IMPORTED_MODULE_2__["default"])('container').extend({ + name: 'v-container', + functional: true, + props: { + id: String, + tag: { + type: String, + default: 'div' + }, + fluid: { + type: Boolean, + default: false + } + }, + render: function render(h, _a) { + var props = _a.props, + data = _a.data, + children = _a.children; + var classes; + var attrs = data.attrs; + + if (attrs) { + // reset attrs to extract utility clases like pa-3 + data.attrs = {}; + classes = Object.keys(attrs).filter(function (key) { + // TODO: Remove once resolved + // https://github.com/vuejs/vue/issues/7841 + if (key === 'slot') return false; + var value = attrs[key]; // add back data attributes like data-test="foo" but do not + // add them as classes + + if (key.startsWith('data-')) { + data.attrs[key] = value; + return false; + } + + return value || typeof value === 'string'; + }); + } + + if (props.id) { + data.domProps = data.domProps || {}; + data.domProps.id = props.id; + } + + return h(props.tag, Object(_util_mergeData__WEBPACK_IMPORTED_MODULE_3__["default"])(data, { + staticClass: 'container', + class: Array({ + 'container--fluid': props.fluid + }).concat(classes || []) + }), children); + } +})); + +/***/ }), + +/***/ "./src/components/VGrid/VFlex.ts": +/*!***************************************!*\ + !*** ./src/components/VGrid/VFlex.ts ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _grid_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_grid.sass */ "./src/components/VGrid/_grid.sass"); +/* harmony import */ var _grid_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_grid_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _grid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./grid */ "./src/components/VGrid/grid.ts"); + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_grid__WEBPACK_IMPORTED_MODULE_1__["default"])('flex')); + +/***/ }), + +/***/ "./src/components/VGrid/VGrid.sass": +/*!*****************************************!*\ + !*** ./src/components/VGrid/VGrid.sass ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VGrid/VLayout.ts": +/*!*****************************************!*\ + !*** ./src/components/VGrid/VLayout.ts ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _grid_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_grid.sass */ "./src/components/VGrid/_grid.sass"); +/* harmony import */ var _grid_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_grid_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _grid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./grid */ "./src/components/VGrid/grid.ts"); + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_grid__WEBPACK_IMPORTED_MODULE_1__["default"])('layout')); + +/***/ }), + +/***/ "./src/components/VGrid/VRow.ts": +/*!**************************************!*\ + !*** ./src/components/VGrid/VRow.ts ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VGrid_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VGrid.sass */ "./src/components/VGrid/VGrid.sass"); +/* harmony import */ var _VGrid_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VGrid_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _util_mergeData__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/mergeData */ "./src/util/mergeData.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + +var __spread = undefined && undefined.__spread || function () { + for (var ar = [], i = 0; i < arguments.length; i++) { + ar = ar.concat(__read(arguments[i])); + } + + return ar; +}; + + + + + // no xs + +var breakpoints = ['sm', 'md', 'lg', 'xl']; +var ALIGNMENT = ['start', 'end', 'center']; + +function makeProps(prefix, def) { + return breakpoints.reduce(function (props, val) { + props[prefix + Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["upperFirst"])(val)] = def(); + return props; + }, {}); +} + +var alignValidator = function alignValidator(str) { + return __spread(ALIGNMENT, ['baseline', 'stretch']).includes(str); +}; + +var alignProps = makeProps('align', function () { + return { + type: String, + default: null, + validator: alignValidator + }; +}); + +var justifyValidator = function justifyValidator(str) { + return __spread(ALIGNMENT, ['space-between', 'space-around']).includes(str); +}; + +var justifyProps = makeProps('justify', function () { + return { + type: String, + default: null, + validator: justifyValidator + }; +}); + +var alignContentValidator = function alignContentValidator(str) { + return __spread(ALIGNMENT, ['space-between', 'space-around', 'stretch']).includes(str); +}; + +var alignContentProps = makeProps('alignContent', function () { + return { + type: String, + default: null, + validator: alignContentValidator + }; +}); +var propMap = { + align: Object.keys(alignProps), + justify: Object.keys(justifyProps), + alignContent: Object.keys(alignContentProps) +}; +var classMap = { + align: 'align', + justify: 'justify', + alignContent: 'align-content' +}; + +function breakpointClass(type, prop, val) { + var className = classMap[type]; + + if (val == null) { + return undefined; + } + + if (prop) { + // alignSm -> Sm + var breakpoint = prop.replace(type, ''); + className += "-" + breakpoint; + } // .align-items-sm-center + + + className += "-" + val; + return className.toLowerCase(); +} + +var cache = new Map(); +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_1___default.a.extend({ + name: 'v-row', + functional: true, + props: __assign(__assign(__assign(__assign(__assign({ + tag: { + type: String, + default: 'div' + }, + dense: Boolean, + noGutters: Boolean, + align: { + type: String, + default: null, + validator: alignValidator + } + }, alignProps), { + justify: { + type: String, + default: null, + validator: justifyValidator + } + }), justifyProps), { + alignContent: { + type: String, + default: null, + validator: alignContentValidator + } + }), alignContentProps), + render: function render(h, _a) { + var _b; + + var props = _a.props, + data = _a.data, + children = _a.children; // Super-fast memoization based on props, 5x faster than JSON.stringify + + var cacheKey = ''; + + for (var prop in props) { + cacheKey += String(props[prop]); + } + + var classList = cache.get(cacheKey); + + if (!classList) { + classList = []; // Loop through `align`, `justify`, `alignContent` breakpoint props + + var type_1; + + for (type_1 in propMap) { + propMap[type_1].forEach(function (prop) { + var value = props[prop]; + var className = breakpointClass(type_1, prop, value); + if (className) classList.push(className); + }); + } + + classList.push((_b = { + 'no-gutters': props.noGutters, + 'row--dense': props.dense + }, _b["align-" + props.align] = props.align, _b["justify-" + props.justify] = props.justify, _b["align-content-" + props.alignContent] = props.alignContent, _b)); + cache.set(cacheKey, classList); + } + + return h(props.tag, Object(_util_mergeData__WEBPACK_IMPORTED_MODULE_2__["default"])(data, { + staticClass: 'row', + class: classList + }), children); + } +})); + +/***/ }), + +/***/ "./src/components/VGrid/VSpacer.ts": +/*!*****************************************!*\ + !*** ./src/components/VGrid/VSpacer.ts ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _grid_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_grid.sass */ "./src/components/VGrid/_grid.sass"); +/* harmony import */ var _grid_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_grid_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["createSimpleFunctional"])('spacer', 'div', 'v-spacer')); + +/***/ }), + +/***/ "./src/components/VGrid/_grid.sass": +/*!*****************************************!*\ + !*** ./src/components/VGrid/_grid.sass ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VGrid/grid.ts": +/*!**************************************!*\ + !*** ./src/components/VGrid/grid.ts ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return VGrid; }); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); +// Types + +function VGrid(name) { + /* @vue/component */ + return vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: "v-" + name, + functional: true, + props: { + id: String, + tag: { + type: String, + default: 'div' + } + }, + render: function render(h, _a) { + var props = _a.props, + data = _a.data, + children = _a.children; + data.staticClass = (name + " " + (data.staticClass || '')).trim(); + var attrs = data.attrs; + + if (attrs) { + // reset attrs to extract utility clases like pa-3 + data.attrs = {}; + var classes = Object.keys(attrs).filter(function (key) { + // TODO: Remove once resolved + // https://github.com/vuejs/vue/issues/7841 + if (key === 'slot') return false; + var value = attrs[key]; // add back data attributes like data-test="foo" but do not + // add them as classes + + if (key.startsWith('data-')) { + data.attrs[key] = value; + return false; + } + + return value || typeof value === 'string'; + }); + if (classes.length) data.staticClass += " " + classes.join(' '); + } + + if (props.id) { + data.domProps = data.domProps || {}; + data.domProps.id = props.id; + } + + return h(props.tag, data, children); + } + }); +} + +/***/ }), + +/***/ "./src/components/VGrid/index.ts": +/*!***************************************!*\ + !*** ./src/components/VGrid/index.ts ***! + \***************************************/ +/*! exports provided: VContainer, VCol, VRow, VSpacer, VLayout, VFlex, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VContainer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VContainer */ "./src/components/VGrid/VContainer.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VContainer", function() { return _VContainer__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + +/* harmony import */ var _VCol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VCol */ "./src/components/VGrid/VCol.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCol", function() { return _VCol__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + +/* harmony import */ var _VRow__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./VRow */ "./src/components/VGrid/VRow.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VRow", function() { return _VRow__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + +/* harmony import */ var _VSpacer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./VSpacer */ "./src/components/VGrid/VSpacer.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSpacer", function() { return _VSpacer__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + +/* harmony import */ var _VLayout__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./VLayout */ "./src/components/VGrid/VLayout.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VLayout", function() { return _VLayout__WEBPACK_IMPORTED_MODULE_4__["default"]; }); + +/* harmony import */ var _VFlex__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./VFlex */ "./src/components/VGrid/VFlex.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VFlex", function() { return _VFlex__WEBPACK_IMPORTED_MODULE_5__["default"]; }); + + + + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + $_vuetify_subcomponents: { + VContainer: _VContainer__WEBPACK_IMPORTED_MODULE_0__["default"], + VCol: _VCol__WEBPACK_IMPORTED_MODULE_1__["default"], + VRow: _VRow__WEBPACK_IMPORTED_MODULE_2__["default"], + VSpacer: _VSpacer__WEBPACK_IMPORTED_MODULE_3__["default"], + VLayout: _VLayout__WEBPACK_IMPORTED_MODULE_4__["default"], + VFlex: _VFlex__WEBPACK_IMPORTED_MODULE_5__["default"] + } +}); + +/***/ }), + +/***/ "./src/components/VHover/VHover.ts": +/*!*****************************************!*\ + !*** ./src/components/VHover/VHover.ts ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _mixins_delayable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../mixins/delayable */ "./src/mixins/delayable/index.ts"); +/* harmony import */ var _mixins_toggleable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/toggleable */ "./src/mixins/toggleable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +// Mixins + + // Utilities + + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_2__["default"])(_mixins_delayable__WEBPACK_IMPORTED_MODULE_0__["default"], _mixins_toggleable__WEBPACK_IMPORTED_MODULE_1__["default"] +/* @vue/component */ +).extend({ + name: 'v-hover', + props: { + disabled: { + type: Boolean, + default: false + }, + value: { + type: Boolean, + default: undefined + } + }, + methods: { + onMouseEnter: function onMouseEnter() { + this.runDelay('open'); + }, + onMouseLeave: function onMouseLeave() { + this.runDelay('close'); + } + }, + render: function render() { + if (!this.$scopedSlots.default && this.value === undefined) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_3__["consoleWarn"])('v-hover is missing a default scopedSlot or bound value', this); + return null; + } + + var element; + /* istanbul ignore else */ + + if (this.$scopedSlots.default) { + element = this.$scopedSlots.default({ + hover: this.isActive + }); + } + + if (Array.isArray(element) && element.length === 1) { + element = element[0]; + } + + if (!element || Array.isArray(element) || !element.tag) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_3__["consoleWarn"])('v-hover should only contain a single element', this); + return element; + } + + if (!this.disabled) { + element.data = element.data || {}; + + this._g(element.data, { + mouseenter: this.onMouseEnter, + mouseleave: this.onMouseLeave + }); + } + + return element; + } +})); + +/***/ }), + +/***/ "./src/components/VHover/index.ts": +/*!****************************************!*\ + !*** ./src/components/VHover/index.ts ***! + \****************************************/ +/*! exports provided: VHover, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VHover__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VHover */ "./src/components/VHover/VHover.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VHover", function() { return _VHover__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VHover__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VIcon/VIcon.sass": +/*!*****************************************!*\ + !*** ./src/components/VIcon/VIcon.sass ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VIcon/VIcon.ts": +/*!***************************************!*\ + !*** ./src/components/VIcon/VIcon.ts ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VIcon_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VIcon.sass */ "./src/components/VIcon/VIcon.sass"); +/* harmony import */ var _VIcon_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VIcon_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_binds_attrs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/binds-attrs */ "./src/mixins/binds-attrs/index.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_sizeable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/sizeable */ "./src/mixins/sizeable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + + // Mixins + + + + + // Util + + // Types + + + +var SIZE_MAP; + +(function (SIZE_MAP) { + SIZE_MAP["xSmall"] = "12px"; + SIZE_MAP["small"] = "16px"; + SIZE_MAP["default"] = "24px"; + SIZE_MAP["medium"] = "28px"; + SIZE_MAP["large"] = "36px"; + SIZE_MAP["xLarge"] = "40px"; +})(SIZE_MAP || (SIZE_MAP = {})); + +function isFontAwesome5(iconType) { + return ['fas', 'far', 'fal', 'fab', 'fad'].some(function (val) { + return iconType.includes(val); + }); +} + +function isSvgPath(icon) { + return /^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\dz]$/i.test(icon) && icon.length > 4; +} + +var VIcon = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_7__["default"])(_mixins_binds_attrs__WEBPACK_IMPORTED_MODULE_1__["default"], _mixins_colorable__WEBPACK_IMPORTED_MODULE_2__["default"], _mixins_sizeable__WEBPACK_IMPORTED_MODULE_3__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_4__["default"] +/* @vue/component */ +).extend({ + name: 'v-icon', + props: { + dense: Boolean, + disabled: Boolean, + left: Boolean, + right: Boolean, + size: [Number, String], + tag: { + type: String, + required: false, + default: 'i' + } + }, + computed: { + medium: function medium() { + return false; + }, + hasClickListener: function hasClickListener() { + return Boolean(this.listeners$.click || this.listeners$['!click']); + } + }, + methods: { + getIcon: function getIcon() { + var iconName = ''; + if (this.$slots.default) iconName = this.$slots.default[0].text.trim(); + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["remapInternalIcon"])(this, iconName); + }, + getSize: function getSize() { + var sizes = { + xSmall: this.xSmall, + small: this.small, + medium: this.medium, + large: this.large, + xLarge: this.xLarge + }; + var explicitSize = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["keys"])(sizes).find(function (key) { + return sizes[key]; + }); + return explicitSize && SIZE_MAP[explicitSize] || Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["convertToUnit"])(this.size); + }, + // Component data for both font icon and SVG wrapper span + getDefaultData: function getDefaultData() { + return { + staticClass: 'v-icon notranslate', + class: { + 'v-icon--disabled': this.disabled, + 'v-icon--left': this.left, + 'v-icon--link': this.hasClickListener, + 'v-icon--right': this.right, + 'v-icon--dense': this.dense + }, + attrs: __assign({ + 'aria-hidden': !this.hasClickListener, + disabled: this.hasClickListener && this.disabled, + type: this.hasClickListener ? 'button' : undefined + }, this.attrs$), + on: this.listeners$ + }; + }, + getSvgWrapperData: function getSvgWrapperData() { + var fontSize = this.getSize(); + + var wrapperData = __assign(__assign({}, this.getDefaultData()), { + style: fontSize ? { + fontSize: fontSize, + height: fontSize, + width: fontSize + } : undefined + }); + + this.applyColors(wrapperData); + return wrapperData; + }, + applyColors: function applyColors(data) { + data.class = __assign(__assign({}, data.class), this.themeClasses); + this.setTextColor(this.color, data); + }, + renderFontIcon: function renderFontIcon(icon, h) { + var newChildren = []; + var data = this.getDefaultData(); + var iconType = 'material-icons'; // Material Icon delimiter is _ + // https://material.io/icons/ + + var delimiterIndex = icon.indexOf('-'); + var isMaterialIcon = delimiterIndex <= -1; + + if (isMaterialIcon) { + // Material icon uses ligatures. + newChildren.push(icon); + } else { + iconType = icon.slice(0, delimiterIndex); + if (isFontAwesome5(iconType)) iconType = ''; + } + + data.class[iconType] = true; + data.class[icon] = !isMaterialIcon; + var fontSize = this.getSize(); + if (fontSize) data.style = { + fontSize: fontSize + }; + this.applyColors(data); + return h(this.hasClickListener ? 'button' : this.tag, data, newChildren); + }, + renderSvgIcon: function renderSvgIcon(icon, h) { + var svgData = { + class: 'v-icon__svg', + attrs: { + xmlns: 'http://www.w3.org/2000/svg', + viewBox: '0 0 24 24', + role: 'img', + 'aria-hidden': true + } + }; + var size = this.getSize(); + + if (size) { + svgData.style = { + fontSize: size, + height: size, + width: size + }; + } + + return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [h('svg', svgData, [h('path', { + attrs: { + d: icon + } + })])]); + }, + renderSvgIconComponent: function renderSvgIconComponent(icon, h) { + var data = { + class: { + 'v-icon__component': true + } + }; + var size = this.getSize(); + + if (size) { + data.style = { + fontSize: size, + height: size, + width: size + }; + } + + this.applyColors(data); + var component = icon.component; + data.props = icon.props; + data.nativeOn = data.on; + return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [h(component, data)]); + } + }, + render: function render(h) { + var icon = this.getIcon(); + + if (typeof icon === 'string') { + if (isSvgPath(icon)) { + return this.renderSvgIcon(icon, h); + } + + return this.renderFontIcon(icon, h); + } + + return this.renderSvgIconComponent(icon, h); + } +}); +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_6___default.a.extend({ + name: 'v-icon', + $_wrapperFor: VIcon, + functional: true, + render: function render(h, _a) { + var data = _a.data, + children = _a.children; + var iconName = ''; // Support usage of v-text and v-html + + if (data.domProps) { + iconName = data.domProps.textContent || data.domProps.innerHTML || iconName; // Remove nodes so it doesn't + // overwrite our changes + + delete data.domProps.textContent; + delete data.domProps.innerHTML; + } + + return h(VIcon, data, iconName ? [iconName] : children); + } +})); + +/***/ }), + +/***/ "./src/components/VIcon/index.ts": +/*!***************************************!*\ + !*** ./src/components/VIcon/index.ts ***! + \***************************************/ +/*! exports provided: VIcon, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VIcon */ "./src/components/VIcon/VIcon.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VIcon", function() { return _VIcon__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VIcon__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VImg/VImg.sass": +/*!***************************************!*\ + !*** ./src/components/VImg/VImg.sass ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VImg/VImg.ts": +/*!*************************************!*\ + !*** ./src/components/VImg/VImg.ts ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VImg_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VImg.sass */ "./src/components/VImg/VImg.sass"); +/* harmony import */ var _VImg_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VImg_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _directives_intersect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../directives/intersect */ "./src/directives/intersect/index.ts"); +/* harmony import */ var _VResponsive__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../VResponsive */ "./src/components/VResponsive/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_mergeData__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/mergeData */ "./src/util/mergeData.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +// Styles + // Directives + + // Components + + // Mixins + + // Utils + + + + +var hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window; +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_4__["default"])(_VResponsive__WEBPACK_IMPORTED_MODULE_2__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_3__["default"]).extend({ + name: 'v-img', + directives: { + intersect: _directives_intersect__WEBPACK_IMPORTED_MODULE_1__["default"] + }, + props: { + alt: String, + contain: Boolean, + eager: Boolean, + gradient: String, + lazySrc: String, + options: { + type: Object, + // For more information on types, navigate to: + // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API + default: function _default() { + return { + root: undefined, + rootMargin: undefined, + threshold: undefined + }; + } + }, + position: { + type: String, + default: 'center center' + }, + sizes: String, + src: { + type: [String, Object], + default: '' + }, + srcset: String, + transition: { + type: [Boolean, String], + default: 'fade-transition' + } + }, + data: function data() { + return { + currentSrc: '', + image: null, + isLoading: true, + calculatedAspectRatio: undefined, + naturalWidth: undefined, + hasError: false + }; + }, + computed: { + computedAspectRatio: function computedAspectRatio() { + return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio); + }, + normalisedSrc: function normalisedSrc() { + return this.src && _typeof(this.src) === 'object' ? { + src: this.src.src, + srcset: this.srcset || this.src.srcset, + lazySrc: this.lazySrc || this.src.lazySrc, + aspect: Number(this.aspectRatio || this.src.aspect) + } : { + src: this.src, + srcset: this.srcset, + lazySrc: this.lazySrc, + aspect: Number(this.aspectRatio || 0) + }; + }, + __cachedImage: function __cachedImage() { + if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []; + var backgroundImage = []; + var src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc; + if (this.gradient) backgroundImage.push("linear-gradient(" + this.gradient + ")"); + if (src) backgroundImage.push("url(\"" + src + "\")"); + var image = this.$createElement('div', { + staticClass: 'v-image__image', + class: { + 'v-image__image--preload': this.isLoading, + 'v-image__image--contain': this.contain, + 'v-image__image--cover': !this.contain + }, + style: { + backgroundImage: backgroundImage.join(', '), + backgroundPosition: this.position + }, + key: +this.isLoading + }); + /* istanbul ignore if */ + + if (!this.transition) return image; + return this.$createElement('transition', { + attrs: { + name: this.transition, + mode: 'in-out' + } + }, [image]); + } + }, + watch: { + src: function src() { + // Force re-init when src changes + if (!this.isLoading) this.init(undefined, undefined, true);else this.loadImage(); + }, + '$vuetify.breakpoint.width': 'getSrc' + }, + mounted: function mounted() { + this.init(); + }, + methods: { + init: function init(entries, observer, isIntersecting) { + // If the current browser supports the intersection + // observer api, the image is not observable, and + // the eager prop isn't being used, do not load + if (hasIntersect && !isIntersecting && !this.eager) return; + + if (this.normalisedSrc.lazySrc) { + var lazyImg = new Image(); + lazyImg.src = this.normalisedSrc.lazySrc; + this.pollForSize(lazyImg, null); + } + /* istanbul ignore else */ + + + if (this.normalisedSrc.src) this.loadImage(); + }, + onLoad: function onLoad() { + this.getSrc(); + this.isLoading = false; + this.$emit('load', this.src); + }, + onError: function onError() { + this.hasError = true; + this.$emit('error', this.src); + }, + getSrc: function getSrc() { + /* istanbul ignore else */ + if (this.image) this.currentSrc = this.image.currentSrc || this.image.src; + }, + loadImage: function loadImage() { + var _this = this; + + var image = new Image(); + this.image = image; + + image.onload = function () { + /* istanbul ignore if */ + if (image.decode) { + image.decode().catch(function (err) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_6__["consoleWarn"])("Failed to decode image, trying to render anyway\n\n" + ("src: " + _this.normalisedSrc.src) + (err.message ? "\nOriginal error: " + err.message : ''), _this); + }).then(_this.onLoad); + } else { + _this.onLoad(); + } + }; + + image.onerror = this.onError; + this.hasError = false; + image.src = this.normalisedSrc.src; + this.sizes && (image.sizes = this.sizes); + this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset); + this.aspectRatio || this.pollForSize(image); + this.getSrc(); + }, + pollForSize: function pollForSize(img, timeout) { + var _this = this; + + if (timeout === void 0) { + timeout = 100; + } + + var poll = function poll() { + var naturalHeight = img.naturalHeight, + naturalWidth = img.naturalWidth; + + if (naturalHeight || naturalWidth) { + _this.naturalWidth = naturalWidth; + _this.calculatedAspectRatio = naturalWidth / naturalHeight; + } else { + timeout != null && !_this.hasError && setTimeout(poll, timeout); + } + }; + + poll(); + }, + genContent: function genContent() { + var content = _VResponsive__WEBPACK_IMPORTED_MODULE_2__["default"].options.methods.genContent.call(this); + + if (this.naturalWidth) { + this._b(content.data, 'div', { + style: { + width: this.naturalWidth + "px" + } + }); + } + + return content; + }, + __genPlaceholder: function __genPlaceholder() { + if (this.$slots.placeholder) { + var placeholder = this.isLoading ? [this.$createElement('div', { + staticClass: 'v-image__placeholder' + }, this.$slots.placeholder)] : []; + if (!this.transition) return placeholder[0]; + return this.$createElement('transition', { + props: { + appear: true, + name: this.transition + } + }, placeholder); + } + } + }, + render: function render(h) { + var node = _VResponsive__WEBPACK_IMPORTED_MODULE_2__["default"].options.render.call(this, h); + var data = Object(_util_mergeData__WEBPACK_IMPORTED_MODULE_5__["default"])(node.data, { + staticClass: 'v-image', + attrs: { + 'aria-label': this.alt, + role: this.alt ? 'img' : undefined + }, + class: this.themeClasses, + // Only load intersect directive if it + // will work in the current browser. + directives: hasIntersect ? [{ + name: 'intersect', + modifiers: { + once: true + }, + value: { + handler: this.init, + options: this.options + } + }] : undefined + }); + node.children = [this.__cachedSizer, this.__cachedImage, this.__genPlaceholder(), this.genContent()]; + return h(node.tag, data, node.children); + } +})); + +/***/ }), + +/***/ "./src/components/VImg/index.ts": +/*!**************************************!*\ + !*** ./src/components/VImg/index.ts ***! + \**************************************/ +/*! exports provided: VImg, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VImg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VImg */ "./src/components/VImg/VImg.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VImg", function() { return _VImg__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VImg__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VInput/VInput.sass": +/*!*******************************************!*\ + !*** ./src/components/VInput/VInput.sass ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VInput/VInput.ts": +/*!*****************************************!*\ + !*** ./src/components/VInput/VInput.ts ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VInput_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VInput.sass */ "./src/components/VInput/VInput.sass"); +/* harmony import */ var _VInput_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VInput_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VIcon */ "./src/components/VIcon/index.ts"); +/* harmony import */ var _VLabel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../VLabel */ "./src/components/VLabel/index.ts"); +/* harmony import */ var _VMessages__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../VMessages */ "./src/components/VMessages/index.ts"); +/* harmony import */ var _mixins_binds_attrs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/binds-attrs */ "./src/mixins/binds-attrs/index.ts"); +/* harmony import */ var _mixins_validatable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/validatable */ "./src/mixins/validatable/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_mergeData__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util/mergeData */ "./src/util/mergeData.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Components + + + + // Mixins + + + // Utilities + + + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_8__["default"])(_mixins_binds_attrs__WEBPACK_IMPORTED_MODULE_4__["default"], _mixins_validatable__WEBPACK_IMPORTED_MODULE_5__["default"]); +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend().extend({ + name: 'v-input', + inheritAttrs: false, + props: { + appendIcon: String, + backgroundColor: { + type: String, + default: '' + }, + dense: Boolean, + height: [Number, String], + hideDetails: [Boolean, String], + hint: String, + id: String, + label: String, + loading: Boolean, + persistentHint: Boolean, + prependIcon: String, + value: null + }, + data: function data() { + return { + lazyValue: this.value, + hasMouseDown: false + }; + }, + computed: { + classes: function classes() { + return __assign({ + 'v-input--has-state': this.hasState, + 'v-input--hide-details': !this.showDetails, + 'v-input--is-label-active': this.isLabelActive, + 'v-input--is-dirty': this.isDirty, + 'v-input--is-disabled': this.isDisabled, + 'v-input--is-focused': this.isFocused, + // <v-switch loading>.loading === '' so we can't just cast to boolean + 'v-input--is-loading': this.loading !== false && this.loading != null, + 'v-input--is-readonly': this.isReadonly, + 'v-input--dense': this.dense + }, this.themeClasses); + }, + computedId: function computedId() { + return this.id || "input-" + this._uid; + }, + hasDetails: function hasDetails() { + return this.messagesToDisplay.length > 0; + }, + hasHint: function hasHint() { + return !this.hasMessages && !!this.hint && (this.persistentHint || this.isFocused); + }, + hasLabel: function hasLabel() { + return !!(this.$slots.label || this.label); + }, + // Proxy for `lazyValue` + // This allows an input + // to function without + // a provided model + internalValue: { + get: function get() { + return this.lazyValue; + }, + set: function set(val) { + this.lazyValue = val; + this.$emit(this.$_modelEvent, val); + } + }, + isDirty: function isDirty() { + return !!this.lazyValue; + }, + isLabelActive: function isLabelActive() { + return this.isDirty; + }, + messagesToDisplay: function messagesToDisplay() { + var _this = this; + + if (this.hasHint) return [this.hint]; + if (!this.hasMessages) return []; + return this.validations.map(function (validation) { + if (typeof validation === 'string') return validation; + var validationResult = validation(_this.internalValue); + return typeof validationResult === 'string' ? validationResult : ''; + }).filter(function (message) { + return message !== ''; + }); + }, + showDetails: function showDetails() { + return this.hideDetails === false || this.hideDetails === 'auto' && this.hasDetails; + } + }, + watch: { + value: function value(val) { + this.lazyValue = val; + } + }, + beforeCreate: function beforeCreate() { + // v-radio-group needs to emit a different event + // https://github.com/vuetifyjs/vuetify/issues/4752 + this.$_modelEvent = this.$options.model && this.$options.model.event || 'input'; + }, + methods: { + genContent: function genContent() { + return [this.genPrependSlot(), this.genControl(), this.genAppendSlot()]; + }, + genControl: function genControl() { + return this.$createElement('div', { + staticClass: 'v-input__control' + }, [this.genInputSlot(), this.genMessages()]); + }, + genDefaultSlot: function genDefaultSlot() { + return [this.genLabel(), this.$slots.default]; + }, + genIcon: function genIcon(type, cb, extraData) { + var _this = this; + + if (extraData === void 0) { + extraData = {}; + } + + var icon = this[type + "Icon"]; + var eventName = "click:" + Object(_util_helpers__WEBPACK_IMPORTED_MODULE_6__["kebabCase"])(type); + var hasListener = !!(this.listeners$[eventName] || cb); + var data = Object(_util_mergeData__WEBPACK_IMPORTED_MODULE_7__["default"])({ + attrs: { + 'aria-label': hasListener ? Object(_util_helpers__WEBPACK_IMPORTED_MODULE_6__["kebabCase"])(type).split('-')[0] + ' icon' : undefined, + color: this.validationState, + dark: this.dark, + disabled: this.isDisabled, + light: this.light + }, + on: !hasListener ? undefined : { + click: function click(e) { + e.preventDefault(); + e.stopPropagation(); + + _this.$emit(eventName, e); + + cb && cb(e); + }, + // Container has g event that will + // trigger menu open if enclosed + mouseup: function mouseup(e) { + e.preventDefault(); + e.stopPropagation(); + } + } + }, extraData); + return this.$createElement('div', { + staticClass: "v-input__icon", + class: type ? "v-input__icon--" + Object(_util_helpers__WEBPACK_IMPORTED_MODULE_6__["kebabCase"])(type) : undefined + }, [this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_1__["default"], data, icon)]); + }, + genInputSlot: function genInputSlot() { + return this.$createElement('div', this.setBackgroundColor(this.backgroundColor, { + staticClass: 'v-input__slot', + style: { + height: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_6__["convertToUnit"])(this.height) + }, + on: { + click: this.onClick, + mousedown: this.onMouseDown, + mouseup: this.onMouseUp + }, + ref: 'input-slot' + }), [this.genDefaultSlot()]); + }, + genLabel: function genLabel() { + if (!this.hasLabel) return null; + return this.$createElement(_VLabel__WEBPACK_IMPORTED_MODULE_2__["default"], { + props: { + color: this.validationState, + dark: this.dark, + disabled: this.isDisabled, + focused: this.hasState, + for: this.computedId, + light: this.light + } + }, this.$slots.label || this.label); + }, + genMessages: function genMessages() { + var _this = this; + + if (!this.showDetails) return null; + return this.$createElement(_VMessages__WEBPACK_IMPORTED_MODULE_3__["default"], { + props: { + color: this.hasHint ? '' : this.validationState, + dark: this.dark, + light: this.light, + value: this.messagesToDisplay + }, + attrs: { + role: this.hasMessages ? 'alert' : null + }, + scopedSlots: { + default: function _default(props) { + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_6__["getSlot"])(_this, 'message', props); + } + } + }); + }, + genSlot: function genSlot(type, location, slot) { + if (!slot.length) return null; + var ref = type + "-" + location; + return this.$createElement('div', { + staticClass: "v-input__" + ref, + ref: ref + }, slot); + }, + genPrependSlot: function genPrependSlot() { + var slot = []; + + if (this.$slots.prepend) { + slot.push(this.$slots.prepend); + } else if (this.prependIcon) { + slot.push(this.genIcon('prepend')); + } + + return this.genSlot('prepend', 'outer', slot); + }, + genAppendSlot: function genAppendSlot() { + var slot = []; // Append icon for text field was really + // an appended inner icon, v-text-field + // will overwrite this method in order to obtain + // backwards compat + + if (this.$slots.append) { + slot.push(this.$slots.append); + } else if (this.appendIcon) { + slot.push(this.genIcon('append')); + } + + return this.genSlot('append', 'outer', slot); + }, + onClick: function onClick(e) { + this.$emit('click', e); + }, + onMouseDown: function onMouseDown(e) { + this.hasMouseDown = true; + this.$emit('mousedown', e); + }, + onMouseUp: function onMouseUp(e) { + this.hasMouseDown = false; + this.$emit('mouseup', e); + } + }, + render: function render(h) { + return h('div', this.setTextColor(this.validationState, { + staticClass: 'v-input', + class: this.classes + }), this.genContent()); + } +})); + +/***/ }), + +/***/ "./src/components/VInput/index.ts": +/*!****************************************!*\ + !*** ./src/components/VInput/index.ts ***! + \****************************************/ +/*! exports provided: VInput, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VInput__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VInput */ "./src/components/VInput/VInput.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VInput", function() { return _VInput__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VInput__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VItemGroup/VItem.ts": +/*!********************************************!*\ + !*** ./src/components/VItemGroup/VItem.ts ***! + \********************************************/ +/*! exports provided: BaseItem, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseItem", function() { return BaseItem; }); +/* harmony import */ var _mixins_groupable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../mixins/groupable */ "./src/mixins/groupable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_3__); +// Mixins + // Utilities + + + // Types + + +/* @vue/component */ + +var BaseItem = vue__WEBPACK_IMPORTED_MODULE_3___default.a.extend({ + props: { + activeClass: String, + value: { + required: false + } + }, + data: function data() { + return { + isActive: false + }; + }, + methods: { + toggle: function toggle() { + this.isActive = !this.isActive; + } + }, + render: function render() { + var _a; + + if (!this.$scopedSlots.default) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_2__["consoleWarn"])('v-item is missing a default scopedSlot', this); + return null; + } + + var element; + /* istanbul ignore else */ + + if (this.$scopedSlots.default) { + element = this.$scopedSlots.default({ + active: this.isActive, + toggle: this.toggle + }); + } + + if (Array.isArray(element) && element.length === 1) { + element = element[0]; + } + + if (!element || Array.isArray(element) || !element.tag) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_2__["consoleWarn"])('v-item should only contain a single element', this); + return element; + } + + element.data = this._b(element.data || {}, element.tag, { + class: (_a = {}, _a[this.activeClass] = this.isActive, _a) + }); + return element; + } +}); +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_1__["default"])(BaseItem, Object(_mixins_groupable__WEBPACK_IMPORTED_MODULE_0__["factory"])('itemGroup', 'v-item', 'v-item-group')).extend({ + name: 'v-item' +})); + +/***/ }), + +/***/ "./src/components/VItemGroup/VItemGroup.sass": +/*!***************************************************!*\ + !*** ./src/components/VItemGroup/VItemGroup.sass ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VItemGroup/VItemGroup.ts": +/*!*************************************************!*\ + !*** ./src/components/VItemGroup/VItemGroup.ts ***! + \*************************************************/ +/*! exports provided: BaseItemGroup, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseItemGroup", function() { return BaseItemGroup; }); +/* harmony import */ var _VItemGroup_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VItemGroup.sass */ "./src/components/VItemGroup/VItemGroup.sass"); +/* harmony import */ var _VItemGroup_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VItemGroup_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_proxyable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/proxyable */ "./src/mixins/proxyable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + + + // Utilities + + + +var BaseItemGroup = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_3__["default"])(_mixins_proxyable__WEBPACK_IMPORTED_MODULE_1__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_2__["default"]).extend({ + name: 'base-item-group', + props: { + activeClass: { + type: String, + default: 'v-item--active' + }, + mandatory: Boolean, + max: { + type: [Number, String], + default: null + }, + multiple: Boolean + }, + data: function data() { + return { + // As long as a value is defined, show it + // Otherwise, check if multiple + // to determine which default to provide + internalLazyValue: this.value !== undefined ? this.value : this.multiple ? [] : undefined, + items: [] + }; + }, + computed: { + classes: function classes() { + return __assign({ + 'v-item-group': true + }, this.themeClasses); + }, + selectedIndex: function selectedIndex() { + return this.selectedItem && this.items.indexOf(this.selectedItem) || -1; + }, + selectedItem: function selectedItem() { + if (this.multiple) return undefined; + return this.selectedItems[0]; + }, + selectedItems: function selectedItems() { + var _this = this; + + return this.items.filter(function (item, index) { + return _this.toggleMethod(_this.getValue(item, index)); + }); + }, + selectedValues: function selectedValues() { + if (this.internalValue == null) return []; + return Array.isArray(this.internalValue) ? this.internalValue : [this.internalValue]; + }, + toggleMethod: function toggleMethod() { + var _this = this; + + if (!this.multiple) { + return function (v) { + return _this.internalValue === v; + }; + } + + var internalValue = this.internalValue; + + if (Array.isArray(internalValue)) { + return function (v) { + return internalValue.includes(v); + }; + } + + return function () { + return false; + }; + } + }, + watch: { + internalValue: 'updateItemsState', + items: 'updateItemsState' + }, + created: function created() { + if (this.multiple && !Array.isArray(this.internalValue)) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_4__["consoleWarn"])('Model must be bound to an array if the multiple property is true.', this); + } + }, + methods: { + genData: function genData() { + return { + class: this.classes + }; + }, + getValue: function getValue(item, i) { + return item.value == null || item.value === '' ? i : item.value; + }, + onClick: function onClick(item) { + this.updateInternalValue(this.getValue(item, this.items.indexOf(item))); + }, + register: function register(item) { + var _this = this; + + var index = this.items.push(item) - 1; + item.$on('change', function () { + return _this.onClick(item); + }); // If no value provided and mandatory, + // assign first registered item + + if (this.mandatory && !this.selectedValues.length) { + this.updateMandatory(); + } + + this.updateItem(item, index); + }, + unregister: function unregister(item) { + if (this._isDestroyed) return; + var index = this.items.indexOf(item); + var value = this.getValue(item, index); + this.items.splice(index, 1); + var valueIndex = this.selectedValues.indexOf(value); // Items is not selected, do nothing + + if (valueIndex < 0) return; // If not mandatory, use regular update process + + if (!this.mandatory) { + return this.updateInternalValue(value); + } // Remove the value + + + if (this.multiple && Array.isArray(this.internalValue)) { + this.internalValue = this.internalValue.filter(function (v) { + return v !== value; + }); + } else { + this.internalValue = undefined; + } // If mandatory and we have no selection + // add the last item as value + + /* istanbul ignore else */ + + + if (!this.selectedItems.length) { + this.updateMandatory(true); + } + }, + updateItem: function updateItem(item, index) { + var value = this.getValue(item, index); + item.isActive = this.toggleMethod(value); + }, + // https://github.com/vuetifyjs/vuetify/issues/5352 + updateItemsState: function updateItemsState() { + var _this = this; + + this.$nextTick(function () { + if (_this.mandatory && !_this.selectedItems.length) { + return _this.updateMandatory(); + } // TODO: Make this smarter so it + // doesn't have to iterate every + // child in an update + + + _this.items.forEach(_this.updateItem); + }); + }, + updateInternalValue: function updateInternalValue(value) { + this.multiple ? this.updateMultiple(value) : this.updateSingle(value); + }, + updateMandatory: function updateMandatory(last) { + if (!this.items.length) return; + var items = this.items.slice(); + if (last) items.reverse(); + var item = items.find(function (item) { + return !item.disabled; + }); // If no tabs are available + // aborts mandatory value + + if (!item) return; + var index = this.items.indexOf(item); + this.updateInternalValue(this.getValue(item, index)); + }, + updateMultiple: function updateMultiple(value) { + var defaultValue = Array.isArray(this.internalValue) ? this.internalValue : []; + var internalValue = defaultValue.slice(); + var index = internalValue.findIndex(function (val) { + return val === value; + }); + if (this.mandatory && // Item already exists + index > -1 && // value would be reduced below min + internalValue.length - 1 < 1) return; + if ( // Max is set + this.max != null && // Item doesn't exist + index < 0 && // value would be increased above max + internalValue.length + 1 > this.max) return; + index > -1 ? internalValue.splice(index, 1) : internalValue.push(value); + this.internalValue = internalValue; + }, + updateSingle: function updateSingle(value) { + var isSame = value === this.internalValue; + if (this.mandatory && isSame) return; + this.internalValue = isSame ? undefined : value; + } + }, + render: function render(h) { + return h('div', this.genData(), this.$slots.default); + } +}); +/* harmony default export */ __webpack_exports__["default"] = (BaseItemGroup.extend({ + name: 'v-item-group', + provide: function provide() { + return { + itemGroup: this + }; + } +})); + +/***/ }), + +/***/ "./src/components/VItemGroup/index.ts": +/*!********************************************!*\ + !*** ./src/components/VItemGroup/index.ts ***! + \********************************************/ +/*! exports provided: VItem, VItemGroup, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VItem__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VItem */ "./src/components/VItemGroup/VItem.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VItem", function() { return _VItem__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + +/* harmony import */ var _VItemGroup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VItemGroup */ "./src/components/VItemGroup/VItemGroup.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VItemGroup", function() { return _VItemGroup__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + $_vuetify_subcomponents: { + VItem: _VItem__WEBPACK_IMPORTED_MODULE_0__["default"], + VItemGroup: _VItemGroup__WEBPACK_IMPORTED_MODULE_1__["default"] + } +}); + +/***/ }), + +/***/ "./src/components/VLabel/VLabel.sass": +/*!*******************************************!*\ + !*** ./src/components/VLabel/VLabel.sass ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VLabel/VLabel.ts": +/*!*****************************************!*\ + !*** ./src/components/VLabel/VLabel.ts ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VLabel_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VLabel.sass */ "./src/components/VLabel/VLabel.sass"); +/* harmony import */ var _VLabel_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VLabel_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Mixins + + + + // Helpers + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_3__["default"])(_mixins_themeable__WEBPACK_IMPORTED_MODULE_2__["default"]).extend({ + name: 'v-label', + functional: true, + props: { + absolute: Boolean, + color: { + type: String, + default: 'primary' + }, + disabled: Boolean, + focused: Boolean, + for: String, + left: { + type: [Number, String], + default: 0 + }, + right: { + type: [Number, String], + default: 'auto' + }, + value: Boolean + }, + render: function render(h, ctx) { + var children = ctx.children, + listeners = ctx.listeners, + props = ctx.props; + var data = { + staticClass: 'v-label', + class: __assign({ + 'v-label--active': props.value, + 'v-label--is-disabled': props.disabled + }, Object(_mixins_themeable__WEBPACK_IMPORTED_MODULE_2__["functionalThemeClasses"])(ctx)), + attrs: { + for: props.for, + 'aria-hidden': !props.for + }, + on: listeners, + style: { + left: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["convertToUnit"])(props.left), + right: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["convertToUnit"])(props.right), + position: props.absolute ? 'absolute' : 'relative' + }, + ref: 'label' + }; + return h('label', _mixins_colorable__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.setTextColor(props.focused && props.color, data), children); + } +})); + +/***/ }), + +/***/ "./src/components/VLabel/index.ts": +/*!****************************************!*\ + !*** ./src/components/VLabel/index.ts ***! + \****************************************/ +/*! exports provided: VLabel, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VLabel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VLabel */ "./src/components/VLabel/VLabel.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VLabel", function() { return _VLabel__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VLabel__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VLazy/VLazy.ts": +/*!***************************************!*\ + !*** ./src/components/VLazy/VLazy.ts ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _mixins_measurable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../mixins/measurable */ "./src/mixins/measurable/index.ts"); +/* harmony import */ var _mixins_toggleable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/toggleable */ "./src/mixins/toggleable/index.ts"); +/* harmony import */ var _directives_intersect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../directives/intersect */ "./src/directives/intersect/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Mixins + + + + // Directives + + // Utilities + + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_3__["default"])(_mixins_measurable__WEBPACK_IMPORTED_MODULE_0__["default"], _mixins_toggleable__WEBPACK_IMPORTED_MODULE_1__["default"]).extend({ + name: 'VLazy', + directives: { + intersect: _directives_intersect__WEBPACK_IMPORTED_MODULE_2__["default"] + }, + props: { + options: { + type: Object, + // For more information on types, navigate to: + // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API + default: function _default() { + return { + root: undefined, + rootMargin: undefined, + threshold: undefined + }; + } + }, + tag: { + type: String, + default: 'div' + }, + transition: { + type: String, + default: 'fade-transition' + } + }, + computed: { + styles: function styles() { + return __assign({}, this.measurableStyles); + } + }, + methods: { + genContent: function genContent() { + var slot = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getSlot"])(this); + /* istanbul ignore if */ + + if (!this.transition) return slot; + var children = []; + if (this.isActive) children.push(slot); + return this.$createElement('transition', { + props: { + name: this.transition + } + }, children); + }, + onObserve: function onObserve(entries, observer, isIntersecting) { + if (this.isActive) return; + this.isActive = isIntersecting; + } + }, + render: function render(h) { + return h(this.tag, { + staticClass: 'v-lazy', + attrs: this.$attrs, + directives: [{ + name: 'intersect', + value: { + handler: this.onObserve, + options: this.options + } + }], + on: this.$listeners, + style: this.styles + }, [this.genContent()]); + } +})); + +/***/ }), + +/***/ "./src/components/VLazy/index.ts": +/*!***************************************!*\ + !*** ./src/components/VLazy/index.ts ***! + \***************************************/ +/*! exports provided: VLazy, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VLazy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VLazy */ "./src/components/VLazy/VLazy.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VLazy", function() { return _VLazy__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VLazy__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VList/VList.sass": +/*!*****************************************!*\ + !*** ./src/components/VList/VList.sass ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VList/VList.ts": +/*!***************************************!*\ + !*** ./src/components/VList/VList.ts ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VList_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VList.sass */ "./src/components/VList/VList.sass"); +/* harmony import */ var _VList_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VList_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VSheet_VSheet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VSheet/VSheet */ "./src/components/VSheet/VSheet.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __values = undefined && undefined.__values || function (o) { + var s = typeof Symbol === "function" && Symbol.iterator, + m = s && o[s], + i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function next() { + if (o && i >= o.length) o = void 0; + return { + value: o && o[i++], + done: !o + }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); +}; // Styles + + + // Components + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (_VSheet_VSheet__WEBPACK_IMPORTED_MODULE_1__["default"].extend().extend({ + name: 'v-list', + provide: function provide() { + return { + isInList: true, + list: this + }; + }, + inject: { + isInMenu: { + default: false + }, + isInNav: { + default: false + } + }, + props: { + dense: Boolean, + disabled: Boolean, + expand: Boolean, + flat: Boolean, + nav: Boolean, + rounded: Boolean, + subheader: Boolean, + threeLine: Boolean, + twoLine: Boolean + }, + data: function data() { + return { + groups: [] + }; + }, + computed: { + classes: function classes() { + return __assign(__assign({}, _VSheet_VSheet__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.classes.call(this)), { + 'v-list--dense': this.dense, + 'v-list--disabled': this.disabled, + 'v-list--flat': this.flat, + 'v-list--nav': this.nav, + 'v-list--rounded': this.rounded, + 'v-list--subheader': this.subheader, + 'v-list--two-line': this.twoLine, + 'v-list--three-line': this.threeLine + }); + } + }, + methods: { + register: function register(content) { + this.groups.push(content); + }, + unregister: function unregister(content) { + var index = this.groups.findIndex(function (g) { + return g._uid === content._uid; + }); + if (index > -1) this.groups.splice(index, 1); + }, + listClick: function listClick(uid) { + var e_1, _a; + + if (this.expand) return; + + try { + for (var _b = __values(this.groups), _c = _b.next(); !_c.done; _c = _b.next()) { + var group = _c.value; + group.toggle(uid); + } + } catch (e_1_1) { + e_1 = { + error: e_1_1 + }; + } finally { + try { + if (_c && !_c.done && (_a = _b.return)) _a.call(_b); + } finally { + if (e_1) throw e_1.error; + } + } + } + }, + render: function render(h) { + var data = { + staticClass: 'v-list', + class: this.classes, + style: this.styles, + attrs: __assign({ + role: this.isInNav || this.isInMenu ? undefined : 'list' + }, this.attrs$) + }; + return h(this.tag, this.setBackgroundColor(this.color, data), [this.$slots.default]); + } +})); + +/***/ }), + +/***/ "./src/components/VList/VListGroup.sass": +/*!**********************************************!*\ + !*** ./src/components/VList/VListGroup.sass ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VList/VListGroup.ts": +/*!********************************************!*\ + !*** ./src/components/VList/VListGroup.ts ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VListGroup_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VListGroup.sass */ "./src/components/VList/VListGroup.sass"); +/* harmony import */ var _VListGroup_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VListGroup_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VIcon */ "./src/components/VIcon/index.ts"); +/* harmony import */ var _VListItem__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./VListItem */ "./src/components/VList/VListItem.ts"); +/* harmony import */ var _VListItemIcon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./VListItemIcon */ "./src/components/VList/VListItemIcon.ts"); +/* harmony import */ var _mixins_binds_attrs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/binds-attrs */ "./src/mixins/binds-attrs/index.ts"); +/* harmony import */ var _mixins_bootable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/bootable */ "./src/mixins/bootable/index.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_toggleable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../mixins/toggleable */ "./src/mixins/toggleable/index.ts"); +/* harmony import */ var _mixins_registrable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../mixins/registrable */ "./src/mixins/registrable/index.ts"); +/* harmony import */ var _directives_ripple__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../directives/ripple */ "./src/directives/ripple/index.ts"); +/* harmony import */ var _transitions__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../transitions */ "./src/components/transitions/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Components + + + + // Mixins + + + + + + // Directives + + // Transitions + + // Utils + + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_11__["default"])(_mixins_binds_attrs__WEBPACK_IMPORTED_MODULE_4__["default"], _mixins_bootable__WEBPACK_IMPORTED_MODULE_5__["default"], _mixins_colorable__WEBPACK_IMPORTED_MODULE_6__["default"], Object(_mixins_registrable__WEBPACK_IMPORTED_MODULE_8__["inject"])('list'), _mixins_toggleable__WEBPACK_IMPORTED_MODULE_7__["default"]); +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend().extend({ + name: 'v-list-group', + directives: { + ripple: _directives_ripple__WEBPACK_IMPORTED_MODULE_9__["default"] + }, + props: { + activeClass: { + type: String, + default: '' + }, + appendIcon: { + type: String, + default: '$expand' + }, + color: { + type: String, + default: 'primary' + }, + disabled: Boolean, + group: String, + noAction: Boolean, + prependIcon: String, + ripple: { + type: [Boolean, Object], + default: true + }, + subGroup: Boolean + }, + computed: { + classes: function classes() { + return { + 'v-list-group--active': this.isActive, + 'v-list-group--disabled': this.disabled, + 'v-list-group--no-action': this.noAction, + 'v-list-group--sub-group': this.subGroup + }; + } + }, + watch: { + isActive: function isActive(val) { + /* istanbul ignore else */ + if (!this.subGroup && val) { + this.list && this.list.listClick(this._uid); + } + }, + $route: 'onRouteChange' + }, + created: function created() { + this.list && this.list.register(this); + + if (this.group && this.$route && this.value == null) { + this.isActive = this.matchRoute(this.$route.path); + } + }, + beforeDestroy: function beforeDestroy() { + this.list && this.list.unregister(this); + }, + methods: { + click: function click(e) { + var _this = this; + + if (this.disabled) return; + this.isBooted = true; + this.$emit('click', e); + this.$nextTick(function () { + return _this.isActive = !_this.isActive; + }); + }, + genIcon: function genIcon(icon) { + return this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_1__["default"], icon); + }, + genAppendIcon: function genAppendIcon() { + var icon = !this.subGroup ? this.appendIcon : false; + if (!icon && !this.$slots.appendIcon) return null; + return this.$createElement(_VListItemIcon__WEBPACK_IMPORTED_MODULE_3__["default"], { + staticClass: 'v-list-group__header__append-icon' + }, [this.$slots.appendIcon || this.genIcon(icon)]); + }, + genHeader: function genHeader() { + var _a; + + return this.$createElement(_VListItem__WEBPACK_IMPORTED_MODULE_2__["default"], { + staticClass: 'v-list-group__header', + attrs: { + 'aria-expanded': String(this.isActive), + role: 'button' + }, + class: (_a = {}, _a[this.activeClass] = this.isActive, _a), + props: { + inputValue: this.isActive + }, + directives: [{ + name: 'ripple', + value: this.ripple + }], + on: __assign(__assign({}, this.listeners$), { + click: this.click + }) + }, [this.genPrependIcon(), this.$slots.activator, this.genAppendIcon()]); + }, + genItems: function genItems() { + var _this = this; + + return this.showLazyContent(function () { + return [_this.$createElement('div', { + staticClass: 'v-list-group__items', + directives: [{ + name: 'show', + value: _this.isActive + }] + }, Object(_util_helpers__WEBPACK_IMPORTED_MODULE_12__["getSlot"])(_this))]; + }); + }, + genPrependIcon: function genPrependIcon() { + var icon = this.subGroup && this.prependIcon == null ? '$subgroup' : this.prependIcon; + if (!icon && !this.$slots.prependIcon) return null; + return this.$createElement(_VListItemIcon__WEBPACK_IMPORTED_MODULE_3__["default"], { + staticClass: 'v-list-group__header__prepend-icon' + }, [this.$slots.prependIcon || this.genIcon(icon)]); + }, + onRouteChange: function onRouteChange(to) { + /* istanbul ignore if */ + if (!this.group) return; + var isActive = this.matchRoute(to.path); + /* istanbul ignore else */ + + if (isActive && this.isActive !== isActive) { + this.list && this.list.listClick(this._uid); + } + + this.isActive = isActive; + }, + toggle: function toggle(uid) { + var _this = this; + + var isActive = this._uid === uid; + if (isActive) this.isBooted = true; + this.$nextTick(function () { + return _this.isActive = isActive; + }); + }, + matchRoute: function matchRoute(to) { + return to.match(this.group) !== null; + } + }, + render: function render(h) { + return h('div', this.setTextColor(this.isActive && this.color, { + staticClass: 'v-list-group', + class: this.classes + }), [this.genHeader(), h(_transitions__WEBPACK_IMPORTED_MODULE_10__["VExpandTransition"], this.genItems())]); + } +})); + +/***/ }), + +/***/ "./src/components/VList/VListItem.sass": +/*!*********************************************!*\ + !*** ./src/components/VList/VListItem.sass ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VList/VListItem.ts": +/*!*******************************************!*\ + !*** ./src/components/VList/VListItem.ts ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VListItem_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VListItem.sass */ "./src/components/VList/VListItem.sass"); +/* harmony import */ var _VListItem_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VListItem_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_routable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/routable */ "./src/mixins/routable/index.ts"); +/* harmony import */ var _mixins_groupable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/groupable */ "./src/mixins/groupable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _mixins_toggleable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/toggleable */ "./src/mixins/toggleable/index.ts"); +/* harmony import */ var _directives_ripple__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../directives/ripple */ "./src/directives/ripple/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Mixins + + + + + + // Directives + + // Utilities + + + // Types + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_9__["default"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_1__["default"], _mixins_routable__WEBPACK_IMPORTED_MODULE_2__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_4__["default"], Object(_mixins_groupable__WEBPACK_IMPORTED_MODULE_3__["factory"])('listItemGroup'), Object(_mixins_toggleable__WEBPACK_IMPORTED_MODULE_5__["factory"])('inputValue')); +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend().extend({ + name: 'v-list-item', + directives: { + Ripple: _directives_ripple__WEBPACK_IMPORTED_MODULE_6__["default"] + }, + inject: { + isInGroup: { + default: false + }, + isInList: { + default: false + }, + isInMenu: { + default: false + }, + isInNav: { + default: false + } + }, + inheritAttrs: false, + props: { + activeClass: { + type: String, + default: function _default() { + if (!this.listItemGroup) return ''; + return this.listItemGroup.activeClass; + } + }, + dense: Boolean, + inactive: Boolean, + link: Boolean, + selectable: { + type: Boolean + }, + tag: { + type: String, + default: 'div' + }, + threeLine: Boolean, + twoLine: Boolean, + value: null + }, + data: function data() { + return { + proxyClass: 'v-list-item--active' + }; + }, + computed: { + classes: function classes() { + return __assign(__assign(__assign({ + 'v-list-item': true + }, _mixins_routable__WEBPACK_IMPORTED_MODULE_2__["default"].options.computed.classes.call(this)), { + 'v-list-item--dense': this.dense, + 'v-list-item--disabled': this.disabled, + 'v-list-item--link': this.isClickable && !this.inactive, + 'v-list-item--selectable': this.selectable, + 'v-list-item--three-line': this.threeLine, + 'v-list-item--two-line': this.twoLine + }), this.themeClasses); + }, + isClickable: function isClickable() { + return Boolean(_mixins_routable__WEBPACK_IMPORTED_MODULE_2__["default"].options.computed.isClickable.call(this) || this.listItemGroup); + } + }, + created: function created() { + /* istanbul ignore next */ + if (this.$attrs.hasOwnProperty('avatar')) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_8__["removed"])('avatar', this); + } + }, + methods: { + click: function click(e) { + if (e.detail) this.$el.blur(); + this.$emit('click', e); + this.to || this.toggle(); + }, + genAttrs: function genAttrs() { + var attrs = __assign({ + 'aria-disabled': this.disabled ? true : undefined, + tabindex: this.isClickable && !this.disabled ? 0 : -1 + }, this.$attrs); + + if (this.$attrs.hasOwnProperty('role')) {// do nothing, role already provided + } else if (this.isInNav) {// do nothing, role is inherit + } else if (this.isInGroup) { + attrs.role = 'listitem'; + attrs['aria-selected'] = String(this.isActive); + } else if (this.isInMenu) { + attrs.role = this.isClickable ? 'menuitem' : undefined; + attrs.id = attrs.id || "list-item-" + this._uid; + } else if (this.isInList) { + attrs.role = 'listitem'; + } + + return attrs; + } + }, + render: function render(h) { + var _this = this; + + var _a = this.generateRouteLink(), + tag = _a.tag, + data = _a.data; + + data.attrs = __assign(__assign({}, data.attrs), this.genAttrs()); + data[this.to ? 'nativeOn' : 'on'] = __assign(__assign({}, data[this.to ? 'nativeOn' : 'on']), { + keydown: function keydown(e) { + /* istanbul ignore else */ + if (e.keyCode === _util_helpers__WEBPACK_IMPORTED_MODULE_7__["keyCodes"].enter) _this.click(e); + + _this.$emit('keydown', e); + } + }); + if (this.inactive) tag = 'div'; + + if (this.inactive && this.to) { + data.on = data.nativeOn; + delete data.nativeOn; + } + + var children = this.$scopedSlots.default ? this.$scopedSlots.default({ + active: this.isActive, + toggle: this.toggle + }) : this.$slots.default; + return h(tag, this.setTextColor(this.color, data), children); + } +})); + +/***/ }), + +/***/ "./src/components/VList/VListItemAction.ts": +/*!*************************************************!*\ + !*** ./src/components/VList/VListItemAction.ts ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); +// Types + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: 'v-list-item-action', + functional: true, + render: function render(h, _a) { + var data = _a.data, + _b = _a.children, + children = _b === void 0 ? [] : _b; + data.staticClass = data.staticClass ? "v-list-item__action " + data.staticClass : 'v-list-item__action'; + var filteredChild = children.filter(function (VNode) { + return VNode.isComment === false && VNode.text !== ' '; + }); + if (filteredChild.length > 1) data.staticClass += ' v-list-item__action--stack'; + return h('div', data, children); + } +})); + +/***/ }), + +/***/ "./src/components/VList/VListItemAvatar.ts": +/*!*************************************************!*\ + !*** ./src/components/VList/VListItemAvatar.ts ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VAvatar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../VAvatar */ "./src/components/VAvatar/index.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Components + + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (_VAvatar__WEBPACK_IMPORTED_MODULE_0__["default"].extend({ + name: 'v-list-item-avatar', + props: { + horizontal: Boolean, + size: { + type: [Number, String], + default: 40 + } + }, + computed: { + classes: function classes() { + return __assign(__assign({ + 'v-list-item__avatar--horizontal': this.horizontal + }, _VAvatar__WEBPACK_IMPORTED_MODULE_0__["default"].options.computed.classes.call(this)), { + 'v-avatar--tile': this.tile || this.horizontal + }); + } + }, + render: function render(h) { + var render = _VAvatar__WEBPACK_IMPORTED_MODULE_0__["default"].options.render.call(this, h); + render.data = render.data || {}; + render.data.staticClass += ' v-list-item__avatar'; + return render; + } +})); + +/***/ }), + +/***/ "./src/components/VList/VListItemGroup.sass": +/*!**************************************************!*\ + !*** ./src/components/VList/VListItemGroup.sass ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VList/VListItemGroup.ts": +/*!************************************************!*\ + !*** ./src/components/VList/VListItemGroup.ts ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VListItemGroup_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VListItemGroup.sass */ "./src/components/VList/VListItemGroup.sass"); +/* harmony import */ var _VListItemGroup_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VListItemGroup_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VItemGroup/VItemGroup */ "./src/components/VItemGroup/VItemGroup.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Extensions + + // Mixins + + // Utilities + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_3__["default"])(_VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_1__["BaseItemGroup"], _mixins_colorable__WEBPACK_IMPORTED_MODULE_2__["default"]).extend({ + name: 'v-list-item-group', + provide: function provide() { + return { + isInGroup: true, + listItemGroup: this + }; + }, + computed: { + classes: function classes() { + return __assign(__assign({}, _VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_1__["BaseItemGroup"].options.computed.classes.call(this)), { + 'v-list-item-group': true + }); + } + }, + methods: { + genData: function genData() { + return this.setTextColor(this.color, __assign(__assign({}, _VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_1__["BaseItemGroup"].options.methods.genData.call(this)), { + attrs: { + role: 'listbox' + } + })); + } + } +})); + +/***/ }), + +/***/ "./src/components/VList/VListItemIcon.ts": +/*!***********************************************!*\ + !*** ./src/components/VList/VListItemIcon.ts ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); +// Types + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: 'v-list-item-icon', + functional: true, + render: function render(h, _a) { + var data = _a.data, + children = _a.children; + data.staticClass = ("v-list-item__icon " + (data.staticClass || '')).trim(); + return h('div', data, children); + } +})); + +/***/ }), + +/***/ "./src/components/VList/index.ts": +/*!***************************************!*\ + !*** ./src/components/VList/index.ts ***! + \***************************************/ +/*! exports provided: VListItemActionText, VListItemContent, VListItemTitle, VListItemSubtitle, VList, VListGroup, VListItem, VListItemAction, VListItemAvatar, VListItemIcon, VListItemGroup, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VListItemActionText", function() { return VListItemActionText; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VListItemContent", function() { return VListItemContent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VListItemTitle", function() { return VListItemTitle; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VListItemSubtitle", function() { return VListItemSubtitle; }); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _VList__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VList */ "./src/components/VList/VList.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VList", function() { return _VList__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + +/* harmony import */ var _VListGroup__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./VListGroup */ "./src/components/VList/VListGroup.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VListGroup", function() { return _VListGroup__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + +/* harmony import */ var _VListItem__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./VListItem */ "./src/components/VList/VListItem.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VListItem", function() { return _VListItem__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + +/* harmony import */ var _VListItemGroup__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./VListItemGroup */ "./src/components/VList/VListItemGroup.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VListItemGroup", function() { return _VListItemGroup__WEBPACK_IMPORTED_MODULE_4__["default"]; }); + +/* harmony import */ var _VListItemAction__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./VListItemAction */ "./src/components/VList/VListItemAction.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VListItemAction", function() { return _VListItemAction__WEBPACK_IMPORTED_MODULE_5__["default"]; }); + +/* harmony import */ var _VListItemAvatar__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./VListItemAvatar */ "./src/components/VList/VListItemAvatar.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VListItemAvatar", function() { return _VListItemAvatar__WEBPACK_IMPORTED_MODULE_6__["default"]; }); + +/* harmony import */ var _VListItemIcon__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./VListItemIcon */ "./src/components/VList/VListItemIcon.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VListItemIcon", function() { return _VListItemIcon__WEBPACK_IMPORTED_MODULE_7__["default"]; }); + + + + + + + + + +var VListItemActionText = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["createSimpleFunctional"])('v-list-item__action-text', 'span'); +var VListItemContent = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["createSimpleFunctional"])('v-list-item__content', 'div'); +var VListItemTitle = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["createSimpleFunctional"])('v-list-item__title', 'div'); +var VListItemSubtitle = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["createSimpleFunctional"])('v-list-item__subtitle', 'div'); + +/* harmony default export */ __webpack_exports__["default"] = ({ + $_vuetify_subcomponents: { + VList: _VList__WEBPACK_IMPORTED_MODULE_1__["default"], + VListGroup: _VListGroup__WEBPACK_IMPORTED_MODULE_2__["default"], + VListItem: _VListItem__WEBPACK_IMPORTED_MODULE_3__["default"], + VListItemAction: _VListItemAction__WEBPACK_IMPORTED_MODULE_5__["default"], + VListItemActionText: VListItemActionText, + VListItemAvatar: _VListItemAvatar__WEBPACK_IMPORTED_MODULE_6__["default"], + VListItemContent: VListItemContent, + VListItemGroup: _VListItemGroup__WEBPACK_IMPORTED_MODULE_4__["default"], + VListItemIcon: _VListItemIcon__WEBPACK_IMPORTED_MODULE_7__["default"], + VListItemSubtitle: VListItemSubtitle, + VListItemTitle: VListItemTitle + } +}); + +/***/ }), + +/***/ "./src/components/VMain/VMain.sass": +/*!*****************************************!*\ + !*** ./src/components/VMain/VMain.sass ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VMain/VMain.ts": +/*!***************************************!*\ + !*** ./src/components/VMain/VMain.ts ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VMain_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VMain.sass */ "./src/components/VMain/VMain.sass"); +/* harmony import */ var _VMain_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VMain_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_ssr_bootable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/ssr-bootable */ "./src/mixins/ssr-bootable/index.ts"); +// Styles + // Mixins + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (_mixins_ssr_bootable__WEBPACK_IMPORTED_MODULE_1__["default"].extend({ + name: 'v-main', + props: { + tag: { + type: String, + default: 'main' + } + }, + computed: { + styles: function styles() { + var _a = this.$vuetify.application, + bar = _a.bar, + top = _a.top, + right = _a.right, + footer = _a.footer, + insetFooter = _a.insetFooter, + bottom = _a.bottom, + left = _a.left; + return { + paddingTop: top + bar + "px", + paddingRight: right + "px", + paddingBottom: footer + insetFooter + bottom + "px", + paddingLeft: left + "px" + }; + } + }, + render: function render(h) { + var data = { + staticClass: 'v-main', + style: this.styles, + ref: 'main' + }; + return h(this.tag, data, [h('div', { + staticClass: 'v-main__wrap' + }, this.$slots.default)]); + } +})); + +/***/ }), + +/***/ "./src/components/VMain/index.ts": +/*!***************************************!*\ + !*** ./src/components/VMain/index.ts ***! + \***************************************/ +/*! exports provided: VMain, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VMain__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VMain */ "./src/components/VMain/VMain.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VMain", function() { return _VMain__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VMain__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VMenu/VMenu.sass": +/*!*****************************************!*\ + !*** ./src/components/VMenu/VMenu.sass ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VMenu/VMenu.ts": +/*!***************************************!*\ + !*** ./src/components/VMenu/VMenu.ts ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VMenu_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VMenu.sass */ "./src/components/VMenu/VMenu.sass"); +/* harmony import */ var _VMenu_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VMenu_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VThemeProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VThemeProvider */ "./src/components/VThemeProvider/index.ts"); +/* harmony import */ var _mixins_activatable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/activatable */ "./src/mixins/activatable/index.ts"); +/* harmony import */ var _mixins_delayable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/delayable */ "./src/mixins/delayable/index.ts"); +/* harmony import */ var _mixins_dependent__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/dependent */ "./src/mixins/dependent/index.ts"); +/* harmony import */ var _mixins_detachable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/detachable */ "./src/mixins/detachable/index.ts"); +/* harmony import */ var _mixins_menuable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../mixins/menuable */ "./src/mixins/menuable/index.ts"); +/* harmony import */ var _mixins_returnable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../mixins/returnable */ "./src/mixins/returnable/index.ts"); +/* harmony import */ var _mixins_roundable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../mixins/roundable */ "./src/mixins/roundable/index.ts"); +/* harmony import */ var _mixins_toggleable__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../mixins/toggleable */ "./src/mixins/toggleable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _directives_click_outside__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../directives/click-outside */ "./src/directives/click-outside/index.ts"); +/* harmony import */ var _directives_resize__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../directives/resize */ "./src/directives/resize/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + +var __spread = undefined && undefined.__spread || function () { + for (var ar = [], i = 0; i < arguments.length; i++) { + ar = ar.concat(__read(arguments[i])); + } + + return ar; +}; // Styles + + + // Components + + // Mixins + + + + + + + + + + // Directives + + + // Utilities + + + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_13__["default"])(_mixins_dependent__WEBPACK_IMPORTED_MODULE_4__["default"], _mixins_delayable__WEBPACK_IMPORTED_MODULE_3__["default"], _mixins_detachable__WEBPACK_IMPORTED_MODULE_5__["default"], _mixins_menuable__WEBPACK_IMPORTED_MODULE_6__["default"], _mixins_returnable__WEBPACK_IMPORTED_MODULE_7__["default"], _mixins_roundable__WEBPACK_IMPORTED_MODULE_8__["default"], _mixins_toggleable__WEBPACK_IMPORTED_MODULE_9__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_10__["default"]); +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend({ + name: 'v-menu', + directives: { + ClickOutside: _directives_click_outside__WEBPACK_IMPORTED_MODULE_11__["default"], + Resize: _directives_resize__WEBPACK_IMPORTED_MODULE_12__["default"] + }, + provide: function provide() { + return { + isInMenu: true, + // Pass theme through to default slot + theme: this.theme + }; + }, + props: { + auto: Boolean, + closeOnClick: { + type: Boolean, + default: true + }, + closeOnContentClick: { + type: Boolean, + default: true + }, + disabled: Boolean, + disableKeys: Boolean, + maxHeight: { + type: [Number, String], + default: 'auto' + }, + offsetX: Boolean, + offsetY: Boolean, + openOnClick: { + type: Boolean, + default: true + }, + openOnHover: Boolean, + origin: { + type: String, + default: 'top left' + }, + transition: { + type: [Boolean, String], + default: 'v-menu-transition' + } + }, + data: function data() { + return { + calculatedTopAuto: 0, + defaultOffset: 8, + hasJustFocused: false, + listIndex: -1, + resizeTimeout: 0, + selectedIndex: null, + tiles: [] + }; + }, + computed: { + activeTile: function activeTile() { + return this.tiles[this.listIndex]; + }, + calculatedLeft: function calculatedLeft() { + var menuWidth = Math.max(this.dimensions.content.width, parseFloat(this.calculatedMinWidth)); + if (!this.auto) return this.calcLeft(menuWidth) || '0'; + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_15__["convertToUnit"])(this.calcXOverflow(this.calcLeftAuto(), menuWidth)) || '0'; + }, + calculatedMaxHeight: function calculatedMaxHeight() { + var height = this.auto ? '200px' : Object(_util_helpers__WEBPACK_IMPORTED_MODULE_15__["convertToUnit"])(this.maxHeight); + return height || '0'; + }, + calculatedMaxWidth: function calculatedMaxWidth() { + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_15__["convertToUnit"])(this.maxWidth) || '0'; + }, + calculatedMinWidth: function calculatedMinWidth() { + if (this.minWidth) { + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_15__["convertToUnit"])(this.minWidth) || '0'; + } + + var minWidth = Math.min(this.dimensions.activator.width + Number(this.nudgeWidth) + (this.auto ? 16 : 0), Math.max(this.pageWidth - 24, 0)); + var calculatedMaxWidth = isNaN(parseInt(this.calculatedMaxWidth)) ? minWidth : parseInt(this.calculatedMaxWidth); + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_15__["convertToUnit"])(Math.min(calculatedMaxWidth, minWidth)) || '0'; + }, + calculatedTop: function calculatedTop() { + var top = !this.auto ? this.calcTop() : Object(_util_helpers__WEBPACK_IMPORTED_MODULE_15__["convertToUnit"])(this.calcYOverflow(this.calculatedTopAuto)); + return top || '0'; + }, + hasClickableTiles: function hasClickableTiles() { + return Boolean(this.tiles.find(function (tile) { + return tile.tabIndex > -1; + })); + }, + styles: function styles() { + return { + maxHeight: this.calculatedMaxHeight, + minWidth: this.calculatedMinWidth, + maxWidth: this.calculatedMaxWidth, + top: this.calculatedTop, + left: this.calculatedLeft, + transformOrigin: this.origin, + zIndex: this.zIndex || this.activeZIndex + }; + } + }, + watch: { + isActive: function isActive(val) { + if (!val) this.listIndex = -1; + }, + isContentActive: function isContentActive(val) { + this.hasJustFocused = val; + }, + listIndex: function listIndex(next, prev) { + if (next in this.tiles) { + var tile = this.tiles[next]; + tile.classList.add('v-list-item--highlighted'); + this.$refs.content.scrollTop = tile.offsetTop - tile.clientHeight; + } + + prev in this.tiles && this.tiles[prev].classList.remove('v-list-item--highlighted'); + } + }, + created: function created() { + /* istanbul ignore next */ + if (this.$attrs.hasOwnProperty('full-width')) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_14__["removed"])('full-width', this); + } + }, + mounted: function mounted() { + this.isActive && this.callActivate(); + }, + methods: { + activate: function activate() { + var _this = this; // Update coordinates and dimensions of menu + // and its activator + + + this.updateDimensions(); // Start the transition + + requestAnimationFrame(function () { + // Once transitioning, calculate scroll and top position + _this.startTransition().then(function () { + if (_this.$refs.content) { + _this.calculatedTopAuto = _this.calcTopAuto(); + _this.auto && (_this.$refs.content.scrollTop = _this.calcScrollPosition()); + } + }); + }); + }, + calcScrollPosition: function calcScrollPosition() { + var $el = this.$refs.content; + var activeTile = $el.querySelector('.v-list-item--active'); + var maxScrollTop = $el.scrollHeight - $el.offsetHeight; + return activeTile ? Math.min(maxScrollTop, Math.max(0, activeTile.offsetTop - $el.offsetHeight / 2 + activeTile.offsetHeight / 2)) : $el.scrollTop; + }, + calcLeftAuto: function calcLeftAuto() { + return parseInt(this.dimensions.activator.left - this.defaultOffset * 2); + }, + calcTopAuto: function calcTopAuto() { + var $el = this.$refs.content; + var activeTile = $el.querySelector('.v-list-item--active'); + + if (!activeTile) { + this.selectedIndex = null; + } + + if (this.offsetY || !activeTile) { + return this.computedTop; + } + + this.selectedIndex = Array.from(this.tiles).indexOf(activeTile); + var tileDistanceFromMenuTop = activeTile.offsetTop - this.calcScrollPosition(); + var firstTileOffsetTop = $el.querySelector('.v-list-item').offsetTop; + return this.computedTop - tileDistanceFromMenuTop - firstTileOffsetTop - 1; + }, + changeListIndex: function changeListIndex(e) { + // For infinite scroll and autocomplete, re-evaluate children + this.getTiles(); + + if (!this.isActive || !this.hasClickableTiles) { + return; + } else if (e.keyCode === _util_helpers__WEBPACK_IMPORTED_MODULE_15__["keyCodes"].tab) { + this.isActive = false; + return; + } else if (e.keyCode === _util_helpers__WEBPACK_IMPORTED_MODULE_15__["keyCodes"].down) { + this.nextTile(); + } else if (e.keyCode === _util_helpers__WEBPACK_IMPORTED_MODULE_15__["keyCodes"].up) { + this.prevTile(); + } else if (e.keyCode === _util_helpers__WEBPACK_IMPORTED_MODULE_15__["keyCodes"].enter && this.listIndex !== -1) { + this.tiles[this.listIndex].click(); + } else { + return; + } // One of the conditions was met, prevent default action (#2988) + + + e.preventDefault(); + }, + closeConditional: function closeConditional(e) { + var target = e.target; + return this.isActive && !this._isDestroyed && this.closeOnClick && !this.$refs.content.contains(target); + }, + genActivatorAttributes: function genActivatorAttributes() { + var attributes = _mixins_activatable__WEBPACK_IMPORTED_MODULE_2__["default"].options.methods.genActivatorAttributes.call(this); + + if (this.activeTile && this.activeTile.id) { + return __assign(__assign({}, attributes), { + 'aria-activedescendant': this.activeTile.id + }); + } + + return attributes; + }, + genActivatorListeners: function genActivatorListeners() { + var listeners = _mixins_menuable__WEBPACK_IMPORTED_MODULE_6__["default"].options.methods.genActivatorListeners.call(this); + + if (!this.disableKeys) { + listeners.keydown = this.onKeyDown; + } + + return listeners; + }, + genTransition: function genTransition() { + var content = this.genContent(); + if (!this.transition) return content; + return this.$createElement('transition', { + props: { + name: this.transition + } + }, [content]); + }, + genDirectives: function genDirectives() { + var _this = this; + + var directives = [{ + name: 'show', + value: this.isContentActive + }]; // Do not add click outside for hover menu + + if (!this.openOnHover && this.closeOnClick) { + directives.push({ + name: 'click-outside', + value: { + handler: function handler() { + _this.isActive = false; + }, + closeConditional: this.closeConditional, + include: function include() { + return __spread([_this.$el], _this.getOpenDependentElements()); + } + } + }); + } + + return directives; + }, + genContent: function genContent() { + var _a; + + var _this = this; + + var options = { + attrs: __assign(__assign({}, this.getScopeIdAttrs()), { + role: 'role' in this.$attrs ? this.$attrs.role : 'menu' + }), + staticClass: 'v-menu__content', + class: __assign(__assign(__assign({}, this.rootThemeClasses), this.roundedClasses), (_a = { + 'v-menu__content--auto': this.auto, + 'v-menu__content--fixed': this.activatorFixed, + menuable__content__active: this.isActive + }, _a[this.contentClass.trim()] = true, _a)), + style: this.styles, + directives: this.genDirectives(), + ref: 'content', + on: { + click: function click(e) { + var target = e.target; + if (target.getAttribute('disabled')) return; + if (_this.closeOnContentClick) _this.isActive = false; + }, + keydown: this.onKeyDown + } + }; + + if (this.$listeners.scroll) { + options.on = options.on || {}; + options.on.scroll = this.$listeners.scroll; + } + + if (!this.disabled && this.openOnHover) { + options.on = options.on || {}; + options.on.mouseenter = this.mouseEnterHandler; + } + + if (this.openOnHover) { + options.on = options.on || {}; + options.on.mouseleave = this.mouseLeaveHandler; + } + + return this.$createElement('div', options, this.getContentSlot()); + }, + getTiles: function getTiles() { + if (!this.$refs.content) return; + this.tiles = Array.from(this.$refs.content.querySelectorAll('.v-list-item')); + }, + mouseEnterHandler: function mouseEnterHandler() { + var _this = this; + + this.runDelay('open', function () { + if (_this.hasJustFocused) return; + _this.hasJustFocused = true; + }); + }, + mouseLeaveHandler: function mouseLeaveHandler(e) { + var _this = this; // Prevent accidental re-activation + + + this.runDelay('close', function () { + if (_this.$refs.content.contains(e.relatedTarget)) return; + requestAnimationFrame(function () { + _this.isActive = false; + + _this.callDeactivate(); + }); + }); + }, + nextTile: function nextTile() { + var tile = this.tiles[this.listIndex + 1]; + + if (!tile) { + if (!this.tiles.length) return; + this.listIndex = -1; + this.nextTile(); + return; + } + + this.listIndex++; + if (tile.tabIndex === -1) this.nextTile(); + }, + prevTile: function prevTile() { + var tile = this.tiles[this.listIndex - 1]; + + if (!tile) { + if (!this.tiles.length) return; + this.listIndex = this.tiles.length; + this.prevTile(); + return; + } + + this.listIndex--; + if (tile.tabIndex === -1) this.prevTile(); + }, + onKeyDown: function onKeyDown(e) { + var _this = this; + + if (e.keyCode === _util_helpers__WEBPACK_IMPORTED_MODULE_15__["keyCodes"].esc) { + // Wait for dependent elements to close first + setTimeout(function () { + _this.isActive = false; + }); + var activator_1 = this.getActivator(); + this.$nextTick(function () { + return activator_1 && activator_1.focus(); + }); + } else if (!this.isActive && [_util_helpers__WEBPACK_IMPORTED_MODULE_15__["keyCodes"].up, _util_helpers__WEBPACK_IMPORTED_MODULE_15__["keyCodes"].down].includes(e.keyCode)) { + this.isActive = true; + } // Allow for isActive watcher to generate tile list + + + this.$nextTick(function () { + return _this.changeListIndex(e); + }); + }, + onResize: function onResize() { + if (!this.isActive) return; // Account for screen resize + // and orientation change + // eslint-disable-next-line no-unused-expressions + + this.$refs.content.offsetWidth; + this.updateDimensions(); // When resizing to a smaller width + // content width is evaluated before + // the new activator width has been + // set, causing it to not size properly + // hacky but will revisit in the future + + clearTimeout(this.resizeTimeout); + this.resizeTimeout = window.setTimeout(this.updateDimensions, 100); + } + }, + render: function render(h) { + var _this = this; + + var data = { + staticClass: 'v-menu', + class: { + 'v-menu--attached': this.attach === '' || this.attach === true || this.attach === 'attach' + }, + directives: [{ + arg: '500', + name: 'resize', + value: this.onResize + }] + }; + return h('div', data, [!this.activator && this.genActivator(), this.showLazyContent(function () { + return [_this.$createElement(_VThemeProvider__WEBPACK_IMPORTED_MODULE_1__["VThemeProvider"], { + props: { + root: true, + light: _this.light, + dark: _this.dark + } + }, [_this.genTransition()])]; + })]); + } +})); + +/***/ }), + +/***/ "./src/components/VMenu/index.ts": +/*!***************************************!*\ + !*** ./src/components/VMenu/index.ts ***! + \***************************************/ +/*! exports provided: VMenu, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VMenu__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VMenu */ "./src/components/VMenu/VMenu.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VMenu", function() { return _VMenu__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VMenu__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VMessages/VMessages.sass": +/*!*************************************************!*\ + !*** ./src/components/VMessages/VMessages.sass ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VMessages/VMessages.ts": +/*!***********************************************!*\ + !*** ./src/components/VMessages/VMessages.ts ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VMessages_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VMessages.sass */ "./src/components/VMessages/VMessages.sass"); +/* harmony import */ var _VMessages_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VMessages_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +// Styles + // Mixins + + + + // Utilities + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_3__["default"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_1__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_2__["default"]).extend({ + name: 'v-messages', + props: { + value: { + type: Array, + default: function _default() { + return []; + } + } + }, + methods: { + genChildren: function genChildren() { + return this.$createElement('transition-group', { + staticClass: 'v-messages__wrapper', + attrs: { + name: 'message-transition', + tag: 'div' + } + }, this.value.map(this.genMessage)); + }, + genMessage: function genMessage(message, key) { + return this.$createElement('div', { + staticClass: 'v-messages__message', + key: key + }, Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getSlot"])(this, 'default', { + message: message, + key: key + }) || [message]); + } + }, + render: function render(h) { + return h('div', this.setTextColor(this.color, { + staticClass: 'v-messages', + class: this.themeClasses + }), [this.genChildren()]); + } +})); + +/***/ }), + +/***/ "./src/components/VMessages/index.ts": +/*!*******************************************!*\ + !*** ./src/components/VMessages/index.ts ***! + \*******************************************/ +/*! exports provided: VMessages, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VMessages__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VMessages */ "./src/components/VMessages/VMessages.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VMessages", function() { return _VMessages__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VMessages__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VNavigationDrawer/VNavigationDrawer.sass": +/*!*****************************************************************!*\ + !*** ./src/components/VNavigationDrawer/VNavigationDrawer.sass ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VNavigationDrawer/VNavigationDrawer.ts": +/*!***************************************************************!*\ + !*** ./src/components/VNavigationDrawer/VNavigationDrawer.ts ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VNavigationDrawer_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VNavigationDrawer.sass */ "./src/components/VNavigationDrawer/VNavigationDrawer.sass"); +/* harmony import */ var _VNavigationDrawer_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VNavigationDrawer_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VImg_VImg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VImg/VImg */ "./src/components/VImg/VImg.ts"); +/* harmony import */ var _mixins_applicationable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/applicationable */ "./src/mixins/applicationable/index.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_dependent__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/dependent */ "./src/mixins/dependent/index.ts"); +/* harmony import */ var _mixins_mobile__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/mobile */ "./src/mixins/mobile/index.ts"); +/* harmony import */ var _mixins_overlayable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../mixins/overlayable */ "./src/mixins/overlayable/index.ts"); +/* harmony import */ var _mixins_ssr_bootable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../mixins/ssr-bootable */ "./src/mixins/ssr-bootable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _directives_click_outside__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../directives/click-outside */ "./src/directives/click-outside/index.ts"); +/* harmony import */ var _directives_resize__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../directives/resize */ "./src/directives/resize/index.ts"); +/* harmony import */ var _directives_touch__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../directives/touch */ "./src/directives/touch/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Components + + // Mixins + + + + + + + + // Directives + + + + // Utilities + + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_13__["default"])(Object(_mixins_applicationable__WEBPACK_IMPORTED_MODULE_2__["default"])('left', ['isActive', 'isMobile', 'miniVariant', 'expandOnHover', 'permanent', 'right', 'temporary', 'width']), _mixins_colorable__WEBPACK_IMPORTED_MODULE_3__["default"], _mixins_dependent__WEBPACK_IMPORTED_MODULE_4__["default"], _mixins_mobile__WEBPACK_IMPORTED_MODULE_5__["default"], _mixins_overlayable__WEBPACK_IMPORTED_MODULE_6__["default"], _mixins_ssr_bootable__WEBPACK_IMPORTED_MODULE_7__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_8__["default"]); +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend({ + name: 'v-navigation-drawer', + directives: { + ClickOutside: _directives_click_outside__WEBPACK_IMPORTED_MODULE_9__["default"], + Resize: _directives_resize__WEBPACK_IMPORTED_MODULE_10__["default"], + Touch: _directives_touch__WEBPACK_IMPORTED_MODULE_11__["default"] + }, + provide: function provide() { + return { + isInNav: this.tag === 'nav' + }; + }, + props: { + bottom: Boolean, + clipped: Boolean, + disableResizeWatcher: Boolean, + disableRouteWatcher: Boolean, + expandOnHover: Boolean, + floating: Boolean, + height: { + type: [Number, String], + default: function _default() { + return this.app ? '100vh' : '100%'; + } + }, + miniVariant: Boolean, + miniVariantWidth: { + type: [Number, String], + default: 56 + }, + permanent: Boolean, + right: Boolean, + src: { + type: [String, Object], + default: '' + }, + stateless: Boolean, + tag: { + type: String, + default: function _default() { + return this.app ? 'nav' : 'aside'; + } + }, + temporary: Boolean, + touchless: Boolean, + width: { + type: [Number, String], + default: 256 + }, + value: null + }, + data: function data() { + return { + isMouseover: false, + touchArea: { + left: 0, + right: 0 + }, + stackMinZIndex: 6 + }; + }, + computed: { + /** + * Used for setting an app value from a dynamic + * property. Called from applicationable.js + */ + applicationProperty: function applicationProperty() { + return this.right ? 'right' : 'left'; + }, + classes: function classes() { + return __assign({ + 'v-navigation-drawer': true, + 'v-navigation-drawer--absolute': this.absolute, + 'v-navigation-drawer--bottom': this.bottom, + 'v-navigation-drawer--clipped': this.clipped, + 'v-navigation-drawer--close': !this.isActive, + 'v-navigation-drawer--fixed': !this.absolute && (this.app || this.fixed), + 'v-navigation-drawer--floating': this.floating, + 'v-navigation-drawer--is-mobile': this.isMobile, + 'v-navigation-drawer--is-mouseover': this.isMouseover, + 'v-navigation-drawer--mini-variant': this.isMiniVariant, + 'v-navigation-drawer--custom-mini-variant': Number(this.miniVariantWidth) !== 56, + 'v-navigation-drawer--open': this.isActive, + 'v-navigation-drawer--open-on-hover': this.expandOnHover, + 'v-navigation-drawer--right': this.right, + 'v-navigation-drawer--temporary': this.temporary + }, this.themeClasses); + }, + computedMaxHeight: function computedMaxHeight() { + if (!this.hasApp) return null; + var computedMaxHeight = this.$vuetify.application.bottom + this.$vuetify.application.footer + this.$vuetify.application.bar; + if (!this.clipped) return computedMaxHeight; + return computedMaxHeight + this.$vuetify.application.top; + }, + computedTop: function computedTop() { + if (!this.hasApp) return 0; + var computedTop = this.$vuetify.application.bar; + computedTop += this.clipped ? this.$vuetify.application.top : 0; + return computedTop; + }, + computedTransform: function computedTransform() { + if (this.isActive) return 0; + if (this.isBottom) return 100; + return this.right ? 100 : -100; + }, + computedWidth: function computedWidth() { + return this.isMiniVariant ? this.miniVariantWidth : this.width; + }, + hasApp: function hasApp() { + return this.app && !this.isMobile && !this.temporary; + }, + isBottom: function isBottom() { + return this.bottom && this.isMobile; + }, + isMiniVariant: function isMiniVariant() { + return !this.expandOnHover && this.miniVariant || this.expandOnHover && !this.isMouseover; + }, + isMobile: function isMobile() { + return !this.stateless && !this.permanent && _mixins_mobile__WEBPACK_IMPORTED_MODULE_5__["default"].options.computed.isMobile.call(this); + }, + reactsToClick: function reactsToClick() { + return !this.stateless && !this.permanent && (this.isMobile || this.temporary); + }, + reactsToMobile: function reactsToMobile() { + return this.app && !this.disableResizeWatcher && !this.permanent && !this.stateless && !this.temporary; + }, + reactsToResize: function reactsToResize() { + return !this.disableResizeWatcher && !this.stateless; + }, + reactsToRoute: function reactsToRoute() { + return !this.disableRouteWatcher && !this.stateless && (this.temporary || this.isMobile); + }, + showOverlay: function showOverlay() { + return !this.hideOverlay && this.isActive && (this.isMobile || this.temporary); + }, + styles: function styles() { + var translate = this.isBottom ? 'translateY' : 'translateX'; + return { + height: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_12__["convertToUnit"])(this.height), + top: !this.isBottom ? Object(_util_helpers__WEBPACK_IMPORTED_MODULE_12__["convertToUnit"])(this.computedTop) : 'auto', + maxHeight: this.computedMaxHeight != null ? "calc(100% - " + Object(_util_helpers__WEBPACK_IMPORTED_MODULE_12__["convertToUnit"])(this.computedMaxHeight) + ")" : undefined, + transform: translate + "(" + Object(_util_helpers__WEBPACK_IMPORTED_MODULE_12__["convertToUnit"])(this.computedTransform, '%') + ")", + width: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_12__["convertToUnit"])(this.computedWidth) + }; + } + }, + watch: { + $route: 'onRouteChange', + isActive: function isActive(val) { + this.$emit('input', val); + }, + + /** + * When mobile changes, adjust the active state + * only when there has been a previous value + */ + isMobile: function isMobile(val, prev) { + !val && this.isActive && !this.temporary && this.removeOverlay(); + if (prev == null || !this.reactsToResize || !this.reactsToMobile) return; + this.isActive = !val; + }, + permanent: function permanent(val) { + // If enabling prop enable the drawer + if (val) this.isActive = true; + }, + showOverlay: function showOverlay(val) { + if (val) this.genOverlay();else this.removeOverlay(); + }, + value: function value(val) { + if (this.permanent) return; + + if (val == null) { + this.init(); + return; + } + + if (val !== this.isActive) this.isActive = val; + }, + expandOnHover: 'updateMiniVariant', + isMouseover: function isMouseover(val) { + this.updateMiniVariant(!val); + } + }, + beforeMount: function beforeMount() { + this.init(); + }, + methods: { + calculateTouchArea: function calculateTouchArea() { + var parent = this.$el.parentNode; + if (!parent) return; + var parentRect = parent.getBoundingClientRect(); + this.touchArea = { + left: parentRect.left + 50, + right: parentRect.right - 50 + }; + }, + closeConditional: function closeConditional() { + return this.isActive && !this._isDestroyed && this.reactsToClick; + }, + genAppend: function genAppend() { + return this.genPosition('append'); + }, + genBackground: function genBackground() { + var props = { + height: '100%', + width: '100%', + src: this.src + }; + var image = this.$scopedSlots.img ? this.$scopedSlots.img(props) : this.$createElement(_VImg_VImg__WEBPACK_IMPORTED_MODULE_1__["default"], { + props: props + }); + return this.$createElement('div', { + staticClass: 'v-navigation-drawer__image' + }, [image]); + }, + genDirectives: function genDirectives() { + var _this = this; + + var directives = [{ + name: 'click-outside', + value: { + handler: function handler() { + _this.isActive = false; + }, + closeConditional: this.closeConditional, + include: this.getOpenDependentElements + } + }]; + + if (!this.touchless && !this.stateless) { + directives.push({ + name: 'touch', + value: { + parent: true, + left: this.swipeLeft, + right: this.swipeRight + } + }); + } + + return directives; + }, + genListeners: function genListeners() { + var _this = this; + + var on = { + transitionend: function transitionend(e) { + if (e.target !== e.currentTarget) return; + + _this.$emit('transitionend', e); // IE11 does not support new Event('resize') + + + var resizeEvent = document.createEvent('UIEvents'); + resizeEvent.initUIEvent('resize', true, false, window, 0); + window.dispatchEvent(resizeEvent); + } + }; + + if (this.miniVariant) { + on.click = function () { + return _this.$emit('update:mini-variant', false); + }; + } + + if (this.expandOnHover) { + on.mouseenter = function () { + return _this.isMouseover = true; + }; + + on.mouseleave = function () { + return _this.isMouseover = false; + }; + } + + return on; + }, + genPosition: function genPosition(name) { + var slot = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_12__["getSlot"])(this, name); + if (!slot) return slot; + return this.$createElement('div', { + staticClass: "v-navigation-drawer__" + name + }, slot); + }, + genPrepend: function genPrepend() { + return this.genPosition('prepend'); + }, + genContent: function genContent() { + return this.$createElement('div', { + staticClass: 'v-navigation-drawer__content' + }, this.$slots.default); + }, + genBorder: function genBorder() { + return this.$createElement('div', { + staticClass: 'v-navigation-drawer__border' + }); + }, + init: function init() { + if (this.permanent) { + this.isActive = true; + } else if (this.stateless || this.value != null) { + this.isActive = this.value; + } else if (!this.temporary) { + this.isActive = !this.isMobile; + } + }, + onRouteChange: function onRouteChange() { + if (this.reactsToRoute && this.closeConditional()) { + this.isActive = false; + } + }, + swipeLeft: function swipeLeft(e) { + if (this.isActive && this.right) return; + this.calculateTouchArea(); + if (Math.abs(e.touchendX - e.touchstartX) < 100) return; + if (this.right && e.touchstartX >= this.touchArea.right) this.isActive = true;else if (!this.right && this.isActive) this.isActive = false; + }, + swipeRight: function swipeRight(e) { + if (this.isActive && !this.right) return; + this.calculateTouchArea(); + if (Math.abs(e.touchendX - e.touchstartX) < 100) return; + if (!this.right && e.touchstartX <= this.touchArea.left) this.isActive = true;else if (this.right && this.isActive) this.isActive = false; + }, + + /** + * Update the application layout + */ + updateApplication: function updateApplication() { + if (!this.isActive || this.isMobile || this.temporary || !this.$el) return 0; + var width = Number(this.computedWidth); + return isNaN(width) ? this.$el.clientWidth : width; + }, + updateMiniVariant: function updateMiniVariant(val) { + if (this.miniVariant !== val) this.$emit('update:mini-variant', val); + } + }, + render: function render(h) { + var children = [this.genPrepend(), this.genContent(), this.genAppend(), this.genBorder()]; + if (this.src || Object(_util_helpers__WEBPACK_IMPORTED_MODULE_12__["getSlot"])(this, 'img')) children.unshift(this.genBackground()); + return h(this.tag, this.setBackgroundColor(this.color, { + class: this.classes, + style: this.styles, + directives: this.genDirectives(), + on: this.genListeners() + }), children); + } +})); + +/***/ }), + +/***/ "./src/components/VNavigationDrawer/index.ts": +/*!***************************************************!*\ + !*** ./src/components/VNavigationDrawer/index.ts ***! + \***************************************************/ +/*! exports provided: VNavigationDrawer, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VNavigationDrawer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VNavigationDrawer */ "./src/components/VNavigationDrawer/VNavigationDrawer.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VNavigationDrawer", function() { return _VNavigationDrawer__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VNavigationDrawer__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VOverflowBtn/VOverflowBtn.sass": +/*!*******************************************************!*\ + !*** ./src/components/VOverflowBtn/VOverflowBtn.sass ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VOverflowBtn/VOverflowBtn.ts": +/*!*****************************************************!*\ + !*** ./src/components/VOverflowBtn/VOverflowBtn.ts ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VOverflowBtn_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VOverflowBtn.sass */ "./src/components/VOverflowBtn/VOverflowBtn.sass"); +/* harmony import */ var _VOverflowBtn_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VOverflowBtn_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VSelect/VSelect */ "./src/components/VSelect/VSelect.ts"); +/* harmony import */ var _VAutocomplete__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../VAutocomplete */ "./src/components/VAutocomplete/index.ts"); +/* harmony import */ var _VTextField_VTextField__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../VTextField/VTextField */ "./src/components/VTextField/VTextField.ts"); +/* harmony import */ var _VBtn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../VBtn */ "./src/components/VBtn/index.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Extensions + + + + // Components + + // Utilities + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (_VAutocomplete__WEBPACK_IMPORTED_MODULE_2__["default"].extend({ + name: 'v-overflow-btn', + props: { + editable: Boolean, + segmented: Boolean + }, + computed: { + classes: function classes() { + return __assign(__assign({}, _VAutocomplete__WEBPACK_IMPORTED_MODULE_2__["default"].options.computed.classes.call(this)), { + 'v-overflow-btn': true, + 'v-overflow-btn--segmented': this.segmented, + 'v-overflow-btn--editable': this.editable + }); + }, + isAnyValueAllowed: function isAnyValueAllowed() { + return this.editable || _VAutocomplete__WEBPACK_IMPORTED_MODULE_2__["default"].options.computed.isAnyValueAllowed.call(this); + }, + isSingle: function isSingle() { + return true; + }, + computedItems: function computedItems() { + return this.segmented ? this.allItems : this.filteredItems; + } + }, + methods: { + genSelections: function genSelections() { + return this.editable ? _VAutocomplete__WEBPACK_IMPORTED_MODULE_2__["default"].options.methods.genSelections.call(this) : _VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.genSelections.call(this); // Override v-autocomplete's override + }, + genCommaSelection: function genCommaSelection(item, index, last) { + return this.segmented ? this.genSegmentedBtn(item) : _VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.genCommaSelection.call(this, item, index, last); + }, + genInput: function genInput() { + var input = _VTextField_VTextField__WEBPACK_IMPORTED_MODULE_3__["default"].options.methods.genInput.call(this); + input.data = input.data || {}; + input.data.domProps.value = this.editable ? this.internalSearch : ''; + input.data.attrs.readonly = !this.isAnyValueAllowed; + return input; + }, + genLabel: function genLabel() { + if (this.editable && this.isFocused) return null; + var label = _VTextField_VTextField__WEBPACK_IMPORTED_MODULE_3__["default"].options.methods.genLabel.call(this); + if (!label) return label; + label.data = label.data || {}; // Reset previously set styles from parent + + label.data.style = {}; + return label; + }, + genSegmentedBtn: function genSegmentedBtn(item) { + var _this = this; + + var itemValue = this.getValue(item); + var itemObj = this.computedItems.find(function (i) { + return _this.getValue(i) === itemValue; + }) || item; + + if (!itemObj.text || !itemObj.callback) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_5__["consoleWarn"])('When using "segmented" prop without a selection slot, items must contain both a text and callback property', this); + return null; + } + + return this.$createElement(_VBtn__WEBPACK_IMPORTED_MODULE_4__["default"], { + props: { + text: true + }, + on: { + click: function click(e) { + e.stopPropagation(); + itemObj.callback(e); + } + } + }, [itemObj.text]); + }, + updateValue: function updateValue(val) { + if (val) { + this.initialValue = this.lazyValue; + } else if (this.initialValue !== this.lazyValue) { + this.$emit('change', this.lazyValue); + } + } + } +})); + +/***/ }), + +/***/ "./src/components/VOverflowBtn/index.ts": +/*!**********************************************!*\ + !*** ./src/components/VOverflowBtn/index.ts ***! + \**********************************************/ +/*! exports provided: VOverflowBtn, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VOverflowBtn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VOverflowBtn */ "./src/components/VOverflowBtn/VOverflowBtn.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VOverflowBtn", function() { return _VOverflowBtn__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VOverflowBtn__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VOverlay/VOverlay.sass": +/*!***********************************************!*\ + !*** ./src/components/VOverlay/VOverlay.sass ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VOverlay/VOverlay.ts": +/*!*********************************************!*\ + !*** ./src/components/VOverlay/VOverlay.ts ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VOverlay_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VOverlay.sass */ "./src/components/VOverlay/VOverlay.sass"); +/* harmony import */ var _VOverlay_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VOverlay_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _mixins_toggleable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./../../mixins/toggleable */ "./src/mixins/toggleable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Mixins + + + + // Utilities + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_4__["default"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_1__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_2__["default"], _mixins_toggleable__WEBPACK_IMPORTED_MODULE_3__["default"]).extend({ + name: 'v-overlay', + props: { + absolute: Boolean, + color: { + type: String, + default: '#212121' + }, + dark: { + type: Boolean, + default: true + }, + opacity: { + type: [Number, String], + default: 0.46 + }, + value: { + default: true + }, + zIndex: { + type: [Number, String], + default: 5 + } + }, + computed: { + __scrim: function __scrim() { + var data = this.setBackgroundColor(this.color, { + staticClass: 'v-overlay__scrim', + style: { + opacity: this.computedOpacity + } + }); + return this.$createElement('div', data); + }, + classes: function classes() { + return __assign({ + 'v-overlay--absolute': this.absolute, + 'v-overlay--active': this.isActive + }, this.themeClasses); + }, + computedOpacity: function computedOpacity() { + return Number(this.isActive ? this.opacity : 0); + }, + styles: function styles() { + return { + zIndex: this.zIndex + }; + } + }, + methods: { + genContent: function genContent() { + return this.$createElement('div', { + staticClass: 'v-overlay__content' + }, this.$slots.default); + } + }, + render: function render(h) { + var children = [this.__scrim]; + if (this.isActive) children.push(this.genContent()); + return h('div', { + staticClass: 'v-overlay', + class: this.classes, + style: this.styles + }, children); + } +})); + +/***/ }), + +/***/ "./src/components/VOverlay/index.ts": +/*!******************************************!*\ + !*** ./src/components/VOverlay/index.ts ***! + \******************************************/ +/*! exports provided: VOverlay, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VOverlay__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VOverlay */ "./src/components/VOverlay/VOverlay.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VOverlay", function() { return _VOverlay__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VOverlay__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VPagination/VPagination.sass": +/*!*****************************************************!*\ + !*** ./src/components/VPagination/VPagination.sass ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VPagination/VPagination.ts": +/*!***************************************************!*\ + !*** ./src/components/VPagination/VPagination.ts ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VPagination_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VPagination.sass */ "./src/components/VPagination/VPagination.sass"); +/* harmony import */ var _VPagination_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VPagination_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VIcon */ "./src/components/VIcon/index.ts"); +/* harmony import */ var _directives_resize__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../directives/resize */ "./src/directives/resize/index.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_intersectable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/intersectable */ "./src/mixins/intersectable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + +var __spread = undefined && undefined.__spread || function () { + for (var ar = [], i = 0; i < arguments.length; i++) { + ar = ar.concat(__read(arguments[i])); + } + + return ar; +}; + + + // Directives + + // Mixins + + + + // Utilities + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_6__["default"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_3__["default"], Object(_mixins_intersectable__WEBPACK_IMPORTED_MODULE_4__["default"])({ + onVisible: ['init'] +}), _mixins_themeable__WEBPACK_IMPORTED_MODULE_5__["default"]).extend({ + name: 'v-pagination', + directives: { + Resize: _directives_resize__WEBPACK_IMPORTED_MODULE_2__["default"] + }, + props: { + circle: Boolean, + disabled: Boolean, + length: { + type: Number, + default: 0, + validator: function validator(val) { + return val % 1 === 0; + } + }, + nextIcon: { + type: String, + default: '$next' + }, + prevIcon: { + type: String, + default: '$prev' + }, + totalVisible: [Number, String], + value: { + type: Number, + default: 0 + }, + pageAriaLabel: { + type: String, + default: '$vuetify.pagination.ariaLabel.page' + }, + currentPageAriaLabel: { + type: String, + default: '$vuetify.pagination.ariaLabel.currentPage' + }, + previousAriaLabel: { + type: String, + default: '$vuetify.pagination.ariaLabel.previous' + }, + nextAriaLabel: { + type: String, + default: '$vuetify.pagination.ariaLabel.next' + }, + wrapperAriaLabel: { + type: String, + default: '$vuetify.pagination.ariaLabel.wrapper' + } + }, + data: function data() { + return { + maxButtons: 0, + selected: null + }; + }, + computed: { + classes: function classes() { + return __assign({ + 'v-pagination': true, + 'v-pagination--circle': this.circle, + 'v-pagination--disabled': this.disabled + }, this.themeClasses); + }, + items: function items() { + var totalVisible = parseInt(this.totalVisible, 10); + + if (totalVisible === 0) { + return []; + } + + var maxLength = Math.min(Math.max(0, totalVisible) || this.length, Math.max(0, this.maxButtons) || this.length, this.length); + + if (this.length <= maxLength) { + return this.range(1, this.length); + } + + var even = maxLength % 2 === 0 ? 1 : 0; + var left = Math.floor(maxLength / 2); + var right = this.length - left + 1 + even; + + if (this.value > left && this.value < right) { + var start = this.value - left + 2; + var end = this.value + left - 2 - even; + return __spread([1, '...'], this.range(start, end), ['...', this.length]); + } else if (this.value === left) { + var end = this.value + left - 1 - even; + return __spread(this.range(1, end), ['...', this.length]); + } else if (this.value === right) { + var start = this.value - left + 1; + return __spread([1, '...'], this.range(start, this.length)); + } else { + return __spread(this.range(1, left), ['...'], this.range(right, this.length)); + } + } + }, + watch: { + value: function value() { + this.init(); + } + }, + mounted: function mounted() { + this.init(); + }, + methods: { + init: function init() { + var _this = this; + + this.selected = null; + this.$nextTick(this.onResize); // TODO: Change this (f75dee3a, cbdf7caa) + + setTimeout(function () { + return _this.selected = _this.value; + }, 100); + }, + onResize: function onResize() { + var width = this.$el && this.$el.parentElement ? this.$el.parentElement.clientWidth : window.innerWidth; + this.maxButtons = Math.floor((width - 96) / 42); + }, + next: function next(e) { + e.preventDefault(); + this.$emit('input', this.value + 1); + this.$emit('next'); + }, + previous: function previous(e) { + e.preventDefault(); + this.$emit('input', this.value - 1); + this.$emit('previous'); + }, + range: function range(from, to) { + var range = []; + from = from > 0 ? from : 1; + + for (var i = from; i <= to; i++) { + range.push(i); + } + + return range; + }, + genIcon: function genIcon(h, icon, disabled, fn, label) { + return h('li', [h('button', { + staticClass: 'v-pagination__navigation', + class: { + 'v-pagination__navigation--disabled': disabled + }, + attrs: { + type: 'button', + 'aria-label': label + }, + on: disabled ? {} : { + click: fn + } + }, [h(_VIcon__WEBPACK_IMPORTED_MODULE_1__["default"], [icon])])]); + }, + genItem: function genItem(h, i) { + var _this = this; + + var color = i === this.value && (this.color || 'primary'); + var isCurrentPage = i === this.value; + var ariaLabel = isCurrentPage ? this.currentPageAriaLabel : this.pageAriaLabel; + return h('button', this.setBackgroundColor(color, { + staticClass: 'v-pagination__item', + class: { + 'v-pagination__item--active': i === this.value + }, + attrs: { + type: 'button', + 'aria-current': isCurrentPage, + 'aria-label': this.$vuetify.lang.t(ariaLabel, i) + }, + on: { + click: function click() { + return _this.$emit('input', i); + } + } + }), [i.toString()]); + }, + genItems: function genItems(h) { + var _this = this; + + return this.items.map(function (i, index) { + return h('li', { + key: index + }, [isNaN(Number(i)) ? h('span', { + class: 'v-pagination__more' + }, [i.toString()]) : _this.genItem(h, i)]); + }); + }, + genList: function genList(h, children) { + return h('ul', { + directives: [{ + modifiers: { + quiet: true + }, + name: 'resize', + value: this.onResize + }], + class: this.classes + }, children); + } + }, + render: function render(h) { + var children = [this.genIcon(h, this.$vuetify.rtl ? this.nextIcon : this.prevIcon, this.value <= 1, this.previous, this.$vuetify.lang.t(this.previousAriaLabel)), this.genItems(h), this.genIcon(h, this.$vuetify.rtl ? this.prevIcon : this.nextIcon, this.value >= this.length, this.next, this.$vuetify.lang.t(this.nextAriaLabel))]; + return h('nav', { + attrs: { + role: 'navigation', + 'aria-label': this.$vuetify.lang.t(this.wrapperAriaLabel) + } + }, [this.genList(h, children)]); + } +})); + +/***/ }), + +/***/ "./src/components/VPagination/index.ts": +/*!*********************************************!*\ + !*** ./src/components/VPagination/index.ts ***! + \*********************************************/ +/*! exports provided: VPagination, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VPagination__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VPagination */ "./src/components/VPagination/VPagination.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VPagination", function() { return _VPagination__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VPagination__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VParallax/VParallax.sass": +/*!*************************************************!*\ + !*** ./src/components/VParallax/VParallax.sass ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VParallax/VParallax.ts": +/*!***********************************************!*\ + !*** ./src/components/VParallax/VParallax.ts ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VParallax_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VParallax.sass */ "./src/components/VParallax/VParallax.sass"); +/* harmony import */ var _VParallax_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VParallax_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_translatable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/translatable */ "./src/mixins/translatable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +// Style + // Mixins + + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_2__["default"])(_mixins_translatable__WEBPACK_IMPORTED_MODULE_1__["default"]); +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend().extend({ + name: 'v-parallax', + props: { + alt: { + type: String, + default: '' + }, + height: { + type: [String, Number], + default: 500 + }, + src: String, + srcset: String + }, + data: function data() { + return { + isBooted: false + }; + }, + computed: { + styles: function styles() { + return { + display: 'block', + opacity: this.isBooted ? 1 : 0, + transform: "translate(-50%, " + this.parallax + "px)" + }; + } + }, + mounted: function mounted() { + this.init(); + }, + methods: { + init: function init() { + var _this = this; + + var img = this.$refs.img; + if (!img) return; + + if (img.complete) { + this.translate(); + this.listeners(); + } else { + img.addEventListener('load', function () { + _this.translate(); + + _this.listeners(); + }, false); + } + + this.isBooted = true; + }, + objHeight: function objHeight() { + return this.$refs.img.naturalHeight; + } + }, + render: function render(h) { + var imgData = { + staticClass: 'v-parallax__image', + style: this.styles, + attrs: { + src: this.src, + srcset: this.srcset, + alt: this.alt + }, + ref: 'img' + }; + var container = h('div', { + staticClass: 'v-parallax__image-container' + }, [h('img', imgData)]); + var content = h('div', { + staticClass: 'v-parallax__content' + }, this.$slots.default); + return h('div', { + staticClass: 'v-parallax', + style: { + height: this.height + "px" + }, + on: this.$listeners + }, [container, content]); + } +})); + +/***/ }), + +/***/ "./src/components/VParallax/index.ts": +/*!*******************************************!*\ + !*** ./src/components/VParallax/index.ts ***! + \*******************************************/ +/*! exports provided: VParallax, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VParallax__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VParallax */ "./src/components/VParallax/VParallax.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VParallax", function() { return _VParallax__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VParallax__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VPicker/VPicker.sass": +/*!*********************************************!*\ + !*** ./src/components/VPicker/VPicker.sass ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VPicker/VPicker.ts": +/*!*******************************************!*\ + !*** ./src/components/VPicker/VPicker.ts ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VPicker_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VPicker.sass */ "./src/components/VPicker/VPicker.sass"); +/* harmony import */ var _VPicker_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VPicker_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VCard_VCard_sass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VCard/VCard.sass */ "./src/components/VCard/VCard.sass"); +/* harmony import */ var _VCard_VCard_sass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_VCard_VCard_sass__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_elevatable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/elevatable */ "./src/mixins/elevatable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + + + // Mixins + + + + // Helpers + + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_6__["default"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_2__["default"], _mixins_elevatable__WEBPACK_IMPORTED_MODULE_3__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_4__["default"]).extend({ + name: 'v-picker', + props: { + flat: Boolean, + fullWidth: Boolean, + landscape: Boolean, + noTitle: Boolean, + transition: { + type: String, + default: 'fade-transition' + }, + width: { + type: [Number, String], + default: 290 + } + }, + computed: { + computedTitleColor: function computedTitleColor() { + var defaultTitleColor = this.isDark ? false : this.color || 'primary'; + return this.color || defaultTitleColor; + } + }, + methods: { + genTitle: function genTitle() { + return this.$createElement('div', this.setBackgroundColor(this.computedTitleColor, { + staticClass: 'v-picker__title', + class: { + 'v-picker__title--landscape': this.landscape + } + }), this.$slots.title); + }, + genBodyTransition: function genBodyTransition() { + return this.$createElement('transition', { + props: { + name: this.transition + } + }, this.$slots.default); + }, + genBody: function genBody() { + return this.$createElement('div', { + staticClass: 'v-picker__body', + class: __assign({ + 'v-picker__body--no-title': this.noTitle + }, this.themeClasses), + style: this.fullWidth ? undefined : { + width: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["convertToUnit"])(this.width) + } + }, [this.genBodyTransition()]); + }, + genActions: function genActions() { + return this.$createElement('div', { + staticClass: 'v-picker__actions v-card__actions', + class: { + 'v-picker__actions--no-title': this.noTitle + } + }, this.$slots.actions); + } + }, + render: function render(h) { + return h('div', { + staticClass: 'v-picker v-card', + class: __assign(__assign({ + 'v-picker--flat': this.flat, + 'v-picker--landscape': this.landscape, + 'v-picker--full-width': this.fullWidth + }, this.themeClasses), this.elevationClasses) + }, [this.$slots.title ? this.genTitle() : null, this.genBody(), this.$slots.actions ? this.genActions() : null]); + } +})); + +/***/ }), + +/***/ "./src/components/VPicker/index.ts": +/*!*****************************************!*\ + !*** ./src/components/VPicker/index.ts ***! + \*****************************************/ +/*! exports provided: VPicker, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VPicker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VPicker */ "./src/components/VPicker/VPicker.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VPicker", function() { return _VPicker__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VPicker__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VProgressCircular/VProgressCircular.sass": +/*!*****************************************************************!*\ + !*** ./src/components/VProgressCircular/VProgressCircular.sass ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VProgressCircular/VProgressCircular.ts": +/*!***************************************************************!*\ + !*** ./src/components/VProgressCircular/VProgressCircular.ts ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VProgressCircular_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VProgressCircular.sass */ "./src/components/VProgressCircular/VProgressCircular.sass"); +/* harmony import */ var _VProgressCircular_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VProgressCircular_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +// Styles + // Mixins + + // Utils + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (_mixins_colorable__WEBPACK_IMPORTED_MODULE_1__["default"].extend({ + name: 'v-progress-circular', + props: { + button: Boolean, + indeterminate: Boolean, + rotate: { + type: [Number, String], + default: 0 + }, + size: { + type: [Number, String], + default: 32 + }, + width: { + type: [Number, String], + default: 4 + }, + value: { + type: [Number, String], + default: 0 + } + }, + data: function data() { + return { + radius: 20 + }; + }, + computed: { + calculatedSize: function calculatedSize() { + return Number(this.size) + (this.button ? 8 : 0); + }, + circumference: function circumference() { + return 2 * Math.PI * this.radius; + }, + classes: function classes() { + return { + 'v-progress-circular--indeterminate': this.indeterminate, + 'v-progress-circular--button': this.button + }; + }, + normalizedValue: function normalizedValue() { + if (this.value < 0) { + return 0; + } + + if (this.value > 100) { + return 100; + } + + return parseFloat(this.value); + }, + strokeDashArray: function strokeDashArray() { + return Math.round(this.circumference * 1000) / 1000; + }, + strokeDashOffset: function strokeDashOffset() { + return (100 - this.normalizedValue) / 100 * this.circumference + 'px'; + }, + strokeWidth: function strokeWidth() { + return Number(this.width) / +this.size * this.viewBoxSize * 2; + }, + styles: function styles() { + return { + height: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_2__["convertToUnit"])(this.calculatedSize), + width: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_2__["convertToUnit"])(this.calculatedSize) + }; + }, + svgStyles: function svgStyles() { + return { + transform: "rotate(" + Number(this.rotate) + "deg)" + }; + }, + viewBoxSize: function viewBoxSize() { + return this.radius / (1 - Number(this.width) / +this.size); + } + }, + methods: { + genCircle: function genCircle(name, offset) { + return this.$createElement('circle', { + class: "v-progress-circular__" + name, + attrs: { + fill: 'transparent', + cx: 2 * this.viewBoxSize, + cy: 2 * this.viewBoxSize, + r: this.radius, + 'stroke-width': this.strokeWidth, + 'stroke-dasharray': this.strokeDashArray, + 'stroke-dashoffset': offset + } + }); + }, + genSvg: function genSvg() { + var children = [this.indeterminate || this.genCircle('underlay', 0), this.genCircle('overlay', this.strokeDashOffset)]; + return this.$createElement('svg', { + style: this.svgStyles, + attrs: { + xmlns: 'http://www.w3.org/2000/svg', + viewBox: this.viewBoxSize + " " + this.viewBoxSize + " " + 2 * this.viewBoxSize + " " + 2 * this.viewBoxSize + } + }, children); + }, + genInfo: function genInfo() { + return this.$createElement('div', { + staticClass: 'v-progress-circular__info' + }, this.$slots.default); + } + }, + render: function render(h) { + return h('div', this.setTextColor(this.color, { + staticClass: 'v-progress-circular', + attrs: { + role: 'progressbar', + 'aria-valuemin': 0, + 'aria-valuemax': 100, + 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue + }, + class: this.classes, + style: this.styles, + on: this.$listeners + }), [this.genSvg(), this.genInfo()]); + } +})); + +/***/ }), + +/***/ "./src/components/VProgressCircular/index.ts": +/*!***************************************************!*\ + !*** ./src/components/VProgressCircular/index.ts ***! + \***************************************************/ +/*! exports provided: VProgressCircular, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VProgressCircular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VProgressCircular */ "./src/components/VProgressCircular/VProgressCircular.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VProgressCircular", function() { return _VProgressCircular__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VProgressCircular__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VProgressLinear/VProgressLinear.sass": +/*!*************************************************************!*\ + !*** ./src/components/VProgressLinear/VProgressLinear.sass ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VProgressLinear/VProgressLinear.ts": +/*!***********************************************************!*\ + !*** ./src/components/VProgressLinear/VProgressLinear.ts ***! + \***********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VProgressLinear_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VProgressLinear.sass */ "./src/components/VProgressLinear/VProgressLinear.sass"); +/* harmony import */ var _VProgressLinear_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VProgressLinear_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _transitions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../transitions */ "./src/components/transitions/index.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_positionable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/positionable */ "./src/mixins/positionable/index.ts"); +/* harmony import */ var _mixins_proxyable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/proxyable */ "./src/mixins/proxyable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + + // Components + + // Mixins + + + + + // Utilities + + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_7__["default"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_2__["default"], Object(_mixins_positionable__WEBPACK_IMPORTED_MODULE_3__["factory"])(['absolute', 'fixed', 'top', 'bottom']), _mixins_proxyable__WEBPACK_IMPORTED_MODULE_4__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_5__["default"]); +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend({ + name: 'v-progress-linear', + props: { + active: { + type: Boolean, + default: true + }, + backgroundColor: { + type: String, + default: null + }, + backgroundOpacity: { + type: [Number, String], + default: null + }, + bufferValue: { + type: [Number, String], + default: 100 + }, + color: { + type: String, + default: 'primary' + }, + height: { + type: [Number, String], + default: 4 + }, + indeterminate: Boolean, + query: Boolean, + reverse: Boolean, + rounded: Boolean, + stream: Boolean, + striped: Boolean, + value: { + type: [Number, String], + default: 0 + } + }, + data: function data() { + return { + internalLazyValue: this.value || 0 + }; + }, + computed: { + __cachedBackground: function __cachedBackground() { + return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, { + staticClass: 'v-progress-linear__background', + style: this.backgroundStyle + })); + }, + __cachedBar: function __cachedBar() { + return this.$createElement(this.computedTransition, [this.__cachedBarType]); + }, + __cachedBarType: function __cachedBarType() { + return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate; + }, + __cachedBuffer: function __cachedBuffer() { + return this.$createElement('div', { + staticClass: 'v-progress-linear__buffer', + style: this.styles + }); + }, + __cachedDeterminate: function __cachedDeterminate() { + return this.$createElement('div', this.setBackgroundColor(this.color, { + staticClass: "v-progress-linear__determinate", + style: { + width: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_6__["convertToUnit"])(this.normalizedValue, '%') + } + })); + }, + __cachedIndeterminate: function __cachedIndeterminate() { + return this.$createElement('div', { + staticClass: 'v-progress-linear__indeterminate', + class: { + 'v-progress-linear__indeterminate--active': this.active + } + }, [this.genProgressBar('long'), this.genProgressBar('short')]); + }, + __cachedStream: function __cachedStream() { + if (!this.stream) return null; + return this.$createElement('div', this.setTextColor(this.color, { + staticClass: 'v-progress-linear__stream', + style: { + width: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_6__["convertToUnit"])(100 - this.normalizedBuffer, '%') + } + })); + }, + backgroundStyle: function backgroundStyle() { + var _a; + + var backgroundOpacity = this.backgroundOpacity == null ? this.backgroundColor ? 1 : 0.3 : parseFloat(this.backgroundOpacity); + return _a = { + opacity: backgroundOpacity + }, _a[this.isReversed ? 'right' : 'left'] = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_6__["convertToUnit"])(this.normalizedValue, '%'), _a.width = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_6__["convertToUnit"])(this.normalizedBuffer - this.normalizedValue, '%'), _a; + }, + classes: function classes() { + return __assign({ + 'v-progress-linear--absolute': this.absolute, + 'v-progress-linear--fixed': this.fixed, + 'v-progress-linear--query': this.query, + 'v-progress-linear--reactive': this.reactive, + 'v-progress-linear--reverse': this.isReversed, + 'v-progress-linear--rounded': this.rounded, + 'v-progress-linear--striped': this.striped + }, this.themeClasses); + }, + computedTransition: function computedTransition() { + return this.indeterminate ? _transitions__WEBPACK_IMPORTED_MODULE_1__["VFadeTransition"] : _transitions__WEBPACK_IMPORTED_MODULE_1__["VSlideXTransition"]; + }, + isReversed: function isReversed() { + return this.$vuetify.rtl !== this.reverse; + }, + normalizedBuffer: function normalizedBuffer() { + return this.normalize(this.bufferValue); + }, + normalizedValue: function normalizedValue() { + return this.normalize(this.internalLazyValue); + }, + reactive: function reactive() { + return Boolean(this.$listeners.change); + }, + styles: function styles() { + var styles = {}; + + if (!this.active) { + styles.height = 0; + } + + if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) { + styles.width = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_6__["convertToUnit"])(this.normalizedBuffer, '%'); + } + + return styles; + } + }, + methods: { + genContent: function genContent() { + var slot = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_6__["getSlot"])(this, 'default', { + value: this.internalLazyValue + }); + if (!slot) return null; + return this.$createElement('div', { + staticClass: 'v-progress-linear__content' + }, slot); + }, + genListeners: function genListeners() { + var listeners = this.$listeners; + + if (this.reactive) { + listeners.click = this.onClick; + } + + return listeners; + }, + genProgressBar: function genProgressBar(name) { + var _a; + + return this.$createElement('div', this.setBackgroundColor(this.color, { + staticClass: 'v-progress-linear__indeterminate', + class: (_a = {}, _a[name] = true, _a) + })); + }, + onClick: function onClick(e) { + if (!this.reactive) return; + var width = this.$el.getBoundingClientRect().width; + this.internalValue = e.offsetX / width * 100; + }, + normalize: function normalize(value) { + if (value < 0) return 0; + if (value > 100) return 100; + return parseFloat(value); + } + }, + render: function render(h) { + var data = { + staticClass: 'v-progress-linear', + attrs: { + role: 'progressbar', + 'aria-valuemin': 0, + 'aria-valuemax': this.normalizedBuffer, + 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue + }, + class: this.classes, + style: { + bottom: this.bottom ? 0 : undefined, + height: this.active ? Object(_util_helpers__WEBPACK_IMPORTED_MODULE_6__["convertToUnit"])(this.height) : 0, + top: this.top ? 0 : undefined + }, + on: this.genListeners() + }; + return h('div', data, [this.__cachedStream, this.__cachedBackground, this.__cachedBuffer, this.__cachedBar, this.genContent()]); + } +})); + +/***/ }), + +/***/ "./src/components/VProgressLinear/index.ts": +/*!*************************************************!*\ + !*** ./src/components/VProgressLinear/index.ts ***! + \*************************************************/ +/*! exports provided: VProgressLinear, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VProgressLinear__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VProgressLinear */ "./src/components/VProgressLinear/VProgressLinear.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VProgressLinear", function() { return _VProgressLinear__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VProgressLinear__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VRadioGroup/VRadio.sass": +/*!************************************************!*\ + !*** ./src/components/VRadioGroup/VRadio.sass ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VRadioGroup/VRadio.ts": +/*!**********************************************!*\ + !*** ./src/components/VRadioGroup/VRadio.ts ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VRadio_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VRadio.sass */ "./src/components/VRadioGroup/VRadio.sass"); +/* harmony import */ var _VRadio_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VRadio_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VLabel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VLabel */ "./src/components/VLabel/index.ts"); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../VIcon */ "./src/components/VIcon/index.ts"); +/* harmony import */ var _VInput__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../VInput */ "./src/components/VInput/index.ts"); +/* harmony import */ var _mixins_binds_attrs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/binds-attrs */ "./src/mixins/binds-attrs/index.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_groupable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../mixins/groupable */ "./src/mixins/groupable/index.ts"); +/* harmony import */ var _mixins_rippleable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../mixins/rippleable */ "./src/mixins/rippleable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _mixins_selectable__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../mixins/selectable */ "./src/mixins/selectable/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_mergeData__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../util/mergeData */ "./src/util/mergeData.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + + + + // Mixins + + + + + + + // Utilities + + + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_11__["default"])(_mixins_binds_attrs__WEBPACK_IMPORTED_MODULE_4__["default"], _mixins_colorable__WEBPACK_IMPORTED_MODULE_5__["default"], _mixins_rippleable__WEBPACK_IMPORTED_MODULE_7__["default"], Object(_mixins_groupable__WEBPACK_IMPORTED_MODULE_6__["factory"])('radioGroup'), _mixins_themeable__WEBPACK_IMPORTED_MODULE_8__["default"]); +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend().extend({ + name: 'v-radio', + inheritAttrs: false, + props: { + disabled: Boolean, + id: String, + label: String, + name: String, + offIcon: { + type: String, + default: '$radioOff' + }, + onIcon: { + type: String, + default: '$radioOn' + }, + readonly: Boolean, + value: { + default: null + } + }, + data: function data() { + return { + isFocused: false + }; + }, + computed: { + classes: function classes() { + return __assign(__assign({ + 'v-radio--is-disabled': this.isDisabled, + 'v-radio--is-focused': this.isFocused + }, this.themeClasses), this.groupClasses); + }, + computedColor: function computedColor() { + return _mixins_selectable__WEBPACK_IMPORTED_MODULE_9__["default"].options.computed.computedColor.call(this); + }, + computedIcon: function computedIcon() { + return this.isActive ? this.onIcon : this.offIcon; + }, + computedId: function computedId() { + return _VInput__WEBPACK_IMPORTED_MODULE_3__["default"].options.computed.computedId.call(this); + }, + hasLabel: _VInput__WEBPACK_IMPORTED_MODULE_3__["default"].options.computed.hasLabel, + hasState: function hasState() { + return (this.radioGroup || {}).hasState; + }, + isDisabled: function isDisabled() { + return this.disabled || !!this.radioGroup && this.radioGroup.isDisabled; + }, + isReadonly: function isReadonly() { + return this.readonly || !!this.radioGroup && this.radioGroup.isReadonly; + }, + computedName: function computedName() { + if (this.name || !this.radioGroup) { + return this.name; + } + + return this.radioGroup.name || "radio-" + this.radioGroup._uid; + }, + rippleState: function rippleState() { + return _mixins_selectable__WEBPACK_IMPORTED_MODULE_9__["default"].options.computed.rippleState.call(this); + }, + validationState: function validationState() { + return (this.radioGroup || {}).validationState || this.computedColor; + } + }, + methods: { + genInput: function genInput(args) { + // We can't actually use the mixin directly because + // it's made for standalone components, but its + // genInput method is exactly what we need + return _mixins_selectable__WEBPACK_IMPORTED_MODULE_9__["default"].options.methods.genInput.call(this, 'radio', args); + }, + genLabel: function genLabel() { + if (!this.hasLabel) return null; + return this.$createElement(_VLabel__WEBPACK_IMPORTED_MODULE_1__["default"], { + on: { + // Label shouldn't cause the input to focus + click: _mixins_selectable__WEBPACK_IMPORTED_MODULE_9__["prevent"] + }, + attrs: { + for: this.computedId + }, + props: { + color: this.validationState, + focused: this.hasState + } + }, Object(_util_helpers__WEBPACK_IMPORTED_MODULE_10__["getSlot"])(this, 'label') || this.label); + }, + genRadio: function genRadio() { + return this.$createElement('div', { + staticClass: 'v-input--selection-controls__input' + }, [this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_2__["default"], this.setTextColor(this.validationState, { + props: { + dense: this.radioGroup && this.radioGroup.dense + } + }), this.computedIcon), this.genInput(__assign({ + name: this.computedName, + value: this.value + }, this.attrs$)), this.genRipple(this.setTextColor(this.rippleState))]); + }, + onFocus: function onFocus(e) { + this.isFocused = true; + this.$emit('focus', e); + }, + onBlur: function onBlur(e) { + this.isFocused = false; + this.$emit('blur', e); + }, + onChange: function onChange() { + if (this.isDisabled || this.isReadonly || this.isActive) return; + this.toggle(); + }, + onKeydown: function onKeydown() {} + }, + render: function render(h) { + var data = { + staticClass: 'v-radio', + class: this.classes, + on: Object(_util_mergeData__WEBPACK_IMPORTED_MODULE_12__["mergeListeners"])({ + click: this.onChange + }, this.listeners$) + }; + return h('div', data, [this.genRadio(), this.genLabel()]); + } +})); + +/***/ }), + +/***/ "./src/components/VRadioGroup/VRadioGroup.sass": +/*!*****************************************************!*\ + !*** ./src/components/VRadioGroup/VRadioGroup.sass ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VRadioGroup/VRadioGroup.ts": +/*!***************************************************!*\ + !*** ./src/components/VRadioGroup/VRadioGroup.ts ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _styles_components_selection_controls_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../styles/components/_selection-controls.sass */ "./src/styles/components/_selection-controls.sass"); +/* harmony import */ var _styles_components_selection_controls_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_styles_components_selection_controls_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VRadioGroup_sass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VRadioGroup.sass */ "./src/components/VRadioGroup/VRadioGroup.sass"); +/* harmony import */ var _VRadioGroup_sass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_VRadioGroup_sass__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _VInput__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../VInput */ "./src/components/VInput/index.ts"); +/* harmony import */ var _VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../VItemGroup/VItemGroup */ "./src/components/VItemGroup/VItemGroup.ts"); +/* harmony import */ var _mixins_comparable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/comparable */ "./src/mixins/comparable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + + // Extensions + + + // Mixins + + // Types + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_5__["default"])(_mixins_comparable__WEBPACK_IMPORTED_MODULE_4__["default"], _VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_3__["BaseItemGroup"], _VInput__WEBPACK_IMPORTED_MODULE_2__["default"]); +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend({ + name: 'v-radio-group', + provide: function provide() { + return { + radioGroup: this + }; + }, + props: { + column: { + type: Boolean, + default: true + }, + height: { + type: [Number, String], + default: 'auto' + }, + name: String, + row: Boolean, + // If no value set on VRadio + // will match valueComparator + // force default to null + value: null + }, + computed: { + classes: function classes() { + return __assign(__assign({}, _VInput__WEBPACK_IMPORTED_MODULE_2__["default"].options.computed.classes.call(this)), { + 'v-input--selection-controls v-input--radio-group': true, + 'v-input--radio-group--column': this.column && !this.row, + 'v-input--radio-group--row': this.row + }); + } + }, + methods: { + genDefaultSlot: function genDefaultSlot() { + return this.$createElement('div', { + staticClass: 'v-input--radio-group__input', + attrs: { + id: this.id, + role: 'radiogroup', + 'aria-labelledby': this.computedId + } + }, _VInput__WEBPACK_IMPORTED_MODULE_2__["default"].options.methods.genDefaultSlot.call(this)); + }, + genInputSlot: function genInputSlot() { + var render = _VInput__WEBPACK_IMPORTED_MODULE_2__["default"].options.methods.genInputSlot.call(this); + delete render.data.on.click; + return render; + }, + genLabel: function genLabel() { + var label = _VInput__WEBPACK_IMPORTED_MODULE_2__["default"].options.methods.genLabel.call(this); + if (!label) return null; + label.data.attrs.id = this.computedId; // WAI considers this an orphaned label + + delete label.data.attrs.for; + label.tag = 'legend'; + return label; + }, + onClick: _VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_3__["BaseItemGroup"].options.methods.onClick + } +})); + +/***/ }), + +/***/ "./src/components/VRadioGroup/index.ts": +/*!*********************************************!*\ + !*** ./src/components/VRadioGroup/index.ts ***! + \*********************************************/ +/*! exports provided: VRadioGroup, VRadio, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VRadioGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VRadioGroup */ "./src/components/VRadioGroup/VRadioGroup.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VRadioGroup", function() { return _VRadioGroup__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + +/* harmony import */ var _VRadio__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VRadio */ "./src/components/VRadioGroup/VRadio.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VRadio", function() { return _VRadio__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + $_vuetify_subcomponents: { + VRadioGroup: _VRadioGroup__WEBPACK_IMPORTED_MODULE_0__["default"], + VRadio: _VRadio__WEBPACK_IMPORTED_MODULE_1__["default"] + } +}); + +/***/ }), + +/***/ "./src/components/VRangeSlider/VRangeSlider.sass": +/*!*******************************************************!*\ + !*** ./src/components/VRangeSlider/VRangeSlider.sass ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VRangeSlider/VRangeSlider.ts": +/*!*****************************************************!*\ + !*** ./src/components/VRangeSlider/VRangeSlider.ts ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VRangeSlider_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VRangeSlider.sass */ "./src/components/VRangeSlider/VRangeSlider.sass"); +/* harmony import */ var _VRangeSlider_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VRangeSlider_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VSlider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VSlider */ "./src/components/VSlider/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + +var __spread = undefined && undefined.__spread || function () { + for (var ar = [], i = 0; i < arguments.length; i++) { + ar = ar.concat(__read(arguments[i])); + } + + return ar; +}; // Styles + + + // Components + + // Helpers + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (_VSlider__WEBPACK_IMPORTED_MODULE_1__["default"].extend({ + name: 'v-range-slider', + props: { + value: { + type: Array, + default: function _default() { + return [0, 0]; + } + } + }, + data: function data() { + return { + activeThumb: null, + lazyValue: this.value + }; + }, + computed: { + classes: function classes() { + return __assign(__assign({}, _VSlider__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.classes.call(this)), { + 'v-input--range-slider': true + }); + }, + internalValue: { + get: function get() { + return this.lazyValue; + }, + set: function set(val) { + var _this = this; // Round value to ensure the + // entire slider range can + // be selected with step + + + var value = val.map(function (v) { + if (v === void 0) { + v = 0; + } + + return _this.roundValue(Math.min(Math.max(v, _this.minValue), _this.maxValue)); + }); // Switch values if range and wrong order + + if (value[0] > value[1] || value[1] < value[0]) { + if (this.activeThumb !== null) { + var toFocus = this.activeThumb === 1 ? 0 : 1; + var el = this.$refs["thumb_" + toFocus]; + el.focus(); + } + + value = [value[1], value[0]]; + } + + this.lazyValue = value; + if (!Object(_util_helpers__WEBPACK_IMPORTED_MODULE_2__["deepEqual"])(value, this.value)) this.$emit('input', value); + this.validate(); + } + }, + inputWidth: function inputWidth() { + var _this = this; + + return this.internalValue.map(function (v) { + return (_this.roundValue(v) - _this.minValue) / (_this.maxValue - _this.minValue) * 100; + }); + } + }, + methods: { + getTrackStyle: function getTrackStyle(startLength, endLength, startPadding, endPadding) { + var _a; + + if (startPadding === void 0) { + startPadding = 0; + } + + if (endPadding === void 0) { + endPadding = 0; + } + + var startDir = this.vertical ? this.$vuetify.rtl ? 'top' : 'bottom' : this.$vuetify.rtl ? 'right' : 'left'; + var endDir = this.vertical ? 'height' : 'width'; + var start = "calc(" + startLength + "% + " + startPadding + "px)"; + var end = "calc(" + endLength + "% + " + endPadding + "px)"; + return _a = { + transition: this.trackTransition + }, _a[startDir] = start, _a[endDir] = end, _a; + }, + getIndexOfClosestValue: function getIndexOfClosestValue(arr, v) { + if (Math.abs(arr[0] - v) < Math.abs(arr[1] - v)) return 0;else return 1; + }, + genInput: function genInput() { + var _this = this; + + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_2__["createRange"])(2).map(function (i) { + var input = _VSlider__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.genInput.call(_this); + input.data = input.data || {}; + input.data.attrs = input.data.attrs || {}; + input.data.attrs.value = _this.internalValue[i]; + input.data.attrs.id = "input-" + (i ? 'max' : 'min') + "-" + _this._uid; + return input; + }); + }, + genTrackContainer: function genTrackContainer() { + var _this = this; + + var children = []; + var padding = this.isDisabled ? 10 : 0; + var sections = [{ + class: 'v-slider__track-background', + color: this.computedTrackColor, + styles: [0, this.inputWidth[0], 0, -padding] + }, { + class: this.isDisabled ? 'v-slider__track-background' : 'v-slider__track-fill', + color: this.isDisabled ? this.computedTrackColor : this.computedColor, + styles: [this.inputWidth[0], Math.abs(this.inputWidth[1] - this.inputWidth[0]), padding, padding * -2] + }, { + class: 'v-slider__track-background', + color: this.computedTrackColor, + styles: [this.inputWidth[1], Math.abs(100 - this.inputWidth[1]), padding, -padding] + }]; + if (this.$vuetify.rtl) sections.reverse(); + children.push.apply(children, __spread(sections.map(function (section) { + return _this.$createElement('div', _this.setBackgroundColor(section.color, { + staticClass: section.class, + style: _this.getTrackStyle.apply(_this, __spread(section.styles)) + })); + }))); + return this.$createElement('div', { + staticClass: 'v-slider__track-container', + ref: 'track' + }, children); + }, + genChildren: function genChildren() { + var _this = this; + + return [this.genInput(), this.genTrackContainer(), this.genSteps(), Object(_util_helpers__WEBPACK_IMPORTED_MODULE_2__["createRange"])(2).map(function (index) { + var value = _this.internalValue[index]; + + var onDrag = function onDrag(e) { + _this.isActive = true; + _this.activeThumb = index; + + _this.onThumbMouseDown(e); + }; + + var onFocus = function onFocus(e) { + _this.isFocused = true; + _this.activeThumb = index; + + _this.$emit('focus', e); + }; + + var onBlur = function onBlur(e) { + _this.isFocused = false; + _this.activeThumb = null; + + _this.$emit('blur', e); + }; + + var valueWidth = _this.inputWidth[index]; + var isActive = _this.isActive && _this.activeThumb === index; + var isFocused = _this.isFocused && _this.activeThumb === index; + return _this.genThumbContainer(value, valueWidth, isActive, isFocused, onDrag, onFocus, onBlur, "thumb_" + index); + })]; + }, + onSliderClick: function onSliderClick(e) { + if (!this.isActive) { + if (this.noClick) { + this.noClick = false; + return; + } + + var _a = this.parseMouseMove(e), + value = _a.value, + isInsideTrack = _a.isInsideTrack; + + if (isInsideTrack) { + this.activeThumb = this.getIndexOfClosestValue(this.internalValue, value); + var refName = "thumb_" + this.activeThumb; + var thumbRef = this.$refs[refName]; + thumbRef.focus(); + } + + this.setInternalValue(value); + this.$emit('change', this.internalValue); + } + }, + onMouseMove: function onMouseMove(e) { + var _a = this.parseMouseMove(e), + value = _a.value, + isInsideTrack = _a.isInsideTrack; + + if (isInsideTrack && this.activeThumb === null) { + this.activeThumb = this.getIndexOfClosestValue(this.internalValue, value); + } + + this.setInternalValue(value); + }, + onKeyDown: function onKeyDown(e) { + if (this.activeThumb === null) return; + var value = this.parseKeyDown(e, this.internalValue[this.activeThumb]); + if (value == null) return; + this.setInternalValue(value); + this.$emit('change', this.internalValue); + }, + setInternalValue: function setInternalValue(value) { + var _this = this; + + this.internalValue = this.internalValue.map(function (v, i) { + if (i === _this.activeThumb) return value;else return Number(v); + }); + } + } +})); + +/***/ }), + +/***/ "./src/components/VRangeSlider/index.ts": +/*!**********************************************!*\ + !*** ./src/components/VRangeSlider/index.ts ***! + \**********************************************/ +/*! exports provided: VRangeSlider, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VRangeSlider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VRangeSlider */ "./src/components/VRangeSlider/VRangeSlider.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VRangeSlider", function() { return _VRangeSlider__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VRangeSlider__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VRating/VRating.sass": +/*!*********************************************!*\ + !*** ./src/components/VRating/VRating.sass ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VRating/VRating.ts": +/*!*******************************************!*\ + !*** ./src/components/VRating/VRating.ts ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VRating_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VRating.sass */ "./src/components/VRating/VRating.sass"); +/* harmony import */ var _VRating_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VRating_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VIcon */ "./src/components/VIcon/index.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_delayable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/delayable */ "./src/mixins/delayable/index.ts"); +/* harmony import */ var _mixins_sizeable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/sizeable */ "./src/mixins/sizeable/index.ts"); +/* harmony import */ var _mixins_rippleable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/rippleable */ "./src/mixins/rippleable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +// Styles + // Components + + // Mixins + + + + + + // Utilities + + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_8__["default"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_2__["default"], _mixins_delayable__WEBPACK_IMPORTED_MODULE_3__["default"], _mixins_rippleable__WEBPACK_IMPORTED_MODULE_5__["default"], _mixins_sizeable__WEBPACK_IMPORTED_MODULE_4__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_6__["default"]).extend({ + name: 'v-rating', + props: { + backgroundColor: { + type: String, + default: 'accent' + }, + color: { + type: String, + default: 'primary' + }, + clearable: Boolean, + dense: Boolean, + emptyIcon: { + type: String, + default: '$ratingEmpty' + }, + fullIcon: { + type: String, + default: '$ratingFull' + }, + halfIcon: { + type: String, + default: '$ratingHalf' + }, + halfIncrements: Boolean, + hover: Boolean, + length: { + type: [Number, String], + default: 5 + }, + readonly: Boolean, + size: [Number, String], + value: { + type: Number, + default: 0 + }, + iconLabel: { + type: String, + default: '$vuetify.rating.ariaLabel.icon' + } + }, + data: function data() { + return { + hoverIndex: -1, + internalValue: this.value + }; + }, + computed: { + directives: function directives() { + if (this.readonly || !this.ripple) return []; + return [{ + name: 'ripple', + value: { + circle: true + } + }]; + }, + iconProps: function iconProps() { + var _a = this.$props, + dark = _a.dark, + large = _a.large, + light = _a.light, + medium = _a.medium, + small = _a.small, + size = _a.size, + xLarge = _a.xLarge, + xSmall = _a.xSmall; + return { + dark: dark, + large: large, + light: light, + medium: medium, + size: size, + small: small, + xLarge: xLarge, + xSmall: xSmall + }; + }, + isHovering: function isHovering() { + return this.hover && this.hoverIndex >= 0; + } + }, + watch: { + internalValue: function internalValue(val) { + val !== this.value && this.$emit('input', val); + }, + value: function value(val) { + this.internalValue = val; + } + }, + methods: { + createClickFn: function createClickFn(i) { + var _this = this; + + return function (e) { + if (_this.readonly) return; + + var newValue = _this.genHoverIndex(e, i); + + if (_this.clearable && _this.internalValue === newValue) { + _this.internalValue = 0; + } else { + _this.internalValue = newValue; + } + }; + }, + createProps: function createProps(i) { + var props = { + index: i, + value: this.internalValue, + click: this.createClickFn(i), + isFilled: Math.floor(this.internalValue) > i, + isHovered: Math.floor(this.hoverIndex) > i + }; + + if (this.halfIncrements) { + props.isHalfHovered = !props.isHovered && (this.hoverIndex - i) % 1 > 0; + props.isHalfFilled = !props.isFilled && (this.internalValue - i) % 1 > 0; + } + + return props; + }, + genHoverIndex: function genHoverIndex(e, i) { + var isHalf = this.isHalfEvent(e); + + if (this.halfIncrements && this.$vuetify.rtl) { + isHalf = !isHalf; + } + + return i + (isHalf ? 0.5 : 1); + }, + getIconName: function getIconName(props) { + var isFull = this.isHovering ? props.isHovered : props.isFilled; + var isHalf = this.isHovering ? props.isHalfHovered : props.isHalfFilled; + return isFull ? this.fullIcon : isHalf ? this.halfIcon : this.emptyIcon; + }, + getColor: function getColor(props) { + if (this.isHovering) { + if (props.isHovered || props.isHalfHovered) return this.color; + } else { + if (props.isFilled || props.isHalfFilled) return this.color; + } + + return this.backgroundColor; + }, + isHalfEvent: function isHalfEvent(e) { + if (this.halfIncrements) { + var rect = e.target && e.target.getBoundingClientRect(); + if (rect && e.pageX - rect.left < rect.width / 2) return true; + } + + return false; + }, + onMouseEnter: function onMouseEnter(e, i) { + var _this = this; + + this.runDelay('open', function () { + _this.hoverIndex = _this.genHoverIndex(e, i); + }); + }, + onMouseLeave: function onMouseLeave() { + var _this = this; + + this.runDelay('close', function () { + return _this.hoverIndex = -1; + }); + }, + genItem: function genItem(i) { + var _this = this; + + var props = this.createProps(i); + if (this.$scopedSlots.item) return this.$scopedSlots.item(props); + var listeners = { + click: props.click + }; + + if (this.hover) { + listeners.mouseenter = function (e) { + return _this.onMouseEnter(e, i); + }; + + listeners.mouseleave = this.onMouseLeave; + + if (this.halfIncrements) { + listeners.mousemove = function (e) { + return _this.onMouseEnter(e, i); + }; + } + } + + return this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_1__["default"], this.setTextColor(this.getColor(props), { + attrs: { + tabindex: -1, + 'aria-label': this.$vuetify.lang.t(this.iconLabel, i + 1, Number(this.length)) + }, + directives: this.directives, + props: this.iconProps, + on: listeners + }), [this.getIconName(props)]); + } + }, + render: function render(h) { + var _this = this; + + var children = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_7__["createRange"])(Number(this.length)).map(function (i) { + return _this.genItem(i); + }); + return h('div', { + staticClass: 'v-rating', + class: { + 'v-rating--readonly': this.readonly, + 'v-rating--dense': this.dense + } + }, children); + } +})); + +/***/ }), + +/***/ "./src/components/VRating/index.ts": +/*!*****************************************!*\ + !*** ./src/components/VRating/index.ts ***! + \*****************************************/ +/*! exports provided: VRating, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VRating__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VRating */ "./src/components/VRating/VRating.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VRating", function() { return _VRating__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VRating__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VResponsive/VResponsive.sass": +/*!*****************************************************!*\ + !*** ./src/components/VResponsive/VResponsive.sass ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VResponsive/VResponsive.ts": +/*!***************************************************!*\ + !*** ./src/components/VResponsive/VResponsive.ts ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VResponsive_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VResponsive.sass */ "./src/components/VResponsive/VResponsive.sass"); +/* harmony import */ var _VResponsive_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VResponsive_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_measurable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/measurable */ "./src/mixins/measurable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); + // Mixins + + // Utils + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_2__["default"])(_mixins_measurable__WEBPACK_IMPORTED_MODULE_1__["default"]).extend({ + name: 'v-responsive', + props: { + aspectRatio: [String, Number] + }, + computed: { + computedAspectRatio: function computedAspectRatio() { + return Number(this.aspectRatio); + }, + aspectStyle: function aspectStyle() { + return this.computedAspectRatio ? { + paddingBottom: 1 / this.computedAspectRatio * 100 + '%' + } : undefined; + }, + __cachedSizer: function __cachedSizer() { + if (!this.aspectStyle) return []; + return this.$createElement('div', { + style: this.aspectStyle, + staticClass: 'v-responsive__sizer' + }); + } + }, + methods: { + genContent: function genContent() { + return this.$createElement('div', { + staticClass: 'v-responsive__content' + }, this.$slots.default); + } + }, + render: function render(h) { + return h('div', { + staticClass: 'v-responsive', + style: this.measurableStyles, + on: this.$listeners + }, [this.__cachedSizer, this.genContent()]); + } +})); + +/***/ }), + +/***/ "./src/components/VResponsive/index.ts": +/*!*********************************************!*\ + !*** ./src/components/VResponsive/index.ts ***! + \*********************************************/ +/*! exports provided: VResponsive, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VResponsive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VResponsive */ "./src/components/VResponsive/VResponsive.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VResponsive", function() { return _VResponsive__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VResponsive__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VSelect/VSelect.sass": +/*!*********************************************!*\ + !*** ./src/components/VSelect/VSelect.sass ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VSelect/VSelect.ts": +/*!*******************************************!*\ + !*** ./src/components/VSelect/VSelect.ts ***! + \*******************************************/ +/*! exports provided: defaultMenuProps, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultMenuProps", function() { return defaultMenuProps; }); +/* harmony import */ var _VTextField_VTextField_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../VTextField/VTextField.sass */ "./src/components/VTextField/VTextField.sass"); +/* harmony import */ var _VTextField_VTextField_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VTextField_VTextField_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VSelect_sass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VSelect.sass */ "./src/components/VSelect/VSelect.sass"); +/* harmony import */ var _VSelect_sass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_VSelect_sass__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _VChip__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../VChip */ "./src/components/VChip/index.ts"); +/* harmony import */ var _VMenu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../VMenu */ "./src/components/VMenu/index.ts"); +/* harmony import */ var _VSelectList__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./VSelectList */ "./src/components/VSelect/VSelectList.ts"); +/* harmony import */ var _VInput__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../VInput */ "./src/components/VInput/index.ts"); +/* harmony import */ var _VTextField_VTextField__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../VTextField/VTextField */ "./src/components/VTextField/VTextField.ts"); +/* harmony import */ var _mixins_comparable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../mixins/comparable */ "./src/mixins/comparable/index.ts"); +/* harmony import */ var _mixins_dependent__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../mixins/dependent */ "./src/mixins/dependent/index.ts"); +/* harmony import */ var _mixins_filterable__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../mixins/filterable */ "./src/mixins/filterable/index.ts"); +/* harmony import */ var _directives_click_outside__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../directives/click-outside */ "./src/directives/click-outside/index.ts"); +/* harmony import */ var _util_mergeData__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../util/mergeData */ "./src/util/mergeData.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __values = undefined && undefined.__values || function (o) { + var s = typeof Symbol === "function" && Symbol.iterator, + m = s && o[s], + i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function next() { + if (o && i >= o.length) o = void 0; + return { + value: o && o[i++], + done: !o + }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); +}; // Styles + + + + // Components + + + + // Extensions + + + // Mixins + + + + // Directives + + // Utilities + + + + // Types + + +var defaultMenuProps = { + closeOnClick: false, + closeOnContentClick: false, + disableKeys: true, + openOnClick: false, + maxHeight: 304 +}; // Types + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_14__["default"])(_VTextField_VTextField__WEBPACK_IMPORTED_MODULE_6__["default"], _mixins_comparable__WEBPACK_IMPORTED_MODULE_7__["default"], _mixins_dependent__WEBPACK_IMPORTED_MODULE_8__["default"], _mixins_filterable__WEBPACK_IMPORTED_MODULE_9__["default"]); +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend().extend({ + name: 'v-select', + directives: { + ClickOutside: _directives_click_outside__WEBPACK_IMPORTED_MODULE_10__["default"] + }, + props: { + appendIcon: { + type: String, + default: '$dropdown' + }, + attach: { + type: null, + default: false + }, + cacheItems: Boolean, + chips: Boolean, + clearable: Boolean, + deletableChips: Boolean, + disableLookup: Boolean, + eager: Boolean, + hideSelected: Boolean, + items: { + type: Array, + default: function _default() { + return []; + } + }, + itemColor: { + type: String, + default: 'primary' + }, + itemDisabled: { + type: [String, Array, Function], + default: 'disabled' + }, + itemText: { + type: [String, Array, Function], + default: 'text' + }, + itemValue: { + type: [String, Array, Function], + default: 'value' + }, + menuProps: { + type: [String, Array, Object], + default: function _default() { + return defaultMenuProps; + } + }, + multiple: Boolean, + openOnClear: Boolean, + returnObject: Boolean, + smallChips: Boolean + }, + data: function data() { + return { + cachedItems: this.cacheItems ? this.items : [], + menuIsBooted: false, + isMenuActive: false, + lastItem: 20, + // As long as a value is defined, show it + // Otherwise, check if multiple + // to determine which default to provide + lazyValue: this.value !== undefined ? this.value : this.multiple ? [] : undefined, + selectedIndex: -1, + selectedItems: [], + keyboardLookupPrefix: '', + keyboardLookupLastTime: 0 + }; + }, + computed: { + /* All items that the select has */ + allItems: function allItems() { + return this.filterDuplicates(this.cachedItems.concat(this.items)); + }, + classes: function classes() { + return __assign(__assign({}, _VTextField_VTextField__WEBPACK_IMPORTED_MODULE_6__["default"].options.computed.classes.call(this)), { + 'v-select': true, + 'v-select--chips': this.hasChips, + 'v-select--chips--small': this.smallChips, + 'v-select--is-menu-active': this.isMenuActive, + 'v-select--is-multi': this.multiple + }); + }, + + /* Used by other components to overwrite */ + computedItems: function computedItems() { + return this.allItems; + }, + computedOwns: function computedOwns() { + return "list-" + this._uid; + }, + computedCounterValue: function computedCounterValue() { + return this.multiple ? this.selectedItems.length : (this.getText(this.selectedItems[0]) || '').toString().length; + }, + directives: function directives() { + var _this = this; + + return this.isFocused ? [{ + name: 'click-outside', + value: { + handler: this.blur, + closeConditional: this.closeConditional, + include: function include() { + return _this.getOpenDependentElements(); + } + } + }] : undefined; + }, + dynamicHeight: function dynamicHeight() { + return 'auto'; + }, + hasChips: function hasChips() { + return this.chips || this.smallChips; + }, + hasSlot: function hasSlot() { + return Boolean(this.hasChips || this.$scopedSlots.selection); + }, + isDirty: function isDirty() { + return this.selectedItems.length > 0; + }, + listData: function listData() { + var _a; + + var scopeId = this.$vnode && this.$vnode.context.$options._scopeId; + var attrs = scopeId ? (_a = {}, _a[scopeId] = true, _a) : {}; + return { + attrs: __assign(__assign({}, attrs), { + id: this.computedOwns + }), + props: { + action: this.multiple, + color: this.itemColor, + dense: this.dense, + hideSelected: this.hideSelected, + items: this.virtualizedItems, + itemDisabled: this.itemDisabled, + itemText: this.itemText, + itemValue: this.itemValue, + noDataText: this.$vuetify.lang.t(this.noDataText), + selectedItems: this.selectedItems + }, + on: { + select: this.selectItem + }, + scopedSlots: { + item: this.$scopedSlots.item + } + }; + }, + staticList: function staticList() { + if (this.$slots['no-data'] || this.$slots['prepend-item'] || this.$slots['append-item']) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_13__["consoleError"])('assert: staticList should not be called if slots are used'); + } + + return this.$createElement(_VSelectList__WEBPACK_IMPORTED_MODULE_4__["default"], this.listData); + }, + virtualizedItems: function virtualizedItems() { + return this.$_menuProps.auto ? this.computedItems : this.computedItems.slice(0, this.lastItem); + }, + menuCanShow: function menuCanShow() { + return true; + }, + $_menuProps: function $_menuProps() { + var normalisedProps = typeof this.menuProps === 'string' ? this.menuProps.split(',') : this.menuProps; + + if (Array.isArray(normalisedProps)) { + normalisedProps = normalisedProps.reduce(function (acc, p) { + acc[p.trim()] = true; + return acc; + }, {}); + } + + return __assign(__assign(__assign({}, defaultMenuProps), { + eager: this.eager, + value: this.menuCanShow && this.isMenuActive, + nudgeBottom: normalisedProps.offsetY ? 1 : 0 + }), normalisedProps); + } + }, + watch: { + internalValue: function internalValue(val) { + this.initialValue = val; + this.setSelectedItems(); + }, + isMenuActive: function isMenuActive(val) { + var _this = this; + + window.setTimeout(function () { + return _this.onMenuActiveChange(val); + }); + }, + items: { + immediate: true, + handler: function handler(val) { + var _this = this; + + if (this.cacheItems) { + // Breaks vue-test-utils if + // this isn't calculated + // on the next tick + this.$nextTick(function () { + _this.cachedItems = _this.filterDuplicates(_this.cachedItems.concat(val)); + }); + } + + this.setSelectedItems(); + } + } + }, + methods: { + /** @public */ + blur: function blur(e) { + _VTextField_VTextField__WEBPACK_IMPORTED_MODULE_6__["default"].options.methods.blur.call(this, e); + this.isMenuActive = false; + this.isFocused = false; + this.selectedIndex = -1; + }, + + /** @public */ + activateMenu: function activateMenu() { + if (!this.isInteractive || this.isMenuActive) return; + this.isMenuActive = true; + }, + clearableCallback: function clearableCallback() { + var _this = this; + + this.setValue(this.multiple ? [] : undefined); + this.setMenuIndex(-1); + this.$nextTick(function () { + return _this.$refs.input && _this.$refs.input.focus(); + }); + if (this.openOnClear) this.isMenuActive = true; + }, + closeConditional: function closeConditional(e) { + if (!this.isMenuActive) return true; + return !this._isDestroyed && ( // Click originates from outside the menu content + // Multiple selects don't close when an item is clicked + !this.getContent() || !this.getContent().contains(e.target)) && // Click originates from outside the element + this.$el && !this.$el.contains(e.target) && e.target !== this.$el; + }, + filterDuplicates: function filterDuplicates(arr) { + var uniqueValues = new Map(); + + for (var index = 0; index < arr.length; ++index) { + var item = arr[index]; // Do not deduplicate headers or dividers (#12517) + + if (item.header || item.divider) { + uniqueValues.set(item, item); + continue; + } + + var val = this.getValue(item); // TODO: comparator + + !uniqueValues.has(val) && uniqueValues.set(val, item); + } + + return Array.from(uniqueValues.values()); + }, + findExistingIndex: function findExistingIndex(item) { + var _this = this; + + var itemValue = this.getValue(item); + return (this.internalValue || []).findIndex(function (i) { + return _this.valueComparator(_this.getValue(i), itemValue); + }); + }, + getContent: function getContent() { + return this.$refs.menu && this.$refs.menu.$refs.content; + }, + genChipSelection: function genChipSelection(item, index) { + var _this = this; + + var isDisabled = !this.isInteractive || this.getDisabled(item); + return this.$createElement(_VChip__WEBPACK_IMPORTED_MODULE_2__["default"], { + staticClass: 'v-chip--select', + attrs: { + tabindex: -1 + }, + props: { + close: this.deletableChips && !isDisabled, + disabled: isDisabled, + inputValue: index === this.selectedIndex, + small: this.smallChips + }, + on: { + click: function click(e) { + if (isDisabled) return; + e.stopPropagation(); + _this.selectedIndex = index; + }, + 'click:close': function clickClose() { + return _this.onChipInput(item); + } + }, + key: JSON.stringify(this.getValue(item)) + }, this.getText(item)); + }, + genCommaSelection: function genCommaSelection(item, index, last) { + var color = index === this.selectedIndex && this.computedColor; + var isDisabled = !this.isInteractive || this.getDisabled(item); + return this.$createElement('div', this.setTextColor(color, { + staticClass: 'v-select__selection v-select__selection--comma', + class: { + 'v-select__selection--disabled': isDisabled + }, + key: JSON.stringify(this.getValue(item)) + }), "" + this.getText(item) + (last ? '' : ', ')); + }, + genDefaultSlot: function genDefaultSlot() { + var selections = this.genSelections(); + var input = this.genInput(); // If the return is an empty array + // push the input + + if (Array.isArray(selections)) { + selections.push(input); // Otherwise push it into children + } else { + selections.children = selections.children || []; + selections.children.push(input); + } + + return [this.genFieldset(), this.$createElement('div', { + staticClass: 'v-select__slot', + directives: this.directives + }, [this.genLabel(), this.prefix ? this.genAffix('prefix') : null, selections, this.suffix ? this.genAffix('suffix') : null, this.genClearIcon(), this.genIconSlot(), this.genHiddenInput()]), this.genMenu(), this.genProgress()]; + }, + genIcon: function genIcon(type, cb, extraData) { + var icon = _VInput__WEBPACK_IMPORTED_MODULE_5__["default"].options.methods.genIcon.call(this, type, cb, extraData); + + if (type === 'append') { + // Don't allow the dropdown icon to be focused + icon.children[0].data = Object(_util_mergeData__WEBPACK_IMPORTED_MODULE_11__["default"])(icon.children[0].data, { + attrs: { + tabindex: icon.children[0].componentOptions.listeners && '-1', + 'aria-hidden': 'true', + 'aria-label': undefined + } + }); + } + + return icon; + }, + genInput: function genInput() { + var input = _VTextField_VTextField__WEBPACK_IMPORTED_MODULE_6__["default"].options.methods.genInput.call(this); + delete input.data.attrs.name; + input.data = Object(_util_mergeData__WEBPACK_IMPORTED_MODULE_11__["default"])(input.data, { + domProps: { + value: null + }, + attrs: { + readonly: true, + type: 'text', + 'aria-readonly': String(this.isReadonly), + 'aria-activedescendant': Object(_util_helpers__WEBPACK_IMPORTED_MODULE_12__["getObjectValueByPath"])(this.$refs.menu, 'activeTile.id'), + autocomplete: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_12__["getObjectValueByPath"])(input.data, 'attrs.autocomplete', 'off') + }, + on: { + keypress: this.onKeyPress + } + }); + return input; + }, + genHiddenInput: function genHiddenInput() { + return this.$createElement('input', { + domProps: { + value: this.lazyValue + }, + attrs: { + type: 'hidden', + name: this.attrs$.name + } + }); + }, + genInputSlot: function genInputSlot() { + var render = _VTextField_VTextField__WEBPACK_IMPORTED_MODULE_6__["default"].options.methods.genInputSlot.call(this); + render.data.attrs = __assign(__assign({}, render.data.attrs), { + role: 'button', + 'aria-haspopup': 'listbox', + 'aria-expanded': String(this.isMenuActive), + 'aria-owns': this.computedOwns + }); + return render; + }, + genList: function genList() { + // If there's no slots, we can use a cached VNode to improve performance + if (this.$slots['no-data'] || this.$slots['prepend-item'] || this.$slots['append-item']) { + return this.genListWithSlot(); + } else { + return this.staticList; + } + }, + genListWithSlot: function genListWithSlot() { + var _this = this; + + var slots = ['prepend-item', 'no-data', 'append-item'].filter(function (slotName) { + return _this.$slots[slotName]; + }).map(function (slotName) { + return _this.$createElement('template', { + slot: slotName + }, _this.$slots[slotName]); + }); // Requires destructuring due to Vue + // modifying the `on` property when passed + // as a referenced object + + return this.$createElement(_VSelectList__WEBPACK_IMPORTED_MODULE_4__["default"], __assign({}, this.listData), slots); + }, + genMenu: function genMenu() { + var _this = this; + + var props = this.$_menuProps; + props.activator = this.$refs['input-slot']; // Attach to root el so that + // menu covers prepend/append icons + + if ( // TODO: make this a computed property or helper or something + this.attach === '' || // If used as a boolean prop (<v-menu attach>) + this.attach === true || // If bound to a boolean (<v-menu :attach="true">) + this.attach === 'attach' // If bound as boolean prop in pug (v-menu(attach)) + ) { + props.attach = this.$el; + } else { + props.attach = this.attach; + } + + return this.$createElement(_VMenu__WEBPACK_IMPORTED_MODULE_3__["default"], { + attrs: { + role: undefined + }, + props: props, + on: { + input: function input(val) { + _this.isMenuActive = val; + _this.isFocused = val; + }, + scroll: this.onScroll + }, + ref: 'menu' + }, [this.genList()]); + }, + genSelections: function genSelections() { + var length = this.selectedItems.length; + var children = new Array(length); + var genSelection; + + if (this.$scopedSlots.selection) { + genSelection = this.genSlotSelection; + } else if (this.hasChips) { + genSelection = this.genChipSelection; + } else { + genSelection = this.genCommaSelection; + } + + while (length--) { + children[length] = genSelection(this.selectedItems[length], length, length === children.length - 1); + } + + return this.$createElement('div', { + staticClass: 'v-select__selections' + }, children); + }, + genSlotSelection: function genSlotSelection(item, index) { + var _this = this; + + return this.$scopedSlots.selection({ + attrs: { + class: 'v-chip--select' + }, + parent: this, + item: item, + index: index, + select: function select(e) { + e.stopPropagation(); + _this.selectedIndex = index; + }, + selected: index === this.selectedIndex, + disabled: !this.isInteractive + }); + }, + getMenuIndex: function getMenuIndex() { + return this.$refs.menu ? this.$refs.menu.listIndex : -1; + }, + getDisabled: function getDisabled(item) { + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_12__["getPropertyFromItem"])(item, this.itemDisabled, false); + }, + getText: function getText(item) { + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_12__["getPropertyFromItem"])(item, this.itemText, item); + }, + getValue: function getValue(item) { + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_12__["getPropertyFromItem"])(item, this.itemValue, this.getText(item)); + }, + onBlur: function onBlur(e) { + e && this.$emit('blur', e); + }, + onChipInput: function onChipInput(item) { + if (this.multiple) this.selectItem(item);else this.setValue(null); // If all items have been deleted, + // open `v-menu` + + if (this.selectedItems.length === 0) { + this.isMenuActive = true; + } else { + this.isMenuActive = false; + } + + this.selectedIndex = -1; + }, + onClick: function onClick(e) { + if (!this.isInteractive) return; + + if (!this.isAppendInner(e.target)) { + this.isMenuActive = true; + } + + if (!this.isFocused) { + this.isFocused = true; + this.$emit('focus'); + } + + this.$emit('click', e); + }, + onEscDown: function onEscDown(e) { + e.preventDefault(); + + if (this.isMenuActive) { + e.stopPropagation(); + this.isMenuActive = false; + } + }, + onKeyPress: function onKeyPress(e) { + var _this = this; + + if (this.multiple || !this.isInteractive || this.disableLookup) return; + var KEYBOARD_LOOKUP_THRESHOLD = 1000; // milliseconds + + var now = performance.now(); + + if (now - this.keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) { + this.keyboardLookupPrefix = ''; + } + + this.keyboardLookupPrefix += e.key.toLowerCase(); + this.keyboardLookupLastTime = now; + var index = this.allItems.findIndex(function (item) { + var text = (_this.getText(item) || '').toString(); + return text.toLowerCase().startsWith(_this.keyboardLookupPrefix); + }); + var item = this.allItems[index]; + + if (index !== -1) { + this.lastItem = Math.max(this.lastItem, index + 5); + this.setValue(this.returnObject ? item : this.getValue(item)); + this.$nextTick(function () { + return _this.$refs.menu.getTiles(); + }); + setTimeout(function () { + return _this.setMenuIndex(index); + }); + } + }, + onKeyDown: function onKeyDown(e) { + var _this = this; + + if (this.isReadonly && e.keyCode !== _util_helpers__WEBPACK_IMPORTED_MODULE_12__["keyCodes"].tab) return; + var keyCode = e.keyCode; + var menu = this.$refs.menu; // If enter, space, open menu + + if ([_util_helpers__WEBPACK_IMPORTED_MODULE_12__["keyCodes"].enter, _util_helpers__WEBPACK_IMPORTED_MODULE_12__["keyCodes"].space].includes(keyCode)) this.activateMenu(); + this.$emit('keydown', e); + if (!menu) return; // If menu is active, allow default + // listIndex change from menu + + if (this.isMenuActive && keyCode !== _util_helpers__WEBPACK_IMPORTED_MODULE_12__["keyCodes"].tab) { + this.$nextTick(function () { + menu.changeListIndex(e); + + _this.$emit('update:list-index', menu.listIndex); + }); + } // If menu is not active, up and down can do + // one of 2 things. If multiple, opens the + // menu, if not, will cycle through all + // available options + + + if (!this.isMenuActive && [_util_helpers__WEBPACK_IMPORTED_MODULE_12__["keyCodes"].up, _util_helpers__WEBPACK_IMPORTED_MODULE_12__["keyCodes"].down].includes(keyCode)) return this.onUpDown(e); // If escape deactivate the menu + + if (keyCode === _util_helpers__WEBPACK_IMPORTED_MODULE_12__["keyCodes"].esc) return this.onEscDown(e); // If tab - select item or close menu + + if (keyCode === _util_helpers__WEBPACK_IMPORTED_MODULE_12__["keyCodes"].tab) return this.onTabDown(e); // If space preventDefault + + if (keyCode === _util_helpers__WEBPACK_IMPORTED_MODULE_12__["keyCodes"].space) return this.onSpaceDown(e); + }, + onMenuActiveChange: function onMenuActiveChange(val) { + // If menu is closing and mulitple + // or menuIndex is already set + // skip menu index recalculation + if (this.multiple && !val || this.getMenuIndex() > -1) return; + var menu = this.$refs.menu; + if (!menu || !this.isDirty) return; // When menu opens, set index of first active item + + for (var i = 0; i < menu.tiles.length; i++) { + if (menu.tiles[i].getAttribute('aria-selected') === 'true') { + this.setMenuIndex(i); + break; + } + } + }, + onMouseUp: function onMouseUp(e) { + var _this = this; // eslint-disable-next-line sonarjs/no-collapsible-if + + + if (this.hasMouseDown && e.which !== 3 && this.isInteractive) { + // If append inner is present + // and the target is itself + // or inside, toggle menu + if (this.isAppendInner(e.target)) { + this.$nextTick(function () { + return _this.isMenuActive = !_this.isMenuActive; + }); + } + } + + _VTextField_VTextField__WEBPACK_IMPORTED_MODULE_6__["default"].options.methods.onMouseUp.call(this, e); + }, + onScroll: function onScroll() { + var _this = this; + + if (!this.isMenuActive) { + requestAnimationFrame(function () { + return _this.getContent().scrollTop = 0; + }); + } else { + if (this.lastItem > this.computedItems.length) return; + var showMoreItems = this.getContent().scrollHeight - (this.getContent().scrollTop + this.getContent().clientHeight) < 200; + + if (showMoreItems) { + this.lastItem += 20; + } + } + }, + onSpaceDown: function onSpaceDown(e) { + e.preventDefault(); + }, + onTabDown: function onTabDown(e) { + var menu = this.$refs.menu; + if (!menu) return; + var activeTile = menu.activeTile; // An item that is selected by + // menu-index should toggled + + if (!this.multiple && activeTile && this.isMenuActive) { + e.preventDefault(); + e.stopPropagation(); + activeTile.click(); + } else { + // If we make it here, + // the user has no selected indexes + // and is probably tabbing out + this.blur(e); + } + }, + onUpDown: function onUpDown(e) { + var menu = this.$refs.menu; + if (!menu) return; + e.preventDefault(); // Multiple selects do not cycle their value + // when pressing up or down, instead activate + // the menu + + if (this.multiple) return this.activateMenu(); + var keyCode = e.keyCode; // Cycle through available values to achieve + // select native behavior + + menu.isBooted = true; + window.requestAnimationFrame(function () { + menu.getTiles(); + _util_helpers__WEBPACK_IMPORTED_MODULE_12__["keyCodes"].up === keyCode ? menu.prevTile() : menu.nextTile(); + menu.activeTile && menu.activeTile.click(); + }); + }, + selectItem: function selectItem(item) { + var _this = this; + + if (!this.multiple) { + this.setValue(this.returnObject ? item : this.getValue(item)); + this.isMenuActive = false; + } else { + var internalValue = (this.internalValue || []).slice(); + var i = this.findExistingIndex(item); + i !== -1 ? internalValue.splice(i, 1) : internalValue.push(item); + this.setValue(internalValue.map(function (i) { + return _this.returnObject ? i : _this.getValue(i); + })); // When selecting multiple + // adjust menu after each + // selection + + this.$nextTick(function () { + _this.$refs.menu && _this.$refs.menu.updateDimensions(); + }); // We only need to reset list index for multiple + // to keep highlight when an item is toggled + // on and off + + if (!this.multiple) return; + var listIndex_1 = this.getMenuIndex(); + this.setMenuIndex(-1); // There is no item to re-highlight + // when selections are hidden + + if (this.hideSelected) return; + this.$nextTick(function () { + return _this.setMenuIndex(listIndex_1); + }); + } + }, + setMenuIndex: function setMenuIndex(index) { + this.$refs.menu && (this.$refs.menu.listIndex = index); + }, + setSelectedItems: function setSelectedItems() { + var e_1, _a; + + var _this = this; + + var selectedItems = []; + var values = !this.multiple || !Array.isArray(this.internalValue) ? [this.internalValue] : this.internalValue; + + var _loop_1 = function _loop_1(value) { + var index = this_1.allItems.findIndex(function (v) { + return _this.valueComparator(_this.getValue(v), _this.getValue(value)); + }); + + if (index > -1) { + selectedItems.push(this_1.allItems[index]); + } + }; + + var this_1 = this; + + try { + for (var values_1 = __values(values), values_1_1 = values_1.next(); !values_1_1.done; values_1_1 = values_1.next()) { + var value = values_1_1.value; + + _loop_1(value); + } + } catch (e_1_1) { + e_1 = { + error: e_1_1 + }; + } finally { + try { + if (values_1_1 && !values_1_1.done && (_a = values_1.return)) _a.call(values_1); + } finally { + if (e_1) throw e_1.error; + } + } + + this.selectedItems = selectedItems; + }, + setValue: function setValue(value) { + var oldValue = this.internalValue; + this.internalValue = value; + value !== oldValue && this.$emit('change', value); + }, + isAppendInner: function isAppendInner(target) { + // return true if append inner is present + // and the target is itself or inside + var appendInner = this.$refs['append-inner']; + return appendInner && (appendInner === target || appendInner.contains(target)); + } + } +})); + +/***/ }), + +/***/ "./src/components/VSelect/VSelectList.ts": +/*!***********************************************!*\ + !*** ./src/components/VSelect/VSelectList.ts ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VCheckbox_VSimpleCheckbox__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../VCheckbox/VSimpleCheckbox */ "./src/components/VCheckbox/VSimpleCheckbox.ts"); +/* harmony import */ var _VDivider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VDivider */ "./src/components/VDivider/index.ts"); +/* harmony import */ var _VSubheader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../VSubheader */ "./src/components/VSubheader/index.ts"); +/* harmony import */ var _VList__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../VList */ "./src/components/VList/index.ts"); +/* harmony import */ var _directives_ripple__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../directives/ripple */ "./src/directives/ripple/index.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Components + + + + + + // Directives + + // Mixins + + + // Helpers + + // Types + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_8__["default"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_5__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_6__["default"]).extend({ + name: 'v-select-list', + // https://github.com/vuejs/vue/issues/6872 + directives: { + ripple: _directives_ripple__WEBPACK_IMPORTED_MODULE_4__["default"] + }, + props: { + action: Boolean, + dense: Boolean, + hideSelected: Boolean, + items: { + type: Array, + default: function _default() { + return []; + } + }, + itemDisabled: { + type: [String, Array, Function], + default: 'disabled' + }, + itemText: { + type: [String, Array, Function], + default: 'text' + }, + itemValue: { + type: [String, Array, Function], + default: 'value' + }, + noDataText: String, + noFilter: Boolean, + searchInput: null, + selectedItems: { + type: Array, + default: function _default() { + return []; + } + } + }, + computed: { + parsedItems: function parsedItems() { + var _this = this; + + return this.selectedItems.map(function (item) { + return _this.getValue(item); + }); + }, + tileActiveClass: function tileActiveClass() { + return Object.keys(this.setTextColor(this.color).class || {}).join(' '); + }, + staticNoDataTile: function staticNoDataTile() { + var tile = { + attrs: { + role: undefined + }, + on: { + mousedown: function mousedown(e) { + return e.preventDefault(); + } + } + }; + return this.$createElement(_VList__WEBPACK_IMPORTED_MODULE_3__["VListItem"], tile, [this.genTileContent(this.noDataText)]); + } + }, + methods: { + genAction: function genAction(item, inputValue) { + var _this = this; + + return this.$createElement(_VList__WEBPACK_IMPORTED_MODULE_3__["VListItemAction"], [this.$createElement(_VCheckbox_VSimpleCheckbox__WEBPACK_IMPORTED_MODULE_0__["default"], { + props: { + color: this.color, + value: inputValue + }, + on: { + input: function input() { + return _this.$emit('select', item); + } + } + })]); + }, + genDivider: function genDivider(props) { + return this.$createElement(_VDivider__WEBPACK_IMPORTED_MODULE_1__["default"], { + props: props + }); + }, + genFilteredText: function genFilteredText(text) { + text = text || ''; + if (!this.searchInput || this.noFilter) return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_7__["escapeHTML"])(text); + + var _a = this.getMaskedCharacters(text), + start = _a.start, + middle = _a.middle, + end = _a.end; + + return "" + Object(_util_helpers__WEBPACK_IMPORTED_MODULE_7__["escapeHTML"])(start) + this.genHighlight(middle) + Object(_util_helpers__WEBPACK_IMPORTED_MODULE_7__["escapeHTML"])(end); + }, + genHeader: function genHeader(props) { + return this.$createElement(_VSubheader__WEBPACK_IMPORTED_MODULE_2__["default"], { + props: props + }, props.header); + }, + genHighlight: function genHighlight(text) { + return "<span class=\"v-list-item__mask\">" + Object(_util_helpers__WEBPACK_IMPORTED_MODULE_7__["escapeHTML"])(text) + "</span>"; + }, + getMaskedCharacters: function getMaskedCharacters(text) { + var searchInput = (this.searchInput || '').toString().toLocaleLowerCase(); + var index = text.toLocaleLowerCase().indexOf(searchInput); + if (index < 0) return { + start: text, + middle: '', + end: '' + }; + var start = text.slice(0, index); + var middle = text.slice(index, index + searchInput.length); + var end = text.slice(index + searchInput.length); + return { + start: start, + middle: middle, + end: end + }; + }, + genTile: function genTile(_a) { + var _this = this; + + var item = _a.item, + index = _a.index, + _b = _a.disabled, + disabled = _b === void 0 ? null : _b, + _c = _a.value, + value = _c === void 0 ? false : _c; + if (!value) value = this.hasItem(item); + + if (item === Object(item)) { + disabled = disabled !== null ? disabled : this.getDisabled(item); + } + + var tile = { + attrs: { + // Default behavior in list does not + // contain aria-selected by default + 'aria-selected': String(value), + id: "list-item-" + this._uid + "-" + index, + role: 'option' + }, + on: { + mousedown: function mousedown(e) { + // Prevent onBlur from being called + e.preventDefault(); + }, + click: function click() { + return disabled || _this.$emit('select', item); + } + }, + props: { + activeClass: this.tileActiveClass, + disabled: disabled, + ripple: true, + inputValue: value + } + }; + + if (!this.$scopedSlots.item) { + return this.$createElement(_VList__WEBPACK_IMPORTED_MODULE_3__["VListItem"], tile, [this.action && !this.hideSelected && this.items.length > 0 ? this.genAction(item, value) : null, this.genTileContent(item, index)]); + } + + var parent = this; + var scopedSlot = this.$scopedSlots.item({ + parent: parent, + item: item, + attrs: __assign(__assign({}, tile.attrs), tile.props), + on: tile.on + }); + return this.needsTile(scopedSlot) ? this.$createElement(_VList__WEBPACK_IMPORTED_MODULE_3__["VListItem"], tile, scopedSlot) : scopedSlot; + }, + genTileContent: function genTileContent(item, index) { + if (index === void 0) { + index = 0; + } + + var innerHTML = this.genFilteredText(this.getText(item)); + return this.$createElement(_VList__WEBPACK_IMPORTED_MODULE_3__["VListItemContent"], [this.$createElement(_VList__WEBPACK_IMPORTED_MODULE_3__["VListItemTitle"], { + domProps: { + innerHTML: innerHTML + } + })]); + }, + hasItem: function hasItem(item) { + return this.parsedItems.indexOf(this.getValue(item)) > -1; + }, + needsTile: function needsTile(slot) { + return slot.length !== 1 || slot[0].componentOptions == null || slot[0].componentOptions.Ctor.options.name !== 'v-list-item'; + }, + getDisabled: function getDisabled(item) { + return Boolean(Object(_util_helpers__WEBPACK_IMPORTED_MODULE_7__["getPropertyFromItem"])(item, this.itemDisabled, false)); + }, + getText: function getText(item) { + return String(Object(_util_helpers__WEBPACK_IMPORTED_MODULE_7__["getPropertyFromItem"])(item, this.itemText, item)); + }, + getValue: function getValue(item) { + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_7__["getPropertyFromItem"])(item, this.itemValue, this.getText(item)); + } + }, + render: function render() { + var children = []; + var itemsLength = this.items.length; + + for (var index = 0; index < itemsLength; index++) { + var item = this.items[index]; + if (this.hideSelected && this.hasItem(item)) continue; + if (item == null) children.push(this.genTile({ + item: item, + index: index + }));else if (item.header) children.push(this.genHeader(item));else if (item.divider) children.push(this.genDivider(item));else children.push(this.genTile({ + item: item, + index: index + })); + } + + children.length || children.push(this.$slots['no-data'] || this.staticNoDataTile); + this.$slots['prepend-item'] && children.unshift(this.$slots['prepend-item']); + this.$slots['append-item'] && children.push(this.$slots['append-item']); + return this.$createElement(_VList__WEBPACK_IMPORTED_MODULE_3__["VList"], { + staticClass: 'v-select-list', + class: this.themeClasses, + attrs: { + role: 'listbox', + tabindex: -1 + }, + props: { + dense: this.dense + } + }, children); + } +})); + +/***/ }), + +/***/ "./src/components/VSelect/index.ts": +/*!*****************************************!*\ + !*** ./src/components/VSelect/index.ts ***! + \*****************************************/ +/*! exports provided: VSelect, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VSelect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VSelect */ "./src/components/VSelect/VSelect.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSelect", function() { return _VSelect__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VSelect__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VSheet/VSheet.sass": +/*!*******************************************!*\ + !*** ./src/components/VSheet/VSheet.sass ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VSheet/VSheet.ts": +/*!*****************************************!*\ + !*** ./src/components/VSheet/VSheet.ts ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VSheet_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VSheet.sass */ "./src/components/VSheet/VSheet.sass"); +/* harmony import */ var _VSheet_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VSheet_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_binds_attrs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/binds-attrs */ "./src/mixins/binds-attrs/index.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_elevatable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/elevatable */ "./src/mixins/elevatable/index.ts"); +/* harmony import */ var _mixins_measurable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/measurable */ "./src/mixins/measurable/index.ts"); +/* harmony import */ var _mixins_roundable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/roundable */ "./src/mixins/roundable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Mixins + + + + + + + // Helpers + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_7__["default"])(_mixins_binds_attrs__WEBPACK_IMPORTED_MODULE_1__["default"], _mixins_colorable__WEBPACK_IMPORTED_MODULE_2__["default"], _mixins_elevatable__WEBPACK_IMPORTED_MODULE_3__["default"], _mixins_measurable__WEBPACK_IMPORTED_MODULE_4__["default"], _mixins_roundable__WEBPACK_IMPORTED_MODULE_5__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_6__["default"]).extend({ + name: 'v-sheet', + props: { + outlined: Boolean, + shaped: Boolean, + tag: { + type: String, + default: 'div' + } + }, + computed: { + classes: function classes() { + return __assign(__assign(__assign({ + 'v-sheet': true, + 'v-sheet--outlined': this.outlined, + 'v-sheet--shaped': this.shaped + }, this.themeClasses), this.elevationClasses), this.roundedClasses); + }, + styles: function styles() { + return this.measurableStyles; + } + }, + render: function render(h) { + var data = { + class: this.classes, + style: this.styles, + on: this.listeners$ + }; + return h(this.tag, this.setBackgroundColor(this.color, data), this.$slots.default); + } +})); + +/***/ }), + +/***/ "./src/components/VSheet/index.ts": +/*!****************************************!*\ + !*** ./src/components/VSheet/index.ts ***! + \****************************************/ +/*! exports provided: VSheet, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VSheet__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VSheet */ "./src/components/VSheet/VSheet.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSheet", function() { return _VSheet__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VSheet__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VSkeletonLoader/VSkeletonLoader.sass": +/*!*************************************************************!*\ + !*** ./src/components/VSkeletonLoader/VSkeletonLoader.sass ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VSkeletonLoader/VSkeletonLoader.ts": +/*!***********************************************************!*\ + !*** ./src/components/VSkeletonLoader/VSkeletonLoader.ts ***! + \***********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VSkeletonLoader_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VSkeletonLoader.sass */ "./src/components/VSkeletonLoader/VSkeletonLoader.sass"); +/* harmony import */ var _VSkeletonLoader_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VSkeletonLoader_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_elevatable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/elevatable */ "./src/mixins/elevatable/index.ts"); +/* harmony import */ var _mixins_measurable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/measurable */ "./src/mixins/measurable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; // Styles + + + // Mixins + + + + // Utilities + + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_4__["default"])(_mixins_elevatable__WEBPACK_IMPORTED_MODULE_1__["default"], _mixins_measurable__WEBPACK_IMPORTED_MODULE_2__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_3__["default"]).extend({ + name: 'VSkeletonLoader', + props: { + boilerplate: Boolean, + loading: Boolean, + tile: Boolean, + transition: String, + type: String, + types: { + type: Object, + default: function _default() { + return {}; + } + } + }, + computed: { + attrs: function attrs() { + if (!this.isLoading) return this.$attrs; + return !this.boilerplate ? __assign({ + 'aria-busy': true, + 'aria-live': 'polite', + role: 'alert' + }, this.$attrs) : {}; + }, + classes: function classes() { + return __assign(__assign({ + 'v-skeleton-loader--boilerplate': this.boilerplate, + 'v-skeleton-loader--is-loading': this.isLoading, + 'v-skeleton-loader--tile': this.tile + }, this.themeClasses), this.elevationClasses); + }, + isLoading: function isLoading() { + return !('default' in this.$scopedSlots) || this.loading; + }, + rootTypes: function rootTypes() { + return __assign({ + actions: 'button@2', + article: 'heading, paragraph', + avatar: 'avatar', + button: 'button', + card: 'image, card-heading', + 'card-avatar': 'image, list-item-avatar', + 'card-heading': 'heading', + chip: 'chip', + 'date-picker': 'list-item, card-heading, divider, date-picker-options, date-picker-days, actions', + 'date-picker-options': 'text, avatar@2', + 'date-picker-days': 'avatar@28', + heading: 'heading', + image: 'image', + 'list-item': 'text', + 'list-item-avatar': 'avatar, text', + 'list-item-two-line': 'sentences', + 'list-item-avatar-two-line': 'avatar, sentences', + 'list-item-three-line': 'paragraph', + 'list-item-avatar-three-line': 'avatar, paragraph', + paragraph: 'text@3', + sentences: 'text@2', + table: 'table-heading, table-thead, table-tbody, table-tfoot', + 'table-heading': 'heading, text', + 'table-thead': 'heading@6', + 'table-tbody': 'table-row-divider@6', + 'table-row-divider': 'table-row, divider', + 'table-row': 'table-cell@6', + 'table-cell': 'text', + 'table-tfoot': 'text@2, avatar@2', + text: 'text' + }, this.types); + } + }, + methods: { + genBone: function genBone(text, children) { + return this.$createElement('div', { + staticClass: "v-skeleton-loader__" + text + " v-skeleton-loader__bone" + }, children); + }, + genBones: function genBones(bone) { + var _this = this; // e.g. 'text@3' + + + var _a = __read(bone.split('@'), 2), + type = _a[0], + length = _a[1]; + + var generator = function generator() { + return _this.genStructure(type); + }; // Generate a length array based upon + // value after @ in the bone string + + + return Array.from({ + length: length + }).map(generator); + }, + // Fix type when this is merged + // https://github.com/microsoft/TypeScript/pull/33050 + genStructure: function genStructure(type) { + var children = []; + type = type || this.type || ''; + var bone = this.rootTypes[type] || ''; // End of recursion, do nothing + + /* eslint-disable-next-line no-empty, brace-style */ + + if (type === bone) {} // Array of values - e.g. 'heading, paragraph, text@2' + else if (type.indexOf(',') > -1) return this.mapBones(type); // Array of values - e.g. 'paragraph@4' + else if (type.indexOf('@') > -1) return this.genBones(type); // Array of values - e.g. 'card@2' + else if (bone.indexOf(',') > -1) children = this.mapBones(bone); // Array of values - e.g. 'list-item@2' + else if (bone.indexOf('@') > -1) children = this.genBones(bone); // Single value - e.g. 'card-heading' + else if (bone) children.push(this.genStructure(bone)); + + return [this.genBone(type, children)]; + }, + genSkeleton: function genSkeleton() { + var children = []; + if (!this.isLoading) children.push(Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["getSlot"])(this));else children.push(this.genStructure()); + /* istanbul ignore else */ + + if (!this.transition) return children; + /* istanbul ignore next */ + + return this.$createElement('transition', { + props: { + name: this.transition + }, + // Only show transition when + // content has been loaded + on: { + afterEnter: this.resetStyles, + beforeEnter: this.onBeforeEnter, + beforeLeave: this.onBeforeLeave, + leaveCancelled: this.resetStyles + } + }, children); + }, + mapBones: function mapBones(bones) { + // Remove spaces and return array of structures + return bones.replace(/\s/g, '').split(',').map(this.genStructure); + }, + onBeforeEnter: function onBeforeEnter(el) { + this.resetStyles(el); + if (!this.isLoading) return; + el._initialStyle = { + display: el.style.display, + transition: el.style.transition + }; + el.style.setProperty('transition', 'none', 'important'); + }, + onBeforeLeave: function onBeforeLeave(el) { + el.style.setProperty('display', 'none', 'important'); + }, + resetStyles: function resetStyles(el) { + if (!el._initialStyle) return; + el.style.display = el._initialStyle.display || ''; + el.style.transition = el._initialStyle.transition; + delete el._initialStyle; + } + }, + render: function render(h) { + return h('div', { + staticClass: 'v-skeleton-loader', + attrs: this.attrs, + on: this.$listeners, + class: this.classes, + style: this.isLoading ? this.measurableStyles : undefined + }, [this.genSkeleton()]); + } +})); + +/***/ }), + +/***/ "./src/components/VSkeletonLoader/index.ts": +/*!*************************************************!*\ + !*** ./src/components/VSkeletonLoader/index.ts ***! + \*************************************************/ +/*! exports provided: VSkeletonLoader, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VSkeletonLoader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VSkeletonLoader */ "./src/components/VSkeletonLoader/VSkeletonLoader.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSkeletonLoader", function() { return _VSkeletonLoader__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VSkeletonLoader__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VSlideGroup/VSlideGroup.sass": +/*!*****************************************************!*\ + !*** ./src/components/VSlideGroup/VSlideGroup.sass ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VSlideGroup/VSlideGroup.ts": +/*!***************************************************!*\ + !*** ./src/components/VSlideGroup/VSlideGroup.ts ***! + \***************************************************/ +/*! exports provided: BaseSlideGroup, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseSlideGroup", function() { return BaseSlideGroup; }); +/* harmony import */ var _VSlideGroup_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VSlideGroup.sass */ "./src/components/VSlideGroup/VSlideGroup.sass"); +/* harmony import */ var _VSlideGroup_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VSlideGroup_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VIcon */ "./src/components/VIcon/index.ts"); +/* harmony import */ var _transitions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../transitions */ "./src/components/transitions/index.ts"); +/* harmony import */ var _VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../VItemGroup/VItemGroup */ "./src/components/VItemGroup/VItemGroup.ts"); +/* harmony import */ var _mixins_mobile__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/mobile */ "./src/mixins/mobile/index.ts"); +/* harmony import */ var _directives_resize__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../directives/resize */ "./src/directives/resize/index.ts"); +/* harmony import */ var _directives_touch__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../directives/touch */ "./src/directives/touch/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Components + + + // Extensions + + // Mixins + + // Directives + + + // Utilities + + +var BaseSlideGroup = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_7__["default"])(_VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_3__["BaseItemGroup"], _mixins_mobile__WEBPACK_IMPORTED_MODULE_4__["default"]).extend({ + name: 'base-slide-group', + directives: { + Resize: _directives_resize__WEBPACK_IMPORTED_MODULE_5__["default"], + Touch: _directives_touch__WEBPACK_IMPORTED_MODULE_6__["default"] + }, + props: { + activeClass: { + type: String, + default: 'v-slide-item--active' + }, + centerActive: Boolean, + nextIcon: { + type: String, + default: '$next' + }, + prevIcon: { + type: String, + default: '$prev' + }, + showArrows: { + type: [Boolean, String], + validator: function validator(v) { + return typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v); + } + } + }, + data: function data() { + return { + internalItemsLength: 0, + isOverflowing: false, + resizeTimeout: 0, + startX: 0, + scrollOffset: 0, + widths: { + content: 0, + wrapper: 0 + } + }; + }, + computed: { + __cachedNext: function __cachedNext() { + return this.genTransition('next'); + }, + __cachedPrev: function __cachedPrev() { + return this.genTransition('prev'); + }, + classes: function classes() { + return __assign(__assign({}, _VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_3__["BaseItemGroup"].options.computed.classes.call(this)), { + 'v-slide-group': true, + 'v-slide-group--has-affixes': this.hasAffixes, + 'v-slide-group--is-overflowing': this.isOverflowing + }); + }, + hasAffixes: function hasAffixes() { + switch (this.showArrows) { + // Always show arrows on desktop & mobile + case 'always': + return true; + // Always show arrows on desktop + + case 'desktop': + return !this.isMobile; + // Show arrows on mobile when overflowing. + // This matches the default 2.2 behavior + + case true: + return this.isOverflowing; + // Always show on mobile + + case 'mobile': + return this.isMobile || this.isOverflowing; + // https://material.io/components/tabs#scrollable-tabs + // Always show arrows when + // overflowed on desktop + + default: + return !this.isMobile && this.isOverflowing; + } + }, + hasNext: function hasNext() { + if (!this.hasAffixes) return false; + var _a = this.widths, + content = _a.content, + wrapper = _a.wrapper; // Check one scroll ahead to know the width of right-most item + + return content > Math.abs(this.scrollOffset) + wrapper; + }, + hasPrev: function hasPrev() { + return this.hasAffixes && this.scrollOffset !== 0; + } + }, + watch: { + internalValue: 'setWidths', + // When overflow changes, the arrows alter + // the widths of the content and wrapper + // and need to be recalculated + isOverflowing: 'setWidths', + scrollOffset: function scrollOffset(val) { + this.$refs.content.style.transform = "translateX(" + -val + "px)"; + } + }, + beforeUpdate: function beforeUpdate() { + this.internalItemsLength = (this.$children || []).length; + }, + updated: function updated() { + if (this.internalItemsLength === (this.$children || []).length) return; + this.setWidths(); + }, + methods: { + // Always generate next for scrollable hint + genNext: function genNext() { + var _this = this; + + var slot = this.$scopedSlots.next ? this.$scopedSlots.next({}) : this.$slots.next || this.__cachedNext; + return this.$createElement('div', { + staticClass: 'v-slide-group__next', + class: { + 'v-slide-group__next--disabled': !this.hasNext + }, + on: { + click: function click() { + return _this.onAffixClick('next'); + } + }, + key: 'next' + }, [slot]); + }, + genContent: function genContent() { + return this.$createElement('div', { + staticClass: 'v-slide-group__content', + ref: 'content' + }, this.$slots.default); + }, + genData: function genData() { + return { + class: this.classes, + directives: [{ + name: 'resize', + value: this.onResize + }] + }; + }, + genIcon: function genIcon(location) { + var icon = location; + + if (this.$vuetify.rtl && location === 'prev') { + icon = 'next'; + } else if (this.$vuetify.rtl && location === 'next') { + icon = 'prev'; + } + + var upperLocation = "" + location[0].toUpperCase() + location.slice(1); + var hasAffix = this["has" + upperLocation]; + if (!this.showArrows && !hasAffix) return null; + return this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_1__["default"], { + props: { + disabled: !hasAffix + } + }, this[icon + "Icon"]); + }, + // Always generate prev for scrollable hint + genPrev: function genPrev() { + var _this = this; + + var slot = this.$scopedSlots.prev ? this.$scopedSlots.prev({}) : this.$slots.prev || this.__cachedPrev; + return this.$createElement('div', { + staticClass: 'v-slide-group__prev', + class: { + 'v-slide-group__prev--disabled': !this.hasPrev + }, + on: { + click: function click() { + return _this.onAffixClick('prev'); + } + }, + key: 'prev' + }, [slot]); + }, + genTransition: function genTransition(location) { + return this.$createElement(_transitions__WEBPACK_IMPORTED_MODULE_2__["VFadeTransition"], [this.genIcon(location)]); + }, + genWrapper: function genWrapper() { + var _this = this; + + return this.$createElement('div', { + staticClass: 'v-slide-group__wrapper', + directives: [{ + name: 'touch', + value: { + start: function start(e) { + return _this.overflowCheck(e, _this.onTouchStart); + }, + move: function move(e) { + return _this.overflowCheck(e, _this.onTouchMove); + }, + end: function end(e) { + return _this.overflowCheck(e, _this.onTouchEnd); + } + } + }], + ref: 'wrapper' + }, [this.genContent()]); + }, + calculateNewOffset: function calculateNewOffset(direction, widths, rtl, currentScrollOffset) { + var sign = rtl ? -1 : 1; + var newAbosluteOffset = sign * currentScrollOffset + (direction === 'prev' ? -1 : 1) * widths.wrapper; + return sign * Math.max(Math.min(newAbosluteOffset, widths.content - widths.wrapper), 0); + }, + onAffixClick: function onAffixClick(location) { + this.$emit("click:" + location); + this.scrollTo(location); + }, + onResize: function onResize() { + /* istanbul ignore next */ + if (this._isDestroyed) return; + this.setWidths(); + }, + onTouchStart: function onTouchStart(e) { + var content = this.$refs.content; + this.startX = this.scrollOffset + e.touchstartX; + content.style.setProperty('transition', 'none'); + content.style.setProperty('willChange', 'transform'); + }, + onTouchMove: function onTouchMove(e) { + this.scrollOffset = this.startX - e.touchmoveX; + }, + onTouchEnd: function onTouchEnd() { + var _a = this.$refs, + content = _a.content, + wrapper = _a.wrapper; + var maxScrollOffset = content.clientWidth - wrapper.clientWidth; + content.style.setProperty('transition', null); + content.style.setProperty('willChange', null); + + if (this.$vuetify.rtl) { + /* istanbul ignore else */ + if (this.scrollOffset > 0 || !this.isOverflowing) { + this.scrollOffset = 0; + } else if (this.scrollOffset <= -maxScrollOffset) { + this.scrollOffset = -maxScrollOffset; + } + } else { + /* istanbul ignore else */ + if (this.scrollOffset < 0 || !this.isOverflowing) { + this.scrollOffset = 0; + } else if (this.scrollOffset >= maxScrollOffset) { + this.scrollOffset = maxScrollOffset; + } + } + }, + overflowCheck: function overflowCheck(e, fn) { + e.stopPropagation(); + this.isOverflowing && fn(e); + }, + scrollIntoView + /* istanbul ignore next */ + : function scrollIntoView() { + if (!this.selectedItem) { + return; + } + + if (this.selectedIndex === 0 || !this.centerActive && !this.isOverflowing) { + this.scrollOffset = 0; + } else if (this.centerActive) { + this.scrollOffset = this.calculateCenteredOffset(this.selectedItem.$el, this.widths, this.$vuetify.rtl); + } else if (this.isOverflowing) { + this.scrollOffset = this.calculateUpdatedOffset(this.selectedItem.$el, this.widths, this.$vuetify.rtl, this.scrollOffset); + } + }, + calculateUpdatedOffset: function calculateUpdatedOffset(selectedElement, widths, rtl, currentScrollOffset) { + var clientWidth = selectedElement.clientWidth; + var offsetLeft = rtl ? widths.content - selectedElement.offsetLeft - clientWidth : selectedElement.offsetLeft; + + if (rtl) { + currentScrollOffset = -currentScrollOffset; + } + + var totalWidth = widths.wrapper + currentScrollOffset; + var itemOffset = clientWidth + offsetLeft; + var additionalOffset = clientWidth * 0.4; + + if (offsetLeft <= currentScrollOffset) { + currentScrollOffset = Math.max(offsetLeft - additionalOffset, 0); + } else if (totalWidth <= itemOffset) { + currentScrollOffset = Math.min(currentScrollOffset - (totalWidth - itemOffset - additionalOffset), widths.content - widths.wrapper); + } + + return rtl ? -currentScrollOffset : currentScrollOffset; + }, + calculateCenteredOffset: function calculateCenteredOffset(selectedElement, widths, rtl) { + var offsetLeft = selectedElement.offsetLeft, + clientWidth = selectedElement.clientWidth; + + if (rtl) { + var offsetCentered = widths.content - offsetLeft - clientWidth / 2 - widths.wrapper / 2; + return -Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered)); + } else { + var offsetCentered = offsetLeft + clientWidth / 2 - widths.wrapper / 2; + return Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered)); + } + }, + scrollTo + /* istanbul ignore next */ + : function scrollTo(location) { + this.scrollOffset = this.calculateNewOffset(location, { + // Force reflow + content: this.$refs.content ? this.$refs.content.clientWidth : 0, + wrapper: this.$refs.wrapper ? this.$refs.wrapper.clientWidth : 0 + }, this.$vuetify.rtl, this.scrollOffset); + }, + setWidths + /* istanbul ignore next */ + : function setWidths() { + var _this = this; + + window.requestAnimationFrame(function () { + var _a = _this.$refs, + content = _a.content, + wrapper = _a.wrapper; + _this.widths = { + content: content ? content.clientWidth : 0, + wrapper: wrapper ? wrapper.clientWidth : 0 + }; + _this.isOverflowing = _this.widths.wrapper < _this.widths.content; + + _this.scrollIntoView(); + }); + } + }, + render: function render(h) { + return h('div', this.genData(), [this.genPrev(), this.genWrapper(), this.genNext()]); + } +}); +/* harmony default export */ __webpack_exports__["default"] = (BaseSlideGroup.extend({ + name: 'v-slide-group', + provide: function provide() { + return { + slideGroup: this + }; + } +})); + +/***/ }), + +/***/ "./src/components/VSlideGroup/VSlideItem.ts": +/*!**************************************************!*\ + !*** ./src/components/VSlideGroup/VSlideItem.ts ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VItemGroup_VItem__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../VItemGroup/VItem */ "./src/components/VItemGroup/VItem.ts"); +/* harmony import */ var _mixins_groupable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/groupable */ "./src/mixins/groupable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +// Extensions + // Mixins + + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_2__["default"])(_VItemGroup_VItem__WEBPACK_IMPORTED_MODULE_0__["BaseItem"], Object(_mixins_groupable__WEBPACK_IMPORTED_MODULE_1__["factory"])('slideGroup') +/* @vue/component */ +).extend({ + name: 'v-slide-item' +})); + +/***/ }), + +/***/ "./src/components/VSlideGroup/index.ts": +/*!*********************************************!*\ + !*** ./src/components/VSlideGroup/index.ts ***! + \*********************************************/ +/*! exports provided: VSlideGroup, VSlideItem, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VSlideGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VSlideGroup */ "./src/components/VSlideGroup/VSlideGroup.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSlideGroup", function() { return _VSlideGroup__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + +/* harmony import */ var _VSlideItem__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VSlideItem */ "./src/components/VSlideGroup/VSlideItem.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSlideItem", function() { return _VSlideItem__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + $_vuetify_subcomponents: { + VSlideGroup: _VSlideGroup__WEBPACK_IMPORTED_MODULE_0__["default"], + VSlideItem: _VSlideItem__WEBPACK_IMPORTED_MODULE_1__["default"] + } +}); + +/***/ }), + +/***/ "./src/components/VSlider/VSlider.sass": +/*!*********************************************!*\ + !*** ./src/components/VSlider/VSlider.sass ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VSlider/VSlider.ts": +/*!*******************************************!*\ + !*** ./src/components/VSlider/VSlider.ts ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VSlider_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VSlider.sass */ "./src/components/VSlider/VSlider.sass"); +/* harmony import */ var _VSlider_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VSlider_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VInput__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VInput */ "./src/components/VInput/index.ts"); +/* harmony import */ var _transitions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../transitions */ "./src/components/transitions/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _mixins_loadable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/loadable */ "./src/mixins/loadable/index.ts"); +/* harmony import */ var _directives_click_outside__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../directives/click-outside */ "./src/directives/click-outside/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + + // Components + + + // Mixins + + + // Directives + + // Helpers + + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_3__["default"])(_VInput__WEBPACK_IMPORTED_MODULE_1__["default"], _mixins_loadable__WEBPACK_IMPORTED_MODULE_4__["default"] +/* @vue/component */ +).extend({ + name: 'v-slider', + directives: { + ClickOutside: _directives_click_outside__WEBPACK_IMPORTED_MODULE_5__["default"] + }, + mixins: [_mixins_loadable__WEBPACK_IMPORTED_MODULE_4__["default"]], + props: { + disabled: Boolean, + inverseLabel: Boolean, + max: { + type: [Number, String], + default: 100 + }, + min: { + type: [Number, String], + default: 0 + }, + step: { + type: [Number, String], + default: 1 + }, + thumbColor: String, + thumbLabel: { + type: [Boolean, String], + default: undefined, + validator: function validator(v) { + return typeof v === 'boolean' || v === 'always'; + } + }, + thumbSize: { + type: [Number, String], + default: 32 + }, + tickLabels: { + type: Array, + default: function _default() { + return []; + } + }, + ticks: { + type: [Boolean, String], + default: false, + validator: function validator(v) { + return typeof v === 'boolean' || v === 'always'; + } + }, + tickSize: { + type: [Number, String], + default: 2 + }, + trackColor: String, + trackFillColor: String, + value: [Number, String], + vertical: Boolean + }, + data: function data() { + return { + app: null, + oldValue: null, + keyPressed: 0, + isFocused: false, + isActive: false, + noClick: false + }; + }, + computed: { + classes: function classes() { + return __assign(__assign({}, _VInput__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.classes.call(this)), { + 'v-input__slider': true, + 'v-input__slider--vertical': this.vertical, + 'v-input__slider--inverse-label': this.inverseLabel + }); + }, + internalValue: { + get: function get() { + return this.lazyValue; + }, + set: function set(val) { + val = isNaN(val) ? this.minValue : val; // Round value to ensure the + // entire slider range can + // be selected with step + + var value = this.roundValue(Math.min(Math.max(val, this.minValue), this.maxValue)); + if (value === this.lazyValue) return; + this.lazyValue = value; + this.$emit('input', value); + } + }, + trackTransition: function trackTransition() { + return this.keyPressed >= 2 ? 'none' : ''; + }, + minValue: function minValue() { + return parseFloat(this.min); + }, + maxValue: function maxValue() { + return parseFloat(this.max); + }, + stepNumeric: function stepNumeric() { + return this.step > 0 ? parseFloat(this.step) : 0; + }, + inputWidth: function inputWidth() { + return (this.roundValue(this.internalValue) - this.minValue) / (this.maxValue - this.minValue) * 100; + }, + trackFillStyles: function trackFillStyles() { + var _a; + + var startDir = this.vertical ? 'bottom' : 'left'; + var endDir = this.vertical ? 'top' : 'right'; + var valueDir = this.vertical ? 'height' : 'width'; + var start = this.$vuetify.rtl ? 'auto' : '0'; + var end = this.$vuetify.rtl ? '0' : 'auto'; + var value = this.isDisabled ? "calc(" + this.inputWidth + "% - 10px)" : this.inputWidth + "%"; + return _a = { + transition: this.trackTransition + }, _a[startDir] = start, _a[endDir] = end, _a[valueDir] = value, _a; + }, + trackStyles: function trackStyles() { + var _a; + + var startDir = this.vertical ? this.$vuetify.rtl ? 'bottom' : 'top' : this.$vuetify.rtl ? 'left' : 'right'; + var endDir = this.vertical ? 'height' : 'width'; + var start = '0px'; + var end = this.isDisabled ? "calc(" + (100 - this.inputWidth) + "% - 10px)" : "calc(" + (100 - this.inputWidth) + "%)"; + return _a = { + transition: this.trackTransition + }, _a[startDir] = start, _a[endDir] = end, _a; + }, + showTicks: function showTicks() { + return this.tickLabels.length > 0 || !!(!this.isDisabled && this.stepNumeric && this.ticks); + }, + numTicks: function numTicks() { + return Math.ceil((this.maxValue - this.minValue) / this.stepNumeric); + }, + showThumbLabel: function showThumbLabel() { + return !this.isDisabled && !!(this.thumbLabel || this.$scopedSlots['thumb-label']); + }, + computedTrackColor: function computedTrackColor() { + if (this.isDisabled) return undefined; + if (this.trackColor) return this.trackColor; + if (this.isDark) return this.validationState; + return this.validationState || 'primary lighten-3'; + }, + computedTrackFillColor: function computedTrackFillColor() { + if (this.isDisabled) return undefined; + if (this.trackFillColor) return this.trackFillColor; + return this.validationState || this.computedColor; + }, + computedThumbColor: function computedThumbColor() { + if (this.thumbColor) return this.thumbColor; + return this.validationState || this.computedColor; + } + }, + watch: { + min: function min(val) { + var parsed = parseFloat(val); + parsed > this.internalValue && this.$emit('input', parsed); + }, + max: function max(val) { + var parsed = parseFloat(val); + parsed < this.internalValue && this.$emit('input', parsed); + }, + value: { + handler: function handler(v) { + this.internalValue = v; + } + } + }, + // If done in as immediate in + // value watcher, causes issues + // with vue-test-utils + beforeMount: function beforeMount() { + this.internalValue = this.value; + }, + mounted: function mounted() { + // Without a v-app, iOS does not work with body selectors + this.app = document.querySelector('[data-app]') || Object(_util_console__WEBPACK_IMPORTED_MODULE_7__["consoleWarn"])('Missing v-app or a non-body wrapping element with the [data-app] attribute', this); + }, + methods: { + genDefaultSlot: function genDefaultSlot() { + var children = [this.genLabel()]; + var slider = this.genSlider(); + this.inverseLabel ? children.unshift(slider) : children.push(slider); + children.push(this.genProgress()); + return children; + }, + genSlider: function genSlider() { + return this.$createElement('div', { + class: __assign({ + 'v-slider': true, + 'v-slider--horizontal': !this.vertical, + 'v-slider--vertical': this.vertical, + 'v-slider--focused': this.isFocused, + 'v-slider--active': this.isActive, + 'v-slider--disabled': this.isDisabled, + 'v-slider--readonly': this.isReadonly + }, this.themeClasses), + directives: [{ + name: 'click-outside', + value: this.onBlur + }], + on: { + click: this.onSliderClick + } + }, this.genChildren()); + }, + genChildren: function genChildren() { + return [this.genInput(), this.genTrackContainer(), this.genSteps(), this.genThumbContainer(this.internalValue, this.inputWidth, this.isActive, this.isFocused, this.onThumbMouseDown, this.onFocus, this.onBlur)]; + }, + genInput: function genInput() { + return this.$createElement('input', { + attrs: __assign({ + value: this.internalValue, + id: this.computedId, + disabled: true, + readonly: true, + tabindex: -1 + }, this.$attrs) + }); + }, + genTrackContainer: function genTrackContainer() { + var children = [this.$createElement('div', this.setBackgroundColor(this.computedTrackColor, { + staticClass: 'v-slider__track-background', + style: this.trackStyles + })), this.$createElement('div', this.setBackgroundColor(this.computedTrackFillColor, { + staticClass: 'v-slider__track-fill', + style: this.trackFillStyles + }))]; + return this.$createElement('div', { + staticClass: 'v-slider__track-container', + ref: 'track' + }, children); + }, + genSteps: function genSteps() { + var _this = this; + + if (!this.step || !this.showTicks) return null; + var tickSize = parseFloat(this.tickSize); + var range = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_6__["createRange"])(this.numTicks + 1); + var direction = this.vertical ? 'bottom' : this.$vuetify.rtl ? 'right' : 'left'; + var offsetDirection = this.vertical ? this.$vuetify.rtl ? 'left' : 'right' : 'top'; + if (this.vertical) range.reverse(); + var ticks = range.map(function (index) { + var _a; + + var children = []; + + if (_this.tickLabels[index]) { + children.push(_this.$createElement('div', { + staticClass: 'v-slider__tick-label' + }, _this.tickLabels[index])); + } + + var width = index * (100 / _this.numTicks); + var filled = _this.$vuetify.rtl ? 100 - _this.inputWidth < width : width < _this.inputWidth; + return _this.$createElement('span', { + key: index, + staticClass: 'v-slider__tick', + class: { + 'v-slider__tick--filled': filled + }, + style: (_a = { + width: tickSize + "px", + height: tickSize + "px" + }, _a[direction] = "calc(" + width + "% - " + tickSize / 2 + "px)", _a[offsetDirection] = "calc(50% - " + tickSize / 2 + "px)", _a) + }, children); + }); + return this.$createElement('div', { + staticClass: 'v-slider__ticks-container', + class: { + 'v-slider__ticks-container--always-show': this.ticks === 'always' || this.tickLabels.length > 0 + } + }, ticks); + }, + genThumbContainer: function genThumbContainer(value, valueWidth, isActive, isFocused, onDrag, onFocus, onBlur, ref) { + if (ref === void 0) { + ref = 'thumb'; + } + + var children = [this.genThumb()]; + var thumbLabelContent = this.genThumbLabelContent(value); + this.showThumbLabel && children.push(this.genThumbLabel(thumbLabelContent)); + return this.$createElement('div', this.setTextColor(this.computedThumbColor, { + ref: ref, + key: ref, + staticClass: 'v-slider__thumb-container', + class: { + 'v-slider__thumb-container--active': isActive, + 'v-slider__thumb-container--focused': isFocused, + 'v-slider__thumb-container--show-label': this.showThumbLabel + }, + style: this.getThumbContainerStyles(valueWidth), + attrs: __assign({ + role: 'slider', + tabindex: this.isDisabled ? -1 : this.$attrs.tabindex ? this.$attrs.tabindex : 0, + 'aria-label': this.label, + 'aria-valuemin': this.min, + 'aria-valuemax': this.max, + 'aria-valuenow': this.internalValue, + 'aria-readonly': String(this.isReadonly), + 'aria-orientation': this.vertical ? 'vertical' : 'horizontal' + }, this.$attrs), + on: { + focus: onFocus, + blur: onBlur, + keydown: this.onKeyDown, + keyup: this.onKeyUp, + touchstart: onDrag, + mousedown: onDrag + } + }), children); + }, + genThumbLabelContent: function genThumbLabelContent(value) { + return this.$scopedSlots['thumb-label'] ? this.$scopedSlots['thumb-label']({ + value: value + }) : [this.$createElement('span', [String(value)])]; + }, + genThumbLabel: function genThumbLabel(content) { + var size = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_6__["convertToUnit"])(this.thumbSize); + var transform = this.vertical ? "translateY(20%) translateY(" + (Number(this.thumbSize) / 3 - 1) + "px) translateX(55%) rotate(135deg)" : "translateY(-20%) translateY(-12px) translateX(-50%) rotate(45deg)"; + return this.$createElement(_transitions__WEBPACK_IMPORTED_MODULE_2__["VScaleTransition"], { + props: { + origin: 'bottom center' + } + }, [this.$createElement('div', { + staticClass: 'v-slider__thumb-label-container', + directives: [{ + name: 'show', + value: this.isFocused || this.isActive || this.thumbLabel === 'always' + }] + }, [this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, { + staticClass: 'v-slider__thumb-label', + style: { + height: size, + width: size, + transform: transform + } + }), [this.$createElement('div', content)])])]); + }, + genThumb: function genThumb() { + return this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, { + staticClass: 'v-slider__thumb' + })); + }, + getThumbContainerStyles: function getThumbContainerStyles(width) { + var _a; + + var direction = this.vertical ? 'top' : 'left'; + var value = this.$vuetify.rtl ? 100 - width : width; + value = this.vertical ? 100 - value : value; + return _a = { + transition: this.trackTransition + }, _a[direction] = value + "%", _a; + }, + onThumbMouseDown: function onThumbMouseDown(e) { + e.preventDefault(); + this.oldValue = this.internalValue; + this.keyPressed = 2; + this.isActive = true; + var mouseUpOptions = _util_helpers__WEBPACK_IMPORTED_MODULE_6__["passiveSupported"] ? { + passive: true, + capture: true + } : true; + var mouseMoveOptions = _util_helpers__WEBPACK_IMPORTED_MODULE_6__["passiveSupported"] ? { + passive: true + } : false; + + if ('touches' in e) { + this.app.addEventListener('touchmove', this.onMouseMove, mouseMoveOptions); + Object(_util_helpers__WEBPACK_IMPORTED_MODULE_6__["addOnceEventListener"])(this.app, 'touchend', this.onSliderMouseUp, mouseUpOptions); + } else { + this.app.addEventListener('mousemove', this.onMouseMove, mouseMoveOptions); + Object(_util_helpers__WEBPACK_IMPORTED_MODULE_6__["addOnceEventListener"])(this.app, 'mouseup', this.onSliderMouseUp, mouseUpOptions); + } + + this.$emit('start', this.internalValue); + }, + onSliderMouseUp: function onSliderMouseUp(e) { + e.stopPropagation(); + this.keyPressed = 0; + var mouseMoveOptions = _util_helpers__WEBPACK_IMPORTED_MODULE_6__["passiveSupported"] ? { + passive: true + } : false; + this.app.removeEventListener('touchmove', this.onMouseMove, mouseMoveOptions); + this.app.removeEventListener('mousemove', this.onMouseMove, mouseMoveOptions); + this.$emit('mouseup', e); + this.$emit('end', this.internalValue); + + if (!Object(_util_helpers__WEBPACK_IMPORTED_MODULE_6__["deepEqual"])(this.oldValue, this.internalValue)) { + this.$emit('change', this.internalValue); + this.noClick = true; + } + + this.isActive = false; + }, + onMouseMove: function onMouseMove(e) { + var value = this.parseMouseMove(e).value; + this.internalValue = value; + }, + onKeyDown: function onKeyDown(e) { + if (!this.isInteractive) return; + var value = this.parseKeyDown(e, this.internalValue); + if (value == null || value < this.minValue || value > this.maxValue) return; + this.internalValue = value; + this.$emit('change', value); + }, + onKeyUp: function onKeyUp() { + this.keyPressed = 0; + }, + onSliderClick: function onSliderClick(e) { + if (this.noClick) { + this.noClick = false; + return; + } + + var thumb = this.$refs.thumb; + thumb.focus(); + this.onMouseMove(e); + this.$emit('change', this.internalValue); + }, + onBlur: function onBlur(e) { + this.isFocused = false; + this.$emit('blur', e); + }, + onFocus: function onFocus(e) { + this.isFocused = true; + this.$emit('focus', e); + }, + parseMouseMove: function parseMouseMove(e) { + var start = this.vertical ? 'top' : 'left'; + var length = this.vertical ? 'height' : 'width'; + var click = this.vertical ? 'clientY' : 'clientX'; + + var _a = this.$refs.track.getBoundingClientRect(), + _b = start, + trackStart = _a[_b], + _c = length, + trackLength = _a[_c]; + + var clickOffset = 'touches' in e ? e.touches[0][click] : e[click]; // Can we get rid of any here? + // It is possible for left to be NaN, force to number + + var clickPos = Math.min(Math.max((clickOffset - trackStart) / trackLength, 0), 1) || 0; + if (this.vertical) clickPos = 1 - clickPos; + if (this.$vuetify.rtl) clickPos = 1 - clickPos; + var isInsideTrack = clickOffset >= trackStart && clickOffset <= trackStart + trackLength; + var value = parseFloat(this.min) + clickPos * (this.maxValue - this.minValue); + return { + value: value, + isInsideTrack: isInsideTrack + }; + }, + parseKeyDown: function parseKeyDown(e, value) { + if (!this.isInteractive) return; + var pageup = _util_helpers__WEBPACK_IMPORTED_MODULE_6__["keyCodes"].pageup, + pagedown = _util_helpers__WEBPACK_IMPORTED_MODULE_6__["keyCodes"].pagedown, + end = _util_helpers__WEBPACK_IMPORTED_MODULE_6__["keyCodes"].end, + home = _util_helpers__WEBPACK_IMPORTED_MODULE_6__["keyCodes"].home, + left = _util_helpers__WEBPACK_IMPORTED_MODULE_6__["keyCodes"].left, + right = _util_helpers__WEBPACK_IMPORTED_MODULE_6__["keyCodes"].right, + down = _util_helpers__WEBPACK_IMPORTED_MODULE_6__["keyCodes"].down, + up = _util_helpers__WEBPACK_IMPORTED_MODULE_6__["keyCodes"].up; + if (![pageup, pagedown, end, home, left, right, down, up].includes(e.keyCode)) return; + e.preventDefault(); + var step = this.stepNumeric || 1; + var steps = (this.maxValue - this.minValue) / step; + + if ([left, right, down, up].includes(e.keyCode)) { + this.keyPressed += 1; + var increase = this.$vuetify.rtl ? [left, up] : [right, up]; + var direction = increase.includes(e.keyCode) ? 1 : -1; + var multiplier = e.shiftKey ? 3 : e.ctrlKey ? 2 : 1; + value = value + direction * step * multiplier; + } else if (e.keyCode === home) { + value = this.minValue; + } else if (e.keyCode === end) { + value = this.maxValue; + } else { + var direction = e.keyCode === pagedown ? 1 : -1; + value = value - direction * step * (steps > 100 ? steps / 10 : 10); + } + + return value; + }, + roundValue: function roundValue(value) { + if (!this.stepNumeric) return value; // Format input value using the same number + // of decimals places as in the step prop + + var trimmedStep = this.step.toString().trim(); + var decimals = trimmedStep.indexOf('.') > -1 ? trimmedStep.length - trimmedStep.indexOf('.') - 1 : 0; + var offset = this.minValue % this.stepNumeric; + var newValue = Math.round((value - offset) / this.stepNumeric) * this.stepNumeric + offset; + return parseFloat(Math.min(newValue, this.maxValue).toFixed(decimals)); + } + } +})); + +/***/ }), + +/***/ "./src/components/VSlider/index.ts": +/*!*****************************************!*\ + !*** ./src/components/VSlider/index.ts ***! + \*****************************************/ +/*! exports provided: VSlider, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VSlider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VSlider */ "./src/components/VSlider/VSlider.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSlider", function() { return _VSlider__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VSlider__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VSnackbar/VSnackbar.sass": +/*!*************************************************!*\ + !*** ./src/components/VSnackbar/VSnackbar.sass ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VSnackbar/VSnackbar.ts": +/*!***********************************************!*\ + !*** ./src/components/VSnackbar/VSnackbar.ts ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VSnackbar_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VSnackbar.sass */ "./src/components/VSnackbar/VSnackbar.sass"); +/* harmony import */ var _VSnackbar_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VSnackbar_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VSheet_VSheet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VSheet/VSheet */ "./src/components/VSheet/VSheet.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _mixins_toggleable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/toggleable */ "./src/mixins/toggleable/index.ts"); +/* harmony import */ var _mixins_positionable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/positionable */ "./src/mixins/positionable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +// Styles + // Components + + // Mixins + + + + + // Utilities + + + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_6__["default"])(_VSheet_VSheet__WEBPACK_IMPORTED_MODULE_1__["default"], _mixins_colorable__WEBPACK_IMPORTED_MODULE_2__["default"], _mixins_toggleable__WEBPACK_IMPORTED_MODULE_4__["default"], Object(_mixins_positionable__WEBPACK_IMPORTED_MODULE_5__["factory"])(['absolute', 'bottom', 'left', 'right', 'top']) +/* @vue/component */ +).extend({ + name: 'v-snackbar', + props: { + app: Boolean, + centered: Boolean, + contentClass: { + type: String, + default: '' + }, + multiLine: Boolean, + text: Boolean, + timeout: { + type: [Number, String], + default: 5000 + }, + transition: { + type: [Boolean, String], + default: 'v-snack-transition', + validator: function validator(v) { + return typeof v === 'string' || v === false; + } + }, + vertical: Boolean + }, + data: function data() { + return { + activeTimeout: -1 + }; + }, + computed: { + classes: function classes() { + return { + 'v-snack--absolute': this.absolute, + 'v-snack--active': this.isActive, + 'v-snack--bottom': this.bottom || !this.top, + 'v-snack--centered': this.centered, + 'v-snack--has-background': this.hasBackground, + 'v-snack--left': this.left, + 'v-snack--multi-line': this.multiLine && !this.vertical, + 'v-snack--right': this.right, + 'v-snack--text': this.text, + 'v-snack--top': this.top, + 'v-snack--vertical': this.vertical + }; + }, + // Text and outlined styles both + // use transparent backgrounds + hasBackground: function hasBackground() { + return !this.text && !this.outlined; + }, + // Snackbar is dark by default + // override themeable logic. + isDark: function isDark() { + return this.hasBackground ? !this.light : _mixins_themeable__WEBPACK_IMPORTED_MODULE_3__["default"].options.computed.isDark.call(this); + }, + styles: function styles() { + // Styles are not needed when + // using the absolute prop. + if (this.absolute) return {}; + var _a = this.$vuetify.application, + bar = _a.bar, + bottom = _a.bottom, + footer = _a.footer, + insetFooter = _a.insetFooter, + left = _a.left, + right = _a.right, + top = _a.top; // Should always move for y-axis + // applicationable components. + + return { + paddingBottom: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_7__["convertToUnit"])(bottom + footer + insetFooter), + paddingLeft: !this.app ? undefined : Object(_util_helpers__WEBPACK_IMPORTED_MODULE_7__["convertToUnit"])(left), + paddingRight: !this.app ? undefined : Object(_util_helpers__WEBPACK_IMPORTED_MODULE_7__["convertToUnit"])(right), + paddingTop: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_7__["convertToUnit"])(bar + top) + }; + } + }, + watch: { + isActive: 'setTimeout', + timeout: 'setTimeout' + }, + mounted: function mounted() { + if (this.isActive) this.setTimeout(); + }, + created: function created() { + /* istanbul ignore next */ + if (this.$attrs.hasOwnProperty('auto-height')) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_8__["removed"])('auto-height', this); + } + /* istanbul ignore next */ + // eslint-disable-next-line eqeqeq + + + if (this.timeout == 0) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_8__["deprecate"])('timeout="0"', '-1', this); + } + }, + methods: { + genActions: function genActions() { + return this.$createElement('div', { + staticClass: 'v-snack__action ' + }, [Object(_util_helpers__WEBPACK_IMPORTED_MODULE_7__["getSlot"])(this, 'action', { + attrs: { + class: 'v-snack__btn' + } + })]); + }, + genContent: function genContent() { + var _a; + + return this.$createElement('div', { + staticClass: 'v-snack__content', + class: (_a = {}, _a[this.contentClass] = true, _a), + attrs: { + role: 'status', + 'aria-live': 'polite' + } + }, [Object(_util_helpers__WEBPACK_IMPORTED_MODULE_7__["getSlot"])(this)]); + }, + genWrapper: function genWrapper() { + var setColor = this.hasBackground ? this.setBackgroundColor : this.setTextColor; + var data = setColor(this.color, { + staticClass: 'v-snack__wrapper', + class: _VSheet_VSheet__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.classes.call(this), + directives: [{ + name: 'show', + value: this.isActive + }] + }); + return this.$createElement('div', data, [this.genContent(), this.genActions()]); + }, + genTransition: function genTransition() { + return this.$createElement('transition', { + props: { + name: this.transition + } + }, [this.genWrapper()]); + }, + setTimeout: function setTimeout() { + var _this = this; + + window.clearTimeout(this.activeTimeout); + var timeout = Number(this.timeout); + + if (!this.isActive || // TODO: remove 0 in v3 + [0, -1].includes(timeout)) { + return; + } + + this.activeTimeout = window.setTimeout(function () { + _this.isActive = false; + }, timeout); + } + }, + render: function render(h) { + return h('div', { + staticClass: 'v-snack', + class: this.classes, + style: this.styles + }, [this.transition !== false ? this.genTransition() : this.genWrapper()]); + } +})); + +/***/ }), + +/***/ "./src/components/VSnackbar/index.ts": +/*!*******************************************!*\ + !*** ./src/components/VSnackbar/index.ts ***! + \*******************************************/ +/*! exports provided: VSnackbar, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VSnackbar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VSnackbar */ "./src/components/VSnackbar/VSnackbar.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSnackbar", function() { return _VSnackbar__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VSnackbar__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VSparkline/VSparkline.ts": +/*!*************************************************!*\ + !*** ./src/components/VSparkline/VSparkline.ts ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _helpers_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers/core */ "./src/components/VSparkline/helpers/core.ts"); +/* harmony import */ var _helpers_path__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./helpers/path */ "./src/components/VSparkline/helpers/path.ts"); +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Mixins + + + // Utilities + + + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_1__["default"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_0__["default"]).extend({ + name: 'VSparkline', + inheritAttrs: false, + props: { + autoDraw: Boolean, + autoDrawDuration: { + type: Number, + default: 2000 + }, + autoDrawEasing: { + type: String, + default: 'ease' + }, + autoLineWidth: { + type: Boolean, + default: false + }, + color: { + type: String, + default: 'primary' + }, + fill: { + type: Boolean, + default: false + }, + gradient: { + type: Array, + default: function _default() { + return []; + } + }, + gradientDirection: { + type: String, + validator: function validator(val) { + return ['top', 'bottom', 'left', 'right'].includes(val); + }, + default: 'top' + }, + height: { + type: [String, Number], + default: 75 + }, + labels: { + type: Array, + default: function _default() { + return []; + } + }, + labelSize: { + type: [Number, String], + default: 7 + }, + lineWidth: { + type: [String, Number], + default: 4 + }, + padding: { + type: [String, Number], + default: 8 + }, + showLabels: Boolean, + smooth: { + type: [Boolean, Number, String], + default: false + }, + type: { + type: String, + default: 'trend', + validator: function validator(val) { + return ['trend', 'bar'].includes(val); + } + }, + value: { + type: Array, + default: function _default() { + return []; + } + }, + width: { + type: [Number, String], + default: 300 + } + }, + data: function data() { + return { + lastLength: 0 + }; + }, + computed: { + parsedPadding: function parsedPadding() { + return Number(this.padding); + }, + parsedWidth: function parsedWidth() { + return Number(this.width); + }, + parsedHeight: function parsedHeight() { + return parseInt(this.height, 10); + }, + parsedLabelSize: function parsedLabelSize() { + return parseInt(this.labelSize, 10) || 7; + }, + totalHeight: function totalHeight() { + var height = this.parsedHeight; + if (this.hasLabels) height += parseInt(this.labelSize, 10) * 1.5; + return height; + }, + totalWidth: function totalWidth() { + var width = this.parsedWidth; + if (this.type === 'bar') width = Math.max(this.value.length * this._lineWidth, width); + return width; + }, + totalValues: function totalValues() { + return this.value.length; + }, + _lineWidth: function _lineWidth() { + if (this.autoLineWidth && this.type !== 'trend') { + var totalPadding = this.parsedPadding * (this.totalValues + 1); + return (this.parsedWidth - totalPadding) / this.totalValues; + } else { + return parseFloat(this.lineWidth) || 4; + } + }, + boundary: function boundary() { + if (this.type === 'bar') return { + minX: 0, + maxX: this.totalWidth, + minY: 0, + maxY: this.parsedHeight + }; + var padding = this.parsedPadding; + return { + minX: padding, + maxX: this.totalWidth - padding, + minY: padding, + maxY: this.parsedHeight - padding + }; + }, + hasLabels: function hasLabels() { + return Boolean(this.showLabels || this.labels.length > 0 || this.$scopedSlots.label); + }, + parsedLabels: function parsedLabels() { + var labels = []; + var points = this._values; + var len = points.length; + + for (var i = 0; labels.length < len; i++) { + var item = points[i]; + var value = this.labels[i]; + + if (!value) { + value = _typeof(item) === 'object' ? item.value : item; + } + + labels.push({ + x: item.x, + value: String(value) + }); + } + + return labels; + }, + normalizedValues: function normalizedValues() { + return this.value.map(function (item) { + return typeof item === 'number' ? item : item.value; + }); + }, + _values: function _values() { + return this.type === 'trend' ? Object(_helpers_core__WEBPACK_IMPORTED_MODULE_2__["genPoints"])(this.normalizedValues, this.boundary) : Object(_helpers_core__WEBPACK_IMPORTED_MODULE_2__["genBars"])(this.normalizedValues, this.boundary); + }, + textY: function textY() { + var y = this.parsedHeight; + if (this.type === 'trend') y -= 4; + return y; + }, + _radius: function _radius() { + return this.smooth === true ? 8 : Number(this.smooth); + } + }, + watch: { + value: { + immediate: true, + handler: function handler() { + var _this = this; + + this.$nextTick(function () { + if (!_this.autoDraw || _this.type === 'bar' || !_this.$refs.path) return; + var path = _this.$refs.path; + var length = path.getTotalLength(); + + if (!_this.fill) { + path.style.transition = 'none'; + path.style.strokeDasharray = length + ' ' + length; + path.style.strokeDashoffset = Math.abs(length - (_this.lastLength || 0)).toString(); + path.getBoundingClientRect(); + path.style.transition = "stroke-dashoffset " + _this.autoDrawDuration + "ms " + _this.autoDrawEasing; + path.style.strokeDashoffset = '0'; + } else { + path.style.transformOrigin = 'bottom center'; + path.style.transition = 'none'; + path.style.transform = "scaleY(0)"; + path.getBoundingClientRect(); + path.style.transition = "transform " + _this.autoDrawDuration + "ms " + _this.autoDrawEasing; + path.style.transform = "scaleY(1)"; + } + + _this.lastLength = length; + }); + } + } + }, + methods: { + genGradient: function genGradient() { + var _this = this; + + var gradientDirection = this.gradientDirection; + var gradient = this.gradient.slice(); // Pushes empty string to force + // a fallback to currentColor + + if (!gradient.length) gradient.push(''); + var len = Math.max(gradient.length - 1, 1); + var stops = gradient.reverse().map(function (color, index) { + return _this.$createElement('stop', { + attrs: { + offset: index / len, + 'stop-color': color || 'currentColor' + } + }); + }); + return this.$createElement('defs', [this.$createElement('linearGradient', { + attrs: { + id: this._uid, + gradientUnits: 'userSpaceOnUse', + x1: gradientDirection === 'left' ? '100%' : '0', + y1: gradientDirection === 'top' ? '100%' : '0', + x2: gradientDirection === 'right' ? '100%' : '0', + y2: gradientDirection === 'bottom' ? '100%' : '0' + } + }, stops)]); + }, + genG: function genG(children) { + return this.$createElement('g', { + style: { + fontSize: '8', + textAnchor: 'middle', + dominantBaseline: 'mathematical', + fill: 'currentColor' + } + }, children); + }, + genPath: function genPath() { + var points = Object(_helpers_core__WEBPACK_IMPORTED_MODULE_2__["genPoints"])(this.normalizedValues, this.boundary); + return this.$createElement('path', { + attrs: { + d: Object(_helpers_path__WEBPACK_IMPORTED_MODULE_3__["genPath"])(points, this._radius, this.fill, this.parsedHeight), + fill: this.fill ? "url(#" + this._uid + ")" : 'none', + stroke: this.fill ? 'none' : "url(#" + this._uid + ")" + }, + ref: 'path' + }); + }, + genLabels: function genLabels(offsetX) { + var _this = this; + + var children = this.parsedLabels.map(function (item, i) { + return _this.$createElement('text', { + attrs: { + x: item.x + offsetX + _this._lineWidth / 2, + y: _this.textY + _this.parsedLabelSize * 0.75, + 'font-size': Number(_this.labelSize) || 7 + } + }, [_this.genLabel(item, i)]); + }); + return this.genG(children); + }, + genLabel: function genLabel(item, index) { + return this.$scopedSlots.label ? this.$scopedSlots.label({ + index: index, + value: item.value + }) : item.value; + }, + genBars: function genBars() { + if (!this.value || this.totalValues < 2) return undefined; + + var bars = Object(_helpers_core__WEBPACK_IMPORTED_MODULE_2__["genBars"])(this.normalizedValues, this.boundary); + + var offsetX = (Math.abs(bars[0].x - bars[1].x) - this._lineWidth) / 2; + return this.$createElement('svg', { + attrs: { + display: 'block', + viewBox: "0 0 " + this.totalWidth + " " + this.totalHeight + } + }, [this.genGradient(), this.genClipPath(bars, offsetX, this._lineWidth, 'sparkline-bar-' + this._uid), this.hasLabels ? this.genLabels(offsetX) : undefined, this.$createElement('g', { + attrs: { + 'clip-path': "url(#sparkline-bar-" + this._uid + "-clip)", + fill: "url(#" + this._uid + ")" + } + }, [this.$createElement('rect', { + attrs: { + x: 0, + y: 0, + width: this.totalWidth, + height: this.height + } + })])]); + }, + genClipPath: function genClipPath(bars, offsetX, lineWidth, id) { + var _this = this; + + var rounding = typeof this.smooth === 'number' ? this.smooth : this.smooth ? 2 : 0; + return this.$createElement('clipPath', { + attrs: { + id: id + "-clip" + } + }, bars.map(function (item) { + return _this.$createElement('rect', { + attrs: { + x: item.x + offsetX, + y: item.y, + width: lineWidth, + height: item.height, + rx: rounding, + ry: rounding + } + }, [_this.autoDraw ? _this.$createElement('animate', { + attrs: { + attributeName: 'height', + from: 0, + to: item.height, + dur: _this.autoDrawDuration + "ms", + fill: 'freeze' + } + }) : undefined]); + })); + }, + genTrend: function genTrend() { + return this.$createElement('svg', this.setTextColor(this.color, { + attrs: __assign(__assign({}, this.$attrs), { + display: 'block', + 'stroke-width': this._lineWidth || 1, + viewBox: "0 0 " + this.width + " " + this.totalHeight + }) + }), [this.genGradient(), this.hasLabels && this.genLabels(-(this._lineWidth / 2)), this.genPath()]); + } + }, + render: function render(h) { + if (this.totalValues < 2) return undefined; + return this.type === 'trend' ? this.genTrend() : this.genBars(); + } +})); + +/***/ }), + +/***/ "./src/components/VSparkline/helpers/core.ts": +/*!***************************************************!*\ + !*** ./src/components/VSparkline/helpers/core.ts ***! + \***************************************************/ +/*! exports provided: genPoints, genBars */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "genPoints", function() { return genPoints; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "genBars", function() { return genBars; }); +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + +var __spread = undefined && undefined.__spread || function () { + for (var ar = [], i = 0; i < arguments.length; i++) { + ar = ar.concat(__read(arguments[i])); + } + + return ar; +}; + +function genPoints(values, boundary) { + var minX = boundary.minX, + maxX = boundary.maxX, + minY = boundary.minY, + maxY = boundary.maxY; + var totalValues = values.length; + var maxValue = Math.max.apply(Math, __spread(values)); + var minValue = Math.min.apply(Math, __spread(values)); + var gridX = (maxX - minX) / (totalValues - 1); + var gridY = (maxY - minY) / (maxValue - minValue || 1); + return values.map(function (value, index) { + return { + x: minX + index * gridX, + y: maxY - (value - minValue) * gridY, + value: value + }; + }); +} +function genBars(values, boundary) { + var minX = boundary.minX, + maxX = boundary.maxX, + minY = boundary.minY, + maxY = boundary.maxY; + var totalValues = values.length; + var maxValue = Math.max.apply(Math, __spread(values)); + var minValue = Math.min.apply(Math, __spread(values)); + if (minValue > 0) minValue = 0; + if (maxValue < 0) maxValue = 0; + var gridX = maxX / totalValues; + var gridY = (maxY - minY) / (maxValue - minValue || 1); + var horizonY = maxY - Math.abs(minValue * gridY); + return values.map(function (value, index) { + var height = Math.abs(gridY * value); + return { + x: minX + index * gridX, + y: horizonY - height + +(value < 0) * height, + height: height, + value: value + }; + }); +} + +/***/ }), + +/***/ "./src/components/VSparkline/helpers/math.ts": +/*!***************************************************!*\ + !*** ./src/components/VSparkline/helpers/math.ts ***! + \***************************************************/ +/*! exports provided: checkCollinear, getDistance, moveTo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "checkCollinear", function() { return checkCollinear; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDistance", function() { return getDistance; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "moveTo", function() { return moveTo; }); +function int(value) { + return parseInt(value, 10); +} +/** + * https://en.wikipedia.org/wiki/Collinearity + * x=(x1+x2)/2 + * y=(y1+y2)/2 + */ + + +function checkCollinear(p0, p1, p2) { + return int(p0.x + p2.x) === int(2 * p1.x) && int(p0.y + p2.y) === int(2 * p1.y); +} +function getDistance(p1, p2) { + return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)); +} +function moveTo(to, from, radius) { + var vector = { + x: to.x - from.x, + y: to.y - from.y + }; + var length = Math.sqrt(vector.x * vector.x + vector.y * vector.y); + var unitVector = { + x: vector.x / length, + y: vector.y / length + }; + return { + x: from.x + unitVector.x * radius, + y: from.y + unitVector.y * radius + }; +} + +/***/ }), + +/***/ "./src/components/VSparkline/helpers/path.ts": +/*!***************************************************!*\ + !*** ./src/components/VSparkline/helpers/path.ts ***! + \***************************************************/ +/*! exports provided: genPath */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "genPath", function() { return genPath; }); +/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math */ "./src/components/VSparkline/helpers/math.ts"); + +/** + * From https://github.com/unsplash/react-trend/blob/master/src/helpers/DOM.helpers.js#L18 + */ + +function genPath(points, radius, fill, height) { + if (fill === void 0) { + fill = false; + } + + if (height === void 0) { + height = 75; + } + + var start = points.shift(); + var end = points[points.length - 1]; + return (fill ? "M" + start.x + " " + (height - start.x + 2) + " L" + start.x + " " + start.y : "M" + start.x + " " + start.y) + points.map(function (point, index) { + var next = points[index + 1]; + var prev = points[index - 1] || start; + var isCollinear = next && Object(_math__WEBPACK_IMPORTED_MODULE_0__["checkCollinear"])(next, point, prev); + + if (!next || isCollinear) { + return "L" + point.x + " " + point.y; + } + + var threshold = Math.min(Object(_math__WEBPACK_IMPORTED_MODULE_0__["getDistance"])(prev, point), Object(_math__WEBPACK_IMPORTED_MODULE_0__["getDistance"])(next, point)); + var isTooCloseForRadius = threshold / 2 < radius; + var radiusForPoint = isTooCloseForRadius ? threshold / 2 : radius; + var before = Object(_math__WEBPACK_IMPORTED_MODULE_0__["moveTo"])(prev, point, radiusForPoint); + var after = Object(_math__WEBPACK_IMPORTED_MODULE_0__["moveTo"])(next, point, radiusForPoint); + return "L" + before.x + " " + before.y + "S" + point.x + " " + point.y + " " + after.x + " " + after.y; + }).join('') + (fill ? "L" + end.x + " " + (height - start.x + 2) + " Z" : ''); +} + +/***/ }), + +/***/ "./src/components/VSparkline/index.ts": +/*!********************************************!*\ + !*** ./src/components/VSparkline/index.ts ***! + \********************************************/ +/*! exports provided: VSparkline, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VSparkline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VSparkline */ "./src/components/VSparkline/VSparkline.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSparkline", function() { return _VSparkline__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VSparkline__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VSpeedDial/VSpeedDial.sass": +/*!***************************************************!*\ + !*** ./src/components/VSpeedDial/VSpeedDial.sass ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VSpeedDial/VSpeedDial.ts": +/*!*************************************************!*\ + !*** ./src/components/VSpeedDial/VSpeedDial.ts ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VSpeedDial_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VSpeedDial.sass */ "./src/components/VSpeedDial/VSpeedDial.sass"); +/* harmony import */ var _VSpeedDial_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VSpeedDial_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_toggleable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/toggleable */ "./src/mixins/toggleable/index.ts"); +/* harmony import */ var _mixins_positionable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/positionable */ "./src/mixins/positionable/index.ts"); +/* harmony import */ var _mixins_transitionable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/transitionable */ "./src/mixins/transitionable/index.ts"); +/* harmony import */ var _directives_click_outside__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../directives/click-outside */ "./src/directives/click-outside/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +// Styles + // Mixins + + + + // Directives + + // Types + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_5__["default"])(_mixins_positionable__WEBPACK_IMPORTED_MODULE_2__["default"], _mixins_toggleable__WEBPACK_IMPORTED_MODULE_1__["default"], _mixins_transitionable__WEBPACK_IMPORTED_MODULE_3__["default"]).extend({ + name: 'v-speed-dial', + directives: { + ClickOutside: _directives_click_outside__WEBPACK_IMPORTED_MODULE_4__["default"] + }, + props: { + direction: { + type: String, + default: 'top', + validator: function validator(val) { + return ['top', 'right', 'bottom', 'left'].includes(val); + } + }, + openOnHover: Boolean, + transition: { + type: String, + default: 'scale-transition' + } + }, + computed: { + classes: function classes() { + var _a; + + return _a = { + 'v-speed-dial': true, + 'v-speed-dial--top': this.top, + 'v-speed-dial--right': this.right, + 'v-speed-dial--bottom': this.bottom, + 'v-speed-dial--left': this.left, + 'v-speed-dial--absolute': this.absolute, + 'v-speed-dial--fixed': this.fixed + }, _a["v-speed-dial--direction-" + this.direction] = true, _a['v-speed-dial--is-active'] = this.isActive, _a; + } + }, + render: function render(h) { + var _this = this; + + var children = []; + var data = { + class: this.classes, + directives: [{ + name: 'click-outside', + value: function value() { + return _this.isActive = false; + } + }], + on: { + click: function click() { + return _this.isActive = !_this.isActive; + } + } + }; + + if (this.openOnHover) { + data.on.mouseenter = function () { + return _this.isActive = true; + }; + + data.on.mouseleave = function () { + return _this.isActive = false; + }; + } + + if (this.isActive) { + var btnCount_1 = 0; + children = (this.$slots.default || []).map(function (b, i) { + if (b.tag && typeof b.componentOptions !== 'undefined' && (b.componentOptions.Ctor.options.name === 'v-btn' || b.componentOptions.Ctor.options.name === 'v-tooltip')) { + btnCount_1++; + return h('div', { + style: { + transitionDelay: btnCount_1 * 0.05 + 's' + }, + key: i + }, [b]); + } else { + b.key = i; + return b; + } + }); + } + + var list = h('transition-group', { + class: 'v-speed-dial__list', + props: { + name: this.transition, + mode: this.mode, + origin: this.origin, + tag: 'div' + } + }, children); + return h('div', data, [this.$slots.activator, list]); + } +})); + +/***/ }), + +/***/ "./src/components/VSpeedDial/index.ts": +/*!********************************************!*\ + !*** ./src/components/VSpeedDial/index.ts ***! + \********************************************/ +/*! exports provided: VSpeedDial, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VSpeedDial__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VSpeedDial */ "./src/components/VSpeedDial/VSpeedDial.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSpeedDial", function() { return _VSpeedDial__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VSpeedDial__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VStepper/VStepper.sass": +/*!***********************************************!*\ + !*** ./src/components/VStepper/VStepper.sass ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VStepper/VStepper.ts": +/*!*********************************************!*\ + !*** ./src/components/VStepper/VStepper.ts ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VStepper_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VStepper.sass */ "./src/components/VStepper/VStepper.sass"); +/* harmony import */ var _VStepper_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VStepper_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_registrable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/registrable */ "./src/mixins/registrable/index.ts"); +/* harmony import */ var _mixins_proxyable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/proxyable */ "./src/mixins/proxyable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Mixins + + + + // Utilities + + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_4__["default"])(Object(_mixins_registrable__WEBPACK_IMPORTED_MODULE_1__["provide"])('stepper'), _mixins_proxyable__WEBPACK_IMPORTED_MODULE_2__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_3__["default"]); +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend({ + name: 'v-stepper', + provide: function provide() { + return { + stepClick: this.stepClick, + isVertical: this.vertical + }; + }, + props: { + altLabels: Boolean, + nonLinear: Boolean, + vertical: Boolean + }, + data: function data() { + var data = { + isBooted: false, + steps: [], + content: [], + isReverse: false + }; + data.internalLazyValue = this.value != null ? this.value : (data[0] || {}).step || 1; + return data; + }, + computed: { + classes: function classes() { + return __assign({ + 'v-stepper--is-booted': this.isBooted, + 'v-stepper--vertical': this.vertical, + 'v-stepper--alt-labels': this.altLabels, + 'v-stepper--non-linear': this.nonLinear + }, this.themeClasses); + } + }, + watch: { + internalValue: function internalValue(val, oldVal) { + this.isReverse = Number(val) < Number(oldVal); + oldVal && (this.isBooted = true); + this.updateView(); + } + }, + created: function created() { + /* istanbul ignore next */ + if (this.$listeners.input) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_5__["breaking"])('@input', '@change', this); + } + }, + mounted: function mounted() { + this.updateView(); + }, + methods: { + register: function register(item) { + if (item.$options.name === 'v-stepper-step') { + this.steps.push(item); + } else if (item.$options.name === 'v-stepper-content') { + item.isVertical = this.vertical; + this.content.push(item); + } + }, + unregister: function unregister(item) { + if (item.$options.name === 'v-stepper-step') { + this.steps = this.steps.filter(function (i) { + return i !== item; + }); + } else if (item.$options.name === 'v-stepper-content') { + item.isVertical = this.vertical; + this.content = this.content.filter(function (i) { + return i !== item; + }); + } + }, + stepClick: function stepClick(step) { + var _this = this; + + this.$nextTick(function () { + return _this.internalValue = step; + }); + }, + updateView: function updateView() { + for (var index = this.steps.length; --index >= 0;) { + this.steps[index].toggle(this.internalValue); + } + + for (var index = this.content.length; --index >= 0;) { + this.content[index].toggle(this.internalValue, this.isReverse); + } + } + }, + render: function render(h) { + return h('div', { + staticClass: 'v-stepper', + class: this.classes + }, this.$slots.default); + } +})); + +/***/ }), + +/***/ "./src/components/VStepper/VStepperContent.ts": +/*!****************************************************!*\ + !*** ./src/components/VStepper/VStepperContent.ts ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _transitions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../transitions */ "./src/components/transitions/index.ts"); +/* harmony import */ var _mixins_registrable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/registrable */ "./src/mixins/registrable/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +// Components + // Mixins + + // Helpers + + // Utilities + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_3__["default"])(Object(_mixins_registrable__WEBPACK_IMPORTED_MODULE_1__["inject"])('stepper', 'v-stepper-content', 'v-stepper')); +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend().extend({ + name: 'v-stepper-content', + inject: { + isVerticalProvided: { + from: 'isVertical' + } + }, + props: { + step: { + type: [Number, String], + required: true + } + }, + data: function data() { + return { + height: 0, + // Must be null to allow + // previous comparison + isActive: null, + isReverse: false, + isVertical: this.isVerticalProvided + }; + }, + computed: { + computedTransition: function computedTransition() { + // Fix for #8978 + var reverse = this.$vuetify.rtl ? !this.isReverse : this.isReverse; + return reverse ? _transitions__WEBPACK_IMPORTED_MODULE_0__["VTabReverseTransition"] : _transitions__WEBPACK_IMPORTED_MODULE_0__["VTabTransition"]; + }, + styles: function styles() { + if (!this.isVertical) return {}; + return { + height: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_2__["convertToUnit"])(this.height) + }; + } + }, + watch: { + isActive: function isActive(current, previous) { + // If active and the previous state + // was null, is just booting up + if (current && previous == null) { + this.height = 'auto'; + return; + } + + if (!this.isVertical) return; + if (this.isActive) this.enter();else this.leave(); + } + }, + mounted: function mounted() { + this.$refs.wrapper.addEventListener('transitionend', this.onTransition, false); + this.stepper && this.stepper.register(this); + }, + beforeDestroy: function beforeDestroy() { + this.$refs.wrapper.removeEventListener('transitionend', this.onTransition, false); + this.stepper && this.stepper.unregister(this); + }, + methods: { + onTransition: function onTransition(e) { + if (!this.isActive || e.propertyName !== 'height') return; + this.height = 'auto'; + }, + enter: function enter() { + var _this = this; + + var scrollHeight = 0; // Render bug with height + + requestAnimationFrame(function () { + scrollHeight = _this.$refs.wrapper.scrollHeight; + }); + this.height = 0; // Give the collapsing element time to collapse + + setTimeout(function () { + return _this.isActive && (_this.height = scrollHeight || 'auto'); + }, 450); + }, + leave: function leave() { + var _this = this; + + this.height = this.$refs.wrapper.clientHeight; + setTimeout(function () { + return _this.height = 0; + }, 10); + }, + toggle: function toggle(step, reverse) { + this.isActive = step.toString() === this.step.toString(); + this.isReverse = reverse; + } + }, + render: function render(h) { + var contentData = { + staticClass: 'v-stepper__content' + }; + var wrapperData = { + staticClass: 'v-stepper__wrapper', + style: this.styles, + ref: 'wrapper' + }; + + if (!this.isVertical) { + contentData.directives = [{ + name: 'show', + value: this.isActive + }]; + } + + var wrapper = h('div', wrapperData, [this.$slots.default]); + var content = h('div', contentData, [wrapper]); + return h(this.computedTransition, { + on: this.$listeners + }, [content]); + } +})); + +/***/ }), + +/***/ "./src/components/VStepper/VStepperStep.ts": +/*!*************************************************!*\ + !*** ./src/components/VStepper/VStepperStep.ts ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../VIcon */ "./src/components/VIcon/index.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_registrable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/registrable */ "./src/mixins/registrable/index.ts"); +/* harmony import */ var _directives_ripple__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../directives/ripple */ "./src/directives/ripple/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +// Components + // Mixins + + + // Directives + + // Utilities + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_4__["default"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_1__["default"], Object(_mixins_registrable__WEBPACK_IMPORTED_MODULE_2__["inject"])('stepper', 'v-stepper-step', 'v-stepper')); +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend().extend({ + name: 'v-stepper-step', + directives: { + ripple: _directives_ripple__WEBPACK_IMPORTED_MODULE_3__["default"] + }, + inject: ['stepClick'], + props: { + color: { + type: String, + default: 'primary' + }, + complete: Boolean, + completeIcon: { + type: String, + default: '$complete' + }, + editable: Boolean, + editIcon: { + type: String, + default: '$edit' + }, + errorIcon: { + type: String, + default: '$error' + }, + rules: { + type: Array, + default: function _default() { + return []; + } + }, + step: [Number, String] + }, + data: function data() { + return { + isActive: false, + isInactive: true + }; + }, + computed: { + classes: function classes() { + return { + 'v-stepper__step--active': this.isActive, + 'v-stepper__step--editable': this.editable, + 'v-stepper__step--inactive': this.isInactive, + 'v-stepper__step--error error--text': this.hasError, + 'v-stepper__step--complete': this.complete + }; + }, + hasError: function hasError() { + return this.rules.some(function (validate) { + return validate() !== true; + }); + } + }, + mounted: function mounted() { + this.stepper && this.stepper.register(this); + }, + beforeDestroy: function beforeDestroy() { + this.stepper && this.stepper.unregister(this); + }, + methods: { + click: function click(e) { + e.stopPropagation(); + this.$emit('click', e); + + if (this.editable) { + this.stepClick(this.step); + } + }, + genIcon: function genIcon(icon) { + return this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_0__["default"], icon); + }, + genLabel: function genLabel() { + return this.$createElement('div', { + staticClass: 'v-stepper__label' + }, this.$slots.default); + }, + genStep: function genStep() { + var color = !this.hasError && (this.complete || this.isActive) ? this.color : false; + return this.$createElement('span', this.setBackgroundColor(color, { + staticClass: 'v-stepper__step__step' + }), this.genStepContent()); + }, + genStepContent: function genStepContent() { + var children = []; + + if (this.hasError) { + children.push(this.genIcon(this.errorIcon)); + } else if (this.complete) { + if (this.editable) { + children.push(this.genIcon(this.editIcon)); + } else { + children.push(this.genIcon(this.completeIcon)); + } + } else { + children.push(String(this.step)); + } + + return children; + }, + toggle: function toggle(step) { + this.isActive = step.toString() === this.step.toString(); + this.isInactive = Number(step) < Number(this.step); + } + }, + render: function render(h) { + return h('div', { + staticClass: 'v-stepper__step', + class: this.classes, + directives: [{ + name: 'ripple', + value: this.editable + }], + on: { + click: this.click + } + }, [this.genStep(), this.genLabel()]); + } +})); + +/***/ }), + +/***/ "./src/components/VStepper/index.ts": +/*!******************************************!*\ + !*** ./src/components/VStepper/index.ts ***! + \******************************************/ +/*! exports provided: VStepper, VStepperContent, VStepperStep, VStepperHeader, VStepperItems, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VStepperHeader", function() { return VStepperHeader; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VStepperItems", function() { return VStepperItems; }); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _VStepper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VStepper */ "./src/components/VStepper/VStepper.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VStepper", function() { return _VStepper__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + +/* harmony import */ var _VStepperStep__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./VStepperStep */ "./src/components/VStepper/VStepperStep.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VStepperStep", function() { return _VStepperStep__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + +/* harmony import */ var _VStepperContent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./VStepperContent */ "./src/components/VStepper/VStepperContent.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VStepperContent", function() { return _VStepperContent__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + + + + + +var VStepperHeader = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["createSimpleFunctional"])('v-stepper__header'); +var VStepperItems = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["createSimpleFunctional"])('v-stepper__items'); + +/* harmony default export */ __webpack_exports__["default"] = ({ + $_vuetify_subcomponents: { + VStepper: _VStepper__WEBPACK_IMPORTED_MODULE_1__["default"], + VStepperContent: _VStepperContent__WEBPACK_IMPORTED_MODULE_3__["default"], + VStepperStep: _VStepperStep__WEBPACK_IMPORTED_MODULE_2__["default"], + VStepperHeader: VStepperHeader, + VStepperItems: VStepperItems + } +}); + +/***/ }), + +/***/ "./src/components/VSubheader/VSubheader.sass": +/*!***************************************************!*\ + !*** ./src/components/VSubheader/VSubheader.sass ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VSubheader/VSubheader.ts": +/*!*************************************************!*\ + !*** ./src/components/VSubheader/VSubheader.ts ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VSubheader_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VSubheader.sass */ "./src/components/VSubheader/VSubheader.sass"); +/* harmony import */ var _VSubheader_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VSubheader_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Mixins + + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_2__["default"])(_mixins_themeable__WEBPACK_IMPORTED_MODULE_1__["default"] +/* @vue/component */ +).extend({ + name: 'v-subheader', + props: { + inset: Boolean + }, + render: function render(h) { + return h('div', { + staticClass: 'v-subheader', + class: __assign({ + 'v-subheader--inset': this.inset + }, this.themeClasses), + attrs: this.$attrs, + on: this.$listeners + }, this.$slots.default); + } +})); + +/***/ }), + +/***/ "./src/components/VSubheader/index.ts": +/*!********************************************!*\ + !*** ./src/components/VSubheader/index.ts ***! + \********************************************/ +/*! exports provided: VSubheader, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VSubheader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VSubheader */ "./src/components/VSubheader/VSubheader.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSubheader", function() { return _VSubheader__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VSubheader__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VSwitch/VSwitch.sass": +/*!*********************************************!*\ + !*** ./src/components/VSwitch/VSwitch.sass ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VSwitch/VSwitch.ts": +/*!*******************************************!*\ + !*** ./src/components/VSwitch/VSwitch.ts ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _styles_components_selection_controls_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../styles/components/_selection-controls.sass */ "./src/styles/components/_selection-controls.sass"); +/* harmony import */ var _styles_components_selection_controls_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_styles_components_selection_controls_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VSwitch_sass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VSwitch.sass */ "./src/components/VSwitch/VSwitch.sass"); +/* harmony import */ var _VSwitch_sass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_VSwitch_sass__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _mixins_selectable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/selectable */ "./src/mixins/selectable/index.ts"); +/* harmony import */ var _VInput__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../VInput */ "./src/components/VInput/index.ts"); +/* harmony import */ var _directives_touch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../directives/touch */ "./src/directives/touch/index.ts"); +/* harmony import */ var _transitions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../transitions */ "./src/components/transitions/index.ts"); +/* harmony import */ var _VProgressCircular_VProgressCircular__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../VProgressCircular/VProgressCircular */ "./src/components/VProgressCircular/VProgressCircular.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + + // Mixins + + + // Directives + + // Components + + + // Helpers + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (_mixins_selectable__WEBPACK_IMPORTED_MODULE_2__["default"].extend({ + name: 'v-switch', + directives: { + Touch: _directives_touch__WEBPACK_IMPORTED_MODULE_4__["default"] + }, + props: { + inset: Boolean, + loading: { + type: [Boolean, String], + default: false + }, + flat: { + type: Boolean, + default: false + } + }, + computed: { + classes: function classes() { + return __assign(__assign({}, _VInput__WEBPACK_IMPORTED_MODULE_3__["default"].options.computed.classes.call(this)), { + 'v-input--selection-controls v-input--switch': true, + 'v-input--switch--flat': this.flat, + 'v-input--switch--inset': this.inset + }); + }, + attrs: function attrs() { + return { + 'aria-checked': String(this.isActive), + 'aria-disabled': String(this.isDisabled), + role: 'switch' + }; + }, + // Do not return undefined if disabled, + // according to spec, should still show + // a color when disabled and active + validationState: function validationState() { + if (this.hasError && this.shouldValidate) return 'error'; + if (this.hasSuccess) return 'success'; + if (this.hasColor !== null) return this.computedColor; + return undefined; + }, + switchData: function switchData() { + return this.setTextColor(this.loading ? undefined : this.validationState, { + class: this.themeClasses + }); + } + }, + methods: { + genDefaultSlot: function genDefaultSlot() { + return [this.genSwitch(), this.genLabel()]; + }, + genSwitch: function genSwitch() { + return this.$createElement('div', { + staticClass: 'v-input--selection-controls__input' + }, [this.genInput('checkbox', __assign(__assign({}, this.attrs), this.attrs$)), this.genRipple(this.setTextColor(this.validationState, { + directives: [{ + name: 'touch', + value: { + left: this.onSwipeLeft, + right: this.onSwipeRight + } + }] + })), this.$createElement('div', __assign({ + staticClass: 'v-input--switch__track' + }, this.switchData)), this.$createElement('div', __assign({ + staticClass: 'v-input--switch__thumb' + }, this.switchData), [this.genProgress()])]); + }, + genProgress: function genProgress() { + return this.$createElement(_transitions__WEBPACK_IMPORTED_MODULE_5__["VFabTransition"], {}, [this.loading === false ? null : this.$slots.progress || this.$createElement(_VProgressCircular_VProgressCircular__WEBPACK_IMPORTED_MODULE_6__["default"], { + props: { + color: this.loading === true || this.loading === '' ? this.color || 'primary' : this.loading, + size: 16, + width: 2, + indeterminate: true + } + })]); + }, + onSwipeLeft: function onSwipeLeft() { + if (this.isActive) this.onChange(); + }, + onSwipeRight: function onSwipeRight() { + if (!this.isActive) this.onChange(); + }, + onKeydown: function onKeydown(e) { + if (e.keyCode === _util_helpers__WEBPACK_IMPORTED_MODULE_7__["keyCodes"].left && this.isActive || e.keyCode === _util_helpers__WEBPACK_IMPORTED_MODULE_7__["keyCodes"].right && !this.isActive) this.onChange(); + } + } +})); + +/***/ }), + +/***/ "./src/components/VSwitch/index.ts": +/*!*****************************************!*\ + !*** ./src/components/VSwitch/index.ts ***! + \*****************************************/ +/*! exports provided: VSwitch, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VSwitch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VSwitch */ "./src/components/VSwitch/VSwitch.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSwitch", function() { return _VSwitch__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VSwitch__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VSystemBar/VSystemBar.sass": +/*!***************************************************!*\ + !*** ./src/components/VSystemBar/VSystemBar.sass ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VSystemBar/VSystemBar.ts": +/*!*************************************************!*\ + !*** ./src/components/VSystemBar/VSystemBar.ts ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VSystemBar_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VSystemBar.sass */ "./src/components/VSystemBar/VSystemBar.sass"); +/* harmony import */ var _VSystemBar_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VSystemBar_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_applicationable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/applicationable */ "./src/mixins/applicationable/index.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Mixins + + + + // Utilities + + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_4__["default"])(Object(_mixins_applicationable__WEBPACK_IMPORTED_MODULE_1__["default"])('bar', ['height', 'window']), _mixins_colorable__WEBPACK_IMPORTED_MODULE_2__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_3__["default"] +/* @vue/component */ +).extend({ + name: 'v-system-bar', + props: { + height: [Number, String], + lightsOut: Boolean, + window: Boolean + }, + computed: { + classes: function classes() { + return __assign({ + 'v-system-bar--lights-out': this.lightsOut, + 'v-system-bar--absolute': this.absolute, + 'v-system-bar--fixed': !this.absolute && (this.app || this.fixed), + 'v-system-bar--window': this.window + }, this.themeClasses); + }, + computedHeight: function computedHeight() { + if (this.height) { + return isNaN(parseInt(this.height)) ? this.height : parseInt(this.height); + } + + return this.window ? 32 : 24; + }, + styles: function styles() { + return { + height: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["convertToUnit"])(this.computedHeight) + }; + } + }, + methods: { + updateApplication: function updateApplication() { + return this.$el ? this.$el.clientHeight : this.computedHeight; + } + }, + render: function render(h) { + var data = { + staticClass: 'v-system-bar', + class: this.classes, + style: this.styles, + on: this.$listeners + }; + return h('div', this.setBackgroundColor(this.color, data), Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["getSlot"])(this)); + } +})); + +/***/ }), + +/***/ "./src/components/VSystemBar/index.ts": +/*!********************************************!*\ + !*** ./src/components/VSystemBar/index.ts ***! + \********************************************/ +/*! exports provided: VSystemBar, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VSystemBar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VSystemBar */ "./src/components/VSystemBar/VSystemBar.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSystemBar", function() { return _VSystemBar__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VSystemBar__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VTabs/VTab.ts": +/*!**************************************!*\ + !*** ./src/components/VTabs/VTab.ts ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _mixins_groupable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../mixins/groupable */ "./src/mixins/groupable/index.ts"); +/* harmony import */ var _mixins_routable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/routable */ "./src/mixins/routable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Mixins + + + + + // Utilities + + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_4__["default"])(_mixins_routable__WEBPACK_IMPORTED_MODULE_1__["default"], // Must be after routable +// to overwrite activeClass +Object(_mixins_groupable__WEBPACK_IMPORTED_MODULE_0__["factory"])('tabsBar'), _mixins_themeable__WEBPACK_IMPORTED_MODULE_2__["default"]); +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend().extend().extend({ + name: 'v-tab', + props: { + ripple: { + type: [Boolean, Object], + default: true + } + }, + data: function data() { + return { + proxyClass: 'v-tab--active' + }; + }, + computed: { + classes: function classes() { + return __assign(__assign(__assign({ + 'v-tab': true + }, _mixins_routable__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.classes.call(this)), { + 'v-tab--disabled': this.disabled + }), this.groupClasses); + }, + value: function value() { + var to = this.to || this.href || ''; + + if (this.$router && this.to === Object(this.to)) { + var resolve = this.$router.resolve(this.to, this.$route, this.append); + to = resolve.href; + } + + return to.replace('#', ''); + } + }, + mounted: function mounted() { + this.onRouteChange(); + }, + methods: { + click: function click(e) { + // If user provides an + // actual link, do not + // prevent default + if (this.href && this.href.indexOf('#') > -1) e.preventDefault(); + if (e.detail) this.$el.blur(); + this.$emit('click', e); + this.to || this.toggle(); + } + }, + render: function render(h) { + var _this = this; + + var _a = this.generateRouteLink(), + tag = _a.tag, + data = _a.data; + + data.attrs = __assign(__assign({}, data.attrs), { + 'aria-selected': String(this.isActive), + role: 'tab', + tabindex: 0 + }); + data.on = __assign(__assign({}, data.on), { + keydown: function keydown(e) { + if (e.keyCode === _util_helpers__WEBPACK_IMPORTED_MODULE_3__["keyCodes"].enter) _this.click(e); + + _this.$emit('keydown', e); + } + }); + return h(tag, data, this.$slots.default); + } +})); + +/***/ }), + +/***/ "./src/components/VTabs/VTabItem.ts": +/*!******************************************!*\ + !*** ./src/components/VTabs/VTabItem.ts ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VWindow_VWindowItem__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../VWindow/VWindowItem */ "./src/components/VWindow/VWindowItem.ts"); +// Extensions + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (_VWindow_VWindowItem__WEBPACK_IMPORTED_MODULE_0__["default"].extend({ + name: 'v-tab-item', + props: { + id: String + }, + methods: { + genWindowItem: function genWindowItem() { + var item = _VWindow_VWindowItem__WEBPACK_IMPORTED_MODULE_0__["default"].options.methods.genWindowItem.call(this); + item.data.domProps = item.data.domProps || {}; + item.data.domProps.id = this.id || this.value; + return item; + } + } +})); + +/***/ }), + +/***/ "./src/components/VTabs/VTabs.sass": +/*!*****************************************!*\ + !*** ./src/components/VTabs/VTabs.sass ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VTabs/VTabs.ts": +/*!***************************************!*\ + !*** ./src/components/VTabs/VTabs.ts ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VTabs_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VTabs.sass */ "./src/components/VTabs/VTabs.sass"); +/* harmony import */ var _VTabs_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VTabs_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VTabsBar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VTabsBar */ "./src/components/VTabs/VTabsBar.ts"); +/* harmony import */ var _VTabsItems__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./VTabsItems */ "./src/components/VTabs/VTabsItems.ts"); +/* harmony import */ var _VTabsSlider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./VTabsSlider */ "./src/components/VTabs/VTabsSlider.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_proxyable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/proxyable */ "./src/mixins/proxyable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _directives_resize__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../directives/resize */ "./src/directives/resize/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Components + + + + // Mixins + + + + // Directives + + // Utilities + + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_9__["default"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_4__["default"], _mixins_proxyable__WEBPACK_IMPORTED_MODULE_5__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_6__["default"]); +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend().extend({ + name: 'v-tabs', + directives: { + Resize: _directives_resize__WEBPACK_IMPORTED_MODULE_7__["default"] + }, + props: { + activeClass: { + type: String, + default: '' + }, + alignWithTitle: Boolean, + backgroundColor: String, + centerActive: Boolean, + centered: Boolean, + fixedTabs: Boolean, + grow: Boolean, + height: { + type: [Number, String], + default: undefined + }, + hideSlider: Boolean, + iconsAndText: Boolean, + mobileBreakpoint: [String, Number], + nextIcon: { + type: String, + default: '$next' + }, + optional: Boolean, + prevIcon: { + type: String, + default: '$prev' + }, + right: Boolean, + showArrows: [Boolean, String], + sliderColor: String, + sliderSize: { + type: [Number, String], + default: 2 + }, + vertical: Boolean + }, + data: function data() { + return { + resizeTimeout: 0, + slider: { + height: null, + left: null, + right: null, + top: null, + width: null + }, + transitionTime: 300 + }; + }, + computed: { + classes: function classes() { + return __assign({ + 'v-tabs--align-with-title': this.alignWithTitle, + 'v-tabs--centered': this.centered, + 'v-tabs--fixed-tabs': this.fixedTabs, + 'v-tabs--grow': this.grow, + 'v-tabs--icons-and-text': this.iconsAndText, + 'v-tabs--right': this.right, + 'v-tabs--vertical': this.vertical + }, this.themeClasses); + }, + isReversed: function isReversed() { + return this.$vuetify.rtl && this.vertical; + }, + sliderStyles: function sliderStyles() { + return { + height: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_8__["convertToUnit"])(this.slider.height), + left: this.isReversed ? undefined : Object(_util_helpers__WEBPACK_IMPORTED_MODULE_8__["convertToUnit"])(this.slider.left), + right: this.isReversed ? Object(_util_helpers__WEBPACK_IMPORTED_MODULE_8__["convertToUnit"])(this.slider.right) : undefined, + top: this.vertical ? Object(_util_helpers__WEBPACK_IMPORTED_MODULE_8__["convertToUnit"])(this.slider.top) : undefined, + transition: this.slider.left != null ? null : 'none', + width: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_8__["convertToUnit"])(this.slider.width) + }; + }, + computedColor: function computedColor() { + if (this.color) return this.color;else if (this.isDark && !this.appIsDark) return 'white';else return 'primary'; + } + }, + watch: { + alignWithTitle: 'callSlider', + centered: 'callSlider', + centerActive: 'callSlider', + fixedTabs: 'callSlider', + grow: 'callSlider', + iconsAndText: 'callSlider', + right: 'callSlider', + showArrows: 'callSlider', + vertical: 'callSlider', + '$vuetify.application.left': 'onResize', + '$vuetify.application.right': 'onResize', + '$vuetify.rtl': 'onResize' + }, + mounted: function mounted() { + var _this = this; + + this.$nextTick(function () { + window.setTimeout(_this.callSlider, 30); + }); + }, + methods: { + callSlider: function callSlider() { + var _this = this; + + if (this.hideSlider || !this.$refs.items || !this.$refs.items.selectedItems.length) { + this.slider.width = 0; + return false; + } + + this.$nextTick(function () { + // Give screen time to paint + var activeTab = _this.$refs.items.selectedItems[0]; + /* istanbul ignore if */ + + if (!activeTab || !activeTab.$el) { + _this.slider.width = 0; + _this.slider.left = 0; + return; + } + + var el = activeTab.$el; + _this.slider = { + height: !_this.vertical ? Number(_this.sliderSize) : el.scrollHeight, + left: _this.vertical ? 0 : el.offsetLeft, + right: _this.vertical ? 0 : el.offsetLeft + el.offsetWidth, + top: el.offsetTop, + width: _this.vertical ? Number(_this.sliderSize) : el.scrollWidth + }; + }); + return true; + }, + genBar: function genBar(items, slider) { + var _this = this; + + var data = { + style: { + height: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_8__["convertToUnit"])(this.height) + }, + props: { + activeClass: this.activeClass, + centerActive: this.centerActive, + dark: this.dark, + light: this.light, + mandatory: !this.optional, + mobileBreakpoint: this.mobileBreakpoint, + nextIcon: this.nextIcon, + prevIcon: this.prevIcon, + showArrows: this.showArrows, + value: this.internalValue + }, + on: { + 'call:slider': this.callSlider, + change: function change(val) { + _this.internalValue = val; + } + }, + ref: 'items' + }; + this.setTextColor(this.computedColor, data); + this.setBackgroundColor(this.backgroundColor, data); + return this.$createElement(_VTabsBar__WEBPACK_IMPORTED_MODULE_1__["default"], data, [this.genSlider(slider), items]); + }, + genItems: function genItems(items, item) { + var _this = this; // If user provides items + // opt to use theirs + + + if (items) return items; // If no tabs are provided + // render nothing + + if (!item.length) return null; + return this.$createElement(_VTabsItems__WEBPACK_IMPORTED_MODULE_2__["default"], { + props: { + value: this.internalValue + }, + on: { + change: function change(val) { + _this.internalValue = val; + } + } + }, item); + }, + genSlider: function genSlider(slider) { + if (this.hideSlider) return null; + + if (!slider) { + slider = this.$createElement(_VTabsSlider__WEBPACK_IMPORTED_MODULE_3__["default"], { + props: { + color: this.sliderColor + } + }); + } + + return this.$createElement('div', { + staticClass: 'v-tabs-slider-wrapper', + style: this.sliderStyles + }, [slider]); + }, + onResize: function onResize() { + if (this._isDestroyed) return; + clearTimeout(this.resizeTimeout); + this.resizeTimeout = window.setTimeout(this.callSlider, 0); + }, + parseNodes: function parseNodes() { + var items = null; + var slider = null; + var item = []; + var tab = []; + var slot = this.$slots.default || []; + var length = slot.length; + + for (var i = 0; i < length; i++) { + var vnode = slot[i]; + + if (vnode.componentOptions) { + switch (vnode.componentOptions.Ctor.options.name) { + case 'v-tabs-slider': + slider = vnode; + break; + + case 'v-tabs-items': + items = vnode; + break; + + case 'v-tab-item': + item.push(vnode); + break; + // case 'v-tab' - intentionally omitted + + default: + tab.push(vnode); + } + } else { + tab.push(vnode); + } + } + /** + * tab: array of `v-tab` + * slider: single `v-tabs-slider` + * items: single `v-tabs-items` + * item: array of `v-tab-item` + */ + + + return { + tab: tab, + slider: slider, + items: items, + item: item + }; + } + }, + render: function render(h) { + var _a = this.parseNodes(), + tab = _a.tab, + slider = _a.slider, + items = _a.items, + item = _a.item; + + return h('div', { + staticClass: 'v-tabs', + class: this.classes, + directives: [{ + name: 'resize', + modifiers: { + quiet: true + }, + value: this.onResize + }] + }, [this.genBar(tab, slider), this.genItems(items, item)]); + } +})); + +/***/ }), + +/***/ "./src/components/VTabs/VTabsBar.ts": +/*!******************************************!*\ + !*** ./src/components/VTabs/VTabsBar.ts ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VSlideGroup_VSlideGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../VSlideGroup/VSlideGroup */ "./src/components/VSlideGroup/VSlideGroup.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _mixins_ssr_bootable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/ssr-bootable */ "./src/mixins/ssr-bootable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __values = undefined && undefined.__values || function (o) { + var s = typeof Symbol === "function" && Symbol.iterator, + m = s && o[s], + i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function next() { + if (o && i >= o.length) o = void 0; + return { + value: o && o[i++], + done: !o + }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); +}; // Extensions + + + // Mixins + + + // Utilities + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_3__["default"])(_VSlideGroup_VSlideGroup__WEBPACK_IMPORTED_MODULE_0__["BaseSlideGroup"], _mixins_ssr_bootable__WEBPACK_IMPORTED_MODULE_2__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_1__["default"] +/* @vue/component */ +).extend({ + name: 'v-tabs-bar', + provide: function provide() { + return { + tabsBar: this + }; + }, + computed: { + classes: function classes() { + return __assign(__assign(__assign({}, _VSlideGroup_VSlideGroup__WEBPACK_IMPORTED_MODULE_0__["BaseSlideGroup"].options.computed.classes.call(this)), { + 'v-tabs-bar': true, + 'v-tabs-bar--is-mobile': this.isMobile, + // TODO: Remove this and move to v-slide-group + 'v-tabs-bar--show-arrows': this.showArrows + }), this.themeClasses); + } + }, + watch: { + items: 'callSlider', + internalValue: 'callSlider', + $route: 'onRouteChange' + }, + methods: { + callSlider: function callSlider() { + if (!this.isBooted) return; + this.$emit('call:slider'); + }, + genContent: function genContent() { + var render = _VSlideGroup_VSlideGroup__WEBPACK_IMPORTED_MODULE_0__["BaseSlideGroup"].options.methods.genContent.call(this); + render.data = render.data || {}; + render.data.staticClass += ' v-tabs-bar__content'; + return render; + }, + onRouteChange: function onRouteChange(val, oldVal) { + var e_1, _a; + /* istanbul ignore next */ + + + if (this.mandatory) return; + var items = this.items; + var newPath = val.path; + var oldPath = oldVal.path; + var hasNew = false; + var hasOld = false; + + try { + for (var items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) { + var item = items_1_1.value; + if (item.to === newPath) hasNew = true;else if (item.to === oldPath) hasOld = true; + if (hasNew && hasOld) break; + } + } catch (e_1_1) { + e_1 = { + error: e_1_1 + }; + } finally { + try { + if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1); + } finally { + if (e_1) throw e_1.error; + } + } // If we have an old item and not a new one + // it's assumed that the user navigated to + // a path that is not present in the items + + + if (!hasNew && hasOld) this.internalValue = undefined; + } + }, + render: function render(h) { + var render = _VSlideGroup_VSlideGroup__WEBPACK_IMPORTED_MODULE_0__["BaseSlideGroup"].options.render.call(this, h); + render.data.attrs = { + role: 'tablist' + }; + return render; + } +})); + +/***/ }), + +/***/ "./src/components/VTabs/VTabsItems.ts": +/*!********************************************!*\ + !*** ./src/components/VTabs/VTabsItems.ts ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VWindow_VWindow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../VWindow/VWindow */ "./src/components/VWindow/VWindow.ts"); +/* harmony import */ var _VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../VItemGroup/VItemGroup */ "./src/components/VItemGroup/VItemGroup.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Extensions + + + // Types & Components + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (_VWindow_VWindow__WEBPACK_IMPORTED_MODULE_0__["default"].extend({ + name: 'v-tabs-items', + props: { + mandatory: { + type: Boolean, + default: false + } + }, + computed: { + classes: function classes() { + return __assign(__assign({}, _VWindow_VWindow__WEBPACK_IMPORTED_MODULE_0__["default"].options.computed.classes.call(this)), { + 'v-tabs-items': true + }); + }, + isDark: function isDark() { + return this.rootIsDark; + } + }, + methods: { + getValue: function getValue(item, i) { + return item.id || _VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_1__["BaseItemGroup"].options.methods.getValue.call(this, item, i); + } + } +})); + +/***/ }), + +/***/ "./src/components/VTabs/VTabsSlider.ts": +/*!*********************************************!*\ + !*** ./src/components/VTabs/VTabsSlider.ts ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +// Mixins + // Utilities + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_1__["default"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_0__["default"]).extend({ + name: 'v-tabs-slider', + render: function render(h) { + return h('div', this.setBackgroundColor(this.color, { + staticClass: 'v-tabs-slider' + })); + } +})); + +/***/ }), + +/***/ "./src/components/VTabs/index.ts": +/*!***************************************!*\ + !*** ./src/components/VTabs/index.ts ***! + \***************************************/ +/*! exports provided: VTabs, VTab, VTabItem, VTabsItems, VTabsSlider, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VTabs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VTabs */ "./src/components/VTabs/VTabs.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTabs", function() { return _VTabs__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + +/* harmony import */ var _VTab__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VTab */ "./src/components/VTabs/VTab.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTab", function() { return _VTab__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + +/* harmony import */ var _VTabsItems__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./VTabsItems */ "./src/components/VTabs/VTabsItems.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTabsItems", function() { return _VTabsItems__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + +/* harmony import */ var _VTabItem__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./VTabItem */ "./src/components/VTabs/VTabItem.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTabItem", function() { return _VTabItem__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + +/* harmony import */ var _VTabsSlider__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./VTabsSlider */ "./src/components/VTabs/VTabsSlider.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTabsSlider", function() { return _VTabsSlider__WEBPACK_IMPORTED_MODULE_4__["default"]; }); + + + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + $_vuetify_subcomponents: { + VTabs: _VTabs__WEBPACK_IMPORTED_MODULE_0__["default"], + VTab: _VTab__WEBPACK_IMPORTED_MODULE_1__["default"], + VTabsItems: _VTabsItems__WEBPACK_IMPORTED_MODULE_2__["default"], + VTabItem: _VTabItem__WEBPACK_IMPORTED_MODULE_3__["default"], + VTabsSlider: _VTabsSlider__WEBPACK_IMPORTED_MODULE_4__["default"] + } +}); + +/***/ }), + +/***/ "./src/components/VTextField/VTextField.sass": +/*!***************************************************!*\ + !*** ./src/components/VTextField/VTextField.sass ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VTextField/VTextField.ts": +/*!*************************************************!*\ + !*** ./src/components/VTextField/VTextField.ts ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VTextField_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VTextField.sass */ "./src/components/VTextField/VTextField.sass"); +/* harmony import */ var _VTextField_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VTextField_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VInput__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VInput */ "./src/components/VInput/index.ts"); +/* harmony import */ var _VCounter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../VCounter */ "./src/components/VCounter/index.ts"); +/* harmony import */ var _VLabel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../VLabel */ "./src/components/VLabel/index.ts"); +/* harmony import */ var _mixins_intersectable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/intersectable */ "./src/mixins/intersectable/index.ts"); +/* harmony import */ var _mixins_loadable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/loadable */ "./src/mixins/loadable/index.ts"); +/* harmony import */ var _mixins_validatable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../mixins/validatable */ "./src/mixins/validatable/index.ts"); +/* harmony import */ var _directives_resize__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../directives/resize */ "./src/directives/resize/index.ts"); +/* harmony import */ var _directives_ripple__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../directives/ripple */ "./src/directives/ripple/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + +var __spread = undefined && undefined.__spread || function () { + for (var ar = [], i = 0; i < arguments.length; i++) { + ar = ar.concat(__read(arguments[i])); + } + + return ar; +}; // Styles + + + // Extensions + + // Components + + + // Mixins + + + + // Directives + + + // Utilities + + + // Types + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_11__["default"])(_VInput__WEBPACK_IMPORTED_MODULE_1__["default"], Object(_mixins_intersectable__WEBPACK_IMPORTED_MODULE_4__["default"])({ + onVisible: ['onResize', 'tryAutofocus'] +}), _mixins_loadable__WEBPACK_IMPORTED_MODULE_5__["default"]); +var dirtyTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']; +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend().extend({ + name: 'v-text-field', + directives: { + resize: _directives_resize__WEBPACK_IMPORTED_MODULE_7__["default"], + ripple: _directives_ripple__WEBPACK_IMPORTED_MODULE_8__["default"] + }, + inheritAttrs: false, + props: { + appendOuterIcon: String, + autofocus: Boolean, + clearable: Boolean, + clearIcon: { + type: String, + default: '$clear' + }, + counter: [Boolean, Number, String], + counterValue: Function, + filled: Boolean, + flat: Boolean, + fullWidth: Boolean, + label: String, + outlined: Boolean, + placeholder: String, + prefix: String, + prependInnerIcon: String, + reverse: Boolean, + rounded: Boolean, + shaped: Boolean, + singleLine: Boolean, + solo: Boolean, + soloInverted: Boolean, + suffix: String, + type: { + type: String, + default: 'text' + } + }, + data: function data() { + return { + badInput: false, + labelWidth: 0, + prefixWidth: 0, + prependWidth: 0, + initialValue: null, + isBooted: false, + isClearing: false + }; + }, + computed: { + classes: function classes() { + return __assign(__assign({}, _VInput__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.classes.call(this)), { + 'v-text-field': true, + 'v-text-field--full-width': this.fullWidth, + 'v-text-field--prefix': this.prefix, + 'v-text-field--single-line': this.isSingle, + 'v-text-field--solo': this.isSolo, + 'v-text-field--solo-inverted': this.soloInverted, + 'v-text-field--solo-flat': this.flat, + 'v-text-field--filled': this.filled, + 'v-text-field--is-booted': this.isBooted, + 'v-text-field--enclosed': this.isEnclosed, + 'v-text-field--reverse': this.reverse, + 'v-text-field--outlined': this.outlined, + 'v-text-field--placeholder': this.placeholder, + 'v-text-field--rounded': this.rounded, + 'v-text-field--shaped': this.shaped + }); + }, + computedColor: function computedColor() { + var computedColor = _mixins_validatable__WEBPACK_IMPORTED_MODULE_6__["default"].options.computed.computedColor.call(this); + if (!this.soloInverted || !this.isFocused) return computedColor; + return this.color || 'primary'; + }, + computedCounterValue: function computedCounterValue() { + if (typeof this.counterValue === 'function') { + return this.counterValue(this.internalValue); + } + + return __spread((this.internalValue || '').toString()).length; + }, + hasCounter: function hasCounter() { + return this.counter !== false && this.counter != null; + }, + hasDetails: function hasDetails() { + return _VInput__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.hasDetails.call(this) || this.hasCounter; + }, + internalValue: { + get: function get() { + return this.lazyValue; + }, + set: function set(val) { + this.lazyValue = val; + this.$emit('input', this.lazyValue); + } + }, + isDirty: function isDirty() { + var _a; + + return ((_a = this.lazyValue) === null || _a === void 0 ? void 0 : _a.toString().length) > 0 || this.badInput; + }, + isEnclosed: function isEnclosed() { + return this.filled || this.isSolo || this.outlined; + }, + isLabelActive: function isLabelActive() { + return this.isDirty || dirtyTypes.includes(this.type); + }, + isSingle: function isSingle() { + return this.isSolo || this.singleLine || this.fullWidth || // https://material.io/components/text-fields/#filled-text-field + this.filled && !this.hasLabel; + }, + isSolo: function isSolo() { + return this.solo || this.soloInverted; + }, + labelPosition: function labelPosition() { + var offset = this.prefix && !this.labelValue ? this.prefixWidth : 0; + if (this.labelValue && this.prependWidth) offset -= this.prependWidth; + return this.$vuetify.rtl === this.reverse ? { + left: offset, + right: 'auto' + } : { + left: 'auto', + right: offset + }; + }, + showLabel: function showLabel() { + return this.hasLabel && (!this.isSingle || !this.isLabelActive && !this.placeholder); + }, + labelValue: function labelValue() { + return !this.isSingle && Boolean(this.isFocused || this.isLabelActive || this.placeholder); + } + }, + watch: { + // labelValue: 'setLabelWidth', // moved to mounted, see #11533 + outlined: 'setLabelWidth', + label: function label() { + this.$nextTick(this.setLabelWidth); + }, + prefix: function prefix() { + this.$nextTick(this.setPrefixWidth); + }, + isFocused: 'updateValue', + value: function value(val) { + this.lazyValue = val; + } + }, + created: function created() { + /* istanbul ignore next */ + if (this.$attrs.hasOwnProperty('box')) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_10__["breaking"])('box', 'filled', this); + } + /* istanbul ignore next */ + + + if (this.$attrs.hasOwnProperty('browser-autocomplete')) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_10__["breaking"])('browser-autocomplete', 'autocomplete', this); + } + /* istanbul ignore if */ + + + if (this.shaped && !(this.filled || this.outlined || this.isSolo)) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_10__["consoleWarn"])('shaped should be used with either filled or outlined', this); + } + }, + mounted: function mounted() { + var _this = this; // #11533 + + + this.$watch(function () { + return _this.labelValue; + }, this.setLabelWidth); + this.autofocus && this.tryAutofocus(); + requestAnimationFrame(function () { + return _this.isBooted = true; + }); + }, + methods: { + /** @public */ + focus: function focus() { + this.onFocus(); + }, + + /** @public */ + blur: function blur(e) { + var _this = this; // https://github.com/vuetifyjs/vuetify/issues/5913 + // Safari tab order gets broken if called synchronous + + + window.requestAnimationFrame(function () { + _this.$refs.input && _this.$refs.input.blur(); + }); + }, + clearableCallback: function clearableCallback() { + var _this = this; + + this.$refs.input && this.$refs.input.focus(); + this.$nextTick(function () { + return _this.internalValue = null; + }); + }, + genAppendSlot: function genAppendSlot() { + var slot = []; + + if (this.$slots['append-outer']) { + slot.push(this.$slots['append-outer']); + } else if (this.appendOuterIcon) { + slot.push(this.genIcon('appendOuter')); + } + + return this.genSlot('append', 'outer', slot); + }, + genPrependInnerSlot: function genPrependInnerSlot() { + var slot = []; + + if (this.$slots['prepend-inner']) { + slot.push(this.$slots['prepend-inner']); + } else if (this.prependInnerIcon) { + slot.push(this.genIcon('prependInner')); + } + + return this.genSlot('prepend', 'inner', slot); + }, + genIconSlot: function genIconSlot() { + var slot = []; + + if (this.$slots.append) { + slot.push(this.$slots.append); + } else if (this.appendIcon) { + slot.push(this.genIcon('append')); + } + + return this.genSlot('append', 'inner', slot); + }, + genInputSlot: function genInputSlot() { + var input = _VInput__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.genInputSlot.call(this); + var prepend = this.genPrependInnerSlot(); + + if (prepend) { + input.children = input.children || []; + input.children.unshift(prepend); + } + + return input; + }, + genClearIcon: function genClearIcon() { + if (!this.clearable) return null; + var data = this.isDirty ? undefined : { + attrs: { + disabled: true + } + }; + return this.genSlot('append', 'inner', [this.genIcon('clear', this.clearableCallback, data)]); + }, + genCounter: function genCounter() { + if (!this.hasCounter) return null; + var max = this.counter === true ? this.attrs$.maxlength : this.counter; + return this.$createElement(_VCounter__WEBPACK_IMPORTED_MODULE_2__["default"], { + props: { + dark: this.dark, + light: this.light, + max: max, + value: this.computedCounterValue + } + }); + }, + genControl: function genControl() { + return _VInput__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.genControl.call(this); + }, + genDefaultSlot: function genDefaultSlot() { + return [this.genFieldset(), this.genTextFieldSlot(), this.genClearIcon(), this.genIconSlot(), this.genProgress()]; + }, + genFieldset: function genFieldset() { + if (!this.outlined) return null; + return this.$createElement('fieldset', { + attrs: { + 'aria-hidden': true + } + }, [this.genLegend()]); + }, + genLabel: function genLabel() { + if (!this.showLabel) return null; + var data = { + props: { + absolute: true, + color: this.validationState, + dark: this.dark, + disabled: this.isDisabled, + focused: !this.isSingle && (this.isFocused || !!this.validationState), + for: this.computedId, + left: this.labelPosition.left, + light: this.light, + right: this.labelPosition.right, + value: this.labelValue + } + }; + return this.$createElement(_VLabel__WEBPACK_IMPORTED_MODULE_3__["default"], data, this.$slots.label || this.label); + }, + genLegend: function genLegend() { + var width = !this.singleLine && (this.labelValue || this.isDirty) ? this.labelWidth : 0; + var span = this.$createElement('span', { + domProps: { + innerHTML: '​' + } + }); + return this.$createElement('legend', { + style: { + width: !this.isSingle ? Object(_util_helpers__WEBPACK_IMPORTED_MODULE_9__["convertToUnit"])(width) : undefined + } + }, [span]); + }, + genInput: function genInput() { + var listeners = Object.assign({}, this.listeners$); + delete listeners.change; // Change should not be bound externally + + return this.$createElement('input', { + style: {}, + domProps: { + value: this.type === 'number' && Object.is(this.lazyValue, -0) ? '-0' : this.lazyValue + }, + attrs: __assign(__assign({}, this.attrs$), { + autofocus: this.autofocus, + disabled: this.isDisabled, + id: this.computedId, + placeholder: this.placeholder, + readonly: this.isReadonly, + type: this.type + }), + on: Object.assign(listeners, { + blur: this.onBlur, + input: this.onInput, + focus: this.onFocus, + keydown: this.onKeyDown + }), + ref: 'input', + directives: [{ + name: 'resize', + modifiers: { + quiet: true + }, + value: this.onResize + }] + }); + }, + genMessages: function genMessages() { + if (!this.showDetails) return null; + var messagesNode = _VInput__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.genMessages.call(this); + var counterNode = this.genCounter(); + return this.$createElement('div', { + staticClass: 'v-text-field__details' + }, [messagesNode, counterNode]); + }, + genTextFieldSlot: function genTextFieldSlot() { + return this.$createElement('div', { + staticClass: 'v-text-field__slot' + }, [this.genLabel(), this.prefix ? this.genAffix('prefix') : null, this.genInput(), this.suffix ? this.genAffix('suffix') : null]); + }, + genAffix: function genAffix(type) { + return this.$createElement('div', { + class: "v-text-field__" + type, + ref: type + }, this[type]); + }, + onBlur: function onBlur(e) { + var _this = this; + + this.isFocused = false; + e && this.$nextTick(function () { + return _this.$emit('blur', e); + }); + }, + onClick: function onClick() { + if (this.isFocused || this.isDisabled || !this.$refs.input) return; + this.$refs.input.focus(); + }, + onFocus: function onFocus(e) { + if (!this.$refs.input) return; + + if (document.activeElement !== this.$refs.input) { + return this.$refs.input.focus(); + } + + if (!this.isFocused) { + this.isFocused = true; + e && this.$emit('focus', e); + } + }, + onInput: function onInput(e) { + var target = e.target; + this.internalValue = target.value; + this.badInput = target.validity && target.validity.badInput; + }, + onKeyDown: function onKeyDown(e) { + if (e.keyCode === _util_helpers__WEBPACK_IMPORTED_MODULE_9__["keyCodes"].enter) this.$emit('change', this.internalValue); + this.$emit('keydown', e); + }, + onMouseDown: function onMouseDown(e) { + // Prevent input from being blurred + if (e.target !== this.$refs.input) { + e.preventDefault(); + e.stopPropagation(); + } + + _VInput__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.onMouseDown.call(this, e); + }, + onMouseUp: function onMouseUp(e) { + if (this.hasMouseDown) this.focus(); + _VInput__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.onMouseUp.call(this, e); + }, + setLabelWidth: function setLabelWidth() { + if (!this.outlined) return; + this.labelWidth = this.$refs.label ? Math.min(this.$refs.label.scrollWidth * 0.75 + 6, this.$el.offsetWidth - 24) : 0; + }, + setPrefixWidth: function setPrefixWidth() { + if (!this.$refs.prefix) return; + this.prefixWidth = this.$refs.prefix.offsetWidth; + }, + setPrependWidth: function setPrependWidth() { + if (!this.outlined || !this.$refs['prepend-inner']) return; + this.prependWidth = this.$refs['prepend-inner'].offsetWidth; + }, + tryAutofocus: function tryAutofocus() { + if (!this.autofocus || typeof document === 'undefined' || !this.$refs.input || document.activeElement === this.$refs.input) return false; + this.$refs.input.focus(); + return true; + }, + updateValue: function updateValue(val) { + // Sets validationState from validatable + this.hasColor = val; + + if (val) { + this.initialValue = this.lazyValue; + } else if (this.initialValue !== this.lazyValue) { + this.$emit('change', this.lazyValue); + } + }, + onResize: function onResize() { + this.setLabelWidth(); + this.setPrefixWidth(); + this.setPrependWidth(); + } + } +})); + +/***/ }), + +/***/ "./src/components/VTextField/index.ts": +/*!********************************************!*\ + !*** ./src/components/VTextField/index.ts ***! + \********************************************/ +/*! exports provided: VTextField, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VTextField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VTextField */ "./src/components/VTextField/VTextField.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTextField", function() { return _VTextField__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VTextField__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VTextarea/VTextarea.sass": +/*!*************************************************!*\ + !*** ./src/components/VTextarea/VTextarea.sass ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VTextarea/VTextarea.ts": +/*!***********************************************!*\ + !*** ./src/components/VTextarea/VTextarea.ts ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VTextarea_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VTextarea.sass */ "./src/components/VTextarea/VTextarea.sass"); +/* harmony import */ var _VTextarea_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VTextarea_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VTextField_VTextField__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VTextField/VTextField */ "./src/components/VTextField/VTextField.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Extensions + + // Utilities + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_2__["default"])(_VTextField_VTextField__WEBPACK_IMPORTED_MODULE_1__["default"]); +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend({ + name: 'v-textarea', + props: { + autoGrow: Boolean, + noResize: Boolean, + rowHeight: { + type: [Number, String], + default: 24, + validator: function validator(v) { + return !isNaN(parseFloat(v)); + } + }, + rows: { + type: [Number, String], + default: 5, + validator: function validator(v) { + return !isNaN(parseInt(v, 10)); + } + } + }, + computed: { + classes: function classes() { + return __assign({ + 'v-textarea': true, + 'v-textarea--auto-grow': this.autoGrow, + 'v-textarea--no-resize': this.noResizeHandle + }, _VTextField_VTextField__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.classes.call(this)); + }, + noResizeHandle: function noResizeHandle() { + return this.noResize || this.autoGrow; + } + }, + watch: { + lazyValue: function lazyValue() { + this.autoGrow && this.$nextTick(this.calculateInputHeight); + }, + rowHeight: function rowHeight() { + this.autoGrow && this.$nextTick(this.calculateInputHeight); + } + }, + mounted: function mounted() { + var _this = this; + + setTimeout(function () { + _this.autoGrow && _this.calculateInputHeight(); + }, 0); + }, + methods: { + calculateInputHeight: function calculateInputHeight() { + var input = this.$refs.input; + if (!input) return; + input.style.height = '0'; + var height = input.scrollHeight; + var minHeight = parseInt(this.rows, 10) * parseFloat(this.rowHeight); // This has to be done ASAP, waiting for Vue + // to update the DOM causes ugly layout jumping + + input.style.height = Math.max(minHeight, height) + 'px'; + }, + genInput: function genInput() { + var input = _VTextField_VTextField__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.genInput.call(this); + input.tag = 'textarea'; + delete input.data.attrs.type; + input.data.attrs.rows = this.rows; + return input; + }, + onInput: function onInput(e) { + _VTextField_VTextField__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.onInput.call(this, e); + this.autoGrow && this.calculateInputHeight(); + }, + onKeyDown: function onKeyDown(e) { + // Prevents closing of a + // dialog when pressing + // enter + if (this.isFocused && e.keyCode === 13) { + e.stopPropagation(); + } + + this.$emit('keydown', e); + } + } +})); + +/***/ }), + +/***/ "./src/components/VTextarea/index.ts": +/*!*******************************************!*\ + !*** ./src/components/VTextarea/index.ts ***! + \*******************************************/ +/*! exports provided: VTextarea, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VTextarea__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VTextarea */ "./src/components/VTextarea/VTextarea.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTextarea", function() { return _VTextarea__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VTextarea__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VThemeProvider/VThemeProvider.ts": +/*!*********************************************************!*\ + !*** ./src/components/VThemeProvider/VThemeProvider.ts ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +// Mixins + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (_mixins_themeable__WEBPACK_IMPORTED_MODULE_0__["default"].extend({ + name: 'v-theme-provider', + props: { + root: Boolean + }, + computed: { + isDark: function isDark() { + return this.root ? this.rootIsDark : _mixins_themeable__WEBPACK_IMPORTED_MODULE_0__["default"].options.computed.isDark.call(this); + } + }, + render: function render() { + /* istanbul ignore next */ + return this.$slots.default && this.$slots.default.find(function (node) { + return !node.isComment && node.text !== ' '; + }); + } +})); + +/***/ }), + +/***/ "./src/components/VThemeProvider/index.ts": +/*!************************************************!*\ + !*** ./src/components/VThemeProvider/index.ts ***! + \************************************************/ +/*! exports provided: VThemeProvider, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VThemeProvider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VThemeProvider */ "./src/components/VThemeProvider/VThemeProvider.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VThemeProvider", function() { return _VThemeProvider__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VThemeProvider__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VTimePicker/SelectingTimes.ts": +/*!******************************************************!*\ + !*** ./src/components/VTimePicker/SelectingTimes.ts ***! + \******************************************************/ +/*! exports provided: SelectingTimes */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectingTimes", function() { return SelectingTimes; }); +var SelectingTimes; + +(function (SelectingTimes) { + SelectingTimes[SelectingTimes["Hour"] = 1] = "Hour"; + SelectingTimes[SelectingTimes["Minute"] = 2] = "Minute"; + SelectingTimes[SelectingTimes["Second"] = 3] = "Second"; +})(SelectingTimes || (SelectingTimes = {})); + + + +/***/ }), + +/***/ "./src/components/VTimePicker/VTimePicker.ts": +/*!***************************************************!*\ + !*** ./src/components/VTimePicker/VTimePicker.ts ***! + \***************************************************/ +/*! exports provided: SelectingTimes, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VTimePickerTitle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VTimePickerTitle */ "./src/components/VTimePicker/VTimePickerTitle.ts"); +/* harmony import */ var _VTimePickerClock__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VTimePickerClock */ "./src/components/VTimePicker/VTimePickerClock.ts"); +/* harmony import */ var _mixins_picker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/picker */ "./src/mixins/picker/index.ts"); +/* harmony import */ var _mixins_picker_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/picker-button */ "./src/mixins/picker-button/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _VDatePicker_util_pad__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../VDatePicker/util/pad */ "./src/components/VDatePicker/util/pad.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./SelectingTimes */ "./src/components/VTimePicker/SelectingTimes.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectingTimes", function() { return _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__["SelectingTimes"]; }); + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; // Components + + + + // Mixins + + + // Utils + + + + + +var rangeHours24 = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["createRange"])(24); +var rangeHours12am = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["createRange"])(12); +var rangeHours12pm = rangeHours12am.map(function (v) { + return v + 12; +}); +var range60 = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["createRange"])(60); +var selectingNames = { + 1: 'hour', + 2: 'minute', + 3: 'second' +}; + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_6__["default"])(_mixins_picker__WEBPACK_IMPORTED_MODULE_2__["default"], _mixins_picker_button__WEBPACK_IMPORTED_MODULE_3__["default"] +/* @vue/component */ +).extend({ + name: 'v-time-picker', + props: { + allowedHours: [Function, Array], + allowedMinutes: [Function, Array], + allowedSeconds: [Function, Array], + disabled: Boolean, + format: { + type: String, + default: 'ampm', + validator: function validator(val) { + return ['ampm', '24hr'].includes(val); + } + }, + min: String, + max: String, + readonly: Boolean, + scrollable: Boolean, + useSeconds: Boolean, + value: null, + ampmInTitle: Boolean + }, + data: function data() { + return { + inputHour: null, + inputMinute: null, + inputSecond: null, + lazyInputHour: null, + lazyInputMinute: null, + lazyInputSecond: null, + period: 'am', + selecting: _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__["SelectingTimes"].Hour + }; + }, + computed: { + selectingHour: { + get: function get() { + return this.selecting === _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__["SelectingTimes"].Hour; + }, + set: function set(v) { + this.selecting = _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__["SelectingTimes"].Hour; + } + }, + selectingMinute: { + get: function get() { + return this.selecting === _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__["SelectingTimes"].Minute; + }, + set: function set(v) { + this.selecting = _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__["SelectingTimes"].Minute; + } + }, + selectingSecond: { + get: function get() { + return this.selecting === _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__["SelectingTimes"].Second; + }, + set: function set(v) { + this.selecting = _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__["SelectingTimes"].Second; + } + }, + isAllowedHourCb: function isAllowedHourCb() { + var _this = this; + + var cb; + + if (this.allowedHours instanceof Array) { + cb = function cb(val) { + return _this.allowedHours.includes(val); + }; + } else { + cb = this.allowedHours; + } + + if (!this.min && !this.max) return cb; + var minHour = this.min ? Number(this.min.split(':')[0]) : 0; + var maxHour = this.max ? Number(this.max.split(':')[0]) : 23; + return function (val) { + return val >= minHour * 1 && val <= maxHour * 1 && (!cb || cb(val)); + }; + }, + isAllowedMinuteCb: function isAllowedMinuteCb() { + var _this = this; + + var cb; + var isHourAllowed = !this.isAllowedHourCb || this.inputHour === null || this.isAllowedHourCb(this.inputHour); + + if (this.allowedMinutes instanceof Array) { + cb = function cb(val) { + return _this.allowedMinutes.includes(val); + }; + } else { + cb = this.allowedMinutes; + } + + if (!this.min && !this.max) { + return isHourAllowed ? cb : function () { + return false; + }; + } + + var _a = __read(this.min ? this.min.split(':').map(Number) : [0, 0], 2), + minHour = _a[0], + minMinute = _a[1]; + + var _b = __read(this.max ? this.max.split(':').map(Number) : [23, 59], 2), + maxHour = _b[0], + maxMinute = _b[1]; + + var minTime = minHour * 60 + minMinute * 1; + var maxTime = maxHour * 60 + maxMinute * 1; + return function (val) { + var time = 60 * _this.inputHour + val; + return time >= minTime && time <= maxTime && isHourAllowed && (!cb || cb(val)); + }; + }, + isAllowedSecondCb: function isAllowedSecondCb() { + var _this = this; + + var cb; + var isHourAllowed = !this.isAllowedHourCb || this.inputHour === null || this.isAllowedHourCb(this.inputHour); + var isMinuteAllowed = isHourAllowed && (!this.isAllowedMinuteCb || this.inputMinute === null || this.isAllowedMinuteCb(this.inputMinute)); + + if (this.allowedSeconds instanceof Array) { + cb = function cb(val) { + return _this.allowedSeconds.includes(val); + }; + } else { + cb = this.allowedSeconds; + } + + if (!this.min && !this.max) { + return isMinuteAllowed ? cb : function () { + return false; + }; + } + + var _a = __read(this.min ? this.min.split(':').map(Number) : [0, 0, 0], 3), + minHour = _a[0], + minMinute = _a[1], + minSecond = _a[2]; + + var _b = __read(this.max ? this.max.split(':').map(Number) : [23, 59, 59], 3), + maxHour = _b[0], + maxMinute = _b[1], + maxSecond = _b[2]; + + var minTime = minHour * 3600 + minMinute * 60 + (minSecond || 0) * 1; + var maxTime = maxHour * 3600 + maxMinute * 60 + (maxSecond || 0) * 1; + return function (val) { + var time = 3600 * _this.inputHour + 60 * _this.inputMinute + val; + return time >= minTime && time <= maxTime && isMinuteAllowed && (!cb || cb(val)); + }; + }, + isAmPm: function isAmPm() { + return this.format === 'ampm'; + } + }, + watch: { + value: 'setInputData' + }, + mounted: function mounted() { + this.setInputData(this.value); + this.$on('update:period', this.setPeriod); + }, + methods: { + genValue: function genValue() { + if (this.inputHour != null && this.inputMinute != null && (!this.useSeconds || this.inputSecond != null)) { + return Object(_VDatePicker_util_pad__WEBPACK_IMPORTED_MODULE_5__["default"])(this.inputHour) + ":" + Object(_VDatePicker_util_pad__WEBPACK_IMPORTED_MODULE_5__["default"])(this.inputMinute) + (this.useSeconds ? ":" + Object(_VDatePicker_util_pad__WEBPACK_IMPORTED_MODULE_5__["default"])(this.inputSecond) : ''); + } + + return null; + }, + emitValue: function emitValue() { + var value = this.genValue(); + if (value !== null) this.$emit('input', value); + }, + setPeriod: function setPeriod(period) { + this.period = period; + + if (this.inputHour != null) { + var newHour = this.inputHour + (period === 'am' ? -12 : 12); + this.inputHour = this.firstAllowed('hour', newHour); + this.emitValue(); + } + }, + setInputData: function setInputData(value) { + if (value == null || value === '') { + this.inputHour = null; + this.inputMinute = null; + this.inputSecond = null; + } else if (value instanceof Date) { + this.inputHour = value.getHours(); + this.inputMinute = value.getMinutes(); + this.inputSecond = value.getSeconds(); + } else { + var _a = __read(value.trim().toLowerCase().match(/^(\d+):(\d+)(:(\d+))?([ap]m)?$/) || new Array(6), 6), + hour = _a[1], + minute = _a[2], + second = _a[4], + period = _a[5]; + + this.inputHour = period ? this.convert12to24(parseInt(hour, 10), period) : parseInt(hour, 10); + this.inputMinute = parseInt(minute, 10); + this.inputSecond = parseInt(second || 0, 10); + } + + this.period = this.inputHour == null || this.inputHour < 12 ? 'am' : 'pm'; + }, + convert24to12: function convert24to12(hour) { + return hour ? (hour - 1) % 12 + 1 : 12; + }, + convert12to24: function convert12to24(hour, period) { + return hour % 12 + (period === 'pm' ? 12 : 0); + }, + onInput: function onInput(value) { + if (this.selecting === _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__["SelectingTimes"].Hour) { + this.inputHour = this.isAmPm ? this.convert12to24(value, this.period) : value; + } else if (this.selecting === _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__["SelectingTimes"].Minute) { + this.inputMinute = value; + } else { + this.inputSecond = value; + } + + this.emitValue(); + }, + onChange: function onChange(value) { + this.$emit("click:" + selectingNames[this.selecting], value); + var emitChange = this.selecting === (this.useSeconds ? _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__["SelectingTimes"].Second : _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__["SelectingTimes"].Minute); + + if (this.selecting === _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__["SelectingTimes"].Hour) { + this.selecting = _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__["SelectingTimes"].Minute; + } else if (this.useSeconds && this.selecting === _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__["SelectingTimes"].Minute) { + this.selecting = _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__["SelectingTimes"].Second; + } + + if (this.inputHour === this.lazyInputHour && this.inputMinute === this.lazyInputMinute && (!this.useSeconds || this.inputSecond === this.lazyInputSecond)) return; + var time = this.genValue(); + if (time === null) return; + this.lazyInputHour = this.inputHour; + this.lazyInputMinute = this.inputMinute; + this.useSeconds && (this.lazyInputSecond = this.inputSecond); + emitChange && this.$emit('change', time); + }, + firstAllowed: function firstAllowed(type, value) { + var allowedFn = type === 'hour' ? this.isAllowedHourCb : type === 'minute' ? this.isAllowedMinuteCb : this.isAllowedSecondCb; + if (!allowedFn) return value; // TODO: clean up + + var range = type === 'minute' ? range60 : type === 'second' ? range60 : this.isAmPm ? value < 12 ? rangeHours12am : rangeHours12pm : rangeHours24; + var first = range.find(function (v) { + return allowedFn((v + value) % range.length + range[0]); + }); + return ((first || 0) + value) % range.length + range[0]; + }, + genClock: function genClock() { + return this.$createElement(_VTimePickerClock__WEBPACK_IMPORTED_MODULE_1__["default"], { + props: { + allowedValues: this.selecting === _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__["SelectingTimes"].Hour ? this.isAllowedHourCb : this.selecting === _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__["SelectingTimes"].Minute ? this.isAllowedMinuteCb : this.isAllowedSecondCb, + color: this.color, + dark: this.dark, + disabled: this.disabled, + double: this.selecting === _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__["SelectingTimes"].Hour && !this.isAmPm, + format: this.selecting === _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__["SelectingTimes"].Hour ? this.isAmPm ? this.convert24to12 : function (val) { + return val; + } : function (val) { + return Object(_VDatePicker_util_pad__WEBPACK_IMPORTED_MODULE_5__["default"])(val, 2); + }, + light: this.light, + max: this.selecting === _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__["SelectingTimes"].Hour ? this.isAmPm && this.period === 'am' ? 11 : 23 : 59, + min: this.selecting === _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__["SelectingTimes"].Hour && this.isAmPm && this.period === 'pm' ? 12 : 0, + readonly: this.readonly, + scrollable: this.scrollable, + size: Number(this.width) - (!this.fullWidth && this.landscape ? 80 : 20), + step: this.selecting === _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__["SelectingTimes"].Hour ? 1 : 5, + value: this.selecting === _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__["SelectingTimes"].Hour ? this.inputHour : this.selecting === _SelectingTimes__WEBPACK_IMPORTED_MODULE_7__["SelectingTimes"].Minute ? this.inputMinute : this.inputSecond + }, + on: { + input: this.onInput, + change: this.onChange + }, + ref: 'clock' + }); + }, + genClockAmPm: function genClockAmPm() { + return this.$createElement('div', this.setTextColor(this.color || 'primary', { + staticClass: 'v-time-picker-clock__ampm' + }), [this.genPickerButton('period', 'am', this.$vuetify.lang.t('$vuetify.timePicker.am'), this.disabled || this.readonly), this.genPickerButton('period', 'pm', this.$vuetify.lang.t('$vuetify.timePicker.pm'), this.disabled || this.readonly)]); + }, + genPickerBody: function genPickerBody() { + return this.$createElement('div', { + staticClass: 'v-time-picker-clock__container', + key: this.selecting + }, [!this.ampmInTitle && this.isAmPm && this.genClockAmPm(), this.genClock()]); + }, + genPickerTitle: function genPickerTitle() { + var _this = this; + + return this.$createElement(_VTimePickerTitle__WEBPACK_IMPORTED_MODULE_0__["default"], { + props: { + ampm: this.isAmPm, + ampmReadonly: this.isAmPm && !this.ampmInTitle, + disabled: this.disabled, + hour: this.inputHour, + minute: this.inputMinute, + second: this.inputSecond, + period: this.period, + readonly: this.readonly, + useSeconds: this.useSeconds, + selecting: this.selecting + }, + on: { + 'update:selecting': function updateSelecting(value) { + return _this.selecting = value; + }, + 'update:period': function updatePeriod(period) { + return _this.$emit('update:period', period); + } + }, + ref: 'title', + slot: 'title' + }); + } + }, + render: function render() { + return this.genPicker('v-picker--time'); + } +})); + +/***/ }), + +/***/ "./src/components/VTimePicker/VTimePickerClock.sass": +/*!**********************************************************!*\ + !*** ./src/components/VTimePicker/VTimePickerClock.sass ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VTimePicker/VTimePickerClock.ts": +/*!********************************************************!*\ + !*** ./src/components/VTimePicker/VTimePickerClock.ts ***! + \********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VTimePickerClock_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VTimePickerClock.sass */ "./src/components/VTimePicker/VTimePickerClock.sass"); +/* harmony import */ var _VTimePickerClock_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VTimePickerClock_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + + // Mixins + + + // Types + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_3__["default"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_1__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_2__["default"] +/* @vue/component */ +).extend({ + name: 'v-time-picker-clock', + props: { + allowedValues: Function, + ampm: Boolean, + disabled: Boolean, + double: Boolean, + format: { + type: Function, + default: function _default(val) { + return val; + } + }, + max: { + type: Number, + required: true + }, + min: { + type: Number, + required: true + }, + scrollable: Boolean, + readonly: Boolean, + rotate: { + type: Number, + default: 0 + }, + step: { + type: Number, + default: 1 + }, + value: Number + }, + data: function data() { + return { + inputValue: this.value, + isDragging: false, + valueOnMouseDown: null, + valueOnMouseUp: null + }; + }, + computed: { + count: function count() { + return this.max - this.min + 1; + }, + degreesPerUnit: function degreesPerUnit() { + return 360 / this.roundCount; + }, + degrees: function degrees() { + return this.degreesPerUnit * Math.PI / 180; + }, + displayedValue: function displayedValue() { + return this.value == null ? this.min : this.value; + }, + innerRadiusScale: function innerRadiusScale() { + return 0.62; + }, + roundCount: function roundCount() { + return this.double ? this.count / 2 : this.count; + } + }, + watch: { + value: function value(_value) { + this.inputValue = _value; + } + }, + methods: { + wheel: function wheel(e) { + e.preventDefault(); + var delta = Math.sign(-e.deltaY || 1); + var value = this.displayedValue; + + do { + value = value + delta; + value = (value - this.min + this.count) % this.count + this.min; + } while (!this.isAllowed(value) && value !== this.displayedValue); + + if (value !== this.displayedValue) { + this.update(value); + } + }, + isInner: function isInner(value) { + return this.double && value - this.min >= this.roundCount; + }, + handScale: function handScale(value) { + return this.isInner(value) ? this.innerRadiusScale : 1; + }, + isAllowed: function isAllowed(value) { + return !this.allowedValues || this.allowedValues(value); + }, + genValues: function genValues() { + var children = []; + + for (var value = this.min; value <= this.max; value = value + this.step) { + var color = value === this.value && (this.color || 'accent'); + children.push(this.$createElement('span', this.setBackgroundColor(color, { + staticClass: 'v-time-picker-clock__item', + class: { + 'v-time-picker-clock__item--active': value === this.displayedValue, + 'v-time-picker-clock__item--disabled': this.disabled || !this.isAllowed(value) + }, + style: this.getTransform(value), + domProps: { + innerHTML: "<span>" + this.format(value) + "</span>" + } + }))); + } + + return children; + }, + genHand: function genHand() { + var scale = "scaleY(" + this.handScale(this.displayedValue) + ")"; + var angle = this.rotate + this.degreesPerUnit * (this.displayedValue - this.min); + var color = this.value != null && (this.color || 'accent'); + return this.$createElement('div', this.setBackgroundColor(color, { + staticClass: 'v-time-picker-clock__hand', + class: { + 'v-time-picker-clock__hand--inner': this.isInner(this.value) + }, + style: { + transform: "rotate(" + angle + "deg) " + scale + } + })); + }, + getTransform: function getTransform(i) { + var _a = this.getPosition(i), + x = _a.x, + y = _a.y; + + return { + left: 50 + x * 50 + "%", + top: 50 + y * 50 + "%" + }; + }, + getPosition: function getPosition(value) { + var rotateRadians = this.rotate * Math.PI / 180; + return { + x: Math.sin((value - this.min) * this.degrees + rotateRadians) * this.handScale(value), + y: -Math.cos((value - this.min) * this.degrees + rotateRadians) * this.handScale(value) + }; + }, + onMouseDown: function onMouseDown(e) { + e.preventDefault(); + this.valueOnMouseDown = null; + this.valueOnMouseUp = null; + this.isDragging = true; + this.onDragMove(e); + }, + onMouseUp: function onMouseUp(e) { + e.stopPropagation(); + this.isDragging = false; + + if (this.valueOnMouseUp !== null && this.isAllowed(this.valueOnMouseUp)) { + this.$emit('change', this.valueOnMouseUp); + } + }, + onDragMove: function onDragMove(e) { + e.preventDefault(); + if (!this.isDragging && e.type !== 'click') return; + + var _a = this.$refs.clock.getBoundingClientRect(), + width = _a.width, + top = _a.top, + left = _a.left; + + var innerWidth = this.$refs.innerClock.getBoundingClientRect().width; + + var _b = 'touches' in e ? e.touches[0] : e, + clientX = _b.clientX, + clientY = _b.clientY; + + var center = { + x: width / 2, + y: -width / 2 + }; + var coords = { + x: clientX - left, + y: top - clientY + }; + var handAngle = Math.round(this.angle(center, coords) - this.rotate + 360) % 360; + var insideClick = this.double && this.euclidean(center, coords) < (innerWidth + innerWidth * this.innerRadiusScale) / 4; + var checksCount = Math.ceil(15 / this.degreesPerUnit); + var value; + + for (var i = 0; i < checksCount; i++) { + value = this.angleToValue(handAngle + i * this.degreesPerUnit, insideClick); + if (this.isAllowed(value)) return this.setMouseDownValue(value); + value = this.angleToValue(handAngle - i * this.degreesPerUnit, insideClick); + if (this.isAllowed(value)) return this.setMouseDownValue(value); + } + }, + angleToValue: function angleToValue(angle, insideClick) { + var value = (Math.round(angle / this.degreesPerUnit) + (insideClick ? this.roundCount : 0)) % this.count + this.min; // Necessary to fix edge case when selecting left part of the value(s) at 12 o'clock + + if (angle < 360 - this.degreesPerUnit / 2) return value; + return insideClick ? this.max - this.roundCount + 1 : this.min; + }, + setMouseDownValue: function setMouseDownValue(value) { + if (this.valueOnMouseDown === null) { + this.valueOnMouseDown = value; + } + + this.valueOnMouseUp = value; + this.update(value); + }, + update: function update(value) { + if (this.inputValue !== value) { + this.inputValue = value; + this.$emit('input', value); + } + }, + euclidean: function euclidean(p0, p1) { + var dx = p1.x - p0.x; + var dy = p1.y - p0.y; + return Math.sqrt(dx * dx + dy * dy); + }, + angle: function angle(center, p1) { + var value = 2 * Math.atan2(p1.y - center.y - this.euclidean(center, p1), p1.x - center.x); + return Math.abs(value * 180 / Math.PI); + } + }, + render: function render(h) { + var _this = this; + + var data = { + staticClass: 'v-time-picker-clock', + class: __assign({ + 'v-time-picker-clock--indeterminate': this.value == null + }, this.themeClasses), + on: this.readonly || this.disabled ? undefined : { + mousedown: this.onMouseDown, + mouseup: this.onMouseUp, + mouseleave: function mouseleave(e) { + return _this.isDragging && _this.onMouseUp(e); + }, + touchstart: this.onMouseDown, + touchend: this.onMouseUp, + mousemove: this.onDragMove, + touchmove: this.onDragMove + }, + ref: 'clock' + }; + + if (this.scrollable && data.on) { + data.on.wheel = this.wheel; + } + + return h('div', data, [h('div', { + staticClass: 'v-time-picker-clock__inner', + ref: 'innerClock' + }, [this.genHand(), this.genValues()])]); + } +})); + +/***/ }), + +/***/ "./src/components/VTimePicker/VTimePickerTitle.sass": +/*!**********************************************************!*\ + !*** ./src/components/VTimePicker/VTimePickerTitle.sass ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VTimePicker/VTimePickerTitle.ts": +/*!********************************************************!*\ + !*** ./src/components/VTimePicker/VTimePickerTitle.ts ***! + \********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VTimePickerTitle_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VTimePickerTitle.sass */ "./src/components/VTimePicker/VTimePickerTitle.sass"); +/* harmony import */ var _VTimePickerTitle_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VTimePickerTitle_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_picker_button__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/picker-button */ "./src/mixins/picker-button/index.ts"); +/* harmony import */ var _VDatePicker_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../VDatePicker/util */ "./src/components/VDatePicker/util/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _SelectingTimes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./SelectingTimes */ "./src/components/VTimePicker/SelectingTimes.ts"); + // Mixins + + // Utils + + + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_3__["default"])(_mixins_picker_button__WEBPACK_IMPORTED_MODULE_1__["default"] +/* @vue/component */ +).extend({ + name: 'v-time-picker-title', + props: { + ampm: Boolean, + ampmReadonly: Boolean, + disabled: Boolean, + hour: Number, + minute: Number, + second: Number, + period: { + type: String, + validator: function validator(period) { + return period === 'am' || period === 'pm'; + } + }, + readonly: Boolean, + useSeconds: Boolean, + selecting: Number + }, + methods: { + genTime: function genTime() { + var hour = this.hour; + + if (this.ampm) { + hour = hour ? (hour - 1) % 12 + 1 : 12; + } + + var displayedHour = this.hour == null ? '--' : this.ampm ? String(hour) : Object(_VDatePicker_util__WEBPACK_IMPORTED_MODULE_2__["pad"])(hour); + var displayedMinute = this.minute == null ? '--' : Object(_VDatePicker_util__WEBPACK_IMPORTED_MODULE_2__["pad"])(this.minute); + var titleContent = [this.genPickerButton('selecting', _SelectingTimes__WEBPACK_IMPORTED_MODULE_4__["SelectingTimes"].Hour, displayedHour, this.disabled), this.$createElement('span', ':'), this.genPickerButton('selecting', _SelectingTimes__WEBPACK_IMPORTED_MODULE_4__["SelectingTimes"].Minute, displayedMinute, this.disabled)]; + + if (this.useSeconds) { + var displayedSecond = this.second == null ? '--' : Object(_VDatePicker_util__WEBPACK_IMPORTED_MODULE_2__["pad"])(this.second); + titleContent.push(this.$createElement('span', ':')); + titleContent.push(this.genPickerButton('selecting', _SelectingTimes__WEBPACK_IMPORTED_MODULE_4__["SelectingTimes"].Second, displayedSecond, this.disabled)); + } + + return this.$createElement('div', { + class: 'v-time-picker-title__time' + }, titleContent); + }, + genAmPm: function genAmPm() { + return this.$createElement('div', { + staticClass: 'v-time-picker-title__ampm', + class: { + 'v-time-picker-title__ampm--readonly': this.ampmReadonly + } + }, [!this.ampmReadonly || this.period === 'am' ? this.genPickerButton('period', 'am', this.$vuetify.lang.t('$vuetify.timePicker.am'), this.disabled || this.readonly) : null, !this.ampmReadonly || this.period === 'pm' ? this.genPickerButton('period', 'pm', this.$vuetify.lang.t('$vuetify.timePicker.pm'), this.disabled || this.readonly) : null]); + } + }, + render: function render(h) { + var children = [this.genTime()]; + this.ampm && children.push(this.genAmPm()); + return h('div', { + staticClass: 'v-time-picker-title' + }, children); + } +})); + +/***/ }), + +/***/ "./src/components/VTimePicker/index.ts": +/*!*********************************************!*\ + !*** ./src/components/VTimePicker/index.ts ***! + \*********************************************/ +/*! exports provided: VTimePicker, VTimePickerClock, VTimePickerTitle, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VTimePicker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VTimePicker */ "./src/components/VTimePicker/VTimePicker.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTimePicker", function() { return _VTimePicker__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + +/* harmony import */ var _VTimePickerClock__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VTimePickerClock */ "./src/components/VTimePicker/VTimePickerClock.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTimePickerClock", function() { return _VTimePickerClock__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + +/* harmony import */ var _VTimePickerTitle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./VTimePickerTitle */ "./src/components/VTimePicker/VTimePickerTitle.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTimePickerTitle", function() { return _VTimePickerTitle__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + $_vuetify_subcomponents: { + VTimePicker: _VTimePicker__WEBPACK_IMPORTED_MODULE_0__["default"], + VTimePickerClock: _VTimePickerClock__WEBPACK_IMPORTED_MODULE_1__["default"], + VTimePickerTitle: _VTimePickerTitle__WEBPACK_IMPORTED_MODULE_2__["default"] + } +}); + +/***/ }), + +/***/ "./src/components/VTimeline/VTimeline.sass": +/*!*************************************************!*\ + !*** ./src/components/VTimeline/VTimeline.sass ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VTimeline/VTimeline.ts": +/*!***********************************************!*\ + !*** ./src/components/VTimeline/VTimeline.ts ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VTimeline_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VTimeline.sass */ "./src/components/VTimeline/VTimeline.sass"); +/* harmony import */ var _VTimeline_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VTimeline_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + + // Mixins + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_1__["default"])(_mixins_themeable__WEBPACK_IMPORTED_MODULE_2__["default"] +/* @vue/component */ +).extend({ + name: 'v-timeline', + provide: function provide() { + return { + timeline: this + }; + }, + props: { + alignTop: Boolean, + dense: Boolean, + reverse: Boolean + }, + computed: { + classes: function classes() { + return __assign({ + 'v-timeline--align-top': this.alignTop, + 'v-timeline--dense': this.dense, + 'v-timeline--reverse': this.reverse + }, this.themeClasses); + } + }, + render: function render(h) { + return h('div', { + staticClass: 'v-timeline', + class: this.classes + }, this.$slots.default); + } +})); + +/***/ }), + +/***/ "./src/components/VTimeline/VTimelineItem.ts": +/*!***************************************************!*\ + !*** ./src/components/VTimeline/VTimelineItem.ts ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VIcon */ "./src/components/VIcon/index.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Types + + + + // Mixins + + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_0__["default"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_3__["default"], _mixins_themeable__WEBPACK_IMPORTED_MODULE_2__["default"] +/* @vue/component */ +); +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend().extend({ + name: 'v-timeline-item', + inject: ['timeline'], + props: { + color: { + type: String, + default: 'primary' + }, + fillDot: Boolean, + hideDot: Boolean, + icon: String, + iconColor: String, + large: Boolean, + left: Boolean, + right: Boolean, + small: Boolean + }, + computed: { + hasIcon: function hasIcon() { + return !!this.icon || !!this.$slots.icon; + } + }, + methods: { + genBody: function genBody() { + return this.$createElement('div', { + staticClass: 'v-timeline-item__body' + }, this.$slots.default); + }, + genIcon: function genIcon() { + if (this.$slots.icon) { + return this.$slots.icon; + } + + return this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_1__["default"], { + props: { + color: this.iconColor, + dark: !this.theme.isDark, + small: this.small + } + }, this.icon); + }, + genInnerDot: function genInnerDot() { + var data = this.setBackgroundColor(this.color); + return this.$createElement('div', __assign({ + staticClass: 'v-timeline-item__inner-dot' + }, data), [this.hasIcon && this.genIcon()]); + }, + genDot: function genDot() { + return this.$createElement('div', { + staticClass: 'v-timeline-item__dot', + class: { + 'v-timeline-item__dot--small': this.small, + 'v-timeline-item__dot--large': this.large + } + }, [this.genInnerDot()]); + }, + genDivider: function genDivider() { + var children = []; + if (!this.hideDot) children.push(this.genDot()); + return this.$createElement('div', { + staticClass: 'v-timeline-item__divider' + }, children); + }, + genOpposite: function genOpposite() { + return this.$createElement('div', { + staticClass: 'v-timeline-item__opposite' + }, this.$slots.opposite); + } + }, + render: function render(h) { + var children = [this.genBody(), this.genDivider()]; + if (this.$slots.opposite) children.push(this.genOpposite()); + return h('div', { + staticClass: 'v-timeline-item', + class: __assign({ + 'v-timeline-item--fill-dot': this.fillDot, + 'v-timeline-item--before': this.timeline.reverse ? this.right : this.left, + 'v-timeline-item--after': this.timeline.reverse ? this.left : this.right + }, this.themeClasses) + }, children); + } +})); + +/***/ }), + +/***/ "./src/components/VTimeline/index.ts": +/*!*******************************************!*\ + !*** ./src/components/VTimeline/index.ts ***! + \*******************************************/ +/*! exports provided: VTimeline, VTimelineItem, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VTimeline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VTimeline */ "./src/components/VTimeline/VTimeline.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTimeline", function() { return _VTimeline__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + +/* harmony import */ var _VTimelineItem__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VTimelineItem */ "./src/components/VTimeline/VTimelineItem.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTimelineItem", function() { return _VTimelineItem__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + $_vuetify_subcomponents: { + VTimeline: _VTimeline__WEBPACK_IMPORTED_MODULE_0__["default"], + VTimelineItem: _VTimelineItem__WEBPACK_IMPORTED_MODULE_1__["default"] + } +}); + +/***/ }), + +/***/ "./src/components/VToolbar/VToolbar.sass": +/*!***********************************************!*\ + !*** ./src/components/VToolbar/VToolbar.sass ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VToolbar/VToolbar.ts": +/*!*********************************************!*\ + !*** ./src/components/VToolbar/VToolbar.ts ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VToolbar_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VToolbar.sass */ "./src/components/VToolbar/VToolbar.sass"); +/* harmony import */ var _VToolbar_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VToolbar_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VSheet_VSheet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VSheet/VSheet */ "./src/components/VSheet/VSheet.ts"); +/* harmony import */ var _VImg_VImg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../VImg/VImg */ "./src/components/VImg/VImg.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; // Styles + + + // Extensions + + // Components + + // Utilities + + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (_VSheet_VSheet__WEBPACK_IMPORTED_MODULE_1__["default"].extend({ + name: 'v-toolbar', + props: { + absolute: Boolean, + bottom: Boolean, + collapse: Boolean, + dense: Boolean, + extended: Boolean, + extensionHeight: { + default: 48, + type: [Number, String] + }, + flat: Boolean, + floating: Boolean, + prominent: Boolean, + short: Boolean, + src: { + type: [String, Object], + default: '' + }, + tag: { + type: String, + default: 'header' + } + }, + data: function data() { + return { + isExtended: false + }; + }, + computed: { + computedHeight: function computedHeight() { + var height = this.computedContentHeight; + if (!this.isExtended) return height; + var extensionHeight = parseInt(this.extensionHeight); + return this.isCollapsed ? height : height + (!isNaN(extensionHeight) ? extensionHeight : 0); + }, + computedContentHeight: function computedContentHeight() { + if (this.height) return parseInt(this.height); + if (this.isProminent && this.dense) return 96; + if (this.isProminent && this.short) return 112; + if (this.isProminent) return 128; + if (this.dense) return 48; + if (this.short || this.$vuetify.breakpoint.smAndDown) return 56; + return 64; + }, + classes: function classes() { + return __assign(__assign({}, _VSheet_VSheet__WEBPACK_IMPORTED_MODULE_1__["default"].options.computed.classes.call(this)), { + 'v-toolbar': true, + 'v-toolbar--absolute': this.absolute, + 'v-toolbar--bottom': this.bottom, + 'v-toolbar--collapse': this.collapse, + 'v-toolbar--collapsed': this.isCollapsed, + 'v-toolbar--dense': this.dense, + 'v-toolbar--extended': this.isExtended, + 'v-toolbar--flat': this.flat, + 'v-toolbar--floating': this.floating, + 'v-toolbar--prominent': this.isProminent + }); + }, + isCollapsed: function isCollapsed() { + return this.collapse; + }, + isProminent: function isProminent() { + return this.prominent; + }, + styles: function styles() { + return __assign(__assign({}, this.measurableStyles), { + height: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["convertToUnit"])(this.computedHeight) + }); + } + }, + created: function created() { + var _this = this; + + var breakingProps = [['app', '<v-app-bar app>'], ['manual-scroll', '<v-app-bar :value="false">'], ['clipped-left', '<v-app-bar clipped-left>'], ['clipped-right', '<v-app-bar clipped-right>'], ['inverted-scroll', '<v-app-bar inverted-scroll>'], ['scroll-off-screen', '<v-app-bar scroll-off-screen>'], ['scroll-target', '<v-app-bar scroll-target>'], ['scroll-threshold', '<v-app-bar scroll-threshold>'], ['card', '<v-app-bar flat>']]; + /* istanbul ignore next */ + + breakingProps.forEach(function (_a) { + var _b = __read(_a, 2), + original = _b[0], + replacement = _b[1]; + + if (_this.$attrs.hasOwnProperty(original)) Object(_util_console__WEBPACK_IMPORTED_MODULE_4__["breaking"])(original, replacement, _this); + }); + }, + methods: { + genBackground: function genBackground() { + var props = { + height: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["convertToUnit"])(this.computedHeight), + src: this.src + }; + var image = this.$scopedSlots.img ? this.$scopedSlots.img({ + props: props + }) : this.$createElement(_VImg_VImg__WEBPACK_IMPORTED_MODULE_2__["default"], { + props: props + }); + return this.$createElement('div', { + staticClass: 'v-toolbar__image' + }, [image]); + }, + genContent: function genContent() { + return this.$createElement('div', { + staticClass: 'v-toolbar__content', + style: { + height: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["convertToUnit"])(this.computedContentHeight) + } + }, Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["getSlot"])(this)); + }, + genExtension: function genExtension() { + return this.$createElement('div', { + staticClass: 'v-toolbar__extension', + style: { + height: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["convertToUnit"])(this.extensionHeight) + } + }, Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["getSlot"])(this, 'extension')); + } + }, + render: function render(h) { + this.isExtended = this.extended || !!this.$scopedSlots.extension; + var children = [this.genContent()]; + var data = this.setBackgroundColor(this.color, { + class: this.classes, + style: this.styles, + on: this.$listeners + }); + if (this.isExtended) children.push(this.genExtension()); + if (this.src || this.$scopedSlots.img) children.unshift(this.genBackground()); + return h(this.tag, data, children); + } +})); + +/***/ }), + +/***/ "./src/components/VToolbar/index.ts": +/*!******************************************!*\ + !*** ./src/components/VToolbar/index.ts ***! + \******************************************/ +/*! exports provided: VToolbar, VToolbarItems, VToolbarTitle, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VToolbarItems", function() { return VToolbarItems; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VToolbarTitle", function() { return VToolbarTitle; }); +/* harmony import */ var _VToolbar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VToolbar */ "./src/components/VToolbar/VToolbar.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VToolbar", function() { return _VToolbar__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +// Components + // Utilities + + +var VToolbarTitle = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["createSimpleFunctional"])('v-toolbar__title'); +var VToolbarItems = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["createSimpleFunctional"])('v-toolbar__items'); + +/* harmony default export */ __webpack_exports__["default"] = ({ + $_vuetify_subcomponents: { + VToolbar: _VToolbar__WEBPACK_IMPORTED_MODULE_0__["default"], + VToolbarItems: VToolbarItems, + VToolbarTitle: VToolbarTitle + } +}); + +/***/ }), + +/***/ "./src/components/VTooltip/VTooltip.sass": +/*!***********************************************!*\ + !*** ./src/components/VTooltip/VTooltip.sass ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VTooltip/VTooltip.ts": +/*!*********************************************!*\ + !*** ./src/components/VTooltip/VTooltip.ts ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VTooltip_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VTooltip.sass */ "./src/components/VTooltip/VTooltip.sass"); +/* harmony import */ var _VTooltip_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VTooltip_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_activatable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/activatable */ "./src/mixins/activatable/index.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_delayable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/delayable */ "./src/mixins/delayable/index.ts"); +/* harmony import */ var _mixins_dependent__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mixins/dependent */ "./src/mixins/dependent/index.ts"); +/* harmony import */ var _mixins_detachable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/detachable */ "./src/mixins/detachable/index.ts"); +/* harmony import */ var _mixins_menuable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../mixins/menuable */ "./src/mixins/menuable/index.ts"); +/* harmony import */ var _mixins_toggleable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../mixins/toggleable */ "./src/mixins/toggleable/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); + // Mixins + + + + + + + + // Helpers + + + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_10__["default"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_2__["default"], _mixins_delayable__WEBPACK_IMPORTED_MODULE_3__["default"], _mixins_dependent__WEBPACK_IMPORTED_MODULE_4__["default"], _mixins_detachable__WEBPACK_IMPORTED_MODULE_5__["default"], _mixins_menuable__WEBPACK_IMPORTED_MODULE_6__["default"], _mixins_toggleable__WEBPACK_IMPORTED_MODULE_7__["default"]).extend({ + name: 'v-tooltip', + props: { + closeDelay: { + type: [Number, String], + default: 0 + }, + disabled: Boolean, + fixed: { + type: Boolean, + default: true + }, + openDelay: { + type: [Number, String], + default: 0 + }, + openOnHover: { + type: Boolean, + default: true + }, + tag: { + type: String, + default: 'span' + }, + transition: String + }, + data: function data() { + return { + calculatedMinWidth: 0, + closeDependents: false + }; + }, + computed: { + calculatedLeft: function calculatedLeft() { + var _a = this.dimensions, + activator = _a.activator, + content = _a.content; + var unknown = !this.bottom && !this.left && !this.top && !this.right; + var activatorLeft = this.attach !== false ? activator.offsetLeft : activator.left; + var left = 0; + + if (this.top || this.bottom || unknown) { + left = activatorLeft + activator.width / 2 - content.width / 2; + } else if (this.left || this.right) { + left = activatorLeft + (this.right ? activator.width : -content.width) + (this.right ? 10 : -10); + } + + if (this.nudgeLeft) left -= parseInt(this.nudgeLeft); + if (this.nudgeRight) left += parseInt(this.nudgeRight); + return this.calcXOverflow(left, this.dimensions.content.width) + "px"; + }, + calculatedTop: function calculatedTop() { + var _a = this.dimensions, + activator = _a.activator, + content = _a.content; + var activatorTop = this.attach !== false ? activator.offsetTop : activator.top; + var top = 0; + + if (this.top || this.bottom) { + top = activatorTop + (this.bottom ? activator.height : -content.height) + (this.bottom ? 10 : -10); + } else if (this.left || this.right) { + top = activatorTop + activator.height / 2 - content.height / 2; + } + + if (this.nudgeTop) top -= parseInt(this.nudgeTop); + if (this.nudgeBottom) top += parseInt(this.nudgeBottom); + return this.calcYOverflow(top + this.pageYOffset) + "px"; + }, + classes: function classes() { + return { + 'v-tooltip--top': this.top, + 'v-tooltip--right': this.right, + 'v-tooltip--bottom': this.bottom, + 'v-tooltip--left': this.left, + 'v-tooltip--attached': this.attach === '' || this.attach === true || this.attach === 'attach' + }; + }, + computedTransition: function computedTransition() { + if (this.transition) return this.transition; + return this.isActive ? 'scale-transition' : 'fade-transition'; + }, + offsetY: function offsetY() { + return this.top || this.bottom; + }, + offsetX: function offsetX() { + return this.left || this.right; + }, + styles: function styles() { + return { + left: this.calculatedLeft, + maxWidth: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_8__["convertToUnit"])(this.maxWidth), + minWidth: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_8__["convertToUnit"])(this.minWidth), + opacity: this.isActive ? 0.9 : 0, + top: this.calculatedTop, + zIndex: this.zIndex || this.activeZIndex + }; + } + }, + beforeMount: function beforeMount() { + var _this = this; + + this.$nextTick(function () { + _this.value && _this.callActivate(); + }); + }, + mounted: function mounted() { + if (Object(_util_helpers__WEBPACK_IMPORTED_MODULE_8__["getSlotType"])(this, 'activator', true) === 'v-slot') { + Object(_util_console__WEBPACK_IMPORTED_MODULE_9__["consoleError"])("v-tooltip's activator slot must be bound, try '<template #activator=\"data\"><v-btn v-on=\"data.on>'", this); + } + }, + methods: { + activate: function activate() { + // Update coordinates and dimensions of menu + // and its activator + this.updateDimensions(); // Start the transition + + requestAnimationFrame(this.startTransition); + }, + deactivate: function deactivate() { + this.runDelay('close'); + }, + genActivatorListeners: function genActivatorListeners() { + var _this = this; + + var listeners = _mixins_activatable__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.genActivatorListeners.call(this); + + listeners.focus = function (e) { + _this.getActivator(e); + + _this.runDelay('open'); + }; + + listeners.blur = function (e) { + _this.getActivator(e); + + _this.runDelay('close'); + }; + + listeners.keydown = function (e) { + if (e.keyCode === _util_helpers__WEBPACK_IMPORTED_MODULE_8__["keyCodes"].esc) { + _this.getActivator(e); + + _this.runDelay('close'); + } + }; + + return listeners; + }, + genActivatorAttributes: function genActivatorAttributes() { + return { + 'aria-haspopup': true, + 'aria-expanded': String(this.isActive) + }; + }, + genTransition: function genTransition() { + var content = this.genContent(); + if (!this.computedTransition) return content; + return this.$createElement('transition', { + props: { + name: this.computedTransition + } + }, [content]); + }, + genContent: function genContent() { + var _a; + + return this.$createElement('div', this.setBackgroundColor(this.color, { + staticClass: 'v-tooltip__content', + class: (_a = {}, _a[this.contentClass] = true, _a.menuable__content__active = this.isActive, _a['v-tooltip__content--fixed'] = this.activatorFixed, _a), + style: this.styles, + attrs: this.getScopeIdAttrs(), + directives: [{ + name: 'show', + value: this.isContentActive + }], + ref: 'content' + }), this.getContentSlot()); + } + }, + render: function render(h) { + var _this = this; + + return h(this.tag, { + staticClass: 'v-tooltip', + class: this.classes + }, [this.showLazyContent(function () { + return [_this.genTransition()]; + }), this.genActivator()]); + } +})); + +/***/ }), + +/***/ "./src/components/VTooltip/index.ts": +/*!******************************************!*\ + !*** ./src/components/VTooltip/index.ts ***! + \******************************************/ +/*! exports provided: VTooltip, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VTooltip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VTooltip */ "./src/components/VTooltip/VTooltip.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTooltip", function() { return _VTooltip__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VTooltip__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VTreeview/VTreeview.sass": +/*!*************************************************!*\ + !*** ./src/components/VTreeview/VTreeview.sass ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VTreeview/VTreeview.ts": +/*!***********************************************!*\ + !*** ./src/components/VTreeview/VTreeview.ts ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VTreeview_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VTreeview.sass */ "./src/components/VTreeview/VTreeview.sass"); +/* harmony import */ var _VTreeview_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VTreeview_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _VTreeviewNode__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VTreeviewNode */ "./src/components/VTreeview/VTreeviewNode.ts"); +/* harmony import */ var _mixins_themeable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _mixins_registrable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/registrable */ "./src/mixins/registrable/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +/* harmony import */ var _util_filterTreeItems__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./util/filterTreeItems */ "./src/components/VTreeview/util/filterTreeItems.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + +var __spread = undefined && undefined.__spread || function () { + for (var ar = [], i = 0; i < arguments.length; i++) { + ar = ar.concat(__read(arguments[i])); + } + + return ar; +}; + +var __values = undefined && undefined.__values || function (o) { + var s = typeof Symbol === "function" && Symbol.iterator, + m = s && o[s], + i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function next() { + if (o && i >= o.length) o = void 0; + return { + value: o && o[i++], + done: !o + }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); +}; // Styles + + + // Components + + // Mixins + + + // Utils + + + + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_5__["default"])(Object(_mixins_registrable__WEBPACK_IMPORTED_MODULE_3__["provide"])('treeview'), _mixins_themeable__WEBPACK_IMPORTED_MODULE_2__["default"] +/* @vue/component */ +).extend({ + name: 'v-treeview', + provide: function provide() { + return { + treeview: this + }; + }, + props: __assign({ + active: { + type: Array, + default: function _default() { + return []; + } + }, + dense: Boolean, + filter: Function, + hoverable: Boolean, + items: { + type: Array, + default: function _default() { + return []; + } + }, + multipleActive: Boolean, + open: { + type: Array, + default: function _default() { + return []; + } + }, + openAll: Boolean, + returnObject: { + type: Boolean, + default: false + }, + search: String, + value: { + type: Array, + default: function _default() { + return []; + } + } + }, _VTreeviewNode__WEBPACK_IMPORTED_MODULE_1__["VTreeviewNodeProps"]), + data: function data() { + return { + level: -1, + activeCache: new Set(), + nodes: {}, + openCache: new Set(), + selectedCache: new Set() + }; + }, + computed: { + excludedItems: function excludedItems() { + var excluded = new Set(); + if (!this.search) return excluded; + + for (var i = 0; i < this.items.length; i++) { + Object(_util_filterTreeItems__WEBPACK_IMPORTED_MODULE_7__["filterTreeItems"])(this.filter || _util_filterTreeItems__WEBPACK_IMPORTED_MODULE_7__["filterTreeItem"], this.items[i], this.search, this.itemKey, this.itemText, this.itemChildren, excluded); + } + + return excluded; + } + }, + watch: { + items: { + handler: function handler() { + var _this = this; + + var oldKeys = Object.keys(this.nodes).map(function (k) { + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getObjectValueByPath"])(_this.nodes[k].item, _this.itemKey); + }); + var newKeys = this.getKeys(this.items); + var diff = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["arrayDiff"])(newKeys, oldKeys); // We only want to do stuff if items have changed + + if (!diff.length && newKeys.length < oldKeys.length) return; // If nodes are removed we need to clear them from this.nodes + + diff.forEach(function (k) { + return delete _this.nodes[k]; + }); + + var oldSelectedCache = __spread(this.selectedCache); + + this.selectedCache = new Set(); + this.activeCache = new Set(); + this.openCache = new Set(); + this.buildTree(this.items); // Only emit selected if selection has changed + // as a result of items changing. This fixes a + // potential double emit when selecting a node + // with dynamic children + + if (!Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["deepEqual"])(oldSelectedCache, __spread(this.selectedCache))) this.emitSelected(); + }, + deep: true + }, + active: function active(value) { + this.handleNodeCacheWatcher(value, this.activeCache, this.updateActive, this.emitActive); + }, + value: function value(_value) { + this.handleNodeCacheWatcher(_value, this.selectedCache, this.updateSelected, this.emitSelected); + }, + open: function open(value) { + this.handleNodeCacheWatcher(value, this.openCache, this.updateOpen, this.emitOpen); + } + }, + created: function created() { + var e_1, _a, e_2, _b; + + var _this = this; + + var getValue = function getValue(key) { + return _this.returnObject ? Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getObjectValueByPath"])(key, _this.itemKey) : key; + }; + + this.buildTree(this.items); + + try { + for (var _c = __values(this.value.map(getValue)), _d = _c.next(); !_d.done; _d = _c.next()) { + var value = _d.value; + this.updateSelected(value, true, true); + } + } catch (e_1_1) { + e_1 = { + error: e_1_1 + }; + } finally { + try { + if (_d && !_d.done && (_a = _c.return)) _a.call(_c); + } finally { + if (e_1) throw e_1.error; + } + } + + try { + for (var _e = __values(this.active.map(getValue)), _f = _e.next(); !_f.done; _f = _e.next()) { + var active = _f.value; + this.updateActive(active, true); + } + } catch (e_2_1) { + e_2 = { + error: e_2_1 + }; + } finally { + try { + if (_f && !_f.done && (_b = _e.return)) _b.call(_e); + } finally { + if (e_2) throw e_2.error; + } + } + }, + mounted: function mounted() { + var _this = this; // Save the developer from themselves + + + if (this.$slots.prepend || this.$slots.append) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_6__["consoleWarn"])('The prepend and append slots require a slot-scope attribute', this); + } + + if (this.openAll) { + this.updateAll(true); + } else { + this.open.forEach(function (key) { + return _this.updateOpen(_this.returnObject ? Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getObjectValueByPath"])(key, _this.itemKey) : key, true); + }); + this.emitOpen(); + } + }, + methods: { + /** @public */ + updateAll: function updateAll(value) { + var _this = this; + + Object.keys(this.nodes).forEach(function (key) { + return _this.updateOpen(Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getObjectValueByPath"])(_this.nodes[key].item, _this.itemKey), value); + }); + this.emitOpen(); + }, + getKeys: function getKeys(items, keys) { + if (keys === void 0) { + keys = []; + } + + for (var i = 0; i < items.length; i++) { + var key = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getObjectValueByPath"])(items[i], this.itemKey); + keys.push(key); + var children = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getObjectValueByPath"])(items[i], this.itemChildren); + + if (children) { + keys.push.apply(keys, __spread(this.getKeys(children))); + } + } + + return keys; + }, + buildTree: function buildTree(items, parent) { + var _this = this; + + if (parent === void 0) { + parent = null; + } + + for (var i = 0; i < items.length; i++) { + var item = items[i]; + var key = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getObjectValueByPath"])(item, this.itemKey); + var children = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getObjectValueByPath"])(item, this.itemChildren, []); + var oldNode = this.nodes.hasOwnProperty(key) ? this.nodes[key] : { + isSelected: false, + isIndeterminate: false, + isActive: false, + isOpen: false, + vnode: null + }; + var node = { + vnode: oldNode.vnode, + parent: parent, + children: children.map(function (c) { + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getObjectValueByPath"])(c, _this.itemKey); + }), + item: item + }; + this.buildTree(children, key); // This fixed bug with dynamic children resetting selected parent state + + if (!this.nodes.hasOwnProperty(key) && parent !== null && this.nodes.hasOwnProperty(parent)) { + node.isSelected = this.nodes[parent].isSelected; + } else { + node.isSelected = oldNode.isSelected; + node.isIndeterminate = oldNode.isIndeterminate; + } + + node.isActive = oldNode.isActive; + node.isOpen = oldNode.isOpen; + this.nodes[key] = node; + + if (children.length) { + var _a = this.calculateState(key, this.nodes), + isSelected = _a.isSelected, + isIndeterminate = _a.isIndeterminate; + + node.isSelected = isSelected; + node.isIndeterminate = isIndeterminate; + } // Don't forget to rebuild cache + + + if (this.nodes[key].isSelected && (this.selectionType === 'independent' || node.children.length === 0)) this.selectedCache.add(key); + if (this.nodes[key].isActive) this.activeCache.add(key); + if (this.nodes[key].isOpen) this.openCache.add(key); + this.updateVnodeState(key); + } + }, + calculateState: function calculateState(node, state) { + var children = state[node].children; + var counts = children.reduce(function (counts, child) { + counts[0] += +Boolean(state[child].isSelected); + counts[1] += +Boolean(state[child].isIndeterminate); + return counts; + }, [0, 0]); + var isSelected = !!children.length && counts[0] === children.length; + var isIndeterminate = !isSelected && (counts[0] > 0 || counts[1] > 0); + return { + isSelected: isSelected, + isIndeterminate: isIndeterminate + }; + }, + emitOpen: function emitOpen() { + this.emitNodeCache('update:open', this.openCache); + }, + emitSelected: function emitSelected() { + this.emitNodeCache('input', this.selectedCache); + }, + emitActive: function emitActive() { + this.emitNodeCache('update:active', this.activeCache); + }, + emitNodeCache: function emitNodeCache(event, cache) { + var _this = this; + + this.$emit(event, this.returnObject ? __spread(cache).map(function (key) { + return _this.nodes[key].item; + }) : __spread(cache)); + }, + handleNodeCacheWatcher: function handleNodeCacheWatcher(value, cache, updateFn, emitFn) { + var _this = this; + + value = this.returnObject ? value.map(function (v) { + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getObjectValueByPath"])(v, _this.itemKey); + }) : value; + + var old = __spread(cache); + + if (Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["deepEqual"])(old, value)) return; + old.forEach(function (key) { + return updateFn(key, false); + }); + value.forEach(function (key) { + return updateFn(key, true); + }); + emitFn(); + }, + getDescendants: function getDescendants(key, descendants) { + if (descendants === void 0) { + descendants = []; + } + + var children = this.nodes[key].children; + descendants.push.apply(descendants, __spread(children)); + + for (var i = 0; i < children.length; i++) { + descendants = this.getDescendants(children[i], descendants); + } + + return descendants; + }, + getParents: function getParents(key) { + var parent = this.nodes[key].parent; + var parents = []; + + while (parent !== null) { + parents.push(parent); + parent = this.nodes[parent].parent; + } + + return parents; + }, + register: function register(node) { + var key = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getObjectValueByPath"])(node.item, this.itemKey); + this.nodes[key].vnode = node; + this.updateVnodeState(key); + }, + unregister: function unregister(node) { + var key = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getObjectValueByPath"])(node.item, this.itemKey); + if (this.nodes[key]) this.nodes[key].vnode = null; + }, + isParent: function isParent(key) { + return this.nodes[key].children && this.nodes[key].children.length; + }, + updateActive: function updateActive(key, isActive) { + var _this = this; + + if (!this.nodes.hasOwnProperty(key)) return; + + if (!this.multipleActive) { + this.activeCache.forEach(function (active) { + _this.nodes[active].isActive = false; + + _this.updateVnodeState(active); + + _this.activeCache.delete(active); + }); + } + + var node = this.nodes[key]; + if (!node) return; + if (isActive) this.activeCache.add(key);else this.activeCache.delete(key); + node.isActive = isActive; + this.updateVnodeState(key); + }, + updateSelected: function updateSelected(key, isSelected, isForced) { + var e_3, _a, e_4, _b, e_5, _c; + + if (isForced === void 0) { + isForced = false; + } + + if (!this.nodes.hasOwnProperty(key)) return; + var changed = new Map(); + + if (this.selectionType !== 'independent') { + try { + for (var _d = __values(this.getDescendants(key)), _e = _d.next(); !_e.done; _e = _d.next()) { + var descendant = _e.value; + + if (!Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getObjectValueByPath"])(this.nodes[descendant].item, this.itemDisabled) || isForced) { + this.nodes[descendant].isSelected = isSelected; + this.nodes[descendant].isIndeterminate = false; + changed.set(descendant, isSelected); + } + } + } catch (e_3_1) { + e_3 = { + error: e_3_1 + }; + } finally { + try { + if (_e && !_e.done && (_a = _d.return)) _a.call(_d); + } finally { + if (e_3) throw e_3.error; + } + } + + var calculated = this.calculateState(key, this.nodes); + this.nodes[key].isSelected = isSelected; + this.nodes[key].isIndeterminate = calculated.isIndeterminate; + changed.set(key, isSelected); + + try { + for (var _f = __values(this.getParents(key)), _g = _f.next(); !_g.done; _g = _f.next()) { + var parent = _g.value; + var calculated_1 = this.calculateState(parent, this.nodes); + this.nodes[parent].isSelected = calculated_1.isSelected; + this.nodes[parent].isIndeterminate = calculated_1.isIndeterminate; + changed.set(parent, calculated_1.isSelected); + } + } catch (e_4_1) { + e_4 = { + error: e_4_1 + }; + } finally { + try { + if (_g && !_g.done && (_b = _f.return)) _b.call(_f); + } finally { + if (e_4) throw e_4.error; + } + } + } else { + this.nodes[key].isSelected = isSelected; + this.nodes[key].isIndeterminate = false; + changed.set(key, isSelected); + } + + try { + for (var _h = __values(changed.entries()), _j = _h.next(); !_j.done; _j = _h.next()) { + var _k = __read(_j.value, 2), + key_1 = _k[0], + value = _k[1]; + + this.updateVnodeState(key_1); + if (this.selectionType === 'leaf' && this.isParent(key_1)) continue; + value === true ? this.selectedCache.add(key_1) : this.selectedCache.delete(key_1); + } + } catch (e_5_1) { + e_5 = { + error: e_5_1 + }; + } finally { + try { + if (_j && !_j.done && (_c = _h.return)) _c.call(_h); + } finally { + if (e_5) throw e_5.error; + } + } + }, + updateOpen: function updateOpen(key, isOpen) { + var _this = this; + + if (!this.nodes.hasOwnProperty(key)) return; + var node = this.nodes[key]; + var children = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getObjectValueByPath"])(node.item, this.itemChildren); + + if (children && !children.length && node.vnode && !node.vnode.hasLoaded) { + node.vnode.checkChildren().then(function () { + return _this.updateOpen(key, isOpen); + }); + } else if (children && children.length) { + node.isOpen = isOpen; + node.isOpen ? this.openCache.add(key) : this.openCache.delete(key); + this.updateVnodeState(key); + } + }, + updateVnodeState: function updateVnodeState(key) { + var node = this.nodes[key]; + + if (node && node.vnode) { + node.vnode.isSelected = node.isSelected; + node.vnode.isIndeterminate = node.isIndeterminate; + node.vnode.isActive = node.isActive; + node.vnode.isOpen = node.isOpen; + } + }, + isExcluded: function isExcluded(key) { + return !!this.search && this.excludedItems.has(key); + } + }, + render: function render(h) { + var _this = this; + + var children = this.items.length ? this.items.filter(function (item) { + return !_this.isExcluded(Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getObjectValueByPath"])(item, _this.itemKey)); + }).map(function (item) { + var genChild = _VTreeviewNode__WEBPACK_IMPORTED_MODULE_1__["default"].options.methods.genChild.bind(_this); + return genChild(item, Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["getObjectValueByPath"])(item, _this.itemDisabled)); + }) + /* istanbul ignore next */ + : this.$slots.default; // TODO: remove type annotation with TS 3.2 + + return h('div', { + staticClass: 'v-treeview', + class: __assign({ + 'v-treeview--hoverable': this.hoverable, + 'v-treeview--dense': this.dense + }, this.themeClasses) + }, children); + } +})); + +/***/ }), + +/***/ "./src/components/VTreeview/VTreeviewNode.ts": +/*!***************************************************!*\ + !*** ./src/components/VTreeview/VTreeviewNode.ts ***! + \***************************************************/ +/*! exports provided: VTreeviewNodeProps, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VTreeviewNodeProps", function() { return VTreeviewNodeProps; }); +/* harmony import */ var _transitions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../transitions */ "./src/components/transitions/index.ts"); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VIcon */ "./src/components/VIcon/index.ts"); +/* harmony import */ var _mixins_registrable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/registrable */ "./src/mixins/registrable/index.ts"); +/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + +var __spread = undefined && undefined.__spread || function () { + for (var ar = [], i = 0; i < arguments.length; i++) { + ar = ar.concat(__read(arguments[i])); + } + + return ar; +}; // Components + + + + // Mixins + + + // Utils + + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_4__["default"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_3__["default"], Object(_mixins_registrable__WEBPACK_IMPORTED_MODULE_2__["inject"])('treeview')); +var VTreeviewNodeProps = { + activatable: Boolean, + activeClass: { + type: String, + default: 'v-treeview-node--active' + }, + color: { + type: String, + default: 'primary' + }, + expandIcon: { + type: String, + default: '$subgroup' + }, + indeterminateIcon: { + type: String, + default: '$checkboxIndeterminate' + }, + itemChildren: { + type: String, + default: 'children' + }, + itemDisabled: { + type: String, + default: 'disabled' + }, + itemKey: { + type: String, + default: 'id' + }, + itemText: { + type: String, + default: 'name' + }, + loadChildren: Function, + loadingIcon: { + type: String, + default: '$loading' + }, + offIcon: { + type: String, + default: '$checkboxOff' + }, + onIcon: { + type: String, + default: '$checkboxOn' + }, + openOnClick: Boolean, + rounded: Boolean, + selectable: Boolean, + selectedColor: { + type: String, + default: 'accent' + }, + shaped: Boolean, + transition: Boolean, + selectionType: { + type: String, + default: 'leaf', + validator: function validator(v) { + return ['leaf', 'independent'].includes(v); + } + } +}; +/* @vue/component */ + +var VTreeviewNode = baseMixins.extend().extend({ + name: 'v-treeview-node', + inject: { + treeview: { + default: null + } + }, + props: __assign({ + level: Number, + item: { + type: Object, + default: function _default() { + return null; + } + }, + parentIsDisabled: Boolean + }, VTreeviewNodeProps), + data: function data() { + return { + hasLoaded: false, + isActive: false, + isIndeterminate: false, + isLoading: false, + isOpen: false, + isSelected: false + }; + }, + computed: { + disabled: function disabled() { + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["getObjectValueByPath"])(this.item, this.itemDisabled) || this.parentIsDisabled && this.selectionType === 'leaf'; + }, + key: function key() { + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["getObjectValueByPath"])(this.item, this.itemKey); + }, + children: function children() { + var _this = this; + + var children = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["getObjectValueByPath"])(this.item, this.itemChildren); + return children && children.filter(function (child) { + return !_this.treeview.isExcluded(Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["getObjectValueByPath"])(child, _this.itemKey)); + }); + }, + text: function text() { + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["getObjectValueByPath"])(this.item, this.itemText); + }, + scopedProps: function scopedProps() { + return { + item: this.item, + leaf: !this.children, + selected: this.isSelected, + indeterminate: this.isIndeterminate, + active: this.isActive, + open: this.isOpen + }; + }, + computedIcon: function computedIcon() { + if (this.isIndeterminate) return this.indeterminateIcon;else if (this.isSelected) return this.onIcon;else return this.offIcon; + }, + hasChildren: function hasChildren() { + return !!this.children && (!!this.children.length || !!this.loadChildren); + } + }, + created: function created() { + this.treeview.register(this); + }, + beforeDestroy: function beforeDestroy() { + this.treeview.unregister(this); + }, + methods: { + checkChildren: function checkChildren() { + var _this = this; + + return new Promise(function (resolve) { + // TODO: Potential issue with always trying + // to load children if response is empty? + if (!_this.children || _this.children.length || !_this.loadChildren || _this.hasLoaded) return resolve(); + _this.isLoading = true; + resolve(_this.loadChildren(_this.item)); + }).then(function () { + _this.isLoading = false; + _this.hasLoaded = true; + }); + }, + open: function open() { + this.isOpen = !this.isOpen; + this.treeview.updateOpen(this.key, this.isOpen); + this.treeview.emitOpen(); + }, + genLabel: function genLabel() { + var children = []; + if (this.$scopedSlots.label) children.push(this.$scopedSlots.label(this.scopedProps));else children.push(this.text); + return this.$createElement('div', { + slot: 'label', + staticClass: 'v-treeview-node__label' + }, children); + }, + genPrependSlot: function genPrependSlot() { + if (!this.$scopedSlots.prepend) return null; + return this.$createElement('div', { + staticClass: 'v-treeview-node__prepend' + }, this.$scopedSlots.prepend(this.scopedProps)); + }, + genAppendSlot: function genAppendSlot() { + if (!this.$scopedSlots.append) return null; + return this.$createElement('div', { + staticClass: 'v-treeview-node__append' + }, this.$scopedSlots.append(this.scopedProps)); + }, + genContent: function genContent() { + var children = [this.genPrependSlot(), this.genLabel(), this.genAppendSlot()]; + return this.$createElement('div', { + staticClass: 'v-treeview-node__content' + }, children); + }, + genToggle: function genToggle() { + var _this = this; + + return this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_1__["VIcon"], { + staticClass: 'v-treeview-node__toggle', + class: { + 'v-treeview-node__toggle--open': this.isOpen, + 'v-treeview-node__toggle--loading': this.isLoading + }, + slot: 'prepend', + on: { + click: function click(e) { + e.stopPropagation(); + if (_this.isLoading) return; + + _this.checkChildren().then(function () { + return _this.open(); + }); + } + } + }, [this.isLoading ? this.loadingIcon : this.expandIcon]); + }, + genCheckbox: function genCheckbox() { + var _this = this; + + return this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_1__["VIcon"], { + staticClass: 'v-treeview-node__checkbox', + props: { + color: this.isSelected || this.isIndeterminate ? this.selectedColor : undefined, + disabled: this.disabled + }, + on: { + click: function click(e) { + e.stopPropagation(); + if (_this.isLoading) return; + + _this.checkChildren().then(function () { + // We nextTick here so that items watch in VTreeview has a chance to run first + _this.$nextTick(function () { + _this.isSelected = !_this.isSelected; + _this.isIndeterminate = false; + + _this.treeview.updateSelected(_this.key, _this.isSelected); + + _this.treeview.emitSelected(); + }); + }); + } + } + }, [this.computedIcon]); + }, + genLevel: function genLevel(level) { + var _this = this; + + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["createRange"])(level).map(function () { + return _this.$createElement('div', { + staticClass: 'v-treeview-node__level' + }); + }); + }, + genNode: function genNode() { + var _a; + + var _this = this; + + var children = [this.genContent()]; + if (this.selectable) children.unshift(this.genCheckbox()); + + if (this.hasChildren) { + children.unshift(this.genToggle()); + } else { + children.unshift.apply(children, __spread(this.genLevel(1))); + } + + children.unshift.apply(children, __spread(this.genLevel(this.level))); + return this.$createElement('div', this.setTextColor(this.isActive && this.color, { + staticClass: 'v-treeview-node__root', + class: (_a = {}, _a[this.activeClass] = this.isActive, _a), + on: { + click: function click() { + if (_this.openOnClick && _this.hasChildren) { + _this.checkChildren().then(_this.open); + } else if (_this.activatable && !_this.disabled) { + _this.isActive = !_this.isActive; + + _this.treeview.updateActive(_this.key, _this.isActive); + + _this.treeview.emitActive(); + } + } + } + }), children); + }, + genChild: function genChild(item, parentIsDisabled) { + return this.$createElement(VTreeviewNode, { + key: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["getObjectValueByPath"])(item, this.itemKey), + props: { + activatable: this.activatable, + activeClass: this.activeClass, + item: item, + selectable: this.selectable, + selectedColor: this.selectedColor, + color: this.color, + expandIcon: this.expandIcon, + indeterminateIcon: this.indeterminateIcon, + offIcon: this.offIcon, + onIcon: this.onIcon, + loadingIcon: this.loadingIcon, + itemKey: this.itemKey, + itemText: this.itemText, + itemDisabled: this.itemDisabled, + itemChildren: this.itemChildren, + loadChildren: this.loadChildren, + transition: this.transition, + openOnClick: this.openOnClick, + rounded: this.rounded, + shaped: this.shaped, + level: this.level + 1, + selectionType: this.selectionType, + parentIsDisabled: parentIsDisabled + }, + scopedSlots: this.$scopedSlots + }); + }, + genChildrenWrapper: function genChildrenWrapper() { + var _this = this; + + if (!this.isOpen || !this.children) return null; + var children = [this.children.map(function (c) { + return _this.genChild(c, _this.disabled); + })]; + return this.$createElement('div', { + staticClass: 'v-treeview-node__children' + }, children); + }, + genTransition: function genTransition() { + return this.$createElement(_transitions__WEBPACK_IMPORTED_MODULE_0__["VExpandTransition"], [this.genChildrenWrapper()]); + } + }, + render: function render(h) { + var children = [this.genNode()]; + if (this.transition) children.push(this.genTransition());else children.push(this.genChildrenWrapper()); + return h('div', { + staticClass: 'v-treeview-node', + class: { + 'v-treeview-node--leaf': !this.hasChildren, + 'v-treeview-node--click': this.openOnClick, + 'v-treeview-node--disabled': this.disabled, + 'v-treeview-node--rounded': this.rounded, + 'v-treeview-node--shaped': this.shaped, + 'v-treeview-node--selected': this.isSelected + }, + attrs: { + 'aria-expanded': String(this.isOpen) + } + }, children); + } +}); +/* harmony default export */ __webpack_exports__["default"] = (VTreeviewNode); + +/***/ }), + +/***/ "./src/components/VTreeview/index.ts": +/*!*******************************************!*\ + !*** ./src/components/VTreeview/index.ts ***! + \*******************************************/ +/*! exports provided: VTreeview, VTreeviewNode, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VTreeview__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VTreeview */ "./src/components/VTreeview/VTreeview.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTreeview", function() { return _VTreeview__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + +/* harmony import */ var _VTreeviewNode__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VTreeviewNode */ "./src/components/VTreeview/VTreeviewNode.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTreeviewNode", function() { return _VTreeviewNode__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + $_vuetify_subcomponents: { + VTreeview: _VTreeview__WEBPACK_IMPORTED_MODULE_0__["default"], + VTreeviewNode: _VTreeviewNode__WEBPACK_IMPORTED_MODULE_1__["default"] + } +}); + +/***/ }), + +/***/ "./src/components/VTreeview/util/filterTreeItems.ts": +/*!**********************************************************!*\ + !*** ./src/components/VTreeview/util/filterTreeItems.ts ***! + \**********************************************************/ +/*! exports provided: filterTreeItem, filterTreeItems */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "filterTreeItem", function() { return filterTreeItem; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "filterTreeItems", function() { return filterTreeItems; }); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/helpers */ "./src/util/helpers.ts"); + +function filterTreeItem(item, search, textKey) { + var text = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["getObjectValueByPath"])(item, textKey); + return text.toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) > -1; +} +function filterTreeItems(filter, item, search, idKey, textKey, childrenKey, excluded) { + if (filter(item, search, textKey)) { + return true; + } + + var children = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["getObjectValueByPath"])(item, childrenKey); + + if (children) { + var match = false; + + for (var i = 0; i < children.length; i++) { + if (filterTreeItems(filter, children[i], search, idKey, textKey, childrenKey, excluded)) { + match = true; + } + } + + if (match) return true; + } + + excluded.add(Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["getObjectValueByPath"])(item, idKey)); + return false; +} + +/***/ }), + +/***/ "./src/components/VVirtualScroll/VVirtualScroll.sass": +/*!***********************************************************!*\ + !*** ./src/components/VVirtualScroll/VVirtualScroll.sass ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VVirtualScroll/VVirtualScroll.ts": +/*!*********************************************************!*\ + !*** ./src/components/VVirtualScroll/VVirtualScroll.ts ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VVirtualScroll_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VVirtualScroll.sass */ "./src/components/VVirtualScroll/VVirtualScroll.sass"); +/* harmony import */ var _VVirtualScroll_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VVirtualScroll_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _mixins_measurable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/measurable */ "./src/mixins/measurable/index.ts"); +/* harmony import */ var _directives_scroll__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../directives/scroll */ "./src/directives/scroll/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +// Styles + // Mixins + + // Directives + + // Utilities + + +/* harmony default export */ __webpack_exports__["default"] = (_mixins_measurable__WEBPACK_IMPORTED_MODULE_1__["default"].extend({ + name: 'v-virtual-scroll', + directives: { + Scroll: _directives_scroll__WEBPACK_IMPORTED_MODULE_2__["default"] + }, + props: { + bench: { + type: [Number, String], + default: 0 + }, + itemHeight: { + type: [Number, String], + required: true + }, + items: { + type: Array, + default: function _default() { + return []; + } + } + }, + data: function data() { + return { + first: 0, + last: 0, + scrollTop: 0 + }; + }, + computed: { + __bench: function __bench() { + return parseInt(this.bench, 10); + }, + __itemHeight: function __itemHeight() { + return parseInt(this.itemHeight, 10); + }, + firstToRender: function firstToRender() { + return Math.max(0, this.first - this.__bench); + }, + lastToRender: function lastToRender() { + return Math.min(this.items.length, this.last + this.__bench); + } + }, + watch: { + height: 'onScroll', + itemHeight: 'onScroll' + }, + mounted: function mounted() { + this.last = this.getLast(0); + }, + methods: { + getChildren: function getChildren() { + return this.items.slice(this.firstToRender, this.lastToRender).map(this.genChild); + }, + genChild: function genChild(item, index) { + index += this.firstToRender; + var top = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["convertToUnit"])(index * this.__itemHeight); + return this.$createElement('div', { + staticClass: 'v-virtual-scroll__item', + style: { + top: top + }, + key: index + }, Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["getSlot"])(this, 'default', { + index: index, + item: item + })); + }, + getFirst: function getFirst() { + return Math.floor(this.scrollTop / this.__itemHeight); + }, + getLast: function getLast(first) { + var height = parseInt(this.height || 0, 10) || this.$el.clientHeight; + return first + Math.ceil(height / this.__itemHeight); + }, + onScroll: function onScroll() { + this.scrollTop = this.$el.scrollTop; + this.first = this.getFirst(); + this.last = this.getLast(this.first); + } + }, + render: function render(h) { + var content = h('div', { + staticClass: 'v-virtual-scroll__container', + style: { + height: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["convertToUnit"])(this.items.length * this.__itemHeight) + } + }, this.getChildren()); + return h('div', { + staticClass: 'v-virtual-scroll', + style: this.measurableStyles, + directives: [{ + name: 'scroll', + modifiers: { + self: true + }, + value: this.onScroll + }], + on: this.$listeners + }, [content]); + } +})); + +/***/ }), + +/***/ "./src/components/VVirtualScroll/index.ts": +/*!************************************************!*\ + !*** ./src/components/VVirtualScroll/index.ts ***! + \************************************************/ +/*! exports provided: VVirtualScroll, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VVirtualScroll__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VVirtualScroll */ "./src/components/VVirtualScroll/VVirtualScroll.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VVirtualScroll", function() { return _VVirtualScroll__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + +/* harmony default export */ __webpack_exports__["default"] = (_VVirtualScroll__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/VWindow/VWindow.sass": +/*!*********************************************!*\ + !*** ./src/components/VWindow/VWindow.sass ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/components/VWindow/VWindow.ts": +/*!*******************************************!*\ + !*** ./src/components/VWindow/VWindow.ts ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VWindow_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VWindow.sass */ "./src/components/VWindow/VWindow.sass"); +/* harmony import */ var _VWindow_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VWindow_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _directives_touch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../directives/touch */ "./src/directives/touch/index.ts"); +/* harmony import */ var _VBtn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../VBtn */ "./src/components/VBtn/index.ts"); +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../VIcon */ "./src/components/VIcon/index.ts"); +/* harmony import */ var _VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../VItemGroup/VItemGroup */ "./src/components/VItemGroup/VItemGroup.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Styles + + + // Directives + + // Components + + + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (_VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_4__["BaseItemGroup"].extend({ + name: 'v-window', + directives: { + Touch: _directives_touch__WEBPACK_IMPORTED_MODULE_1__["default"] + }, + provide: function provide() { + return { + windowGroup: this + }; + }, + props: { + activeClass: { + type: String, + default: 'v-window-item--active' + }, + continuous: Boolean, + mandatory: { + type: Boolean, + default: true + }, + nextIcon: { + type: [Boolean, String], + default: '$next' + }, + prevIcon: { + type: [Boolean, String], + default: '$prev' + }, + reverse: Boolean, + showArrows: Boolean, + showArrowsOnHover: Boolean, + touch: Object, + touchless: Boolean, + value: { + required: false + }, + vertical: Boolean + }, + data: function data() { + return { + internalHeight: undefined, + transitionHeight: undefined, + transitionCount: 0, + isBooted: false, + isReverse: false + }; + }, + computed: { + isActive: function isActive() { + return this.transitionCount > 0; + }, + classes: function classes() { + return __assign(__assign({}, _VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_4__["BaseItemGroup"].options.computed.classes.call(this)), { + 'v-window--show-arrows-on-hover': this.showArrowsOnHover + }); + }, + computedTransition: function computedTransition() { + if (!this.isBooted) return ''; + var axis = this.vertical ? 'y' : 'x'; + var reverse = this.internalReverse ? !this.isReverse : this.isReverse; + var direction = reverse ? '-reverse' : ''; + return "v-window-" + axis + direction + "-transition"; + }, + hasActiveItems: function hasActiveItems() { + return Boolean(this.items.find(function (item) { + return !item.disabled; + })); + }, + hasNext: function hasNext() { + return this.continuous || this.internalIndex < this.items.length - 1; + }, + hasPrev: function hasPrev() { + return this.continuous || this.internalIndex > 0; + }, + internalIndex: function internalIndex() { + var _this = this; + + return this.items.findIndex(function (item, i) { + return _this.internalValue === _this.getValue(item, i); + }); + }, + internalReverse: function internalReverse() { + return this.$vuetify.rtl ? !this.reverse : this.reverse; + } + }, + watch: { + internalIndex: function internalIndex(val, oldVal) { + this.isReverse = this.updateReverse(val, oldVal); + } + }, + mounted: function mounted() { + var _this = this; + + window.requestAnimationFrame(function () { + return _this.isBooted = true; + }); + }, + methods: { + genContainer: function genContainer() { + var children = [this.$slots.default]; + + if (this.showArrows) { + children.push(this.genControlIcons()); + } + + return this.$createElement('div', { + staticClass: 'v-window__container', + class: { + 'v-window__container--is-active': this.isActive + }, + style: { + height: this.internalHeight || this.transitionHeight + } + }, children); + }, + genIcon: function genIcon(direction, icon, click) { + return this.$createElement('div', { + staticClass: "v-window__" + direction + }, [this.$createElement(_VBtn__WEBPACK_IMPORTED_MODULE_2__["default"], { + props: { + icon: true + }, + attrs: { + 'aria-label': this.$vuetify.lang.t("$vuetify.carousel." + direction) + }, + on: { + click: click + } + }, [this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_3__["default"], { + props: { + large: true + } + }, icon)])]); + }, + genControlIcons: function genControlIcons() { + var icons = []; + var prevIcon = this.$vuetify.rtl ? this.nextIcon : this.prevIcon; + /* istanbul ignore else */ + + if (this.hasPrev && prevIcon && typeof prevIcon === 'string') { + var icon = this.genIcon('prev', prevIcon, this.prev); + icon && icons.push(icon); + } + + var nextIcon = this.$vuetify.rtl ? this.prevIcon : this.nextIcon; + /* istanbul ignore else */ + + if (this.hasNext && nextIcon && typeof nextIcon === 'string') { + var icon = this.genIcon('next', nextIcon, this.next); + icon && icons.push(icon); + } + + return icons; + }, + getNextIndex: function getNextIndex(index) { + var nextIndex = (index + 1) % this.items.length; + var item = this.items[nextIndex]; + if (item.disabled) return this.getNextIndex(nextIndex); + return nextIndex; + }, + getPrevIndex: function getPrevIndex(index) { + var prevIndex = (index + this.items.length - 1) % this.items.length; + var item = this.items[prevIndex]; + if (item.disabled) return this.getPrevIndex(prevIndex); + return prevIndex; + }, + next: function next() { + /* istanbul ignore if */ + if (!this.hasActiveItems || !this.hasNext) return; + var nextIndex = this.getNextIndex(this.internalIndex); + var item = this.items[nextIndex]; + this.internalValue = this.getValue(item, nextIndex); + }, + prev: function prev() { + /* istanbul ignore if */ + if (!this.hasActiveItems || !this.hasPrev) return; + var lastIndex = this.getPrevIndex(this.internalIndex); + var item = this.items[lastIndex]; + this.internalValue = this.getValue(item, lastIndex); + }, + updateReverse: function updateReverse(val, oldVal) { + var lastIndex = this.items.length - 1; + + if (val === lastIndex && oldVal === 0) { + return true; + } else if (val === 0 && oldVal === lastIndex) { + return false; + } else { + return val < oldVal; + } + } + }, + render: function render(h) { + var _this = this; + + var data = { + staticClass: 'v-window', + class: this.classes, + directives: [] + }; + + if (!this.touchless) { + var value = this.touch || { + left: function left() { + _this.$vuetify.rtl ? _this.prev() : _this.next(); + }, + right: function right() { + _this.$vuetify.rtl ? _this.next() : _this.prev(); + }, + end: function end(e) { + e.stopPropagation(); + }, + start: function start(e) { + e.stopPropagation(); + } + }; + data.directives.push({ + name: 'touch', + value: value + }); + } + + return h('div', data, [this.genContainer()]); + } +})); + +/***/ }), + +/***/ "./src/components/VWindow/VWindowItem.ts": +/*!***********************************************!*\ + !*** ./src/components/VWindow/VWindowItem.ts ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _mixins_bootable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../mixins/bootable */ "./src/mixins/bootable/index.ts"); +/* harmony import */ var _mixins_groupable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mixins/groupable */ "./src/mixins/groupable/index.ts"); +/* harmony import */ var _directives_touch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../directives/touch */ "./src/directives/touch/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +// Mixins + + // Directives + + // Utilities + + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_4__["default"])(_mixins_bootable__WEBPACK_IMPORTED_MODULE_0__["default"], Object(_mixins_groupable__WEBPACK_IMPORTED_MODULE_1__["factory"])('windowGroup', 'v-window-item', 'v-window')); +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend().extend().extend({ + name: 'v-window-item', + directives: { + Touch: _directives_touch__WEBPACK_IMPORTED_MODULE_2__["default"] + }, + props: { + disabled: Boolean, + reverseTransition: { + type: [Boolean, String], + default: undefined + }, + transition: { + type: [Boolean, String], + default: undefined + }, + value: { + required: false + } + }, + data: function data() { + return { + isActive: false, + inTransition: false + }; + }, + computed: { + classes: function classes() { + return this.groupClasses; + }, + computedTransition: function computedTransition() { + if (!this.windowGroup.internalReverse) { + return typeof this.transition !== 'undefined' ? this.transition || '' : this.windowGroup.computedTransition; + } + + return typeof this.reverseTransition !== 'undefined' ? this.reverseTransition || '' : this.windowGroup.computedTransition; + } + }, + methods: { + genDefaultSlot: function genDefaultSlot() { + return this.$slots.default; + }, + genWindowItem: function genWindowItem() { + return this.$createElement('div', { + staticClass: 'v-window-item', + class: this.classes, + directives: [{ + name: 'show', + value: this.isActive + }], + on: this.$listeners + }, this.genDefaultSlot()); + }, + onAfterTransition: function onAfterTransition() { + if (!this.inTransition) { + return; + } // Finalize transition state. + + + this.inTransition = false; + + if (this.windowGroup.transitionCount > 0) { + this.windowGroup.transitionCount--; // Remove container height if we are out of transition. + + if (this.windowGroup.transitionCount === 0) { + this.windowGroup.transitionHeight = undefined; + } + } + }, + onBeforeTransition: function onBeforeTransition() { + if (this.inTransition) { + return; + } // Initialize transition state here. + + + this.inTransition = true; + + if (this.windowGroup.transitionCount === 0) { + // Set initial height for height transition. + this.windowGroup.transitionHeight = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["convertToUnit"])(this.windowGroup.$el.clientHeight); + } + + this.windowGroup.transitionCount++; + }, + onTransitionCancelled: function onTransitionCancelled() { + this.onAfterTransition(); // This should have the same path as normal transition end. + }, + onEnter: function onEnter(el) { + var _this = this; + + if (!this.inTransition) { + return; + } + + this.$nextTick(function () { + // Do not set height if no transition or cancelled. + if (!_this.computedTransition || !_this.inTransition) { + return; + } // Set transition target height. + + + _this.windowGroup.transitionHeight = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["convertToUnit"])(el.clientHeight); + }); + } + }, + render: function render(h) { + var _this = this; + + return h('transition', { + props: { + name: this.computedTransition + }, + on: { + // Handlers for enter windows. + beforeEnter: this.onBeforeTransition, + afterEnter: this.onAfterTransition, + enterCancelled: this.onTransitionCancelled, + // Handlers for leave windows. + beforeLeave: this.onBeforeTransition, + afterLeave: this.onAfterTransition, + leaveCancelled: this.onTransitionCancelled, + // Enter handler for height transition. + enter: this.onEnter + } + }, this.showLazyContent(function () { + return [_this.genWindowItem()]; + })); + } +})); + +/***/ }), + +/***/ "./src/components/VWindow/index.ts": +/*!*****************************************!*\ + !*** ./src/components/VWindow/index.ts ***! + \*****************************************/ +/*! exports provided: VWindow, VWindowItem, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VWindow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VWindow */ "./src/components/VWindow/VWindow.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VWindow", function() { return _VWindow__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + +/* harmony import */ var _VWindowItem__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VWindowItem */ "./src/components/VWindow/VWindowItem.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VWindowItem", function() { return _VWindowItem__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + $_vuetify_subcomponents: { + VWindow: _VWindow__WEBPACK_IMPORTED_MODULE_0__["default"], + VWindowItem: _VWindowItem__WEBPACK_IMPORTED_MODULE_1__["default"] + } +}); + +/***/ }), + +/***/ "./src/components/index.ts": +/*!*********************************!*\ + !*** ./src/components/index.ts ***! + \*********************************/ +/*! exports provided: VApp, VAppBar, VAppBarNavIcon, VAlert, VAutocomplete, VAvatar, VBadge, VBanner, VBottomNavigation, VBottomSheet, VBreadcrumbs, VBreadcrumbsItem, VBreadcrumbsDivider, VBtn, VBtnToggle, VCalendar, VCalendarCategory, VCalendarDaily, VCalendarWeekly, VCalendarMonthly, VCard, VCardActions, VCardSubtitle, VCardText, VCardTitle, VCarousel, VCarouselItem, VCheckbox, VSimpleCheckbox, VChip, VChipGroup, VColorPicker, VColorPickerSwatches, VColorPickerCanvas, VContent, VCombobox, VCounter, VData, VDataIterator, VDataFooter, VDataTable, VEditDialog, VTableOverflow, VDataTableHeader, VSimpleTable, VVirtualTable, VDatePicker, VDatePickerTitle, VDatePickerHeader, VDatePickerDateTable, VDatePickerMonthTable, VDatePickerYears, VDialog, VDivider, VExpansionPanels, VExpansionPanel, VExpansionPanelHeader, VExpansionPanelContent, VFileInput, VFooter, VForm, VContainer, VCol, VRow, VSpacer, VLayout, VFlex, VHover, VIcon, VImg, VInput, VItem, VItemGroup, VLabel, VLazy, VListItemActionText, VListItemContent, VListItemTitle, VListItemSubtitle, VList, VListGroup, VListItem, VListItemAction, VListItemAvatar, VListItemIcon, VListItemGroup, VMain, VMenu, VMessages, VNavigationDrawer, VOverflowBtn, VOverlay, VPagination, VSheet, VParallax, VPicker, VProgressCircular, VProgressLinear, VRadioGroup, VRadio, VRangeSlider, VRating, VResponsive, VSelect, VSkeletonLoader, VSlider, VSlideGroup, VSlideItem, VSnackbar, VSparkline, VSpeedDial, VStepper, VStepperContent, VStepperStep, VStepperHeader, VStepperItems, VSubheader, VSwitch, VSystemBar, VTabs, VTab, VTabItem, VTabsItems, VTabsSlider, VTextarea, VTextField, VThemeProvider, VTimeline, VTimelineItem, VTimePicker, VTimePickerClock, VTimePickerTitle, VToolbar, VToolbarItems, VToolbarTitle, VTooltip, VTreeview, VTreeviewNode, VVirtualScroll, VWindow, VWindowItem, VCarouselTransition, VCarouselReverseTransition, VTabTransition, VTabReverseTransition, VMenuTransition, VFabTransition, VDialogTransition, VDialogBottomTransition, VFadeTransition, VScaleTransition, VScrollXTransition, VScrollXReverseTransition, VScrollYTransition, VScrollYReverseTransition, VSlideXTransition, VSlideXReverseTransition, VSlideYTransition, VSlideYReverseTransition, VExpandTransition, VExpandXTransition */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VApp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VApp */ "./src/components/VApp/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VApp", function() { return _VApp__WEBPACK_IMPORTED_MODULE_0__["VApp"]; }); + +/* harmony import */ var _VAppBar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VAppBar */ "./src/components/VAppBar/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VAppBar", function() { return _VAppBar__WEBPACK_IMPORTED_MODULE_1__["VAppBar"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VAppBarNavIcon", function() { return _VAppBar__WEBPACK_IMPORTED_MODULE_1__["VAppBarNavIcon"]; }); + +/* harmony import */ var _VAlert__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./VAlert */ "./src/components/VAlert/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VAlert", function() { return _VAlert__WEBPACK_IMPORTED_MODULE_2__["VAlert"]; }); + +/* harmony import */ var _VAutocomplete__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./VAutocomplete */ "./src/components/VAutocomplete/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VAutocomplete", function() { return _VAutocomplete__WEBPACK_IMPORTED_MODULE_3__["VAutocomplete"]; }); + +/* harmony import */ var _VAvatar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./VAvatar */ "./src/components/VAvatar/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VAvatar", function() { return _VAvatar__WEBPACK_IMPORTED_MODULE_4__["VAvatar"]; }); + +/* harmony import */ var _VBadge__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./VBadge */ "./src/components/VBadge/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VBadge", function() { return _VBadge__WEBPACK_IMPORTED_MODULE_5__["VBadge"]; }); + +/* harmony import */ var _VBanner__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./VBanner */ "./src/components/VBanner/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VBanner", function() { return _VBanner__WEBPACK_IMPORTED_MODULE_6__["VBanner"]; }); + +/* harmony import */ var _VBottomNavigation__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./VBottomNavigation */ "./src/components/VBottomNavigation/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VBottomNavigation", function() { return _VBottomNavigation__WEBPACK_IMPORTED_MODULE_7__["VBottomNavigation"]; }); + +/* harmony import */ var _VBottomSheet__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./VBottomSheet */ "./src/components/VBottomSheet/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VBottomSheet", function() { return _VBottomSheet__WEBPACK_IMPORTED_MODULE_8__["VBottomSheet"]; }); + +/* harmony import */ var _VBreadcrumbs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./VBreadcrumbs */ "./src/components/VBreadcrumbs/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VBreadcrumbs", function() { return _VBreadcrumbs__WEBPACK_IMPORTED_MODULE_9__["VBreadcrumbs"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VBreadcrumbsItem", function() { return _VBreadcrumbs__WEBPACK_IMPORTED_MODULE_9__["VBreadcrumbsItem"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VBreadcrumbsDivider", function() { return _VBreadcrumbs__WEBPACK_IMPORTED_MODULE_9__["VBreadcrumbsDivider"]; }); + +/* harmony import */ var _VBtn__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./VBtn */ "./src/components/VBtn/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VBtn", function() { return _VBtn__WEBPACK_IMPORTED_MODULE_10__["VBtn"]; }); + +/* harmony import */ var _VBtnToggle__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./VBtnToggle */ "./src/components/VBtnToggle/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VBtnToggle", function() { return _VBtnToggle__WEBPACK_IMPORTED_MODULE_11__["VBtnToggle"]; }); + +/* harmony import */ var _VCalendar__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./VCalendar */ "./src/components/VCalendar/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCalendar", function() { return _VCalendar__WEBPACK_IMPORTED_MODULE_12__["VCalendar"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCalendarCategory", function() { return _VCalendar__WEBPACK_IMPORTED_MODULE_12__["VCalendarCategory"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCalendarDaily", function() { return _VCalendar__WEBPACK_IMPORTED_MODULE_12__["VCalendarDaily"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCalendarWeekly", function() { return _VCalendar__WEBPACK_IMPORTED_MODULE_12__["VCalendarWeekly"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCalendarMonthly", function() { return _VCalendar__WEBPACK_IMPORTED_MODULE_12__["VCalendarMonthly"]; }); + +/* harmony import */ var _VCard__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./VCard */ "./src/components/VCard/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCard", function() { return _VCard__WEBPACK_IMPORTED_MODULE_13__["VCard"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCardActions", function() { return _VCard__WEBPACK_IMPORTED_MODULE_13__["VCardActions"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCardSubtitle", function() { return _VCard__WEBPACK_IMPORTED_MODULE_13__["VCardSubtitle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCardText", function() { return _VCard__WEBPACK_IMPORTED_MODULE_13__["VCardText"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCardTitle", function() { return _VCard__WEBPACK_IMPORTED_MODULE_13__["VCardTitle"]; }); + +/* harmony import */ var _VCarousel__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./VCarousel */ "./src/components/VCarousel/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCarousel", function() { return _VCarousel__WEBPACK_IMPORTED_MODULE_14__["VCarousel"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCarouselItem", function() { return _VCarousel__WEBPACK_IMPORTED_MODULE_14__["VCarouselItem"]; }); + +/* harmony import */ var _VCheckbox__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./VCheckbox */ "./src/components/VCheckbox/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCheckbox", function() { return _VCheckbox__WEBPACK_IMPORTED_MODULE_15__["VCheckbox"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSimpleCheckbox", function() { return _VCheckbox__WEBPACK_IMPORTED_MODULE_15__["VSimpleCheckbox"]; }); + +/* harmony import */ var _VChip__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./VChip */ "./src/components/VChip/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VChip", function() { return _VChip__WEBPACK_IMPORTED_MODULE_16__["VChip"]; }); + +/* harmony import */ var _VChipGroup__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./VChipGroup */ "./src/components/VChipGroup/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VChipGroup", function() { return _VChipGroup__WEBPACK_IMPORTED_MODULE_17__["VChipGroup"]; }); + +/* harmony import */ var _VColorPicker__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./VColorPicker */ "./src/components/VColorPicker/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VColorPicker", function() { return _VColorPicker__WEBPACK_IMPORTED_MODULE_18__["VColorPicker"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VColorPickerSwatches", function() { return _VColorPicker__WEBPACK_IMPORTED_MODULE_18__["VColorPickerSwatches"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VColorPickerCanvas", function() { return _VColorPicker__WEBPACK_IMPORTED_MODULE_18__["VColorPickerCanvas"]; }); + +/* harmony import */ var _VContent__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./VContent */ "./src/components/VContent/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VContent", function() { return _VContent__WEBPACK_IMPORTED_MODULE_19__["VContent"]; }); + +/* harmony import */ var _VCombobox__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./VCombobox */ "./src/components/VCombobox/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCombobox", function() { return _VCombobox__WEBPACK_IMPORTED_MODULE_20__["VCombobox"]; }); + +/* harmony import */ var _VCounter__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./VCounter */ "./src/components/VCounter/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCounter", function() { return _VCounter__WEBPACK_IMPORTED_MODULE_21__["VCounter"]; }); + +/* harmony import */ var _VData__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./VData */ "./src/components/VData/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VData", function() { return _VData__WEBPACK_IMPORTED_MODULE_22__["VData"]; }); + +/* harmony import */ var _VDataIterator__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./VDataIterator */ "./src/components/VDataIterator/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDataIterator", function() { return _VDataIterator__WEBPACK_IMPORTED_MODULE_23__["VDataIterator"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDataFooter", function() { return _VDataIterator__WEBPACK_IMPORTED_MODULE_23__["VDataFooter"]; }); + +/* harmony import */ var _VDataTable__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./VDataTable */ "./src/components/VDataTable/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDataTable", function() { return _VDataTable__WEBPACK_IMPORTED_MODULE_24__["VDataTable"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VEditDialog", function() { return _VDataTable__WEBPACK_IMPORTED_MODULE_24__["VEditDialog"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTableOverflow", function() { return _VDataTable__WEBPACK_IMPORTED_MODULE_24__["VTableOverflow"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDataTableHeader", function() { return _VDataTable__WEBPACK_IMPORTED_MODULE_24__["VDataTableHeader"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSimpleTable", function() { return _VDataTable__WEBPACK_IMPORTED_MODULE_24__["VSimpleTable"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VVirtualTable", function() { return _VDataTable__WEBPACK_IMPORTED_MODULE_24__["VVirtualTable"]; }); + +/* harmony import */ var _VDatePicker__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./VDatePicker */ "./src/components/VDatePicker/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDatePicker", function() { return _VDatePicker__WEBPACK_IMPORTED_MODULE_25__["VDatePicker"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDatePickerTitle", function() { return _VDatePicker__WEBPACK_IMPORTED_MODULE_25__["VDatePickerTitle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDatePickerHeader", function() { return _VDatePicker__WEBPACK_IMPORTED_MODULE_25__["VDatePickerHeader"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDatePickerDateTable", function() { return _VDatePicker__WEBPACK_IMPORTED_MODULE_25__["VDatePickerDateTable"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDatePickerMonthTable", function() { return _VDatePicker__WEBPACK_IMPORTED_MODULE_25__["VDatePickerMonthTable"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDatePickerYears", function() { return _VDatePicker__WEBPACK_IMPORTED_MODULE_25__["VDatePickerYears"]; }); + +/* harmony import */ var _VDialog__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./VDialog */ "./src/components/VDialog/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDialog", function() { return _VDialog__WEBPACK_IMPORTED_MODULE_26__["VDialog"]; }); + +/* harmony import */ var _VDivider__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./VDivider */ "./src/components/VDivider/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDivider", function() { return _VDivider__WEBPACK_IMPORTED_MODULE_27__["VDivider"]; }); + +/* harmony import */ var _VExpansionPanel__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./VExpansionPanel */ "./src/components/VExpansionPanel/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VExpansionPanels", function() { return _VExpansionPanel__WEBPACK_IMPORTED_MODULE_28__["VExpansionPanels"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VExpansionPanel", function() { return _VExpansionPanel__WEBPACK_IMPORTED_MODULE_28__["VExpansionPanel"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VExpansionPanelHeader", function() { return _VExpansionPanel__WEBPACK_IMPORTED_MODULE_28__["VExpansionPanelHeader"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VExpansionPanelContent", function() { return _VExpansionPanel__WEBPACK_IMPORTED_MODULE_28__["VExpansionPanelContent"]; }); + +/* harmony import */ var _VFileInput__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./VFileInput */ "./src/components/VFileInput/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VFileInput", function() { return _VFileInput__WEBPACK_IMPORTED_MODULE_29__["VFileInput"]; }); + +/* harmony import */ var _VFooter__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./VFooter */ "./src/components/VFooter/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VFooter", function() { return _VFooter__WEBPACK_IMPORTED_MODULE_30__["VFooter"]; }); + +/* harmony import */ var _VForm__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./VForm */ "./src/components/VForm/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VForm", function() { return _VForm__WEBPACK_IMPORTED_MODULE_31__["VForm"]; }); + +/* harmony import */ var _VGrid__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./VGrid */ "./src/components/VGrid/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VContainer", function() { return _VGrid__WEBPACK_IMPORTED_MODULE_32__["VContainer"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCol", function() { return _VGrid__WEBPACK_IMPORTED_MODULE_32__["VCol"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VRow", function() { return _VGrid__WEBPACK_IMPORTED_MODULE_32__["VRow"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSpacer", function() { return _VGrid__WEBPACK_IMPORTED_MODULE_32__["VSpacer"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VLayout", function() { return _VGrid__WEBPACK_IMPORTED_MODULE_32__["VLayout"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VFlex", function() { return _VGrid__WEBPACK_IMPORTED_MODULE_32__["VFlex"]; }); + +/* harmony import */ var _VHover__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./VHover */ "./src/components/VHover/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VHover", function() { return _VHover__WEBPACK_IMPORTED_MODULE_33__["VHover"]; }); + +/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./VIcon */ "./src/components/VIcon/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VIcon", function() { return _VIcon__WEBPACK_IMPORTED_MODULE_34__["VIcon"]; }); + +/* harmony import */ var _VImg__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./VImg */ "./src/components/VImg/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VImg", function() { return _VImg__WEBPACK_IMPORTED_MODULE_35__["VImg"]; }); + +/* harmony import */ var _VInput__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./VInput */ "./src/components/VInput/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VInput", function() { return _VInput__WEBPACK_IMPORTED_MODULE_36__["VInput"]; }); + +/* harmony import */ var _VItemGroup__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./VItemGroup */ "./src/components/VItemGroup/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VItem", function() { return _VItemGroup__WEBPACK_IMPORTED_MODULE_37__["VItem"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VItemGroup", function() { return _VItemGroup__WEBPACK_IMPORTED_MODULE_37__["VItemGroup"]; }); + +/* harmony import */ var _VLabel__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./VLabel */ "./src/components/VLabel/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VLabel", function() { return _VLabel__WEBPACK_IMPORTED_MODULE_38__["VLabel"]; }); + +/* harmony import */ var _VLazy__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./VLazy */ "./src/components/VLazy/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VLazy", function() { return _VLazy__WEBPACK_IMPORTED_MODULE_39__["VLazy"]; }); + +/* harmony import */ var _VList__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./VList */ "./src/components/VList/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VListItemActionText", function() { return _VList__WEBPACK_IMPORTED_MODULE_40__["VListItemActionText"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VListItemContent", function() { return _VList__WEBPACK_IMPORTED_MODULE_40__["VListItemContent"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VListItemTitle", function() { return _VList__WEBPACK_IMPORTED_MODULE_40__["VListItemTitle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VListItemSubtitle", function() { return _VList__WEBPACK_IMPORTED_MODULE_40__["VListItemSubtitle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VList", function() { return _VList__WEBPACK_IMPORTED_MODULE_40__["VList"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VListGroup", function() { return _VList__WEBPACK_IMPORTED_MODULE_40__["VListGroup"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VListItem", function() { return _VList__WEBPACK_IMPORTED_MODULE_40__["VListItem"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VListItemAction", function() { return _VList__WEBPACK_IMPORTED_MODULE_40__["VListItemAction"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VListItemAvatar", function() { return _VList__WEBPACK_IMPORTED_MODULE_40__["VListItemAvatar"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VListItemIcon", function() { return _VList__WEBPACK_IMPORTED_MODULE_40__["VListItemIcon"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VListItemGroup", function() { return _VList__WEBPACK_IMPORTED_MODULE_40__["VListItemGroup"]; }); + +/* harmony import */ var _VMain__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./VMain */ "./src/components/VMain/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VMain", function() { return _VMain__WEBPACK_IMPORTED_MODULE_41__["VMain"]; }); + +/* harmony import */ var _VMenu__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./VMenu */ "./src/components/VMenu/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VMenu", function() { return _VMenu__WEBPACK_IMPORTED_MODULE_42__["VMenu"]; }); + +/* harmony import */ var _VMessages__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./VMessages */ "./src/components/VMessages/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VMessages", function() { return _VMessages__WEBPACK_IMPORTED_MODULE_43__["VMessages"]; }); + +/* harmony import */ var _VNavigationDrawer__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./VNavigationDrawer */ "./src/components/VNavigationDrawer/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VNavigationDrawer", function() { return _VNavigationDrawer__WEBPACK_IMPORTED_MODULE_44__["VNavigationDrawer"]; }); + +/* harmony import */ var _VOverflowBtn__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./VOverflowBtn */ "./src/components/VOverflowBtn/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VOverflowBtn", function() { return _VOverflowBtn__WEBPACK_IMPORTED_MODULE_45__["VOverflowBtn"]; }); + +/* harmony import */ var _VOverlay__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./VOverlay */ "./src/components/VOverlay/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VOverlay", function() { return _VOverlay__WEBPACK_IMPORTED_MODULE_46__["VOverlay"]; }); + +/* harmony import */ var _VPagination__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./VPagination */ "./src/components/VPagination/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VPagination", function() { return _VPagination__WEBPACK_IMPORTED_MODULE_47__["VPagination"]; }); + +/* harmony import */ var _VSheet__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./VSheet */ "./src/components/VSheet/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSheet", function() { return _VSheet__WEBPACK_IMPORTED_MODULE_48__["VSheet"]; }); + +/* harmony import */ var _VParallax__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./VParallax */ "./src/components/VParallax/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VParallax", function() { return _VParallax__WEBPACK_IMPORTED_MODULE_49__["VParallax"]; }); + +/* harmony import */ var _VPicker__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./VPicker */ "./src/components/VPicker/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VPicker", function() { return _VPicker__WEBPACK_IMPORTED_MODULE_50__["VPicker"]; }); + +/* harmony import */ var _VProgressCircular__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./VProgressCircular */ "./src/components/VProgressCircular/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VProgressCircular", function() { return _VProgressCircular__WEBPACK_IMPORTED_MODULE_51__["VProgressCircular"]; }); + +/* harmony import */ var _VProgressLinear__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./VProgressLinear */ "./src/components/VProgressLinear/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VProgressLinear", function() { return _VProgressLinear__WEBPACK_IMPORTED_MODULE_52__["VProgressLinear"]; }); + +/* harmony import */ var _VRadioGroup__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./VRadioGroup */ "./src/components/VRadioGroup/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VRadioGroup", function() { return _VRadioGroup__WEBPACK_IMPORTED_MODULE_53__["VRadioGroup"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VRadio", function() { return _VRadioGroup__WEBPACK_IMPORTED_MODULE_53__["VRadio"]; }); + +/* harmony import */ var _VRangeSlider__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./VRangeSlider */ "./src/components/VRangeSlider/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VRangeSlider", function() { return _VRangeSlider__WEBPACK_IMPORTED_MODULE_54__["VRangeSlider"]; }); + +/* harmony import */ var _VRating__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./VRating */ "./src/components/VRating/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VRating", function() { return _VRating__WEBPACK_IMPORTED_MODULE_55__["VRating"]; }); + +/* harmony import */ var _VResponsive__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./VResponsive */ "./src/components/VResponsive/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VResponsive", function() { return _VResponsive__WEBPACK_IMPORTED_MODULE_56__["VResponsive"]; }); + +/* harmony import */ var _VSelect__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./VSelect */ "./src/components/VSelect/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSelect", function() { return _VSelect__WEBPACK_IMPORTED_MODULE_57__["VSelect"]; }); + +/* harmony import */ var _VSkeletonLoader__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./VSkeletonLoader */ "./src/components/VSkeletonLoader/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSkeletonLoader", function() { return _VSkeletonLoader__WEBPACK_IMPORTED_MODULE_58__["VSkeletonLoader"]; }); + +/* harmony import */ var _VSlider__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./VSlider */ "./src/components/VSlider/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSlider", function() { return _VSlider__WEBPACK_IMPORTED_MODULE_59__["VSlider"]; }); + +/* harmony import */ var _VSlideGroup__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./VSlideGroup */ "./src/components/VSlideGroup/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSlideGroup", function() { return _VSlideGroup__WEBPACK_IMPORTED_MODULE_60__["VSlideGroup"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSlideItem", function() { return _VSlideGroup__WEBPACK_IMPORTED_MODULE_60__["VSlideItem"]; }); + +/* harmony import */ var _VSnackbar__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./VSnackbar */ "./src/components/VSnackbar/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSnackbar", function() { return _VSnackbar__WEBPACK_IMPORTED_MODULE_61__["VSnackbar"]; }); + +/* harmony import */ var _VSparkline__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./VSparkline */ "./src/components/VSparkline/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSparkline", function() { return _VSparkline__WEBPACK_IMPORTED_MODULE_62__["VSparkline"]; }); + +/* harmony import */ var _VSpeedDial__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./VSpeedDial */ "./src/components/VSpeedDial/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSpeedDial", function() { return _VSpeedDial__WEBPACK_IMPORTED_MODULE_63__["VSpeedDial"]; }); + +/* harmony import */ var _VStepper__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./VStepper */ "./src/components/VStepper/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VStepper", function() { return _VStepper__WEBPACK_IMPORTED_MODULE_64__["VStepper"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VStepperContent", function() { return _VStepper__WEBPACK_IMPORTED_MODULE_64__["VStepperContent"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VStepperStep", function() { return _VStepper__WEBPACK_IMPORTED_MODULE_64__["VStepperStep"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VStepperHeader", function() { return _VStepper__WEBPACK_IMPORTED_MODULE_64__["VStepperHeader"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VStepperItems", function() { return _VStepper__WEBPACK_IMPORTED_MODULE_64__["VStepperItems"]; }); + +/* harmony import */ var _VSubheader__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./VSubheader */ "./src/components/VSubheader/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSubheader", function() { return _VSubheader__WEBPACK_IMPORTED_MODULE_65__["VSubheader"]; }); + +/* harmony import */ var _VSwitch__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./VSwitch */ "./src/components/VSwitch/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSwitch", function() { return _VSwitch__WEBPACK_IMPORTED_MODULE_66__["VSwitch"]; }); + +/* harmony import */ var _VSystemBar__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./VSystemBar */ "./src/components/VSystemBar/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSystemBar", function() { return _VSystemBar__WEBPACK_IMPORTED_MODULE_67__["VSystemBar"]; }); + +/* harmony import */ var _VTabs__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./VTabs */ "./src/components/VTabs/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTabs", function() { return _VTabs__WEBPACK_IMPORTED_MODULE_68__["VTabs"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTab", function() { return _VTabs__WEBPACK_IMPORTED_MODULE_68__["VTab"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTabItem", function() { return _VTabs__WEBPACK_IMPORTED_MODULE_68__["VTabItem"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTabsItems", function() { return _VTabs__WEBPACK_IMPORTED_MODULE_68__["VTabsItems"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTabsSlider", function() { return _VTabs__WEBPACK_IMPORTED_MODULE_68__["VTabsSlider"]; }); + +/* harmony import */ var _VTextarea__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./VTextarea */ "./src/components/VTextarea/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTextarea", function() { return _VTextarea__WEBPACK_IMPORTED_MODULE_69__["VTextarea"]; }); + +/* harmony import */ var _VTextField__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./VTextField */ "./src/components/VTextField/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTextField", function() { return _VTextField__WEBPACK_IMPORTED_MODULE_70__["VTextField"]; }); + +/* harmony import */ var _VThemeProvider__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./VThemeProvider */ "./src/components/VThemeProvider/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VThemeProvider", function() { return _VThemeProvider__WEBPACK_IMPORTED_MODULE_71__["VThemeProvider"]; }); + +/* harmony import */ var _VTimeline__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./VTimeline */ "./src/components/VTimeline/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTimeline", function() { return _VTimeline__WEBPACK_IMPORTED_MODULE_72__["VTimeline"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTimelineItem", function() { return _VTimeline__WEBPACK_IMPORTED_MODULE_72__["VTimelineItem"]; }); + +/* harmony import */ var _VTimePicker__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ./VTimePicker */ "./src/components/VTimePicker/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTimePicker", function() { return _VTimePicker__WEBPACK_IMPORTED_MODULE_73__["VTimePicker"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTimePickerClock", function() { return _VTimePicker__WEBPACK_IMPORTED_MODULE_73__["VTimePickerClock"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTimePickerTitle", function() { return _VTimePicker__WEBPACK_IMPORTED_MODULE_73__["VTimePickerTitle"]; }); + +/* harmony import */ var _VToolbar__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ./VToolbar */ "./src/components/VToolbar/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VToolbar", function() { return _VToolbar__WEBPACK_IMPORTED_MODULE_74__["VToolbar"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VToolbarItems", function() { return _VToolbar__WEBPACK_IMPORTED_MODULE_74__["VToolbarItems"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VToolbarTitle", function() { return _VToolbar__WEBPACK_IMPORTED_MODULE_74__["VToolbarTitle"]; }); + +/* harmony import */ var _VTooltip__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./VTooltip */ "./src/components/VTooltip/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTooltip", function() { return _VTooltip__WEBPACK_IMPORTED_MODULE_75__["VTooltip"]; }); + +/* harmony import */ var _VTreeview__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./VTreeview */ "./src/components/VTreeview/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTreeview", function() { return _VTreeview__WEBPACK_IMPORTED_MODULE_76__["VTreeview"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTreeviewNode", function() { return _VTreeview__WEBPACK_IMPORTED_MODULE_76__["VTreeviewNode"]; }); + +/* harmony import */ var _VVirtualScroll__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ./VVirtualScroll */ "./src/components/VVirtualScroll/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VVirtualScroll", function() { return _VVirtualScroll__WEBPACK_IMPORTED_MODULE_77__["VVirtualScroll"]; }); + +/* harmony import */ var _VWindow__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ./VWindow */ "./src/components/VWindow/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VWindow", function() { return _VWindow__WEBPACK_IMPORTED_MODULE_78__["VWindow"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VWindowItem", function() { return _VWindow__WEBPACK_IMPORTED_MODULE_78__["VWindowItem"]; }); + +/* harmony import */ var _transitions__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ./transitions */ "./src/components/transitions/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCarouselTransition", function() { return _transitions__WEBPACK_IMPORTED_MODULE_79__["VCarouselTransition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VCarouselReverseTransition", function() { return _transitions__WEBPACK_IMPORTED_MODULE_79__["VCarouselReverseTransition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTabTransition", function() { return _transitions__WEBPACK_IMPORTED_MODULE_79__["VTabTransition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VTabReverseTransition", function() { return _transitions__WEBPACK_IMPORTED_MODULE_79__["VTabReverseTransition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VMenuTransition", function() { return _transitions__WEBPACK_IMPORTED_MODULE_79__["VMenuTransition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VFabTransition", function() { return _transitions__WEBPACK_IMPORTED_MODULE_79__["VFabTransition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDialogTransition", function() { return _transitions__WEBPACK_IMPORTED_MODULE_79__["VDialogTransition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VDialogBottomTransition", function() { return _transitions__WEBPACK_IMPORTED_MODULE_79__["VDialogBottomTransition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VFadeTransition", function() { return _transitions__WEBPACK_IMPORTED_MODULE_79__["VFadeTransition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VScaleTransition", function() { return _transitions__WEBPACK_IMPORTED_MODULE_79__["VScaleTransition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VScrollXTransition", function() { return _transitions__WEBPACK_IMPORTED_MODULE_79__["VScrollXTransition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VScrollXReverseTransition", function() { return _transitions__WEBPACK_IMPORTED_MODULE_79__["VScrollXReverseTransition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VScrollYTransition", function() { return _transitions__WEBPACK_IMPORTED_MODULE_79__["VScrollYTransition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VScrollYReverseTransition", function() { return _transitions__WEBPACK_IMPORTED_MODULE_79__["VScrollYReverseTransition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSlideXTransition", function() { return _transitions__WEBPACK_IMPORTED_MODULE_79__["VSlideXTransition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSlideXReverseTransition", function() { return _transitions__WEBPACK_IMPORTED_MODULE_79__["VSlideXReverseTransition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSlideYTransition", function() { return _transitions__WEBPACK_IMPORTED_MODULE_79__["VSlideYTransition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VSlideYReverseTransition", function() { return _transitions__WEBPACK_IMPORTED_MODULE_79__["VSlideYReverseTransition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VExpandTransition", function() { return _transitions__WEBPACK_IMPORTED_MODULE_79__["VExpandTransition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VExpandXTransition", function() { return _transitions__WEBPACK_IMPORTED_MODULE_79__["VExpandXTransition"]; }); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/***/ }), + +/***/ "./src/components/transitions/createTransition.ts": +/*!********************************************************!*\ + !*** ./src/components/transitions/createTransition.ts ***! + \********************************************************/ +/*! exports provided: createSimpleTransition, createJavascriptTransition */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createSimpleTransition", function() { return createSimpleTransition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createJavascriptTransition", function() { return createJavascriptTransition; }); +/* harmony import */ var _util_mergeData__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/mergeData */ "./src/util/mergeData.ts"); +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + +var __spread = undefined && undefined.__spread || function () { + for (var ar = [], i = 0; i < arguments.length; i++) { + ar = ar.concat(__read(arguments[i])); + } + + return ar; +}; + + + +function mergeTransitions(dest) { + var _a; + + if (dest === void 0) { + dest = []; + } + + var transitions = []; + + for (var _i = 1; _i < arguments.length; _i++) { + transitions[_i - 1] = arguments[_i]; + } + /* eslint-disable-next-line no-array-constructor */ + + + return (_a = Array()).concat.apply(_a, __spread([dest], transitions)); +} + +function createSimpleTransition(name, origin, mode) { + if (origin === void 0) { + origin = 'top center 0'; + } + + return { + name: name, + functional: true, + props: { + group: { + type: Boolean, + default: false + }, + hideOnLeave: { + type: Boolean, + default: false + }, + leaveAbsolute: { + type: Boolean, + default: false + }, + mode: { + type: String, + default: mode + }, + origin: { + type: String, + default: origin + } + }, + render: function render(h, context) { + var tag = "transition" + (context.props.group ? '-group' : ''); + var data = { + props: { + name: name, + mode: context.props.mode + }, + on: { + beforeEnter: function beforeEnter(el) { + el.style.transformOrigin = context.props.origin; + el.style.webkitTransformOrigin = context.props.origin; + } + } + }; + + if (context.props.leaveAbsolute) { + data.on.leave = mergeTransitions(data.on.leave, function (el) { + return el.style.position = 'absolute'; + }); + } + + if (context.props.hideOnLeave) { + data.on.leave = mergeTransitions(data.on.leave, function (el) { + return el.style.display = 'none'; + }); + } + + return h(tag, Object(_util_mergeData__WEBPACK_IMPORTED_MODULE_0__["default"])(context.data, data), context.children); + } + }; +} +function createJavascriptTransition(name, functions, mode) { + if (mode === void 0) { + mode = 'in-out'; + } + + return { + name: name, + functional: true, + props: { + mode: { + type: String, + default: mode + } + }, + render: function render(h, context) { + return h('transition', Object(_util_mergeData__WEBPACK_IMPORTED_MODULE_0__["default"])(context.data, { + props: { + name: name + }, + on: functions + }), context.children); + } + }; +} + +/***/ }), + +/***/ "./src/components/transitions/expand-transition.ts": +/*!*********************************************************!*\ + !*** ./src/components/transitions/expand-transition.ts ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); + +/* harmony default export */ __webpack_exports__["default"] = (function (expandedParentClass, x) { + if (expandedParentClass === void 0) { + expandedParentClass = ''; + } + + if (x === void 0) { + x = false; + } + + var sizeProperty = x ? 'width' : 'height'; + var offsetProperty = "offset" + Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["upperFirst"])(sizeProperty); + return { + beforeEnter: function beforeEnter(el) { + var _a; + + el._parent = el.parentNode; + el._initialStyle = (_a = { + transition: el.style.transition, + overflow: el.style.overflow + }, _a[sizeProperty] = el.style[sizeProperty], _a); + }, + enter: function enter(el) { + var initialStyle = el._initialStyle; + el.style.setProperty('transition', 'none', 'important'); // Hide overflow to account for collapsed margins in the calculated height + + el.style.overflow = 'hidden'; + var offset = el[offsetProperty] + "px"; + el.style[sizeProperty] = '0'; + void el.offsetHeight; // force reflow + + el.style.transition = initialStyle.transition; + + if (expandedParentClass && el._parent) { + el._parent.classList.add(expandedParentClass); + } + + requestAnimationFrame(function () { + el.style[sizeProperty] = offset; + }); + }, + afterEnter: resetStyles, + enterCancelled: resetStyles, + leave: function leave(el) { + var _a; + + el._initialStyle = (_a = { + transition: '', + overflow: el.style.overflow + }, _a[sizeProperty] = el.style[sizeProperty], _a); + el.style.overflow = 'hidden'; + el.style[sizeProperty] = el[offsetProperty] + "px"; + void el.offsetHeight; // force reflow + + requestAnimationFrame(function () { + return el.style[sizeProperty] = '0'; + }); + }, + afterLeave: afterLeave, + leaveCancelled: afterLeave + }; + + function afterLeave(el) { + if (expandedParentClass && el._parent) { + el._parent.classList.remove(expandedParentClass); + } + + resetStyles(el); + } + + function resetStyles(el) { + var size = el._initialStyle[sizeProperty]; + el.style.overflow = el._initialStyle.overflow; + if (size != null) el.style[sizeProperty] = size; + delete el._initialStyle; + } +}); + +/***/ }), + +/***/ "./src/components/transitions/index.ts": +/*!*********************************************!*\ + !*** ./src/components/transitions/index.ts ***! + \*********************************************/ +/*! exports provided: VCarouselTransition, VCarouselReverseTransition, VTabTransition, VTabReverseTransition, VMenuTransition, VFabTransition, VDialogTransition, VDialogBottomTransition, VFadeTransition, VScaleTransition, VScrollXTransition, VScrollXReverseTransition, VScrollYTransition, VScrollYReverseTransition, VSlideXTransition, VSlideXReverseTransition, VSlideYTransition, VSlideYReverseTransition, VExpandTransition, VExpandXTransition, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VCarouselTransition", function() { return VCarouselTransition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VCarouselReverseTransition", function() { return VCarouselReverseTransition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VTabTransition", function() { return VTabTransition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VTabReverseTransition", function() { return VTabReverseTransition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VMenuTransition", function() { return VMenuTransition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VFabTransition", function() { return VFabTransition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VDialogTransition", function() { return VDialogTransition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VDialogBottomTransition", function() { return VDialogBottomTransition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VFadeTransition", function() { return VFadeTransition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VScaleTransition", function() { return VScaleTransition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VScrollXTransition", function() { return VScrollXTransition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VScrollXReverseTransition", function() { return VScrollXReverseTransition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VScrollYTransition", function() { return VScrollYTransition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VScrollYReverseTransition", function() { return VScrollYReverseTransition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VSlideXTransition", function() { return VSlideXTransition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VSlideXReverseTransition", function() { return VSlideXReverseTransition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VSlideYTransition", function() { return VSlideYTransition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VSlideYReverseTransition", function() { return VSlideYReverseTransition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VExpandTransition", function() { return VExpandTransition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VExpandXTransition", function() { return VExpandXTransition; }); +/* harmony import */ var _createTransition__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createTransition */ "./src/components/transitions/createTransition.ts"); +/* harmony import */ var _expand_transition__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./expand-transition */ "./src/components/transitions/expand-transition.ts"); + + // Component specific transitions + +var VCarouselTransition = Object(_createTransition__WEBPACK_IMPORTED_MODULE_0__["createSimpleTransition"])('carousel-transition'); +var VCarouselReverseTransition = Object(_createTransition__WEBPACK_IMPORTED_MODULE_0__["createSimpleTransition"])('carousel-reverse-transition'); +var VTabTransition = Object(_createTransition__WEBPACK_IMPORTED_MODULE_0__["createSimpleTransition"])('tab-transition'); +var VTabReverseTransition = Object(_createTransition__WEBPACK_IMPORTED_MODULE_0__["createSimpleTransition"])('tab-reverse-transition'); +var VMenuTransition = Object(_createTransition__WEBPACK_IMPORTED_MODULE_0__["createSimpleTransition"])('menu-transition'); +var VFabTransition = Object(_createTransition__WEBPACK_IMPORTED_MODULE_0__["createSimpleTransition"])('fab-transition', 'center center', 'out-in'); // Generic transitions + +var VDialogTransition = Object(_createTransition__WEBPACK_IMPORTED_MODULE_0__["createSimpleTransition"])('dialog-transition'); +var VDialogBottomTransition = Object(_createTransition__WEBPACK_IMPORTED_MODULE_0__["createSimpleTransition"])('dialog-bottom-transition'); +var VFadeTransition = Object(_createTransition__WEBPACK_IMPORTED_MODULE_0__["createSimpleTransition"])('fade-transition'); +var VScaleTransition = Object(_createTransition__WEBPACK_IMPORTED_MODULE_0__["createSimpleTransition"])('scale-transition'); +var VScrollXTransition = Object(_createTransition__WEBPACK_IMPORTED_MODULE_0__["createSimpleTransition"])('scroll-x-transition'); +var VScrollXReverseTransition = Object(_createTransition__WEBPACK_IMPORTED_MODULE_0__["createSimpleTransition"])('scroll-x-reverse-transition'); +var VScrollYTransition = Object(_createTransition__WEBPACK_IMPORTED_MODULE_0__["createSimpleTransition"])('scroll-y-transition'); +var VScrollYReverseTransition = Object(_createTransition__WEBPACK_IMPORTED_MODULE_0__["createSimpleTransition"])('scroll-y-reverse-transition'); +var VSlideXTransition = Object(_createTransition__WEBPACK_IMPORTED_MODULE_0__["createSimpleTransition"])('slide-x-transition'); +var VSlideXReverseTransition = Object(_createTransition__WEBPACK_IMPORTED_MODULE_0__["createSimpleTransition"])('slide-x-reverse-transition'); +var VSlideYTransition = Object(_createTransition__WEBPACK_IMPORTED_MODULE_0__["createSimpleTransition"])('slide-y-transition'); +var VSlideYReverseTransition = Object(_createTransition__WEBPACK_IMPORTED_MODULE_0__["createSimpleTransition"])('slide-y-reverse-transition'); // Javascript transitions + +var VExpandTransition = Object(_createTransition__WEBPACK_IMPORTED_MODULE_0__["createJavascriptTransition"])('expand-transition', Object(_expand_transition__WEBPACK_IMPORTED_MODULE_1__["default"])()); +var VExpandXTransition = Object(_createTransition__WEBPACK_IMPORTED_MODULE_0__["createJavascriptTransition"])('expand-x-transition', Object(_expand_transition__WEBPACK_IMPORTED_MODULE_1__["default"])('', true)); +/* harmony default export */ __webpack_exports__["default"] = ({ + $_vuetify_subcomponents: { + VCarouselTransition: VCarouselTransition, + VCarouselReverseTransition: VCarouselReverseTransition, + VDialogTransition: VDialogTransition, + VDialogBottomTransition: VDialogBottomTransition, + VFabTransition: VFabTransition, + VFadeTransition: VFadeTransition, + VMenuTransition: VMenuTransition, + VScaleTransition: VScaleTransition, + VScrollXTransition: VScrollXTransition, + VScrollXReverseTransition: VScrollXReverseTransition, + VScrollYTransition: VScrollYTransition, + VScrollYReverseTransition: VScrollYReverseTransition, + VSlideXTransition: VSlideXTransition, + VSlideXReverseTransition: VSlideXReverseTransition, + VSlideYTransition: VSlideYTransition, + VSlideYReverseTransition: VSlideYReverseTransition, + VTabReverseTransition: VTabReverseTransition, + VTabTransition: VTabTransition, + VExpandTransition: VExpandTransition, + VExpandXTransition: VExpandXTransition + } +}); + +/***/ }), + +/***/ "./src/directives/click-outside/index.ts": +/*!***********************************************!*\ + !*** ./src/directives/click-outside/index.ts ***! + \***********************************************/ +/*! exports provided: ClickOutside, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ClickOutside", function() { return ClickOutside; }); +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function defaultConditional() { + return true; +} + +function directive(e, el, binding) { + var handler = typeof binding.value === 'function' ? binding.value : binding.value.handler; + var isActive = _typeof(binding.value) === 'object' && binding.value.closeConditional || defaultConditional; // The include element callbacks below can be expensive + // so we should avoid calling them when we're not active. + // Explicitly check for false to allow fallback compatibility + // with non-toggleable components + + if (!e || isActive(e) === false) return; // Check if additional elements were passed to be included in check + // (click must be outside all included elements, if any) + + var elements = (_typeof(binding.value) === 'object' && binding.value.include || function () { + return []; + })(); // Add the root element for the component this directive was defined on + + + elements.push(el); // Check if it's a click outside our elements, and then if our callback returns true. + // Non-toggleable components should take action in their callback and return falsy. + // Toggleable can return true if it wants to deactivate. + // Note that, because we're in the capture phase, this callback will occur before + // the bubbling click event on any outside elements. + + !elements.some(function (el) { + return el.contains(e.target); + }) && setTimeout(function () { + isActive(e) && handler && handler(e); + }, 0); +} + +var ClickOutside = { + // [data-app] may not be found + // if using bind, inserted makes + // sure that the root element is + // available, iOS does not support + // clicks on body + inserted: function inserted(el, binding) { + var onClick = function onClick(e) { + return directive(e, el, binding); + }; // iOS does not recognize click events on document + // or body, this is the entire purpose of the v-app + // component and [data-app], stop removing this + + + var app = document.querySelector('[data-app]') || document.body; // This is only for unit tests + + app.addEventListener('click', onClick, true); + el._clickOutside = onClick; + }, + unbind: function unbind(el) { + if (!el._clickOutside) return; + var app = document.querySelector('[data-app]') || document.body; // This is only for unit tests + + app && app.removeEventListener('click', el._clickOutside, true); + delete el._clickOutside; + } +}; +/* harmony default export */ __webpack_exports__["default"] = (ClickOutside); + +/***/ }), + +/***/ "./src/directives/index.ts": +/*!*********************************!*\ + !*** ./src/directives/index.ts ***! + \*********************************/ +/*! exports provided: ClickOutside, Intersect, Mutate, Resize, Ripple, Scroll, Touch */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _click_outside__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./click-outside */ "./src/directives/click-outside/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ClickOutside", function() { return _click_outside__WEBPACK_IMPORTED_MODULE_0__["ClickOutside"]; }); + +/* harmony import */ var _intersect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./intersect */ "./src/directives/intersect/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Intersect", function() { return _intersect__WEBPACK_IMPORTED_MODULE_1__["Intersect"]; }); + +/* harmony import */ var _mutate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mutate */ "./src/directives/mutate/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Mutate", function() { return _mutate__WEBPACK_IMPORTED_MODULE_2__["Mutate"]; }); + +/* harmony import */ var _resize__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./resize */ "./src/directives/resize/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Resize", function() { return _resize__WEBPACK_IMPORTED_MODULE_3__["Resize"]; }); + +/* harmony import */ var _ripple__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ripple */ "./src/directives/ripple/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Ripple", function() { return _ripple__WEBPACK_IMPORTED_MODULE_4__["Ripple"]; }); + +/* harmony import */ var _scroll__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./scroll */ "./src/directives/scroll/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Scroll", function() { return _scroll__WEBPACK_IMPORTED_MODULE_5__["Scroll"]; }); + +/* harmony import */ var _touch__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./touch */ "./src/directives/touch/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Touch", function() { return _touch__WEBPACK_IMPORTED_MODULE_6__["Touch"]; }); + + + + + + + + + +/***/ }), + +/***/ "./src/directives/intersect/index.ts": +/*!*******************************************!*\ + !*** ./src/directives/intersect/index.ts ***! + \*******************************************/ +/*! exports provided: Intersect, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Intersect", function() { return Intersect; }); +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function inserted(el, binding) { + var modifiers = binding.modifiers || {}; + var value = binding.value; + + var _a = _typeof(value) === 'object' ? value : { + handler: value, + options: {} + }, + handler = _a.handler, + options = _a.options; + + var observer = new IntersectionObserver(function (entries, observer) { + if (entries === void 0) { + entries = []; + } + /* istanbul ignore if */ + + + if (!el._observe) return; // Just in case, should never fire + // If is not quiet or has already been + // initted, invoke the user callback + + if (handler && (!modifiers.quiet || el._observe.init)) { + var isIntersecting = Boolean(entries.find(function (entry) { + return entry.isIntersecting; + })); + handler(entries, observer, isIntersecting); + } // If has already been initted and + // has the once modifier, unbind + + + if (el._observe.init && modifiers.once) unbind(el); // Otherwise, mark the observer as initted + else el._observe.init = true; + }, options); + el._observe = { + init: false, + observer: observer + }; + observer.observe(el); +} + +function unbind(el) { + /* istanbul ignore if */ + if (!el._observe) return; + + el._observe.observer.unobserve(el); + + delete el._observe; +} + +var Intersect = { + inserted: inserted, + unbind: unbind +}; +/* harmony default export */ __webpack_exports__["default"] = (Intersect); + +/***/ }), + +/***/ "./src/directives/mutate/index.ts": +/*!****************************************!*\ + !*** ./src/directives/mutate/index.ts ***! + \****************************************/ +/*! exports provided: Mutate, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Mutate", function() { return Mutate; }); +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +var __rest = undefined && undefined.__rest || function (s, e) { + var t = {}; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; + } + + if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; + } + return t; +}; + +function inserted(el, binding) { + var modifiers = binding.modifiers || {}; + var value = binding.value; + var callback = _typeof(value) === 'object' ? value.handler : value; + + var once = modifiers.once, + modifierKeys = __rest(modifiers, ["once"]); + + var hasModifiers = Object.keys(modifierKeys).length > 0; // Options take top priority + + var options = _typeof(value) === 'object' && value.options ? value.options : hasModifiers // If we have modifiers, use only those provided + ? { + attributes: modifierKeys.attr, + childList: modifierKeys.child, + subtree: modifierKeys.sub, + characterData: modifierKeys.char // Defaults to everything on + + } : { + attributes: true, + childList: true, + subtree: true, + characterData: true + }; + var observer = new MutationObserver(function (mutationsList, observer) { + /* istanbul ignore if */ + if (!el._mutate) return; // Just in case, should never fire + + callback(mutationsList, observer); // If has the once modifier, unbind + + once && unbind(el); + }); + observer.observe(el, options); + el._mutate = { + observer: observer + }; +} + +function unbind(el) { + /* istanbul ignore if */ + if (!el._mutate) return; + + el._mutate.observer.disconnect(); + + delete el._mutate; +} + +var Mutate = { + inserted: inserted, + unbind: unbind +}; +/* harmony default export */ __webpack_exports__["default"] = (Mutate); + +/***/ }), + +/***/ "./src/directives/resize/index.ts": +/*!****************************************!*\ + !*** ./src/directives/resize/index.ts ***! + \****************************************/ +/*! exports provided: Resize, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Resize", function() { return Resize; }); +function inserted(el, binding) { + var callback = binding.value; + var options = binding.options || { + passive: true + }; + window.addEventListener('resize', callback, options); + el._onResize = { + callback: callback, + options: options + }; + + if (!binding.modifiers || !binding.modifiers.quiet) { + callback(); + } +} + +function unbind(el) { + if (!el._onResize) return; + var _a = el._onResize, + callback = _a.callback, + options = _a.options; + window.removeEventListener('resize', callback, options); + delete el._onResize; +} + +var Resize = { + inserted: inserted, + unbind: unbind +}; +/* harmony default export */ __webpack_exports__["default"] = (Resize); + +/***/ }), + +/***/ "./src/directives/ripple/VRipple.sass": +/*!********************************************!*\ + !*** ./src/directives/ripple/VRipple.sass ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/directives/ripple/index.ts": +/*!****************************************!*\ + !*** ./src/directives/ripple/index.ts ***! + \****************************************/ +/*! exports provided: Ripple, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Ripple", function() { return Ripple; }); +/* harmony import */ var _VRipple_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VRipple.sass */ "./src/directives/ripple/VRipple.sass"); +/* harmony import */ var _VRipple_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_VRipple_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + +var __spread = undefined && undefined.__spread || function () { + for (var ar = [], i = 0; i < arguments.length; i++) { + ar = ar.concat(__read(arguments[i])); + } + + return ar; +}; // Styles + + + // Utilities + + + +var DELAY_RIPPLE = 80; + +function transform(el, value) { + el.style.transform = value; + el.style.webkitTransform = value; +} + +function opacity(el, value) { + el.style.opacity = value.toString(); +} + +function isTouchEvent(e) { + return e.constructor.name === 'TouchEvent'; +} + +function isKeyboardEvent(e) { + return e.constructor.name === 'KeyboardEvent'; +} + +var calculate = function calculate(e, el, value) { + if (value === void 0) { + value = {}; + } + + var localX = 0; + var localY = 0; + + if (!isKeyboardEvent(e)) { + var offset = el.getBoundingClientRect(); + var target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e; + localX = target.clientX - offset.left; + localY = target.clientY - offset.top; + } + + var radius = 0; + var scale = 0.3; + + if (el._ripple && el._ripple.circle) { + scale = 0.15; + radius = el.clientWidth / 2; + radius = value.center ? radius : radius + Math.sqrt(Math.pow(localX - radius, 2) + Math.pow(localY - radius, 2)) / 4; + } else { + radius = Math.sqrt(Math.pow(el.clientWidth, 2) + Math.pow(el.clientHeight, 2)) / 2; + } + + var centerX = (el.clientWidth - radius * 2) / 2 + "px"; + var centerY = (el.clientHeight - radius * 2) / 2 + "px"; + var x = value.center ? centerX : localX - radius + "px"; + var y = value.center ? centerY : localY - radius + "px"; + return { + radius: radius, + scale: scale, + x: x, + y: y, + centerX: centerX, + centerY: centerY + }; +}; + +var ripples = { + /* eslint-disable max-statements */ + show: function show(e, el, value) { + if (value === void 0) { + value = {}; + } + + if (!el._ripple || !el._ripple.enabled) { + return; + } + + var container = document.createElement('span'); + var animation = document.createElement('span'); + container.appendChild(animation); + container.className = 'v-ripple__container'; + + if (value.class) { + container.className += " " + value.class; + } + + var _a = calculate(e, el, value), + radius = _a.radius, + scale = _a.scale, + x = _a.x, + y = _a.y, + centerX = _a.centerX, + centerY = _a.centerY; + + var size = radius * 2 + "px"; + animation.className = 'v-ripple__animation'; + animation.style.width = size; + animation.style.height = size; + el.appendChild(container); + var computed = window.getComputedStyle(el); + + if (computed && computed.position === 'static') { + el.style.position = 'relative'; + el.dataset.previousPosition = 'static'; + } + + animation.classList.add('v-ripple__animation--enter'); + animation.classList.add('v-ripple__animation--visible'); + transform(animation, "translate(" + x + ", " + y + ") scale3d(" + scale + "," + scale + "," + scale + ")"); + opacity(animation, 0); + animation.dataset.activated = String(performance.now()); + setTimeout(function () { + animation.classList.remove('v-ripple__animation--enter'); + animation.classList.add('v-ripple__animation--in'); + transform(animation, "translate(" + centerX + ", " + centerY + ") scale3d(1,1,1)"); + opacity(animation, 0.25); + }, 0); + }, + hide: function hide(el) { + if (!el || !el._ripple || !el._ripple.enabled) return; + var ripples = el.getElementsByClassName('v-ripple__animation'); + if (ripples.length === 0) return; + var animation = ripples[ripples.length - 1]; + if (animation.dataset.isHiding) return;else animation.dataset.isHiding = 'true'; + var diff = performance.now() - Number(animation.dataset.activated); + var delay = Math.max(250 - diff, 0); + setTimeout(function () { + animation.classList.remove('v-ripple__animation--in'); + animation.classList.add('v-ripple__animation--out'); + opacity(animation, 0); + setTimeout(function () { + var ripples = el.getElementsByClassName('v-ripple__animation'); + + if (ripples.length === 1 && el.dataset.previousPosition) { + el.style.position = el.dataset.previousPosition; + delete el.dataset.previousPosition; + } + + animation.parentNode && el.removeChild(animation.parentNode); + }, 300); + }, delay); + } +}; + +function isRippleEnabled(value) { + return typeof value === 'undefined' || !!value; +} + +function rippleShow(e) { + var value = {}; + var element = e.currentTarget; + if (!element || !element._ripple || element._ripple.touched) return; + + if (isTouchEvent(e)) { + element._ripple.touched = true; + element._ripple.isTouch = true; + } else { + // It's possible for touch events to fire + // as mouse events on Android/iOS, this + // will skip the event call if it has + // already been registered as touch + if (element._ripple.isTouch) return; + } + + value.center = element._ripple.centered || isKeyboardEvent(e); + + if (element._ripple.class) { + value.class = element._ripple.class; + } + + if (isTouchEvent(e)) { + // already queued that shows or hides the ripple + if (element._ripple.showTimerCommit) return; + + element._ripple.showTimerCommit = function () { + ripples.show(e, element, value); + }; + + element._ripple.showTimer = window.setTimeout(function () { + if (element && element._ripple && element._ripple.showTimerCommit) { + element._ripple.showTimerCommit(); + + element._ripple.showTimerCommit = null; + } + }, DELAY_RIPPLE); + } else { + ripples.show(e, element, value); + } +} + +function rippleHide(e) { + var element = e.currentTarget; + if (!element || !element._ripple) return; + window.clearTimeout(element._ripple.showTimer); // The touch interaction occurs before the show timer is triggered. + // We still want to show ripple effect. + + if (e.type === 'touchend' && element._ripple.showTimerCommit) { + element._ripple.showTimerCommit(); + + element._ripple.showTimerCommit = null; // re-queue ripple hiding + + element._ripple.showTimer = setTimeout(function () { + rippleHide(e); + }); + return; + } + + window.setTimeout(function () { + if (element._ripple) { + element._ripple.touched = false; + } + }); + ripples.hide(element); +} + +function rippleCancelShow(e) { + var element = e.currentTarget; + if (!element || !element._ripple) return; + + if (element._ripple.showTimerCommit) { + element._ripple.showTimerCommit = null; + } + + window.clearTimeout(element._ripple.showTimer); +} + +var keyboardRipple = false; + +function keyboardRippleShow(e) { + if (!keyboardRipple && (e.keyCode === _util_helpers__WEBPACK_IMPORTED_MODULE_2__["keyCodes"].enter || e.keyCode === _util_helpers__WEBPACK_IMPORTED_MODULE_2__["keyCodes"].space)) { + keyboardRipple = true; + rippleShow(e); + } +} + +function keyboardRippleHide(e) { + keyboardRipple = false; + rippleHide(e); +} + +function updateRipple(el, binding, wasEnabled) { + var enabled = isRippleEnabled(binding.value); + + if (!enabled) { + ripples.hide(el); + } + + el._ripple = el._ripple || {}; + el._ripple.enabled = enabled; + var value = binding.value || {}; + + if (value.center) { + el._ripple.centered = true; + } + + if (value.class) { + el._ripple.class = binding.value.class; + } + + if (value.circle) { + el._ripple.circle = value.circle; + } + + if (enabled && !wasEnabled) { + el.addEventListener('touchstart', rippleShow, { + passive: true + }); + el.addEventListener('touchend', rippleHide, { + passive: true + }); + el.addEventListener('touchmove', rippleCancelShow, { + passive: true + }); + el.addEventListener('touchcancel', rippleHide); + el.addEventListener('mousedown', rippleShow); + el.addEventListener('mouseup', rippleHide); + el.addEventListener('mouseleave', rippleHide); + el.addEventListener('keydown', keyboardRippleShow); + el.addEventListener('keyup', keyboardRippleHide); // Anchor tags can be dragged, causes other hides to fail - #1537 + + el.addEventListener('dragstart', rippleHide, { + passive: true + }); + } else if (!enabled && wasEnabled) { + removeListeners(el); + } +} + +function removeListeners(el) { + el.removeEventListener('mousedown', rippleShow); + el.removeEventListener('touchstart', rippleShow); + el.removeEventListener('touchend', rippleHide); + el.removeEventListener('touchmove', rippleCancelShow); + el.removeEventListener('touchcancel', rippleHide); + el.removeEventListener('mouseup', rippleHide); + el.removeEventListener('mouseleave', rippleHide); + el.removeEventListener('keydown', keyboardRippleShow); + el.removeEventListener('keyup', keyboardRippleHide); + el.removeEventListener('dragstart', rippleHide); +} + +function directive(el, binding, node) { + updateRipple(el, binding, false); + + if (true) { + // warn if an inline element is used, waiting for el to be in the DOM first + node.context && node.context.$nextTick(function () { + var computed = window.getComputedStyle(el); + + if (computed && computed.display === 'inline') { + var context = node.fnOptions ? [node.fnOptions, node.context] : [node.componentInstance]; + _util_console__WEBPACK_IMPORTED_MODULE_1__["consoleWarn"].apply(void 0, __spread(['v-ripple can only be used on block-level elements'], context)); + } + }); + } +} + +function unbind(el) { + delete el._ripple; + removeListeners(el); +} + +function update(el, binding) { + if (binding.value === binding.oldValue) { + return; + } + + var wasEnabled = isRippleEnabled(binding.oldValue); + updateRipple(el, binding, wasEnabled); +} + +var Ripple = { + bind: directive, + unbind: unbind, + update: update +}; +/* harmony default export */ __webpack_exports__["default"] = (Ripple); + +/***/ }), + +/***/ "./src/directives/scroll/index.ts": +/*!****************************************!*\ + !*** ./src/directives/scroll/index.ts ***! + \****************************************/ +/*! exports provided: Scroll, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Scroll", function() { return Scroll; }); +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function inserted(el, binding) { + var _a = (binding.modifiers || {}).self, + self = _a === void 0 ? false : _a; + var value = binding.value; + var options = _typeof(value) === 'object' && value.options || { + passive: true + }; + var handler = typeof value === 'function' || 'handleEvent' in value ? value : value.handler; + var target = self ? el : binding.arg ? document.querySelector(binding.arg) : window; + if (!target) return; + target.addEventListener('scroll', handler, options); + el._onScroll = { + handler: handler, + options: options, + // Don't reference self + target: self ? undefined : target + }; +} + +function unbind(el) { + if (!el._onScroll) return; + var _a = el._onScroll, + handler = _a.handler, + options = _a.options, + _b = _a.target, + target = _b === void 0 ? el : _b; + target.removeEventListener('scroll', handler, options); + delete el._onScroll; +} + +var Scroll = { + inserted: inserted, + unbind: unbind +}; +/* harmony default export */ __webpack_exports__["default"] = (Scroll); + +/***/ }), + +/***/ "./src/directives/touch/index.ts": +/*!***************************************!*\ + !*** ./src/directives/touch/index.ts ***! + \***************************************/ +/*! exports provided: Touch, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Touch", function() { return Touch; }); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); + + +var handleGesture = function handleGesture(wrapper) { + var touchstartX = wrapper.touchstartX, + touchendX = wrapper.touchendX, + touchstartY = wrapper.touchstartY, + touchendY = wrapper.touchendY; + var dirRatio = 0.5; + var minDistance = 16; + wrapper.offsetX = touchendX - touchstartX; + wrapper.offsetY = touchendY - touchstartY; + + if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) { + wrapper.left && touchendX < touchstartX - minDistance && wrapper.left(wrapper); + wrapper.right && touchendX > touchstartX + minDistance && wrapper.right(wrapper); + } + + if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) { + wrapper.up && touchendY < touchstartY - minDistance && wrapper.up(wrapper); + wrapper.down && touchendY > touchstartY + minDistance && wrapper.down(wrapper); + } +}; + +function _touchstart(event, wrapper) { + var touch = event.changedTouches[0]; + wrapper.touchstartX = touch.clientX; + wrapper.touchstartY = touch.clientY; + wrapper.start && wrapper.start(Object.assign(event, wrapper)); +} + +function _touchend(event, wrapper) { + var touch = event.changedTouches[0]; + wrapper.touchendX = touch.clientX; + wrapper.touchendY = touch.clientY; + wrapper.end && wrapper.end(Object.assign(event, wrapper)); + handleGesture(wrapper); +} + +function _touchmove(event, wrapper) { + var touch = event.changedTouches[0]; + wrapper.touchmoveX = touch.clientX; + wrapper.touchmoveY = touch.clientY; + wrapper.move && wrapper.move(Object.assign(event, wrapper)); +} + +function createHandlers(value) { + var wrapper = { + touchstartX: 0, + touchstartY: 0, + touchendX: 0, + touchendY: 0, + touchmoveX: 0, + touchmoveY: 0, + offsetX: 0, + offsetY: 0, + left: value.left, + right: value.right, + up: value.up, + down: value.down, + start: value.start, + move: value.move, + end: value.end + }; + return { + touchstart: function touchstart(e) { + return _touchstart(e, wrapper); + }, + touchend: function touchend(e) { + return _touchend(e, wrapper); + }, + touchmove: function touchmove(e) { + return _touchmove(e, wrapper); + } + }; +} + +function inserted(el, binding, vnode) { + var value = binding.value; + var target = value.parent ? el.parentElement : el; + var options = value.options || { + passive: true + }; // Needed to pass unit tests + + if (!target) return; + var handlers = createHandlers(binding.value); + target._touchHandlers = Object(target._touchHandlers); + target._touchHandlers[vnode.context._uid] = handlers; + Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["keys"])(handlers).forEach(function (eventName) { + target.addEventListener(eventName, handlers[eventName], options); + }); +} + +function unbind(el, binding, vnode) { + var target = binding.value.parent ? el.parentElement : el; + if (!target || !target._touchHandlers) return; + var handlers = target._touchHandlers[vnode.context._uid]; + Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["keys"])(handlers).forEach(function (eventName) { + target.removeEventListener(eventName, handlers[eventName]); + }); + delete target._touchHandlers[vnode.context._uid]; +} + +var Touch = { + inserted: inserted, + unbind: unbind +}; +/* harmony default export */ __webpack_exports__["default"] = (Touch); + +/***/ }), + +/***/ "./src/framework.ts": +/*!**************************!*\ + !*** ./src/framework.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _install__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./install */ "./src/install.ts"); +/* harmony import */ var _services__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./services */ "./src/services/index.ts"); + // Services + + + +var Vuetify = +/** @class */ +function () { + function Vuetify(userPreset) { + if (userPreset === void 0) { + userPreset = {}; + } + + this.framework = { + isHydrating: false + }; + this.installed = []; + this.preset = {}; + this.userPreset = {}; + this.userPreset = userPreset; + this.use(_services__WEBPACK_IMPORTED_MODULE_1__["Presets"]); + this.use(_services__WEBPACK_IMPORTED_MODULE_1__["Application"]); + this.use(_services__WEBPACK_IMPORTED_MODULE_1__["Breakpoint"]); + this.use(_services__WEBPACK_IMPORTED_MODULE_1__["Goto"]); + this.use(_services__WEBPACK_IMPORTED_MODULE_1__["Icons"]); + this.use(_services__WEBPACK_IMPORTED_MODULE_1__["Lang"]); + this.use(_services__WEBPACK_IMPORTED_MODULE_1__["Theme"]); + } // Called on the new vuetify instance + // bootstrap in install beforeCreate + // Exposes ssrContext if available + + + Vuetify.prototype.init = function (root, ssrContext) { + var _this = this; + + this.installed.forEach(function (property) { + var service = _this.framework[property]; + service.framework = _this.framework; + service.init(root, ssrContext); + }); // rtl is not installed and + // will never be called by + // the init process + + this.framework.rtl = Boolean(this.preset.rtl); + }; // Instantiate a VuetifyService + + + Vuetify.prototype.use = function (Service) { + var property = Service.property; + if (this.installed.includes(property)) return; // TODO maybe a specific type for arg 2? + + this.framework[property] = new Service(this.preset, this); + this.installed.push(property); + }; + + Vuetify.install = _install__WEBPACK_IMPORTED_MODULE_0__["install"]; + Vuetify.installed = false; + Vuetify.version = "2.3.19"; + Vuetify.config = { + silent: false + }; + return Vuetify; +}(); + +/* harmony default export */ __webpack_exports__["default"] = (Vuetify); + +/***/ }), + +/***/ "./src/index.ts": +/*!**********************!*\ + !*** ./src/index.ts ***! + \**********************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./components */ "./src/components/index.ts"); +/* harmony import */ var _directives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./directives */ "./src/directives/index.ts"); +/* harmony import */ var _framework__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./framework */ "./src/framework.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + + + + +/* harmony default export */ __webpack_exports__["default"] = (_framework__WEBPACK_IMPORTED_MODULE_2__["default"]); +var install = _framework__WEBPACK_IMPORTED_MODULE_2__["default"].install; + +_framework__WEBPACK_IMPORTED_MODULE_2__["default"].install = function (Vue, args) { + install.call(_framework__WEBPACK_IMPORTED_MODULE_2__["default"], Vue, __assign({ + components: _components__WEBPACK_IMPORTED_MODULE_0__, + directives: _directives__WEBPACK_IMPORTED_MODULE_1__ + }, args)); +}; + +if (typeof window !== 'undefined' && window.Vue) { + window.Vue.use(_framework__WEBPACK_IMPORTED_MODULE_2__["default"]); +} + +/***/ }), + +/***/ "./src/install.ts": +/*!************************!*\ + !*** ./src/install.ts ***! + \************************/ +/*! exports provided: install */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "install", function() { return install; }); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/console */ "./src/util/console.ts"); + + +function install(Vue, args) { + if (args === void 0) { + args = {}; + } + + if (install.installed) return; + install.installed = true; + + if (vue__WEBPACK_IMPORTED_MODULE_0___default.a !== Vue) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_1__["consoleError"])("Multiple instances of Vue detected\nSee https://github.com/vuetifyjs/vuetify/issues/4068\n\nIf you're seeing \"$attrs is readonly\", it's caused by this"); + } + + var components = args.components || {}; + var directives = args.directives || {}; + + for (var name in directives) { + var directive = directives[name]; + Vue.directive(name, directive); + } + + (function registerComponents(components) { + if (components) { + for (var key in components) { + var component = components[key]; + + if (component && !registerComponents(component.$_vuetify_subcomponents)) { + Vue.component(key, component); + } + } + + return true; + } + + return false; + })(components); // Used to avoid multiple mixins being setup + // when in dev mode and hot module reload + // https://github.com/vuejs/vue/issues/5089#issuecomment-284260111 + + + if (Vue.$_vuetify_installed) return; + Vue.$_vuetify_installed = true; + Vue.mixin({ + beforeCreate: function beforeCreate() { + var options = this.$options; + + if (options.vuetify) { + options.vuetify.init(this, this.$ssrContext); + this.$vuetify = Vue.observable(options.vuetify.framework); + } else { + this.$vuetify = options.parent && options.parent.$vuetify || this; + } + }, + beforeMount: function beforeMount() { + // @ts-ignore + if (this.$options.vuetify && this.$el && this.$el.hasAttribute('data-server-rendered')) { + // @ts-ignore + this.$vuetify.isHydrating = true; // @ts-ignore + + this.$vuetify.breakpoint.update(true); + } + }, + mounted: function mounted() { + // @ts-ignore + if (this.$options.vuetify && this.$vuetify.isHydrating) { + // @ts-ignore + this.$vuetify.isHydrating = false; // @ts-ignore + + this.$vuetify.breakpoint.update(); + } + } + }); +} + +/***/ }), + +/***/ "./src/locale/af.ts": +/*!**************************!*\ + !*** ./src/locale/af.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'badge', + close: 'Close', + dataIterator: { + noResultsText: 'Geen ooreenstemmende resultate is gevind nie', + loadingText: 'Loading item...' + }, + dataTable: { + itemsPerPageText: 'Rye per bladsy:', + ariaLabel: { + sortDescending: 'Sorted descending.', + sortAscending: 'Sorted ascending..', + sortNone: 'Not sorted.', + activateNone: 'Activate to remove sorting.', + activateDescending: 'Activate to sort descending.', + activateAscending: 'Activate to sort ascending.' + }, + sortBy: 'Sort by' + }, + dataFooter: { + itemsPerPageText: 'Aantal per bladsy:', + itemsPerPageAll: 'Alles', + nextPage: 'Volgende bladsy', + prevPage: 'Vorige bladsy', + firstPage: 'Eerste bladsy', + lastPage: 'Laaste bladsy', + pageText: '{0}-{1} van {2}' + }, + datePicker: { + itemsSelected: '{0} gekies', + nextMonthAriaLabel: 'Volgende maand', + nextYearAriaLabel: 'Volgende jaar', + prevMonthAriaLabel: 'Vorige maand', + prevYearAriaLabel: 'Vorige jaar' + }, + noDataText: 'Geen data is beskikbaar nie', + carousel: { + prev: 'Vorige visuele', + next: 'Volgende visuele', + ariaLabel: { + delimiter: 'Carousel slide {0} of {1}' + } + }, + calendar: { + moreEvents: '{0} meer' + }, + fileInput: { + counter: '{0} files', + counterSize: '{0} files ({1} in total)' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Paginasie-navigasie', + next: 'Volgende bladsy', + previous: 'Vorige bladsy', + page: 'Gaan na bladsy {0}', + currentPage: 'Huidige bladsy, Bladsy {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/ar.ts": +/*!**************************!*\ + !*** ./src/locale/ar.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'شارة', + close: 'إغلاق', + dataIterator: { + noResultsText: 'لا توجد سجلات مطابقة', + loadingText: 'تحميل العنصر...' + }, + dataTable: { + itemsPerPageText: 'الصفوف لكل صفحة:', + ariaLabel: { + sortDescending: 'مفروز تنازلي. تنشيط لإزالة الفرز.', + sortAscending: 'مفروز تصاعدي. تنشيط للفرز التنازلي.', + sortNone: 'غير مفروزة. تفعيل لفرز تصاعدي.', + activateNone: 'Activate to remove sorting.', + activateDescending: 'Activate to sort descending.', + activateAscending: 'Activate to sort ascending.' + }, + sortBy: 'مفروزة حسب' + }, + dataFooter: { + itemsPerPageText: 'العناصر لكل صفحة:', + itemsPerPageAll: 'الكل', + nextPage: 'الصفحة التالية', + prevPage: 'الصفحة السابقة', + firstPage: 'الصفحة الأولى', + lastPage: 'الصفحة الأخيرة', + pageText: '{0}-{1} من {2}' + }, + datePicker: { + itemsSelected: '{0} مختارة', + nextMonthAriaLabel: 'الشهر القادم', + nextYearAriaLabel: 'العام القادم', + prevMonthAriaLabel: 'الشهر الماضى', + prevYearAriaLabel: 'السنة الماضية' + }, + noDataText: 'لا توجد بيانات متاحة', + carousel: { + prev: 'البصري السابق', + next: 'البصري التالي', + ariaLabel: { + delimiter: 'Carousel slide {0} of {1}' + } + }, + calendar: { + moreEvents: '{0} أكثر' + }, + fileInput: { + counter: '{0} ملفات', + counterSize: '{0} ملفات ({1} في المجموع)' + }, + timePicker: { + am: 'صباحاً', + pm: 'مساءً' + }, + pagination: { + ariaLabel: { + wrapper: 'ترقيم الصفحات الملاحة', + next: 'الصفحة التالية', + previous: 'الصفحة السابقة', + page: '{0} انتقل إلى صفحة', + currentPage: '{0} الصفحة الحالية ، الصفحة' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/ca.ts": +/*!**************************!*\ + !*** ./src/locale/ca.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'Insígnia', + close: 'Tancar', + dataIterator: { + noResultsText: 'Sense dades per mostrar', + loadingText: 'Carregant...' + }, + dataTable: { + itemsPerPageText: 'Files per pàgina:', + ariaLabel: { + sortDescending: 'Ordre descendent. Premi per treure la ordenació.', + sortAscending: 'Ordre ascendent. Premi per ordenar descendent.', + sortNone: 'Sense ordenar. Premi per ordenar ascendent.', + activateNone: 'Activate to remove sorting.', + activateDescending: 'Activate to sort descending.', + activateAscending: 'Activate to sort ascending.' + }, + sortBy: 'Ordenat per' + }, + dataFooter: { + itemsPerPageText: 'Elements per pàgina:', + itemsPerPageAll: 'Tot', + nextPage: 'Pàgina següent', + prevPage: 'Pàgina anterior', + firstPage: 'Primera pàgina', + lastPage: 'Última pàgina', + pageText: '{0}-{1} de {2}' + }, + datePicker: { + itemsSelected: '{0} seleccionats', + nextMonthAriaLabel: 'El mes que ve', + nextYearAriaLabel: "L'any que ve", + prevMonthAriaLabel: 'Mes anterior', + prevYearAriaLabel: 'Any anterior' + }, + noDataText: 'Sense dades', + carousel: { + prev: 'Visualització prèvia', + next: 'Visualització següent', + ariaLabel: { + delimiter: 'Diapositiva {0} of {1}' + } + }, + calendar: { + moreEvents: '{0} més' + }, + fileInput: { + counter: '{0} fitxers', + counterSize: '{0} fitxers ({1} en total)' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Navegació de la pàgina', + next: 'Pàgina següent', + previous: 'Pàgina anterior', + page: 'Ves a la pàgina {0}', + currentPage: 'Pàgina actual, pàgina {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/cs.ts": +/*!**************************!*\ + !*** ./src/locale/cs.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'Odznak', + close: 'Zavřít', + dataIterator: { + noResultsText: 'Nenalezeny žádné záznamy', + loadingText: 'Načítám položky...' + }, + dataTable: { + itemsPerPageText: 'Řádků na stránku:', + ariaLabel: { + sortDescending: 'Řazeno sestupně.', + sortAscending: 'Řazeno vzestupně.', + sortNone: 'Neseřazeno.', + activateNone: 'Aktivováním vypnete řazení.', + activateDescending: 'Aktivováním se bude řadit sestupně.', + activateAscending: 'Aktivováním se bude řadit vzestupně.' + }, + sortBy: 'Řadit dle' + }, + dataFooter: { + itemsPerPageText: 'Položek na stránku:', + itemsPerPageAll: 'Vše', + nextPage: 'Další strana', + prevPage: 'Předchozí strana', + firstPage: 'První strana', + lastPage: 'Poslední strana', + pageText: '{0}-{1} z {2}' + }, + datePicker: { + itemsSelected: '{0} vybráno', + nextMonthAriaLabel: 'Příští měsíc', + nextYearAriaLabel: 'Příští rok', + prevMonthAriaLabel: 'Předchozí měsíc', + prevYearAriaLabel: 'Předchozí rok' + }, + noDataText: 'Nejsou dostupná žádná data', + carousel: { + prev: 'Předchozí obrázek', + next: 'Další obrázek', + ariaLabel: { + delimiter: 'Carousel slide {0} of {1}' + } + }, + calendar: { + moreEvents: '{0} dalších' + }, + fileInput: { + counter: '{0} souborů', + counterSize: '{0} souborů ({1} celkem)' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Navigace stránkování', + next: 'Další strana', + previous: 'Předchozí strana', + page: 'Přejít na stránku {0}', + currentPage: 'Aktuální stránka, stránka {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/de.ts": +/*!**************************!*\ + !*** ./src/locale/de.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'Abzeichen', + close: 'Schließen', + dataIterator: { + noResultsText: 'Keine Elemente gefunden', + loadingText: 'Lade Elemente...' + }, + dataTable: { + itemsPerPageText: 'Zeilen pro Seite:', + ariaLabel: { + sortDescending: 'Absteigend sortiert.', + sortAscending: 'Aufsteigend sortiert.', + sortNone: 'Nicht sortiert.', + activateNone: 'Aktivieren um Sortierung zu entfernen.', + activateDescending: 'Aktivieren um absteigend zu sortieren.', + activateAscending: 'Aktivieren um aufsteigend zu sortieren.' + }, + sortBy: 'Sortiere nach' + }, + dataFooter: { + itemsPerPageText: 'Elemente pro Seite:', + itemsPerPageAll: 'Alle', + nextPage: 'Nächste Seite', + prevPage: 'Vorherige Seite', + firstPage: 'Erste Seite', + lastPage: 'Letzte Seite', + pageText: '{0}-{1} von {2}' + }, + datePicker: { + itemsSelected: '{0} ausgewählt', + nextMonthAriaLabel: 'Nächsten Monat', + nextYearAriaLabel: 'Nächstes Jahr', + prevMonthAriaLabel: 'Vorheriger Monat', + prevYearAriaLabel: 'Vorheriges Jahr' + }, + noDataText: 'Keine Daten vorhanden', + carousel: { + prev: 'Vorheriges Bild', + next: 'Nächstes Bild', + ariaLabel: { + delimiter: 'Element {0} von {1}' + } + }, + calendar: { + moreEvents: '{0} mehr' + }, + fileInput: { + counter: '{0} Dateien', + counterSize: '{0} Dateien ({1} gesamt)' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Seitennavigation', + next: 'Nächste Seite', + previous: 'Vorherige Seite', + page: 'Gehe zu Seite {0}', + currentPage: 'Aktuelle Seite, Seite {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/el.ts": +/*!**************************!*\ + !*** ./src/locale/el.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'Σήμα', + close: 'Close', + dataIterator: { + noResultsText: 'Δε βρέθηκαν αποτελέσματα', + loadingText: 'Loading item...' + }, + dataTable: { + itemsPerPageText: 'Γραμμές ανά σελίδα:', + ariaLabel: { + sortDescending: 'Sorted descending.', + sortAscending: 'Sorted ascending.', + sortNone: 'Not sorted.', + activateNone: 'Activate to remove sorting.', + activateDescending: 'Activate to sort descending.', + activateAscending: 'Activate to sort ascending.' + }, + sortBy: 'Sort by' + }, + dataFooter: { + itemsPerPageText: 'Αντικείμενα ανά σελίδα:', + itemsPerPageAll: 'Όλα', + nextPage: 'Επόμενη σελίδα', + prevPage: 'Προηγούμενη σελίδα', + firstPage: 'Πρώτη σελίδα', + lastPage: 'Τελευταία σελίδα', + pageText: '{0}-{1} από {2}' + }, + datePicker: { + itemsSelected: '{0} επιλεγμένα', + nextMonthAriaLabel: 'Τον επόμενο μήνα', + nextYearAriaLabel: 'Του χρόνου', + prevMonthAriaLabel: 'Προηγούμενος μήνας', + prevYearAriaLabel: 'Προηγούμενο έτος' + }, + noDataText: 'Χωρίς δεδομένα', + carousel: { + prev: 'הקודם חזותי', + next: 'הבא חזותי', + ariaLabel: { + delimiter: 'Carousel slide {0} of {1}' + } + }, + calendar: { + moreEvents: '{0} ακόμη' + }, + fileInput: { + counter: '{0} files', + counterSize: '{0} files ({1} in total)' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Πλοήγηση με προορισμούς', + next: 'Επόμενη σελίδα', + previous: 'Προηγούμενη σελίδα', + page: 'Πήγαινε στην σελίδα {0}', + currentPage: 'Τρέχουσα σελίδα, σελίδα {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/en.ts": +/*!**************************!*\ + !*** ./src/locale/en.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'Badge', + close: 'Close', + dataIterator: { + noResultsText: 'No matching records found', + loadingText: 'Loading items...' + }, + dataTable: { + itemsPerPageText: 'Rows per page:', + ariaLabel: { + sortDescending: 'Sorted descending.', + sortAscending: 'Sorted ascending.', + sortNone: 'Not sorted.', + activateNone: 'Activate to remove sorting.', + activateDescending: 'Activate to sort descending.', + activateAscending: 'Activate to sort ascending.' + }, + sortBy: 'Sort by' + }, + dataFooter: { + itemsPerPageText: 'Items per page:', + itemsPerPageAll: 'All', + nextPage: 'Next page', + prevPage: 'Previous page', + firstPage: 'First page', + lastPage: 'Last page', + pageText: '{0}-{1} of {2}' + }, + datePicker: { + itemsSelected: '{0} selected', + nextMonthAriaLabel: 'Next month', + nextYearAriaLabel: 'Next year', + prevMonthAriaLabel: 'Previous month', + prevYearAriaLabel: 'Previous year' + }, + noDataText: 'No data available', + carousel: { + prev: 'Previous visual', + next: 'Next visual', + ariaLabel: { + delimiter: 'Carousel slide {0} of {1}' + } + }, + calendar: { + moreEvents: '{0} more' + }, + fileInput: { + counter: '{0} files', + counterSize: '{0} files ({1} in total)' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Pagination Navigation', + next: 'Next page', + previous: 'Previous page', + page: 'Goto Page {0}', + currentPage: 'Current Page, Page {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/es.ts": +/*!**************************!*\ + !*** ./src/locale/es.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'Placa', + close: 'Cerrar', + dataIterator: { + noResultsText: 'Ningún elemento coincide con la búsqueda', + loadingText: 'Cargando...' + }, + dataTable: { + itemsPerPageText: 'Filas por página:', + ariaLabel: { + sortDescending: 'Orden descendente.', + sortAscending: 'Orden ascendente.', + sortNone: 'Sin ordenar.', + activateNone: 'Pulse para quitar orden.', + activateDescending: 'Pulse para ordenar descendente.', + activateAscending: 'Pulse para ordenar ascendente.' + }, + sortBy: 'Ordenado por' + }, + dataFooter: { + itemsPerPageText: 'Elementos por página:', + itemsPerPageAll: 'Todos', + nextPage: 'Página siguiente', + prevPage: 'Página anterior', + firstPage: 'Primer página', + lastPage: 'Última página', + pageText: '{0}-{1} de {2}' + }, + datePicker: { + itemsSelected: '{0} seleccionados', + nextMonthAriaLabel: 'Próximo mes', + nextYearAriaLabel: 'Próximo año', + prevMonthAriaLabel: 'Mes anterior', + prevYearAriaLabel: 'Año anterior' + }, + noDataText: 'No hay datos disponibles', + carousel: { + prev: 'Visual anterior', + next: 'Visual siguiente', + ariaLabel: { + delimiter: 'Carousel slide {0} of {1}' + } + }, + calendar: { + moreEvents: '{0} más' + }, + fileInput: { + counter: '{0} archivos', + counterSize: '{0} archivos ({1} en total)' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Navegación de paginación', + next: 'Página siguiente', + previous: 'Página anterior', + page: 'Ir a la página {0}', + currentPage: 'Página actual, página {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/et.ts": +/*!**************************!*\ + !*** ./src/locale/et.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'Märk', + close: 'Sulge', + dataIterator: { + noResultsText: 'Vastavaid kirjeid ei leitud', + loadingText: 'Andmeid laaditakse...' + }, + dataTable: { + itemsPerPageText: 'Ridu leheküljel:', + ariaLabel: { + sortDescending: 'Kahanevalt sorteeritud.', + sortAscending: 'Kasvavalt sorteeritud.', + sortNone: 'Ei ole sorteeritud.', + activateNone: 'Vajuta uuesti sorteerimise eemaldamiseks.', + activateDescending: 'Vajuta uuesti, et sorteerida kahanevalt.', + activateAscending: 'Vajuta kasvavalt sorteerimiseks.' + }, + sortBy: 'Sorteerimise alus' + }, + dataFooter: { + itemsPerPageText: 'Kirjeid leheküljel:', + itemsPerPageAll: 'Kõik', + nextPage: 'Järgmine lehekülg', + prevPage: 'Eelmine lehekülg', + firstPage: 'Esimene lehekülg', + lastPage: 'Viimane lehekülg', + pageText: '{0}-{1} {2}st' + }, + datePicker: { + itemsSelected: '{0} valitud', + nextMonthAriaLabel: 'Järgmine kuu', + nextYearAriaLabel: 'Järgmine aasta', + prevMonthAriaLabel: 'Eelmine kuu', + prevYearAriaLabel: 'Eelmine aasta' + }, + noDataText: 'Andmed puuduvad', + carousel: { + prev: 'Eelmine visuaalne', + next: 'Järgmine visuaalne', + ariaLabel: { + delimiter: 'Carousel slide {0} of {1}' + } + }, + calendar: { + moreEvents: '{0} veel' + }, + fileInput: { + counter: '{0} faili', + counterSize: '{0} faili (kokku {1})' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Pagination Navigation', + next: 'Järgmine lehekülg', + previous: 'Eelmine lehekülg', + page: 'Mine lehele {0}', + currentPage: 'Praegune leht, leht {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/fa.ts": +/*!**************************!*\ + !*** ./src/locale/fa.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'نشان', + close: 'بستن', + dataIterator: { + noResultsText: 'نتیجهای یافت نشد', + loadingText: 'در حال بارگذاری...' + }, + dataTable: { + itemsPerPageText: 'ردیف در صفحه:', + ariaLabel: { + sortDescending: 'مرتبسازی نزولی', + sortAscending: 'مرتبسازی صعودی', + sortNone: 'بدون مرتبسازی', + activateNone: 'غیرفعالسازی مرتبسازی', + activateDescending: 'غیرفعالسازی مرتبسازی نزولی', + activateAscending: 'غیرفعالسازی مرتبسازی صعودی' + }, + sortBy: 'مرتبسازی براساس' + }, + dataFooter: { + itemsPerPageText: 'ردیف در صفحه:', + itemsPerPageAll: 'همه', + nextPage: 'صفحهی بعد', + prevPage: 'صفحهی قبل', + firstPage: 'صفحهی یکم', + lastPage: 'صفحهی آخر', + pageText: '{0} تا {1} از {2}' + }, + datePicker: { + itemsSelected: '{0} انتخاب شده', + nextMonthAriaLabel: 'ماه بعد', + nextYearAriaLabel: 'سال بعد', + prevMonthAriaLabel: 'ماه قبل', + prevYearAriaLabel: 'سال قبل' + }, + noDataText: 'دادهای موجود نیست', + carousel: { + prev: 'اسلاید قبلی', + next: 'اسلاید بعدی', + ariaLabel: { + delimiter: 'اسلاید {0} از {1}' + } + }, + calendar: { + moreEvents: '{بیشتر {0' + }, + fileInput: { + counter: '{0} پرونده', + counterSize: '{0} پرونده ({1} در کل)' + }, + timePicker: { + am: 'قبل از ظهر', + pm: 'بعد از ظهر' + }, + pagination: { + ariaLabel: { + wrapper: 'جهت یابی صفحه', + next: 'صفحه بعد', + previous: 'صفحه قبلی', + page: 'برو صفحه {0}', + currentPage: '{0} صفحه فعلی ، صفحه' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/fi.ts": +/*!**************************!*\ + !*** ./src/locale/fi.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'Infopiste', + close: 'Sulje', + dataIterator: { + noResultsText: 'Ei osumia', + loadingText: 'Ladataan kohteita...' + }, + dataTable: { + itemsPerPageText: 'Rivejä sivulla:', + ariaLabel: { + sortDescending: ': Järjestetty laskevasti. Poista järjestäminen aktivoimalla.', + sortAscending: ': Järjestetty nousevasti. Järjestä laskevasti aktivoimalla.', + sortNone: ': Ei järjestetty. Järjestä nousevasti aktivoimalla.', + activateNone: 'Aktivoi lajittelun poistamiseksi.', + activateDescending: 'Aktivoi laskevien laskevien lajittelemiseksi.', + activateAscending: 'Aktivoi lajitella nouseva.' + }, + sortBy: 'Järjestä' + }, + dataFooter: { + itemsPerPageText: 'Kohteita sivulla:', + itemsPerPageAll: 'Kaikki', + nextPage: 'Seuraava sivu', + prevPage: 'Edellinen sivu', + firstPage: 'Ensimmäinen sivu', + lastPage: 'Viimeinen sivu', + pageText: '{0}-{1} ({2})' + }, + datePicker: { + itemsSelected: '{0} valittu', + nextMonthAriaLabel: 'Seuraava kuukausi', + nextYearAriaLabel: 'Ensi vuosi', + prevMonthAriaLabel: 'Edellinen kuukausi', + prevYearAriaLabel: 'Edellinen vuosi' + }, + noDataText: 'Ei dataa', + carousel: { + prev: 'Edellinen kuva', + next: 'Seuraava kuva', + ariaLabel: { + delimiter: 'Karusellin kuva {0}/{1}' + } + }, + calendar: { + moreEvents: '{0} lisää' + }, + fileInput: { + counter: '{0} tiedostoa', + counterSize: '{0} tiedostoa ({1} yhteensä)' + }, + timePicker: { + am: 'ap.', + pm: 'ip.' + }, + pagination: { + ariaLabel: { + wrapper: 'Pagination Navigation', + next: 'Next page', + previous: 'Previous page', + page: 'Goto Page {0}', + currentPage: 'Current Page, Page {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/fr.ts": +/*!**************************!*\ + !*** ./src/locale/fr.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'Badge', + close: 'Fermer', + dataIterator: { + noResultsText: 'Aucun enregistrement correspondant trouvé', + loadingText: "Chargement de l'\xE9l\xE9ment..." + }, + dataTable: { + itemsPerPageText: 'Lignes par page :', + ariaLabel: { + sortDescending: 'Tri décroissant.', + sortAscending: 'Tri croissant.', + sortNone: 'Non trié.', + activateNone: 'Activer pour supprimer le tri.', + activateDescending: 'Activer pour trier par ordre décroissant.', + activateAscending: 'Activer pour trier par ordre croissant.' + }, + sortBy: 'Trier par' + }, + dataFooter: { + itemsPerPageText: 'Élements par page :', + itemsPerPageAll: 'Tous', + nextPage: 'Page suivante', + prevPage: 'Page précédente', + firstPage: 'Première page', + lastPage: 'Dernière page', + pageText: '{0}-{1} de {2}' + }, + datePicker: { + itemsSelected: '{0} sélectionné(s)', + nextMonthAriaLabel: 'Le mois prochain', + nextYearAriaLabel: "L'ann\xE9e prochaine", + prevMonthAriaLabel: 'Le mois précédent', + prevYearAriaLabel: 'Année précédente' + }, + noDataText: 'Aucune donnée disponible', + carousel: { + prev: 'Visuel précédent', + next: 'Visuel suivant', + ariaLabel: { + delimiter: 'Diapositive {0} de {1}' + } + }, + calendar: { + moreEvents: '{0} de plus' + }, + fileInput: { + counter: '{0} fichier(s)', + counterSize: '{0} fichier(s) ({1} au total)' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Navigation de pagination', + next: 'Page suivante', + previous: 'Page précédente', + page: 'Aller à la page {0}', + currentPage: 'Page actuelle, Page {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/he.ts": +/*!**************************!*\ + !*** ./src/locale/he.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'תג', + close: 'סגור', + dataIterator: { + noResultsText: 'לא נמצאו תוצאות מתאימות', + loadingText: 'טוען פריט...' + }, + dataTable: { + itemsPerPageText: 'שורות לעמוד:', + ariaLabel: { + sortDescending: 'ממוין לפי סדר עולה. לחץ להספקת המיון.', + sortAscending: 'ממוין לפי סדר יורד. לחץ למיון לפי סדר עולה.', + sortNone: 'לא ממוין. לחץ למיון לפי סדר עולה.', + activateNone: 'הפעל להסרת המיון.', + activateDescending: 'הפעל למיון יורד.', + activateAscending: 'הפעל למיון עולה.' + }, + sortBy: 'סדר לפי' + }, + dataFooter: { + itemsPerPageText: 'פריטים לדף:', + itemsPerPageAll: 'הכל', + nextPage: 'עמוד הבא', + prevPage: 'עמוד הקודם', + firstPage: 'עמוד ראשון', + lastPage: 'עמוד אחרון', + pageText: '{0}-{1} מתוך {2}' + }, + datePicker: { + itemsSelected: '{0} נבחרו', + nextMonthAriaLabel: 'חודש הבא', + nextYearAriaLabel: 'שנה הבאה', + prevMonthAriaLabel: 'חודש שעבר', + prevYearAriaLabel: 'שנה שעברה' + }, + noDataText: 'אין נתונים זמינים', + carousel: { + prev: 'מצג קודם', + next: 'מצג הבא', + ariaLabel: { + delimiter: 'Carousel slide {0} of {1}' + } + }, + calendar: { + moreEvents: '{0} נוספים' + }, + fileInput: { + counter: '{0} קבצים', + counterSize: '{0} קבצים ({1} בסך הכל)' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'ניווט עימוד', + next: 'עמוד הבא', + previous: 'עמוד הקודם', + page: '{0} לך לעמוד', + currentPage: '{0} עמוד נוכחי, עמוד' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/hr.ts": +/*!**************************!*\ + !*** ./src/locale/hr.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'Bedž', + close: 'Zatvori', + dataIterator: { + noResultsText: 'Nisu pronađene odgovarajuće stavke', + loadingText: 'Učitavanje...' + }, + dataTable: { + itemsPerPageText: 'Redaka po stranici:', + ariaLabel: { + sortDescending: 'Sortirano silazno.', + sortAscending: 'Sortirano uzlazno.', + sortNone: 'Nije sortirano.', + activateNone: 'Odaberite za uklanjanje sortiranja.', + activateDescending: 'Odaberite za silazno sortiranje.', + activateAscending: 'Odaberite za uzlazno sortiranje.' + }, + sortBy: 'Sortirajte po' + }, + dataFooter: { + itemsPerPageText: 'Stavki po stranici:', + itemsPerPageAll: 'Sve', + nextPage: 'Sljedeća stranica', + prevPage: 'Prethodna stranica', + firstPage: 'Prva stranica', + lastPage: 'Posljednja stranica', + pageText: '{0}-{1} od {2}' + }, + datePicker: { + itemsSelected: '{0} odabrano', + nextMonthAriaLabel: 'Sljedeći mjesec', + nextYearAriaLabel: 'Slijedeće godine', + prevMonthAriaLabel: 'Prethodni mjesec', + prevYearAriaLabel: 'Prošla godina' + }, + noDataText: 'Nema dostupnih podataka', + carousel: { + prev: 'Prethodno', + next: 'Sljedeće', + ariaLabel: { + delimiter: 'Carousel slide {0} of {1}' + } + }, + calendar: { + moreEvents: 'Još {0}' + }, + fileInput: { + counter: 'Odabranih datoteka: {0}', + counterSize: 'Odabranih datoteka: {0} ({1} ukupno)' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Navigacija stranicama', + next: 'Sljedeća stranica', + previous: 'Prethodna stranica', + page: 'Idi na stranicu {0}', + currentPage: 'Trenutna stranica, stranica {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/hu.ts": +/*!**************************!*\ + !*** ./src/locale/hu.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'Jelvény', + close: 'Bezárás', + dataIterator: { + noResultsText: 'Nincs egyező találat', + loadingText: 'Betöltés...' + }, + dataTable: { + itemsPerPageText: 'Elem oldalanként:', + ariaLabel: { + sortDescending: 'Csökkenő sorrendbe rendezve.', + sortAscending: 'Növekvő sorrendbe rendezve.', + sortNone: 'Rendezetlen.', + activateNone: 'Rendezés törlése.', + activateDescending: 'Aktiváld a csökkenő rendezésért.', + activateAscending: 'Aktiváld a növekvő rendezésért.' + }, + sortBy: 'Rendezés' + }, + dataFooter: { + itemsPerPageText: 'Elem oldalanként:', + itemsPerPageAll: 'Mind', + nextPage: 'Következő oldal', + prevPage: 'Előző oldal', + firstPage: 'Első oldal', + lastPage: 'Utolsó oldal', + pageText: '{0}-{1} / {2}' + }, + datePicker: { + itemsSelected: '{0} kiválasztva', + nextMonthAriaLabel: 'Következő hónap', + nextYearAriaLabel: 'Következő év', + prevMonthAriaLabel: 'Előző hónap', + prevYearAriaLabel: 'Előző év' + }, + noDataText: 'Nincs elérhető adat', + carousel: { + prev: 'Előző', + next: 'Következő', + ariaLabel: { + delimiter: 'Dia {0}/{1}' + } + }, + calendar: { + moreEvents: '{0} további' + }, + fileInput: { + counter: '{0} fájl', + counterSize: '{0} fájl ({1} összesen)' + }, + timePicker: { + am: 'de', + pm: 'du' + }, + pagination: { + ariaLabel: { + wrapper: 'Oldal navigáció', + next: 'Következő oldal', + previous: 'Előző oldal', + page: 'Menj a(z) {0}. oldalra', + currentPage: 'Aktuális oldal: {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/id.ts": +/*!**************************!*\ + !*** ./src/locale/id.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'Lencana', + close: 'Tutup', + dataIterator: { + noResultsText: 'Tidak ditemukan catatan yang cocok', + loadingText: 'Memuat data...' + }, + dataTable: { + itemsPerPageText: 'Baris per halaman:', + ariaLabel: { + sortDescending: 'Diurutkan kebawah.', + sortAscending: 'Diurutkan keatas.', + sortNone: 'Tidak diurutkan.', + activateNone: 'Aktifkan untuk menghapus penyortiran.', + activateDescending: 'Aktifkan untuk mengurutkan kebawah.', + activateAscending: 'Aktifkan untuk mengurutkan keatas.' + }, + sortBy: 'Urutkan berdasar' + }, + dataFooter: { + itemsPerPageText: 'Item per halaman:', + itemsPerPageAll: 'Semua', + nextPage: 'Halaman selanjutnya', + prevPage: 'Halaman sebelumnya', + firstPage: 'Halaman pertama', + lastPage: 'Halaman terakhir', + pageText: '{0}-{1} dari {2}' + }, + datePicker: { + itemsSelected: '{0} dipilih', + nextMonthAriaLabel: 'Bulan depan', + nextYearAriaLabel: 'Tahun depan', + prevMonthAriaLabel: 'Bulan sebelumnya', + prevYearAriaLabel: 'Tahun sebelumnya' + }, + noDataText: 'Tidak ada data tersedia', + carousel: { + prev: 'Visual sebelumnya', + next: 'Visual selanjutnya', + ariaLabel: { + delimiter: 'Carousel slide {0} of {1}' + } + }, + calendar: { + moreEvents: '{0} lagi' + }, + fileInput: { + counter: '{0} berkas', + counterSize: '{0} berkas (dari total {1})' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Navigasi Pagination', + next: 'Halaman selanjutnya', + previous: 'Halaman sebelumnya', + page: 'Buka halaman {0}', + currentPage: 'Halaman Saat Ini, Halaman {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/index.ts": +/*!*****************************!*\ + !*** ./src/locale/index.ts ***! + \*****************************/ +/*! exports provided: af, ar, ca, cs, de, el, en, es, et, fa, fi, fr, hr, hu, he, id, it, ja, ko, lv, lt, nl, no, pl, pt, ro, ru, sk, sl, srCyrl, sv, th, tr, uk, zhHans, zhHant */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _af__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./af */ "./src/locale/af.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "af", function() { return _af__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + +/* harmony import */ var _ar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ar */ "./src/locale/ar.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ar", function() { return _ar__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + +/* harmony import */ var _ca__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ca */ "./src/locale/ca.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ca", function() { return _ca__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + +/* harmony import */ var _cs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cs */ "./src/locale/cs.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cs", function() { return _cs__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + +/* harmony import */ var _de__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./de */ "./src/locale/de.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "de", function() { return _de__WEBPACK_IMPORTED_MODULE_4__["default"]; }); + +/* harmony import */ var _el__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./el */ "./src/locale/el.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "el", function() { return _el__WEBPACK_IMPORTED_MODULE_5__["default"]; }); + +/* harmony import */ var _en__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./en */ "./src/locale/en.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "en", function() { return _en__WEBPACK_IMPORTED_MODULE_6__["default"]; }); + +/* harmony import */ var _es__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./es */ "./src/locale/es.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "es", function() { return _es__WEBPACK_IMPORTED_MODULE_7__["default"]; }); + +/* harmony import */ var _et__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./et */ "./src/locale/et.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "et", function() { return _et__WEBPACK_IMPORTED_MODULE_8__["default"]; }); + +/* harmony import */ var _fa__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./fa */ "./src/locale/fa.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fa", function() { return _fa__WEBPACK_IMPORTED_MODULE_9__["default"]; }); + +/* harmony import */ var _fi__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./fi */ "./src/locale/fi.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fi", function() { return _fi__WEBPACK_IMPORTED_MODULE_10__["default"]; }); + +/* harmony import */ var _fr__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./fr */ "./src/locale/fr.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fr", function() { return _fr__WEBPACK_IMPORTED_MODULE_11__["default"]; }); + +/* harmony import */ var _hr__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./hr */ "./src/locale/hr.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hr", function() { return _hr__WEBPACK_IMPORTED_MODULE_12__["default"]; }); + +/* harmony import */ var _hu__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./hu */ "./src/locale/hu.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hu", function() { return _hu__WEBPACK_IMPORTED_MODULE_13__["default"]; }); + +/* harmony import */ var _he__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./he */ "./src/locale/he.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "he", function() { return _he__WEBPACK_IMPORTED_MODULE_14__["default"]; }); + +/* harmony import */ var _id__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./id */ "./src/locale/id.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "id", function() { return _id__WEBPACK_IMPORTED_MODULE_15__["default"]; }); + +/* harmony import */ var _it__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./it */ "./src/locale/it.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "it", function() { return _it__WEBPACK_IMPORTED_MODULE_16__["default"]; }); + +/* harmony import */ var _ja__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./ja */ "./src/locale/ja.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ja", function() { return _ja__WEBPACK_IMPORTED_MODULE_17__["default"]; }); + +/* harmony import */ var _ko__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./ko */ "./src/locale/ko.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ko", function() { return _ko__WEBPACK_IMPORTED_MODULE_18__["default"]; }); + +/* harmony import */ var _lv__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./lv */ "./src/locale/lv.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lv", function() { return _lv__WEBPACK_IMPORTED_MODULE_19__["default"]; }); + +/* harmony import */ var _lt__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./lt */ "./src/locale/lt.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lt", function() { return _lt__WEBPACK_IMPORTED_MODULE_20__["default"]; }); + +/* harmony import */ var _nl__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./nl */ "./src/locale/nl.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "nl", function() { return _nl__WEBPACK_IMPORTED_MODULE_21__["default"]; }); + +/* harmony import */ var _no__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./no */ "./src/locale/no.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "no", function() { return _no__WEBPACK_IMPORTED_MODULE_22__["default"]; }); + +/* harmony import */ var _pl__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./pl */ "./src/locale/pl.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pl", function() { return _pl__WEBPACK_IMPORTED_MODULE_23__["default"]; }); + +/* harmony import */ var _pt__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./pt */ "./src/locale/pt.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pt", function() { return _pt__WEBPACK_IMPORTED_MODULE_24__["default"]; }); + +/* harmony import */ var _ro__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./ro */ "./src/locale/ro.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ro", function() { return _ro__WEBPACK_IMPORTED_MODULE_25__["default"]; }); + +/* harmony import */ var _ru__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./ru */ "./src/locale/ru.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ru", function() { return _ru__WEBPACK_IMPORTED_MODULE_26__["default"]; }); + +/* harmony import */ var _sk__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./sk */ "./src/locale/sk.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sk", function() { return _sk__WEBPACK_IMPORTED_MODULE_27__["default"]; }); + +/* harmony import */ var _sl__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./sl */ "./src/locale/sl.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sl", function() { return _sl__WEBPACK_IMPORTED_MODULE_28__["default"]; }); + +/* harmony import */ var _sr_Cyrl__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./sr-Cyrl */ "./src/locale/sr-Cyrl.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "srCyrl", function() { return _sr_Cyrl__WEBPACK_IMPORTED_MODULE_29__["default"]; }); + +/* harmony import */ var _sv__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./sv */ "./src/locale/sv.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sv", function() { return _sv__WEBPACK_IMPORTED_MODULE_30__["default"]; }); + +/* harmony import */ var _th__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./th */ "./src/locale/th.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "th", function() { return _th__WEBPACK_IMPORTED_MODULE_31__["default"]; }); + +/* harmony import */ var _tr__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./tr */ "./src/locale/tr.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tr", function() { return _tr__WEBPACK_IMPORTED_MODULE_32__["default"]; }); + +/* harmony import */ var _uk__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./uk */ "./src/locale/uk.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "uk", function() { return _uk__WEBPACK_IMPORTED_MODULE_33__["default"]; }); + +/* harmony import */ var _zh_Hans__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./zh-Hans */ "./src/locale/zh-Hans.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zhHans", function() { return _zh_Hans__WEBPACK_IMPORTED_MODULE_34__["default"]; }); + +/* harmony import */ var _zh_Hant__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./zh-Hant */ "./src/locale/zh-Hant.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zhHant", function() { return _zh_Hant__WEBPACK_IMPORTED_MODULE_35__["default"]; }); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/***/ }), + +/***/ "./src/locale/it.ts": +/*!**************************!*\ + !*** ./src/locale/it.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'Distintivo', + close: 'Chiudi', + dataIterator: { + noResultsText: 'Nessun risultato trovato', + loadingText: 'Caricamento in corso...' + }, + dataTable: { + itemsPerPageText: 'Righe per pagina:', + ariaLabel: { + sortDescending: 'Ordinati in ordine decrescente.', + sortAscending: 'Ordinati in ordine crescente.', + sortNone: 'Non ordinato.', + activateNone: "Attiva per rimuovere l'ordinamento.", + activateDescending: 'Attiva per ordinare in ordine decrescente.', + activateAscending: 'Attiva per ordinare in ordine crescente.' + }, + sortBy: 'Ordina per' + }, + dataFooter: { + itemsPerPageText: 'Elementi per pagina:', + itemsPerPageAll: 'Tutti', + nextPage: 'Pagina seguente', + prevPage: 'Pagina precedente', + firstPage: 'Pagina prima', + lastPage: 'Pagina ultima', + pageText: '{0}-{1} di {2}' + }, + datePicker: { + itemsSelected: '{0} selezionati', + nextMonthAriaLabel: 'Il prossimo mese', + nextYearAriaLabel: "L'anno prossimo", + prevMonthAriaLabel: 'Il mese scorso', + prevYearAriaLabel: "L'anno scorso" + }, + noDataText: 'Nessun elemento disponibile', + carousel: { + prev: 'Vista precedente', + next: 'Prossima vista', + ariaLabel: { + delimiter: 'Carousel slide {0} of {1}' + } + }, + calendar: { + moreEvents: '{0} di più' + }, + fileInput: { + counter: '{0} files', + counterSize: '{0} files ({1} in totale)' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Navigazione impaginazione', + next: 'Pagina seguente', + previous: 'Pagina precedente', + page: 'Vai alla pagina {0}', + currentPage: 'Pagina corrente, pagina {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/ja.ts": +/*!**************************!*\ + !*** ./src/locale/ja.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'バッジ', + close: '閉じる', + dataIterator: { + noResultsText: '検索結果が見つかりません。', + loadingText: '項目をロード中です...' + }, + dataTable: { + itemsPerPageText: '1ページあたりの行数:', + ariaLabel: { + sortDescending: '降順の並び替え。', + sortAscending: '昇順の並び替え。', + sortNone: 'ソートされていません。', + activateNone: 'ソートを削除するには有効にしてください。', + activateDescending: '降順の並び替えのためには有効にしてください。', + activateAscending: '昇順のソートのためには有効にしてください。' + }, + sortBy: 'ソート方式' + }, + dataFooter: { + itemsPerPageText: '1ページあたりの件数:', + itemsPerPageAll: 'すべて', + nextPage: '次のページ', + prevPage: '前のページ', + firstPage: '最初のページ', + lastPage: '最後のページ', + pageText: '{0}-{1} 件目 / {2}件' + }, + datePicker: { + itemsSelected: '{0}日付選択', + nextMonthAriaLabel: '来月', + nextYearAriaLabel: '来年', + prevMonthAriaLabel: '前月', + prevYearAriaLabel: '前年' + }, + noDataText: 'データはありません。', + carousel: { + prev: '前のビジュアル', + next: '次のビジュアル', + ariaLabel: { + delimiter: 'カルーセルのスライド {0}件目 / {1}件' + } + }, + calendar: { + moreEvents: 'さらに{0}' + }, + fileInput: { + counter: '{0} ファイル', + counterSize: '{0} ファイル (合計 {1})' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'ページネーションナビゲーション', + next: '次のページ', + previous: '前のページ', + page: '{0}ページ目に移動', + currentPage: '現在のページ、ページ {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/ko.ts": +/*!**************************!*\ + !*** ./src/locale/ko.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: '배지', + close: '닫기', + dataIterator: { + noResultsText: '일치하는 항목이 없습니다.', + loadingText: '불러오는 중...' + }, + dataTable: { + itemsPerPageText: '페이지 당 행 수:', + ariaLabel: { + sortDescending: '내림차순 정렬.', + sortAscending: '오름차순 정렬.', + sortNone: '정렬하지 않음.', + activateNone: '정렬을 취소하려면 활성화하세요.', + activateDescending: '내림차순 정렬을 위해 활성화하세요.', + activateAscending: '오름차순 정렬을 위해 활성화하세요.' + }, + sortBy: 'Sort by' + }, + dataFooter: { + itemsPerPageText: '페이지 당 항목 수:', + itemsPerPageAll: '전체', + nextPage: '다음 페이지', + prevPage: '이전 페이지', + firstPage: '첫 페이지', + lastPage: '마지막 페이지', + pageText: '{2} 중 {0}-{1}' + }, + datePicker: { + itemsSelected: '{0} 선택됨', + nextMonthAriaLabel: '다음 달', + nextYearAriaLabel: '내년', + prevMonthAriaLabel: '지난달', + prevYearAriaLabel: '전년도' + }, + noDataText: '데이터가 없습니다.', + carousel: { + prev: '이전 화면', + next: '다음 화면', + ariaLabel: { + delimiter: 'Carousel slide {0} of {1}' + } + }, + calendar: { + moreEvents: '{0} 더보기' + }, + fileInput: { + counter: '{0} files', + counterSize: '{0} files ({1} in total)' + }, + timePicker: { + am: '오전', + pm: '오후' + }, + pagination: { + ariaLabel: { + wrapper: 'Pagination Navigation', + next: '다음 페이지', + previous: '이전 페이지', + page: '고토 페이지 {0}', + currentPage: '현재 페이지, 페이지 {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/lt.ts": +/*!**************************!*\ + !*** ./src/locale/lt.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'Ženklelis', + close: 'Uždaryti', + dataIterator: { + noResultsText: 'Nerasta atitinkančių įrašų', + loadingText: 'Kraunama...' + }, + dataTable: { + itemsPerPageText: 'Eilutės per puslapį:', + ariaLabel: { + sortDescending: 'Išrikiuota mažėjimo tvarka.', + sortAscending: 'Išrikiuota didėjimo tvarka.', + sortNone: 'Nerikiuota.', + activateNone: 'Suaktyvinkite, jei norite rikiavimą pašalinti.', + activateDescending: 'Suaktyvinkite, jei norite rikiuoti mažėjimo tvarka.', + activateAscending: 'Suaktyvinkite, jei norite rikiuoti didėjimo tvarka.' + }, + sortBy: 'Sort by' + }, + dataFooter: { + itemsPerPageText: 'Įrašai per puslapį:', + itemsPerPageAll: 'Visi', + nextPage: 'Kitas puslapis', + prevPage: 'Ankstesnis puslapis', + firstPage: 'Pirmas puslapis', + lastPage: 'Paskutinis puslapis', + pageText: '{0}-{1} iš {2}' + }, + datePicker: { + itemsSelected: '{0} pasirinkta', + nextMonthAriaLabel: 'Kitą mėnesį', + nextYearAriaLabel: 'Kitais metais', + prevMonthAriaLabel: 'Praeita mėnesį', + prevYearAriaLabel: 'Praeiti metai' + }, + noDataText: 'Nėra duomenų', + carousel: { + prev: 'Ankstesnioji skaidrė', + next: 'Kita skaidrė', + ariaLabel: { + delimiter: 'Carousel slide {0} of {1}' + } + }, + calendar: { + moreEvents: 'Daugiau {0}' + }, + fileInput: { + counter: '{0} failų', + counterSize: '{0} failų ({1} iš viso)' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Puslapio naršymas', + next: 'Kitas puslapis', + previous: 'Ankstesnis puslapis', + page: 'Eiti į puslapį {0}', + currentPage: 'Dabartinis puslapis, puslapis {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/lv.ts": +/*!**************************!*\ + !*** ./src/locale/lv.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'Žetons', + close: 'Aizvērt', + dataIterator: { + noResultsText: 'Nekas netika atrasts', + loadingText: 'Ielādē...' + }, + dataTable: { + itemsPerPageText: 'Rādīt lapā:', + ariaLabel: { + sortDescending: 'Sakārtots dilstošā secībā.', + sortAscending: 'Sakārtots augošā secībā.', + sortNone: 'Nav sakārtots.', + activateNone: 'Aktivizēt, lai noņemtu kārtošanu.', + activateDescending: 'Aktivizēt, lai sakārtotu dilstošā secībā.', + activateAscending: 'Aktivizēt, lai sakārtotu augošā secībā.' + }, + sortBy: 'Sort by' + }, + dataFooter: { + itemsPerPageText: 'Rādīt lapā:', + itemsPerPageAll: 'Visu', + nextPage: 'Nākamā lapa', + prevPage: 'Iepriekšējā lapa', + firstPage: 'Pirmā lapa', + lastPage: 'Pēdējā lapa', + pageText: '{0}-{1} no {2}' + }, + datePicker: { + itemsSelected: '{0} izvēlēts', + nextMonthAriaLabel: 'Nākammēnes', + nextYearAriaLabel: 'Nākamgad', + prevMonthAriaLabel: 'Iepriekšējais mēnesis', + prevYearAriaLabel: 'Iepriekšējais gads' + }, + noDataText: 'Nav pieejamu datu', + carousel: { + prev: 'Iepriekšējais slaids', + next: 'Nākamais slaids', + ariaLabel: { + delimiter: 'Carousel slide {0} of {1}' + } + }, + calendar: { + moreEvents: 'Vēl {0}' + }, + fileInput: { + counter: '{0} files', + counterSize: '{0} files ({1} in total)' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Navigācija paginationā', + next: 'Nākamā lapa', + previous: 'Iepriekšējā lapa', + page: 'Iet uz lapu {0}', + currentPage: 'Pašreizējā lapa, lapa {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/nl.ts": +/*!**************************!*\ + !*** ./src/locale/nl.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'insigne', + close: 'Sluiten', + dataIterator: { + noResultsText: 'Geen overeenkomende resultaten gevonden', + loadingText: 'Items aan het laden...' + }, + dataTable: { + itemsPerPageText: 'Rijen per pagina:', + ariaLabel: { + sortDescending: 'Aflopend gesorteerd.', + sortAscending: 'Oplopend gesorteerd.', + sortNone: 'Niet gesorteerd.', + activateNone: 'Activeer om de sortering te verwijderen.', + activateDescending: 'Activeer om aflopend te sorteren.', + activateAscending: 'Activeer om oplopend te sorteren.' + }, + sortBy: 'Sorteer volgens' + }, + dataFooter: { + itemsPerPageText: 'Aantal per pagina:', + itemsPerPageAll: 'Alles', + nextPage: 'Volgende pagina', + prevPage: 'Vorige pagina', + firstPage: 'Eerste pagina', + lastPage: 'Laatste pagina', + pageText: '{0}-{1} van {2}' + }, + datePicker: { + itemsSelected: '{0} geselecteerd', + nextMonthAriaLabel: 'Volgende maand', + nextYearAriaLabel: 'Volgend jaar', + prevMonthAriaLabel: 'Vorige maand', + prevYearAriaLabel: 'Vorig jaar' + }, + noDataText: 'Geen gegevens beschikbaar', + carousel: { + prev: 'Vorig beeld', + next: 'Volgend beeld', + ariaLabel: { + delimiter: 'Carousel slide {0} of {1}' + } + }, + calendar: { + moreEvents: '{0} meer' + }, + fileInput: { + counter: '{0} bestanden', + counterSize: '{0} bestanden ({1} in totaal)' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Paginanavigatie', + next: 'Volgende pagina', + previous: 'Vorige pagina', + page: 'Ga naar pagina {0}', + currentPage: 'Huidige pagina, pagina {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/no.ts": +/*!**************************!*\ + !*** ./src/locale/no.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'Skilt', + close: 'Lukk', + dataIterator: { + noResultsText: 'Fant ingen matchende elementer.', + loadingText: 'Laster elementer...' + }, + dataTable: { + itemsPerPageText: 'Rader per side:', + ariaLabel: { + sortDescending: 'Sortert synkende.', + sortAscending: 'Sortert stigende.', + sortNone: 'Ikke sortert.', + activateNone: 'Aktiver for å fjerne sortering.', + activateDescending: 'Aktiver for å sortere synkende.', + activateAscending: 'Aktiver for å sortere stigende.' + }, + sortBy: 'Sorter etter' + }, + dataFooter: { + itemsPerPageText: 'Elementer per side:', + itemsPerPageAll: 'Alle', + nextPage: 'Neste side', + prevPage: 'Forrige side', + firstPage: 'Første side', + lastPage: 'Siste side', + pageText: '{0}-{1} av {2}' + }, + datePicker: { + itemsSelected: '{0} valgt', + nextMonthAriaLabel: 'Neste måned', + nextYearAriaLabel: 'Neste år', + prevMonthAriaLabel: 'Forrige måned', + prevYearAriaLabel: 'Forrige år' + }, + noDataText: 'Ingen data er tilgjengelig', + carousel: { + prev: 'Forrige bilde', + next: 'Neste bilde', + ariaLabel: { + delimiter: 'Karusellbilde {0} av {1}' + } + }, + calendar: { + moreEvents: '{0} flere' + }, + fileInput: { + counter: '{0} filer', + counterSize: '{0} filer ({1} totalt)' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Paginasjonsnavigasjon', + next: 'Neste side', + previous: 'Forrige side', + page: 'Gå til side {0}', + currentPage: 'Gjeldende side, side {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/pl.ts": +/*!**************************!*\ + !*** ./src/locale/pl.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'Odznaka', + close: 'Zamknij', + dataIterator: { + noResultsText: 'Nie znaleziono danych odpowiadających wyszukiwaniu', + loadingText: 'Wczytywanie danych...' + }, + dataTable: { + itemsPerPageText: 'Wierszy na stronie:', + ariaLabel: { + sortDescending: 'Sortowanie malejąco. Kliknij aby zmienić.', + sortAscending: 'Sortowanie rosnąco. Kliknij aby zmienić.', + sortNone: 'Bez sortowania. Kliknij aby posortować rosnąco.', + activateNone: 'Kliknij aby usunąć sortowanie.', + activateDescending: 'Kliknij aby posortować malejąco.', + activateAscending: 'Kliknij aby posortować rosnąco.' + }, + sortBy: 'Sortuj według' + }, + dataFooter: { + itemsPerPageText: 'Pozycji na stronie:', + itemsPerPageAll: 'Wszystkie', + nextPage: 'Następna strona', + prevPage: 'Poprzednia strona', + firstPage: 'Pierwsza strona', + lastPage: 'Ostatnia strona', + pageText: '{0}-{1} z {2}' + }, + datePicker: { + itemsSelected: '{0} dat(y)', + nextMonthAriaLabel: 'Następny miesiąc', + nextYearAriaLabel: 'Następny rok', + prevMonthAriaLabel: 'Poprzedni miesiąc', + prevYearAriaLabel: 'Poprzedni rok' + }, + noDataText: 'Brak danych', + carousel: { + prev: 'Poprzedni obraz', + next: 'Następny obraz', + ariaLabel: { + delimiter: 'Carousel slide {0} of {1}' + } + }, + calendar: { + moreEvents: '{0} więcej' + }, + fileInput: { + counter: 'Liczba plików: {0}', + counterSize: 'Liczba plików: {0} (łącznie {1})' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Nawigacja paginacyjna', + next: 'Następna strona', + previous: 'Poprzednia strona', + page: 'Idź do strony {0}', + currentPage: 'Bieżąca strona, strona {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/pt.ts": +/*!**************************!*\ + !*** ./src/locale/pt.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'Distintivo', + close: 'Fechar', + dataIterator: { + noResultsText: 'Nenhum dado encontrado', + loadingText: 'Carregando itens...' + }, + dataTable: { + itemsPerPageText: 'Linhas por página:', + ariaLabel: { + sortDescending: 'Ordenado decrescente.', + sortAscending: 'Ordenado crescente.', + sortNone: 'Não ordenado.', + activateNone: 'Ative para remover a ordenação.', + activateDescending: 'Ative para ordenar decrescente.', + activateAscending: 'Ative para ordenar crescente.' + }, + sortBy: 'Ordenar por' + }, + dataFooter: { + itemsPerPageText: 'Itens por página:', + itemsPerPageAll: 'Todos', + nextPage: 'Próxima página', + prevPage: 'Página anterior', + firstPage: 'Primeira página', + lastPage: 'Última página', + pageText: '{0}-{1} de {2}' + }, + datePicker: { + itemsSelected: '{0} selecionado(s)', + nextMonthAriaLabel: 'Próximo mês', + nextYearAriaLabel: 'Próximo ano', + prevMonthAriaLabel: 'Mês anterior', + prevYearAriaLabel: 'Ano anterior' + }, + noDataText: 'Não há dados disponíveis', + carousel: { + prev: 'Visão anterior', + next: 'Próxima visão', + ariaLabel: { + delimiter: 'Slide {0} de {1} do carrossel' + } + }, + calendar: { + moreEvents: 'Mais {0}' + }, + fileInput: { + counter: '{0} arquivo(s)', + counterSize: '{0} arquivo(s) ({1} no total)' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Navegação de paginação', + next: 'Próxima página', + previous: 'Página anterior', + page: 'Ir à página {0}', + currentPage: 'Página atual, página {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/ro.ts": +/*!**************************!*\ + !*** ./src/locale/ro.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'Insignă', + close: 'Close', + dataIterator: { + noResultsText: 'Nu au fost găsite înregistrări care să se potrivească', + loadingText: 'Loading item...' + }, + dataTable: { + itemsPerPageText: 'Rânduri pe pagină:', + ariaLabel: { + sortDescending: 'Sorted descending.', + sortAscending: 'Sorted ascending.', + sortNone: 'Not sorted.', + activateNone: 'Activate to remove sorting.', + activateDescending: 'Activate to sort descending.', + activateAscending: 'Activate to sort ascending.' + }, + sortBy: 'Sort by' + }, + dataFooter: { + itemsPerPageText: 'Articole pe pagină:', + itemsPerPageAll: 'Toate', + nextPage: 'Pagina următoare', + prevPage: 'Pagina anterioară', + firstPage: 'Pagina prima', + lastPage: 'Pagina ultima', + pageText: '{0}-{1} din {2}' + }, + datePicker: { + itemsSelected: '{0} selectate', + nextMonthAriaLabel: 'Luna viitoare', + nextYearAriaLabel: 'Anul urmator', + prevMonthAriaLabel: 'Luna trecută', + prevYearAriaLabel: 'Anul precedent' + }, + noDataText: 'Nu există date disponibile', + carousel: { + prev: 'Anterior vizual', + next: 'Următorul vizual', + ariaLabel: { + delimiter: 'Carousel slide {0} of {1}' + } + }, + calendar: { + moreEvents: '{0} mai mult' + }, + fileInput: { + counter: '{0} files', + counterSize: '{0} files ({1} in total)' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Navigare prin paginare', + next: 'Pagina următoare', + previous: 'Pagina anterioară', + page: 'Mergi la pagina {0}', + currentPage: 'Pagina curentă, pagina {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/ru.ts": +/*!**************************!*\ + !*** ./src/locale/ru.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'знак', + close: 'Закрыть', + dataIterator: { + noResultsText: 'Не найдено подходящих записей', + loadingText: 'Запись загружается...' + }, + dataTable: { + itemsPerPageText: 'Строк на странице:', + ariaLabel: { + sortDescending: 'Упорядочено по убыванию.', + sortAscending: 'Упорядочено по возрастанию.', + sortNone: 'Не упорядочено.', + activateNone: 'Активируйте, чтобы убрать сортировку.', + activateDescending: 'Активируйте для упорядочивания убыванию.', + activateAscending: 'Активируйте для упорядочивания по возрастанию.' + }, + sortBy: 'Сортировать по' + }, + dataFooter: { + itemsPerPageText: 'Записей на странице:', + itemsPerPageAll: 'Все', + nextPage: 'Следующая страница', + prevPage: 'Предыдущая страница', + firstPage: 'Первая страница', + lastPage: 'Последняя страница', + pageText: '{0}-{1} из {2}' + }, + datePicker: { + itemsSelected: '{0} выбран', + nextMonthAriaLabel: 'Следующий месяц', + nextYearAriaLabel: 'Следующий год', + prevMonthAriaLabel: 'Прошлый месяц', + prevYearAriaLabel: 'Предыдущий год' + }, + noDataText: 'Отсутствуют данные', + carousel: { + prev: 'Предыдущий слайд', + next: 'Следующий слайд', + ariaLabel: { + delimiter: 'Слайд {0} из {1}' + } + }, + calendar: { + moreEvents: 'Еще {0}' + }, + fileInput: { + counter: 'Файлов: {0}', + counterSize: 'Файлов: {0} (всего {1})' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Навигация по страницам', + next: 'Следующая страница', + previous: 'Предыдущая страница', + page: 'Перейти на страницу {0}', + currentPage: 'Текущая страница, Страница {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/sk.ts": +/*!**************************!*\ + !*** ./src/locale/sk.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'Odznak', + close: 'Zavrieť', + dataIterator: { + noResultsText: 'Neboli nájdené žiadne záznamy', + loadingText: 'Načítavam položky...' + }, + dataTable: { + itemsPerPageText: 'Počet riadkov na stránku:', + ariaLabel: { + sortDescending: 'Zoradené zostupne.', + sortAscending: 'Zoradené vzostupne.', + sortNone: 'Nezoradené.', + activateNone: 'Aktivujte na zrušenie triedenia.', + activateDescending: 'Aktivujte na zoradenie zostupne.', + activateAscending: 'Aktivujte na zoradenie vzostupne.' + }, + sortBy: 'Zoradiť podľa' + }, + dataFooter: { + itemsPerPageText: 'Počet položiek na stránku:', + itemsPerPageAll: 'Všetko', + nextPage: 'Ďalšia stránka', + prevPage: 'Predchádzajúca stránka', + firstPage: 'Prvá stránka', + lastPage: 'Posledná stránka', + pageText: '{0}–{1} z {2}' + }, + datePicker: { + itemsSelected: '{0} vybrané', + nextMonthAriaLabel: 'Ďalší mesiac', + nextYearAriaLabel: 'Ďalší rok', + prevMonthAriaLabel: 'Predchádzajúci mesiac', + prevYearAriaLabel: 'Predchádzajúci rok' + }, + noDataText: 'Nie sú dostupné žiadne dáta', + carousel: { + prev: 'Predchádzajúci obrázok', + next: 'Další obrázok', + ariaLabel: { + delimiter: 'Snímka {0} z {1}' + } + }, + calendar: { + moreEvents: '{0} ďalších' + }, + fileInput: { + counter: '{0} súborov', + counterSize: '{0} súborov ({1} celkom)' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Navigácia stránkovania', + next: 'Ďalšia stránka', + previous: 'Predchádzajúca stránka', + page: 'Ísť na stránku {0}', + currentPage: 'Aktuálna stránka, stránka {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/sl.ts": +/*!**************************!*\ + !*** ./src/locale/sl.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'Značka', + close: 'Zapri', + dataIterator: { + noResultsText: 'Ni iskanega zapisa', + loadingText: 'Nalaganje...' + }, + dataTable: { + itemsPerPageText: 'Vrstic na stran:', + ariaLabel: { + sortDescending: 'Razvrščeno padajoče.', + sortAscending: 'Razvrščeno naraščajoče.', + sortNone: 'Ni razvrščeno.', + activateNone: 'Aktivirajte za odstranitev razvrščanja.', + activateDescending: 'Aktivirajte za padajoče razvrščanje.', + activateAscending: 'Aktivirajte za naraščajoče razvrščanje.' + }, + sortBy: 'Razvrsti po' + }, + dataFooter: { + itemsPerPageText: 'Predmetov na stran:', + itemsPerPageAll: 'Vse', + nextPage: 'Naslednja stran', + prevPage: 'Prejšnja stran', + firstPage: 'Prva stran', + lastPage: 'Zadnja stran', + pageText: '{0}-{1} od {2}' + }, + datePicker: { + itemsSelected: '{0} izbrano/-ih', + nextMonthAriaLabel: 'Naslednji mesec', + nextYearAriaLabel: 'Naslednje leto', + prevMonthAriaLabel: 'Prejšnji mesec', + prevYearAriaLabel: 'Prejšnje leto' + }, + noDataText: 'Ni podatkov', + carousel: { + prev: 'Prejšnji prikaz', + next: 'Naslednji prikaz', + ariaLabel: { + delimiter: 'Carousel slide {0} of {1}' + } + }, + calendar: { + moreEvents: 'Še {0}' + }, + fileInput: { + counter: '{0} datotek', + counterSize: '{0} datotek ({1} skupno)' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Navigacija po strani po strani', + next: 'Naslednja stran', + previous: 'Prejšnja stran', + page: 'Pojdi na stran {0}', + currentPage: 'Trenutna stran, stran {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/sr-Cyrl.ts": +/*!*******************************!*\ + !*** ./src/locale/sr-Cyrl.ts ***! + \*******************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'Значка', + close: 'Close', + dataIterator: { + noResultsText: 'Ни један запис није пронађен', + loadingText: 'Loading item...' + }, + dataTable: { + itemsPerPageText: 'Редова по страници:', + ariaLabel: { + sortDescending: 'Sorted descending.', + sortAscending: 'Sorted ascending.', + sortNone: 'Not sorted.', + activateNone: 'Activate to remove sorting.', + activateDescending: 'Activate to sort descending.', + activateAscending: 'Activate to sort ascending.' + }, + sortBy: 'Sort by' + }, + dataFooter: { + itemsPerPageText: 'Ставки по страници:', + itemsPerPageAll: 'Све', + nextPage: 'Следећа страница', + prevPage: 'Претходна страница', + firstPage: 'Прва страница', + lastPage: 'Последња страница', + pageText: '{0}-{1} од {2}' + }, + datePicker: { + itemsSelected: '{0} одабрано', + nextMonthAriaLabel: 'Следећег месеца', + nextYearAriaLabel: 'Следеће године', + prevMonthAriaLabel: 'Претходни мјесец', + prevYearAriaLabel: 'Претходна година' + }, + noDataText: 'Нема доступних података', + carousel: { + prev: 'Превиоус висуал', + next: 'Нект висуал', + ariaLabel: { + delimiter: 'Carousel slide {0} of {1}' + } + }, + calendar: { + moreEvents: '{0} море' + }, + fileInput: { + counter: '{0} files', + counterSize: '{0} files ({1} in total)' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Навигација страницама', + next: 'Следећа страница', + previous: 'Претходна страница', + page: 'Иди на страну {0}', + currentPage: 'Тренутна страница, страница {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/sv.ts": +/*!**************************!*\ + !*** ./src/locale/sv.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'Bricka', + close: 'Stäng', + dataIterator: { + noResultsText: 'Inga poster funna', + loadingText: 'Laddar data...' + }, + dataTable: { + itemsPerPageText: 'Rader per sida:', + ariaLabel: { + sortDescending: 'Sorterat fallande.', + sortAscending: 'Sorterat stigande.', + sortNone: 'Osorterat.', + activateNone: 'Aktivera för att ta bort sortering.', + activateDescending: 'Aktivera för sortering fallande.', + activateAscending: 'Aktivera för sortering stigande.' + }, + sortBy: 'Sortera efter' + }, + dataFooter: { + itemsPerPageText: 'Objekt per sida:', + itemsPerPageAll: 'Alla', + nextPage: 'Nästa sida', + prevPage: 'Föregående sida', + firstPage: 'Första sidan', + lastPage: 'Sista sidan', + pageText: '{0}-{1} av {2}' + }, + datePicker: { + itemsSelected: '{0} markerade', + nextMonthAriaLabel: 'Nästa månad', + nextYearAriaLabel: 'Nästa år', + prevMonthAriaLabel: 'Förra månaden', + prevYearAriaLabel: 'Förra året' + }, + noDataText: 'Ingen data tillgänglig', + carousel: { + prev: 'Föregående vy', + next: 'Nästa vy', + ariaLabel: { + delimiter: 'Carousel slide {0} of {1}' + } + }, + calendar: { + moreEvents: '{0} fler' + }, + fileInput: { + counter: '{0} filer', + counterSize: '{0} filer (av {1} totalt)' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Pagination Navigation', + next: 'Nästa sida', + previous: 'Föregående sida', + page: 'Gå till sidan {0}', + currentPage: 'Aktuell sida, sida {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/th.ts": +/*!**************************!*\ + !*** ./src/locale/th.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'สัญลักษณ์', + close: 'ปิด', + dataIterator: { + noResultsText: 'ไม่พบข้อมูลที่ค้นหา', + loadingText: 'กำลังโหลดข้อมูล...' + }, + dataTable: { + itemsPerPageText: 'แถวต่อหน้า:', + ariaLabel: { + sortDescending: 'เรียงจากมากไปน้อยอยู่', + sortAscending: 'เรียงจากน้อยไปมากอยู่', + sortNone: 'ไม่ได้เรียงลำดับ', + activateNone: 'กดเพื่อปิดการเรียงลำดับ', + activateDescending: 'กดเพื่อเรียงจากมากไปน้อย', + activateAscending: 'กดเพื่อเรียงจากน้อยไปมาก' + }, + sortBy: 'เรียงตาม' + }, + dataFooter: { + itemsPerPageText: 'รายการต่อหน้า:', + itemsPerPageAll: 'ทั้งหมด', + nextPage: 'หน้าต่อไป', + prevPage: 'หน้าที่แล้ว', + firstPage: 'หน้าแรก', + lastPage: 'หน้าสุดท้าย', + pageText: '{0}-{1} จาก {2}' + }, + datePicker: { + itemsSelected: 'เลือก {0} วัน', + nextMonthAriaLabel: 'เดือนถัดไป', + nextYearAriaLabel: 'ปีถัดไป', + prevMonthAriaLabel: 'เดือนก่อนหน้า', + prevYearAriaLabel: 'ปีก่อนหน้า' + }, + noDataText: 'ไม่มีข้อมูล', + carousel: { + prev: 'ภาพก่อนหน้า', + next: 'ภาพถัดไป', + ariaLabel: { + delimiter: 'ภาพสไลด์ที่ {0} จาก {1}' + } + }, + calendar: { + moreEvents: 'มีอีก {0}' + }, + fileInput: { + counter: '{0} ไฟล์', + counterSize: '{0} ไฟล์ (รวม {1})' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'การนำทางไปยังหน้า', + next: 'หน้าต่อไป', + previous: 'หน้าที่แล้ว', + page: 'ไปที่หน้า {0}', + currentPage: 'หน้าปัจจุบัน (หน้า {0})' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/tr.ts": +/*!**************************!*\ + !*** ./src/locale/tr.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'rozet', + close: 'Kapat', + dataIterator: { + noResultsText: 'Eşleşen veri bulunamadı', + loadingText: 'Yükleniyor... Lütfen bekleyin.' + }, + dataTable: { + itemsPerPageText: 'Sayfa başına satır:', + ariaLabel: { + sortDescending: 'Z den A ya sıralı.', + sortAscending: 'A dan Z ye sıralı.', + sortNone: 'Sıralı değil. ', + activateNone: 'Sıralamayı kaldırmak için etkinleştir.', + activateDescending: 'Z den A ya sıralamak için etkinleştir.', + activateAscending: 'A dan Z ye sıralamak için etkinleştir.' + }, + sortBy: 'Sırala' + }, + dataFooter: { + itemsPerPageText: 'Sayfa başına satır:', + itemsPerPageAll: 'Hepsi', + nextPage: 'Sonraki sayfa', + prevPage: 'Önceki sayfa', + firstPage: 'İlk sayfa', + lastPage: 'Son sayfa', + pageText: '{0} - {1} arası, Toplam: {2} kayıt' + }, + datePicker: { + itemsSelected: '{0} öge seçildi', + nextMonthAriaLabel: 'Gelecek ay', + nextYearAriaLabel: 'Gelecek yıl', + prevMonthAriaLabel: 'Geçtiğimiz ay', + prevYearAriaLabel: 'Geçen yıl' + }, + noDataText: 'Bu görünümde veri yok.', + carousel: { + prev: 'Önceki görsel', + next: 'Sonraki görsel', + ariaLabel: { + delimiter: 'Galeri sayfa {0} / {1}' + } + }, + calendar: { + moreEvents: '{0} tane daha' + }, + fileInput: { + counter: '{0} dosya', + counterSize: '{0} dosya (toplamda {1})' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Sayfalandırma Navigasyonu', + next: 'Sonraki sayfa', + previous: 'Önceki sayfa', + page: 'Sayfaya git {0}', + currentPage: 'Geçerli Sayfa, Sayfa {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/uk.ts": +/*!**************************!*\ + !*** ./src/locale/uk.ts ***! + \**************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: 'Знак', + close: 'Закрити', + dataIterator: { + noResultsText: 'В результаті пошуку нічого не знайдено', + loadingText: 'Завантаження...' + }, + dataTable: { + itemsPerPageText: 'Рядків на сторінці:', + ariaLabel: { + sortDescending: 'Відсортовано за спаданням.', + sortAscending: 'Відсортовано за зростанням.', + sortNone: 'Не відсортовано.', + activateNone: 'Активувати, щоб видалити сортування.', + activateDescending: 'Активувати, щоб відсортувати за спаданням.', + activateAscending: 'Активувати, щоб відсортувати за зростанням.' + }, + sortBy: 'Відсортувати за' + }, + dataFooter: { + itemsPerPageText: 'Елементів на сторінці:', + itemsPerPageAll: 'Всі', + nextPage: 'Наступна сторінка', + prevPage: 'Попередня сторінка', + firstPage: 'Перша сторінка', + lastPage: 'Остання сторінка', + pageText: '{0}-{1} з {2}' + }, + datePicker: { + itemsSelected: '{0} вибрано', + nextMonthAriaLabel: 'Наступного місяця', + nextYearAriaLabel: 'Наступного року', + prevMonthAriaLabel: 'Попередній місяць', + prevYearAriaLabel: 'Попередній рік' + }, + noDataText: 'Немає даних для відображення', + carousel: { + prev: 'Попередній слайд', + next: 'Наступий слайд', + ariaLabel: { + delimiter: 'Слайд {0} з {1}' + } + }, + calendar: { + moreEvents: 'Ще {0}' + }, + fileInput: { + counter: '{0} файлів', + counterSize: '{0} файлів ({1} загалом)' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: 'Навігація по сторінках', + next: 'Наступна сторінка', + previous: 'Попередня сторінка', + page: 'Перейти на сторінку {0}', + currentPage: 'Поточна сторінка, Сторінка {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/zh-Hans.ts": +/*!*******************************!*\ + !*** ./src/locale/zh-Hans.ts ***! + \*******************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: '徽章', + close: '关闭', + dataIterator: { + noResultsText: '没有符合条件的结果', + loadingText: '加载中……' + }, + dataTable: { + itemsPerPageText: '每页数目:', + ariaLabel: { + sortDescending: ':降序排列。', + sortAscending: ':升序排列。', + sortNone: ':未排序。', + activateNone: '点击以移除排序。', + activateDescending: '点击以降序排列。', + activateAscending: '点击以升序排列。' + }, + sortBy: '排序方式' + }, + dataFooter: { + itemsPerPageText: '每页数目:', + itemsPerPageAll: '全部', + nextPage: '下一页', + prevPage: '上一页', + firstPage: '首页', + lastPage: '尾页', + pageText: '{0}-{1} 共 {2}' + }, + datePicker: { + itemsSelected: '已选择 {0}', + nextMonthAriaLabel: '下个月', + nextYearAriaLabel: '明年', + prevMonthAriaLabel: '前一个月', + prevYearAriaLabel: '前一年' + }, + noDataText: '没有数据', + carousel: { + prev: '上一张', + next: '下一张', + ariaLabel: { + delimiter: 'Carousel slide {0} of {1}' + } + }, + calendar: { + moreEvents: '还有 {0} 项' + }, + fileInput: { + counter: '{0} 个文件', + counterSize: '{0} 个文件(共 {1})' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: '分页导航', + next: '下一页', + previous: '上一页', + page: '转到页面 {0}', + currentPage: '当前页 {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/locale/zh-Hant.ts": +/*!*******************************!*\ + !*** ./src/locale/zh-Hant.ts ***! + \*******************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ({ + badge: '徽章', + close: '關閉', + dataIterator: { + noResultsText: '沒有符合條件的結果', + loadingText: '讀取中...' + }, + dataTable: { + itemsPerPageText: '每頁列數:', + ariaLabel: { + sortDescending: ':降序排列。', + sortAscending: ':升序排列。', + sortNone: '無排序方式。點擊以升序排列。', + activateNone: '點擊以移除排序方式。', + activateDescending: '點擊以降序排列。', + activateAscending: '點擊以移除排序方式。' + }, + sortBy: '排序方式' + }, + dataFooter: { + itemsPerPageText: '每頁項目:', + itemsPerPageAll: '全部', + nextPage: '下一頁', + prevPage: '上一頁', + firstPage: '第一頁', + lastPage: '最後頁', + pageText: '{2} 條中的 {0}~{1} 條' + }, + datePicker: { + itemsSelected: '已選擇 {0}', + nextMonthAriaLabel: '下個月', + nextYearAriaLabel: '明年', + prevMonthAriaLabel: '前一個月', + prevYearAriaLabel: '前一年' + }, + noDataText: '沒有資料', + carousel: { + prev: '上一張', + next: '下一張', + ariaLabel: { + delimiter: 'Carousel slide {0} of {1}' + } + }, + calendar: { + moreEvents: '還有其他 {0} 項' + }, + fileInput: { + counter: '{0} 個檔案', + counterSize: '{0} 個檔案(共 {1})' + }, + timePicker: { + am: 'AM', + pm: 'PM' + }, + pagination: { + ariaLabel: { + wrapper: '分頁導航', + next: '下一頁', + previous: '上一頁', + page: '轉到頁面 {0}', + currentPage: '當前頁 {0}' + } + }, + rating: { + ariaLabel: { + icon: 'Rating {0} of {1}' + } + } +}); + +/***/ }), + +/***/ "./src/mixins/activatable/index.ts": +/*!*****************************************!*\ + !*** ./src/mixins/activatable/index.ts ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _delayable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../delayable */ "./src/mixins/delayable/index.ts"); +/* harmony import */ var _toggleable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toggleable */ "./src/mixins/toggleable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +var __values = undefined && undefined.__values || function (o) { + var s = typeof Symbol === "function" && Symbol.iterator, + m = s && o[s], + i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function next() { + if (o && i >= o.length) o = void 0; + return { + value: o && o[i++], + done: !o + }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); +}; // Mixins + + + + // Utilities + + + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_2__["default"])(_delayable__WEBPACK_IMPORTED_MODULE_0__["default"], _toggleable__WEBPACK_IMPORTED_MODULE_1__["default"]); +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend({ + name: 'activatable', + props: { + activator: { + default: null, + validator: function validator(val) { + return ['string', 'object'].includes(_typeof(val)); + } + }, + disabled: Boolean, + internalActivator: Boolean, + openOnHover: Boolean, + openOnFocus: Boolean + }, + data: function data() { + return { + // Do not use this directly, call getActivator() instead + activatorElement: null, + activatorNode: [], + events: ['click', 'mouseenter', 'mouseleave', 'focus'], + listeners: {} + }; + }, + watch: { + activator: 'resetActivator', + openOnFocus: 'resetActivator', + openOnHover: 'resetActivator' + }, + mounted: function mounted() { + var slotType = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["getSlotType"])(this, 'activator', true); + + if (slotType && ['v-slot', 'normal'].includes(slotType)) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_4__["consoleError"])("The activator slot must be bound, try '<template v-slot:activator=\"{ on }\"><v-btn v-on=\"on\">'", this); + } + + this.addActivatorEvents(); + }, + beforeDestroy: function beforeDestroy() { + this.removeActivatorEvents(); + }, + methods: { + addActivatorEvents: function addActivatorEvents() { + var e_1, _a; + + if (!this.activator || this.disabled || !this.getActivator()) return; + this.listeners = this.genActivatorListeners(); + var keys = Object.keys(this.listeners); + + try { + for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) { + var key = keys_1_1.value; + this.getActivator().addEventListener(key, this.listeners[key]); + } + } catch (e_1_1) { + e_1 = { + error: e_1_1 + }; + } finally { + try { + if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1); + } finally { + if (e_1) throw e_1.error; + } + } + }, + genActivator: function genActivator() { + var node = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["getSlot"])(this, 'activator', Object.assign(this.getValueProxy(), { + on: this.genActivatorListeners(), + attrs: this.genActivatorAttributes() + })) || []; + this.activatorNode = node; + return node; + }, + genActivatorAttributes: function genActivatorAttributes() { + return { + role: 'button', + 'aria-haspopup': true, + 'aria-expanded': String(this.isActive) + }; + }, + genActivatorListeners: function genActivatorListeners() { + var _this = this; + + if (this.disabled) return {}; + var listeners = {}; + + if (this.openOnHover) { + listeners.mouseenter = function (e) { + _this.getActivator(e); + + _this.runDelay('open'); + }; + + listeners.mouseleave = function (e) { + _this.getActivator(e); + + _this.runDelay('close'); + }; + } else { + listeners.click = function (e) { + var activator = _this.getActivator(e); + + if (activator) activator.focus(); + e.stopPropagation(); + _this.isActive = !_this.isActive; + }; + } + + if (this.openOnFocus) { + listeners.focus = function (e) { + _this.getActivator(e); + + e.stopPropagation(); + _this.isActive = !_this.isActive; + }; + } + + return listeners; + }, + getActivator: function getActivator(e) { + // If we've already fetched the activator, re-use + if (this.activatorElement) return this.activatorElement; + var activator = null; + + if (this.activator) { + var target = this.internalActivator ? this.$el : document; + + if (typeof this.activator === 'string') { + // Selector + activator = target.querySelector(this.activator); + } else if (this.activator.$el) { + // Component (ref) + activator = this.activator.$el; + } else { + // HTMLElement | Element + activator = this.activator; + } + } else if (this.activatorNode.length === 1 || this.activatorNode.length && !e) { + // Use the contents of the activator slot + // There's either only one element in it or we + // don't have a click event to use as a last resort + var vm = this.activatorNode[0].componentInstance; + + if (vm && vm.$options.mixins && // Activatable is indirectly used via Menuable + vm.$options.mixins.some(function (m) { + return m.options && ['activatable', 'menuable'].includes(m.options.name); + })) { + // Activator is actually another activatible component, use its activator (#8846) + activator = vm.getActivator(); + } else { + activator = this.activatorNode[0].elm; + } + } else if (e) { + // Activated by a click or focus event + activator = e.currentTarget || e.target; + } + + this.activatorElement = activator; + return this.activatorElement; + }, + getContentSlot: function getContentSlot() { + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["getSlot"])(this, 'default', this.getValueProxy(), true); + }, + getValueProxy: function getValueProxy() { + var self = this; + return { + get value() { + return self.isActive; + }, + + set value(isActive) { + self.isActive = isActive; + } + + }; + }, + removeActivatorEvents: function removeActivatorEvents() { + var e_2, _a; + + if (!this.activator || !this.activatorElement) return; + var keys = Object.keys(this.listeners); + + try { + for (var keys_2 = __values(keys), keys_2_1 = keys_2.next(); !keys_2_1.done; keys_2_1 = keys_2.next()) { + var key = keys_2_1.value; + this.activatorElement.removeEventListener(key, this.listeners[key]); + } + } catch (e_2_1) { + e_2 = { + error: e_2_1 + }; + } finally { + try { + if (keys_2_1 && !keys_2_1.done && (_a = keys_2.return)) _a.call(keys_2); + } finally { + if (e_2) throw e_2.error; + } + } + + this.listeners = {}; + }, + resetActivator: function resetActivator() { + this.removeActivatorEvents(); + this.activatorElement = null; + this.getActivator(); + this.addActivatorEvents(); + } + } +})); + +/***/ }), + +/***/ "./src/mixins/applicationable/index.ts": +/*!*********************************************!*\ + !*** ./src/mixins/applicationable/index.ts ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return applicationable; }); +/* harmony import */ var _positionable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../positionable */ "./src/mixins/positionable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); + // Util + + +function applicationable(value, events) { + if (events === void 0) { + events = []; + } + /* @vue/component */ + + + return Object(_util_mixins__WEBPACK_IMPORTED_MODULE_1__["default"])(Object(_positionable__WEBPACK_IMPORTED_MODULE_0__["factory"])(['absolute', 'fixed'])).extend({ + name: 'applicationable', + props: { + app: Boolean + }, + computed: { + applicationProperty: function applicationProperty() { + return value; + } + }, + watch: { + // If previous value was app + // reset the provided prop + app: function app(x, prev) { + prev ? this.removeApplication(true) : this.callUpdate(); + }, + applicationProperty: function applicationProperty(newVal, oldVal) { + this.$vuetify.application.unregister(this._uid, oldVal); + } + }, + activated: function activated() { + this.callUpdate(); + }, + created: function created() { + for (var i = 0, length = events.length; i < length; i++) { + this.$watch(events[i], this.callUpdate); + } + + this.callUpdate(); + }, + mounted: function mounted() { + this.callUpdate(); + }, + deactivated: function deactivated() { + this.removeApplication(); + }, + destroyed: function destroyed() { + this.removeApplication(); + }, + methods: { + callUpdate: function callUpdate() { + if (!this.app) return; + this.$vuetify.application.register(this._uid, this.applicationProperty, this.updateApplication()); + }, + removeApplication: function removeApplication(force) { + if (force === void 0) { + force = false; + } + + if (!force && !this.app) return; + this.$vuetify.application.unregister(this._uid, this.applicationProperty); + }, + updateApplication: function updateApplication() { + return 0; + } + } + }); +} + +/***/ }), + +/***/ "./src/mixins/binds-attrs/index.ts": +/*!*****************************************!*\ + !*** ./src/mixins/binds-attrs/index.ts ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); + +/** + * This mixin provides `attrs$` and `listeners$` to work around + * vue bug https://github.com/vuejs/vue/issues/10115 + */ + +function makeWatcher(property) { + return function (val, oldVal) { + for (var attr in oldVal) { + if (!Object.prototype.hasOwnProperty.call(val, attr)) { + this.$delete(this.$data[property], attr); + } + } + + for (var attr in val) { + this.$set(this.$data[property], attr, val[attr]); + } + }; +} + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + data: function data() { + return { + attrs$: {}, + listeners$: {} + }; + }, + created: function created() { + // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115 + // Make sure to use `attrs$` instead of `$attrs` (confusing right?) + this.$watch('$attrs', makeWatcher('attrs$'), { + immediate: true + }); + this.$watch('$listeners', makeWatcher('listeners$'), { + immediate: true + }); + } +})); + +/***/ }), + +/***/ "./src/mixins/bootable/index.ts": +/*!**************************************!*\ + !*** ./src/mixins/bootable/index.ts ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_1__); +// Utilities + // Types + + +/** + * Bootable + * @mixin + * + * Used to add lazy content functionality to components + * Looks for change in "isActive" to automatically boot + * Otherwise can be set manually + */ + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_1___default.a.extend().extend({ + name: 'bootable', + props: { + eager: Boolean + }, + data: function data() { + return { + isBooted: false + }; + }, + computed: { + hasContent: function hasContent() { + return this.isBooted || this.eager || this.isActive; + } + }, + watch: { + isActive: function isActive() { + this.isBooted = true; + } + }, + created: function created() { + /* istanbul ignore next */ + if ('lazy' in this.$attrs) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_0__["removed"])('lazy', this); + } + }, + methods: { + showLazyContent: function showLazyContent(content) { + return this.hasContent && content ? content() : [this.$createElement()]; + } + } +})); + +/***/ }), + +/***/ "./src/mixins/button-group/index.ts": +/*!******************************************!*\ + !*** ./src/mixins/button-group/index.ts ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _components_VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../components/VItemGroup/VItemGroup */ "./src/components/VItemGroup/VItemGroup.ts"); +// Extensions + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (_components_VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_0__["BaseItemGroup"].extend({ + name: 'button-group', + provide: function provide() { + return { + btnToggle: this + }; + }, + computed: { + classes: function classes() { + return _components_VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_0__["BaseItemGroup"].options.computed.classes.call(this); + } + }, + methods: { + // Isn't being passed down through types + genData: _components_VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_0__["BaseItemGroup"].options.methods.genData + } +})); + +/***/ }), + +/***/ "./src/mixins/colorable/index.ts": +/*!***************************************!*\ + !*** ./src/mixins/colorable/index.ts ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +/* harmony import */ var _util_colorUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/colorUtils */ "./src/util/colorUtils.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + + + + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: 'colorable', + props: { + color: String + }, + methods: { + setBackgroundColor: function setBackgroundColor(color, data) { + var _a; + + if (data === void 0) { + data = {}; + } + + if (typeof data.style === 'string') { + // istanbul ignore next + Object(_util_console__WEBPACK_IMPORTED_MODULE_1__["consoleError"])('style must be an object', this); // istanbul ignore next + + return data; + } + + if (typeof data.class === 'string') { + // istanbul ignore next + Object(_util_console__WEBPACK_IMPORTED_MODULE_1__["consoleError"])('class must be an object', this); // istanbul ignore next + + return data; + } + + if (Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_2__["isCssColor"])(color)) { + data.style = __assign(__assign({}, data.style), { + 'background-color': "" + color, + 'border-color': "" + color + }); + } else if (color) { + data.class = __assign(__assign({}, data.class), (_a = {}, _a[color] = true, _a)); + } + + return data; + }, + setTextColor: function setTextColor(color, data) { + var _a; + + if (data === void 0) { + data = {}; + } + + if (typeof data.style === 'string') { + // istanbul ignore next + Object(_util_console__WEBPACK_IMPORTED_MODULE_1__["consoleError"])('style must be an object', this); // istanbul ignore next + + return data; + } + + if (typeof data.class === 'string') { + // istanbul ignore next + Object(_util_console__WEBPACK_IMPORTED_MODULE_1__["consoleError"])('class must be an object', this); // istanbul ignore next + + return data; + } + + if (Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_2__["isCssColor"])(color)) { + data.style = __assign(__assign({}, data.style), { + color: "" + color, + 'caret-color': "" + color + }); + } else if (color) { + var _b = __read(color.toString().trim().split(' ', 2), 2), + colorName = _b[0], + colorModifier = _b[1]; + + data.class = __assign(__assign({}, data.class), (_a = {}, _a[colorName + '--text'] = true, _a)); + + if (colorModifier) { + data.class['text--' + colorModifier] = true; + } + } + + return data; + } + } +})); + +/***/ }), + +/***/ "./src/mixins/comparable/index.ts": +/*!****************************************!*\ + !*** ./src/mixins/comparable/index.ts ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); + + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: 'comparable', + props: { + valueComparator: { + type: Function, + default: _util_helpers__WEBPACK_IMPORTED_MODULE_1__["deepEqual"] + } + } +})); + +/***/ }), + +/***/ "./src/mixins/delayable/index.ts": +/*!***************************************!*\ + !*** ./src/mixins/delayable/index.ts ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); + +/** + * Delayable + * + * @mixin + * + * Changes the open or close delay time for elements + */ + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend().extend({ + name: 'delayable', + props: { + openDelay: { + type: [Number, String], + default: 0 + }, + closeDelay: { + type: [Number, String], + default: 0 + } + }, + data: function data() { + return { + openTimeout: undefined, + closeTimeout: undefined + }; + }, + methods: { + /** + * Clear any pending delay timers from executing + */ + clearDelay: function clearDelay() { + clearTimeout(this.openTimeout); + clearTimeout(this.closeTimeout); + }, + + /** + * Runs callback after a specified delay + */ + runDelay: function runDelay(type, cb) { + var _this = this; + + this.clearDelay(); + var delay = parseInt(this[type + "Delay"], 10); + this[type + "Timeout"] = setTimeout(cb || function () { + _this.isActive = { + open: true, + close: false + }[type]; + }, delay); + } + } +})); + +/***/ }), + +/***/ "./src/mixins/dependent/index.ts": +/*!***************************************!*\ + !*** ./src/mixins/dependent/index.ts ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + +var __spread = undefined && undefined.__spread || function () { + for (var ar = [], i = 0; i < arguments.length; i++) { + ar = ar.concat(__read(arguments[i])); + } + + return ar; +}; + + + +function searchChildren(children) { + var results = []; + + for (var index = 0; index < children.length; index++) { + var child = children[index]; + + if (child.isActive && child.isDependent) { + results.push(child); + } else { + results.push.apply(results, __spread(searchChildren(child.$children))); + } + } + + return results; +} +/* @vue/component */ + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_0__["default"])().extend({ + name: 'dependent', + data: function data() { + return { + closeDependents: true, + isActive: false, + isDependent: true + }; + }, + watch: { + isActive: function isActive(val) { + if (val) return; + var openDependents = this.getOpenDependents(); + + for (var index = 0; index < openDependents.length; index++) { + openDependents[index].isActive = false; + } + } + }, + methods: { + getOpenDependents: function getOpenDependents() { + if (this.closeDependents) return searchChildren(this.$children); + return []; + }, + getOpenDependentElements: function getOpenDependentElements() { + var result = []; + var openDependents = this.getOpenDependents(); + + for (var index = 0; index < openDependents.length; index++) { + result.push.apply(result, __spread(openDependents[index].getClickableDependentElements())); + } + + return result; + }, + getClickableDependentElements: function getClickableDependentElements() { + var result = [this.$el]; + if (this.$refs.content) result.push(this.$refs.content); + if (this.overlay) result.push(this.overlay.$el); + result.push.apply(result, __spread(this.getOpenDependentElements())); + return result; + } + } +})); + +/***/ }), + +/***/ "./src/mixins/detachable/index.ts": +/*!****************************************!*\ + !*** ./src/mixins/detachable/index.ts ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _bootable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../bootable */ "./src/mixins/bootable/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +// Mixins + // Utilities + + + + + +function validateAttachTarget(val) { + var type = _typeof(val); + + if (type === 'boolean' || type === 'string') return true; + return val.nodeType === Node.ELEMENT_NODE; +} +/* @vue/component */ + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_2__["default"])(_bootable__WEBPACK_IMPORTED_MODULE_0__["default"]).extend({ + name: 'detachable', + props: { + attach: { + default: false, + validator: validateAttachTarget + }, + contentClass: { + type: String, + default: '' + } + }, + data: function data() { + return { + activatorNode: null, + hasDetached: false + }; + }, + watch: { + attach: function attach() { + this.hasDetached = false; + this.initDetach(); + }, + hasContent: function hasContent() { + this.$nextTick(this.initDetach); + } + }, + beforeMount: function beforeMount() { + var _this = this; + + this.$nextTick(function () { + if (_this.activatorNode) { + var activator = Array.isArray(_this.activatorNode) ? _this.activatorNode : [_this.activatorNode]; + activator.forEach(function (node) { + if (!node.elm) return; + if (!_this.$el.parentNode) return; + var target = _this.$el === _this.$el.parentNode.firstChild ? _this.$el : _this.$el.nextSibling; + + _this.$el.parentNode.insertBefore(node.elm, target); + }); + } + }); + }, + mounted: function mounted() { + this.hasContent && this.initDetach(); + }, + deactivated: function deactivated() { + this.isActive = false; + }, + beforeDestroy: function beforeDestroy() { + // IE11 Fix + try { + if (this.$refs.content && this.$refs.content.parentNode) { + this.$refs.content.parentNode.removeChild(this.$refs.content); + } + + if (this.activatorNode) { + var activator = Array.isArray(this.activatorNode) ? this.activatorNode : [this.activatorNode]; + activator.forEach(function (node) { + node.elm && node.elm.parentNode && node.elm.parentNode.removeChild(node.elm); + }); + } + } catch (e) { + console.log(e); + } + }, + methods: { + getScopeIdAttrs: function getScopeIdAttrs() { + var _a; + + var scopeId = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["getObjectValueByPath"])(this.$vnode, 'context.$options._scopeId'); + return scopeId && (_a = {}, _a[scopeId] = '', _a); + }, + initDetach: function initDetach() { + if (this._isDestroyed || !this.$refs.content || this.hasDetached || // Leave menu in place if attached + // and dev has not changed target + this.attach === '' || // If used as a boolean prop (<v-menu attach>) + this.attach === true || // If bound to a boolean (<v-menu :attach="true">) + this.attach === 'attach' // If bound as boolean prop in pug (v-menu(attach)) + ) return; + var target; + + if (this.attach === false) { + // Default, detach to app + target = document.querySelector('[data-app]'); + } else if (typeof this.attach === 'string') { + // CSS selector + target = document.querySelector(this.attach); + } else { + // DOM Element + target = this.attach; + } + + if (!target) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_3__["consoleWarn"])("Unable to locate target " + (this.attach || '[data-app]'), this); + return; + } + + target.appendChild(this.$refs.content); + this.hasDetached = true; + } + } +})); + +/***/ }), + +/***/ "./src/mixins/elevatable/index.ts": +/*!****************************************!*\ + !*** ./src/mixins/elevatable/index.ts ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: 'elevatable', + props: { + elevation: [Number, String] + }, + computed: { + computedElevation: function computedElevation() { + return this.elevation; + }, + elevationClasses: function elevationClasses() { + var _a; + + var elevation = this.computedElevation; + if (elevation == null) return {}; + if (isNaN(parseInt(elevation))) return {}; + return _a = {}, _a["elevation-" + this.elevation] = true, _a; + } + } +})); + +/***/ }), + +/***/ "./src/mixins/filterable/index.ts": +/*!****************************************!*\ + !*** ./src/mixins/filterable/index.ts ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: 'filterable', + props: { + noDataText: { + type: String, + default: '$vuetify.noDataText' + } + } +})); + +/***/ }), + +/***/ "./src/mixins/groupable/index.ts": +/*!***************************************!*\ + !*** ./src/mixins/groupable/index.ts ***! + \***************************************/ +/*! exports provided: factory, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "factory", function() { return factory; }); +/* harmony import */ var _registrable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../registrable */ "./src/mixins/registrable/index.ts"); +// Mixins + +function factory(namespace, child, parent) { + return Object(_registrable__WEBPACK_IMPORTED_MODULE_0__["inject"])(namespace, child, parent).extend({ + name: 'groupable', + props: { + activeClass: { + type: String, + default: function _default() { + if (!this[namespace]) return undefined; + return this[namespace].activeClass; + } + }, + disabled: Boolean + }, + data: function data() { + return { + isActive: false + }; + }, + computed: { + groupClasses: function groupClasses() { + var _a; + + if (!this.activeClass) return {}; + return _a = {}, _a[this.activeClass] = this.isActive, _a; + } + }, + created: function created() { + this[namespace] && this[namespace].register(this); + }, + beforeDestroy: function beforeDestroy() { + this[namespace] && this[namespace].unregister(this); + }, + methods: { + toggle: function toggle() { + this.$emit('change'); + } + } + }); +} +/* eslint-disable-next-line @typescript-eslint/no-redeclare */ + +var Groupable = factory('itemGroup'); +/* harmony default export */ __webpack_exports__["default"] = (Groupable); + +/***/ }), + +/***/ "./src/mixins/intersectable/index.ts": +/*!*******************************************!*\ + !*** ./src/mixins/intersectable/index.ts ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return intersectable; }); +/* harmony import */ var _directives_intersect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../directives/intersect */ "./src/directives/intersect/index.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_2__); +// Directives + // Utilities + + // Types + + +function intersectable(options) { + if (typeof window === 'undefined' || !('IntersectionObserver' in window)) { + // do nothing because intersection observer is not available + return vue__WEBPACK_IMPORTED_MODULE_2___default.a.extend({ + name: 'intersectable' + }); + } + + return vue__WEBPACK_IMPORTED_MODULE_2___default.a.extend({ + name: 'intersectable', + mounted: function mounted() { + _directives_intersect__WEBPACK_IMPORTED_MODULE_0__["default"].inserted(this.$el, { + name: 'intersect', + value: this.onObserve + }); + }, + destroyed: function destroyed() { + _directives_intersect__WEBPACK_IMPORTED_MODULE_0__["default"].unbind(this.$el); + }, + methods: { + onObserve: function onObserve(entries, observer, isIntersecting) { + if (!isIntersecting) return; + + for (var i = 0, length = options.onVisible.length; i < length; i++) { + var callback = this[options.onVisible[i]]; + + if (typeof callback === 'function') { + callback(); + continue; + } + + Object(_util_console__WEBPACK_IMPORTED_MODULE_1__["consoleWarn"])(options.onVisible[i] + ' method is not available on the instance but referenced in intersectable mixin options'); + } + } + } + }); +} + +/***/ }), + +/***/ "./src/mixins/loadable/index.ts": +/*!**************************************!*\ + !*** ./src/mixins/loadable/index.ts ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _components_VProgressLinear__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../components/VProgressLinear */ "./src/components/VProgressLinear/index.ts"); + + +/** + * Loadable + * + * @mixin + * + * Used to add linear progress bar to components + * Can use a default bar with a specific color + * or designate a custom progress linear bar + */ + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend().extend({ + name: 'loadable', + props: { + loading: { + type: [Boolean, String], + default: false + }, + loaderHeight: { + type: [Number, String], + default: 2 + } + }, + methods: { + genProgress: function genProgress() { + if (this.loading === false) return null; + return this.$slots.progress || this.$createElement(_components_VProgressLinear__WEBPACK_IMPORTED_MODULE_1__["default"], { + props: { + absolute: true, + color: this.loading === true || this.loading === '' ? this.color || 'primary' : this.loading, + height: this.loaderHeight, + indeterminate: true + } + }); + } + } +})); + +/***/ }), + +/***/ "./src/mixins/localable/index.ts": +/*!***************************************!*\ + !*** ./src/mixins/localable/index.ts ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: 'localable', + props: { + locale: String + }, + computed: { + currentLocale: function currentLocale() { + return this.locale || this.$vuetify.lang.current; + } + } +})); + +/***/ }), + +/***/ "./src/mixins/measurable/index.ts": +/*!****************************************!*\ + !*** ./src/mixins/measurable/index.ts ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_1__); +// Helpers + // Types + + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_1___default.a.extend({ + name: 'measurable', + props: { + height: [Number, String], + maxHeight: [Number, String], + maxWidth: [Number, String], + minHeight: [Number, String], + minWidth: [Number, String], + width: [Number, String] + }, + computed: { + measurableStyles: function measurableStyles() { + var styles = {}; + var height = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["convertToUnit"])(this.height); + var minHeight = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["convertToUnit"])(this.minHeight); + var minWidth = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["convertToUnit"])(this.minWidth); + var maxHeight = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["convertToUnit"])(this.maxHeight); + var maxWidth = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["convertToUnit"])(this.maxWidth); + var width = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["convertToUnit"])(this.width); + if (height) styles.height = height; + if (minHeight) styles.minHeight = minHeight; + if (minWidth) styles.minWidth = minWidth; + if (maxHeight) styles.maxHeight = maxHeight; + if (maxWidth) styles.maxWidth = maxWidth; + if (width) styles.width = width; + return styles; + } + } +})); + +/***/ }), + +/***/ "./src/mixins/menuable/index.ts": +/*!**************************************!*\ + !*** ./src/mixins/menuable/index.ts ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _positionable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../positionable */ "./src/mixins/positionable/index.ts"); +/* harmony import */ var _stackable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../stackable */ "./src/mixins/stackable/index.ts"); +/* harmony import */ var _activatable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../activatable */ "./src/mixins/activatable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Mixins + + + + + // Utilities + + + // Types + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_3__["default"])(_stackable__WEBPACK_IMPORTED_MODULE_1__["default"], _positionable__WEBPACK_IMPORTED_MODULE_0__["default"], _activatable__WEBPACK_IMPORTED_MODULE_2__["default"]); +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend().extend({ + name: 'menuable', + props: { + allowOverflow: Boolean, + light: Boolean, + dark: Boolean, + maxWidth: { + type: [Number, String], + default: 'auto' + }, + minWidth: [Number, String], + nudgeBottom: { + type: [Number, String], + default: 0 + }, + nudgeLeft: { + type: [Number, String], + default: 0 + }, + nudgeRight: { + type: [Number, String], + default: 0 + }, + nudgeTop: { + type: [Number, String], + default: 0 + }, + nudgeWidth: { + type: [Number, String], + default: 0 + }, + offsetOverflow: Boolean, + openOnClick: Boolean, + positionX: { + type: Number, + default: null + }, + positionY: { + type: Number, + default: null + }, + zIndex: { + type: [Number, String], + default: null + } + }, + data: function data() { + return { + absoluteX: 0, + absoluteY: 0, + activatedBy: null, + activatorFixed: false, + dimensions: { + activator: { + top: 0, + left: 0, + bottom: 0, + right: 0, + width: 0, + height: 0, + offsetTop: 0, + scrollHeight: 0, + offsetLeft: 0 + }, + content: { + top: 0, + left: 0, + bottom: 0, + right: 0, + width: 0, + height: 0, + offsetTop: 0, + scrollHeight: 0 + } + }, + hasJustFocused: false, + hasWindow: false, + inputActivator: false, + isContentActive: false, + pageWidth: 0, + pageYOffset: 0, + stackClass: 'v-menu__content--active', + stackMinZIndex: 6 + }; + }, + computed: { + computedLeft: function computedLeft() { + var a = this.dimensions.activator; + var c = this.dimensions.content; + var activatorLeft = (this.attach !== false ? a.offsetLeft : a.left) || 0; + var minWidth = Math.max(a.width, c.width); + var left = 0; + left += this.left ? activatorLeft - (minWidth - a.width) : activatorLeft; + + if (this.offsetX) { + var maxWidth = isNaN(Number(this.maxWidth)) ? a.width : Math.min(a.width, Number(this.maxWidth)); + left += this.left ? -maxWidth : a.width; + } + + if (this.nudgeLeft) left -= parseInt(this.nudgeLeft); + if (this.nudgeRight) left += parseInt(this.nudgeRight); + return left; + }, + computedTop: function computedTop() { + var a = this.dimensions.activator; + var c = this.dimensions.content; + var top = 0; + if (this.top) top += a.height - c.height; + if (this.attach !== false) top += a.offsetTop;else top += a.top + this.pageYOffset; + if (this.offsetY) top += this.top ? -a.height : a.height; + if (this.nudgeTop) top -= parseInt(this.nudgeTop); + if (this.nudgeBottom) top += parseInt(this.nudgeBottom); + return top; + }, + hasActivator: function hasActivator() { + return !!this.$slots.activator || !!this.$scopedSlots.activator || !!this.activator || !!this.inputActivator; + } + }, + watch: { + disabled: function disabled(val) { + val && this.callDeactivate(); + }, + isActive: function isActive(val) { + if (this.disabled) return; + val ? this.callActivate() : this.callDeactivate(); + }, + positionX: 'updateDimensions', + positionY: 'updateDimensions' + }, + beforeMount: function beforeMount() { + this.hasWindow = typeof window !== 'undefined'; + }, + methods: { + absolutePosition: function absolutePosition() { + return { + offsetTop: 0, + offsetLeft: 0, + scrollHeight: 0, + top: this.positionY || this.absoluteY, + bottom: this.positionY || this.absoluteY, + left: this.positionX || this.absoluteX, + right: this.positionX || this.absoluteX, + height: 0, + width: 0 + }; + }, + activate: function activate() {}, + calcLeft: function calcLeft(menuWidth) { + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["convertToUnit"])(this.attach !== false ? this.computedLeft : this.calcXOverflow(this.computedLeft, menuWidth)); + }, + calcTop: function calcTop() { + return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_4__["convertToUnit"])(this.attach !== false ? this.computedTop : this.calcYOverflow(this.computedTop)); + }, + calcXOverflow: function calcXOverflow(left, menuWidth) { + var xOverflow = left + menuWidth - this.pageWidth + 12; + + if ((!this.left || this.right) && xOverflow > 0) { + left = Math.max(left - xOverflow, 0); + } else { + left = Math.max(left, 12); + } + + return left + this.getOffsetLeft(); + }, + calcYOverflow: function calcYOverflow(top) { + var documentHeight = this.getInnerHeight(); + var toTop = this.pageYOffset + documentHeight; + var activator = this.dimensions.activator; + var contentHeight = this.dimensions.content.height; + var totalHeight = top + contentHeight; + var isOverflowing = toTop < totalHeight; // If overflowing bottom and offset + // TODO: set 'bottom' position instead of 'top' + + if (isOverflowing && this.offsetOverflow && // If we don't have enough room to offset + // the overflow, don't offset + activator.top > contentHeight) { + top = this.pageYOffset + (activator.top - contentHeight); // If overflowing bottom + } else if (isOverflowing && !this.allowOverflow) { + top = toTop - contentHeight - 12; // If overflowing top + } else if (top < this.pageYOffset && !this.allowOverflow) { + top = this.pageYOffset + 12; + } + + return top < 12 ? 12 : top; + }, + callActivate: function callActivate() { + if (!this.hasWindow) return; + this.activate(); + }, + callDeactivate: function callDeactivate() { + this.isContentActive = false; + this.deactivate(); + }, + checkForPageYOffset: function checkForPageYOffset() { + if (this.hasWindow) { + this.pageYOffset = this.activatorFixed ? 0 : this.getOffsetTop(); + } + }, + checkActivatorFixed: function checkActivatorFixed() { + if (this.attach !== false) return; + var el = this.getActivator(); + + while (el) { + if (window.getComputedStyle(el).position === 'fixed') { + this.activatorFixed = true; + return; + } + + el = el.offsetParent; + } + + this.activatorFixed = false; + }, + deactivate: function deactivate() {}, + genActivatorListeners: function genActivatorListeners() { + var _this = this; + + var listeners = _activatable__WEBPACK_IMPORTED_MODULE_2__["default"].options.methods.genActivatorListeners.call(this); + var onClick = listeners.click; + + listeners.click = function (e) { + if (_this.openOnClick) { + onClick && onClick(e); + } + + _this.absoluteX = e.clientX; + _this.absoluteY = e.clientY; + }; + + return listeners; + }, + getInnerHeight: function getInnerHeight() { + if (!this.hasWindow) return 0; + return window.innerHeight || document.documentElement.clientHeight; + }, + getOffsetLeft: function getOffsetLeft() { + if (!this.hasWindow) return 0; + return window.pageXOffset || document.documentElement.scrollLeft; + }, + getOffsetTop: function getOffsetTop() { + if (!this.hasWindow) return 0; + return window.pageYOffset || document.documentElement.scrollTop; + }, + getRoundedBoundedClientRect: function getRoundedBoundedClientRect(el) { + var rect = el.getBoundingClientRect(); + return { + top: Math.round(rect.top), + left: Math.round(rect.left), + bottom: Math.round(rect.bottom), + right: Math.round(rect.right), + width: Math.round(rect.width), + height: Math.round(rect.height) + }; + }, + measure: function measure(el) { + if (!el || !this.hasWindow) return null; + var rect = this.getRoundedBoundedClientRect(el); // Account for activator margin + + if (this.attach !== false) { + var style = window.getComputedStyle(el); + rect.left = parseInt(style.marginLeft); + rect.top = parseInt(style.marginTop); + } + + return rect; + }, + sneakPeek: function sneakPeek(cb) { + var _this = this; + + requestAnimationFrame(function () { + var el = _this.$refs.content; + + if (!el || el.style.display !== 'none') { + cb(); + return; + } + + el.style.display = 'inline-block'; + cb(); + el.style.display = 'none'; + }); + }, + startTransition: function startTransition() { + var _this = this; + + return new Promise(function (resolve) { + return requestAnimationFrame(function () { + _this.isContentActive = _this.hasJustFocused = _this.isActive; + resolve(); + }); + }); + }, + updateDimensions: function updateDimensions() { + var _this = this; + + this.hasWindow = typeof window !== 'undefined'; + this.checkActivatorFixed(); + this.checkForPageYOffset(); + this.pageWidth = document.documentElement.clientWidth; + var dimensions = { + activator: __assign({}, this.dimensions.activator), + content: __assign({}, this.dimensions.content) + }; // Activator should already be shown + + if (!this.hasActivator || this.absolute) { + dimensions.activator = this.absolutePosition(); + } else { + var activator = this.getActivator(); + if (!activator) return; + dimensions.activator = this.measure(activator); + dimensions.activator.offsetLeft = activator.offsetLeft; + + if (this.attach !== false) { + // account for css padding causing things to not line up + // this is mostly for v-autocomplete, hopefully it won't break anything + dimensions.activator.offsetTop = activator.offsetTop; + } else { + dimensions.activator.offsetTop = 0; + } + } // Display and hide to get dimensions + + + this.sneakPeek(function () { + _this.$refs.content && (dimensions.content = _this.measure(_this.$refs.content)); + _this.dimensions = dimensions; + }); + } + } +})); + +/***/ }), + +/***/ "./src/mixins/mobile/index.ts": +/*!************************************!*\ + !*** ./src/mixins/mobile/index.ts ***! + \************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_1__); + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_1___default.a.extend({ + name: 'mobile', + props: { + mobileBreakpoint: { + type: [Number, String], + default: function _default() { + // Avoid destroying unit + // tests for users + return this.$vuetify ? this.$vuetify.breakpoint.mobileBreakpoint : undefined; + }, + validator: function validator(v) { + return !isNaN(Number(v)) || ['xs', 'sm', 'md', 'lg', 'xl'].includes(String(v)); + } + } + }, + computed: { + isMobile: function isMobile() { + var _a = this.$vuetify.breakpoint, + mobile = _a.mobile, + width = _a.width, + name = _a.name, + mobileBreakpoint = _a.mobileBreakpoint; // Check if local mobileBreakpoint matches + // the application's mobileBreakpoint + + if (mobileBreakpoint === this.mobileBreakpoint) return mobile; + var mobileWidth = parseInt(this.mobileBreakpoint, 10); + var isNumber = !isNaN(mobileWidth); + return isNumber ? width < mobileWidth : name === this.mobileBreakpoint; + } + }, + created: function created() { + /* istanbul ignore next */ + if (this.$attrs.hasOwnProperty('mobile-break-point')) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_0__["deprecate"])('mobile-break-point', 'mobile-breakpoint', this); + } + } +})); + +/***/ }), + +/***/ "./src/mixins/overlayable/index.ts": +/*!*****************************************!*\ + !*** ./src/mixins/overlayable/index.ts ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _components_VOverlay__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../components/VOverlay */ "./src/components/VOverlay/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_2__); +// Components + // Utilities + + // Types + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_2___default.a.extend().extend({ + name: 'overlayable', + props: { + hideOverlay: Boolean, + overlayColor: String, + overlayOpacity: [Number, String] + }, + data: function data() { + return { + animationFrame: 0, + overlay: null + }; + }, + watch: { + hideOverlay: function hideOverlay(value) { + if (!this.isActive) return; + if (value) this.removeOverlay();else this.genOverlay(); + } + }, + beforeDestroy: function beforeDestroy() { + this.removeOverlay(); + }, + methods: { + createOverlay: function createOverlay() { + var overlay = new _components_VOverlay__WEBPACK_IMPORTED_MODULE_0__["default"]({ + propsData: { + absolute: this.absolute, + value: false, + color: this.overlayColor, + opacity: this.overlayOpacity + } + }); + overlay.$mount(); + var parent = this.absolute ? this.$el.parentNode : document.querySelector('[data-app]'); + parent && parent.insertBefore(overlay.$el, parent.firstChild); + this.overlay = overlay; + }, + genOverlay: function genOverlay() { + var _this = this; + + this.hideScroll(); + if (this.hideOverlay) return; + if (!this.overlay) this.createOverlay(); + this.animationFrame = requestAnimationFrame(function () { + if (!_this.overlay) return; + + if (_this.activeZIndex !== undefined) { + _this.overlay.zIndex = String(_this.activeZIndex - 1); + } else if (_this.$el) { + _this.overlay.zIndex = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["getZIndex"])(_this.$el); + } + + _this.overlay.value = true; + }); + return true; + }, + + /** removeOverlay(false) will not restore the scollbar afterwards */ + removeOverlay: function removeOverlay(showScroll) { + var _this = this; + + if (showScroll === void 0) { + showScroll = true; + } + + if (this.overlay) { + Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["addOnceEventListener"])(this.overlay.$el, 'transitionend', function () { + if (!_this.overlay || !_this.overlay.$el || !_this.overlay.$el.parentNode || _this.overlay.value) return; + + _this.overlay.$el.parentNode.removeChild(_this.overlay.$el); + + _this.overlay.$destroy(); + + _this.overlay = null; + }); // Cancel animation frame in case + // overlay is removed before it + // has finished its animation + + cancelAnimationFrame(this.animationFrame); + this.overlay.value = false; + } + + showScroll && this.showScroll(); + }, + scrollListener: function scrollListener(e) { + if (e.type === 'keydown') { + if (['INPUT', 'TEXTAREA', 'SELECT'].includes(e.target.tagName) || // https://github.com/vuetifyjs/vuetify/issues/4715 + e.target.isContentEditable) return; + var up = [_util_helpers__WEBPACK_IMPORTED_MODULE_1__["keyCodes"].up, _util_helpers__WEBPACK_IMPORTED_MODULE_1__["keyCodes"].pageup]; + var down = [_util_helpers__WEBPACK_IMPORTED_MODULE_1__["keyCodes"].down, _util_helpers__WEBPACK_IMPORTED_MODULE_1__["keyCodes"].pagedown]; + + if (up.includes(e.keyCode)) { + e.deltaY = -1; + } else if (down.includes(e.keyCode)) { + e.deltaY = 1; + } else { + return; + } + } + + if (e.target === this.overlay || e.type !== 'keydown' && e.target === document.body || this.checkPath(e)) e.preventDefault(); + }, + hasScrollbar: function hasScrollbar(el) { + if (!el || el.nodeType !== Node.ELEMENT_NODE) return false; + var style = window.getComputedStyle(el); + return ['auto', 'scroll'].includes(style.overflowY) && el.scrollHeight > el.clientHeight; + }, + shouldScroll: function shouldScroll(el, delta) { + if (el.scrollTop === 0 && delta < 0) return true; + return el.scrollTop + el.clientHeight === el.scrollHeight && delta > 0; + }, + isInside: function isInside(el, parent) { + if (el === parent) { + return true; + } else if (el === null || el === document.body) { + return false; + } else { + return this.isInside(el.parentNode, parent); + } + }, + checkPath: function checkPath(e) { + var path = e.path || this.composedPath(e); + var delta = e.deltaY; + + if (e.type === 'keydown' && path[0] === document.body) { + var dialog = this.$refs.dialog; // getSelection returns null in firefox in some edge cases, can be ignored + + var selected = window.getSelection().anchorNode; + + if (dialog && this.hasScrollbar(dialog) && this.isInside(selected, dialog)) { + return this.shouldScroll(dialog, delta); + } + + return true; + } + + for (var index = 0; index < path.length; index++) { + var el = path[index]; + if (el === document) return true; + if (el === document.documentElement) return true; + if (el === this.$refs.content) return true; + if (this.hasScrollbar(el)) return this.shouldScroll(el, delta); + } + + return true; + }, + + /** + * Polyfill for Event.prototype.composedPath + */ + composedPath: function composedPath(e) { + if (e.composedPath) return e.composedPath(); + var path = []; + var el = e.target; + + while (el) { + path.push(el); + + if (el.tagName === 'HTML') { + path.push(document); + path.push(window); + return path; + } + + el = el.parentElement; + } + + return path; + }, + hideScroll: function hideScroll() { + if (this.$vuetify.breakpoint.smAndDown) { + document.documentElement.classList.add('overflow-y-hidden'); + } else { + Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["addPassiveEventListener"])(window, 'wheel', this.scrollListener, { + passive: false + }); + window.addEventListener('keydown', this.scrollListener); + } + }, + showScroll: function showScroll() { + document.documentElement.classList.remove('overflow-y-hidden'); + window.removeEventListener('wheel', this.scrollListener); + window.removeEventListener('keydown', this.scrollListener); + } + } +})); + +/***/ }), + +/***/ "./src/mixins/picker-button/index.ts": +/*!*******************************************!*\ + !*** ./src/mixins/picker-button/index.ts ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _colorable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +// Mixins + // Utilities + + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_1__["default"])(_colorable__WEBPACK_IMPORTED_MODULE_0__["default"]).extend({ + methods: { + genPickerButton: function genPickerButton(prop, value, content, readonly, staticClass) { + var _this = this; + + if (readonly === void 0) { + readonly = false; + } + + if (staticClass === void 0) { + staticClass = ''; + } + + var active = this[prop] === value; + + var click = function click(event) { + event.stopPropagation(); + + _this.$emit("update:" + Object(_util_helpers__WEBPACK_IMPORTED_MODULE_2__["kebabCase"])(prop), value); + }; + + return this.$createElement('div', { + staticClass: ("v-picker__title__btn " + staticClass).trim(), + class: { + 'v-picker__title__btn--active': active, + 'v-picker__title__btn--readonly': readonly + }, + on: active || readonly ? undefined : { + click: click + } + }, Array.isArray(content) ? content : [content]); + } + } +})); + +/***/ }), + +/***/ "./src/mixins/picker/index.ts": +/*!************************************!*\ + !*** ./src/mixins/picker/index.ts ***! + \************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _components_VPicker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../components/VPicker */ "./src/components/VPicker/index.ts"); +/* harmony import */ var _colorable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _mixins_elevatable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/elevatable */ "./src/mixins/elevatable/index.ts"); +/* harmony import */ var _themeable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +// Components + // Mixins + + + + // Utils + + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_4__["default"])(_colorable__WEBPACK_IMPORTED_MODULE_1__["default"], _mixins_elevatable__WEBPACK_IMPORTED_MODULE_2__["default"], _themeable__WEBPACK_IMPORTED_MODULE_3__["default"] +/* @vue/component */ +).extend({ + name: 'picker', + props: { + flat: Boolean, + fullWidth: Boolean, + headerColor: String, + landscape: Boolean, + noTitle: Boolean, + width: { + type: [Number, String], + default: 290 + } + }, + methods: { + genPickerTitle: function genPickerTitle() { + return null; + }, + genPickerBody: function genPickerBody() { + return null; + }, + genPickerActionsSlot: function genPickerActionsSlot() { + return this.$scopedSlots.default ? this.$scopedSlots.default({ + save: this.save, + cancel: this.cancel + }) : this.$slots.default; + }, + genPicker: function genPicker(staticClass) { + var children = []; + + if (!this.noTitle) { + var title = this.genPickerTitle(); + title && children.push(title); + } + + var body = this.genPickerBody(); + body && children.push(body); + children.push(this.$createElement('template', { + slot: 'actions' + }, [this.genPickerActionsSlot()])); + return this.$createElement(_components_VPicker__WEBPACK_IMPORTED_MODULE_0__["default"], { + staticClass: staticClass, + props: { + color: this.headerColor || this.color, + dark: this.dark, + elevation: this.elevation, + flat: this.flat, + fullWidth: this.fullWidth, + landscape: this.landscape, + light: this.light, + width: this.width, + noTitle: this.noTitle + } + }, children); + } + } +})); + +/***/ }), + +/***/ "./src/mixins/positionable/index.ts": +/*!******************************************!*\ + !*** ./src/mixins/positionable/index.ts ***! + \******************************************/ +/*! exports provided: factory, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "factory", function() { return factory; }); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); + + +var availableProps = { + absolute: Boolean, + bottom: Boolean, + fixed: Boolean, + left: Boolean, + right: Boolean, + top: Boolean +}; +function factory(selected) { + if (selected === void 0) { + selected = []; + } + + return vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: 'positionable', + props: selected.length ? Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["filterObjectOnKeys"])(availableProps, selected) : availableProps + }); +} +/* harmony default export */ __webpack_exports__["default"] = (factory()); // Add a `*` before the second `/` + +/* Tests / +let single = factory(['top']).extend({ + created () { + this.top + this.bottom + this.absolute + } +}) + +let some = factory(['top', 'bottom']).extend({ + created () { + this.top + this.bottom + this.absolute + } +}) + +let all = factory().extend({ + created () { + this.top + this.bottom + this.absolute + this.foobar + } +}) +/**/ + +/***/ }), + +/***/ "./src/mixins/proxyable/index.ts": +/*!***************************************!*\ + !*** ./src/mixins/proxyable/index.ts ***! + \***************************************/ +/*! exports provided: factory, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "factory", function() { return factory; }); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); + +function factory(prop, event) { + var _a, _b; + + if (prop === void 0) { + prop = 'value'; + } + + if (event === void 0) { + event = 'change'; + } + + return vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: 'proxyable', + model: { + prop: prop, + event: event + }, + props: (_a = {}, _a[prop] = { + required: false + }, _a), + data: function data() { + return { + internalLazyValue: this[prop] + }; + }, + computed: { + internalValue: { + get: function get() { + return this.internalLazyValue; + }, + set: function set(val) { + if (val === this.internalLazyValue) return; + this.internalLazyValue = val; + this.$emit(event, val); + } + } + }, + watch: (_b = {}, _b[prop] = function (val) { + this.internalLazyValue = val; + }, _b) + }); +} +/* eslint-disable-next-line @typescript-eslint/no-redeclare */ + +var Proxyable = factory(); +/* harmony default export */ __webpack_exports__["default"] = (Proxyable); + +/***/ }), + +/***/ "./src/mixins/registrable/index.ts": +/*!*****************************************!*\ + !*** ./src/mixins/registrable/index.ts ***! + \*****************************************/ +/*! exports provided: inject, provide */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "inject", function() { return inject; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "provide", function() { return provide; }); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); + + + +function generateWarning(child, parent) { + return function () { + return Object(_util_console__WEBPACK_IMPORTED_MODULE_1__["consoleWarn"])("The " + child + " component must be used inside a " + parent); + }; +} + +function inject(namespace, child, parent) { + var _a; + + var defaultImpl = child && parent ? { + register: generateWarning(child, parent), + unregister: generateWarning(child, parent) + } : null; + return vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: 'registrable-inject', + inject: (_a = {}, _a[namespace] = { + default: defaultImpl + }, _a) + }); +} +function provide(namespace, self) { + if (self === void 0) { + self = false; + } + + return vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: 'registrable-provide', + provide: function provide() { + var _a; + + return _a = {}, _a[namespace] = self ? this : { + register: this.register, + unregister: this.unregister + }, _a; + } + }); +} + +/***/ }), + +/***/ "./src/mixins/returnable/index.ts": +/*!****************************************!*\ + !*** ./src/mixins/returnable/index.ts ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: 'returnable', + props: { + returnValue: null + }, + data: function data() { + return { + isActive: false, + originalValue: null + }; + }, + watch: { + isActive: function isActive(val) { + if (val) { + this.originalValue = this.returnValue; + } else { + this.$emit('update:return-value', this.originalValue); + } + } + }, + methods: { + save: function save(value) { + var _this = this; + + this.originalValue = value; + setTimeout(function () { + _this.isActive = false; + }); + } + } +})); + +/***/ }), + +/***/ "./src/mixins/rippleable/index.ts": +/*!****************************************!*\ + !*** ./src/mixins/rippleable/index.ts ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _directives_ripple__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../directives/ripple */ "./src/directives/ripple/index.ts"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_1__); +// Directives + // Types + + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_1___default.a.extend({ + name: 'rippleable', + directives: { + ripple: _directives_ripple__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + props: { + ripple: { + type: [Boolean, Object], + default: true + } + }, + methods: { + genRipple: function genRipple(data) { + if (data === void 0) { + data = {}; + } + + if (!this.ripple) return null; + data.staticClass = 'v-input--selection-controls__ripple'; + data.directives = data.directives || []; + data.directives.push({ + name: 'ripple', + value: { + center: true + } + }); + return this.$createElement('div', data); + } + } +})); + +/***/ }), + +/***/ "./src/mixins/roundable/index.ts": +/*!***************************************!*\ + !*** ./src/mixins/roundable/index.ts ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); +var __values = undefined && undefined.__values || function (o) { + var s = typeof Symbol === "function" && Symbol.iterator, + m = s && o[s], + i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function next() { + if (o && i >= o.length) o = void 0; + return { + value: o && o[i++], + done: !o + }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); +}; + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: 'roundable', + props: { + rounded: [Boolean, String], + tile: Boolean + }, + computed: { + roundedClasses: function roundedClasses() { + var e_1, _a, _b; + + var composite = []; + var rounded = typeof this.rounded === 'string' ? String(this.rounded) : this.rounded === true; + + if (this.tile) { + composite.push('rounded-0'); + } else if (typeof rounded === 'string') { + var values = rounded.split(' '); + + try { + for (var values_1 = __values(values), values_1_1 = values_1.next(); !values_1_1.done; values_1_1 = values_1.next()) { + var value = values_1_1.value; + composite.push("rounded-" + value); + } + } catch (e_1_1) { + e_1 = { + error: e_1_1 + }; + } finally { + try { + if (values_1_1 && !values_1_1.done && (_a = values_1.return)) _a.call(values_1); + } finally { + if (e_1) throw e_1.error; + } + } + } else if (rounded) { + composite.push('rounded'); + } + + return composite.length > 0 ? (_b = {}, _b[composite.join(' ')] = true, _b) : {}; + } + } +})); + +/***/ }), + +/***/ "./src/mixins/routable/index.ts": +/*!**************************************!*\ + !*** ./src/mixins/routable/index.ts ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _directives_ripple__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../directives/ripple */ "./src/directives/ripple/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + + // Directives + + // Utilities + + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: 'routable', + directives: { + Ripple: _directives_ripple__WEBPACK_IMPORTED_MODULE_1__["default"] + }, + props: { + activeClass: String, + append: Boolean, + disabled: Boolean, + exact: { + type: Boolean, + default: undefined + }, + exactActiveClass: String, + link: Boolean, + href: [String, Object], + to: [String, Object], + nuxt: Boolean, + replace: Boolean, + ripple: { + type: [Boolean, Object], + default: null + }, + tag: String, + target: String + }, + data: function data() { + return { + isActive: false, + proxyClass: '' + }; + }, + computed: { + classes: function classes() { + var classes = {}; + if (this.to) return classes; + if (this.activeClass) classes[this.activeClass] = this.isActive; + if (this.proxyClass) classes[this.proxyClass] = this.isActive; + return classes; + }, + computedRipple: function computedRipple() { + var _a; + + return (_a = this.ripple) !== null && _a !== void 0 ? _a : !this.disabled && this.isClickable; + }, + isClickable: function isClickable() { + if (this.disabled) return false; + return Boolean(this.isLink || this.$listeners.click || this.$listeners['!click'] || this.$attrs.tabindex); + }, + isLink: function isLink() { + return this.to || this.href || this.link; + }, + styles: function styles() { + return {}; + } + }, + watch: { + $route: 'onRouteChange' + }, + methods: { + click: function click(e) { + this.$emit('click', e); + }, + generateRouteLink: function generateRouteLink() { + var _a; + + var exact = this.exact; + var tag; + var data = (_a = { + attrs: { + tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined + }, + class: this.classes, + style: this.styles, + props: {}, + directives: [{ + name: 'ripple', + value: this.computedRipple + }] + }, _a[this.to ? 'nativeOn' : 'on'] = __assign(__assign({}, this.$listeners), { + click: this.click + }), _a.ref = 'link', _a); + + if (typeof this.exact === 'undefined') { + exact = this.to === '/' || this.to === Object(this.to) && this.to.path === '/'; + } + + if (this.to) { + // Add a special activeClass hook + // for component level styles + var activeClass = this.activeClass; + var exactActiveClass = this.exactActiveClass || activeClass; + + if (this.proxyClass) { + activeClass = (activeClass + " " + this.proxyClass).trim(); + exactActiveClass = (exactActiveClass + " " + this.proxyClass).trim(); + } + + tag = this.nuxt ? 'nuxt-link' : 'router-link'; + Object.assign(data.props, { + to: this.to, + exact: exact, + activeClass: activeClass, + exactActiveClass: exactActiveClass, + append: this.append, + replace: this.replace + }); + } else { + tag = this.href && 'a' || this.tag || 'div'; + if (tag === 'a' && this.href) data.attrs.href = this.href; + } + + if (this.target) data.attrs.target = this.target; + return { + tag: tag, + data: data + }; + }, + onRouteChange: function onRouteChange() { + var _this = this; + + if (!this.to || !this.$refs.link || !this.$route) return; + var activeClass = (this.activeClass + " " + (this.proxyClass || '')).trim(); + var path = "_vnode.data.class." + activeClass; + this.$nextTick(function () { + /* istanbul ignore else */ + if (Object(_util_helpers__WEBPACK_IMPORTED_MODULE_2__["getObjectValueByPath"])(_this.$refs.link, path)) { + _this.toggle(); + } + }); + }, + toggle: function toggle() {} + } +})); + +/***/ }), + +/***/ "./src/mixins/scrollable/index.ts": +/*!****************************************!*\ + !*** ./src/mixins/scrollable/index.ts ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _directives__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../directives */ "./src/directives/index.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_2__); +// Directives + // Utilities + + // Types + + +/** + * Scrollable + * + * Used for monitoring scrolling and + * invoking functions based upon + * scrolling thresholds being + * met. + */ + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_2___default.a.extend({ + name: 'scrollable', + directives: { + Scroll: _directives__WEBPACK_IMPORTED_MODULE_0__["Scroll"] + }, + props: { + scrollTarget: String, + scrollThreshold: [String, Number] + }, + data: function data() { + return { + currentScroll: 0, + currentThreshold: 0, + isActive: false, + isScrollingUp: false, + previousScroll: 0, + savedScroll: 0, + target: null + }; + }, + computed: { + /** + * A computed property that returns + * whether scrolling features are + * enabled or disabled + */ + canScroll: function canScroll() { + return typeof window !== 'undefined'; + }, + + /** + * The threshold that must be met before + * thresholdMet function is invoked + */ + computedScrollThreshold: function computedScrollThreshold() { + return this.scrollThreshold ? Number(this.scrollThreshold) : 300; + } + }, + watch: { + isScrollingUp: function isScrollingUp() { + this.savedScroll = this.savedScroll || this.currentScroll; + }, + isActive: function isActive() { + this.savedScroll = 0; + } + }, + mounted: function mounted() { + if (this.scrollTarget) { + this.target = document.querySelector(this.scrollTarget); + + if (!this.target) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_1__["consoleWarn"])("Unable to locate element with identifier " + this.scrollTarget, this); + } + } + }, + methods: { + onScroll: function onScroll() { + var _this = this; + + if (!this.canScroll) return; + this.previousScroll = this.currentScroll; + this.currentScroll = this.target ? this.target.scrollTop : window.pageYOffset; + this.isScrollingUp = this.currentScroll < this.previousScroll; + this.currentThreshold = Math.abs(this.currentScroll - this.computedScrollThreshold); + this.$nextTick(function () { + if (Math.abs(_this.currentScroll - _this.savedScroll) > _this.computedScrollThreshold) _this.thresholdMet(); + }); + }, + + /** + * The method invoked when + * scrolling in any direction + * has exceeded the threshold + */ + thresholdMet: function thresholdMet() {} + } +})); + +/***/ }), + +/***/ "./src/mixins/selectable/index.ts": +/*!****************************************!*\ + !*** ./src/mixins/selectable/index.ts ***! + \****************************************/ +/*! exports provided: prevent, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prevent", function() { return prevent; }); +/* harmony import */ var _components_VInput__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../components/VInput */ "./src/components/VInput/index.ts"); +/* harmony import */ var _rippleable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../rippleable */ "./src/mixins/rippleable/index.ts"); +/* harmony import */ var _comparable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../comparable */ "./src/mixins/comparable/index.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +// Components + // Mixins + + + // Utilities + + +function prevent(e) { + e.preventDefault(); +} +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_3__["default"])(_components_VInput__WEBPACK_IMPORTED_MODULE_0__["default"], _rippleable__WEBPACK_IMPORTED_MODULE_1__["default"], _comparable__WEBPACK_IMPORTED_MODULE_2__["default"]).extend({ + name: 'selectable', + model: { + prop: 'inputValue', + event: 'change' + }, + props: { + id: String, + inputValue: null, + falseValue: null, + trueValue: null, + multiple: { + type: Boolean, + default: null + }, + label: String + }, + data: function data() { + return { + hasColor: this.inputValue, + lazyValue: this.inputValue + }; + }, + computed: { + computedColor: function computedColor() { + if (!this.isActive) return undefined; + if (this.color) return this.color; + if (this.isDark && !this.appIsDark) return 'white'; + return 'primary'; + }, + isMultiple: function isMultiple() { + return this.multiple === true || this.multiple === null && Array.isArray(this.internalValue); + }, + isActive: function isActive() { + var _this = this; + + var value = this.value; + var input = this.internalValue; + + if (this.isMultiple) { + if (!Array.isArray(input)) return false; + return input.some(function (item) { + return _this.valueComparator(item, value); + }); + } + + if (this.trueValue === undefined || this.falseValue === undefined) { + return value ? this.valueComparator(value, input) : Boolean(input); + } + + return this.valueComparator(input, this.trueValue); + }, + isDirty: function isDirty() { + return this.isActive; + }, + rippleState: function rippleState() { + return !this.isDisabled && !this.validationState ? undefined : this.validationState; + } + }, + watch: { + inputValue: function inputValue(val) { + this.lazyValue = val; + this.hasColor = val; + } + }, + methods: { + genLabel: function genLabel() { + var label = _components_VInput__WEBPACK_IMPORTED_MODULE_0__["default"].options.methods.genLabel.call(this); + if (!label) return label; + label.data.on = { + // Label shouldn't cause the input to focus + click: prevent + }; + return label; + }, + genInput: function genInput(type, attrs) { + return this.$createElement('input', { + attrs: Object.assign({ + 'aria-checked': this.isActive.toString(), + disabled: this.isDisabled, + id: this.computedId, + role: type, + type: type + }, attrs), + domProps: { + value: this.value, + checked: this.isActive + }, + on: { + blur: this.onBlur, + change: this.onChange, + focus: this.onFocus, + keydown: this.onKeydown, + click: prevent + }, + ref: 'input' + }); + }, + onBlur: function onBlur() { + this.isFocused = false; + }, + onClick: function onClick(e) { + this.onChange(); + this.$emit('click', e); + }, + onChange: function onChange() { + var _this = this; + + if (!this.isInteractive) return; + var value = this.value; + var input = this.internalValue; + + if (this.isMultiple) { + if (!Array.isArray(input)) { + input = []; + } + + var length = input.length; + input = input.filter(function (item) { + return !_this.valueComparator(item, value); + }); + + if (input.length === length) { + input.push(value); + } + } else if (this.trueValue !== undefined && this.falseValue !== undefined) { + input = this.valueComparator(input, this.trueValue) ? this.falseValue : this.trueValue; + } else if (value) { + input = this.valueComparator(input, value) ? null : value; + } else { + input = !input; + } + + this.validate(true, input); + this.internalValue = input; + this.hasColor = input; + }, + onFocus: function onFocus() { + this.isFocused = true; + }, + + /** @abstract */ + onKeydown: function onKeydown(e) {} + } +})); + +/***/ }), + +/***/ "./src/mixins/sizeable/index.ts": +/*!**************************************!*\ + !*** ./src/mixins/sizeable/index.ts ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: 'sizeable', + props: { + large: Boolean, + small: Boolean, + xLarge: Boolean, + xSmall: Boolean + }, + computed: { + medium: function medium() { + return Boolean(!this.xSmall && !this.small && !this.large && !this.xLarge); + }, + sizeableClasses: function sizeableClasses() { + return { + 'v-size--x-small': this.xSmall, + 'v-size--small': this.small, + 'v-size--default': this.medium, + 'v-size--large': this.large, + 'v-size--x-large': this.xLarge + }; + } + } +})); + +/***/ }), + +/***/ "./src/mixins/ssr-bootable/index.ts": +/*!******************************************!*\ + !*** ./src/mixins/ssr-bootable/index.ts ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); + +/** + * SSRBootable + * + * @mixin + * + * Used in layout components (drawer, toolbar, content) + * to avoid an entry animation when using SSR + */ + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: 'ssr-bootable', + data: function data() { + return { + isBooted: false + }; + }, + mounted: function mounted() { + var _this = this; // Use setAttribute instead of dataset + // because dataset does not work well + // with unit tests + + + window.requestAnimationFrame(function () { + _this.$el.setAttribute('data-booted', 'true'); + + _this.isBooted = true; + }); + } +})); + +/***/ }), + +/***/ "./src/mixins/stackable/index.ts": +/*!***************************************!*\ + !*** ./src/mixins/stackable/index.ts ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + +var __spread = undefined && undefined.__spread || function () { + for (var ar = [], i = 0; i < arguments.length; i++) { + ar = ar.concat(__read(arguments[i])); + } + + return ar; +}; + + + +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend().extend({ + name: 'stackable', + data: function data() { + return { + stackElement: null, + stackExclude: null, + stackMinZIndex: 0, + isActive: false + }; + }, + computed: { + activeZIndex: function activeZIndex() { + if (typeof window === 'undefined') return 0; + var content = this.stackElement || this.$refs.content; // Return current zindex if not active + + var index = !this.isActive ? Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["getZIndex"])(content) : this.getMaxZIndex(this.stackExclude || [content]) + 2; + if (index == null) return index; // Return max current z-index (excluding self) + 2 + // (2 to leave room for an overlay below, if needed) + + return parseInt(index); + } + }, + methods: { + getMaxZIndex: function getMaxZIndex(exclude) { + if (exclude === void 0) { + exclude = []; + } + + var base = this.$el; // Start with lowest allowed z-index or z-index of + // base component's element, whichever is greater + + var zis = [this.stackMinZIndex, Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["getZIndex"])(base)]; // Convert the NodeList to an array to + // prevent an Edge bug with Symbol.iterator + // https://github.com/vuetifyjs/vuetify/issues/2146 + + var activeElements = __spread(document.getElementsByClassName('v-menu__content--active'), document.getElementsByClassName('v-dialog__content--active')); // Get z-index for all active dialogs + + + for (var index = 0; index < activeElements.length; index++) { + if (!exclude.includes(activeElements[index])) { + zis.push(Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["getZIndex"])(activeElements[index])); + } + } + + return Math.max.apply(Math, __spread(zis)); + } + } +})); + +/***/ }), + +/***/ "./src/mixins/themeable/index.ts": +/*!***************************************!*\ + !*** ./src/mixins/themeable/index.ts ***! + \***************************************/ +/*! exports provided: default, functionalThemeClasses */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "functionalThemeClasses", function() { return functionalThemeClasses; }); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + + +/* @vue/component */ + +var Themeable = vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend().extend({ + name: 'themeable', + provide: function provide() { + return { + theme: this.themeableProvide + }; + }, + inject: { + theme: { + default: { + isDark: false + } + } + }, + props: { + dark: { + type: Boolean, + default: null + }, + light: { + type: Boolean, + default: null + } + }, + data: function data() { + return { + themeableProvide: { + isDark: false + } + }; + }, + computed: { + appIsDark: function appIsDark() { + return this.$vuetify.theme.dark || false; + }, + isDark: function isDark() { + if (this.dark === true) { + // explicitly dark + return true; + } else if (this.light === true) { + // explicitly light + return false; + } else { + // inherit from parent, or default false if there is none + return this.theme.isDark; + } + }, + themeClasses: function themeClasses() { + return { + 'theme--dark': this.isDark, + 'theme--light': !this.isDark + }; + }, + + /** Used by menus and dialogs, inherits from v-app instead of the parent */ + rootIsDark: function rootIsDark() { + if (this.dark === true) { + // explicitly dark + return true; + } else if (this.light === true) { + // explicitly light + return false; + } else { + // inherit from v-app + return this.appIsDark; + } + }, + rootThemeClasses: function rootThemeClasses() { + return { + 'theme--dark': this.rootIsDark, + 'theme--light': !this.rootIsDark + }; + } + }, + watch: { + isDark: { + handler: function handler(newVal, oldVal) { + if (newVal !== oldVal) { + this.themeableProvide.isDark = this.isDark; + } + }, + immediate: true + } + } +}); +/* harmony default export */ __webpack_exports__["default"] = (Themeable); +function functionalThemeClasses(context) { + var vm = __assign(__assign({}, context.props), context.injections); + + var isDark = Themeable.options.computed.isDark.call(vm); + return Themeable.options.computed.themeClasses.call({ + isDark: isDark + }); +} + +/***/ }), + +/***/ "./src/mixins/toggleable/index.ts": +/*!****************************************!*\ + !*** ./src/mixins/toggleable/index.ts ***! + \****************************************/ +/*! exports provided: factory, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "factory", function() { return factory; }); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); + +function factory(prop, event) { + var _a, _b; + + if (prop === void 0) { + prop = 'value'; + } + + if (event === void 0) { + event = 'input'; + } + + return vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: 'toggleable', + model: { + prop: prop, + event: event + }, + props: (_a = {}, _a[prop] = { + required: false + }, _a), + data: function data() { + return { + isActive: !!this[prop] + }; + }, + watch: (_b = {}, _b[prop] = function (val) { + this.isActive = !!val; + }, _b.isActive = function (val) { + !!val !== this[prop] && this.$emit(event, val); + }, _b) + }); +} +/* eslint-disable-next-line @typescript-eslint/no-redeclare */ + +var Toggleable = factory(); +/* harmony default export */ __webpack_exports__["default"] = (Toggleable); + +/***/ }), + +/***/ "./src/mixins/transitionable/index.ts": +/*!********************************************!*\ + !*** ./src/mixins/transitionable/index.ts ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: 'transitionable', + props: { + mode: String, + origin: String, + transition: String + } +})); + +/***/ }), + +/***/ "./src/mixins/translatable/index.ts": +/*!******************************************!*\ + !*** ./src/mixins/translatable/index.ts ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); + +/* harmony default export */ __webpack_exports__["default"] = (vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: 'translatable', + props: { + height: Number + }, + data: function data() { + return { + elOffsetTop: 0, + parallax: 0, + parallaxDist: 0, + percentScrolled: 0, + scrollTop: 0, + windowHeight: 0, + windowBottom: 0 + }; + }, + computed: { + imgHeight: function imgHeight() { + return this.objHeight(); + } + }, + beforeDestroy: function beforeDestroy() { + window.removeEventListener('scroll', this.translate, false); + window.removeEventListener('resize', this.translate, false); + }, + methods: { + calcDimensions: function calcDimensions() { + var offset = this.$el.getBoundingClientRect(); + this.scrollTop = window.pageYOffset; + this.parallaxDist = this.imgHeight - this.height; + this.elOffsetTop = offset.top + this.scrollTop; + this.windowHeight = window.innerHeight; + this.windowBottom = this.scrollTop + this.windowHeight; + }, + listeners: function listeners() { + window.addEventListener('scroll', this.translate, false); + window.addEventListener('resize', this.translate, false); + }, + + /** @abstract **/ + objHeight: function objHeight() { + throw new Error('Not implemented !'); + }, + translate: function translate() { + this.calcDimensions(); + this.percentScrolled = (this.windowBottom - this.elOffsetTop) / (parseInt(this.height) + this.windowHeight); + this.parallax = Math.round(this.parallaxDist * this.percentScrolled); + } + } +})); + +/***/ }), + +/***/ "./src/mixins/validatable/index.ts": +/*!*****************************************!*\ + !*** ./src/mixins/validatable/index.ts ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _colorable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colorable */ "./src/mixins/colorable/index.ts"); +/* harmony import */ var _themeable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../themeable */ "./src/mixins/themeable/index.ts"); +/* harmony import */ var _registrable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../registrable */ "./src/mixins/registrable/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/mixins */ "./src/util/mixins.ts"); +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +// Mixins + + + // Utilities + + + + +var baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_5__["default"])(_colorable__WEBPACK_IMPORTED_MODULE_0__["default"], Object(_registrable__WEBPACK_IMPORTED_MODULE_2__["inject"])('form'), _themeable__WEBPACK_IMPORTED_MODULE_1__["default"]); +/* @vue/component */ + +/* harmony default export */ __webpack_exports__["default"] = (baseMixins.extend({ + name: 'validatable', + props: { + disabled: Boolean, + error: Boolean, + errorCount: { + type: [Number, String], + default: 1 + }, + errorMessages: { + type: [String, Array], + default: function _default() { + return []; + } + }, + messages: { + type: [String, Array], + default: function _default() { + return []; + } + }, + readonly: Boolean, + rules: { + type: Array, + default: function _default() { + return []; + } + }, + success: Boolean, + successMessages: { + type: [String, Array], + default: function _default() { + return []; + } + }, + validateOnBlur: Boolean, + value: { + required: false + } + }, + data: function data() { + return { + errorBucket: [], + hasColor: false, + hasFocused: false, + hasInput: false, + isFocused: false, + isResetting: false, + lazyValue: this.value, + valid: false + }; + }, + computed: { + computedColor: function computedColor() { + if (this.isDisabled) return undefined; + if (this.color) return this.color; // It's assumed that if the input is on a + // dark background, the user will want to + // have a white color. If the entire app + // is setup to be dark, then they will + // like want to use their primary color + + if (this.isDark && !this.appIsDark) return 'white';else return 'primary'; + }, + hasError: function hasError() { + return this.internalErrorMessages.length > 0 || this.errorBucket.length > 0 || this.error; + }, + // TODO: Add logic that allows the user to enable based + // upon a good validation + hasSuccess: function hasSuccess() { + return this.internalSuccessMessages.length > 0 || this.success; + }, + externalError: function externalError() { + return this.internalErrorMessages.length > 0 || this.error; + }, + hasMessages: function hasMessages() { + return this.validationTarget.length > 0; + }, + hasState: function hasState() { + if (this.isDisabled) return false; + return this.hasSuccess || this.shouldValidate && this.hasError; + }, + internalErrorMessages: function internalErrorMessages() { + return this.genInternalMessages(this.errorMessages); + }, + internalMessages: function internalMessages() { + return this.genInternalMessages(this.messages); + }, + internalSuccessMessages: function internalSuccessMessages() { + return this.genInternalMessages(this.successMessages); + }, + internalValue: { + get: function get() { + return this.lazyValue; + }, + set: function set(val) { + this.lazyValue = val; + this.$emit('input', val); + } + }, + isDisabled: function isDisabled() { + return this.disabled || !!this.form && this.form.disabled; + }, + isInteractive: function isInteractive() { + return !this.isDisabled && !this.isReadonly; + }, + isReadonly: function isReadonly() { + return this.readonly || !!this.form && this.form.readonly; + }, + shouldValidate: function shouldValidate() { + if (this.externalError) return true; + if (this.isResetting) return false; + return this.validateOnBlur ? this.hasFocused && !this.isFocused : this.hasInput || this.hasFocused; + }, + validations: function validations() { + return this.validationTarget.slice(0, Number(this.errorCount)); + }, + validationState: function validationState() { + if (this.isDisabled) return undefined; + if (this.hasError && this.shouldValidate) return 'error'; + if (this.hasSuccess) return 'success'; + if (this.hasColor) return this.computedColor; + return undefined; + }, + validationTarget: function validationTarget() { + if (this.internalErrorMessages.length > 0) { + return this.internalErrorMessages; + } else if (this.successMessages && this.successMessages.length > 0) { + return this.internalSuccessMessages; + } else if (this.messages && this.messages.length > 0) { + return this.internalMessages; + } else if (this.shouldValidate) { + return this.errorBucket; + } else return []; + } + }, + watch: { + rules: { + handler: function handler(newVal, oldVal) { + if (Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__["deepEqual"])(newVal, oldVal)) return; + this.validate(); + }, + deep: true + }, + internalValue: function internalValue() { + // If it's the first time we're setting input, + // mark it with hasInput + this.hasInput = true; + this.validateOnBlur || this.$nextTick(this.validate); + }, + isFocused: function isFocused(val) { + // Should not check validation + // if disabled + if (!val && !this.isDisabled) { + this.hasFocused = true; + this.validateOnBlur && this.$nextTick(this.validate); + } + }, + isResetting: function isResetting() { + var _this = this; + + setTimeout(function () { + _this.hasInput = false; + _this.hasFocused = false; + _this.isResetting = false; + + _this.validate(); + }, 0); + }, + hasError: function hasError(val) { + if (this.shouldValidate) { + this.$emit('update:error', val); + } + }, + value: function value(val) { + this.lazyValue = val; + } + }, + beforeMount: function beforeMount() { + this.validate(); + }, + created: function created() { + this.form && this.form.register(this); + }, + beforeDestroy: function beforeDestroy() { + this.form && this.form.unregister(this); + }, + methods: { + genInternalMessages: function genInternalMessages(messages) { + if (!messages) return [];else if (Array.isArray(messages)) return messages;else return [messages]; + }, + + /** @public */ + reset: function reset() { + this.isResetting = true; + this.internalValue = Array.isArray(this.internalValue) ? [] : undefined; + }, + + /** @public */ + resetValidation: function resetValidation() { + this.isResetting = true; + }, + + /** @public */ + validate: function validate(force, value) { + if (force === void 0) { + force = false; + } + + var errorBucket = []; + value = value || this.internalValue; + if (force) this.hasInput = this.hasFocused = true; + + for (var index = 0; index < this.rules.length; index++) { + var rule = this.rules[index]; + var valid = typeof rule === 'function' ? rule(value) : rule; + + if (valid === false || typeof valid === 'string') { + errorBucket.push(valid || ''); + } else if (typeof valid !== 'boolean') { + Object(_util_console__WEBPACK_IMPORTED_MODULE_4__["consoleError"])("Rules should return a string or boolean, received '" + _typeof(valid) + "' instead", this); + } + } + + this.errorBucket = errorBucket; + this.valid = errorBucket.length === 0; + return this.valid; + } + } +})); + +/***/ }), + +/***/ "./src/presets/default/index.ts": +/*!**************************************!*\ + !*** ./src/presets/default/index.ts ***! + \**************************************/ +/*! exports provided: preset */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "preset", function() { return preset; }); +/* harmony import */ var _styles_main_sass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../styles/main.sass */ "./src/styles/main.sass"); +/* harmony import */ var _styles_main_sass__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_styles_main_sass__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../locale */ "./src/locale/index.ts"); +// Styles + // Locale + + +var preset = { + breakpoint: { + // TODO: update to MD2 spec in v3 - 1280 + mobileBreakpoint: 1264, + scrollBarWidth: 16, + thresholds: { + xs: 600, + sm: 960, + md: 1280, + lg: 1920 + } + }, + icons: { + // TODO: remove v3 + iconfont: 'mdi', + values: {} + }, + lang: { + current: 'en', + locales: { + en: _locale__WEBPACK_IMPORTED_MODULE_1__["en"] + }, + // Default translator exists in lang service + t: undefined + }, + rtl: false, + theme: { + dark: false, + default: 'light', + disable: false, + options: { + cspNonce: undefined, + customProperties: undefined, + minifyTheme: undefined, + themeCache: undefined, + variations: true + }, + themes: { + light: { + primary: '#1976D2', + secondary: '#424242', + accent: '#82B1FF', + error: '#FF5252', + info: '#2196F3', + success: '#4CAF50', + warning: '#FB8C00' + }, + dark: { + primary: '#2196F3', + secondary: '#424242', + accent: '#FF4081', + error: '#FF5252', + info: '#2196F3', + success: '#4CAF50', + warning: '#FB8C00' + } + } + } +}; + +/***/ }), + +/***/ "./src/services/application/index.ts": +/*!*******************************************!*\ + !*** ./src/services/application/index.ts ***! + \*******************************************/ +/*! exports provided: Application */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Application", function() { return Application; }); +/* harmony import */ var _service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../service */ "./src/services/service/index.ts"); +var __extends = undefined && undefined.__extends || function () { + var _extendStatics = function extendStatics(d, b) { + _extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function (d, b) { + d.__proto__ = b; + } || function (d, b) { + for (var p in b) { + if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; + } + }; + + return _extendStatics(d, b); + }; + + return function (d, b) { + _extendStatics(d, b); + + function __() { + this.constructor = d; + } + + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +}(); // Extensions + + + + +var Application = +/** @class */ +function (_super) { + __extends(Application, _super); + + function Application() { + var _this = _super !== null && _super.apply(this, arguments) || this; + + _this.bar = 0; + _this.top = 0; + _this.left = 0; + _this.insetFooter = 0; + _this.right = 0; + _this.bottom = 0; + _this.footer = 0; + _this.application = { + bar: {}, + top: {}, + left: {}, + insetFooter: {}, + right: {}, + bottom: {}, + footer: {} + }; + return _this; + } + + Application.prototype.register = function (uid, location, size) { + var _a; + + this.application[location] = (_a = {}, _a[uid] = size, _a); + this.update(location); + }; + + Application.prototype.unregister = function (uid, location) { + if (this.application[location][uid] == null) return; + delete this.application[location][uid]; + this.update(location); + }; + + Application.prototype.update = function (location) { + this[location] = Object.values(this.application[location]).reduce(function (acc, cur) { + return acc + cur; + }, 0); + }; + + Application.property = 'application'; + return Application; +}(_service__WEBPACK_IMPORTED_MODULE_0__["Service"]); + + + +/***/ }), + +/***/ "./src/services/breakpoint/index.ts": +/*!******************************************!*\ + !*** ./src/services/breakpoint/index.ts ***! + \******************************************/ +/*! exports provided: Breakpoint */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Breakpoint", function() { return Breakpoint; }); +/* harmony import */ var _service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../service */ "./src/services/service/index.ts"); +var __extends = undefined && undefined.__extends || function () { + var _extendStatics = function extendStatics(d, b) { + _extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function (d, b) { + d.__proto__ = b; + } || function (d, b) { + for (var p in b) { + if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; + } + }; + + return _extendStatics(d, b); + }; + + return function (d, b) { + _extendStatics(d, b); + + function __() { + this.constructor = d; + } + + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +}(); // Extensions + + + + +var Breakpoint = +/** @class */ +function (_super) { + __extends(Breakpoint, _super); + + function Breakpoint(preset) { + var _this = _super.call(this) || this; // Public + + + _this.xs = false; + _this.sm = false; + _this.md = false; + _this.lg = false; + _this.xl = false; + _this.xsOnly = false; + _this.smOnly = false; + _this.smAndDown = false; + _this.smAndUp = false; + _this.mdOnly = false; + _this.mdAndDown = false; + _this.mdAndUp = false; + _this.lgOnly = false; + _this.lgAndDown = false; + _this.lgAndUp = false; + _this.xlOnly = false; // Value is xs to match v2.x functionality + + _this.name = 'xs'; + _this.height = 0; + _this.width = 0; // TODO: Add functionality to detect this dynamically in v3 + // Value is true to match v2.x functionality + + _this.mobile = true; + _this.resizeTimeout = 0; + var _a = preset[Breakpoint.property], + mobileBreakpoint = _a.mobileBreakpoint, + scrollBarWidth = _a.scrollBarWidth, + thresholds = _a.thresholds; + _this.mobileBreakpoint = mobileBreakpoint; + _this.scrollBarWidth = scrollBarWidth; + _this.thresholds = thresholds; + return _this; + } + + Breakpoint.prototype.init = function () { + this.update(); + /* istanbul ignore if */ + + if (typeof window === 'undefined') return; + window.addEventListener('resize', this.onResize.bind(this), { + passive: true + }); + }; + /* eslint-disable-next-line max-statements */ + + + Breakpoint.prototype.update = function (ssr) { + if (ssr === void 0) { + ssr = false; + } + + var height = ssr ? 0 : this.getClientHeight(); + var width = ssr ? 0 : this.getClientWidth(); + var xs = width < this.thresholds.xs; + var sm = width < this.thresholds.sm && !xs; + var md = width < this.thresholds.md - this.scrollBarWidth && !(sm || xs); + var lg = width < this.thresholds.lg - this.scrollBarWidth && !(md || sm || xs); + var xl = width >= this.thresholds.lg - this.scrollBarWidth; + this.height = height; + this.width = width; + this.xs = xs; + this.sm = sm; + this.md = md; + this.lg = lg; + this.xl = xl; + this.xsOnly = xs; + this.smOnly = sm; + this.smAndDown = (xs || sm) && !(md || lg || xl); + this.smAndUp = !xs && (sm || md || lg || xl); + this.mdOnly = md; + this.mdAndDown = (xs || sm || md) && !(lg || xl); + this.mdAndUp = !(xs || sm) && (md || lg || xl); + this.lgOnly = lg; + this.lgAndDown = (xs || sm || md || lg) && !xl; + this.lgAndUp = !(xs || sm || md) && (lg || xl); + this.xlOnly = xl; + + switch (true) { + case xs: + this.name = 'xs'; + break; + + case sm: + this.name = 'sm'; + break; + + case md: + this.name = 'md'; + break; + + case lg: + this.name = 'lg'; + break; + + default: + this.name = 'xl'; + break; + } + + if (typeof this.mobileBreakpoint === 'number') { + this.mobile = width < parseInt(this.mobileBreakpoint, 10); + return; + } + + var breakpoints = { + xs: 0, + sm: 1, + md: 2, + lg: 3, + xl: 4 + }; + var current = breakpoints[this.name]; + var max = breakpoints[this.mobileBreakpoint]; + this.mobile = current <= max; + }; + + Breakpoint.prototype.onResize = function () { + clearTimeout(this.resizeTimeout); // Added debounce to match what + // v-resize used to do but was + // removed due to a memory leak + // https://github.com/vuetifyjs/vuetify/pull/2997 + + this.resizeTimeout = window.setTimeout(this.update.bind(this), 200); + }; // Cross-browser support as described in: + // https://stackoverflow.com/questions/1248081 + + + Breakpoint.prototype.getClientWidth = function () { + /* istanbul ignore if */ + if (typeof document === 'undefined') return 0; // SSR + + return Math.max(document.documentElement.clientWidth, window.innerWidth || 0); + }; + + Breakpoint.prototype.getClientHeight = function () { + /* istanbul ignore if */ + if (typeof document === 'undefined') return 0; // SSR + + return Math.max(document.documentElement.clientHeight, window.innerHeight || 0); + }; + + Breakpoint.property = 'breakpoint'; + return Breakpoint; +}(_service__WEBPACK_IMPORTED_MODULE_0__["Service"]); + + + +/***/ }), + +/***/ "./src/services/goto/easing-patterns.ts": +/*!**********************************************!*\ + !*** ./src/services/goto/easing-patterns.ts ***! + \**********************************************/ +/*! exports provided: linear, easeInQuad, easeOutQuad, easeInOutQuad, easeInCubic, easeOutCubic, easeInOutCubic, easeInQuart, easeOutQuart, easeInOutQuart, easeInQuint, easeOutQuint, easeInOutQuint */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "linear", function() { return linear; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "easeInQuad", function() { return easeInQuad; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "easeOutQuad", function() { return easeOutQuad; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "easeInOutQuad", function() { return easeInOutQuad; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "easeInCubic", function() { return easeInCubic; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "easeOutCubic", function() { return easeOutCubic; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "easeInOutCubic", function() { return easeInOutCubic; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "easeInQuart", function() { return easeInQuart; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "easeOutQuart", function() { return easeOutQuart; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "easeInOutQuart", function() { return easeInOutQuart; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "easeInQuint", function() { return easeInQuint; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "easeOutQuint", function() { return easeOutQuint; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "easeInOutQuint", function() { return easeInOutQuint; }); +// linear +var linear = function linear(t) { + return t; +}; // accelerating from zero velocity + +var easeInQuad = function easeInQuad(t) { + return Math.pow(t, 2); +}; // decelerating to zero velocity + +var easeOutQuad = function easeOutQuad(t) { + return t * (2 - t); +}; // acceleration until halfway, then deceleration + +var easeInOutQuad = function easeInOutQuad(t) { + return t < 0.5 ? 2 * Math.pow(t, 2) : -1 + (4 - 2 * t) * t; +}; // accelerating from zero velocity + +var easeInCubic = function easeInCubic(t) { + return Math.pow(t, 3); +}; // decelerating to zero velocity + +var easeOutCubic = function easeOutCubic(t) { + return Math.pow(--t, 3) + 1; +}; // acceleration until halfway, then deceleration + +var easeInOutCubic = function easeInOutCubic(t) { + return t < 0.5 ? 4 * Math.pow(t, 3) : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1; +}; // accelerating from zero velocity + +var easeInQuart = function easeInQuart(t) { + return Math.pow(t, 4); +}; // decelerating to zero velocity + +var easeOutQuart = function easeOutQuart(t) { + return 1 - Math.pow(--t, 4); +}; // acceleration until halfway, then deceleration + +var easeInOutQuart = function easeInOutQuart(t) { + return t < 0.5 ? 8 * t * t * t * t : 1 - 8 * --t * t * t * t; +}; // accelerating from zero velocity + +var easeInQuint = function easeInQuint(t) { + return Math.pow(t, 5); +}; // decelerating to zero velocity + +var easeOutQuint = function easeOutQuint(t) { + return 1 + Math.pow(--t, 5); +}; // acceleration until halfway, then deceleration + +var easeInOutQuint = function easeInOutQuint(t) { + return t < 0.5 ? 16 * Math.pow(t, 5) : 1 + 16 * Math.pow(--t, 5); +}; + +/***/ }), + +/***/ "./src/services/goto/index.ts": +/*!************************************!*\ + !*** ./src/services/goto/index.ts ***! + \************************************/ +/*! exports provided: default, Goto */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return goTo; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Goto", function() { return Goto; }); +/* harmony import */ var _service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../service */ "./src/services/service/index.ts"); +/* harmony import */ var _easing_patterns__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./easing-patterns */ "./src/services/goto/easing-patterns.ts"); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util */ "./src/services/goto/util.ts"); +var __extends = undefined && undefined.__extends || function () { + var _extendStatics = function extendStatics(d, b) { + _extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function (d, b) { + d.__proto__ = b; + } || function (d, b) { + for (var p in b) { + if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; + } + }; + + return _extendStatics(d, b); + }; + + return function (d, b) { + _extendStatics(d, b); + + function __() { + this.constructor = d; + } + + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +}(); + +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; // Extensions + + + // Utilities + + + +function goTo(_target, _settings) { + if (_settings === void 0) { + _settings = {}; + } + + var settings = __assign({ + container: document.scrollingElement || document.body || document.documentElement, + duration: 500, + offset: 0, + easing: 'easeInOutCubic', + appOffset: true + }, _settings); + + var container = Object(_util__WEBPACK_IMPORTED_MODULE_2__["getContainer"])(settings.container); + /* istanbul ignore else */ + + if (settings.appOffset && goTo.framework.application) { + var isDrawer = container.classList.contains('v-navigation-drawer'); + var isClipped = container.classList.contains('v-navigation-drawer--clipped'); + var _a = goTo.framework.application, + bar = _a.bar, + top = _a.top; + settings.offset += bar; + /* istanbul ignore else */ + + if (!isDrawer || isClipped) settings.offset += top; + } + + var startTime = performance.now(); + var targetLocation; + + if (typeof _target === 'number') { + targetLocation = Object(_util__WEBPACK_IMPORTED_MODULE_2__["getOffset"])(_target) - settings.offset; + } else { + targetLocation = Object(_util__WEBPACK_IMPORTED_MODULE_2__["getOffset"])(_target) - Object(_util__WEBPACK_IMPORTED_MODULE_2__["getOffset"])(container) - settings.offset; + } + + var startLocation = container.scrollTop; + if (targetLocation === startLocation) return Promise.resolve(targetLocation); + var ease = typeof settings.easing === 'function' ? settings.easing : _easing_patterns__WEBPACK_IMPORTED_MODULE_1__[settings.easing]; + /* istanbul ignore else */ + + if (!ease) throw new TypeError("Easing function \"" + settings.easing + "\" not found."); // Cannot be tested properly in jsdom + + /* istanbul ignore next */ + + return new Promise(function (resolve) { + return requestAnimationFrame(function step(currentTime) { + var timeElapsed = currentTime - startTime; + var progress = Math.abs(settings.duration ? Math.min(timeElapsed / settings.duration, 1) : 1); + container.scrollTop = Math.floor(startLocation + (targetLocation - startLocation) * ease(progress)); + var clientHeight = container === document.body ? document.documentElement.clientHeight : container.clientHeight; + + if (progress === 1 || clientHeight + container.scrollTop === container.scrollHeight) { + return resolve(targetLocation); + } + + requestAnimationFrame(step); + }); + }); +} +goTo.framework = {}; + +goTo.init = function () {}; + +var Goto = +/** @class */ +function (_super) { + __extends(Goto, _super); + + function Goto() { + var _this = _super.call(this) || this; + + return goTo; + } + + Goto.property = 'goTo'; + return Goto; +}(_service__WEBPACK_IMPORTED_MODULE_0__["Service"]); + + + +/***/ }), + +/***/ "./src/services/goto/util.ts": +/*!***********************************!*\ + !*** ./src/services/goto/util.ts ***! + \***********************************/ +/*! exports provided: getOffset, getContainer */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOffset", function() { return getOffset; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getContainer", function() { return getContainer; }); +// Return target's cumulative offset from the top +function getOffset(target) { + if (typeof target === 'number') { + return target; + } + + var el = $(target); + + if (!el) { + throw typeof target === 'string' ? new Error("Target element \"" + target + "\" not found.") : new TypeError("Target must be a Number/Selector/HTMLElement/VueComponent, received " + type(target) + " instead."); + } + + var totalOffset = 0; + + while (el) { + totalOffset += el.offsetTop; + el = el.offsetParent; + } + + return totalOffset; +} +function getContainer(container) { + var el = $(container); + if (el) return el; + throw typeof container === 'string' ? new Error("Container element \"" + container + "\" not found.") : new TypeError("Container must be a Selector/HTMLElement/VueComponent, received " + type(container) + " instead."); +} + +function type(el) { + return el == null ? el : el.constructor.name; +} + +function $(el) { + if (typeof el === 'string') { + return document.querySelector(el); + } else if (el && el._isVue) { + return el.$el; + } else if (el instanceof HTMLElement) { + return el; + } else { + return null; + } +} + +/***/ }), + +/***/ "./src/services/icons/index.ts": +/*!*************************************!*\ + !*** ./src/services/icons/index.ts ***! + \*************************************/ +/*! exports provided: Icons */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Icons", function() { return Icons; }); +/* harmony import */ var _service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../service */ "./src/services/service/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _presets__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./presets */ "./src/services/icons/presets/index.ts"); +var __extends = undefined && undefined.__extends || function () { + var _extendStatics = function extendStatics(d, b) { + _extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function (d, b) { + d.__proto__ = b; + } || function (d, b) { + for (var p in b) { + if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; + } + }; + + return _extendStatics(d, b); + }; + + return function (d, b) { + _extendStatics(d, b); + + function __() { + this.constructor = d; + } + + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +}(); // Extensions + + + // Utilities + + // Presets + + + +var Icons = +/** @class */ +function (_super) { + __extends(Icons, _super); + + function Icons(preset) { + var _this = _super.call(this) || this; + + var _a = preset[Icons.property], + iconfont = _a.iconfont, + values = _a.values; + _this.iconfont = iconfont; + _this.values = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["mergeDeep"])(_presets__WEBPACK_IMPORTED_MODULE_2__["default"][iconfont], values); + return _this; + } + + Icons.property = 'icons'; + return Icons; +}(_service__WEBPACK_IMPORTED_MODULE_0__["Service"]); + + + +/***/ }), + +/***/ "./src/services/icons/presets/fa-svg.ts": +/*!**********************************************!*\ + !*** ./src/services/icons/presets/fa-svg.ts ***! + \**********************************************/ +/*! exports provided: convertToComponentDeclarations, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "convertToComponentDeclarations", function() { return convertToComponentDeclarations; }); +/* harmony import */ var _fa__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./fa */ "./src/services/icons/presets/fa.ts"); + +function convertToComponentDeclarations(component, iconSet) { + var result = {}; + + for (var key in iconSet) { + result[key] = { + component: component, + props: { + icon: iconSet[key].split(' fa-') + } + }; + } + + return result; +} +/* harmony default export */ __webpack_exports__["default"] = (convertToComponentDeclarations('font-awesome-icon', _fa__WEBPACK_IMPORTED_MODULE_0__["default"])); + +/***/ }), + +/***/ "./src/services/icons/presets/fa.ts": +/*!******************************************!*\ + !*** ./src/services/icons/presets/fa.ts ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +var icons = { + complete: 'fas fa-check', + cancel: 'fas fa-times-circle', + close: 'fas fa-times', + delete: 'fas fa-times-circle', + clear: 'fas fa-times-circle', + success: 'fas fa-check-circle', + info: 'fas fa-info-circle', + warning: 'fas fa-exclamation', + error: 'fas fa-exclamation-triangle', + prev: 'fas fa-chevron-left', + next: 'fas fa-chevron-right', + checkboxOn: 'fas fa-check-square', + checkboxOff: 'far fa-square', + checkboxIndeterminate: 'fas fa-minus-square', + delimiter: 'fas fa-circle', + sort: 'fas fa-sort-up', + expand: 'fas fa-chevron-down', + menu: 'fas fa-bars', + subgroup: 'fas fa-caret-down', + dropdown: 'fas fa-caret-down', + radioOn: 'far fa-dot-circle', + radioOff: 'far fa-circle', + edit: 'fas fa-edit', + ratingEmpty: 'far fa-star', + ratingFull: 'fas fa-star', + ratingHalf: 'fas fa-star-half', + loading: 'fas fa-sync', + first: 'fas fa-step-backward', + last: 'fas fa-step-forward', + unfold: 'fas fa-arrows-alt-v', + file: 'fas fa-paperclip', + plus: 'fas fa-plus', + minus: 'fas fa-minus' +}; +/* harmony default export */ __webpack_exports__["default"] = (icons); + +/***/ }), + +/***/ "./src/services/icons/presets/fa4.ts": +/*!*******************************************!*\ + !*** ./src/services/icons/presets/fa4.ts ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +var icons = { + complete: 'fa fa-check', + cancel: 'fa fa-times-circle', + close: 'fa fa-times', + delete: 'fa fa-times-circle', + clear: 'fa fa-times-circle', + success: 'fa fa-check-circle', + info: 'fa fa-info-circle', + warning: 'fa fa-exclamation', + error: 'fa fa-exclamation-triangle', + prev: 'fa fa-chevron-left', + next: 'fa fa-chevron-right', + checkboxOn: 'fa fa-check-square', + checkboxOff: 'fa fa-square-o', + checkboxIndeterminate: 'fa fa-minus-square', + delimiter: 'fa fa-circle', + sort: 'fa fa-sort-up', + expand: 'fa fa-chevron-down', + menu: 'fa fa-bars', + subgroup: 'fa fa-caret-down', + dropdown: 'fa fa-caret-down', + radioOn: 'fa fa-dot-circle-o', + radioOff: 'fa fa-circle-o', + edit: 'fa fa-pencil', + ratingEmpty: 'fa fa-star-o', + ratingFull: 'fa fa-star', + ratingHalf: 'fa fa-star-half-o', + loading: 'fa fa-refresh', + first: 'fa fa-step-backward', + last: 'fa fa-step-forward', + unfold: 'fa fa-angle-double-down', + file: 'fa fa-paperclip', + plus: 'fa fa-plus', + minus: 'fa fa-minus' +}; +/* harmony default export */ __webpack_exports__["default"] = (icons); + +/***/ }), + +/***/ "./src/services/icons/presets/index.ts": +/*!*********************************************!*\ + !*** ./src/services/icons/presets/index.ts ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _mdi_svg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mdi-svg */ "./src/services/icons/presets/mdi-svg.ts"); +/* harmony import */ var _md__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./md */ "./src/services/icons/presets/md.ts"); +/* harmony import */ var _mdi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mdi */ "./src/services/icons/presets/mdi.ts"); +/* harmony import */ var _fa__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fa */ "./src/services/icons/presets/fa.ts"); +/* harmony import */ var _fa4__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./fa4 */ "./src/services/icons/presets/fa4.ts"); +/* harmony import */ var _fa_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./fa-svg */ "./src/services/icons/presets/fa-svg.ts"); + + + + + + +/* harmony default export */ __webpack_exports__["default"] = (Object.freeze({ + mdiSvg: _mdi_svg__WEBPACK_IMPORTED_MODULE_0__["default"], + md: _md__WEBPACK_IMPORTED_MODULE_1__["default"], + mdi: _mdi__WEBPACK_IMPORTED_MODULE_2__["default"], + fa: _fa__WEBPACK_IMPORTED_MODULE_3__["default"], + fa4: _fa4__WEBPACK_IMPORTED_MODULE_4__["default"], + faSvg: _fa_svg__WEBPACK_IMPORTED_MODULE_5__["default"] +})); + +/***/ }), + +/***/ "./src/services/icons/presets/md.ts": +/*!******************************************!*\ + !*** ./src/services/icons/presets/md.ts ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +var icons = { + complete: 'check', + cancel: 'cancel', + close: 'close', + delete: 'cancel', + clear: 'clear', + success: 'check_circle', + info: 'info', + warning: 'priority_high', + error: 'warning', + prev: 'chevron_left', + next: 'chevron_right', + checkboxOn: 'check_box', + checkboxOff: 'check_box_outline_blank', + checkboxIndeterminate: 'indeterminate_check_box', + delimiter: 'fiber_manual_record', + sort: 'arrow_upward', + expand: 'keyboard_arrow_down', + menu: 'menu', + subgroup: 'arrow_drop_down', + dropdown: 'arrow_drop_down', + radioOn: 'radio_button_checked', + radioOff: 'radio_button_unchecked', + edit: 'edit', + ratingEmpty: 'star_border', + ratingFull: 'star', + ratingHalf: 'star_half', + loading: 'cached', + first: 'first_page', + last: 'last_page', + unfold: 'unfold_more', + file: 'attach_file', + plus: 'add', + minus: 'remove' +}; +/* harmony default export */ __webpack_exports__["default"] = (icons); + +/***/ }), + +/***/ "./src/services/icons/presets/mdi-svg.ts": +/*!***********************************************!*\ + !*** ./src/services/icons/presets/mdi-svg.ts ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +var icons = { + complete: 'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z', + cancel: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z', + close: 'M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z', + delete: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z', + clear: 'M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z', + success: 'M12,2C17.52,2 22,6.48 22,12C22,17.52 17.52,22 12,22C6.48,22 2,17.52 2,12C2,6.48 6.48,2 12,2M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z', + info: 'M13,9H11V7H13M13,17H11V11H13M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z', + warning: 'M11,4.5H13V15.5H11V4.5M13,17.5V19.5H11V17.5H13Z', + error: 'M13,14H11V10H13M13,18H11V16H13M1,21H23L12,2L1,21Z', + prev: 'M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z', + next: 'M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z', + checkboxOn: 'M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z', + checkboxOff: 'M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z', + checkboxIndeterminate: 'M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z', + delimiter: 'M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z', + sort: 'M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z', + expand: 'M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z', + menu: 'M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z', + subgroup: 'M7,10L12,15L17,10H7Z', + dropdown: 'M7,10L12,15L17,10H7Z', + radioOn: 'M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2M12,7C9.24,7 7,9.24 7,12C7,14.76 9.24,17 12,17C14.76,17 17,14.76 17,12C17,9.24 14.76,7 12,7Z', + radioOff: 'M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z', + edit: 'M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z', + ratingEmpty: 'M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z', + ratingFull: 'M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z', + ratingHalf: 'M12,15.4V6.1L13.71,10.13L18.09,10.5L14.77,13.39L15.76,17.67M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z', + loading: 'M19,8L15,12H18C18,15.31 15.31,18 12,18C11,18 10.03,17.75 9.2,17.3L7.74,18.76C8.97,19.54 10.43,20 12,20C16.42,20 20,16.42 20,12H23M6,12C6,8.69 8.69,6 12,6C13,6 13.97,6.25 14.8,6.7L16.26,5.24C15.03,4.46 13.57,4 12,4C7.58,4 4,7.58 4,12H1L5,16L9,12', + first: 'M18.41,16.59L13.82,12L18.41,7.41L17,6L11,12L17,18L18.41,16.59M6,6H8V18H6V6Z', + last: 'M5.59,7.41L10.18,12L5.59,16.59L7,18L13,12L7,6L5.59,7.41M16,6H18V18H16V6Z', + unfold: 'M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z', + file: 'M16.5,6V17.5C16.5,19.71 14.71,21.5 12.5,21.5C10.29,21.5 8.5,19.71 8.5,17.5V5C8.5,3.62 9.62,2.5 11,2.5C12.38,2.5 13.5,3.62 13.5,5V15.5C13.5,16.05 13.05,16.5 12.5,16.5C11.95,16.5 11.5,16.05 11.5,15.5V6H10V15.5C10,16.88 11.12,18 12.5,18C13.88,18 15,16.88 15,15.5V5C15,2.79 13.21,1 11,1C8.79,1 7,2.79 7,5V17.5C7,20.54 9.46,23 12.5,23C15.54,23 18,20.54 18,17.5V6H16.5Z', + plus: 'M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z', + minus: 'M19,13H5V11H19V13Z' +}; +/* harmony default export */ __webpack_exports__["default"] = (icons); + +/***/ }), + +/***/ "./src/services/icons/presets/mdi.ts": +/*!*******************************************!*\ + !*** ./src/services/icons/presets/mdi.ts ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +var icons = { + complete: 'mdi-check', + cancel: 'mdi-close-circle', + close: 'mdi-close', + delete: 'mdi-close-circle', + clear: 'mdi-close', + success: 'mdi-check-circle', + info: 'mdi-information', + warning: 'mdi-exclamation', + error: 'mdi-alert', + prev: 'mdi-chevron-left', + next: 'mdi-chevron-right', + checkboxOn: 'mdi-checkbox-marked', + checkboxOff: 'mdi-checkbox-blank-outline', + checkboxIndeterminate: 'mdi-minus-box', + delimiter: 'mdi-circle', + sort: 'mdi-arrow-up', + expand: 'mdi-chevron-down', + menu: 'mdi-menu', + subgroup: 'mdi-menu-down', + dropdown: 'mdi-menu-down', + radioOn: 'mdi-radiobox-marked', + radioOff: 'mdi-radiobox-blank', + edit: 'mdi-pencil', + ratingEmpty: 'mdi-star-outline', + ratingFull: 'mdi-star', + ratingHalf: 'mdi-star-half-full', + loading: 'mdi-cached', + first: 'mdi-page-first', + last: 'mdi-page-last', + unfold: 'mdi-unfold-more-horizontal', + file: 'mdi-paperclip', + plus: 'mdi-plus', + minus: 'mdi-minus' +}; +/* harmony default export */ __webpack_exports__["default"] = (icons); + +/***/ }), + +/***/ "./src/services/index.ts": +/*!*******************************!*\ + !*** ./src/services/index.ts ***! + \*******************************/ +/*! exports provided: Application, Breakpoint, Goto, Icons, Lang, Presets, Theme */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _application__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./application */ "./src/services/application/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Application", function() { return _application__WEBPACK_IMPORTED_MODULE_0__["Application"]; }); + +/* harmony import */ var _breakpoint__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./breakpoint */ "./src/services/breakpoint/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Breakpoint", function() { return _breakpoint__WEBPACK_IMPORTED_MODULE_1__["Breakpoint"]; }); + +/* harmony import */ var _goto__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./goto */ "./src/services/goto/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Goto", function() { return _goto__WEBPACK_IMPORTED_MODULE_2__["Goto"]; }); + +/* harmony import */ var _icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./icons */ "./src/services/icons/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Icons", function() { return _icons__WEBPACK_IMPORTED_MODULE_3__["Icons"]; }); + +/* harmony import */ var _lang__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lang */ "./src/services/lang/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Lang", function() { return _lang__WEBPACK_IMPORTED_MODULE_4__["Lang"]; }); + +/* harmony import */ var _presets__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./presets */ "./src/services/presets/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Presets", function() { return _presets__WEBPACK_IMPORTED_MODULE_5__["Presets"]; }); + +/* harmony import */ var _theme__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./theme */ "./src/services/theme/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Theme", function() { return _theme__WEBPACK_IMPORTED_MODULE_6__["Theme"]; }); + + + + + + + + + +/***/ }), + +/***/ "./src/services/lang/index.ts": +/*!************************************!*\ + !*** ./src/services/lang/index.ts ***! + \************************************/ +/*! exports provided: Lang */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Lang", function() { return Lang; }); +/* harmony import */ var _service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../service */ "./src/services/service/index.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +var __extends = undefined && undefined.__extends || function () { + var _extendStatics = function extendStatics(d, b) { + _extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function (d, b) { + d.__proto__ = b; + } || function (d, b) { + for (var p in b) { + if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; + } + }; + + return _extendStatics(d, b); + }; + + return function (d, b) { + _extendStatics(d, b); + + function __() { + this.constructor = d; + } + + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +}(); + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + +var __spread = undefined && undefined.__spread || function () { + for (var ar = [], i = 0; i < arguments.length; i++) { + ar = ar.concat(__read(arguments[i])); + } + + return ar; +}; // Extensions + + + // Utilities + + + +var LANG_PREFIX = '$vuetify.'; +var fallback = Symbol('Lang fallback'); + +function getTranslation(locale, key, usingDefault, defaultLocale) { + if (usingDefault === void 0) { + usingDefault = false; + } + + var shortKey = key.replace(LANG_PREFIX, ''); + var translation = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__["getObjectValueByPath"])(locale, shortKey, fallback); + + if (translation === fallback) { + if (usingDefault) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_2__["consoleError"])("Translation key \"" + shortKey + "\" not found in fallback"); + translation = key; + } else { + Object(_util_console__WEBPACK_IMPORTED_MODULE_2__["consoleWarn"])("Translation key \"" + shortKey + "\" not found, falling back to default"); + translation = getTranslation(defaultLocale, key, true, defaultLocale); + } + } + + return translation; +} + +var Lang = +/** @class */ +function (_super) { + __extends(Lang, _super); + + function Lang(preset) { + var _this = _super.call(this) || this; + + _this.defaultLocale = 'en'; + var _a = preset[Lang.property], + current = _a.current, + locales = _a.locales, + t = _a.t; + _this.current = current; + _this.locales = locales; + _this.translator = t || _this.defaultTranslator; + return _this; + } + + Lang.prototype.currentLocale = function (key) { + var translation = this.locales[this.current]; + var defaultLocale = this.locales[this.defaultLocale]; + return getTranslation(translation, key, false, defaultLocale); + }; + + Lang.prototype.t = function (key) { + var params = []; + + for (var _i = 1; _i < arguments.length; _i++) { + params[_i - 1] = arguments[_i]; + } + + if (!key.startsWith(LANG_PREFIX)) return this.replace(key, params); + return this.translator.apply(this, __spread([key], params)); + }; + + Lang.prototype.defaultTranslator = function (key) { + var params = []; + + for (var _i = 1; _i < arguments.length; _i++) { + params[_i - 1] = arguments[_i]; + } + + return this.replace(this.currentLocale(key), params); + }; + + Lang.prototype.replace = function (str, params) { + return str.replace(/\{(\d+)\}/g, function (match, index) { + /* istanbul ignore next */ + return String(params[+index]); + }); + }; + + Lang.property = 'lang'; + return Lang; +}(_service__WEBPACK_IMPORTED_MODULE_0__["Service"]); + + + +/***/ }), + +/***/ "./src/services/presets/index.ts": +/*!***************************************!*\ + !*** ./src/services/presets/index.ts ***! + \***************************************/ +/*! exports provided: Presets */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Presets", function() { return Presets; }); +/* harmony import */ var _presets_default__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../presets/default */ "./src/presets/default/index.ts"); +/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/console */ "./src/util/console.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../service */ "./src/services/service/index.ts"); +var __extends = undefined && undefined.__extends || function () { + var _extendStatics = function extendStatics(d, b) { + _extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function (d, b) { + d.__proto__ = b; + } || function (d, b) { + for (var p in b) { + if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; + } + }; + + return _extendStatics(d, b); + }; + + return function (d, b) { + _extendStatics(d, b); + + function __() { + this.constructor = d; + } + + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +}(); + +var __rest = undefined && undefined.__rest || function (s, e) { + var t = {}; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; + } + + if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; + } + return t; +}; // Preset + + + // Utilities + + + + + +var Presets = +/** @class */ +function (_super) { + __extends(Presets, _super); + + function Presets(parentPreset, parent) { + var _this = _super.call(this) || this; // The default preset + + + var defaultPreset = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_2__["mergeDeep"])({}, _presets_default__WEBPACK_IMPORTED_MODULE_0__["preset"]); // The user provided preset + + var userPreset = parent.userPreset; // The user provided global preset + + var _a = userPreset.preset, + globalPreset = _a === void 0 ? {} : _a, + preset = __rest(userPreset, ["preset"]); + + if (globalPreset.preset != null) { + Object(_util_console__WEBPACK_IMPORTED_MODULE_1__["consoleWarn"])('Global presets do not support the **preset** option, it can be safely omitted'); + } + + parent.preset = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_2__["mergeDeep"])(Object(_util_helpers__WEBPACK_IMPORTED_MODULE_2__["mergeDeep"])(defaultPreset, globalPreset), preset); + return _this; + } + + Presets.property = 'presets'; + return Presets; +}(_service__WEBPACK_IMPORTED_MODULE_3__["Service"]); + + + +/***/ }), + +/***/ "./src/services/service/index.ts": +/*!***************************************!*\ + !*** ./src/services/service/index.ts ***! + \***************************************/ +/*! exports provided: Service */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Service", function() { return Service; }); +var Service = +/** @class */ +function () { + function Service() { + this.framework = {}; + } + + Service.prototype.init = function (root, ssrContext) {}; + + return Service; +}(); + + + +/***/ }), + +/***/ "./src/services/theme/index.ts": +/*!*************************************!*\ + !*** ./src/services/theme/index.ts ***! + \*************************************/ +/*! exports provided: Theme */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Theme", function() { return Theme; }); +/* harmony import */ var _service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../service */ "./src/services/service/index.ts"); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ "./src/services/theme/utils.ts"); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_3__); +var __extends = undefined && undefined.__extends || function () { + var _extendStatics = function extendStatics(d, b) { + _extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function (d, b) { + d.__proto__ = b; + } || function (d, b) { + for (var p in b) { + if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; + } + }; + + return _extendStatics(d, b); + }; + + return function (d, b) { + _extendStatics(d, b); + + function __() { + this.constructor = d; + } + + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +}(); +/* eslint-disable no-multi-spaces */ +// Extensions + + + // Utilities + + + // Types + + + +var Theme = +/** @class */ +function (_super) { + __extends(Theme, _super); + + function Theme(preset) { + var _this = _super.call(this) || this; + + _this.disabled = false; + _this.isDark = null; + _this.unwatch = null; + _this.vueMeta = null; + var _a = preset[Theme.property], + dark = _a.dark, + disable = _a.disable, + options = _a.options, + themes = _a.themes; + _this.dark = Boolean(dark); + _this.defaults = _this.themes = themes; + _this.options = options; + + if (disable) { + _this.disabled = true; + return _this; + } + + _this.themes = { + dark: _this.fillVariant(themes.dark, true), + light: _this.fillVariant(themes.light, false) + }; + return _this; + } + + Object.defineProperty(Theme.prototype, "css", { + // When setting css, check for element and apply new values + + /* eslint-disable-next-line accessor-pairs */ + set: function set(val) { + if (this.vueMeta) { + if (this.isVueMeta23) { + this.applyVueMeta23(); + } + + return; + } + + this.checkOrCreateStyleElement() && (this.styleEl.innerHTML = val); + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Theme.prototype, "dark", { + get: function get() { + return Boolean(this.isDark); + }, + set: function set(val) { + var oldDark = this.isDark; + this.isDark = val; // Only apply theme after dark + // has already been set before + + oldDark != null && this.applyTheme(); + }, + enumerable: false, + configurable: true + }); // Apply current theme default + // only called on client side + + Theme.prototype.applyTheme = function () { + if (this.disabled) return this.clearCss(); + this.css = this.generatedStyles; + }; + + Theme.prototype.clearCss = function () { + this.css = ''; + }; // Initialize theme for SSR and SPA + // Attach to ssrContext head or + // apply new theme to document + + + Theme.prototype.init = function (root, ssrContext) { + if (this.disabled) return; + /* istanbul ignore else */ + + if (root.$meta) { + this.initVueMeta(root); + } else if (ssrContext) { + this.initSSR(ssrContext); + } + + this.initTheme(root); + }; // Allows for you to set target theme + + + Theme.prototype.setTheme = function (theme, value) { + this.themes[theme] = Object.assign(this.themes[theme], value); + this.applyTheme(); + }; // Reset theme defaults + + + Theme.prototype.resetThemes = function () { + this.themes.light = Object.assign({}, this.defaults.light); + this.themes.dark = Object.assign({}, this.defaults.dark); + this.applyTheme(); + }; // Check for existence of style element + + + Theme.prototype.checkOrCreateStyleElement = function () { + this.styleEl = document.getElementById('vuetify-theme-stylesheet'); + /* istanbul ignore next */ + + if (this.styleEl) return true; + this.genStyleElement(); // If doesn't have it, create it + + return Boolean(this.styleEl); + }; + + Theme.prototype.fillVariant = function (theme, dark) { + if (theme === void 0) { + theme = {}; + } + + var defaultTheme = this.themes[dark ? 'dark' : 'light']; + return Object.assign({}, defaultTheme, theme); + }; // Generate the style element + // if applicable + + + Theme.prototype.genStyleElement = function () { + /* istanbul ignore if */ + if (typeof document === 'undefined') return; + /* istanbul ignore next */ + + this.styleEl = document.createElement('style'); + this.styleEl.type = 'text/css'; + this.styleEl.id = 'vuetify-theme-stylesheet'; + + if (this.options.cspNonce) { + this.styleEl.setAttribute('nonce', this.options.cspNonce); + } + + document.head.appendChild(this.styleEl); + }; + + Theme.prototype.initVueMeta = function (root) { + var _this = this; + + this.vueMeta = root.$meta(); + + if (this.isVueMeta23) { + // vue-meta needs to apply after mounted() + root.$nextTick(function () { + _this.applyVueMeta23(); + }); + return; + } + + var metaKeyName = typeof this.vueMeta.getOptions === 'function' ? this.vueMeta.getOptions().keyName : 'metaInfo'; + var metaInfo = root.$options[metaKeyName] || {}; + + root.$options[metaKeyName] = function () { + metaInfo.style = metaInfo.style || []; + var vuetifyStylesheet = metaInfo.style.find(function (s) { + return s.id === 'vuetify-theme-stylesheet'; + }); + + if (!vuetifyStylesheet) { + metaInfo.style.push({ + cssText: _this.generatedStyles, + type: 'text/css', + id: 'vuetify-theme-stylesheet', + nonce: (_this.options || {}).cspNonce + }); + } else { + vuetifyStylesheet.cssText = _this.generatedStyles; + } + + return metaInfo; + }; + }; + + Theme.prototype.applyVueMeta23 = function () { + var set = this.vueMeta.addApp('vuetify').set; + set({ + style: [{ + cssText: this.generatedStyles, + type: 'text/css', + id: 'vuetify-theme-stylesheet', + nonce: this.options.cspNonce + }] + }); + }; + + Theme.prototype.initSSR = function (ssrContext) { + // SSR + var nonce = this.options.cspNonce ? " nonce=\"" + this.options.cspNonce + "\"" : ''; + ssrContext.head = ssrContext.head || ''; + ssrContext.head += "<style type=\"text/css\" id=\"vuetify-theme-stylesheet\"" + nonce + ">" + this.generatedStyles + "</style>"; + }; + + Theme.prototype.initTheme = function (root) { + var _this = this; // Only watch for reactivity on client side + + + if (typeof document === 'undefined') return; // If we get here somehow, ensure + // existing instance is removed + + if (this.unwatch) { + this.unwatch(); + this.unwatch = null; + } // TODO: Update to use RFC if merged + // https://github.com/vuejs/rfcs/blob/advanced-reactivity-api/active-rfcs/0000-advanced-reactivity-api.md + + + root.$once('hook:created', function () { + var obs = vue__WEBPACK_IMPORTED_MODULE_3___default.a.observable({ + themes: _this.themes + }); + _this.unwatch = root.$watch(function () { + return obs.themes; + }, function () { + return _this.applyTheme(); + }, { + deep: true + }); + }); + this.applyTheme(); + }; + + Object.defineProperty(Theme.prototype, "currentTheme", { + get: function get() { + var target = this.dark ? 'dark' : 'light'; + return this.themes[target]; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Theme.prototype, "generatedStyles", { + get: function get() { + var theme = this.parsedTheme; + /* istanbul ignore next */ + + var options = this.options || {}; + var css; + + if (options.themeCache != null) { + css = options.themeCache.get(theme); + /* istanbul ignore if */ + + if (css != null) return css; + } + + css = _utils__WEBPACK_IMPORTED_MODULE_1__["genStyles"](theme, options.customProperties); + + if (options.minifyTheme != null) { + css = options.minifyTheme(css); + } + + if (options.themeCache != null) { + options.themeCache.set(theme, css); + } + + return css; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Theme.prototype, "parsedTheme", { + get: function get() { + return _utils__WEBPACK_IMPORTED_MODULE_1__["parse"](this.currentTheme || {}, undefined, Object(_util_helpers__WEBPACK_IMPORTED_MODULE_2__["getNestedValue"])(this.options, ['variations'], true)); + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Theme.prototype, "isVueMeta23", { + // Is using v2.3 of vue-meta + // https://github.com/nuxt/vue-meta/releases/tag/v2.3.0 + get: function get() { + return typeof this.vueMeta.addApp === 'function'; + }, + enumerable: false, + configurable: true + }); + Theme.property = 'theme'; + return Theme; +}(_service__WEBPACK_IMPORTED_MODULE_0__["Service"]); + + + +/***/ }), + +/***/ "./src/services/theme/utils.ts": +/*!*************************************!*\ + !*** ./src/services/theme/utils.ts ***! + \*************************************/ +/*! exports provided: parse, genStyles, genVariations, lighten, darken */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parse", function() { return parse; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "genStyles", function() { return genStyles; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "genVariations", function() { return genVariations; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lighten", function() { return lighten; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "darken", function() { return darken; }); +/* harmony import */ var _util_colorUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/colorUtils */ "./src/util/colorUtils.ts"); +/* harmony import */ var _util_color_transformSRGB__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/color/transformSRGB */ "./src/util/color/transformSRGB.ts"); +/* harmony import */ var _util_color_transformCIELAB__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/color/transformCIELAB */ "./src/util/color/transformCIELAB.ts"); +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +var __rest = undefined && undefined.__rest || function (s, e) { + var t = {}; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; + } + + if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; + } + return t; +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + + + + +function parse(theme, isItem, variations) { + if (isItem === void 0) { + isItem = false; + } + + if (variations === void 0) { + variations = true; + } + + var anchor = theme.anchor, + variant = __rest(theme, ["anchor"]); + + var colors = Object.keys(variant); + var parsedTheme = {}; + + for (var i = 0; i < colors.length; ++i) { + var name = colors[i]; + var value = theme[name]; + if (value == null) continue; + + if (!variations) { + parsedTheme[name] = { + base: Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_0__["intToHex"])(Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_0__["colorToInt"])(value)) + }; + } else if (isItem) { + /* istanbul ignore else */ + if (name === 'base' || name.startsWith('lighten') || name.startsWith('darken')) { + parsedTheme[name] = Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_0__["colorToHex"])(value); + } + } else if (_typeof(value) === 'object') { + parsedTheme[name] = parse(value, true, variations); + } else { + parsedTheme[name] = genVariations(name, Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_0__["colorToInt"])(value)); + } + } + + if (!isItem) { + parsedTheme.anchor = anchor || parsedTheme.base || parsedTheme.primary.base; + } + + return parsedTheme; +} +/** + * Generate the CSS for a base color (.primary) + */ + +var genBaseColor = function genBaseColor(name, value) { + return "\n.v-application ." + name + " {\n background-color: " + value + " !important;\n border-color: " + value + " !important;\n}\n.v-application ." + name + "--text {\n color: " + value + " !important;\n caret-color: " + value + " !important;\n}"; +}; +/** + * Generate the CSS for a variant color (.primary.darken-2) + */ + + +var genVariantColor = function genVariantColor(name, variant, value) { + var _a = __read(variant.split(/(\d)/, 2), 2), + type = _a[0], + n = _a[1]; + + return "\n.v-application ." + name + "." + type + "-" + n + " {\n background-color: " + value + " !important;\n border-color: " + value + " !important;\n}\n.v-application ." + name + "--text.text--" + type + "-" + n + " {\n color: " + value + " !important;\n caret-color: " + value + " !important;\n}"; +}; + +var genColorVariableName = function genColorVariableName(name, variant) { + if (variant === void 0) { + variant = 'base'; + } + + return "--v-" + name + "-" + variant; +}; + +var genColorVariable = function genColorVariable(name, variant) { + if (variant === void 0) { + variant = 'base'; + } + + return "var(" + genColorVariableName(name, variant) + ")"; +}; + +function genStyles(theme, cssVar) { + if (cssVar === void 0) { + cssVar = false; + } + + var anchor = theme.anchor, + variant = __rest(theme, ["anchor"]); + + var colors = Object.keys(variant); + if (!colors.length) return ''; + var variablesCss = ''; + var css = ''; + var aColor = cssVar ? genColorVariable('anchor') : anchor; + css += ".v-application a { color: " + aColor + "; }"; + cssVar && (variablesCss += " " + genColorVariableName('anchor') + ": " + anchor + ";\n"); + + for (var i = 0; i < colors.length; ++i) { + var name = colors[i]; + var value = theme[name]; + css += genBaseColor(name, cssVar ? genColorVariable(name) : value.base); + cssVar && (variablesCss += " " + genColorVariableName(name) + ": " + value.base + ";\n"); + var variants = Object.keys(value); + + for (var i_1 = 0; i_1 < variants.length; ++i_1) { + var variant_1 = variants[i_1]; + var variantValue = value[variant_1]; + if (variant_1 === 'base') continue; + css += genVariantColor(name, variant_1, cssVar ? genColorVariable(name, variant_1) : variantValue); + cssVar && (variablesCss += " " + genColorVariableName(name, variant_1) + ": " + variantValue + ";\n"); + } + } + + if (cssVar) { + variablesCss = ":root {\n" + variablesCss + "}\n\n"; + } + + return variablesCss + css; +} +function genVariations(name, value) { + var values = { + base: Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_0__["intToHex"])(value) + }; + + for (var i = 5; i > 0; --i) { + values["lighten" + i] = Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_0__["intToHex"])(lighten(value, i)); + } + + for (var i = 1; i <= 4; ++i) { + values["darken" + i] = Object(_util_colorUtils__WEBPACK_IMPORTED_MODULE_0__["intToHex"])(darken(value, i)); + } + + return values; +} +function lighten(value, amount) { + var lab = _util_color_transformCIELAB__WEBPACK_IMPORTED_MODULE_2__["fromXYZ"](_util_color_transformSRGB__WEBPACK_IMPORTED_MODULE_1__["toXYZ"](value)); + lab[0] = lab[0] + amount * 10; + return _util_color_transformSRGB__WEBPACK_IMPORTED_MODULE_1__["fromXYZ"](_util_color_transformCIELAB__WEBPACK_IMPORTED_MODULE_2__["toXYZ"](lab)); +} +function darken(value, amount) { + var lab = _util_color_transformCIELAB__WEBPACK_IMPORTED_MODULE_2__["fromXYZ"](_util_color_transformSRGB__WEBPACK_IMPORTED_MODULE_1__["toXYZ"](value)); + lab[0] = lab[0] - amount * 10; + return _util_color_transformSRGB__WEBPACK_IMPORTED_MODULE_1__["fromXYZ"](_util_color_transformCIELAB__WEBPACK_IMPORTED_MODULE_2__["toXYZ"](lab)); +} + +/***/ }), + +/***/ "./src/styles/components/_selection-controls.sass": +/*!********************************************************!*\ + !*** ./src/styles/components/_selection-controls.sass ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/styles/main.sass": +/*!******************************!*\ + !*** ./src/styles/main.sass ***! + \******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/util/color/transformCIELAB.ts": +/*!*******************************************!*\ + !*** ./src/util/color/transformCIELAB.ts ***! + \*******************************************/ +/*! exports provided: fromXYZ, toXYZ */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromXYZ", function() { return fromXYZ; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toXYZ", function() { return toXYZ; }); +var delta = 0.20689655172413793; // 6÷29 + +var cielabForwardTransform = function cielabForwardTransform(t) { + return t > Math.pow(delta, 3) ? Math.cbrt(t) : t / (3 * Math.pow(delta, 2)) + 4 / 29; +}; + +var cielabReverseTransform = function cielabReverseTransform(t) { + return t > delta ? Math.pow(t, 3) : 3 * Math.pow(delta, 2) * (t - 4 / 29); +}; + +function fromXYZ(xyz) { + var transform = cielabForwardTransform; + var transformedY = transform(xyz[1]); + return [116 * transformedY - 16, 500 * (transform(xyz[0] / 0.95047) - transformedY), 200 * (transformedY - transform(xyz[2] / 1.08883))]; +} +function toXYZ(lab) { + var transform = cielabReverseTransform; + var Ln = (lab[0] + 16) / 116; + return [transform(Ln + lab[1] / 500) * 0.95047, transform(Ln), transform(Ln - lab[2] / 200) * 1.08883]; +} + +/***/ }), + +/***/ "./src/util/color/transformSRGB.ts": +/*!*****************************************!*\ + !*** ./src/util/color/transformSRGB.ts ***! + \*****************************************/ +/*! exports provided: fromXYZ, toXYZ */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromXYZ", function() { return fromXYZ; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toXYZ", function() { return toXYZ; }); +/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/helpers */ "./src/util/helpers.ts"); + // For converting XYZ to sRGB + +var srgbForwardMatrix = [[3.2406, -1.5372, -0.4986], [-0.9689, 1.8758, 0.0415], [0.0557, -0.2040, 1.0570]]; // Forward gamma adjust + +var srgbForwardTransform = function srgbForwardTransform(C) { + return C <= 0.0031308 ? C * 12.92 : 1.055 * Math.pow(C, 1 / 2.4) - 0.055; +}; // For converting sRGB to XYZ + + +var srgbReverseMatrix = [[0.4124, 0.3576, 0.1805], [0.2126, 0.7152, 0.0722], [0.0193, 0.1192, 0.9505]]; // Reverse gamma adjust + +var srgbReverseTransform = function srgbReverseTransform(C) { + return C <= 0.04045 ? C / 12.92 : Math.pow((C + 0.055) / 1.055, 2.4); +}; + +function fromXYZ(xyz) { + var rgb = Array(3); + var transform = srgbForwardTransform; + var matrix = srgbForwardMatrix; // Matrix transform, then gamma adjustment + + for (var i = 0; i < 3; ++i) { + rgb[i] = Math.round(Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__["clamp"])(transform(matrix[i][0] * xyz[0] + matrix[i][1] * xyz[1] + matrix[i][2] * xyz[2])) * 255); + } // Rescale back to [0, 255] + + + return (rgb[0] << 16) + (rgb[1] << 8) + (rgb[2] << 0); +} +function toXYZ(rgb) { + var xyz = [0, 0, 0]; + var transform = srgbReverseTransform; + var matrix = srgbReverseMatrix; // Rescale from [0, 255] to [0, 1] then adjust sRGB gamma to linear RGB + + var r = transform((rgb >> 16 & 0xff) / 255); + var g = transform((rgb >> 8 & 0xff) / 255); + var b = transform((rgb >> 0 & 0xff) / 255); // Matrix color space transform + + for (var i = 0; i < 3; ++i) { + xyz[i] = matrix[i][0] * r + matrix[i][1] * g + matrix[i][2] * b; + } + + return xyz; +} + +/***/ }), + +/***/ "./src/util/colorUtils.ts": +/*!********************************!*\ + !*** ./src/util/colorUtils.ts ***! + \********************************/ +/*! exports provided: isCssColor, colorToInt, classToHex, intToHex, colorToHex, HSVAtoRGBA, RGBAtoHSVA, HSVAtoHSLA, HSLAtoHSVA, RGBAtoCSS, RGBtoCSS, RGBAtoHex, HexToRGBA, HexToHSVA, HSVAtoHex, parseHex, parseGradient, RGBtoInt, contrastRatio */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isCssColor", function() { return isCssColor; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "colorToInt", function() { return colorToInt; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "classToHex", function() { return classToHex; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "intToHex", function() { return intToHex; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "colorToHex", function() { return colorToHex; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HSVAtoRGBA", function() { return HSVAtoRGBA; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RGBAtoHSVA", function() { return RGBAtoHSVA; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HSVAtoHSLA", function() { return HSVAtoHSLA; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HSLAtoHSVA", function() { return HSLAtoHSVA; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RGBAtoCSS", function() { return RGBAtoCSS; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RGBtoCSS", function() { return RGBtoCSS; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RGBAtoHex", function() { return RGBAtoHex; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HexToRGBA", function() { return HexToRGBA; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HexToHSVA", function() { return HexToHSVA; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HSVAtoHex", function() { return HSVAtoHex; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseHex", function() { return parseHex; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseGradient", function() { return parseGradient; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RGBtoInt", function() { return RGBtoInt; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "contrastRatio", function() { return contrastRatio; }); +/* harmony import */ var _console__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./console */ "./src/util/console.ts"); +/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers */ "./src/util/helpers.ts"); +/* harmony import */ var _color_transformSRGB__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./color/transformSRGB */ "./src/util/color/transformSRGB.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; // Utilities + + + + + +function isCssColor(color) { + return !!color && !!color.match(/^(#|var\(--|(rgb|hsl)a?\()/); +} +function colorToInt(color) { + var rgb; + + if (typeof color === 'number') { + rgb = color; + } else if (typeof color === 'string') { + var c = color[0] === '#' ? color.substring(1) : color; + + if (c.length === 3) { + c = c.split('').map(function (char) { + return char + char; + }).join(''); + } + + if (c.length !== 6) { + Object(_console__WEBPACK_IMPORTED_MODULE_0__["consoleWarn"])("'" + color + "' is not a valid rgb color"); + } + + rgb = parseInt(c, 16); + } else { + throw new TypeError("Colors can only be numbers or strings, recieved " + (color == null ? color : color.constructor.name) + " instead"); + } + + if (rgb < 0) { + Object(_console__WEBPACK_IMPORTED_MODULE_0__["consoleWarn"])("Colors cannot be negative: '" + color + "'"); + rgb = 0; + } else if (rgb > 0xffffff || isNaN(rgb)) { + Object(_console__WEBPACK_IMPORTED_MODULE_0__["consoleWarn"])("'" + color + "' is not a valid rgb color"); + rgb = 0xffffff; + } + + return rgb; +} +function classToHex(color, colors, currentTheme) { + var _a = __read(color.toString().trim().replace('-', '').split(' ', 2), 2), + colorName = _a[0], + colorModifier = _a[1]; + + var hexColor = ''; + + if (colorName && colorName in colors) { + if (colorModifier && colorModifier in colors[colorName]) { + hexColor = colors[colorName][colorModifier]; + } else if ('base' in colors[colorName]) { + hexColor = colors[colorName].base; + } + } else if (colorName && colorName in currentTheme) { + hexColor = currentTheme[colorName]; + } + + return hexColor; +} +function intToHex(color) { + var hexColor = color.toString(16); + if (hexColor.length < 6) hexColor = '0'.repeat(6 - hexColor.length) + hexColor; + return '#' + hexColor; +} +function colorToHex(color) { + return intToHex(colorToInt(color)); +} +/** + * Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV + * + * @param color HSVA color as an array [0-360, 0-1, 0-1, 0-1] + */ + +function HSVAtoRGBA(hsva) { + var h = hsva.h, + s = hsva.s, + v = hsva.v, + a = hsva.a; + + var f = function f(n) { + var k = (n + h / 60) % 6; + return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0); + }; + + var rgb = [f(5), f(3), f(1)].map(function (v) { + return Math.round(v * 255); + }); + return { + r: rgb[0], + g: rgb[1], + b: rgb[2], + a: a + }; +} +/** + * Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV + * + * @param color RGBA color as an array [0-255, 0-255, 0-255, 0-1] + */ + +function RGBAtoHSVA(rgba) { + if (!rgba) return { + h: 0, + s: 1, + v: 1, + a: 1 + }; + var r = rgba.r / 255; + var g = rgba.g / 255; + var b = rgba.b / 255; + var max = Math.max(r, g, b); + var min = Math.min(r, g, b); + var h = 0; + + if (max !== min) { + if (max === r) { + h = 60 * (0 + (g - b) / (max - min)); + } else if (max === g) { + h = 60 * (2 + (b - r) / (max - min)); + } else if (max === b) { + h = 60 * (4 + (r - g) / (max - min)); + } + } + + if (h < 0) h = h + 360; + var s = max === 0 ? 0 : (max - min) / max; + var hsv = [h, s, max]; + return { + h: hsv[0], + s: hsv[1], + v: hsv[2], + a: rgba.a + }; +} +function HSVAtoHSLA(hsva) { + var h = hsva.h, + s = hsva.s, + v = hsva.v, + a = hsva.a; + var l = v - v * s / 2; + var sprime = l === 1 || l === 0 ? 0 : (v - l) / Math.min(l, 1 - l); + return { + h: h, + s: sprime, + l: l, + a: a + }; +} +function HSLAtoHSVA(hsl) { + var h = hsl.h, + s = hsl.s, + l = hsl.l, + a = hsl.a; + var v = l + s * Math.min(l, 1 - l); + var sprime = v === 0 ? 0 : 2 - 2 * l / v; + return { + h: h, + s: sprime, + v: v, + a: a + }; +} +function RGBAtoCSS(rgba) { + return "rgba(" + rgba.r + ", " + rgba.g + ", " + rgba.b + ", " + rgba.a + ")"; +} +function RGBtoCSS(rgba) { + return RGBAtoCSS(__assign(__assign({}, rgba), { + a: 1 + })); +} +function RGBAtoHex(rgba) { + var toHex = function toHex(v) { + var h = Math.round(v).toString(16); + return ('00'.substr(0, 2 - h.length) + h).toUpperCase(); + }; + + return "#" + [toHex(rgba.r), toHex(rgba.g), toHex(rgba.b), toHex(Math.round(rgba.a * 255))].join(''); +} +function HexToRGBA(hex) { + var rgba = Object(_helpers__WEBPACK_IMPORTED_MODULE_1__["chunk"])(hex.slice(1), 2).map(function (c) { + return parseInt(c, 16); + }); + return { + r: rgba[0], + g: rgba[1], + b: rgba[2], + a: Math.round(rgba[3] / 255 * 100) / 100 + }; +} +function HexToHSVA(hex) { + var rgb = HexToRGBA(hex); + return RGBAtoHSVA(rgb); +} +function HSVAtoHex(hsva) { + return RGBAtoHex(HSVAtoRGBA(hsva)); +} +function parseHex(hex) { + if (hex.startsWith('#')) { + hex = hex.slice(1); + } + + hex = hex.replace(/([^0-9a-f])/gi, 'F'); + + if (hex.length === 3 || hex.length === 4) { + hex = hex.split('').map(function (x) { + return x + x; + }).join(''); + } + + if (hex.length === 6) { + hex = Object(_helpers__WEBPACK_IMPORTED_MODULE_1__["padEnd"])(hex, 8, 'F'); + } else { + hex = Object(_helpers__WEBPACK_IMPORTED_MODULE_1__["padEnd"])(Object(_helpers__WEBPACK_IMPORTED_MODULE_1__["padEnd"])(hex, 6), 8, 'F'); + } + + return ("#" + hex).toUpperCase().substr(0, 9); +} +function parseGradient(gradient, colors, currentTheme) { + return gradient.replace(/([a-z]+(\s[a-z]+-[1-5])?)(?=$|,)/gi, function (x) { + return classToHex(x, colors, currentTheme) || x; + }).replace(/(rgba\()#[0-9a-f]+(?=,)/gi, function (x) { + return 'rgba(' + Object.values(HexToRGBA(parseHex(x.replace(/rgba\(/, '')))).slice(0, 3).join(','); + }); +} +function RGBtoInt(rgba) { + return (rgba.r << 16) + (rgba.g << 8) + rgba.b; +} +/** + * Returns the contrast ratio (1-21) between two colors. + * + * @param c1 First color + * @param c2 Second color + */ + +function contrastRatio(c1, c2) { + var _a = __read(Object(_color_transformSRGB__WEBPACK_IMPORTED_MODULE_2__["toXYZ"])(RGBtoInt(c1)), 2), + y1 = _a[1]; + + var _b = __read(Object(_color_transformSRGB__WEBPACK_IMPORTED_MODULE_2__["toXYZ"])(RGBtoInt(c2)), 2), + y2 = _b[1]; + + return (Math.max(y1, y2) + 0.05) / (Math.min(y1, y2) + 0.05); +} + +/***/ }), + +/***/ "./src/util/colors.ts": +/*!****************************!*\ + !*** ./src/util/colors.ts ***! + \****************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +var red = Object.freeze({ + base: '#f44336', + lighten5: '#ffebee', + lighten4: '#ffcdd2', + lighten3: '#ef9a9a', + lighten2: '#e57373', + lighten1: '#ef5350', + darken1: '#e53935', + darken2: '#d32f2f', + darken3: '#c62828', + darken4: '#b71c1c', + accent1: '#ff8a80', + accent2: '#ff5252', + accent3: '#ff1744', + accent4: '#d50000' +}); +var pink = Object.freeze({ + base: '#e91e63', + lighten5: '#fce4ec', + lighten4: '#f8bbd0', + lighten3: '#f48fb1', + lighten2: '#f06292', + lighten1: '#ec407a', + darken1: '#d81b60', + darken2: '#c2185b', + darken3: '#ad1457', + darken4: '#880e4f', + accent1: '#ff80ab', + accent2: '#ff4081', + accent3: '#f50057', + accent4: '#c51162' +}); +var purple = Object.freeze({ + base: '#9c27b0', + lighten5: '#f3e5f5', + lighten4: '#e1bee7', + lighten3: '#ce93d8', + lighten2: '#ba68c8', + lighten1: '#ab47bc', + darken1: '#8e24aa', + darken2: '#7b1fa2', + darken3: '#6a1b9a', + darken4: '#4a148c', + accent1: '#ea80fc', + accent2: '#e040fb', + accent3: '#d500f9', + accent4: '#aa00ff' +}); +var deepPurple = Object.freeze({ + base: '#673ab7', + lighten5: '#ede7f6', + lighten4: '#d1c4e9', + lighten3: '#b39ddb', + lighten2: '#9575cd', + lighten1: '#7e57c2', + darken1: '#5e35b1', + darken2: '#512da8', + darken3: '#4527a0', + darken4: '#311b92', + accent1: '#b388ff', + accent2: '#7c4dff', + accent3: '#651fff', + accent4: '#6200ea' +}); +var indigo = Object.freeze({ + base: '#3f51b5', + lighten5: '#e8eaf6', + lighten4: '#c5cae9', + lighten3: '#9fa8da', + lighten2: '#7986cb', + lighten1: '#5c6bc0', + darken1: '#3949ab', + darken2: '#303f9f', + darken3: '#283593', + darken4: '#1a237e', + accent1: '#8c9eff', + accent2: '#536dfe', + accent3: '#3d5afe', + accent4: '#304ffe' +}); +var blue = Object.freeze({ + base: '#2196f3', + lighten5: '#e3f2fd', + lighten4: '#bbdefb', + lighten3: '#90caf9', + lighten2: '#64b5f6', + lighten1: '#42a5f5', + darken1: '#1e88e5', + darken2: '#1976d2', + darken3: '#1565c0', + darken4: '#0d47a1', + accent1: '#82b1ff', + accent2: '#448aff', + accent3: '#2979ff', + accent4: '#2962ff' +}); +var lightBlue = Object.freeze({ + base: '#03a9f4', + lighten5: '#e1f5fe', + lighten4: '#b3e5fc', + lighten3: '#81d4fa', + lighten2: '#4fc3f7', + lighten1: '#29b6f6', + darken1: '#039be5', + darken2: '#0288d1', + darken3: '#0277bd', + darken4: '#01579b', + accent1: '#80d8ff', + accent2: '#40c4ff', + accent3: '#00b0ff', + accent4: '#0091ea' +}); +var cyan = Object.freeze({ + base: '#00bcd4', + lighten5: '#e0f7fa', + lighten4: '#b2ebf2', + lighten3: '#80deea', + lighten2: '#4dd0e1', + lighten1: '#26c6da', + darken1: '#00acc1', + darken2: '#0097a7', + darken3: '#00838f', + darken4: '#006064', + accent1: '#84ffff', + accent2: '#18ffff', + accent3: '#00e5ff', + accent4: '#00b8d4' +}); +var teal = Object.freeze({ + base: '#009688', + lighten5: '#e0f2f1', + lighten4: '#b2dfdb', + lighten3: '#80cbc4', + lighten2: '#4db6ac', + lighten1: '#26a69a', + darken1: '#00897b', + darken2: '#00796b', + darken3: '#00695c', + darken4: '#004d40', + accent1: '#a7ffeb', + accent2: '#64ffda', + accent3: '#1de9b6', + accent4: '#00bfa5' +}); +var green = Object.freeze({ + base: '#4caf50', + lighten5: '#e8f5e9', + lighten4: '#c8e6c9', + lighten3: '#a5d6a7', + lighten2: '#81c784', + lighten1: '#66bb6a', + darken1: '#43a047', + darken2: '#388e3c', + darken3: '#2e7d32', + darken4: '#1b5e20', + accent1: '#b9f6ca', + accent2: '#69f0ae', + accent3: '#00e676', + accent4: '#00c853' +}); +var lightGreen = Object.freeze({ + base: '#8bc34a', + lighten5: '#f1f8e9', + lighten4: '#dcedc8', + lighten3: '#c5e1a5', + lighten2: '#aed581', + lighten1: '#9ccc65', + darken1: '#7cb342', + darken2: '#689f38', + darken3: '#558b2f', + darken4: '#33691e', + accent1: '#ccff90', + accent2: '#b2ff59', + accent3: '#76ff03', + accent4: '#64dd17' +}); +var lime = Object.freeze({ + base: '#cddc39', + lighten5: '#f9fbe7', + lighten4: '#f0f4c3', + lighten3: '#e6ee9c', + lighten2: '#dce775', + lighten1: '#d4e157', + darken1: '#c0ca33', + darken2: '#afb42b', + darken3: '#9e9d24', + darken4: '#827717', + accent1: '#f4ff81', + accent2: '#eeff41', + accent3: '#c6ff00', + accent4: '#aeea00' +}); +var yellow = Object.freeze({ + base: '#ffeb3b', + lighten5: '#fffde7', + lighten4: '#fff9c4', + lighten3: '#fff59d', + lighten2: '#fff176', + lighten1: '#ffee58', + darken1: '#fdd835', + darken2: '#fbc02d', + darken3: '#f9a825', + darken4: '#f57f17', + accent1: '#ffff8d', + accent2: '#ffff00', + accent3: '#ffea00', + accent4: '#ffd600' +}); +var amber = Object.freeze({ + base: '#ffc107', + lighten5: '#fff8e1', + lighten4: '#ffecb3', + lighten3: '#ffe082', + lighten2: '#ffd54f', + lighten1: '#ffca28', + darken1: '#ffb300', + darken2: '#ffa000', + darken3: '#ff8f00', + darken4: '#ff6f00', + accent1: '#ffe57f', + accent2: '#ffd740', + accent3: '#ffc400', + accent4: '#ffab00' +}); +var orange = Object.freeze({ + base: '#ff9800', + lighten5: '#fff3e0', + lighten4: '#ffe0b2', + lighten3: '#ffcc80', + lighten2: '#ffb74d', + lighten1: '#ffa726', + darken1: '#fb8c00', + darken2: '#f57c00', + darken3: '#ef6c00', + darken4: '#e65100', + accent1: '#ffd180', + accent2: '#ffab40', + accent3: '#ff9100', + accent4: '#ff6d00' +}); +var deepOrange = Object.freeze({ + base: '#ff5722', + lighten5: '#fbe9e7', + lighten4: '#ffccbc', + lighten3: '#ffab91', + lighten2: '#ff8a65', + lighten1: '#ff7043', + darken1: '#f4511e', + darken2: '#e64a19', + darken3: '#d84315', + darken4: '#bf360c', + accent1: '#ff9e80', + accent2: '#ff6e40', + accent3: '#ff3d00', + accent4: '#dd2c00' +}); +var brown = Object.freeze({ + base: '#795548', + lighten5: '#efebe9', + lighten4: '#d7ccc8', + lighten3: '#bcaaa4', + lighten2: '#a1887f', + lighten1: '#8d6e63', + darken1: '#6d4c41', + darken2: '#5d4037', + darken3: '#4e342e', + darken4: '#3e2723' +}); +var blueGrey = Object.freeze({ + base: '#607d8b', + lighten5: '#eceff1', + lighten4: '#cfd8dc', + lighten3: '#b0bec5', + lighten2: '#90a4ae', + lighten1: '#78909c', + darken1: '#546e7a', + darken2: '#455a64', + darken3: '#37474f', + darken4: '#263238' +}); +var grey = Object.freeze({ + base: '#9e9e9e', + lighten5: '#fafafa', + lighten4: '#f5f5f5', + lighten3: '#eeeeee', + lighten2: '#e0e0e0', + lighten1: '#bdbdbd', + darken1: '#757575', + darken2: '#616161', + darken3: '#424242', + darken4: '#212121' +}); +var shades = Object.freeze({ + black: '#000000', + white: '#ffffff', + transparent: 'transparent' +}); +/* harmony default export */ __webpack_exports__["default"] = (Object.freeze({ + red: red, + pink: pink, + purple: purple, + deepPurple: deepPurple, + indigo: indigo, + blue: blue, + lightBlue: lightBlue, + cyan: cyan, + teal: teal, + green: green, + lightGreen: lightGreen, + lime: lime, + yellow: yellow, + amber: amber, + orange: orange, + deepOrange: deepOrange, + brown: brown, + blueGrey: blueGrey, + grey: grey, + shades: shades +})); + +/***/ }), + +/***/ "./src/util/console.ts": +/*!*****************************!*\ + !*** ./src/util/console.ts ***! + \*****************************/ +/*! exports provided: consoleInfo, consoleWarn, consoleError, deprecate, breaking, removed */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "consoleInfo", function() { return consoleInfo; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "consoleWarn", function() { return consoleWarn; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "consoleError", function() { return consoleError; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deprecate", function() { return deprecate; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "breaking", function() { return breaking; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removed", function() { return removed; }); +/* harmony import */ var _framework__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../framework */ "./src/framework.ts"); + + +function createMessage(message, vm, parent) { + if (_framework__WEBPACK_IMPORTED_MODULE_0__["default"].config.silent) return; + + if (parent) { + vm = { + _isVue: true, + $parent: parent, + $options: vm + }; + } + + if (vm) { + // Only show each message once per instance + vm.$_alreadyWarned = vm.$_alreadyWarned || []; + if (vm.$_alreadyWarned.includes(message)) return; + vm.$_alreadyWarned.push(message); + } + + return "[Vuetify] " + message + (vm ? generateComponentTrace(vm) : ''); +} + +function consoleInfo(message, vm, parent) { + var newMessage = createMessage(message, vm, parent); + newMessage != null && console.info(newMessage); +} +function consoleWarn(message, vm, parent) { + var newMessage = createMessage(message, vm, parent); + newMessage != null && console.warn(newMessage); +} +function consoleError(message, vm, parent) { + var newMessage = createMessage(message, vm, parent); + newMessage != null && console.error(newMessage); +} +function deprecate(original, replacement, vm, parent) { + consoleWarn("[UPGRADE] '" + original + "' is deprecated, use '" + replacement + "' instead.", vm, parent); +} +function breaking(original, replacement, vm, parent) { + consoleError("[BREAKING] '" + original + "' has been removed, use '" + replacement + "' instead. For more information, see the upgrade guide https://github.com/vuetifyjs/vuetify/releases/tag/v2.0.0#user-content-upgrade-guide", vm, parent); +} +function removed(original, vm, parent) { + consoleWarn("[REMOVED] '" + original + "' has been removed. You can safely omit it.", vm, parent); +} +/** + * Shamelessly stolen from vuejs/vue/blob/dev/src/core/util/debug.js + */ + +var classifyRE = /(?:^|[-_])(\w)/g; + +var classify = function classify(str) { + return str.replace(classifyRE, function (c) { + return c.toUpperCase(); + }).replace(/[-_]/g, ''); +}; + +function formatComponentName(vm, includeFile) { + if (vm.$root === vm) { + return '<Root>'; + } + + var options = typeof vm === 'function' && vm.cid != null ? vm.options : vm._isVue ? vm.$options || vm.constructor.options : vm || {}; + var name = options.name || options._componentTag; + var file = options.__file; + + if (!name && file) { + var match = file.match(/([^/\\]+)\.vue$/); + name = match && match[1]; + } + + return (name ? "<" + classify(name) + ">" : "<Anonymous>") + (file && includeFile !== false ? " at " + file : ''); +} + +function generateComponentTrace(vm) { + if (vm._isVue && vm.$parent) { + var tree = []; + var currentRecursiveSequence = 0; + + while (vm) { + if (tree.length > 0) { + var last = tree[tree.length - 1]; + + if (last.constructor === vm.constructor) { + currentRecursiveSequence++; + vm = vm.$parent; + continue; + } else if (currentRecursiveSequence > 0) { + tree[tree.length - 1] = [last, currentRecursiveSequence]; + currentRecursiveSequence = 0; + } + } + + tree.push(vm); + vm = vm.$parent; + } + + return '\n\nfound in\n\n' + tree.map(function (vm, i) { + return "" + (i === 0 ? '---> ' : ' '.repeat(5 + i * 2)) + (Array.isArray(vm) ? formatComponentName(vm[0]) + "... (" + vm[1] + " recursive calls)" : formatComponentName(vm)); + }).join('\n'); + } else { + return "\n\n(found in " + formatComponentName(vm) + ")"; + } +} + +/***/ }), + +/***/ "./src/util/dateTimeUtils.ts": +/*!***********************************!*\ + !*** ./src/util/dateTimeUtils.ts ***! + \***********************************/ +/*! exports provided: weekNumber, isLeapYear */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "weekNumber", function() { return weekNumber; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isLeapYear", function() { return isLeapYear; }); +function createUTCDate(year, month, day) { + if (month === void 0) { + month = 0; + } + + if (day === void 0) { + day = 1; + } + + var date; + + if (year < 100 && year >= 0) { + date = new Date(Date.UTC(year, month, day)); + + if (isFinite(date.getUTCFullYear())) { + date.setUTCFullYear(year); + } + } else { + date = new Date(Date.UTC(year, month, day)); + } + + return date; +} + +function firstWeekOffset(year, firstDayOfWeek, firstDayOfYear) { + var firstWeekDayInFirstWeek = 7 + firstDayOfWeek - firstDayOfYear; + var firstWeekDayOfYear = (7 + createUTCDate(year, 0, firstWeekDayInFirstWeek).getUTCDay() - firstDayOfWeek) % 7; + return -firstWeekDayOfYear + firstWeekDayInFirstWeek - 1; +} + +function dayOfYear(year, month, day, firstDayOfWeek) { + var dayOfYear = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334][month]; + + if (month > 1 && isLeapYear(year)) { + dayOfYear++; + } + + return dayOfYear + day; +} + +function weeksInYear(year, firstDayOfWeek, firstDayOfYear) { + var weekOffset = firstWeekOffset(year, firstDayOfWeek, firstDayOfYear); + var weekOffsetNext = firstWeekOffset(year + 1, firstDayOfWeek, firstDayOfYear); + var daysInYear = isLeapYear(year) ? 366 : 365; + return (daysInYear - weekOffset + weekOffsetNext) / 7; +} + +function weekNumber(year, month, day, firstDayOfWeek, localeFirstDayOfYear) { + var weekOffset = firstWeekOffset(year, firstDayOfWeek, localeFirstDayOfYear); + var week = Math.ceil((dayOfYear(year, month, day, firstDayOfWeek) - weekOffset) / 7); + + if (week < 1) { + return week + weeksInYear(year - 1, firstDayOfWeek, localeFirstDayOfYear); + } else if (week > weeksInYear(year, firstDayOfWeek, localeFirstDayOfYear)) { + return week - weeksInYear(year, firstDayOfWeek, localeFirstDayOfYear); + } else { + return week; + } +} +function isLeapYear(year) { + return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0; +} + +/***/ }), + +/***/ "./src/util/dedupeModelListeners.ts": +/*!******************************************!*\ + !*** ./src/util/dedupeModelListeners.ts ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return dedupeModelListeners; }); +/** + * Removes duplicate `@input` listeners when + * using v-model with functional components + * + * @see https://github.com/vuetifyjs/vuetify/issues/4460 + */ +function dedupeModelListeners(data) { + if (data.model && data.on && data.on.input) { + if (Array.isArray(data.on.input)) { + var i = data.on.input.indexOf(data.model.callback); + if (i > -1) data.on.input.splice(i, 1); + } else { + delete data.on.input; + } + } +} + +/***/ }), + +/***/ "./src/util/helpers.ts": +/*!*****************************!*\ + !*** ./src/util/helpers.ts ***! + \*****************************/ +/*! exports provided: createSimpleFunctional, directiveConfig, addOnceEventListener, passiveSupported, addPassiveEventListener, getNestedValue, deepEqual, getObjectValueByPath, getPropertyFromItem, createRange, getZIndex, escapeHTML, filterObjectOnKeys, convertToUnit, kebabCase, isObject, keyCodes, remapInternalIcon, keys, camelize, arrayDiff, upperFirst, groupItems, wrapInArray, sortItems, defaultFilter, searchItems, getSlotType, debounce, throttle, getPrefixedScopedSlots, getSlot, clamp, padEnd, chunk, humanReadableFileSize, camelizeObjectKeys, mergeDeep, fillArray */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createSimpleFunctional", function() { return createSimpleFunctional; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "directiveConfig", function() { return directiveConfig; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addOnceEventListener", function() { return addOnceEventListener; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "passiveSupported", function() { return passiveSupported; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addPassiveEventListener", function() { return addPassiveEventListener; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNestedValue", function() { return getNestedValue; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deepEqual", function() { return deepEqual; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getObjectValueByPath", function() { return getObjectValueByPath; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPropertyFromItem", function() { return getPropertyFromItem; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createRange", function() { return createRange; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getZIndex", function() { return getZIndex; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "escapeHTML", function() { return escapeHTML; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "filterObjectOnKeys", function() { return filterObjectOnKeys; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "convertToUnit", function() { return convertToUnit; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "kebabCase", function() { return kebabCase; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isObject", function() { return isObject; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyCodes", function() { return keyCodes; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "remapInternalIcon", function() { return remapInternalIcon; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keys", function() { return keys; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "camelize", function() { return camelize; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "arrayDiff", function() { return arrayDiff; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "upperFirst", function() { return upperFirst; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "groupItems", function() { return groupItems; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "wrapInArray", function() { return wrapInArray; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sortItems", function() { return sortItems; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultFilter", function() { return defaultFilter; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "searchItems", function() { return searchItems; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSlotType", function() { return getSlotType; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "debounce", function() { return debounce; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "throttle", function() { return throttle; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPrefixedScopedSlots", function() { return getPrefixedScopedSlots; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSlot", function() { return getSlot; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clamp", function() { return clamp; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "padEnd", function() { return padEnd; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "chunk", function() { return chunk; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "humanReadableFileSize", function() { return humanReadableFileSize; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "camelizeObjectKeys", function() { return camelizeObjectKeys; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeDeep", function() { return mergeDeep; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fillArray", function() { return fillArray; }); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + +var __spread = undefined && undefined.__spread || function () { + for (var ar = [], i = 0; i < arguments.length; i++) { + ar = ar.concat(__read(arguments[i])); + } + + return ar; +}; + + +function createSimpleFunctional(c, el, name) { + if (el === void 0) { + el = 'div'; + } + + return vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + name: name || c.replace(/__/g, '-'), + functional: true, + render: function render(h, _a) { + var data = _a.data, + children = _a.children; + data.staticClass = (c + " " + (data.staticClass || '')).trim(); + return h(el, data, children); + } + }); +} +function directiveConfig(binding, defaults) { + if (defaults === void 0) { + defaults = {}; + } + + return __assign(__assign(__assign(__assign({}, defaults), binding.modifiers), { + value: binding.arg + }), binding.value || {}); +} +function addOnceEventListener(el, eventName, cb, options) { + if (options === void 0) { + options = false; + } + + var once = function once(event) { + cb(event); + el.removeEventListener(eventName, once, options); + }; + + el.addEventListener(eventName, once, options); +} +var passiveSupported = false; + +try { + if (typeof window !== 'undefined') { + var testListenerOpts = Object.defineProperty({}, 'passive', { + get: function get() { + passiveSupported = true; + } + }); + window.addEventListener('testListener', testListenerOpts, testListenerOpts); + window.removeEventListener('testListener', testListenerOpts, testListenerOpts); + } +} catch (e) { + console.warn(e); +} + + +function addPassiveEventListener(el, event, cb, options) { + el.addEventListener(event, cb, passiveSupported ? options : false); +} +function getNestedValue(obj, path, fallback) { + var last = path.length - 1; + if (last < 0) return obj === undefined ? fallback : obj; + + for (var i = 0; i < last; i++) { + if (obj == null) { + return fallback; + } + + obj = obj[path[i]]; + } + + if (obj == null) return fallback; + return obj[path[last]] === undefined ? fallback : obj[path[last]]; +} +function deepEqual(a, b) { + if (a === b) return true; + + if (a instanceof Date && b instanceof Date && a.getTime() !== b.getTime()) { + // If the values are Date, compare them as timestamps + return false; + } + + if (a !== Object(a) || b !== Object(b)) { + // If the values aren't objects, they were already checked for equality + return false; + } + + var props = Object.keys(a); + + if (props.length !== Object.keys(b).length) { + // Different number of props, don't bother to check + return false; + } + + return props.every(function (p) { + return deepEqual(a[p], b[p]); + }); +} +function getObjectValueByPath(obj, path, fallback) { + // credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621 + if (obj == null || !path || typeof path !== 'string') return fallback; + if (obj[path] !== undefined) return obj[path]; + path = path.replace(/\[(\w+)\]/g, '.$1'); // convert indexes to properties + + path = path.replace(/^\./, ''); // strip a leading dot + + return getNestedValue(obj, path.split('.'), fallback); +} +function getPropertyFromItem(item, property, fallback) { + if (property == null) return item === undefined ? fallback : item; + if (item !== Object(item)) return fallback === undefined ? item : fallback; + if (typeof property === 'string') return getObjectValueByPath(item, property, fallback); + if (Array.isArray(property)) return getNestedValue(item, property, fallback); + if (typeof property !== 'function') return fallback; + var value = property(item, fallback); + return typeof value === 'undefined' ? fallback : value; +} +function createRange(length) { + return Array.from({ + length: length + }, function (v, k) { + return k; + }); +} +function getZIndex(el) { + if (!el || el.nodeType !== Node.ELEMENT_NODE) return 0; + var index = +window.getComputedStyle(el).getPropertyValue('z-index'); + if (!index) return getZIndex(el.parentNode); + return index; +} +var tagsToReplace = { + '&': '&', + '<': '<', + '>': '>' +}; +function escapeHTML(str) { + return str.replace(/[&<>]/g, function (tag) { + return tagsToReplace[tag] || tag; + }); +} +function filterObjectOnKeys(obj, keys) { + var filtered = {}; + + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + + if (typeof obj[key] !== 'undefined') { + filtered[key] = obj[key]; + } + } + + return filtered; +} +function convertToUnit(str, unit) { + if (unit === void 0) { + unit = 'px'; + } + + if (str == null || str === '') { + return undefined; + } else if (isNaN(+str)) { + return String(str); + } else { + return "" + Number(str) + unit; + } +} +function kebabCase(str) { + return (str || '').replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase(); +} +function isObject(obj) { + return obj !== null && _typeof(obj) === 'object'; +} // KeyboardEvent.keyCode aliases + +var keyCodes = Object.freeze({ + enter: 13, + tab: 9, + delete: 46, + esc: 27, + space: 32, + up: 38, + down: 40, + left: 37, + right: 39, + end: 35, + home: 36, + del: 46, + backspace: 8, + insert: 45, + pageup: 33, + pagedown: 34 +}); // This remaps internal names like '$cancel' or '$vuetify.icons.cancel' +// to the current name or component for that icon. + +function remapInternalIcon(vm, iconName) { + if (!iconName.startsWith('$')) { + return iconName; + } // Get the target icon name + + + var iconPath = "$vuetify.icons.values." + iconName.split('$').pop().split('.').pop(); // Now look up icon indirection name, + // e.g. '$vuetify.icons.values.cancel' + + return getObjectValueByPath(vm, iconPath, iconName); +} +function keys(o) { + return Object.keys(o); +} +/** + * Camelize a hyphen-delimited string. + */ + +var camelizeRE = /-(\w)/g; +var camelize = function camelize(str) { + return str.replace(camelizeRE, function (_, c) { + return c ? c.toUpperCase() : ''; + }); +}; +/** + * Returns the set difference of B and A, i.e. the set of elements in B but not in A + */ + +function arrayDiff(a, b) { + var diff = []; + + for (var i = 0; i < b.length; i++) { + if (a.indexOf(b[i]) < 0) diff.push(b[i]); + } + + return diff; +} +/** + * Makes the first character of a string uppercase + */ + +function upperFirst(str) { + return str.charAt(0).toUpperCase() + str.slice(1); +} +function groupItems(items, groupBy, groupDesc) { + var key = groupBy[0]; + var groups = []; + var current = null; + + for (var i = 0; i < items.length; i++) { + var item = items[i]; + var val = getObjectValueByPath(item, key); + + if (current !== val) { + current = val; + groups.push({ + name: val, + items: [] + }); + } + + groups[groups.length - 1].items.push(item); + } + + return groups; +} +function wrapInArray(v) { + return v != null ? Array.isArray(v) ? v : [v] : []; +} +function sortItems(items, sortBy, sortDesc, locale, customSorters) { + if (sortBy === null || !sortBy.length) return items; + var stringCollator = new Intl.Collator(locale, { + sensitivity: 'accent', + usage: 'sort' + }); + return items.sort(function (a, b) { + var _a, _b; + + for (var i = 0; i < sortBy.length; i++) { + var sortKey = sortBy[i]; + var sortA = getObjectValueByPath(a, sortKey); + var sortB = getObjectValueByPath(b, sortKey); + + if (sortDesc[i]) { + _a = __read([sortB, sortA], 2), sortA = _a[0], sortB = _a[1]; + } + + if (customSorters && customSorters[sortKey]) { + var customResult = customSorters[sortKey](sortA, sortB); + if (!customResult) continue; + return customResult; + } // Check if both cannot be evaluated + + + if (sortA === null && sortB === null) { + continue; + } + + _b = __read([sortA, sortB].map(function (s) { + return (s || '').toString().toLocaleLowerCase(); + }), 2), sortA = _b[0], sortB = _b[1]; + + if (sortA !== sortB) { + if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB); + return stringCollator.compare(sortA, sortB); + } + } + + return 0; + }); +} +function defaultFilter(value, search, item) { + return value != null && search != null && typeof value !== 'boolean' && value.toString().toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) !== -1; +} +function searchItems(items, search) { + if (!search) return items; + search = search.toString().toLowerCase(); + if (search.trim() === '') return items; + return items.filter(function (item) { + return Object.keys(item).some(function (key) { + return defaultFilter(getObjectValueByPath(item, key), search, item); + }); + }); +} +/** + * Returns: + * - 'normal' for old style slots - `<template slot="default">` + * - 'scoped' for old style scoped slots (`<template slot="default" slot-scope="data">`) or bound v-slot (`#default="data"`) + * - 'v-slot' for unbound v-slot (`#default`) - only if the third param is true, otherwise counts as scoped + */ + +function getSlotType(vm, name, split) { + if (vm.$slots[name] && vm.$scopedSlots[name] && vm.$scopedSlots[name].name) { + return split ? 'v-slot' : 'scoped'; + } + + if (vm.$slots[name]) return 'normal'; + if (vm.$scopedSlots[name]) return 'scoped'; +} +function debounce(fn, delay) { + var timeoutId = 0; + return function () { + var args = []; + + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + + clearTimeout(timeoutId); + timeoutId = setTimeout(function () { + return fn.apply(void 0, __spread(args)); + }, delay); + }; +} +function throttle(fn, limit) { + var throttling = false; + return function () { + var args = []; + + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + + if (!throttling) { + throttling = true; + setTimeout(function () { + return throttling = false; + }, limit); + return fn.apply(void 0, __spread(args)); + } + }; +} +function getPrefixedScopedSlots(prefix, scopedSlots) { + return Object.keys(scopedSlots).filter(function (k) { + return k.startsWith(prefix); + }).reduce(function (obj, k) { + obj[k.replace(prefix, '')] = scopedSlots[k]; + return obj; + }, {}); +} +function getSlot(vm, name, data, optional) { + if (name === void 0) { + name = 'default'; + } + + if (optional === void 0) { + optional = false; + } + + if (vm.$scopedSlots[name]) { + return vm.$scopedSlots[name](data instanceof Function ? data() : data); + } else if (vm.$slots[name] && (!data || optional)) { + return vm.$slots[name]; + } + + return undefined; +} +function clamp(value, min, max) { + if (min === void 0) { + min = 0; + } + + if (max === void 0) { + max = 1; + } + + return Math.max(min, Math.min(max, value)); +} +function padEnd(str, length, char) { + if (char === void 0) { + char = '0'; + } + + return str + char.repeat(Math.max(0, length - str.length)); +} +function chunk(str, size) { + if (size === void 0) { + size = 1; + } + + var chunked = []; + var index = 0; + + while (index < str.length) { + chunked.push(str.substr(index, size)); + index += size; + } + + return chunked; +} +function humanReadableFileSize(bytes, binary) { + if (binary === void 0) { + binary = false; + } + + var base = binary ? 1024 : 1000; + + if (bytes < base) { + return bytes + " B"; + } + + var prefix = binary ? ['Ki', 'Mi', 'Gi'] : ['k', 'M', 'G']; + var unit = -1; + + while (Math.abs(bytes) >= base && unit < prefix.length - 1) { + bytes /= base; + ++unit; + } + + return bytes.toFixed(1) + " " + prefix[unit] + "B"; +} +function camelizeObjectKeys(obj) { + if (!obj) return {}; + return Object.keys(obj).reduce(function (o, key) { + o[camelize(key)] = obj[key]; + return o; + }, {}); +} +function mergeDeep(source, target) { + if (source === void 0) { + source = {}; + } + + if (target === void 0) { + target = {}; + } + + for (var key in target) { + var sourceProperty = source[key]; + var targetProperty = target[key]; // Only continue deep merging if + // both properties are objects + + if (isObject(sourceProperty) && isObject(targetProperty)) { + source[key] = mergeDeep(sourceProperty, targetProperty); + continue; + } + + source[key] = targetProperty; + } + + return source; +} +function fillArray(length, obj) { + return Array(length).fill(obj); +} + +/***/ }), + +/***/ "./src/util/mergeData.ts": +/*!*******************************!*\ + !*** ./src/util/mergeData.ts ***! + \*******************************/ +/*! exports provided: default, mergeStyles, mergeClasses, mergeListeners */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return mergeData; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeStyles", function() { return mergeStyles; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeClasses", function() { return mergeClasses; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeListeners", function() { return mergeListeners; }); +/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers */ "./src/util/helpers.ts"); +var __assign = undefined && undefined.__assign || function () { + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + + for (var p in s) { + if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + } + + return t; + }; + + return __assign.apply(this, arguments); +}; + +var __values = undefined && undefined.__values || function (o) { + var s = typeof Symbol === "function" && Symbol.iterator, + m = s && o[s], + i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function next() { + if (o && i >= o.length) o = void 0; + return { + value: o && o[i++], + done: !o + }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); +}; + +var __read = undefined && undefined.__read || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { + ar.push(r.value); + } + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + + return ar; +}; + + +var pattern = { + styleList: /;(?![^(]*\))/g, + styleProp: /:(.*)/ +}; + +function parseStyle(style) { + var e_1, _a; + + var styleMap = {}; + + try { + for (var _b = __values(style.split(pattern.styleList)), _c = _b.next(); !_c.done; _c = _b.next()) { + var s = _c.value; + + var _d = __read(s.split(pattern.styleProp), 2), + key = _d[0], + val = _d[1]; + + key = key.trim(); + + if (!key) { + continue; + } // May be undefined if the `key: value` pair is incomplete. + + + if (typeof val === 'string') { + val = val.trim(); + } + + styleMap[Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["camelize"])(key)] = val; + } + } catch (e_1_1) { + e_1 = { + error: e_1_1 + }; + } finally { + try { + if (_c && !_c.done && (_a = _b.return)) _a.call(_b); + } finally { + if (e_1) throw e_1.error; + } + } + + return styleMap; +} + +function mergeData() { + var e_2, _a; + + var mergeTarget = {}; + var i = arguments.length; + var prop; // Allow for variadic argument length. + + while (i--) { + try { + // Iterate through the data properties and execute merge strategies + // Object.keys eliminates need for hasOwnProperty call + for (var _b = (e_2 = void 0, __values(Object.keys(arguments[i]))), _c = _b.next(); !_c.done; _c = _b.next()) { + prop = _c.value; + + switch (prop) { + // Array merge strategy (array concatenation) + case 'class': + case 'directives': + if (arguments[i][prop]) { + mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop]); + } + + break; + + case 'style': + if (arguments[i][prop]) { + mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop]); + } + + break; + // Space delimited string concatenation strategy + + case 'staticClass': + if (!arguments[i][prop]) { + break; + } + + if (mergeTarget[prop] === undefined) { + mergeTarget[prop] = ''; + } + + if (mergeTarget[prop]) { + // Not an empty string, so concatenate + mergeTarget[prop] += ' '; + } + + mergeTarget[prop] += arguments[i][prop].trim(); + break; + // Object, the properties of which to merge via array merge strategy (array concatenation). + // Callback merge strategy merges callbacks to the beginning of the array, + // so that the last defined callback will be invoked first. + // This is done since to mimic how Object.assign merging + // uses the last given value to assign. + + case 'on': + case 'nativeOn': + if (arguments[i][prop]) { + mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop]); + } + + break; + // Object merge strategy + + case 'attrs': + case 'props': + case 'domProps': + case 'scopedSlots': + case 'staticStyle': + case 'hook': + case 'transition': + if (!arguments[i][prop]) { + break; + } + + if (!mergeTarget[prop]) { + mergeTarget[prop] = {}; + } + + mergeTarget[prop] = __assign(__assign({}, arguments[i][prop]), mergeTarget[prop]); + break; + // Reassignment strategy (no merge) + + default: + // slot, key, ref, tag, show, keepAlive + if (!mergeTarget[prop]) { + mergeTarget[prop] = arguments[i][prop]; + } + + } + } + } catch (e_2_1) { + e_2 = { + error: e_2_1 + }; + } finally { + try { + if (_c && !_c.done && (_a = _b.return)) _a.call(_b); + } finally { + if (e_2) throw e_2.error; + } + } + } + + return mergeTarget; +} +function mergeStyles(target, source) { + if (!target) return source; + if (!source) return target; + target = Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["wrapInArray"])(typeof target === 'string' ? parseStyle(target) : target); + return target.concat(typeof source === 'string' ? parseStyle(source) : source); +} +function mergeClasses(target, source) { + if (!source) return target; + if (!target) return source; + return target ? Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["wrapInArray"])(target).concat(source) : source; +} +function mergeListeners() { + var args = []; + + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + + if (!args[0]) return args[1]; + if (!args[1]) return args[0]; + var dest = {}; + + for (var i = 2; i--;) { + var arg = args[i]; + + for (var event in arg) { + if (!arg[event]) continue; + + if (dest[event]) { + // Merge current listeners before (because we are iterating backwards). + // Note that neither "target" or "source" must be altered. + dest[event] = [].concat(arg[event], dest[event]); + } else { + // Straight assign. + dest[event] = arg[event]; + } + } + } + + return dest; +} + +/***/ }), + +/***/ "./src/util/mixins.ts": +/*!****************************!*\ + !*** ./src/util/mixins.ts ***! + \****************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return mixins; }); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); +/* eslint-disable max-len, import/export, no-use-before-define */ + +function mixins() { + var args = []; + + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + + return vue__WEBPACK_IMPORTED_MODULE_0___default.a.extend({ + mixins: args + }); +} + +/***/ }), + +/***/ "./src/util/rebuildFunctionalSlots.ts": +/*!********************************************!*\ + !*** ./src/util/rebuildFunctionalSlots.ts ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return rebuildFunctionalSlots; }); +function rebuildFunctionalSlots(slots, h) { + var children = []; + + for (var slot in slots) { + if (slots.hasOwnProperty(slot)) { + children.push(h('template', { + slot: slot + }, slots[slot])); + } + } + + return children; +} + +/***/ }), + +/***/ "vue": +/*!******************************************************************************!*\ + !*** external {"commonjs":"vue","commonjs2":"vue","amd":"vue","root":"Vue"} ***! + \******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE_vue__; + +/***/ }) + +/******/ })["default"]; +}); +//# sourceMappingURL=vuetify.js.map \ No newline at end of file diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/lang/en/local_fliplearning.php b/NMP 3.0 Moodle Pluggin/fliplearning/lang/en/local_fliplearning.php new file mode 100644 index 0000000000000000000000000000000000000000..3b26dd51dcc74026005cd1cfb4a9a8ab2449db8e --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/lang/en/local_fliplearning.php @@ -0,0 +1,718 @@ +<?php +// Ce fichier fait partie de Moodle - http://moodle.org/ +// +// Moodle est un logiciel libre: vous pouvez le redistribuer et / ou le modifier +// selon les termes de la licence publique générale GNU comme publié par +// la Free Software Foundation, soit la version 3 de la licence, soit +// (à votre choix) toute version ultérieure. +// +// Moodle est distribué dans l\'espoir qu'il sera utile, +// mais SANS AUCUNE GARANTIE; sans même la garantie implicite de +// QUALITÉ MARCHANDE ou d\'aDÉQUATION À UN USAGE PARTICULIER. Voir la +// Licence publique générale GNU pour plus de détails. +// +// Vous devriez avoir reçu une copie de la licence publique générale GNU +// avec Moodle. Sinon, consultez <http://www.gnu.org/licenses/>. + +/** +* Plugin chains are defined here. +* +* @package local_fliplearning +* @category string +* @author 2021 Éric Bart <bart.eric@hotmail.com> +* @copyright 2020 Edisson Sigma <edissonf.sigua@gmail.com>, Bryan Aguilar <bryan.aguilar6174@gmail.com> +* @license http://www.gnu.org/copyleft /gpl.html GNU GPL v3 ou version ultérieure +*/ + +defined ('MOODLE_INTERNAL') || die(); + +$string['pluginname'] = 'NoteMyProgress'; + +/* Global */ +$string['pagination'] = 'Week:'; +$string['graph_generating'] = 'We are building the report, please wait a moment.'; +$string['weeks_not_config'] = 'The course has not been configured by the teacher, so there are no visualizations to display.'; +$string['pagination_title'] = 'Selection of the week'; +$string['helplabel'] = 'Help'; +$string['exitbutton'] = 'OK!'; +$string['no_data'] = 'There is no data to display'; +$string['only_student'] = 'This report is for students only'; +$string["fml_send_mail"] = "(Click to send an e-mail)"; +$string["fml_about"] = "About this chart"; +$string["fml_about_table"] = "About this table"; +$string["fml_not_configured"] = "Not configured"; +$string["fml_activated"] = "Activated"; +$string["fml_disabled"] = "Disabled"; + +/* Menu */ +$string['menu_main_title'] = "Progression of the scoreboard"; +$string['menu_sessions'] = 'Study session'; +$string['menu_setweek'] = "Define the weeks"; +$string['menu_time'] = 'Time tracking'; +$string['menu_assignments'] = 'Monitoring of deposits'; +$string['menu_grades'] = 'Tracking grades'; +$string['menu_quiz'] = 'Follow-up of evaluations'; +$string['menu_dropout'] = 'Dropout'; +$string['menu_logs'] = "Activity reports"; +$string['menu_general'] = "Global indicators"; + +/* Nav Bar Menu */ +$string['togglemenu'] = 'Show / Hide the NoteMyProgress menu'; + +/* Composant de pagination */ +$string['pagination_component_to'] = 'al'; +$string['pagination_component_name'] = 'Week'; + +/* Goups */ +$string['group_allstudent'] = 'All students'; + +/* Erreurs générales */ +$string['api_error_network'] = "An error occurred during communication with the server."; +$string['api_invalid_data'] = 'Invalid data'; +$string['api_save_successful'] = 'The data has been correctly recorded on the server'; +$string['api_cancel_action'] = 'You have cancelled the action '; + +/* Admin Task Screen */ +$string['generate_data_task'] = 'Data generation process for the NoteMyProgress plugin'; + +/* Graphique */ +$string['chart_loading'] = 'Loading...'; +$string['chart_exportButtonTitle'] = "Export"; +$string['chart_printButtonTitle'] = "Print"; +$string['chart_rangeSelectorFrom'] = "From"; +$string['chart_rangeSelectorTo'] = "To"; +$string['chart_rangeSelectorZoom'] = "Range"; +$string['chart_downloadPNG'] = 'Download a PNG image'; +$string['chart_downloadJPEG'] = 'Download a JPEG image'; +$string['chart_downloadPDF'] = 'Download a PDF document'; +$string['chart_downloadSVG'] = 'Download a SVG image'; +$string['chart_downloadCSV'] = 'Download CSV'; +$string['chart_downloadXLS'] = 'Download XLS'; +$string['chart_exitFullscreen'] = 'Exit full screen'; +$string['chart_hideData'] = 'Hide the data table'; +$string['chart_noData'] = 'There is no data to display '; +$string['chart_printChart'] = 'Print the chart'; +$string['chart_viewData'] = 'Display the data table'; +$string['chart_viewFullscreen'] = 'View full screen'; +$string['chart_resetZoom'] = 'Restart the zoom'; +$string['chart_resetZoomTitle'] = 'Reset zoom level 1: 1'; + +/* Définir les semaines */ +$string['setweeks_title'] = 'Course weeks configuration'; +$string['setweeks_description'] = 'To start, you must set up the course by weeks and define a start date for the first week (the rest of the weeks will be done automatically from this date onwards). Then, you must associate the related activities or modules to each week by dragging them from the right column to the corresponding week. It is not necessary to assign all the activities or modules to the weeks, just those that you want to consider for tracking the students. Finally, click on the Save button to keep your settings. '; +$string['setweeks_sections'] = "Sections available in the course"; +$string['setweeks_weeks_of_course'] = "Planning the weeks"; +$string['setweeks_add_new_week'] = "Add a week"; +$string['setweeks_start'] = "Start the:"; +$string['setweeks_end'] = "End the:"; +$string['setweeks_week'] = "Week"; +$string['setweeks_save'] = "Save configuration"; +$string['setweeks_time_dedication'] = 'How many hours of work do you expect students to put into your course this week ?'; +$string['setweeks_enable_scroll'] = "Activate the scroll mode for weeks and themes"; +$string['setweeks_label_section_removed'] = "Removed from the course"; +$string['setweeks_error_section_removed'] = "A section assigned to a week has been removed from the course, you must remove it from your plan to continue."; +$string['setweeks_save_warning_title'] = "Are you sure you want to save the changes ?"; +$string['setweeks_save_warning_content'] = "If you change the configuration of weeks where the course has already started, data may be lost..."; +$string['setweeks_confirm_ok'] = "Save"; +$string['setweeks_confirm_cancel'] = "Cancel"; +$string['setweeks_error_empty_week'] = "You cannot save changes with an empty week. Please delete it and try again."; +$string['setweeks_new_group_title'] = "New instance of configuration"; +$string['setweeks_new_group_text'] = "We have detected that your course is finished, if you wish to set up the weeks to work with new students you need to activate the button below. This will separate the data of current students from previous courses, avoiding mixing them up. "; +$string['setweeks_new_group_button_label'] = "Save the configuration as a new instance"; +$string['course_format_weeks'] = 'Week'; +$string['course_format_topics'] = 'Topic'; +$string['course_format_social'] = 'Social'; +$string['course_format_singleactivity'] = 'Single activity'; +$string['plugin_requirements_title'] = 'Status:'; +$string['plugin_requirements_descriptions'] = 'The plugin will be visible and display reports for students and teachers when the following conditions are met...'; +$string['plugin_requirements_has_users'] = 'The course must have at least one student enrolled'; +$string['plugin_requirements_course_start'] = 'The current date must be later than the start date of the first configured week.'; +$string['plugin_requirements_has_sections'] = 'The configured weeks must contain at least one section.'; +$string['plugin_visible'] = 'Visible reports.'; +$string['plugin_hidden'] = 'Hidden reports.'; +$string['title_conditions'] = 'Terms of use '; + +/* Heure */ +$string['fml_mon'] = 'Monday'; +$string['fml_tue'] = 'Tuesday'; +$string['fml_wed'] = 'Wednesday'; +$string['fml_thu'] = 'Thursday'; +$string['fml_fri'] = 'Friday'; +$string['fml_sat'] = 'Saturday'; +$string['fml_sun'] = 'Sunday'; +$string['fml_mon_short'] = 'Mon'; +$string['fml_tue_short'] = 'Tue'; +$string['fml_wed_short'] = 'Wed'; +$string['fml_thu_short'] = 'Thu'; +$string['fml_fri_short'] = 'Fri'; +$string['fml_sat_short'] = 'Sat'; +$string['fml_sun_short'] = 'Sun'; + +$string['fml_jan'] = 'January'; +$string['fml_feb'] = 'February'; +$string['fml_mar'] = 'March'; +$string['fml_apr'] = 'April'; +$string['fml_may'] = 'May'; +$string['fml_jun'] = 'June'; +$string['fml_jul'] = 'July'; +$string['fml_aug'] = 'August'; +$string['fml_sep'] = 'September'; +$string['fml_oct'] = 'October'; +$string['fml_nov'] = 'November'; +$string['fml_dec'] = 'December'; +$string['fml_jan_short'] = 'Jan'; +$string['fml_feb_short'] = 'Feb'; +$string['fml_mar_short'] = 'Mar'; +$string['fml_apr_short'] = 'Apr'; +$string['fml_may_short'] = 'May'; +$string['fml_jun_short'] = 'Jun'; +$string['fml_jul_short'] = 'Jul'; +$string['fml_aug_short'] = 'Aug'; +$string['fml_sep_short'] = 'Sep'; +$string['fml_oct_short'] = 'Oct'; +$string['fml_nov_short'] = 'Nov'; +$string['fml_dec_short'] = 'Dec'; + +$string['fml_week1'] = 'Week 1'; +$string['fml_week2'] = 'Week 2'; +$string['fml_week3'] = 'Week 3'; +$string['fml_week4'] = 'Week 4'; +$string['fml_week5'] = 'Week 5'; +$string['fml_week6'] = 'Week 6'; + +$string['fml_00'] = '12:00am'; +$string['fml_01'] = '01:00am'; +$string['fml_02'] = '02:00am'; +$string['fml_03'] = '03:00am'; +$string['fml_04'] = '04:00am'; +$string['fml_05'] = '05:00am'; +$string['fml_06'] = '06:00am'; +$string['fml_07'] = '07:00am'; +$string['fml_08'] = '08:00am'; +$string['fml_09'] = '09:00am'; +$string['fml_10'] = '10:00am'; +$string['fml_11'] = '11:00am'; +$string['fml_12'] = '12:00pm'; +$string['fml_13'] = '01:00pm'; +$string['fml_14'] = '02:00pm'; +$string['fml_15'] = '03:00pm'; +$string['fml_16'] = '04:00pm'; +$string['fml_17'] = '05:00pm'; +$string['fml_18'] = '06:00pm'; +$string['fml_19'] = '07:00pm'; +$string['fml_20'] = '08:00pm'; +$string['fml_21'] = '09:00pm'; +$string['fml_22'] = '10:00pm'; +$string['fml_23'] = '11:00pm'; + +/* Enseignant général */ +$string['tg_section_help_title'] = 'Global indicators'; +$string['tg_section_help_description'] = 'This section contains views with general indicators related to course setup, resources assigned per week, study sessions and student progress through the course. The views in this section show indicators from the start date to the end date of the course (or the current date if the course is not yet finished).'; +$string['tg_week_resources_help_title'] = 'Resources per week'; +$string['tg_week_resources_help_description_p1'] = 'This graph displays the amount of resources for each of the course sections assigned to each study week configured in the <i>Configure Weeks</i> section. If a week has two or more course sections assigned to it, the resources of those sections are added together for the calculation of the total resources for a week. '; +$string['tg_week_resources_help_description_p2'] = 'On the x-axis of the graph are the total resources and activities of the sections assigned to each configured week of NoteMyProgress. On the y-axis are the configured study weeks. '; +$string['tg_weeks_sessions_help_title'] = 'Sessions per week'; +$string['tg_week_sessions_help_description_p1'] = 'This graph shows the number of study sessions completed by students in each week from the start date of the course. The student\'s access to the course is considered as the start of a study session. A session is considered completed when the time elapsed between two student interactions exceeds 30 minutes. '; +$string['tg_week_sessions_help_description_p2'] = 'On the x-axis of the graph are the weeks of each month. The y-axis of the graph shows the different months of the year from the month of course creation. To maintain the symmetry of the graph, a total of five weeks has been placed for each month, however, each month does not have that many weeks. These months will only add sessions up to the fourth week.'; +$string['tg_progress_table_help_title'] = 'Student progress'; +$string['tg_progress_table_help_description'] = 'This table shows a list of all students enrolled in the course together with their progress, number of sessions and time spent. For the calculation of the progress all the resources of the course have been considered except for those of type <i>Label</i>. To determine whether a student has completed a resource, the first step is to check whether the resource has the completeness setting enabled. If so, we look to see if the student has already completed the activity based on that setting. Otherwise, the activity is considered complete if the student has viewed it at least once. '; + +$string['fml_title'] = 'Work sessions'; +$string['table_title'] = 'Course progress'; +$string['thead_name'] = 'First name'; +$string['thead_lastname'] = 'Last name'; +$string['thead_email'] = 'Mail'; +$string['thead_progress'] = 'Progression (%)'; +$string['thead_sessions'] = 'Sessions'; +$string['thead_time'] = 'Time invested'; + +$string['fml_module_label'] = 'ressource'; +$string['fml_modules_label'] = 'ressources'; +$string['fml_of_conector'] = 'of'; +$string['fml_finished_label'] = 'finished'; +$string['fml_finisheds_label'] = 'finished'; + +$string['fml_smaller30'] = 'Under 30 minutes'; +$string['fml_greater30'] = 'Over 30 minutes'; +$string['fml_greater60'] = 'Over 60 minutes'; + +$string['fml_session_count_title'] = 'Sessions of the week'; +$string['fml_session_count_yaxis_title'] = 'Number of Sessions'; +$string['fml_session_count_tooltip_suffix'] = ' sessions'; + +$string['fml_hours_sessions_title'] = 'Sessions by day and time'; +$string['fml_weeks_sessions_title'] = 'Sessions per week'; + +$string["fml_session_text"] = "session"; +$string["fml_sessions_text"] = "sessions"; + +$string['ss_change_timezone'] = 'Timezone:'; +// $string['ss_activity_inside_plataform_student'] = 'Mon activité sur la plateforme'; +// $string['ss_activity_inside_plataform_teacher'] = 'Activité des étudiants sur la plateforme'; +// $string['ss_time_inside_plataform_student'] = 'Mon temps sur la plateforme'; +// $string['ss_time_inside_plataform_teacher'] = 'Temps moyen passé par les étudiants sur la plateforme cette semaine'; +// $string['ss_time_inside_plataform_description_teacher'] = 'Temps que l’élève a investi dans la semaine sélectionnée, par rapport au temps que l’enseignant a prévu de l’investir. Le temps passé affiché correspond à la moyenne de tous les élèves. Le temps prévu par l’enseignant est le temps attribué par l’enseignant dans <i> Configurer les semaines </i>. '; +// $string['ss_time_inside_plataform_description_student'] = 'Temps passé cette semaine par rapport au temps que l’enseignant a prévu de passer.'; +// $string['ss_activity_inside_plataform_description_teacher'] = 'Les heures de la journée sont indiquées sur l\'axe Y et les jours de la semaine sur l\'axe X. Dans le graphique, vous pouvez trouver plusieurs points qui, en les survolant, offrent des informations détaillées sur les interactions des étudiants, regroupées par type de ressource (nombre d\'interactions, nombre d\'étudiants qui ont interagi avec la ressource et moyenne des interactions). <br/> <br/> <b> En cliquant sur les balises, vous pourrez filtrer par type de ressource, ne laissant visibles que celles qui ne sont pas barrées. </b> '; +// $string['ss_activity_inside_plataform_description_student'] = 'Afficher les interactions par type de ressource et planification. Lorsque vous survolez un point visible du graphique, vous verrez le nombre d\'interactions regroupées par type de ressource. En cliquant sur les balises, vous pourrez filtrer par type de ressource. '; + +/* Sessions de l\'enseignant */ +$string['ts_section_help_title'] = 'Study sessions'; +$string['ts_section_help_description'] = 'This section contains visualisations related to student activity in the course measured in terms of sessions completed, average time spent in the course per week and study sessions at time intervals. The data presented in this section varies depending on the study week selected. '; +$string['ts_inverted_time_help_title'] = 'Time invested by students'; +$string['ts_inverted_time_help_description_p1'] = 'This graph shows the average time spent by students during the week compared to the average time expected by the teacher.'; +$string['ts_inverted_time_help_description_p2'] = 'On the x-axis of the graph is the number of hours the teacher has planned for a specific week. On the y-axis are the labels for average time spent and average time that should be spent. '; +$string['ts_hours_sessions_help_title'] = 'Sessions by day and time'; +$string['ts_hours_sessions_help_description_p1'] = 'This graph shows the study sessions by day and time of the selected week. The student\'s access to the course is considered as the start of a study session. A session is considered finished when the time elapsed between two student interactions exceeds 30 minutes. '; +$string['ts_hours_sessions_help_description_p2'] = 'On the x-axis of the graph are the days of the week. On the y-axis are the hours of the day starting at 12am and ending at 11pm or 11pm.'; +$string['ts_sessions_count_help_title'] = 'Sessions of the Week'; +$string['ts_sessions_count_help_description_p1'] = 'This graph shows the number of sessions classified by their duration in time ranges: less than 30 minutes, more than 30 minutes and more than 60 minutes. The student\'s access to the course is considered as the start of a study session. A session is considered finished when the time elapsed between two student interactions exceeds 30 minutes.'; +$string['ts_sessions_count_help_description_p2'] = 'On the x-axis of the graph are the days of the configured week. On the y-axis is the number of sessions held.'; + +$string['fml_time_inverted_title'] = 'Time invested by students'; +$string['fml_time_inverted_x_axis'] = 'Number of hours'; +$string['fml_inverted_time'] = 'Average time invested'; +$string['fml_expected_time'] = 'Average time to invest'; + +$string['fml_year'] = 'year'; +$string['fml_years'] = 'years'; +$string['fml_month'] = 'month'; +$string['fml_months'] = 'months'; +$string['fml_day'] = 'day'; +$string['fml_days'] = 'days'; +$string['fml_hour'] = 'hour'; +$string['fml_hours'] = 'hours'; +$string['fml_hours_short'] = 'h'; +$string['fml_minute'] = 'minute'; +$string['fml_minutes'] = 'minutes'; +$string['fml_minutes_short'] = 'm'; +$string['fml_second'] = 'second'; +$string['fml_seconds'] = 'seconds'; +$string['fml_seconds_short'] = 's'; +$string['fml_ago'] = 'ago'; +$string['fml_now'] = 'now'; + +/*Devoirs des enseignants */ + +$string['ta_section_help_title'] = 'Task monitoring'; +$string['ta_section_help_description'] = 'This section contains indicators related to the delivery of assignments to drop-off areas and access to resources. The data presented in this section will vary depending on the study week selected. '; +$string['ta_assigns_submissions_help_title'] = 'Follow-up of homework submitted in the deposit areas'; +$string['ta_assigns_submissions_help_description_p1'] = 'This graph shows the distribution of the number of students, in relation to the delivery status of an assignment in the drop-off areas.'; +$string['ta_assigns_submissions_help_description_p2'] = 'On the x-axis of the graph are the names of the repositories for the selected week\'s sections with the date and time of expected delivery. On the y-axis is the distribution of the number of students according to the delivery status submitted (green), not submitted (red), submitted late (yellow). By clicking on the different areas of the graph, you can send an email to the groups of students you want (those who sent the assignment late or not, those who sent their assignment on time...).'; +$string['ta_access_content_help_title'] = 'Access to the course content '; +$string['ta_access_content_help_description_p1'] = 'This graph shows the number of students who have and have not accessed the course resources. At the top are the different types of Moodle resources, with the ability to filter the graph information according to the type of resource selected. '; +$string['ta_access_content_help_description_p2'] = 'The x-axis of the graph shows the number of students enrolled in the course. The y-axis of the graph shows the section resources assigned for the week. In addition, this graph allows you to send an email to students who have accessed the resource or to those who have not by clicking on the graph. '; + +/* Assign Submissions */ +$string['fml_intime_sub'] = 'Assignment submitted on time'; +$string['fml_late_sub'] = 'Late submission of assignments.'; +$string['fml_no_sub'] = 'Assignment not submitted'; +$string['fml_assign_nodue'] = 'No deadline'; +$string['fml_assignsubs_title'] = 'Follow-up of submitted assignments in the deposit areas'; +$string['fml_assignsubs_yaxis'] = 'Number of students'; + + +/* Accès au contenu */ +$string['fml_assign'] = 'Assign'; +$string['fml_assignment'] = 'Assignment'; +$string['fml_attendance'] = 'Attendance'; +$string['fml_book'] = 'Book'; +$string['fml_chat'] = 'Chat'; +$string['fml_choice'] = 'Choice'; +$string['fml_data'] = 'Database'; +$string['fml_feedback'] = 'Feedback'; +$string['fml_folder'] = 'Folder'; +$string['fml_forum'] = 'Forum'; +$string['fml_glossary'] = 'Glossary'; +$string['fml_h5pactivity'] = 'H5P'; +$string['fml_imscp'] = 'IMS Content'; +$string['fml_label'] = 'Label'; +$string['fml_lesson'] = 'Lesson'; +$string['fml_lti'] = 'LTI Content'; +$string['fml_page'] = 'Page'; +$string['fml_quiz'] = 'Quiz'; +$string['fml_resource'] = 'Resource'; +$string['fml_scorm'] = 'Package SCORM'; +$string['fml_survey'] = 'Survey'; +$string['fml_url'] = 'Url'; +$string['fml_wiki'] = 'Wiki'; +$string['fml_workshop'] = 'Workshop'; + +$string['fml_access'] = 'Accessed'; +$string['fml_no_access'] = 'No access'; +$string['fml_access_chart_title'] = 'Access to the course content'; +$string['fml_access_chart_yaxis_label'] = 'Number of students'; +$string['fml_access_chart_suffix'] = 'students'; + + +/* Email */ +$string['fml_validation_subject_text'] = 'The subject is mandatory'; +$string['fml_validation_message_text'] = 'Please write a message'; +$string['fml_subject_label'] = 'Add a topic'; +$string['fml_message_label'] = 'Add a message'; + +$string['fml_submit_button'] = 'Send'; +$string['fml_cancel_button'] = 'Cancel'; +$string['fml_close_button'] = 'Close'; +$string['fml_emailform_title'] = 'Send an e-mail'; +$string['fml_sending_text'] = 'Sending emails'; + +$string['fml_recipients_label'] = 'To'; +$string['fml_mailsended_text'] = 'mails sent'; + +$string['fml_email_footer_text'] = 'This is an email sent with note my progress.'; +$string['fml_email_footer_prefix'] = 'Go to'; +$string['fml_email_footer_suffix'] = 'for more information.'; +$string['fml_mailsended_text'] = 'Emails sent'; + +$string['fml_assign_url'] = '/mod/assign/view.php?id='; +$string['fml_assignment_url'] = '/mod/assignment/view.php?id='; +$string['fml_book_url'] = '/mod/book/view.php?id='; +$string['fml_chat_url'] = '/mod/chat/view.php?id='; +$string['fml_choice_url'] = '/mod/choice/view.php?id='; +$string['fml_data_url'] = '/mod/data/view.php?id='; +$string['fml_feedback_url'] = '/mod/feedback/view.php?id='; +$string['fml_folder_url'] = '/mod/folder/view.php?id='; +$string['fml_forum_url'] = '/mod/forum/view.php?id='; +$string['fml_glossary_url'] = '/mod/glossary/view.php?id='; +$string['fml_h5pactivity_url'] = '/mod/h5pactivity/view.php?id='; +$string['fml_imscp_url'] = '/mod/imscp/view.php?id='; +$string['fml_label_url'] = '/mod/label/view.php?id='; +$string['fml_lesson_url'] = '/mod/lesson/view.php?id='; +$string['fml_lti_url'] = '/mod/lti/view.php?id='; +$string['fml_page_url'] = '/mod/page/view.php?id='; +$string['fml_quiz_url'] = '/mod/quiz/view.php?id='; +$string['fml_resource_url'] = '/mod/resource/view.php?id='; +$string['fml_scorm_url'] = '/mod/scorm/view.php?id='; +$string['fml_survey_url'] = '/mod/survey/view.php?id='; +$string['fml_url_url'] = '/mod/url/view.php?id='; +$string['fml_wiki_url'] = '/mod/wiki/view.php?id='; +$string['fml_workshop_url'] = '/mod/workshop/view.php?id='; +$string['fml_course_url'] = '/course/view.php?id='; + + +/* Évaluation de l\'enseignant */ +$string['tr_section_help_title'] = 'Suivi des notes'; +$string['tr_section_help_description'] = 'This section contains indicators related to grade averages in assessable activities. The different teaching units (Qualification Categories) created by the teacher are displayed in the <i>Qualification Category </i> selector. This selector will allow you to switch between the different units defined and show the activities that can be assessed in each. '; +$string['tr_grade_items_average_help_title'] = 'Average of assessable activities'; +$string['tr_grade_items_average_help_description_p1'] = 'This graph shows the average (percentage) score of students in each of the assessable activities in the course. The percentage average is calculated based on the maximum score for the assessable activity (e.g. an assessable activity with a maximum score of 80 and an average score of 26 will have a bar height of 33%, as 26 is 33% of the total score). The grade point average has been expressed in terms of percentages in order to preserve the symmetry of the graph, as Moodle allows you to create activities and assign custom grades. '; +$string['tr_grade_items_average_help_description_p2'] = 'On the x-axis of the graph are the different assessable activities of the course. On the y-axis is the weighted average expressed as a percentage. '; +$string['tr_grade_items_average_help_description_p3'] = 'Clicking on the bar for an assessable activity will update the data in the two lower graphs to show additional information about the selected assessable activity.'; +$string['tr_item_grades_details_help_title'] = 'Best grade, worst grade and average grade'; +$string['tr_item_grades_details_help_description_p1'] = 'This graph shows the best, average and worst score for an assessable activity (the activity selected in the table of average assessable activities).'; +$string['tr_item_grades_details_help_description_p2'] = 'On the x-axis of the graph is the activity score, with the maximum activity score being the maximum value on this axis. On the y-axis are the labels for the best score, average score and worst score. '; +$string['tr_item_grades_distribution_help_title'] = 'Distribution of grades'; +$string['tr_item_grades_distribution_help_description_p1'] = 'This graph shows the distribution of students in different grade ranges. The score ranges are calculated according to percentages. The following ranges are considered: less than 50%, more than 50%, more than 60%, more than 70%, more than 80% and more than 90%. These ranges are calculated according to the maximum weight that the teacher assigns to an assessable activity. '; +$string['tr_item_grades_distribution_help_description_p2'] = 'On the x-axis are the ranges of activity scores. On the y-axis is the number of students belonging to a certain rank. '; +$string['tr_item_grades_distribution_help_description_p3'] = 'By clicking on the bar corresponding to a rank, you can send an email to the students in the ranking.'; + +/* Notes */ +$string['fml_grades_select_label'] = 'Grade category'; +$string['fml_grades_chart_title'] = 'Averages of assessable activities'; +$string['fml_grades_yaxis_title'] = 'Average grade (%)'; +$string['fml_grades_tooltip_average'] = 'Average grade'; +$string['fml_grades_tooltip_grade'] = 'Highest grade'; +$string['fml_grades_tooltip_student'] = 'student graded from'; +$string['fml_grades_tooltip_students'] = 'students graded from'; + +$string['fml_grades_best_grade'] = 'Highest grades'; +$string['fml_grades_average_grade'] = 'Average grade'; +$string['fml_grades_worst_grade'] = 'Worst grade'; +$string['fml_grades_details_subtitle'] = 'Best grade, worst grade and average grade'; + +$string['fml_grades_distribution_subtitle'] = 'Distribution of grades'; +$string['fml_grades_distribution_greater_than'] = 'greater than'; +$string['fml_grades_distribution_smaller_than'] = 'lower than'; +$string['fml_grades_distribution_yaxis_title'] = 'Number of students'; +$string['fml_grades_distribution_tooltip_prefix'] = 'Range'; +$string['fml_grades_distribution_tooltip_suffix'] = 'in this range'; +$string["fml_view_details"] = "(Click to see details)"; + + +/* Quiz enseignant */ +$string['tq_section_help_title'] = 'Follow-up of evaluations'; +$string['tq_section_help_description'] = 'This section contains indicators related to the summary of attempts in the various course evaluations and the analysis of evaluation questions. The data presented in this section varies according to the week of study selected and a selector containing all the Evaluation type activities in the course sections assigned to the selected week.'; +$string['tq_questions_attempts_help_title'] = 'Attempted questions'; +$string['tq_questions_attempts_help_description_p1'] = 'This graph shows the distribution of resolution attempts for each question in an assessment and their revision status.'; +$string['tq_questions_attempts_help_description_p2'] = 'On the x-axis of the graph are the assessment questions. The y-axis shows the number of attempts to solve each of these questions. The symmetry of the graph will be affected by the assessment parameters (e.g. in an assessment that always has the same questions, the graph will show the same number of attempts for each bar corresponding to a question. In an assessment with random questions (from a question bank), the graph will show in the bar for each question the sum of the assessment attempts in which it appeared, and may not be the same for each assessment question). '; +$string['tq_questions_attempts_help_description_p3'] = 'By clicking on one of the bars corresponding to a question, it is possible to see the assessment question in a pop-up window.'; +$string['tq_hardest_questions_help_title'] = 'More difficult questions'; +$string['tq_hardest_questions_help_description_p1'] = 'This graph shows the assessment questions sorted by difficulty level. An attempt to solve a question with the status Partially correct, incorrect or blank is considered incorrect, so the total number of incorrect attempts for a question is the sum of attempts with the above statuses. The level of difficulty is represented as a percentage calculated on the basis of the total number of attempts. '; +$string['tq_hardest_questions_help_description_p2'] = 'On the x-axis of the graph are the assessment questions identified by name. The y-axis shows the percentage of incorrect attempts relative to the total number of attempts for the question. This axis helps to identify the questions that represented the greatest difficulty for the students who took the assessment. '; +$string['tq_hardest_questions_help_description_p3'] = 'By clicking on one of the bars corresponding to a question, it is possible to see the assessment question in a pop-up window.'; + +$string["fml_quiz_info_text"] = "This evaluation has"; +$string["fml_question_text"] = "question"; +$string["fml_questions_text"] = "questions"; +$string["fml_doing_text_singular"] = "attempt made by"; +$string["fml_doing_text_plural"] = "attempts made by"; +$string["fml_attempt_text"] = "attempt"; +$string["fml_attempts_text"] = "attempts"; +$string["fml_student_text"] = "student"; +$string["fml_students_text"] = "students"; +$string["fml_quiz"] = "Assessments"; +$string["fml_questions_attempts_chart_title"] = "Attempted questions"; +$string["fml_questions_attempts_yaxis_title"] = "No. of attempts"; +$string["fml_hardest_questions_chart_title"] = "More difficult questions"; +$string["fml_hardest_questions_yaxis_title"] = "Incorrect attempts"; +$string["fml_correct_attempt"] = "Correct"; +$string["fml_partcorrect_attempt"] = "Partially correct"; +$string["fml_incorrect_attempt"] = "Wrong"; +$string["fml_blank_attempt"] = "Empty"; +$string["fml_needgraded_attempt"] = "Not rated"; +$string["fml_review_question"] = "(Click to review the question)"; + + +/* Abandon */ +$string['td_section_help_title'] = 'Dropout'; +$string['td_section_help_description'] = 'This section contains indicators related to the prediction of student dropout in a course. The information is displayed in terms of student groups calculated by an algorithm that analyses the behaviour of each student in terms of the time invested, the number of student sessions, the number of days of activity and the interactions they have had with each resource and with other students in the course. The algorithm places students with similar behaviour in the same group, so that students who are increasingly unengaged in the course can be identified. The data presented in this section varies depending on the group selected in the selector that contains the groups identified in the course. '; +$string['td_group_students_help_title'] = 'Grouping students together'; +$string['td_group_students_help_description_p1'] = 'This table shows the students who belong to the group selected in the student group selector. Each student\'s photo, names and percentage of progress in the course are listed. For the purposes of calculating progress, all the resources in the course have been taken into account, with the exception of those of the Label type. To determine if a student has completed a resource, it is first checked to see if the resource completeness setting is enabled. If so, it is checked to see if the student has already completed the activity based on that setting. Otherwise, the activity is considered complete if the student has seen it at least once. '; +$string['td_group_students_help_description_p2'] = 'Clicking on a student in this table will update the charts below with the selected student\'s information.'; +$string['td_modules_access_help_title'] = 'Course resources'; +$string['td_modules_access_help_description_p1'] = 'This graph shows the amount of resources the student has accessed and completed. The data presented in this graph varies depending on the student selected in the Student Group table. To determine the amount of resources and complete activities, the Moodle setting called Complete Activities is used. If the teacher does not set up the completeness of course activities, the number of activities accessed and completed will always be the same, as without such a set up, a resource is considered completed when the student accesses it. '; +$string['td_modules_access_help_description_p2'] = 'The x-axis shows the number of resources in the course. On the y-axis are the labels of the accessed, complete and total resources of the course. '; +$string['td_modules_access_help_description_p3'] = 'By clicking on any bar it is possible to see the resources and activities available in the course (in a pop-up window) as well as the number of student interactions with each resource and a label of not accessed, accessed or completed. '; +$string['td_week_modules_help_title'] = 'Resources per week'; +$string['td_week_modules_help_description_p1'] = 'This graph shows the amount of resources accessed and completed by the student for each week configured in the plugin. The data presented in this graph varies depending on the student selected in the <i>Student Group</i> table. '; +$string['td_week_modules_help_description_p2'] = 'On the x-axis of the graph are the different study weeks configured. The y-axis shows the amount of resources and activities accessed and completed by the student. '; +$string['td_week_modules_help_description_p3'] = 'By clicking on any bar it is possible to see the resources and activities available in the course (in a pop-up window) as well as the number of student interactions with each resource and a label of not accessed, accessed or completed. '; +$string['td_sessions_evolution_help_title'] = 'Sessions and time spent'; +$string['td_sessions_evolution_help_description_p1'] = 'This graph shows how study sessions have evolved since your first session was recorded in the course. The data presented in this graph varies depending on the student selected in the <i>Student Group</i> table. '; +$string['td_sessions_evolution_help_description_p2'] = 'The x-axis of the graph shows a timeline with the days that have elapsed since the student did the first study session until the day of the last recorded session. On the y-axis, they display 2 values, on the left side the number of student sessions and on the right side the time spent in hours. Between these axes, the number of sessions and the time spent by the student are drawn as a time series. '; +$string['td_sessions_evolution_help_description_p3'] = 'This visualisation allows you to zoom in on a selected region. This approach makes it possible to clearly show this development in different date ranges. '; +$string['td_user_grades_help_title'] = 'Grades'; +$string['td_user_grades_help_description_p1'] = 'This graph shows a comparison of the student\'s grades with the grade averages (mean percentage) of their peers in the various assessable activities of the course. The data presented in this graph varies depending on the student selected in the <i>Student Group</i> table. '; +$string['td_user_grades_help_description_p2'] = 'The various assessable activities are displayed on the x-axis of the graph. On the y-axis are the student\'s grade and the average grade of their peers. The student\'s grade and the course average are displayed as a percentage to maintain the symmetry of the graph. '; +$string['td_user_grades_help_description_p3'] = 'With a click on the bar corresponding to an activity, it is possible to go to the analysed activity. '; + +$string["fml_cluster_label"] = "Group"; +$string["fml_cluster_select"] = 'Student group'; +$string["fml_dropout_table_title"] = "Students in the group"; +$string["fml_dropout_see_profile"] = "View profile"; +$string["fml_dropout_user_never_access"] = "Never accessed"; +$string["fml_dropout_student_progress_title"] = "Student's progression"; +$string["fml_dropout_student_grade_title"] = "Grade"; +$string['fml_dropout_no_data'] = "There is no dropout data for this course yet"; +$string['fml_dropout_no_users_cluster'] = "There are no students in this group"; +$string['fml_dropout_generate_data_manually'] = "Generate manually"; +$string['fml_dropout_generating_data'] = "Generating data..."; +$string["fml_modules_access_chart_title"] = "Course resources"; +$string["fml_modules_access_chart_series_total"] = "Total"; +$string["fml_modules_access_chart_series_complete"] = "Completed"; +$string["fml_modules_access_chart_series_viewed"] = "Accessed"; +$string["fml_week_modules_chart_title"] = "Resources per week"; +$string["fml_modules_amount"] = "Quantity of resources"; +$string["fml_modules_details"] = "(Click to view resources)"; +$string["fml_modules_interaction"] = "interaction"; +$string["fml_modules_interactions"] = "interactions"; +$string["fml_modules_viewed"] = "Accessed"; +$string["fml_modules_no_viewed"] = "Not accessed"; +$string["fml_modules_complete"] = "Completed"; +$string["fml_sessions_evolution_chart_title"] = "Sessions and time invested"; +$string["fml_sessions_evolution_chart_xaxis1"] = "No. of sessions"; +$string["fml_sessions_evolution_chart_xaxis2"] = "No. of hours"; +$string["fml_sessions_evolution_chart_legend1"] = "No. of sessions"; +$string["fml_sessions_evolution_chart_legend2"] = "Time invested"; +$string["fml_user_grades_chart_title"] = "Grades"; +$string["fml_user_grades_chart_yaxis"] = "Percentage grade"; +$string["fml_user_grades_chart_xaxis"] = "Assessable activities"; +$string["fml_user_grades_chart_legend"] = "Course (average)"; +$string["fml_user_grades_chart_tooltip_no_graded"] = "No rating"; +$string["fml_user_grades_chart_view_activity"] = "Click to view the activity"; +$string['fml_send_mail_to_user'] = 'Send an e-mail to'; +$string['fml_send_mail_to_group'] = 'Send an e-mail to the group'; + + +/* Général étudiant */ +$string['sg_section_help_title'] = 'General indicators'; +$string['sg_section_help_description'] = 'This section contains indicators related to your information, progress, general indicators, course resources, sessions throughout the course and grades. The displays in this section show indicators throughout the course (up to the current date). '; +$string['sg_modules_access_help_title'] = 'Course resources'; +$string['sg_modules_access_help_description_p1'] = 'This graph shows the amount of resources you have accessed and completed. To determine how many resources you have completed, use the Moodle setting called Activity Completion. If the teacher has not set up the completeness of the course activities, the number of activities accessed and completed will always be the same, as without such a setting a resource is considered completed when you access it. '; +$string['sg_modules_access_help_description_p2'] = 'On the x-axis is the amount of resources in the course. On the y-axis are the labels of the accessible, complete and total resources in reference to your interactions with the course resources. '; +$string['sg_modules_access_help_description_p3'] = 'By clicking on any bar, it is possible to see the resources and activities available in the course (in a pop-up window) as well as the number of interactions you have had with each resource and a label of not accessed, accessed or completed. '; +$string['sg_weeks_session_help_title'] = 'Sessions per week'; +$string['sg_weeks_session_help_description_p1'] = 'This graph shows the number of study sessions you have completed each week from the start date of the course. A session is considered completed when the time between two interactions exceeds 30 minutes. '; +$string['sg_weeks_session_help_description_p2'] = 'On the x-axis of the graph are the weeks of each month. The y-axis of the graph shows the different months of the year from the month of course creation. To maintain the symmetry of the graph, a total of five weeks has been placed for each month, however, each month does not have that many weeks. These months will only add sessions up to the fourth week. '; +$string['sg_sessions_evolution_help_title'] = 'Sessions and time invested'; +$string['sg_sessions_evolution_help_description_p1'] = 'This graph shows how your study sessions have evolved since your first session was enrolled in the course. '; +$string['sg_sessions_evolution_help_description_p2'] = 'The x-axis of the graph shows a timeline with the days that have passed since your first study session to the day of your last recorded session. On the y-axis, they display 2 values, on the left side your number of sessions and on the right side your time spent in hours. Between these axes, your number of sessions and your time spent as a student are represented as a time series. '; +$string['sg_sessions_evolution_help_description_p3'] = 'This view allows you to zoom in on a selected region.'; +$string['sg_user_grades_help_title'] = 'Grades'; +$string['sg_user_grades_help_description_p1'] = 'This graph shows a comparison of your grades with the average grades (percentage average) of your classmates in the different assessable activities of the course.'; +$string['sg_user_grades_help_description_p2'] = 'The x-axis of the graph shows the different activities that can be assessed. On the y-axis you will find your grades and the average grade of your classmates. Your grade and the course average are displayed as percentages to maintain the symmetry of the graph. '; +$string['sg_user_grades_help_description_p3'] = 'By clicking on the bar corresponding to an activity, it is possible to access the one analysed. '; + +/* Sessions utilisateur */ +$string['ss_section_help_title'] = 'Study sessions'; +$string['ss_section_help_description'] = 'This section contains visualisations with indicators related to your activity in the course measured in terms of study sessions, time spent and progress in each of the weeks configured by the teacher. The displays in this section vary depending on the study week selected. '; +$string['ss_inverted_time_help_title'] = 'Your time invested'; +$string['ss_inverted_time_help_description_p1'] = 'This graph shows your time spent in the week compared to the time planned by the teacher.'; +$string['ss_inverted_time_help_description_p2'] = 'On the x-axis of the graph is the number of hours the teacher has scheduled for a specific week. On the y-axis are the labels for time spent and time to be spent. '; +$string['ss_hours_session_help_title'] = 'Sessions by day and time'; +$string['ss_hours_session_help_description_p1'] = 'This graph shows your study sessions by day and time of the selected week. A session is considered completed when the time between two interactions exceeds 30 minutes. '; +$string['ss_hours_session_help_description_p2'] = 'On the x-axis of the graph are the days of the week. On the y-axis are the hours of the day starting at 12:00am and ending at 11:00am. '; +$string['ss_resources_access_help_title'] = 'Interaction by type of resource'; +$string['ss_resources_access_help_description_p1'] = 'This graph shows how many resources you have pending and which ones you have already completed in the selected week. Resources are grouped by type in this graph. In addition, a bar is displayed at the top which represents the percentage of resources accessed in relation to the total resources assigned to the selected week. '; +$string['ss_resources_access_help_description_p2'] = 'The x-axis of the graph shows the different types of resources. The y-axis shows the amount of resources accessed for the week.'; +$string['ss_resources_access_help_description_p3'] = 'By clicking on any bar, it is possible to see the resources and activities available in the course (in a pop-up window) as well as the number of interactions you have had with each resource and a label of not accessed, accessed or completed. '; + + +$string['fml_student_time_inverted_title'] = 'Your time invested'; +$string['fml_student_time_inverted_x_axis'] = 'No. of hours'; +$string['fml_student_inverted_time'] = 'Time invested'; +$string['fml_student_expected_time'] = 'Time to invest'; + +$string['fml_resource_access_title'] = 'Interaction by type of resource'; +$string['fml_resource_access_y_axis'] = 'Quantity of resources'; +$string['fml_resource_access_x_axis'] = 'Types of resources'; +$string['fml_resource_access_legend1'] = 'Completed'; +$string['fml_resource_access_legend2'] = 'Waiting'; + +$string['fml_week_progress_title'] = 'Progress of the week'; + + + +/* Indicateurs de l\'enseignant */ +$string['fml_teacher_indicators_title'] = 'General indicators'; +$string['fml_teacher_indicators_students'] = 'Students'; +$string['fml_teacher_indicators_weeks'] = 'Weeks'; +$string['fml_teacher_indicators_grademax'] = 'Grades'; +$string['fml_teacher_indicators_course_start'] = 'Start the'; +$string['fml_teacher_indicators_course_end'] = 'End the'; +$string['fml_teacher_indicators_course_format'] = 'Format'; +$string['fml_teacher_indicators_course_completion'] = 'Completeness of the modules'; +$string["fml_teacher_indicators_student_progress"] = "Student progress"; +$string["fml_teacher_indicators_week_resources_chart_title"] = "Resources per week"; +$string["fml_teacher_indicators_week_resources_yaxis_title"] = "Quantity of resources"; + +/* Logs section */ +$string['fml_logs_title'] = 'Download the activity logs'; +$string['fml_logs_help_description'] = 'This section allows you to download the activity logs that have been performed. That is, you have access to the actions that have been carried out by registered users on the platform in a spreadsheet format.'; +$string['fml_logs_title_MoodleSetpoint_title'] = 'Select a date range for actions on Moodle'; +$string['fml_logs_title_MMPSetpoint_title'] = 'Select a date range for actions performed on Note My Progress'; +$string['fml_logs_help'] = 'This section allows you to download a log file of activities performed.'; +$string['fml_logs_select_date'] = 'Select a time interval for the log'; +$string['fml_logs_first_date'] = 'Start date'; +$string['fml_logs_last_date'] = 'End date'; +$string['fml_logs_valid_Moodlebtn'] = 'Download the Moodle activity log'; +$string['fml_logs_valid_NMPbtn'] = 'Download the Note My Progress activity log'; +$string['fml_logs_invalid_date'] = 'Please enter a date'; +$string['fml_logs_download_btn'] = 'Download in progress'; +$string['fml_logs_download_nmp_help_title'] = 'About the actions carried out on Note My Progress'; +$string['fml_logs_download_moodle_help_title'] = 'About the actions carried out on Moodle'; +$string['fml_logs_download_nmp_help_description'] = 'The log file that is downloaded lists all the actions that have been performed by the user within the Note My Progress plugin only (viewing progress, viewing general indicators, etc.).'; +$string['fml_logs_download_moodle_help_description'] = 'The log file that is uploaded lists all the actions that have been performed by the user within Moodle only (viewing the course, viewing resources, submitting an assignment, etc).'; + + + + +/* Logfiles + Logs section */ +$string['fml_logs_csv_headers_username'] = 'Username'; +$string['fml_logs_csv_headers_firstname'] = 'First name'; +$string['fml_logs_csv_headers_lastname'] = 'Last name'; +$string['fml_logs_csv_headers_date'] = 'Date'; +$string['fml_logs_csv_headers_hour'] = 'Hour'; +$string['fml_logs_csv_headers_action'] = 'Action'; +$string['fml_logs_csv_headers_coursename'] = 'Course name'; +$string['fml_logs_csv_headers_detail'] = 'Object_Name'; +$string['fml_logs_csv_headers_detailtype'] = 'Object_Type'; + +$string['fml_logs_error_begin_date_superior'] = 'The start date cannot be later than the current date'; +$string['fml_logs_error_begin_date_inferior'] = 'The start date must be earlier than the end date'; +$string['fml_logs_error_empty_dates'] = 'Dates cannot be empty'; +$string['fml_logs_error_problem_encountered'] = 'A problem has been encountered, please try again'; + +$string['fml_logs_success_file_downloaded'] = 'File uploaded!'; + +$string['fml_logs_moodle_csv_headers_role'] = 'Role'; +$string['fml_logs_moodle_csv_headers_email'] = 'Email'; +$string['fml_logs_moodle_csv_headers_username'] = 'Username'; +$string['fml_logs_moodle_csv_headers_fullname'] = 'Fullname'; +$string['fml_logs_moodle_csv_headers_date'] = 'Date'; +$string['fml_logs_moodle_csv_headers_hour'] = 'Hour'; +$string['fml_logs_moodle_csv_headers_action'] = 'Action'; +$string['fml_logs_moodle_csv_headers_courseid'] = 'CourseID'; +$string['fml_logs_moodle_csv_headers_coursename'] = 'Course_name'; +$string['fml_logs_moodle_csv_headers_detailid'] = 'Detail ID'; +$string['fml_logs_moodle_csv_headers_details'] = 'Details'; +$string['fml_logs_moodle_csv_headers_detailstype'] = 'Details_type'; + +$string['fml_logs_moodle_csv_headers_role_description'] = 'Gives the role the user has on the course on which they have taken an action (student, teacher...)'; +$string['fml_logs_moodle_csv_headers_email_description'] = 'Gives the user\'s e-mail address'; +$string['fml_logs_moodle_csv_headers_username_description'] = 'Gives the moodle username of the person who performed the action'; +$string['fml_logs_moodle_csv_headers_fullname_description'] = 'Gives the user\'s full name (First + Last)'; +$string['fml_logs_moodle_csv_headers_date_description'] = 'Gives the date on which the action was performed in the format dd-MM-YYYY'; +$string['fml_logs_moodle_csv_headers_hour_description'] = 'Gives the time at which the action was performed'; +$string['fml_logs_moodle_csv_headers_action_description'] = 'Give a verb describing the action that has been performed (e.g. clicked, viewed...)'; +$string['fml_logs_moodle_csv_headers_courseid_description'] = 'Gives the ID on which the action was performed'; +$string['fml_logs_moodle_csv_headers_coursename_description'] = 'Give the name of the price on which the action was carried out'; +$string['fml_logs_moodle_csv_headers_detailid_description'] = 'Gives the ID of the object with which the user has interacted'; +$string['fml_logs_moodle_csv_headers_details_description'] = 'Give the name of the object that was targeted'; +$string['fml_logs_moodle_csv_headers_detailstype_description'] = 'Gives the type of object that has been targeted (examples of objects: Repository, Quiz, Resources...)'; + +$string['fml_logs_nmp_csv_headers_role_description'] = 'Gives the role the user has on the course on which they have taken an action (student, teacher...)'; +$string['fml_logs_nmp_csv_headers_email_description'] = 'Gives the user\'s e-mail address'; +$string['fml_logs_nmp_csv_headers_username_description'] = 'Gives the moodle username of the person who performed the action'; +$string['fml_logs_nmp_csv_headers_fullname_description'] = 'Gives the user\'s full name (First + Last)'; +$string['fml_logs_nmp_csv_headers_date_description'] = 'Gives the date on which the action was performed in the format dd-MM-YYYY'; +$string['fml_logs_nmp_csv_headers_hour_description'] = 'Gives the time at which the action was performed'; +$string['fml_logs_nmp_csv_headers_courseid_description'] = 'Gives the price identifier on which the action was performed'; +$string['fml_logs_nmp_csv_headers_section_name_description'] = 'Gives the name of the section of note my progress that the user was in when they performed the action'; +$string['fml_logs_nmp_csv_headers_action_type_description'] = 'Gives a full description of the action that was performed by the user in the form of verb + subject + object (e.g. downloaded_moodle_logfile)'; + +$string['fml_logs_moodle_table_title'] = 'Description of headings'; +$string['fml_logs_moodle_table_subtitle'] = 'Regarding Moodle logs'; + +$string['fml_logs_nmp_table_title'] = 'Description of headings'; +$string['fml_logs_nmp_table_subtitle'] = 'Regarding Note My Progress logs'; + +$string['fml_logs_nmp_csv_headers_role'] = 'Role'; +$string['fml_logs_nmp_csv_headers_email'] = 'Email'; +$string['fml_logs_nmp_csv_headers_username'] = 'Username'; +$string['fml_logs_nmp_csv_headers_fullname'] = 'Fullname'; +$string['fml_logs_nmp_csv_headers_date'] = 'Date'; +$string['fml_logs_nmp_csv_headers_hour'] = 'Hour'; +$string['fml_logs_nmp_csv_headers_courseid'] = 'CourseID'; +$string['fml_logs_nmp_csv_headers_section_name'] = 'NMP_SECTION_NAME'; +$string['fml_logs_nmp_csv_headers_action_type'] = 'NMP_ACTION_TYPE'; + +$string['fml_logs_table_title'] = 'Heading'; +$string['fml_logs_table_title_bis'] = 'Description'; + +$string['fml_logs_help_button_nmp'] = 'About the actions carried out on Note My Progress'; +$string['fml_logs_help_button_moodle'] = 'About the actions carried out on Moodle'; + +$string['fml_logs_download_details_link'] = 'Read more'; +$string['fml_logs_download_details_title'] = 'Are you sure you want a detailed explanation report?'; +$string['fml_logs_download_details_description'] = 'If you accept, a file in PDF format will be downloaded.'; +$string['fml_logs_download_details_ok'] = 'Download'; +$string['fml_logs_download_details_cancel'] = 'Cancel'; +$string['fml_logs_download_details_validation'] = 'The report has been downloaded'; + +/* NoteMyProgress admin settings */ + +$string['fml_settings_bddusername_label'] = 'Database username'; +$string['fml_settings_bddusername_description'] = 'This parameter designates the username from which the MongoDB database can be accessed. If this parameter is entered, you will need to enter the password and the name of the database you wish to connect to.'; +$string['fml_settings_bddusername_default'] = 'Empty'; + +$string['fml_settings_bddpassword_label'] = 'Account password'; +$string['fml_settings_bddpassword_description'] = 'This parameter is the password for the account from which the MongoDB database can be accessed. If this parameter is entered, you will need to enter the username and the name of the database you wish to connect to.'; +$string['fml_settings_bddpassword_default'] = 'Empty'; + + +$string['fml_settings_bddaddress_label'] = 'MongoDB server address *'; +$string['fml_settings_bddaddress_description'] = 'This parameter is the address from which the MongoDB database is accessible. This parameter is mandatory and is in the form: 151.125.45.58 or yourserver.com'; +$string['fml_settings_bddaddress_default'] = 'localhost'; + +$string['fml_settings_bddport_label'] = 'Communication port *'; +$string['fml_settings_bddport_description'] = 'This parameter designates the port to be used to communicate with the database. This parameter is mandatory and must be a number.'; +$string['fml_settings_bddport_default'] = '27017'; + + +$string['fml_settings_bddname_label'] = 'Name of the database'; +$string['fml_settings_bddname_description'] = 'This parameter designates the name of the MongoDB database in which the information will be stored.'; +$string['fml_settings_bddname_default'] = 'Empty'; + + + diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/lang/es/local_fliplearning.php b/NMP 3.0 Moodle Pluggin/fliplearning/lang/es/local_fliplearning.php new file mode 100644 index 0000000000000000000000000000000000000000..44d4321ca36491e0bf6269ec6353e38085502cff --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/lang/es/local_fliplearning.php @@ -0,0 +1,716 @@ +<?php +// This file is part of Moodle - http://moodle.org/ +// +// Moodle is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Moodle is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Moodle. If not, see <http://www.gnu.org/licenses/>. + +/** + * Plugin strings are defined here. + * + * @package local_fliplearning + * @category string + * @copyright 2020 Edisson Sigua <edissonf.sigua@gmail.com>, Bryan Aguilar <bryan.aguilar6174@gmail.com> + * @copyright 2021 Eric Bart <bart.eric@hotmail.com>, Mar Pérez-Sanagustín <mar.perez-sanagustin@irit.fr> + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined('MOODLE_INTERNAL') || die(); + +$string['pluginname'] = 'NoteMyProgress'; + +/* Global */ +$string['pagination'] = 'Semana:'; +$string['graph_generating'] = 'Estamos construyendo el reporte, por favor espere un momento.'; +$string['weeks_not_config'] = 'El curso no ha sido configurado por el profesor, por lo que no hay visualizaciones que mostrar.'; +$string['pagination_title'] = 'Selección semana'; +$string['helplabel'] = 'Ayuda'; +$string['exitbutton'] = '¡Entendido!'; +$string['no_data'] = 'No hay datos que mostrar'; +$string['only_student'] = 'Este reporte es solo para estudiantes'; +$string["fml_send_mail"] = "(Clic para enviar correo)"; +$string["fml_about"] = "Acerca de este Gráfico"; +$string["fml_about_table"] = "Acerca de esta Tabla"; +$string["fml_not_configured"] = "No Configurado"; +$string["fml_activated"] = "Activado"; +$string["fml_disabled"] = "Desactivado"; + +/* Menú */ +$string['menu_main_title'] = "Dashboard Progreso"; +$string['menu_sessions'] = 'Sesiones de Estudio'; +$string['menu_setweek'] = "Configurar semanas"; +$string['menu_time'] = 'Seguimiento de Tiempo'; +$string['menu_assignments'] = 'Seguimiento de Tareas'; +$string['menu_grades'] = 'Seguimiento de Calificaciones'; +$string['menu_quiz'] = 'Seguimiento de Evaluaciones'; +$string['menu_dropout'] = 'Seguimiento de estudiantes'; +$string['menu_logs'] = "Registros de actividad"; +$string['menu_general'] = "Indicadores Generales"; + +/* Nav Bar Menu */ +$string['togglemenu'] = 'Mostrar/Ocultar menú de FML'; + +/* Pagination component */ +$string['pagination_component_to'] = 'al'; +$string['pagination_component_name'] = 'Semana'; + +/* Goups */ +$string['group_allstudent'] = 'Todos los estudiantes'; + +/* General Errors */ +$string['api_error_network'] = "Ha ocurrido un error en la comunicación con el servidor."; +$string['api_invalid_data'] = 'Datos incorrectos'; +$string['api_save_successful'] = 'Se han guardado los datos correctamente en el servidor'; +$string['api_cancel_action'] = 'Has cancelado la acción'; + +/* Admin Task Screen*/ +$string['generate_data_task'] = 'Proceso para generar datos para Note My Progress Plugin'; + +/* Chart*/ +$string['chart_loading'] = 'Cargando...'; +$string['chart_exportButtonTitle'] = "Exportar"; +$string['chart_printButtonTitle'] = "Imprimir"; +$string['chart_rangeSelectorFrom'] = "De"; +$string['chart_rangeSelectorTo'] = "Hasta"; +$string['chart_rangeSelectorZoom'] = "Rango"; +$string['chart_downloadPNG'] = 'Descargar imagen PNG'; +$string['chart_downloadJPEG'] = 'Descargar imagen JPEG'; +$string['chart_downloadPDF'] = 'Descargar documento PDF'; +$string['chart_downloadSVG'] = 'Descargar imagen SVG'; +$string['chart_downloadCSV'] = 'Descargar CSV'; +$string['chart_downloadXLS'] = 'Descargar XLS'; +$string['chart_exitFullscreen'] = 'Salir de Pantalla Completa'; +$string['chart_hideData'] = 'Ocultar Tabla de Datos'; +$string['chart_noData'] = 'No hay datos que mostrar'; +$string['chart_printChart'] = 'Imprimir Gráfico'; +$string['chart_viewData'] = 'Ver Tabla de Datos'; +$string['chart_viewFullscreen'] = 'Ver en Pantalla Completa'; +$string['chart_resetZoom'] = 'Reiniciar zoom'; +$string['chart_resetZoomTitle'] = 'Reiniciar zoom nivel 1:1'; + +/* Set weeks */ +$string['setweeks_title'] = 'Configuración de las Semanas del Curso'; +$string['setweeks_description'] = 'Para comenzar, debe configurar el curso por semanas y definir una fecha de inicio para la primera semana (el resto de semanas se realizará de forma automática a partir de esta fecha. A continuación, debe asociar las actividades o módulos relacionadas a cada semana arrastrándolas de la columna de la derecha a la semana correspondiente. No es necesario asignar todas las actividades o módulos a las semanas, simplemente aquellas que se quieran considerar para hacer el seguimiento de los estudiantes. Finalmente, debe clicar sobre el botón Guardar para conservar su configuración. Recuerde activar en su Moodle la posibilidad de hacer el seguimiento de finalización de tareas.'; +$string['setweeks_sections'] = "Secciones disponibles en el curso"; +$string['setweeks_weeks_of_course'] = "Planificación de semanas"; +$string['setweeks_add_new_week'] = "Agregar semana"; +$string['setweeks_start'] = "Comienza:"; +$string['setweeks_end'] = "Termina:"; +$string['setweeks_week'] = "Semana"; +$string['setweeks_save'] = "Guardar configuración"; +$string['setweeks_time_dedication'] = "¿Cuántas horas de trabajo espera que los estudiantes dediquen a su curso esta semana?"; +$string['setweeks_enable_scroll'] = "Activar el modo desplazamiento para semanas y temas"; +$string['setweeks_label_section_removed'] = "Eliminado del curso"; +$string['setweeks_error_section_removed'] = "Una sección asignada a una semana se ha eliminado del curso, debe eliminarla de tu planificación para poder continuar."; +$string['setweeks_save_warning_title'] = "¿Está seguro/a que desea guardar los cambios?"; +$string['setweeks_save_warning_content'] = "Si modifica la configuración de las semanas cuando el curso ya ha comenzado es posible que se pierdan datos..."; +$string['setweeks_confirm_ok'] = "Guardar"; +$string['setweeks_confirm_cancel'] = "Cancelar"; +$string['setweeks_error_empty_week'] = "No puede guardar los cambios con una semana vacía. Por favor, elimínela y inténtelo de nuevo."; +$string['setweeks_new_group_title'] = "Nueva instancia de configuración"; +$string['setweeks_new_group_text'] = "Hemos detectado que su curso ha finalizado, si desea configurar las semanas para trabajar con nuevos estudiantes, debe activar el botón de más abajo. Esto permitirá separar los datos de los estudiantes actuales de los de cursos anteriores, evitando mezclarlos."; +$string['setweeks_new_group_button_label'] = "Guardar configuración como nueva instancia"; +$string['course_format_weeks'] = 'Semana'; +$string['course_format_topics'] = 'Tema'; +$string['course_format_social'] = 'Social'; +$string['course_format_singleactivity'] = 'Actividad única'; +$string['plugin_requirements_title'] = 'Estado:'; +$string['plugin_requirements_descriptions'] = 'El plugin será visible y mostrará los reportes para estudiantes y profesores cuando se cumplan las siguientes condiciones...'; +$string['plugin_requirements_has_users'] = 'El curso debe poseer al menos un estudiante matriculado'; +$string['plugin_requirements_course_start'] = 'La fecha actual debe ser mayor a la fecha de inicio de la primera semana configurada.'; +$string['plugin_requirements_has_sections'] = 'Las semanas configuradas poseen al menos una sección.'; +$string['plugin_visible'] = 'Reportes visibles.'; +$string['plugin_hidden'] = 'Reportes ocultos.'; +$string['title_conditions'] = 'Condiciones de uso'; + +/* Time */ +$string['fml_mon'] = 'Lunes'; +$string['fml_tue'] = 'Martes'; +$string['fml_wed'] = 'Miércoles'; +$string['fml_thu'] = 'Jueves'; +$string['fml_fri'] = 'Viernes'; +$string['fml_sat'] = 'Sábado'; +$string['fml_sun'] = 'Domingo'; +$string['fml_mon_short'] = 'Lun'; +$string['fml_tue_short'] = 'Mar'; +$string['fml_wed_short'] = 'Mié'; +$string['fml_thu_short'] = 'Jue'; +$string['fml_fri_short'] = 'Vie'; +$string['fml_sat_short'] = 'Sáb'; +$string['fml_sun_short'] = 'Dom'; + +$string['fml_jan'] = 'Enero'; +$string['fml_feb'] = 'Febrero'; +$string['fml_mar'] = 'Marzo'; +$string['fml_apr'] = 'Abril'; +$string['fml_may'] = 'Mayo'; +$string['fml_jun'] = 'Junio'; +$string['fml_jul'] = 'Julio'; +$string['fml_aug'] = 'Agosto'; +$string['fml_sep'] = 'Septiembre'; +$string['fml_oct'] = 'Octubre'; +$string['fml_nov'] = 'Noviembre'; +$string['fml_dec'] = 'Diciembre'; +$string['fml_jan_short'] = 'Ene'; +$string['fml_feb_short'] = 'Feb'; +$string['fml_mar_short'] = 'Mar'; +$string['fml_apr_short'] = 'Abr'; +$string['fml_may_short'] = 'May'; +$string['fml_jun_short'] = 'Jun'; +$string['fml_jul_short'] = 'Jul'; +$string['fml_aug_short'] = 'Ago'; +$string['fml_sep_short'] = 'Sep'; +$string['fml_oct_short'] = 'Oct'; +$string['fml_nov_short'] = 'Nov'; +$string['fml_dec_short'] = 'Dic'; + +$string['fml_week1'] = 'Sem 1'; +$string['fml_week2'] = 'Sem 2'; +$string['fml_week3'] = 'Sem 3'; +$string['fml_week4'] = 'Sem 4'; +$string['fml_week5'] = 'Sem 5'; +$string['fml_week6'] = 'Sem 6'; + +$string['fml_00'] = '12am'; +$string['fml_01'] = '1am'; +$string['fml_02'] = '2am'; +$string['fml_03'] = '3am'; +$string['fml_04'] = '4am'; +$string['fml_05'] = '5am'; +$string['fml_06'] = '6am'; +$string['fml_07'] = '7am'; +$string['fml_08'] = '8am'; +$string['fml_09'] = '9am'; +$string['fml_10'] = '10am'; +$string['fml_11'] = '11am'; +$string['fml_12'] = '12pm'; +$string['fml_13'] = '1pm'; +$string['fml_14'] = '2pm'; +$string['fml_15'] = '3pm'; +$string['fml_16'] = '4pm'; +$string['fml_17'] = '5pm'; +$string['fml_18'] = '6pm'; +$string['fml_19'] = '7pm'; +$string['fml_20'] = '8pm'; +$string['fml_21'] = '9pm'; +$string['fml_22'] = '10pm'; +$string['fml_23'] = '11pm'; + +/* Teacher General */ +$string['tg_section_help_title'] = 'Indicadores Generales'; +$string['tg_section_help_description'] = 'Esta sección contiene visualizaciones con indicadores generales relacionados a la configuración del curso, recursos asignados por semanas, sesiones de estudio y progreso de los estudiantes a lo largo del curso. Las visualizaciones de esta sección muestran los indicadores desde la fecha de inicio hasta la de finalización del curso (o hasta la fecha actual en caso de que el curso aún no ha terminado).'; +$string['tg_week_resources_help_title'] = 'Recursos por Semanas'; +$string['tg_week_resources_help_description_p1'] = 'Este gráfico visualiza la cantidad de recursos de cada una de las secciones del curso asignadas a cada semana de estudio configurada en la sección <i>Configurar Semanas</i>. Si una semana tiene asignada dos o más secciones del curso, los recursos de dichas secciones se suman para el cálculo del total de recursos de una semana.'; +$string['tg_week_resources_help_description_p2'] = 'En el eje x del gráfico se encuentran el total de recursos y actividades de las secciones asignadas a cada semana configurada de Note My Progress. En el eje y se encuentran las semanas de estudio configuradas.'; +$string['tg_weeks_sessions_help_title'] = 'Sesiones por Semana'; +$string['tg_week_sessions_help_description_p1'] = 'Este gráfico muestra la cantidad de sesiones de estudio realizadas por los estudiantes en cada semana a partir de la fecha de inicio del curso. Se considera el acceso al curso por parte del estudiante como el inicio de una sesión de estudio. Una sesión se considera finalizada cuando el tiempo transcurrido entre dos interacciones de un estudiante supera los 30 minutos.'; +$string['tg_week_sessions_help_description_p2'] = 'En el eje x del gráfico se encuentran las semanas de cada mes. En el eje y del gráfico se encuentran los diferentes meses del año partiendo del mes de creación del curso. Para mantener la simetría del gráfico se ha colocado un total de cinco semanas para cada mes, sin embargo, no todos los meses tiene tal cantidad de semanas. Dichos meses, solo sumarán sesiones hasta la semana cuatro.'; +$string['tg_progress_table_help_title'] = 'Progreso de los estudiantes'; +$string['tg_progress_table_help_description'] = 'Este tabla muestra una lista con todos los estudiantes matriculados en el curso junto con su progreso, cantidad de sesiones y tiempo invertido. Para el cálculo del progreso se han considerado todos los recursos del curso a excepción de los de tipo <i>Label</i>. Para determinar si un estudiante ha finalizado un recurso se verifica en primer lugar si el recurso tiene habilitada la configuración de completitud. En caso de ser así, se busca si el estudiante ya ha completado la actividad en base a esa configuración. De lo contrario, la actividad se considera completa si el estudiante la ha visto al menos una vez.'; + +$string['fml_title'] = 'Sesiones de Trabajo'; +$string['table_title'] = 'Progreso del Curso'; +$string['thead_name'] = 'Nombre'; +$string['thead_lastname'] = 'Apellidos'; +$string['thead_email'] = 'Correo'; +$string['thead_progress'] = 'Progreso (%)'; +$string['thead_sessions'] = 'Sesiones'; +$string['thead_time'] = 'Tiempo Invertido'; + +$string['fml_module_label'] = 'recurso'; +$string['fml_modules_label'] = 'recursos'; +$string['fml_of_conector'] = 'de'; +$string['fml_finished_label'] = 'finalizado'; +$string['fml_finisheds_label'] = 'finalizados'; + +$string['fml_smaller30'] = 'Menores que 30 minutos'; +$string['fml_greater30'] = 'Mayores que 30 minutos'; +$string['fml_greater60'] = 'Mayores que 60 minutos'; + +$string['fml_session_count_title'] = 'Sesiones de la Semana'; +$string['fml_session_count_yaxis_title'] = 'Cantidad de Sesiones'; +$string['fml_session_count_tooltip_suffix'] = ' sesiones'; + +$string['fml_hours_sessions_title'] = 'Sesiones por Día y Hora'; +$string['fml_weeks_sessions_title'] = 'Sesiones por Semana'; + +$string["fml_session_text"] = "sesión"; +$string["fml_sessions_text"] = "sesiones"; + +$string['ss_change_timezone'] = 'Zona horaria:'; +//$string['ss_activity_inside_plataform_student'] = 'Mi actividad en la plataforma'; +//$string['ss_activity_inside_plataform_teacher'] = 'Actividad de los estudiantes en la plataforma'; +//$string['ss_time_inside_plataform_student'] = 'Mi tiempo en la plataforma'; +//$string['ss_time_inside_plataform_teacher'] = 'Tiempo invertido en promedio de los estudiantes en la plataforma en esta semana'; +//$string['ss_time_inside_plataform_description_teacher'] = 'Tiempo que el estudiante ha invertido en la semana seleccionada, en comparación al tiempo que el/la docente planificó que se debería invertir. El tiempo invertido que se visualiza corresponde al promedio de todos los estudiantes. El tiempo planificado por el/la docente es el asignado en por el/la docente en <i>Configurar Semanas</i>.'; +//$string['ss_time_inside_plataform_description_student'] = 'Tiempo que ha invertido esta semana en relación al tiempo que el profesor planificó que se debería invertir.'; +//$string['ss_activity_inside_plataform_description_teacher'] = 'En el eje Y se indican las las horas del día y en el eje X los días de la semana. Dentro del gráfico podrá encontrar múltiples puntos, los cuales, al pasar el cursor sobre estos, ofrecen información detallada sobre las interacciones de los estudiantes, agrupadas por tipo de recurso (número de interacciones, número de estudiantes que interactuaron con el recurso y promedio de interacciones). <br/><br/><b>Al hacer click en las etiquetas, podrá filtrar por tipo de recurso, dejando visible sólo aquellos que no se encuentren tachados.</b>'; +//$string['ss_activity_inside_plataform_description_student'] = 'Presenta las interacciones por tipo de recurso y horario. Al pasar el cursor sobre un punto visible en el gráfico, verá el número de interacciones agrupadas por tipo de recurso. Al hacer click en las etiquetas, podrá filtrar por tipo de recurso.'; + +/* Teacher Sessions */ +$string['ts_section_help_title'] = 'Sesiones de Estudio'; +$string['ts_section_help_description'] = 'Esta sección contiene visualizaciones con indicadores relacionados a la actividad de los estudiantes en el curso medida en términos de sesiones realizadas, tiempo promedio invertido en el curso por semana y sesiones de estudio en intervalos de tiempo. Los datos presentados en esta sección varían dependiendo de la semana de estudio seleccionada.'; +$string['ts_inverted_time_help_title'] = 'Tiempo Invertido de los Estudiantes'; +$string['ts_inverted_time_help_description_p1'] = 'Este gráfico muestra el tiempo promedio invertido por parte de los estudiantes en la semana en comparación del tiempo promedio planificado por parte del docente.'; +$string['ts_inverted_time_help_description_p2'] = 'En el eje x del gráfico se encuentra el número de horas que el docente ha planificado para una semana específica. En el eje y se encuentran las etiquetas de tiempo promedio invertido y tiempo promedio que se debería invertir.'; +$string['ts_hours_sessions_help_title'] = 'Sesiones por Día y Hora'; +$string['ts_hours_sessions_help_description_p1'] = 'Este gráfico muestra las sesiones de estudio por día y hora de la semana seleccionada. Se considera el acceso al curso por parte del estudiante como el inicio de una sesión de estudio. Una sesión se considera finalizada cuando el tiempo transcurrido entre dos interacciones de un estudiante supera los 30 minutos.'; +$string['ts_hours_sessions_help_description_p2'] = 'En el eje x del gráfico se encuentran los días de la semana. En el eje y se encuentran las horas del día empezando por las 12am y terminando a las 11pm o 23 horas.'; +$string['ts_sessions_count_help_title'] = 'Sesiones de la Semana'; +$string['ts_sessions_count_help_description_p1'] = 'Este gráfico muestra el número de sesiones clasificadas por su duración en rangos de tiempo: menores a 30 minutos, mayores a 30 minutos y mayores a 60 minutos. Se considera el acceso al curso por parte del estudiante como el inicio de una sesión de estudio. Una sesión se considera finalizada cuando el tiempo transcurrido entre dos interacciones de un estudiante supera los 30 minutos.'; +$string['ts_sessions_count_help_description_p2'] = 'En el eje x del gráfico están los días de la semana configurada. En el eje y está la cantidad de sesiones realizadas.'; + +$string['fml_time_inverted_title'] = 'Tiempo invertido de los Estudiantes'; +$string['fml_time_inverted_x_axis'] = 'Número de Horas'; +$string['fml_inverted_time'] = 'Tiempo Promedio Invertido'; +$string['fml_expected_time'] = 'Tiempo Promedio que se debería Invertir'; + +$string['fml_year'] = 'año'; +$string['fml_years'] = 'años'; +$string['fml_month'] = 'mes'; +$string['fml_months'] = 'meses'; +$string['fml_day'] = 'día'; +$string['fml_days'] = 'días'; +$string['fml_hour'] = 'hora'; +$string['fml_hours'] = 'horas'; +$string['fml_hours_short'] = 'h'; +$string['fml_minute'] = 'minuto'; +$string['fml_minutes'] = 'minutos'; +$string['fml_minutes_short'] = 'm'; +$string['fml_second'] = 'segundo'; +$string['fml_seconds'] = 'segundos'; +$string['fml_seconds_short'] = 's'; +$string['fml_ago'] = 'atrás'; +$string['fml_now'] = 'justo ahora'; + +/*Teacher Assignments*/ +$string['ta_section_help_title'] = 'Seguimiento de Tareas'; +$string['ta_section_help_description'] = 'Esta sección contiene indicadores relacionados a la entrega de tareas y acceso a recursos. Los datos presentados en esta sección varían dependiendo de la semana de estudio seleccionada.'; +$string['ta_assigns_submissions_help_title'] = 'Envíos de Tareas'; +$string['ta_assigns_submissions_help_description_p1'] = 'Este gráfico presenta la distribución de la cantidad de estudiantes, respecto al estado de entrega de una tarea.'; +$string['ta_assigns_submissions_help_description_p2'] = 'En el eje x del gráfico se encuentran las tareas de las secciones asignadas a la semana junto con la fecha y hora de entrega. En el eje y se encuentra la distribución del número de estudiantes según el estado de entrega. El gráfico cuenta con la opción de enviar un correo electrónico a los estudiantes en alguna distribución (envío a tiempo, envíos tardíos, sin envío) al dar clic sobre el gráfico.'; +$string['ta_access_content_help_title'] = 'Acceso a los contenidos del curso'; +$string['ta_access_content_help_description_p1'] = 'Este gráfico presenta la cantidad de estudiantes que han accedido y no han accedido a los recursos del curso. En la parte superior se tienen los distintos tipos de recursos de Moodle, con la posibilidad de filtrar la información del gráfico según el tipo de recurso seleccionado.'; +$string['ta_access_content_help_description_p2'] = 'En el eje x del gráfico se encuentran la cantidad de estudiantes matriculados en el curso. En el eje y del gráfico se encuentran los recursos de las secciones asignadas a la semana. Además, este gráfico permite enviar un correo electrónico a los estudiantes que han accedido al recurso o bien a aquellos que no han accedido al dar clic sobre el gráfico.'; + +/* Assign Submissions */ +$string['fml_intime_sub'] = 'Envíos a tiempo'; +$string['fml_late_sub'] = 'Envíos tardíos'; +$string['fml_no_sub'] = 'Sin envío'; +$string['fml_assign_nodue'] = 'Sin fecha límite'; +$string['fml_assignsubs_title'] = 'Envíos de Tareas'; +$string['fml_assignsubs_yaxis'] = 'Número de Estudiantes'; + + +/* Content Access */ +$string['fml_assign'] = 'Tarea'; +$string['fml_assignment'] = 'Tarea'; +$string['fml_attendance'] = 'Asistencia'; +$string['fml_book'] = 'Libro'; +$string['fml_chat'] = 'Chat'; +$string['fml_choice'] = 'Elección'; +$string['fml_data'] = 'Base de Datos'; +$string['fml_feedback'] = 'Retroalimentación'; +$string['fml_folder'] = 'Carpeta'; +$string['fml_forum'] = 'Foro'; +$string['fml_glossary'] = 'Glosario'; +$string['fml_h5pactivity'] = 'H5P'; +$string['fml_imscp'] = 'Contenido IMS'; +$string['fml_label'] = 'Etiqueta'; +$string['fml_lesson'] = 'Lección'; +$string['fml_lti'] = 'Contenido IMS'; +$string['fml_page'] = 'Página'; +$string['fml_quiz'] = 'Examen'; +$string['fml_resource'] = 'Recurso'; +$string['fml_scorm'] = 'Paquete SCORM'; +$string['fml_survey'] = 'Encuesta'; +$string['fml_url'] = 'Url'; +$string['fml_wiki'] = 'Wiki'; +$string['fml_workshop'] = 'Taller'; + +$string['fml_access'] = 'Accedido'; +$string['fml_no_access'] = 'Sin Acceso'; +$string['fml_access_chart_title'] = 'Acceso a los Contenidos Curso'; +$string['fml_access_chart_yaxis_label'] = 'Cantidad de Estudiantes'; +$string['fml_access_chart_suffix'] = ' estudiantes'; + + +/* Email */ +$string['fml_validation_subject_text'] = 'Asunto es requerido'; +$string['fml_validation_message_text'] = 'Mensaje es requerido'; +$string['fml_subject_label'] = 'Agrega un asunto'; +$string['fml_message_label'] = 'Agrega un mensaje'; + +$string['fml_submit_button'] = 'Enviar'; +$string['fml_cancel_button'] = 'Cancelar'; +$string['fml_close_button'] = 'Cerrar'; +$string['fml_emailform_title'] = 'Enviar Correo'; +$string['fml_sending_text'] = 'Enviando Correos'; + +$string['fml_recipients_label'] = 'Para'; +$string['fml_mailsended_text'] = 'Correos Enviados'; + +$string['fml_email_footer_text'] = 'Este es un correo electrónico enviado con Note My Progress.'; +$string['fml_email_footer_prefix'] = 'Ve a'; +$string['fml_email_footer_suffix'] = 'para más información.'; +$string['fml_mailsended_text'] = 'Correos Enviados'; + +$string['fml_assign_url'] = '/mod/assign/view.php?id='; +$string['fml_assignment_url'] = '/mod/assignment/view.php?id='; +$string['fml_book_url'] = '/mod/book/view.php?id='; +$string['fml_chat_url'] = '/mod/chat/view.php?id='; +$string['fml_choice_url'] = '/mod/choice/view.php?id='; +$string['fml_data_url'] = '/mod/data/view.php?id='; +$string['fml_feedback_url'] = '/mod/feedback/view.php?id='; +$string['fml_folder_url'] = '/mod/folder/view.php?id='; +$string['fml_forum_url'] = '/mod/forum/view.php?id='; +$string['fml_glossary_url'] = '/mod/glossary/view.php?id='; +$string['fml_h5pactivity_url'] = '/mod/h5pactivity/view.php?id='; +$string['fml_imscp_url'] = '/mod/imscp/view.php?id='; +$string['fml_label_url'] = '/mod/label/view.php?id='; +$string['fml_lesson_url'] = '/mod/lesson/view.php?id='; +$string['fml_lti_url'] = '/mod/lti/view.php?id='; +$string['fml_page_url'] = '/mod/page/view.php?id='; +$string['fml_quiz_url'] = '/mod/quiz/view.php?id='; +$string['fml_resource_url'] = '/mod/resource/view.php?id='; +$string['fml_scorm_url'] = '/mod/scorm/view.php?id='; +$string['fml_survey_url'] = '/mod/survey/view.php?id='; +$string['fml_url_url'] = '/mod/url/view.php?id='; +$string['fml_wiki_url'] = '/mod/wiki/view.php?id='; +$string['fml_workshop_url'] = '/mod/workshop/view.php?id='; +$string['fml_course_url'] = '/course/view.php?id='; + + +/* Teacher Rating*/ +$string['tr_section_help_title'] = 'Seguimiento de Calificaciones'; +$string['tr_section_help_description'] = 'Esta sección contiene indicadores relacionados a los promedios de calificaciones en las actividades evaluables. Las diferentes unidades didácticas (Categorías de Calificación) creadas por el docente se muestran en el selector <i>Categoría de Calificación</i>. Este selector permitirá cambiar entre las diferentes unidades definidas y mostrar las actividades evaluables en cada una.'; +$string['tr_grade_items_average_help_title'] = 'Promedio de Actividades Evaluables'; +$string['tr_grade_items_average_help_description_p1'] = 'Este gráfico presenta el promedio (en porcentaje) de calificaciones de los estudiantes en cada una de las actividades evaluables del curso. El promedio en porcentaje se calcula en base a la calificación máxima de la actividad evaluable (ejemplo: una actividad evaluable con calificación máxima de 80 y calificación promedio de 26 presentará una barra con una altura igual al 33%, ya que 26 es el 33% de la calificación total). Se ha expresado el promedio de calificaciones en base a porcentajes para conservar la simetría del gráfico, puesto que Moodle permite crear actividades y asignar calificaciones personalizadas.'; +$string['tr_grade_items_average_help_description_p2'] = 'En el eje x del gráfico se encuentran las distintas actividades evaluables del curso. En el eje y se encuentra el promedio de calificaciones expresado en porcentaje.'; +$string['tr_grade_items_average_help_description_p3'] = 'Al hacer clic sobre la barra correspondiente a una actividad evaluable, los datos de los dos gráficos inferiores se actualizarán para mostrar información adicional de la actividad evaluable seleccionada.'; +$string['tr_item_grades_details_help_title'] = 'Mejor, Peor y Calificación Promedio'; +$string['tr_item_grades_details_help_description_p1'] = 'Este gráfico muestra la mejor calificación, la calificación promedio y la peor calificación en una actividad evaluable (la actividad seleccionada del gráfico Promedio de Actividades Evaluables).'; +$string['tr_item_grades_details_help_description_p2'] = 'En el eje x del gráfico se encuentra el puntaje para la calificación de la actividad, siendo la nota máxima de la actividad el máximo valor en este eje. En el eje y se encuentran las etiquetas de Mejor Calificación, Calificación Promedio y Peor Calificación.'; +$string['tr_item_grades_distribution_help_title'] = 'Distribución de Calificaciones'; +$string['tr_item_grades_distribution_help_description_p1'] = 'Este gráfico muestra la distribución de los estudiantes en diferentes rangos de calificación. Los rangos de calificación se calculan en base a porcentajes. Se toman en cuenta los siguientes rangos: menor al 50%, mayor al 50%, mayor al 60%, mayor al 70%, mayor al 80% y mayor al 90%. Estos rangos se calculan en base a la ponderación máxima que el docente asignó a una actividad evaluable.'; +$string['tr_item_grades_distribution_help_description_p2'] = 'En el eje x están los rangos de calificación de la actividad. En el eje y está la cantidad de estudiantes que pertenecen a un determinado rango.'; +$string['tr_item_grades_distribution_help_description_p3'] = 'Al hacer clic sobre la barra correspondiente a un rango se puede enviar un correo electrónico a los estudiantes dentro del rango de calificación.'; + +/* Grades */ +$string['fml_grades_select_label'] = 'Categoría de Calificación'; +$string['fml_grades_chart_title'] = 'Promedios de Actividades Evaluables'; +$string['fml_grades_yaxis_title'] = 'Promedio de Calificaciones (%)'; +$string['fml_grades_tooltip_average'] = 'Calificación Promedio'; +$string['fml_grades_tooltip_grade'] = 'Calificación Máxima'; +$string['fml_grades_tooltip_student'] = 'estudiante calificado de'; +$string['fml_grades_tooltip_students'] = 'estudiantes calificados de'; + +$string['fml_grades_best_grade'] = 'Mejor Calificación'; +$string['fml_grades_average_grade'] = 'Calificación Promedio'; +$string['fml_grades_worst_grade'] = 'Peor Calificación'; +$string['fml_grades_details_subtitle'] = 'Mejor, Peor y Calificación Promedio'; + +$string['fml_grades_distribution_subtitle'] = 'Distribución de Calificaciones'; +$string['fml_grades_distribution_greater_than'] = 'mayor al'; +$string['fml_grades_distribution_smaller_than'] = 'menor al'; +$string['fml_grades_distribution_yaxis_title'] = 'Número de Estudiantes'; +$string['fml_grades_distribution_tooltip_prefix'] = 'Rango'; +$string['fml_grades_distribution_tooltip_suffix'] = 'en este rango'; +$string["fml_view_details"] = "(Clic para ver detalles)"; + + +/* Teacher Quiz */ +$string['tq_section_help_title'] = 'Seguimiento de Evaluaciones'; +$string['tq_section_help_description'] = 'Esta sección contiene indicadores relacionados al resumen de intentos en las diferentes evaluaciones del curso y análisis de las preguntas de una evaluación. Los datos presentados en esta sección varían dependiendo de la semana de estudio seleccionada y de un selector que contiene todas las actividades de tipo Evaluación de las secciones del curso asignadas a la semana seleccionada.'; +$string['tq_questions_attempts_help_title'] = 'Intentos de Preguntas'; +$string['tq_questions_attempts_help_description_p1'] = 'Este gráfico muestra la distribución de intentos de resolución de cada una de las preguntas de una evaluación junto con el estado de revisión en el que se encuentran.'; +$string['tq_questions_attempts_help_description_p2'] = 'En el eje x del gráfico se encuentran las preguntas de la evaluación. En el eje y se encuentra la cantidad de intentos de resolución para cada una de dichas preguntas. La simetría del gráfico se verá afectada por la configuración de la evaluación (ejemplo: en una evaluación que tenga siempre las mismas preguntas, el gráfico presentará la misma cantidad de intentos para cada barra correspondiente a una pregunta. En una evaluación que tenga preguntas aleatorias (de un banco de preguntas), el gráfico presentará en la barra de cada pregunta la suma de los intentos de evaluaciones en los que apareció, pudiendo no ser la misma para cada pregunta de la evaluación).'; +$string['tq_questions_attempts_help_description_p3'] = 'Al hacer clic en alguna de las barras correspondiente a una pregunta es posible ver la pregunta de la evaluación en una ventana emergente.'; +$string['tq_hardest_questions_help_title'] = 'Preguntas más difíciles'; +$string['tq_hardest_questions_help_description_p1'] = 'Este gráfico muestra las preguntas de la evaluación ordenadas por su nivel de dificultad. Se considera incorrecto a un intento de resolución de una pregunta con el estado de Parcialmente Correcto, Incorrecto o En Blanco, de manera que la cantidad total de intentos incorrectos de una pregunta es la suma de los intentos con los estados antes mencionados. El nivel de dificultad se representa en porcentaje calculado en base a la cantidad total de intentos.'; +$string['tq_hardest_questions_help_description_p2'] = 'En el eje x del gráfico se encuentran las preguntas de la evaluación identificadas por el nombre. En el eje y se encuentran el porcentaje de intentos incorrectos del total de intentos de la pregunta. Este eje permite identificar cuáles han sido las preguntas que han representado mayor dificultad para los estudiantes que rindieron la evaluación.'; +$string['tq_hardest_questions_help_description_p3'] = 'Al hacer clic en alguna de las barras correspondiente a una pregunta es posible ver la pregunta de la evaluación en una ventana emergente.'; + +$string["fml_quiz_info_text"] = "Esta Evaluación tiene"; +$string["fml_question_text"] = "pregunta"; +$string["fml_questions_text"] = "preguntas"; +$string["fml_doing_text_singular"] = "intento realizado por"; +$string["fml_doing_text_plural"] = "intentos realizados por"; +$string["fml_attempt_text"] = "intento"; +$string["fml_attempts_text"] = "intentos"; +$string["fml_student_text"] = "estudiante"; +$string["fml_students_text"] = "estudiantes"; +$string["fml_quiz"] = "Evaluaciones"; +$string["fml_questions_attempts_chart_title"] = "Intentos de Preguntas"; +$string["fml_questions_attempts_yaxis_title"] = "Número de Intentos"; +$string["fml_hardest_questions_chart_title"] = "Preguntas mas Difíciles"; +$string["fml_hardest_questions_yaxis_title"] = "Intentos Incorrectos"; +$string["fml_correct_attempt"] = "Correctos"; +$string["fml_partcorrect_attempt"] = "Parcialmente Correctos"; +$string["fml_incorrect_attempt"] = "Incorrectos"; +$string["fml_blank_attempt"] = "En Blanco"; +$string["fml_needgraded_attempt"] = "Sin Calificar"; +$string["fml_review_question"] = "(Clic para revisar la pregunta)"; + + +/* Deserción */ +$string['td_section_help_title'] = 'Deserción'; +$string['td_section_help_description'] = 'Esta sección contiene indicadores relacionados a la predicción de abandono de estudiantes de un curso. La información se muestra en base a grupos de estudiantes calculados por un algoritmo que analiza el comportamiento de cada estudiante en base al tiempo invertido, la cantidad de sesiones del estudiante, la cantidad de días activo y las interacciones que ha realizado con cada recurso y con los demás estudiantes del curso. El algoritmo coloca en el mismo grupo a estudiantes con similar comportamiento, de manera que se puede identificar a los estudiantes más y menos comprometidos con el curso. Los datos presentados en esta sección varían dependiendo del grupo seleccionado en el selector que contiene los grupos identificados en el curso.'; +$string['td_group_students_help_title'] = 'Estudiantes del Grupo'; +$string['td_group_students_help_description_p1'] = 'En esta tabla están los estudiantes pertenecientes al grupo seleccionado del selector Grupo de Estudiantes. De cada estudiante se lista su foto, nombres y el porcentaje de progreso del curso. Para el cálculo del progreso se han considerado todos los recursos del curso a excepción de los de tipo Label. Para determinar si un estudiante ha finalizado un recurso se verifica en primer lugar si el recurso tiene habilitada la configuración de completitud. En caso de ser así, se busca si el estudiante ya ha completado la actividad en base a esa configuración. De lo contrario, la actividad se considera completa si el estudiante la ha visto al menos una vez.'; +$string['td_group_students_help_description_p2'] = 'Al hacer clic sobre un estudiante en esta tabla, se actualizarán los gráficos inferiores con la información del estudiante seleccionado.'; +$string['td_modules_access_help_title'] = 'Recursos del Curso'; +$string['td_modules_access_help_description_p1'] = 'Este gráfico muestra la cantidad de recursos a los que el estudiante ha accedido y completado. Los datos presentados en este gráfico varían dependiendo del estudiante seleccionado en la tabla Estudiantes del Grupo. Para determinar la cantidad de recursos y actividades completas se hace uso de la configuración de Moodle denominada Finalización de Actividad. En caso de que el docente no realice la configuración de completitud para las actividades del curso, la cantidad de actividades accedidas y completas siempre será la misma, ya que sin tal configuración, un recurso se considera finalizado cuando el estudiante accede a él.'; +$string['td_modules_access_help_description_p2'] = 'En el eje x se encuentran la cantidad de recursos del curso. En el eje y se encuentran las etiquetas de Accedidos, Completos y Total de recursos del curso.'; +$string['td_modules_access_help_description_p3'] = 'Al hacer clic sobre alguna barra es posible ver los recursos y actividades disponibles en el curso (en una ventana emergente) junto con la cantidad de interacciones del estudiante con cada recurso y una etiqueta de no accedido, accedido o completado.'; +$string['td_week_modules_help_title'] = 'Recursos por Semanas'; +$string['td_week_modules_help_description_p1'] = 'Este gráfico muestra la cantidad de recursos que el estudiante ha accedido y completado de cada una de las semanas configuradas en el plugin. Los datos presentados en este gráfico varían dependiendo del estudiante seleccionado en la tabla <i>Estudiantes del Grupo</i>.'; +$string['td_week_modules_help_description_p2'] = 'En el eje x del gráfico se encuentran las diferentes semanas de estudio configuradas. En el eje y se encuentra la cantidad de recursos y actividades accedidas y completadas del estudiante.'; +$string['td_week_modules_help_description_p3'] = 'Al hacer clic sobre alguna barra es posible ver los recursos y actividades disponibles en el curso (en una ventana emergente) junto con la cantidad de interacciones del estudiante con cada recurso y una etiqueta de no accedido, accedido o completado.'; +$string['td_sessions_evolution_help_title'] = 'Sesiones y tiempo invertido'; +$string['td_sessions_evolution_help_description_p1'] = 'Este gráfico permite conocer cómo han evolucionado las sesiones de estudio desde que se registró su primera sesión en el curso. Los datos presentados en este gráfico varían dependiendo del estudiante seleccionado en la tabla <i>Estudiantes del Grupo</i>.'; +$string['td_sessions_evolution_help_description_p2'] = 'En el eje x del gráfico se muestra una línea temporal con los días que han transcurrido desde que el estudiante realizó la primera sesión de estudio hasta el día de la última sesión registrada. En el eje y muestran 2 valores, en el lado izquierdo el número de sesiones del estudiante y en el lado derecho la cantidad de tiempo invertido en horas. Entre dichos ejes se dibujan la cantidad de sesiones y el tiempo invertido del estudiante como una serie de tiempo.'; +$string['td_sessions_evolution_help_description_p3'] = 'Esta visualización permite hacer un acercamiento sobre una región seleccionada. Este acercamiento ayuda a evidenciar de manera clara dicha evolución en diferentes rangos de fechas.'; +$string['td_user_grades_help_title'] = 'Calificaciones'; +$string['td_user_grades_help_description_p1'] = 'Este gráfico muestra una comparación de las calificaciones del estudiante con los promedios de calificaciones (media en porcentaje) de sus compañeros en las distintas actividades evaluables del curso. Los datos presentados en este gráfico varían dependiendo del estudiante seleccionado en la tabla <i>Estudiantes del Grupo</i>.'; +$string['td_user_grades_help_description_p2'] = 'En el eje x del gráfico se muestran las diferentes actividades evaluables. En el eje y se encuentra la calificación del estudiante y la media de calificaciones de sus compañeros. Tanto la calificación del estudiante como la media del curso se muestran en porcentaje para mantener la simetría del gráfico.'; +$string['td_user_grades_help_description_p3'] = 'Con un clic en la barra correspondiente a alguna actividad es posible dirigirse a dicha analizada.'; + +$string["fml_cluster_label"] = "Grupo"; +$string["fml_cluster_select"] = "Grupo de Estudiantes"; +$string["fml_dropout_table_title"] = "Estudiantes del Grupo"; +$string["fml_dropout_see_profile"] = "Ver Perfil"; +$string["fml_dropout_user_never_access"] = "Nunca Accedido"; +$string["fml_dropout_student_progress_title"] = "Progreso del Estudiante"; +$string["fml_dropout_student_grade_title"] = "Calificación"; +$string['fml_dropout_no_data'] = "Aún no hay datos de desercion para este curso"; +$string['fml_dropout_no_users_cluster'] = "No hay estudiantes de este grupo"; +$string['fml_dropout_generate_data_manually'] = "Generar Manualmente"; +$string['fml_dropout_generating_data'] = "Generando datos..."; +$string["fml_modules_access_chart_title"] = "Recursos del Curso"; +$string["fml_modules_access_chart_series_total"] = "Total"; +$string["fml_modules_access_chart_series_complete"] = "Completos"; +$string["fml_modules_access_chart_series_viewed"] = "Accedidos"; +$string["fml_week_modules_chart_title"] = "Recursos por Semanas"; +$string["fml_modules_amount"] = "Cantidad de Recursos"; +$string["fml_modules_details"] = "(Clic para ver recursos)"; +$string["fml_modules_interaction"] = "interacción"; +$string["fml_modules_interactions"] = "interacciones"; +$string["fml_modules_viewed"] = "Accedido"; +$string["fml_modules_no_viewed"] = "No accedido"; +$string["fml_modules_complete"] = "Completado"; +$string["fml_sessions_evolution_chart_title"] = "Sesiones y Tiempo Invertido"; +$string["fml_sessions_evolution_chart_xaxis1"] = "Número de Sesiones"; +$string["fml_sessions_evolution_chart_xaxis2"] = "Cantidad de Horas"; +$string["fml_sessions_evolution_chart_legend1"] = "Cantidad de Sesiones"; +$string["fml_sessions_evolution_chart_legend2"] = "Tiempo Invertido"; +$string["fml_user_grades_chart_title"] = "Calificaciones"; +$string["fml_user_grades_chart_yaxis"] = "Calificación en Porcentaje"; +$string["fml_user_grades_chart_xaxis"] = "Actividades Evaluables"; +$string["fml_user_grades_chart_legend"] = "Curso (Media)"; +$string["fml_user_grades_chart_tooltip_no_graded"] = "Sin Calificaciones"; +$string["fml_user_grades_chart_view_activity"] = "Clic para ver la actividad"; +$string['fml_send_mail_to_user'] = 'Correo a'; +$string['fml_send_mail_to_group'] = 'Correo al Grupo'; + + +/*Student General*/ +$string['sg_section_help_title'] = 'Indicadores Generales'; +$string['sg_section_help_description'] = 'Esta sección contiene indicadores relacionados a tu información, progreso, indicadores generales, recursos del curso, sesiones a lo largo del curso y calificaciones obtenidas. Las visualizaciones de esta sección muestran los indicadores durante todo el curso (hasta la fecha actual).'; +$string['sg_modules_access_help_title'] = 'Recursos del Curso'; +$string['sg_modules_access_help_description_p1'] = 'Este gráfico muestra la cantidad de recursos que has accedido y completado. Para determinar la cantidad de recursos que has completado se hace uso de la configuración de Moodle denominada Finalización de Actividad. En caso de que el docente no haya configurado la completitud para las actividades del curso, la cantidad de actividades accedidas y completas siempre será la misma, ya que sin tal configuración, un recurso se considera finalizado cuando accedes a él.'; +$string['sg_modules_access_help_description_p2'] = 'En el eje x se encuentran la cantidad de recursos del curso. En el eje y se encuentran las etiquetas de Accedidos, Completos y Total de recursos en referencia a tus interacciones con los recursos del curso.'; +$string['sg_modules_access_help_description_p3'] = 'Al hacer clic sobre alguna barra es posible ver los recursos y actividades disponibles en el curso (en una ventana emergente) junto con la cantidad de interacciones que has realizado con cada recurso y una etiqueta de no accedido, accedido o completado.'; +$string['sg_weeks_session_help_title'] = 'Sesiones por Semana'; +$string['sg_weeks_session_help_description_p1'] = 'Este gráfico muestra la cantidad de sesiones de estudio que has realizado cada semana a partir de la fecha de inicio del curso. Se considera el acceso al curso como el inicio de una sesión de estudio. Una sesión se considera finalizada cuando el tiempo transcurrido entre dos interacciones supera los 30 minutos.'; +$string['sg_weeks_session_help_description_p2'] = 'En el eje x del gráfico se encuentran las semanas de cada mes. En el eje y del gráfico se encuentran los diferentes meses del año partiendo del mes de creación del curso. Para mantener la simetría del gráfico se ha colocado un total de cinco semanas para cada mes, sin embargo, no todos los meses tiene tal cantidad de semanas. Dichos meses, solo sumarán sesiones hasta la semana cuatro.'; +$string['sg_sessions_evolution_help_title'] = 'Sesiones y Tiempo Invertido'; +$string['sg_sessions_evolution_help_description_p1'] = 'Este gráfico permite conocer cómo han evolucionado tus sesiones de estudio desde que se registró tu primera sesión en el curso.'; +$string['sg_sessions_evolution_help_description_p2'] = 'En el eje x del gráfico se muestra una línea temporal con los días que han transcurrido desde que realizaste tu primera sesión de estudio hasta el día de tu última sesión registrada. En el eje y muestran 2 valores, en el lado izquierdo tu cantidad de sesiones y en el lado derecho tu cantidad de tiempo invertido en horas. Entre dichos ejes se dibujan tu cantidad de sesiones y tu tiempo invertido del estudiante como una serie de tiempo.'; +$string['sg_sessions_evolution_help_description_p3'] = 'Esta visualización permite hacer un acercamiento sobre una región seleccionada.'; +$string['sg_user_grades_help_title'] = 'Calificaciones'; +$string['sg_user_grades_help_description_p1'] = 'Este gráfico muestra una comparación de tus calificaciones con los promedios de calificaciones (media en porcentaje) de tus compañeros en las distintas actividades evaluables del curso.'; +$string['sg_user_grades_help_description_p2'] = 'En el eje x del gráfico se muestran las diferentes actividades evaluables. En el eje y se encuentra tus calificaciones y la media de calificaciones de tus compañeros. Tanto tu calificación como la media del curso se muestran en porcentaje para mantener la simetría del gráfico.'; +$string['sg_user_grades_help_description_p3'] = 'Con un clic en la barra correspondiente a alguna actividad es posible dirigirse a dicha analizada.'; + +/* User Sessions*/ +$string['ss_section_help_title'] = 'Sesiones de Estudio'; +$string['ss_section_help_description'] = 'Esta sección contiene visualizaciones con indicadores relacionados a tu actividad en el curso medida en términos de sesiones de estudio, tiempo invertido y progreso en cada una de las semanas configuradas por el docente. Las visualizaciones de esta sección varían dependiendo de la semana de estudio seleccionada.'; +$string['ss_inverted_time_help_title'] = 'Tu tiempo invertido'; +$string['ss_inverted_time_help_description_p1'] = 'Este gráfico muestra tu tiempo invertido en la semana en comparación del tiempo planificado por parte del docente.'; +$string['ss_inverted_time_help_description_p2'] = 'En el eje x del gráfico se encuentra el número de horas que el docente ha planificado para una semana específica. En el eje y se encuentran las etiquetas de tiempo invertido y tiempo que se debería invertir.'; +$string['ss_hours_session_help_title'] = 'Sesiones por Día y Hora'; +$string['ss_hours_session_help_description_p1'] = 'Este gráfico muestra tus sesiones de estudio por día y hora de la semana seleccionada. Se considera el acceso al curso como el inicio de una sesión de estudio. Una sesión se considera finalizada cuando el tiempo transcurrido entre dos interacciones supera los 30 minutos.'; +$string['ss_hours_session_help_description_p2'] = 'En el eje x del gráfico se encuentran los días de la semana. En el eje y se encuentran las horas del día empezando por las 12am y terminando a las 11pm o 23 horas.'; +$string['ss_resources_access_help_title'] = 'Interacción por Tipos de Recursos'; +$string['ss_resources_access_help_description_p1'] = 'Este gráfico muestra cuántos recursos tienes pendientes y cuáles ya has completado en la semana seleccionada. Los recursos se agrupan por su tipo en este gráfico. Además, en la parte superior se muestra una barra que representa el porcentaje de recursos accedidos del total de recursos asignados a la semana seleccionada.'; +$string['ss_resources_access_help_description_p2'] = 'En el eje x del gráfico se encuentran los diferentes tipos de recursos. En el eje y se encuentran la cantidad de recursos accedidos de la semana.'; +$string['ss_resources_access_help_description_p3'] = 'Al hacer clic sobre alguna barra es posible ver los recursos y actividades disponibles en el curso (en una ventana emergente) junto con la cantidad de interacciones que has realizado con cada recurso y una etiqueta de no accedido, accedido o completado.'; + + +$string['fml_student_time_inverted_title'] = 'Tu Tiempo Invertido'; +$string['fml_student_time_inverted_x_axis'] = 'Número de Horas'; +$string['fml_student_inverted_time'] = 'Tiempo Invertido'; +$string['fml_student_expected_time'] = 'Tiempo que se debería Invertir'; + +$string['fml_resource_access_title'] = 'Interacción por Tipos de Recursos'; +$string['fml_resource_access_y_axis'] = 'Cantidad de Recursos'; +$string['fml_resource_access_x_axis'] = 'Tipos de Recursos'; +$string['fml_resource_access_legend1'] = 'Completos'; +$string['fml_resource_access_legend2'] = 'Pendientes'; + +$string['fml_week_progress_title'] = 'Progreso de la Semana'; + + + +/*Teacher Indicators*/ +$string['fml_teacher_indicators_title'] = 'Indicadores Generales'; +$string['fml_teacher_indicators_students'] = 'Estudiantes'; +$string['fml_teacher_indicators_weeks'] = 'Semanas'; +$string['fml_teacher_indicators_grademax'] = 'Calificación'; +$string['fml_teacher_indicators_course_start'] = 'Inicio'; +$string['fml_teacher_indicators_course_end'] = 'Fin'; +$string['fml_teacher_indicators_course_format'] = 'Formato'; +$string['fml_teacher_indicators_course_completion'] = 'Completitud de Módulos'; +$string["fml_teacher_indicators_student_progress"] = "Progreso del los Estudiantes"; +$string["fml_teacher_indicators_week_resources_chart_title"] = "Recursos por Semanas"; +$string["fml_teacher_indicators_week_resources_yaxis_title"] = "Cantidad de Recursos"; + +/* Logs */ +$string['fml_logs_title'] = 'Descargar los registros de actividad'; +$string['fml_logs_help_description'] = 'Esta sección le permite descargar los registros de actividad que se han realizado. Es decir, tienes acceso a las acciones que han realizado los usuarios registrados en la plataforma en un formato de hoja de cálculo.'; +$string['fml_logs_title_MoodleSetpoint_title'] = 'Seleccione un rango de fechas para las acciones realizadas en Moodle'; +$string['fml_logs_title_MMPSetpoint_title'] = 'Seleccione un rango de fechas para las acciones realizadas en Note My Progress'; +$string['fml_logs_help'] = 'Esta sección le permite descargar un archivo de registro de las actividades realizadas.'; +$string['fml_logs_select_date'] = 'Seleccione un intervalo de tiempo para el registro'; +$string['fml_logs_first_date'] = 'Fecha de inicio'; +$string['fml_logs_last_date'] = 'Fecha de finalización'; +$string['fml_logs_valid_Moodlebtn'] = 'Descargar el registro de actividades de Moodle'; +$string['fml_logs_valid_NMPbtn'] = 'Descargar el registro de actividades de Note My Progress'; +$string['fml_logs_invalid_date'] = 'Introduzca una fecha'; +$string['fml_logs_download_btn'] = 'Descarga en curso'; +$string['fml_logs_download_nmp_help_title'] = 'Sobre las acciones realizadas en Note My Progress'; +$string['fml_logs_download_moodle_help_title'] = 'Sobre las acciones realizadas en Moodle'; +$string['fml_logs_download_nmp_help_description'] = 'El archivo de registro que se descarga enumera todas las acciones que ha realizado el usuario únicamente dentro del plugin Note My Progress (ver el progreso, ver los indicadores generales...)'; +$string['fml_logs_download_moodle_help_description'] = 'El archivo de registro que se sube enumera todas las acciones que ha realizado el usuario sólo dentro de Moodle (ver el curso, ver los recursos, enviar una tarea...)'; + + + +/* Logs CSV Header */ +$string['fml_logs_csv_headers_username'] = 'Nombre de usuario'; +$string['fml_logs_csv_headers_firstname'] = 'Nombre'; +$string['fml_logs_csv_headers_lastname'] = 'Apellido'; +$string['fml_logs_csv_headers_date'] = 'Fecha'; +$string['fml_logs_csv_headers_hour'] = 'Hora'; +$string['fml_logs_csv_headers_action'] = 'Acción'; +$string['fml_logs_csv_headers_coursename'] = 'Nombre del curso'; +$string['fml_logs_csv_headers_detail'] = 'Detalle'; +$string['fml_logs_csv_headers_detailtype'] = 'Tipo de objeto utilizado'; + +$string['fml_logs_error_begin_date_superior'] = 'La fecha de inicio no puede ser mayor que la fecha actual'; +$string['fml_logs_error_begin_date_inferior'] = 'La fecha de inicio debe ser anterior a la fecha de finalización'; +$string['fml_logs_error_empty_dates'] = 'Las fechas no pueden estar vacías'; +$string['fml_logs_error_problem_encountered'] = 'Se ha encontrado un problema, por favor, inténtelo de nuevo'; + +$string['fml_logs_success_file_downloaded'] = '¡Archivo cargado!'; + + +$string['fml_logs_moodle_csv_headers_role'] = 'Role'; +$string['fml_logs_moodle_csv_headers_email'] = 'Email'; +$string['fml_logs_moodle_csv_headers_username'] = 'Username'; +$string['fml_logs_moodle_csv_headers_fullname'] = 'Fullname'; +$string['fml_logs_moodle_csv_headers_date'] = 'Date'; +$string['fml_logs_moodle_csv_headers_hour'] = 'Hour'; +$string['fml_logs_moodle_csv_headers_action'] = 'Action'; +$string['fml_logs_moodle_csv_headers_courseid'] = 'CourseID'; +$string['fml_logs_moodle_csv_headers_coursename'] = 'Course_name'; +$string['fml_logs_moodle_csv_headers_detailid'] = 'Detail ID'; +$string['fml_logs_moodle_csv_headers_details'] = 'Details'; +$string['fml_logs_moodle_csv_headers_detailstype'] = 'Details_type'; + +$string['fml_logs_moodle_csv_headers_role_description'] = 'Da el rol que tiene el usuario en el curso en el que ha realizado una acción (alumno, profesor...)'; +$string['fml_logs_moodle_csv_headers_email_description'] = 'Proporciona el correo electrónico del usuario'; +$string['fml_logs_moodle_csv_headers_username_description'] = 'Da el nombre de usuario de moodle de la persona que realizó la acción'; +$string['fml_logs_moodle_csv_headers_fullname_description'] = 'Da el nombre completo del usuario (Nombre + Apellido)'; +$string['fml_logs_moodle_csv_headers_date_description'] = 'Indica la fecha en que se realizó la acción en el formato dd-MM-AAAA'; +$string['fml_logs_moodle_csv_headers_hour_description'] = 'Indica la hora en que se realizó la acción'; +$string['fml_logs_moodle_csv_headers_action_description'] = 'Dar un verbo que describa la acción realizada (por ejemplo, hacer clic, ver...)'; +$string['fml_logs_moodle_csv_headers_courseid_description'] = 'Indica el identificador del precio sobre el que se ha realizado la acción'; +$string['fml_logs_moodle_csv_headers_coursename_description'] = 'Indique el nombre de la acción en la que se realizó la acción'; +$string['fml_logs_moodle_csv_headers_detailid_description'] = 'Da el ID del objeto con el que el usuario ha interactuado'; +$string['fml_logs_moodle_csv_headers_details_description'] = 'Indicar el nombre del objeto al que se apunta'; +$string['fml_logs_moodle_csv_headers_detailstype_description'] = 'Indica el tipo de objeto al que se apunta (ejemplos de objetos: Repositorio, Concurso, Recursos...)'; + +$string['fml_logs_moodle_table_title'] = 'Descripción de las rúbricas'; +$string['fml_logs_moodle_table_subtitle'] = 'Acerca de los registros de Moodle'; + +$string['fml_logs_nmp_table_title'] = 'Descripción de las rúbricas'; +$string['fml_logs_nmp_table_subtitle'] = 'Acerca de los registros de Note My Progress'; + +$string['fml_logs_nmp_csv_headers_role'] = 'Role'; +$string['fml_logs_nmp_csv_headers_email'] = 'Email'; +$string['fml_logs_nmp_csv_headers_username'] = 'Username'; +$string['fml_logs_nmp_csv_headers_fullname'] = 'Fullname'; +$string['fml_logs_nmp_csv_headers_date'] = 'Date'; +$string['fml_logs_nmp_csv_headers_hour'] = 'Hour'; +$string['fml_logs_nmp_csv_headers_courseid'] = 'CourseID'; +$string['fml_logs_nmp_csv_headers_section_name'] = 'NMP_SECTION_NAME'; +$string['fml_logs_nmp_csv_headers_action_type'] = 'NMP_ACTION_TYPE'; + +$string['fml_logs_nmp_csv_headers_role_description'] = 'Da el rol que tiene el usuario en el curso en el que ha realizado una acción (alumno, profesor...)'; +$string['fml_logs_nmp_csv_headers_email_description'] = 'Proporciona el correo electrónico del usuari'; +$string['fml_logs_nmp_csv_headers_username_description'] = 'Da el nombre de usuario de moodle de la persona que realizó la acción'; +$string['fml_logs_nmp_csv_headers_fullname_description'] = 'Da el nombre completo del usuario (Nombre + Apellido)'; +$string['fml_logs_nmp_csv_headers_date_description'] = 'Indica la fecha en que se realizó la acción en el formato dd-MM-AAAA'; +$string['fml_logs_nmp_csv_headers_hour_description'] = 'Indica la hora en que se realizó la acción'; +$string['fml_logs_nmp_csv_headers_courseid_description'] = 'Indica el identificador del precio sobre el que se ha realizado la acción'; +$string['fml_logs_nmp_csv_headers_section_name_description'] = 'Da el nombre de la sección de note my progress en la que se encontraba el usuario cuando realizó la acción'; +$string['fml_logs_nmp_csv_headers_action_type_description'] = 'Proporciona una descripción completa de la acción realizada por el usuario en forma de verbo + sujeto + objeto (por ejemplo, download_moodle_logfile)'; + +$string['fml_logs_table_title'] = 'Título'; +$string['fml_logs_table_title_bis'] = 'Descripción'; + +$string['fml_logs_help_button_nmp'] = 'Sobre las acciones realizadas en Note My Progress'; +$string['fml_logs_help_button_moodle'] = 'Sobre las acciones realizadas en Moodle'; + + +$string['fml_logs_download_details_link'] = 'Leer más'; +$string['fml_logs_download_details_title'] = '¿Está seguro de que quiere un informe explicativo detallado?'; +$string['fml_logs_download_details_description'] = 'Si acepta, se descargará un archivo en formato PDF.'; +$string['fml_logs_download_details_ok'] = 'Descargar'; +$string['fml_logs_download_details_cancel'] = 'Cancelar'; +$string['fml_logs_download_details_validation'] = 'El informe se ha descargado'; + + +/* NoteMyProgress admin settings */ + +$string['fml_settings_bddusername_label'] = 'Nombre de usuario de la base de datos'; +$string['fml_settings_bddusername_description'] = 'Este parámetro designa el nombre de usuario desde el que se puede acceder a la base de datos MongoDB. Si se introduce este parámetro, se debe introducir la contraseña así como el nombre de la base de datos de destino.'; +$string['fml_settings_bddusername_default'] = 'Vacío'; + +$string['fml_settings_bddpassword_label'] = 'Contraseña de la cuenta'; +$string['fml_settings_bddpassword_description'] = 'Este parámetro es la contraseña de la cuenta desde la que se puede acceder a la base de datos MongoDB. Si se introduce este parámetro, será necesario introducir el nombre de usuario así como el nombre de la base de datos de destino.'; +$string['fml_settings_bddpassword_default'] = 'Vacío'; + + +$string['fml_settings_bddaddress_label'] = 'Dirección del servidor MongoDB *'; +$string['fml_settings_bddaddress_description'] = 'Este parámetro es la dirección desde la que se puede acceder a la base de datos MongoDB. Este parámetro es obligatorio y tiene la forma: 151.125.45.58 or yourserver.com'; +$string['fml_settings_bddaddress_default'] = 'localhost'; + +$string['fml_settings_bddport_label'] = 'Puerto de comunicación *'; +$string['fml_settings_bddport_description'] = 'Este parámetro designa el puerto a utilizar para comunicarse con la base de datos. Este parámetro es obligatorio y debe ser un número.'; +$string['fml_settings_bddport_default'] = '27017'; + + +$string['fml_settings_bddname_label'] = 'Nombre de la base de datos'; +$string['fml_settings_bddname_description'] = 'Este parámetro designa el nombre de la base de datos MongoDB en la que se guardará la información.'; +$string['fml_settings_bddname_default'] = 'Vacío'; diff --git a/NMP 3.0 Moodle Pluggin/fliplearning/lang/fr/local_fliplearning.php b/NMP 3.0 Moodle Pluggin/fliplearning/lang/fr/local_fliplearning.php new file mode 100644 index 0000000000000000000000000000000000000000..91b147de315f58eef9302ac23859a601cc95f432 --- /dev/null +++ b/NMP 3.0 Moodle Pluggin/fliplearning/lang/fr/local_fliplearning.php @@ -0,0 +1,724 @@ +<?php +// Ce fichier fait partie de Moodle - http://moodle.org/ +// +// Moodle est un logiciel libre: vous pouvez le redistribuer et / ou le modifier +// selon les termes de la licence publique générale GNU comme publié par +// la Free Software Foundation, soit la version 3 de la licence, soit +// (à votre choix) toute version ultérieure. +// +// Moodle est distribué dans l\'espoir qu'il sera utile, +// mais SANS AUCUNE GARANTIE; sans même la garantie implicite de +// QUALITÉ MARCHANDE ou d\'aDÉQUATION À UN USAGE PARTICULIER. Voir la +// Licence publique générale GNU pour plus de détails. +// +// Vous devriez avoir reçu une copie de la licence publique générale GNU +// avec Moodle. Sinon, consultez <http://www.gnu.org/licenses/>. + +/** +* Les chaînes de plugins sont définies ici. +* +* @package local_fliplearning +* @category string +* @copyright 2020 Edisson Sigma <edissonf.sigua@gmail.com>, Bryan Aguilar <bryan.aguilar6174@gmail.com> +* @license http://www.gnu.org/copyleft /gpl.html GNU GPL v3 ou version ultérieure +*/ + +defined ('MOODLE_INTERNAL') || die(); + +$string['pluginname'] = 'NoteMyProgress'; + +/* Global */ +$string['pagination'] = 'Semaine:'; +$string['graph_generating'] = 'Nous sommes en train de construire le rapport, veuillez patienter un moment.'; +$string['weeks_not_config'] = 'Le cours n\'a pas été configuré par l\'enseignant, il n\'y a donc pas de visualisations à afficher. '; +$string['pagination_title'] = 'Sélection de la semaine'; +$string['helplabel'] = 'Aide'; +$string['exitbutton'] = 'OK!'; +$string['no_data'] = 'Il n\'y a aucune donnée à afficher'; +$string['only_student'] = 'Ce rapport est réservé aux étudiants'; +$string["fml_send_mail"] = "(Cliquez pour envoyer un e-mail)"; +$string["fml_about"] = "À propos de ce graphique"; +$string["fml_about_table"] = "À propos de cette table"; +$string["fml_not_configured"] = "Non configuré"; +$string["fml_activated"] = "Activé"; +$string["fml_disabled"] = "Désactivé"; + +/* Menu */ +$string['menu_main_title'] = "Progression du tableau de bord"; +$string['menu_sessions'] = 'Sessions d\'étude'; +$string['menu_setweek'] = "Définir les semaines"; +$string['menu_time'] = 'Suivi du temps'; +$string['menu_assignments'] = 'Suivi des dépôts'; +$string['menu_grades'] = 'Suivi des notes'; +$string['menu_quiz'] = 'Suivi des évaluations'; +$string['menu_dropout'] = 'Abandon'; +$string['menu_logs'] = "Journaux d'activités"; +$string['menu_general'] = "Indicateurs généraux"; + +/* Nav Bar Menu */ +$string['togglemenu'] = 'Afficher / Masquer le menu FML'; + +/* Composant de pagination */ +$string['pagination_component_to'] = 'al'; +$string['pagination_component_name'] = 'Semaine'; + +/* Goups */ +$string['group_allstudent'] = 'Tous les étudiants'; + +/* Erreurs générales */ +$string['api_error_network'] = "Une erreur s'est produite lors de la communication avec le serveur."; +$string['api_invalid_data'] = 'Données incorrectes'; +$string['api_save_successful'] = 'Les données ont été correctement enregistrées sur le serveur'; +$string['api_cancel_action'] = 'Vous avez annulé l\'action '; + +/* Admin Task Screen */ +$string['generate_data_task'] = 'Processus de génération de données pour le plugin note my progress'; + +/* Graphique */ +$string['chart_loading'] = 'Chargement ...'; +$string['chart_exportButtonTitle'] = "Exporter"; +$string['chart_printButtonTitle'] = "Imprimer"; +$string['chart_rangeSelectorFrom'] = "De"; +$string['chart_rangeSelectorTo'] = "Jusqu'à"; +$string['chart_rangeSelectorZoom'] = "Plage"; +$string['chart_downloadPNG'] = 'Télécharger une image PNG'; +$string['chart_downloadJPEG'] = 'Télécharger une image JPEG'; +$string['chart_downloadPDF'] = 'Télécharger le document PDF'; +$string['chart_downloadSVG'] = 'Télécharger l\'image SVG'; +$string['chart_downloadCSV'] = 'Télécharger CSV'; +$string['chart_downloadXLS'] = 'Télécharger XLS'; +$string['chart_exitFullscreen'] = 'Quitter le plein écran'; +$string['chart_hideData'] = 'Masquer la table de données'; +$string['chart_noData'] = 'Il n \' y a aucune donnée à afficher '; +$string['chart_printChart'] = 'Imprimer le graphique'; +$string['chart_viewData'] = 'Afficher la table de données'; +$string['chart_viewFullscreen'] = 'Afficher en plein écran'; +$string['chart_resetZoom'] = 'Redémarrer le zoom'; +$string['chart_resetZoomTitle'] = 'Réinitialiser le niveau de zoom 1: 1'; + +/* Définir les semaines */ +$string['setweeks_title'] = 'Définition des semaines de cours'; +$string['setweeks_description'] = 'Pour commencer, vous devez configurer le cours par semaines et définir une date de début pour la première semaine (le reste des semaines se déroulera automatiquement à partir de cette date. Ensuite, vous devez associer les activités ou des modules liés à chaque semaine en les faisant glisser de la colonne de droite vers la semaine correspondante. Il n\'est pas nécessaire d\'affecter toutes les activités ou modules aux semaines, mais uniquement celles que vous souhaitez envisager pour suivre les étudiants. Enfin, vous devez cliquez sur le bouton Enregistrer pour conserver vos paramètres. '; +$string['setweeks_sections'] = "Sections disponibles dans le cours"; +$string['setweeks_weeks_of_course'] = "Planification des semaines"; +$string['setweeks_add_new_week'] = "Ajouter une semaine"; +$string['setweeks_start'] = "Commence le:"; +$string['setweeks_end'] = "Se termine le:"; +$string['setweeks_week'] = "Semaine"; +$string['setweeks_save'] = "Enregistrer la configuration"; +$string['setweeks_time_dedication'] = 'Combien d\'heures de travail attendez-vous que les étudiants consacrent à votre cours cette semaine?'; +$string['setweeks_enable_scroll'] = "Activer le mode de défilement pour les semaines et les thèmes"; +$string['setweeks_label_section_removed'] = "Retiré du cours"; +$string['setweeks_error_section_removed'] = "Une section affectée à une semaine a été supprimée du cours, vous devez la supprimer de votre planification pour continuer."; +$string['setweeks_save_warning_title'] = "Êtes-vous sûr de vouloir enregistrer les modifications?"; +$string['setweeks_save_warning_content'] = "Si vous modifiez la configuration des semaines où le cours a déjà commencé, des données peuvent être perdues..."; +$string['setweeks_confirm_ok'] = "Enregistrer"; +$string['setweeks_confirm_cancel'] = "Annuler"; +$string['setweeks_error_empty_week'] = "Vous ne pouvez pas enregistrer les modifications avec une semaine vide. Veuillez la supprimer et réessayer."; +$string['setweeks_new_group_title'] = "Nouvelle instance de configuration"; +$string['setweeks_new_group_text'] = "Nous avons détecté que votre cours est terminé, si vous souhaitez configurer les semaines pour travailler avec de nouveaux étudiants, vous devez activer le bouton ci-dessous. Cela séparera les données des étudiants actuels de celles des précédents cours, en évitant de les mélanger. "; +$string['setweeks_new_group_button_label'] = "Enregistrer la configuration en tant que nouvelle instance"; +$string['course_format_weeks'] = 'Semaine'; +$string['course_format_topics'] = 'Sujet'; +$string['course_format_social'] = 'Social'; +$string['course_format_singleactivity'] = 'Activité unique'; +$string['plugin_requirements_title'] = 'Statut:'; +$string['plugin_requirements_descriptions'] = 'Le plugin sera visible et affichera les rapports pour les étudiants et les enseignants lorsque les conditions suivantes sont remplies...'; +$string['plugin_requirements_has_users'] = 'Le cours doit avoir au moins un étudiant inscrit'; +$string['plugin_requirements_course_start'] = 'La date actuelle doit être postérieure à la date de début de la première semaine configurée.'; +$string['plugin_requirements_has_sections'] = 'Les semaines configurées doivent contenir au moins une section.'; +$string['plugin_visible'] = 'Rapports visibles.'; +$string['plugin_hidden'] = 'Rapports masqués.'; +$string['title_conditions'] = 'Conditions d \' utilisation '; + +/* Heure */ +$string['fml_mon'] = 'Lundi'; +$string['fml_tue'] = 'Mardi'; +$string['fml_wed'] = 'Mercredi'; +$string['fml_thu'] = 'Jeudi'; +$string['fml_fri'] = 'Vendredi'; +$string['fml_sat'] = 'Samedi'; +$string['fml_sun'] = 'Dimanche'; +$string['fml_mon_short'] = 'Lun'; +$string['fml_tue_short'] = 'Mar'; +$string['fml_wed_short'] = 'Mer'; +$string['fml_thu_short'] = 'Jeu'; +$string['fml_fri_short'] = 'Ven'; +$string['fml_sat_short'] = 'Sam'; +$string['fml_sun_short'] = 'Dim'; + +$string['fml_jan'] = 'Janvier'; +$string['fml_feb'] = 'Février'; +$string['fml_mar'] = 'Mars'; +$string['fml_apr'] = 'Avril'; +$string['fml_may'] = 'Mai'; +$string['fml_jun'] = 'Juin'; +$string['fml_jul'] = 'Juillet'; +$string['fml_aug'] = 'Août'; +$string['fml_sep'] = 'Septembre'; +$string['fml_oct'] = 'Octobre'; +$string['fml_nov'] = 'Novembre'; +$string['fml_dec'] = 'Décembre'; +$string['fml_jan_short'] = 'Jan'; +$string['fml_feb_short'] = 'Fév'; +$string['fml_mar_short'] = 'Mar'; +$string['fml_apr_short'] = 'Apr'; +$string['fml_may_short'] = 'Mai'; +$string['fml_jun_short'] = 'Juin'; +$string['fml_jul_short'] = 'Juil'; +$string['fml_aug_short'] = 'Août'; +$string['fml_sep_short'] = 'Sep'; +$string['fml_oct_short'] = 'Oct'; +$string['fml_nov_short'] = 'Nov'; +$string['fml_dec_short'] = 'Déc'; + +$string['fml_week1'] = 'Sem 1'; +$string['fml_week2'] = 'Sem 2'; +$string['fml_week3'] = 'Sem 3'; +$string['fml_week4'] = 'Sem 4'; +$string['fml_week5'] = 'Sem 5'; +$string['fml_week6'] = 'Sem 6'; + +$string['fml_00'] = '00h'; +$string['fml_01'] = '01h'; +$string['fml_02'] = '02h'; +$string['fml_03'] = '03h'; +$string['fml_04'] = '04h'; +$string['fml_05'] = '05h'; +$string['fml_06'] = '06h'; +$string['fml_07'] = '07h'; +$string['fml_08'] = '08h'; +$string['fml_09'] = '09h'; +$string['fml_10'] = '10h'; +$string['fml_11'] = '11h'; +$string['fml_12'] = '12h'; +$string['fml_13'] = '13h'; +$string['fml_14'] = '14h'; +$string['fml_15'] = '15h'; +$string['fml_16'] = '16h'; +$string['fml_17'] = '17h'; +$string['fml_18'] = '18h'; +$string['fml_19'] = '19h'; +$string['fml_20'] = '20h'; +$string['fml_21'] = '21h'; +$string['fml_22'] = '22h'; +$string['fml_23'] = '23h'; + +/* Enseignant général */ +$string['tg_section_help_title'] = 'Indicateurs généraux'; +$string['tg_section_help_description'] = 'Cette section contient des visualisations avec des indicateurs généraux liés à la configuration du cours, aux ressources assignées par semaine, aux sessions d\'étude et à la progression des étudiants dans le cours. Les visualisations de cette section montrent les indicateurs de la date de début à la date de fin du cours (ou à la date actuelle si le cours n\'est pas encore terminé).'; +$string['tg_week_resources_help_title'] = 'Ressources par semaines'; +$string['tg_week_resources_help_description_p1'] = 'Ce graphique affiche la quantité de ressources pour chacune des sections de cours affectées à chaque semaine d\'étude configurée dans la section <i> Configurer les semaines </i>. Si deux sections de cours ou plus sont attribuées à une semaine, les ressources de ces sections sont additionnées pour calculer le total des ressources pour une semaine. '; +$string['tg_week_resources_help_description_p2'] = 'Sur l\' axe des x du graphique se trouvent les ressources et activités totales des sections affectées à chaque semaine configurée de note my progress. Sur l’axe des y figurent les semaines d’étude configurées. '; +$string['tg_weeks_sessions_help_title'] = 'Sessions par semaine'; +$string['tg_week_sessions_help_description_p1'] = 'Ce graphique montre le nombre de sessions d \' étude complétées par les étudiants chaque semaine à partir de la date de début du cours. L\'accès au cours par l\'étudiant est considéré comme le début d\'une session d\'étude. Une session est considérée comme terminée lorsque le temps entre deux interactions d\'un élève dépasse 30 minutes. '; +$string['tg_week_sessions_help_description_p2'] = 'Sur l \' axe des x du graphique se trouvent les semaines de chaque mois. l\'axe des y du graphique montre les différents mois de l\'année à partir du mois de création du cours. Pour maintenir la symétrie du graphique, un total de cinq semaines a été placé pour chaque mois, cependant, chaque mois ne compte pas autant de semaines. Ces mois n’ajouteront que des sessions jusqu’à la quatrième semaine.'; +$string['tg_progress_table_help_title'] = 'Progression des étudiants'; +$string['tg_progress_table_help_description'] = 'Ce tableau montre une liste de tous les étudiants inscrits au cours avec leur progression, le nombre de sessions et le temps passé. Pour calculer la progression, toutes les ressources du cours ont été prises en compte, à l\'exception de celles de type <i> Label </i>. Pour déterminer si un étudiant a terminé une ressource, il est d\'abord vérifié pour voir si le paramètre d\'exhaustivité de la ressource est activé. Si tel est le cas, il est recherché si l\'élève a déjà terminé l\'activité basée sur cette configuration. Sinon, l’activité est considérée comme terminée si l’élève l’a vue au moins une fois. '; + +$string['fml_title'] = 'Sessions de travail'; +$string['table_title'] = 'Progression du cours'; +$string['thead_name'] = 'Prénom'; +$string['thead_lastname'] = 'Nom'; +$string['thead_email'] = 'Mail'; +$string['thead_progress'] = 'Progression (%)'; +$string['thead_sessions'] = 'Sessions'; +$string['thead_time'] = 'Temps investi'; + +$string['fml_module_label'] = 'ressource'; +$string['fml_modules_label'] = 'ressources'; +$string['fml_of_conector'] = 'de'; +$string['fml_finished_label'] = 'terminé'; +$string['fml_finisheds_label'] = 'terminé'; + +$string['fml_smaller30'] = 'Moins de 30 minutes'; +$string['fml_greater30'] = 'Plus de 30 minutes'; +$string['fml_greater60'] = 'Plus de 60 minutes'; + +$string['fml_session_count_title'] = 'Sessions de la semaine'; +$string['fml_session_count_yaxis_title'] = 'Nombre de sessions'; +$string['fml_session_count_tooltip_suffix'] = 'sessions'; + +$string['fml_hours_sessions_title'] = 'Sessions par jour et heure'; +$string['fml_weeks_sessions_title'] = 'Sessions par semaine'; + +$string["fml_session_text"] = "session"; +$string["fml_sessions_text"] = "sessions"; + +$string['ss_change_timezone'] = 'Fuseau horaire:'; +// $string['ss_activity_inside_plataform_student'] = 'Mon activité sur la plateforme'; +// $string['ss_activity_inside_plataform_teacher'] = 'Activité des étudiants sur la plateforme'; +// $string['ss_time_inside_plataform_student'] = 'Mon temps sur la plateforme'; +// $string['ss_time_inside_plataform_teacher'] = 'Temps moyen passé par les étudiants sur la plateforme cette semaine'; +// $string['ss_time_inside_plataform_description_teacher'] = 'Temps que l’élève a investi dans la semaine sélectionnée, par rapport au temps que l’enseignant a prévu de l’investir. Le temps passé affiché correspond à la moyenne de tous les élèves. Le temps prévu par l’enseignant est le temps attribué par l’enseignant dans <i> Configurer les semaines </i>. '; +// $string['ss_time_inside_plataform_description_student'] = 'Temps passé cette semaine par rapport au temps que l’enseignant a prévu de passer.'; +// $string['ss_activity_inside_plataform_description_teacher'] = 'Les heures de la journée sont indiquées sur l\'axe Y et les jours de la semaine sur l\'axe X. Dans le graphique, vous pouvez trouver plusieurs points qui, en les survolant, offrent des informations détaillées sur les interactions des étudiants, regroupées par type de ressource (nombre d\'interactions, nombre d\'étudiants qui ont interagi avec la ressource et moyenne des interactions). <br/> <br/> <b> En cliquant sur les balises, vous pourrez filtrer par type de ressource, ne laissant visibles que celles qui ne sont pas barrées. </b> '; +// $string['ss_activity_inside_plataform_description_student'] = 'Afficher les interactions par type de ressource et planification. Lorsque vous survolez un point visible du graphique, vous verrez le nombre d\'interactions regroupées par type de ressource. En cliquant sur les balises, vous pourrez filtrer par type de ressource. '; + +/* Sessions de l\'enseignant */ +$string['ts_section_help_title'] = 'Sessions d\'étude'; +$string['ts_section_help_description'] = 'Cette section contient des visualisations liées à l’activité des étudiants dans le cours mesurée en termes de sessions effectuées, de temps moyen passé dans le cours par semaine et de sessions d’étude à intervalles de temps. Les données présentées dans cette section varient en fonction de la semaine d\'étude choisie. '; +$string['ts_inverted_time_help_title'] = 'Temps investi par les étudiants'; +$string['ts_inverted_time_help_description_p1'] = 'Ce graphique montre le temps moyen passé par les étudiants dans la semaine par rapport au temps moyen prévu par le professeur.'; +$string['ts_inverted_time_help_description_p2'] = 'Sur l\'axe des x du graphique se trouve le nombre d\'heures que l\'enseignant a prévu pour une semaine spécifique. Sur l’axe des y figurent les étiquettes du temps moyen passé et du temps moyen à passer. '; +$string['ts_hours_sessions_help_title'] = 'Sessions par jour et heure'; +$string['ts_hours_sessions_help_description_p1'] = 'Ce graphique montre les sessions d\'étude par jour et heure pour la semaine sélectionnée. L\'accès au cours par l\'étudiant est considéré comme le début d\'une session d\'étude. Une session est considérée comme terminée lorsque le temps entre deux interactions d\'un élève dépasse 30 minutes. '; +$string['ts_hours_sessions_help_description_p2'] = 'Sur l\'axe des x du graphique se trouvent les jours de la semaine. Sur l’axe des y figurent les heures de la journée allant de 00h00 à 23h00'; +$string['ts_sessions_count_help_title'] = 'Sessions de la semaine'; +$string['ts_sessions_count_help_description_p1'] = 'Ce graphique montre le nombre de sessions classées par durée dans des plages horaires: moins de 30 minutes, plus de 30 minutes et plus de 60 minutes. l\'accès au cours par l\'étudiant est considéré comme le début d\'une session d\'étude. Une session est considérée comme terminée lorsque le temps entre deux interactions d\'un élève dépasse 30 minutes. '; +$string['ts_sessions_count_help_description_p2'] = 'Sur l\'axe des x du graphique se trouvent les jours de la semaine configurés. Sur l’axe des y figure le nombre de sessions effectuées. '; + +$string['fml_time_inverted_title'] = 'Temps investi par les étudiants'; +$string['fml_time_inverted_x_axis'] = 'Nombre d\'heures'; +$string['fml_inverted_time'] = 'Temps moyen investi'; +$string['fml_expected_time'] = 'Temps moyen à investir'; + +$string['fml_year'] = 'année'; +$string['fml_years'] = 'années'; +$string['fml_month'] = 'mois'; +$string['fml_months'] = 'mois'; +$string['fml_day'] = 'jour'; +$string['fml_days'] = 'jours'; +$string['fml_hour'] = 'heure'; +$string['fml_hours'] = 'heures'; +$string['fml_hours_short'] = 'h'; +$string['fml_minute'] = 'minute'; +$string['fml_minutes'] = 'minutes'; +$string['fml_minutes_short'] = 'm'; +$string['fml_second'] = 'second'; +$string['fml_seconds'] = 'secondes'; +$string['fml_seconds_short'] = 's'; +$string['fml_ago'] = 'avant'; +$string['fml_now'] = 'juste maintenant'; + +/*Devoirs des enseignants */ + +$string['ta_section_help_title'] = 'Suivi des tâches'; +$string['ta_section_help_description'] = 'Cette section contient des indicateurs liés à la livraison des devoirs dans les zones de dépôts et à l \' accès aux ressources. Les données présentées dans cette section varient en fonction de la semaine d\'étude choisie. '; +$string['ta_assigns_submissions_help_title'] = 'Suivi des devoirs soumis dans les zones de dépôts'; +$string['ta_assigns_submissions_help_description_p1'] = 'Ce graphique montre la distribution du nombre d\'étudiants, par rapport à l\'état de livraison d\'un devoir dans les zones de dépôts.'; +$string['ta_assigns_submissions_help_description_p2'] = 'Sur l \' axe des x du graphique se trouvent le nom des dépôts des sections de la semaine sélectionnée avec la date et l \'heure de livraison attendue. Sur l\'axe des y se trouve la distribution du nombre d\'étudiants en fonction du statut de livraison soumis (vert), non soumis (rouge), soumis en retard (jaune). En cliquant sur les différentes zones du graphique, vous pouvez envoyer un mail aux groupes d\'étudiants que vous souhaitez (ceux ayant envoyé le devoir en retard ou non, ceux ayant envoyé leur devoir à temps...).'; +$string['ta_access_content_help_title'] = 'Accès au contenu du cours '; +$string['ta_access_content_help_description_p1'] = 'Ce graphique montre le nombre d\'étudiants qui ont accédé et n\'ont pas accédé aux ressources du cours. En haut se trouvent les différents types de ressources Moodle, avec la possibilité de filtrer les informations du graphe en fonction du type de ressource sélectionné. '; +$string['ta_access_content_help_description_p2'] = 'L \' axe des x du graphique montre le nombre d \'étudiants inscrits au cours. l\'axe des y du graphique montre les ressources des sections affectées à la semaine. De plus, ce graphique vous permet d’envoyer un e-mail aux étudiants qui ont accédé à la ressource ou à ceux qui n’y ont pas accédé en cliquant sur le graphique. '; + +/* Assign Submissions */ +$string['fml_intime_sub'] = 'Devoir déposé à temps'; +$string['fml_late_sub'] = 'Devoir déposé en retard'; +$string['fml_no_sub'] = 'Devoir non déposé'; +$string['fml_assign_nodue'] = 'Pas de date limite'; +$string['fml_assignsubs_title'] = 'Suivi des devoirs soumis dans les zones de dépôts'; +$string['fml_assignsubs_yaxis'] = 'Nombre d\'étudiants'; + + +/* Accès au contenu */ +$string['fml_assign'] = 'Tâche'; +$string['fml_assignment'] = 'Tâche'; +$string['fml_attendance'] = 'Participation'; +$string['fml_book'] = 'Livre'; +$string['fml_chat'] = 'Chatter'; +$string['fml_choice'] = 'Choix'; +$string['fml_data'] = 'Base de données'; +$string['fml_feedback'] = 'Commentaires'; +$string['fml_folder'] = 'Dossier'; +$string['fml_forum'] = 'Forum'; +$string['fml_glossary'] = 'Glossaire'; +$string['fml_h5pactivity'] = 'H5P'; +$string['fml_imscp'] = 'Contenu IMS'; +$string['fml_label'] = 'Label'; +$string['fml_lesson'] = 'Leçon'; +$string['fml_lti'] = 'Contenu IMS'; +$string['fml_page'] = 'Page'; +$string['fml_quiz'] = 'Quiz'; +$string['fml_resource'] = 'Ressource'; +$string['fml_scorm'] = 'Package SCORM'; +$string['fml_survey'] = 'Sondage'; +$string['fml_url'] = 'Url'; +$string['fml_wiki'] = 'Wiki'; +$string['fml_workshop'] = 'Atelier'; + +$string['fml_access'] = 'Accédé'; +$string['fml_no_access'] = 'Aucun accès'; +$string['fml_access_chart_title'] = 'Accès au contenu du cours'; +$string['fml_access_chart_yaxis_label'] = 'Nombre d\'étudiants'; +$string['fml_access_chart_suffix'] = 'étudiants'; + + +/* Email */ +$string['fml_validation_subject_text'] = 'Le sujet est obligatoire'; +$string['fml_validation_message_text'] = 'Veuillez écrire un message'; +$string['fml_subject_label'] = 'Ajouter un sujet'; +$string['fml_message_label'] = 'Ajouter un message'; + +$string['fml_submit_button'] = 'Envoyer'; +$string['fml_cancel_button'] = 'Annuler'; +$string['fml_close_button'] = 'Fermer'; +$string['fml_emailform_title'] = 'Envoyer un e-mail'; +$string['fml_sending_text'] = 'Envoi de courriels'; + +$string['fml_recipients_label'] = 'À'; +$string['fml_mailsended_text'] = 'Emails envoyés'; + +$string['fml_email_footer_text'] = 'Ceci est un email envoyé avec note my progress.'; +$string['fml_email_footer_prefix'] = 'Aller à'; +$string['fml_email_footer_suffix'] = 'pour plus d\'informations.'; +$string['fml_mailsended_text'] = 'Emails envoyés'; + +$string['fml_assign_url'] = '/mod/assign/view.php?id='; +$string['fml_assignment_url'] = '/mod/assignment/view.php?id='; +$string['fml_book_url'] = '/mod/book/view.php?id='; +$string['fml_chat_url'] = '/mod/chat/view.php?id='; +$string['fml_choice_url'] = '/mod/choice/view.php?id='; +$string['fml_data_url'] = '/mod/data/view.php?id='; +$string['fml_feedback_url'] = '/mod/feedback/view.php?id='; +$string['fml_folder_url'] = '/mod/folder/view.php?id='; +$string['fml_forum_url'] = '/mod/forum/view.php?id='; +$string['fml_glossary_url'] = '/mod/glossary/view.php?id='; +$string['fml_h5pactivity_url'] = '/mod/h5pactivity/view.php?id='; +$string['fml_imscp_url'] = '/mod/imscp/view.php?id='; +$string['fml_label_url'] = '/mod/label/view.php?id='; +$string['fml_lesson_url'] = '/mod/lesson/view.php?id='; +$string['fml_lti_url'] = '/mod/lti/view.php?id='; +$string['fml_page_url'] = '/mod/page/view.php?id='; +$string['fml_quiz_url'] = '/mod/quiz/view.php?id='; +$string['fml_resource_url'] = '/mod/resource/view.php?id='; +$string['fml_scorm_url'] = '/mod/scorm/view.php?id='; +$string['fml_survey_url'] = '/mod/survey/view.php?id='; +$string['fml_url_url'] = '/mod/url/view.php?id='; +$string['fml_wiki_url'] = '/mod/wiki/view.php?id='; +$string['fml_workshop_url'] = '/mod/workshop/view.php?id='; +$string['fml_course_url'] = '/course/view.php?id='; + + +/* Évaluation de l\'enseignant */ +$string['tr_section_help_title'] = 'Suivi des notes'; +$string['tr_section_help_description'] = 'Cette section contient des indicateurs liés aux moyennes des notes dans les activités évaluables. Les différentes unités d\'enseignement (Catégories de Qualification) créées par l\'enseignant sont affichées dans le sélecteur <i> Catégorie de Qualification </i>. Ce sélecteur vous permettra de basculer entre les différentes unités définies et de montrer les activités qui peuvent être évaluées dans chacune. '; +$string['tr_grade_items_average_help_title'] = 'Moyenne des activités évaluables'; +$string['tr_grade_items_average_help_description_p1'] = 'Ce graphique présente la moyenne (en pourcentage) des notes des étudiants dans chacune des activités évaluables du cours. La moyenne en pourcentage est calculée en fonction de la note maximale de l\'activité évaluable (exemple: une activité évaluable avec un score maximum de 80 et une note moyenne de 26 présentera une barre d\'une hauteur égale à 33%, puisque 26 est 33% de la note totale). La moyenne pondérée cumulative a été exprimée en fonction de pourcentages afin de préserver la symétrie du graphique, car Moodle vous permet de créer des activités et d’attribuer des notes personnalisées. '; +$string['tr_grade_items_average_help_description_p2'] = 'Sur l \' axe des x du graphique se trouvent les différentes activités évaluables du cours. Sur l’axe des y se trouve la moyenne pondérée exprimée en pourcentage. '; +$string['tr_grade_items_average_help_description_p3'] = 'En cliquant sur la barre correspondant à une activité évaluable, les données des deux graphiques inférieurs seront mises à jour pour afficher des informations supplémentaires sur l\'activité évaluable sélectionnée.'; +$string['tr_item_grades_details_help_title'] = 'Meilleure note, pire note et note moyenne'; +$string['tr_item_grades_details_help_description_p1'] = 'Ce graphique montre la meilleure note, la note moyenne et la pire note pour une activité évaluable (l’activité sélectionnée dans le tableau des activités évaluables moyennes).'; +$string['tr_item_grades_details_help_description_p2'] = 'Sur l \' axe des x du graphique se trouve le score de la note d \'activité, la note maximale de l \' activité étant la valeur maximale sur cet axe. Sur l’axe des y figurent les libellés de la meilleure note, de la note moyenne et de la pire note. '; +$string['tr_item_grades_distribution_help_title'] = 'Répartition des notes'; +$string['tr_item_grades_distribution_help_description_p1'] = 'Ce graphique montre la répartition des élèves dans différentes gammes de notes. Les gammes de notes sont calculées en fonction de pourcentages. Les plages suivantes sont prises en compte: moins de 50%, plus de 50%, plus de 60%, plus de 70%, plus de 80% et plus de 90%. Ces fourchettes sont calculées en fonction du poids maximum que l\'enseignant attribue à une activité évaluable. '; +$string['tr_item_grades_distribution_help_description_p2'] = 'Sur l \' axe des x se trouvent les plages de notes d \'activité. Sur l’axe des y figure le nombre d’élèves appartenant à un certain rang. '; +$string['tr_item_grades_distribution_help_description_p3'] = 'En cliquant sur la barre correspondant à un rang, vous pouvez envoyer un email aux étudiants dans le classement.'; + +/* Notes */ +$string['fml_grades_select_label'] = 'Catégorie de note'; +$string['fml_grades_chart_title'] = 'Moyennes des activités évaluables'; +$string['fml_grades_yaxis_title'] = 'Note moyenne (%)'; +$string['fml_grades_tooltip_average'] = 'Note moyenne'; +$string['fml_grades_tooltip_grade'] = 'Note maximale'; +$string['fml_grades_tooltip_student'] = 'étudiant noté de'; +$string['fml_grades_tooltip_students'] = 'élèves notés de'; + +$string['fml_grades_best_grade'] = 'Meilleure note'; +$string['fml_grades_average_grade'] = 'Note moyenne'; +$string['fml_grades_worst_grade'] = 'Pire note'; +$string['fml_grades_details_subtitle'] = 'Meilleure note, pire note et note moyenne'; + +$string['fml_grades_distribution_subtitle'] = 'Répartition des notes'; +$string['fml_grades_distribution_greater_than'] = 'supérieur à'; +$string['fml_grades_distribution_smaller_than'] = 'inférieur à'; +$string['fml_grades_distribution_yaxis_title'] = 'Nombre d\'étudiants'; +$string['fml_grades_distribution_tooltip_prefix'] = 'Plage'; +$string['fml_grades_distribution_tooltip_suffix'] = 'dans cette plage'; +$string["fml_view_details"] = "(Cliquez pour voir les détails)"; + + +/* Quiz enseignant */ +$string['tq_section_help_title'] = 'Suivi des évaluations'; +$string['tq_section_help_description'] = 'Cette section contient des indicateurs liés au résumé des tentatives dans les différentes évaluations du cours et à l \' analyse des questions d \'une évaluation. Les données présentées dans cette section varient en fonction de la semaine d\'étude sélectionnée et d\'un sélecteur contenant toutes les activités de type Evaluation des sections de cours affectées à la semaine sélectionnée. '; +$string['tq_questions_attempts_help_title'] = 'Tentatives de questions'; +$string['tq_questions_attempts_help_description_p1'] = 'Ce graphique montre la distribution des tentatives de résolution pour chaque question dans une évaluation ainsi que leur statut de révision.'; +$string['tq_questions_attempts_help_description_p2'] = 'Sur l \' axe des x du graphique se trouvent les questions d \'évaluation. l\'axe des y montre le nombre de tentatives de résolution pour chacune de ces questions. La symétrie du graphique sera affectée par les paramètres d\'évaluation (exemple: dans une évaluation qui comporte toujours les mêmes questions, le graphique présentera le même nombre de tentatives pour chaque barre correspondant à une question. Dans une évaluation comportant des questions aléatoires ( d\'une banque de questions), le graphique présentera dans la barre de chaque question la somme des tentatives d\'évaluation dans lesquelles elle est apparue, et peut ne pas être la même pour chaque question d\'évaluation). '; +$string['tq_questions_attempts_help_description_p3'] = 'En cliquant sur l \' une des barres correspondant à une question, il est possible de voir la question d \'évaluation dans une fenêtre pop-up.'; +$string['tq_hardest_questions_help_title'] = 'Questions plus difficiles'; +$string['tq_hardest_questions_help_description_p1'] = 'Ce graphique montre les questions d’évaluation classées par niveau de difficulté. Une tentative de résolution d\'une question avec le statut Partiellement correct, incorrect ou vide est considérée comme incorrecte, de sorte que le nombre total de tentatives incorrectes d\'une question est la somme des tentatives avec les statuts susmentionnés. Le niveau de difficulté est représenté sous forme de pourcentage calculé sur la base du nombre total de tentatives. '; +$string['tq_hardest_questions_help_description_p2'] = 'Sur l \' axe des x du graphique se trouvent les questions d \'évaluation identifiées par leur nom. l\'axe des y montre le pourcentage de tentatives incorrectes par rapport au nombre total de tentatives pour la question. Cet axe permet d\'identifier les questions qui ont représenté la plus grande difficulté pour les étudiants qui ont passé l\'évaluation. '; +$string['tq_hardest_questions_help_description_p3'] = 'En cliquant sur l \' une des barres correspondant à une question, il est possible de voir la question d \'évaluation dans une fenêtre pop-up.'; + +$string["fml_quiz_info_text"] = "Cette évaluation a"; +$string["fml_question_text"] = "question"; +$string["fml_questions_text"] = "questions"; +$string["fml_doing_text_singular"] = "tentative faite par"; +$string["fml_doing_text_plural"] = "tentatives faites par"; +$string["fml_attempt_text"] = "tentative"; +$string["fml_attempts_text"] = "tentatives"; +$string["fml_student_text"] = "étudiant"; +$string["fml_students_text"] = "étudiants"; +$string["fml_quiz"] = "Évaluations"; +$string["fml_questions_attempts_chart_title"] = "Tentatives de questions"; +$string["fml_questions_attempts_yaxis_title"] = "Nombre de tentatives"; +$string["fml_hardest_questions_chart_title"] = "Questions plus difficiles"; +$string["fml_hardest_questions_yaxis_title"] = "Tentatives incorrectes"; +$string["fml_correct_attempt"] = "Correcte"; +$string["fml_partcorrect_attempt"] = "Partiellement correcte"; +$string["fml_incorrect_attempt"] = "Incorrecte"; +$string["fml_blank_attempt"] = "Vide"; +$string["fml_needgraded_attempt"] = "Non noté"; +$string["fml_review_question"] = "(Cliquez pour revoir la question)"; + + +/* Abandon */ +$string['td_section_help_title'] = 'Abandon'; +$string['td_section_help_description'] = 'Cette section contient des indicateurs liés à la prédiction du décrochage des étudiants dans un cours. Les informations sont affichées en fonction de groupes d\'étudiants calculés par un algorithme qui analyse le comportement de chaque élève en fonction du temps investi, du nombre de sessions d\'étudiants, du nombre de jours d\'activité et des interactions qu\'ils ont faites avec chaque ressource et avec l\'autre étudiants dans le cours. l\'algorithme place les étudiants ayant un comportement similaire dans le même groupe, afin que les étudiants qui sont de plus en moins engagés dans le cours puissent être identifiés. Les données présentées dans cette section varient en fonction du groupe sélectionné dans le sélecteur qui contient les groupes identifiés dans le cours. '; +$string['td_group_students_help_title'] = 'Regrouper les étudiants'; +$string['td_group_students_help_description_p1'] = 'Dans ce tableau se trouvent les étudiants appartenant au groupe sélectionné dans le sélecteur de groupe d\'étudiants. La photo de chaque élève, les noms et le pourcentage de progression dans le cours sont répertoriés. Pour le calcul de la progression, toutes les ressources du cours ont été prises en compte, à l\'exception de celles de type Label. Pour déterminer si un étudiant a terminé une ressource, il est d\'abord vérifié pour voir si le paramètre d\'exhaustivité de la ressource est activé. Si tel est le cas, il est recherché si l\'élève a déjà terminé l\'activité basée sur cette configuration. Sinon, l’activité est considérée comme terminée si l’élève l’a vue au moins une fois. '; +$string['td_group_students_help_description_p2'] = 'Cliquer sur un élève dans ce tableau mettra à jour les graphiques ci-dessous avec les informations de l\'élève sélectionné.'; +$string['td_modules_access_help_title'] = 'Ressources du cours'; +$string['td_modules_access_help_description_p1'] = 'Ce graphique montre la quantité de ressources auxquelles l\'étudiant a accédé et complété. Les données présentées dans ce graphique varient en fonction de l\'élève sélectionné dans le tableau des étudiants du groupe. Pour déterminer la quantité de ressources et terminer les activités, la configuration Moodle appelée Achèvement des activités est utilisée. Si l\'enseignant ne fait pas la configuration d\'exhaustivité des activités du cours, le nombre d\'activités accédées et terminées sera toujours le même, car sans une telle configuration, une ressource est considérée comme terminée lorsque l\'étudiant y accède. '; +$string['td_modules_access_help_description_p2'] = 'Sur l \' axe des x se trouve la quantité de ressources du cours. Sur l’axe des y figurent les libellés des ressources consultées, complètes et totales du cours. '; +$string['td_modules_access_help_description_p3'] = 'En cliquant sur n\'importe quelle barre, il est possible de voir les ressources et activités disponibles dans le cours (dans une fenêtre pop-up) ainsi que le nombre d\'interactions des étudiants avec chaque ressource et une étiquette de non consulté, consulté ou terminé. '; +$string['td_week_modules_help_title'] = 'Ressources par semaines'; +$string['td_week_modules_help_description_p1'] = 'Ce graphique montre la quantité de ressources auxquelles l\'étudiant a accédé et complété pour chacune des semaines configurées dans le plugin. Les données présentées dans ce graphique varient en fonction de l’élève sélectionné dans le tableau <i> Groupe d’étudiants </i>. '; +$string['td_week_modules_help_description_p2'] = 'Sur l \' axe des x du graphique se trouvent les différentes semaines d \'étude configurées. L’axe des y montre la quantité de ressources et d’activités consultées et réalisées par l’élève. '; +$string['td_week_modules_help_description_p3'] = 'En cliquant sur n\'importe quelle barre, il est possible de voir les ressources et activités disponibles dans le cours (dans une fenêtre pop-up) ainsi que le nombre d\'interactions des étudiants avec chaque ressource et une étiquette de non consulté, consulté ou terminé. '; +$string['td_sessions_evolution_help_title'] = 'Sessions et temps passé'; +$string['td_sessions_evolution_help_description_p1'] = 'Ce graphique montre comment les sessions d\'étude ont évolué depuis que votre première session a été enregistrée dans le cours. Les données présentées dans ce graphique varient en fonction de l’élève sélectionné dans le tableau <i> Groupe d’étudiants </i>. '; +$string['td_sessions_evolution_help_description_p2'] = 'L \' axe des x du graphique montre une chronologie avec les jours qui se sont écoulés depuis que l \'étudiant a fait la première session d \' étude jusqu\'au jour de la dernière session enregistrée. Sur l\'axe des y, ils affichent 2 valeurs, sur le côté gauche le nombre de sessions d\'étudiants et sur le côté droit le temps passé en heures. Entre ces axes, le nombre de sessions et le temps investi de l\'étudiant sont tirés comme une série de temps. '; +$string['td_sessions_evolution_help_description_p3'] = 'Cette visualisation vous permet de zoomer sur une région sélectionnée. Cette approche permet de montrer clairement cette évolution dans différentes plages de dates. '; +$string['td_user_grades_help_title'] = 'Notes'; +$string['td_user_grades_help_description_p1'] = 'Ce graphique montre une comparaison des notes de l \' élève avec les moyennes des notes (moyenne en pourcentage) de leurs pairs dans les différentes activités évaluables du cours. Les données présentées dans ce graphique varient en fonction de l’élève sélectionné dans le tableau <i> Groupe d’étudiants </i>. '; +$string['td_user_grades_help_description_p2'] = 'Les différentes activités évaluables sont affichées sur l \' axe des x du graphique. Sur l\'axe des y se trouvent la note de l\'élève et la note moyenne de ses pairs. La note de l\'étudiant et la moyenne du cours sont affichées sous forme de pourcentage pour maintenir la symétrie du graphique. '; +$string['td_user_grades_help_description_p3'] = 'Avec un clic sur la barre correspondant à une activité, il est possible d \' aller à ladite analysée. '; + +$string["fml_cluster_label"] = "Groupe"; +$string["fml_cluster_select"] = 'Groupe d\'étudiants'; +$string["fml_dropout_table_title"] = "Étudiants du groupe"; +$string["fml_dropout_see_profile"] = "Afficher le profil"; +$string["fml_dropout_user_never_access"] = "Jamais accédé"; +$string["fml_dropout_student_progress_title"] = "Progression de l\'élève"; +$string["fml_dropout_student_grade_title"] = "Note"; +$string['fml_dropout_no_data'] = "Il n'y a pas encore de données d\'abandon pour ce cours"; +$string['fml_dropout_no_users_cluster'] = "Il n'y a aucun étudiant dans ce groupe"; +$string['fml_dropout_generate_data_manually'] = "Générer manuellement"; +$string['fml_dropout_generating_data'] = "Génération de données ..."; +$string["fml_modules_access_chart_title"] = "Ressources du cours"; +$string["fml_modules_access_chart_series_total"] = "Total"; +$string["fml_modules_access_chart_series_complete"] = "Terminé"; +$string["fml_modules_access_chart_series_viewed"] = "Consulté"; +$string["fml_week_modules_chart_title"] = "Ressources par semaines"; +$string["fml_modules_amount"] = "Quantité de ressources"; +$string["fml_modules_details"] = "(Cliquez pour voir les ressources)"; +$string["fml_modules_interaction"] = "interaction"; +$string["fml_modules_interactions"] = "interactions"; +$string["fml_modules_viewed"] = "Consulté"; +$string["fml_modules_no_viewed"] = "Non consulté"; +$string["fml_modules_complete"] = "Terminé"; +$string["fml_sessions_evolution_chart_title"] = "Sessions et temps investi"; +$string["fml_sessions_evolution_chart_xaxis1"] = "Nombre de sessions"; +$string["fml_sessions_evolution_chart_xaxis2"] = "Nombre d\'heures"; +$string["fml_sessions_evolution_chart_legend1"] = "Nombre de sessions"; +$string["fml_sessions_evolution_chart_legend2"] = "Heure inversée"; +$string["fml_user_grades_chart_title"] = "Notes"; +$string["fml_user_grades_chart_yaxis"] = "Note en pourcentage"; +$string["fml_user_grades_chart_xaxis"] = "Activités évaluables"; +$string["fml_user_grades_chart_legend"] = "Cours (moyen)"; +$string["fml_user_grades_chart_tooltip_no_graded"] = "Aucune note"; +$string["fml_user_grades_chart_view_activity"] = "Cliquez pour voir l\'activité"; +$string['fml_send_mail_to_user'] = 'Envoyer un e-mail à'; +$string['fml_send_mail_to_group'] = 'Envoyer un e-mail au groupe'; + + +/* Général étudiant */ +$string['sg_section_help_title'] = 'Indicateurs généraux'; +$string['sg_section_help_description'] = 'Cette section contient des indicateurs liés à vos informations, progrès, indicateurs généraux, ressources du cours, sessions tout au long du cours et notes obtenues. Les affichages de cette section montrent les indicateurs tout au long du cours (jusqu\'à la date actuelle). '; +$string['sg_modules_access_help_title'] = 'Ressources du cours'; +$string['sg_modules_access_help_description_p1'] = 'Ce graphique montre la quantité de ressources que vous avez consultées et complétées. Pour déterminer la quantité de ressources que vous avez terminées, utilisez la configuration Moodle appelée Achèvement des activités. Si l\'enseignant n\'a pas configuré l\'exhaustivité des activités du cours, le nombre d\'activités accédées et terminées sera toujours le même, car sans une telle configuration, une ressource est considérée comme terminée lorsque vous y accédez. '; +$string['sg_modules_access_help_description_p2'] = 'Sur l \' axe des x se trouve la quantité de ressources du cours. Sur l’axe des y figurent les libellés des ressources accessibles, complètes et totales en référence à vos interactions avec les ressources du cours. '; +$string['sg_modules_access_help_description_p3'] = 'En cliquant sur n \' importe quelle barre, il est possible de voir les ressources et activités disponibles dans le cours (dans une fenêtre pop-up) ainsi que le nombre d \'interactions que vous avez faites avec chaque ressource et une étiquette non consulté, consulté ou terminé. '; +$string['sg_weeks_session_help_title'] = 'Sessions par semaine'; +$string['sg_weeks_session_help_description_p1'] = 'Ce graphique montre le nombre de sessions d \' étude que vous avez suivies chaque semaine à partir de la date de début du cours. l\'accès au cours est considéré comme le début d\'une session d\'étude. Une session est considérée comme terminée lorsque le temps écoulé entre deux interactions dépasse 30 minutes. '; +$string['sg_weeks_session_help_description_p2'] = 'Sur l \' axe des x du graphique se trouvent les semaines de chaque mois. l\'axe des y du graphique montre les différents mois de l\'année à partir du mois de création du cours. Pour maintenir la symétrie du graphique, un total de cinq semaines a été placé pour chaque mois, cependant, chaque mois ne compte pas autant de semaines. Ces mois n’ajouteront que des sessions jusqu’à la quatrième semaine. '; +$string['sg_sessions_evolution_help_title'] = 'Sessions et temps investi'; +$string['sg_sessions_evolution_help_description_p1'] = 'Ce graphique montre comment vos sessions d \' étude ont évolué depuis que votre première session a été inscrite au cours. '; +$string['sg_sessions_evolution_help_description_p2'] = 'L \' axe des x du graphique montre une chronologie avec les jours qui se sont écoulés depuis votre première session d \'étude jusqu\'au jour de votre dernière session enregistrée. Sur l\'axe des y, ils affichent 2 valeurs, sur le côté gauche votre nombre de sessions et sur le côté droit votre temps passé en heures. Entre ces axes, votre nombre de sessions et votre temps passé en tant qu\'étudiant sont représentés sous forme de séries chronologiques. '; +$string['sg_sessions_evolution_help_description_p3'] = 'Cette visualisation vous permet de zoomer sur une région sélectionnée.'; +$string['sg_user_grades_help_title'] = 'Notes'; +$string['sg_user_grades_help_description_p1'] = 'Ce graphique montre une comparaison de vos notes avec les moyennes des notes (moyenne en pourcentage) de vos camarades de classe dans les différentes activités évaluables du cours.'; +$string['sg_user_grades_help_description_p2'] = 'L\'axe des x du graphique montre les différentes activités évaluables. Sur l\'axe des y, vous trouverez vos notes et la note moyenne de vos camarades de classe. Votre note et la moyenne du cours sont affichées en pourcentage pour maintenir la symétrie du graphique. '; +$string['sg_user_grades_help_description_p3'] = 'En cliquant sur la barre correspondant à une activité, il est possible d\'accéder à celle analysée. '; + +/* Sessions utilisateur */ +$string['ss_section_help_title'] = 'Sessions d\'étude'; +$string['ss_section_help_description'] = 'Cette section contient des visualisations avec des indicateurs liés à votre activité dans le cours mesurés en termes de sessions d\'étude, de temps passé et de progression dans chacune des semaines configurées par l\'enseignant. Les affichages de cette section varient en fonction de la semaine d\'étude sélectionnée. '; +$string['ss_inverted_time_help_title'] = 'Votre temps investi'; +$string['ss_inverted_time_help_description_p1'] = 'Ce graphique montre votre temps passé dans la semaine par rapport au temps prévu par le professeur.'; +$string['ss_inverted_time_help_description_p2'] = 'Sur l\'axe des x du graphique se trouve le nombre d\'heures que l\'enseignant a prévu pour une semaine spécifique. Sur l’axe des y figurent les étiquettes du temps passé et du temps à y consacrer. '; +$string['ss_hours_session_help_title'] = 'Sessions par jour et heure'; +$string['ss_hours_session_help_description_p1'] = 'Ce graphique montre vos sessions d\' étude par jour et heure de la semaine sélectionnée. l\'accès au cours est considéré comme le début d\'une session d\'étude. Une session est considérée comme terminée lorsque le temps écoulé entre deux interactions dépasse 30 minutes. '; +$string['ss_hours_session_help_description_p2'] = 'Sur l\'axe des x du graphique se trouvent les jours de la semaine. Sur l’axe des y figurent les heures de la journée commençant à 12h et se terminant à 23h ou 23h. '; +$string['ss_resources_access_help_title'] = 'Interaction par types de ressources'; +$string['ss_resources_access_help_description_p1'] = 'Ce graphique montre combien de ressources vous avez en attente et celles que vous avez déjà complétées dans la semaine sélectionnée. Les ressources sont regroupées par type dans ce graphique. De plus, une barre s\'affiche en haut qui représente le pourcentage de ressources accédées par rapport au total des ressources affectées à la semaine sélectionnée. '; +$string['ss_resources_access_help_description_p2'] = 'Sur l\'axe des x du graphique se trouvent les différents types de ressources. L’axe des y indique la quantité de ressources consultées pour la semaine.'; +$string['ss_resources_access_help_description_p3'] = 'En cliquant sur n\'importe quelle barre, il est possible de voir les ressources et activités disponibles dans le cours (dans une fenêtre pop-up) ainsi que le nombre d\'interactions que vous avez faites avec chaque ressource et une étiquette non consulté, consulté ou terminé. '; + + +$string['fml_student_time_inverted_title'] = 'Votre temps investi'; +$string['fml_student_time_inverted_x_axis'] = 'Nombre d\'heures'; +$string['fml_student_inverted_time'] = 'Temps investi'; +$string['fml_student_expected_time'] = 'Temps à investir'; + +$string['fml_resource_access_title'] = 'Interaction par types de ressources'; +$string['fml_resource_access_y_axis'] = 'Quantité de ressources'; +$string['fml_resource_access_x_axis'] = 'Types de ressources'; +$string['fml_resource_access_legend1'] = 'Terminé'; +$string['fml_resource_access_legend2'] = 'En attente'; + +$string['fml_week_progress_title'] = 'Progrès de la semaine'; + + + +/* Indicateurs de l\'enseignant */ +$string['fml_teacher_indicators_title'] = 'Indicateurs généraux'; +$string['fml_teacher_indicators_students'] = 'Etudiants'; +$string['fml_teacher_indicators_weeks'] = 'Semaines'; +$string['fml_teacher_indicators_grademax'] = 'Grade'; +$string['fml_teacher_indicators_course_start'] = 'Démarre le'; +$string['fml_teacher_indicators_course_end'] = 'Se termine le'; +$string['fml_teacher_indicators_course_format'] = 'Format'; +$string['fml_teacher_indicators_course_completion'] = 'Complétude des modules'; +$string["fml_teacher_indicators_student_progress"] = "Progression des élèves"; +$string["fml_teacher_indicators_week_resources_chart_title"] = "Ressources par semaines"; +$string["fml_teacher_indicators_week_resources_yaxis_title"] = "Quantité de ressources"; + +/* Logs visualisation */ +$string['fml_logs_title'] = 'Télécharger les journaux d\'activités'; +$string['fml_logs_help_description'] = 'Cette section vous permet de télécharger les journaux d\'activités qui ont été réalisés. C\'est-à-dire que vous avez accès aux actions qui ont été réalisées par les utilisateurs inscrits sur la plate-forme sous forme d\'un tableur.'; +$string['fml_logs_title_MoodleSetpoint_title'] = 'Sélectionnez un interval de date pour les actions réalisées sur Moodle'; +$string['fml_logs_title_MMPSetpoint_title'] = 'Sélectionnez un interval de date pour les actions réalisées sur Note My Progress'; +$string['fml_logs_help'] = 'Cette section vous permet de télécharger un fichier de journal des activités effectuées.'; +$string['fml_logs_select_date'] = 'Sélectionnez un interval de temps pour le journal'; +$string['fml_logs_first_date'] = 'Date de début'; +$string['fml_logs_last_date'] = 'Date de fin'; +$string['fml_logs_valid_Moodlebtn'] = 'Télécharger le journal d\'activités de Moodle'; +$string['fml_logs_valid_NMPbtn'] = 'Télécharger le journal d\'activités de Note My Progress'; +$string['fml_logs_invalid_date'] = 'Veuillez saisir une date'; +$string['fml_logs_download_btn'] = 'Téléchargement en cours'; +$string['fml_logs_download_nmp_help_title'] = 'A propos des actions réalisées sur Note My Progress'; +$string['fml_logs_download_moodle_help_title'] = 'A propos des actions réalisées sur Moodle'; +$string['fml_logs_download_nmp_help_description'] = 'Le fichier de logs qui est téléchargé répertorie toutes les actions qui ont été réalisées par l\'utilisateur au sein du plugin Note My Progress uniquement (consultation des avancées, consultation des indicateurs généraux, etc.).'; +$string['fml_logs_download_moodle_help_description'] = 'Le fichier de logs qui est téléchargé répertorie toutes les actions qui ont été réalisées par l\'utilisateur au sein de Moodle uniquement (visualisation du cours, visualisation des ressources, dépôt d\'un devoir, etc.)'; +/* Logs CSV Header */ +$string['fml_logs_csv_headers_username'] = 'Nom d\'utilisateur'; +$string['fml_logs_csv_headers_firstname'] = 'Prénom'; +$string['fml_logs_csv_headers_lastname'] = 'Nom'; +$string['fml_logs_csv_headers_date'] = 'Date'; +$string['fml_logs_csv_headers_hour'] = 'Heure'; +$string['fml_logs_csv_headers_action'] = 'Action'; +$string['fml_logs_csv_headers_coursename'] = 'Nom du cours'; +$string['fml_logs_csv_headers_detail'] = 'Détail'; +$string['fml_logs_csv_headers_detailtype'] = 'Type d\'objet utilisé'; + +$string['fml_logs_error_begin_date_superior'] = 'La date de début ne peut pas être supérieure à la date actuelle'; +$string['fml_logs_error_begin_date_inferior'] = 'La date de début doit être antérieure à la date de fin'; +$string['fml_logs_error_empty_dates'] = 'Les dates ne peuvent pas être vides'; +$string['fml_logs_error_problem_encountered'] = 'Un problème a été rencontré, veuillez réessayer'; + +$string['fml_logs_success_file_downloaded'] = 'Fichier téléchargé !'; + + +$string['fml_logs_moodle_csv_headers_role'] = 'Role'; +$string['fml_logs_moodle_csv_headers_email'] = 'Email'; +$string['fml_logs_moodle_csv_headers_username'] = 'Username'; +$string['fml_logs_moodle_csv_headers_fullname'] = 'Fullname'; +$string['fml_logs_moodle_csv_headers_date'] = 'Date'; +$string['fml_logs_moodle_csv_headers_hour'] = 'Hour'; +$string['fml_logs_moodle_csv_headers_action'] = 'Action'; +$string['fml_logs_moodle_csv_headers_courseid'] = 'CourseID'; +$string['fml_logs_moodle_csv_headers_coursename'] = 'Course_name'; +$string['fml_logs_moodle_csv_headers_detailid'] = 'Detail ID'; +$string['fml_logs_moodle_csv_headers_details'] = 'Details'; +$string['fml_logs_moodle_csv_headers_detailstype'] = 'Details_type'; + +$string['fml_logs_moodle_csv_headers_role_description'] = 'Donne le rôle qu\'a l\'utilisateur sur le cours sur lequel il a fait une action (étudiant, enseignant...)'; +$string['fml_logs_moodle_csv_headers_email_description'] = 'Donne l\'e-mail de l\'utilisateur'; +$string['fml_logs_moodle_csv_headers_username_description'] = 'Donne le nom d\'utilisateur moodle de la personne ayant réalisée l\'action'; +$string['fml_logs_moodle_csv_headers_fullname_description'] = 'Donne le nom complet de l\'utilisateur (Prénom + Nom)'; +$string['fml_logs_moodle_csv_headers_date_description'] = 'Donne la date à laquelle l\'action a été réalisée au format dd-MM-YYYY'; +$string['fml_logs_moodle_csv_headers_hour_description'] = 'Donne l\'heure a laquelle a été réalisée l\'action'; +$string['fml_logs_moodle_csv_headers_action_description'] = 'Donne un verbe décrivant l\'action qui a été réalisée (ex: cliqué, vu...)'; +$string['fml_logs_moodle_csv_headers_courseid_description'] = 'Donne l\'identifiant du cours sur lequel a été réalisée l\'action'; +$string['fml_logs_moodle_csv_headers_coursename_description'] = 'Donne le nom du cours sur lequel a été réalisée l\'action'; +$string['fml_logs_moodle_csv_headers_detailid_description'] = 'Donne l\'identifiant de l\'objet avec lequel l\'utilisateur a interagi'; +$string['fml_logs_moodle_csv_headers_details_description'] = 'Donne le nom de l\'objet qui a été visé'; +$string['fml_logs_moodle_csv_headers_detailstype_description'] = 'Donne le type d\'objet qui a été visé (exemples d\'objets: Dépôt, Quizz, Ressources...)'; + + +$string['fml_logs_nmp_csv_headers_role_description'] = 'Donne le rôle qu\'a l\'utilisateur sur le cours sur lequel il a fait une action (étudiant, enseignant...)'; +$string['fml_logs_nmp_csv_headers_email_description'] = 'Donne l\'e-mail de l\'utilisateur'; +$string['fml_logs_nmp_csv_headers_username_description'] = 'Donne le nom d\'utilisateur moodle de la personne ayant réalisée l\'action'; +$string['fml_logs_nmp_csv_headers_fullname_description'] = 'Donne le nom complet de l\'utilisateur (Prénom + Nom)'; +$string['fml_logs_nmp_csv_headers_date_description'] = 'Donne la date à laquelle l\'action a été réalisée au format dd-MM-YYYY'; +$string['fml_logs_nmp_csv_headers_hour_description'] = 'Donne l\'heure a laquelle a été réalisée l\'action'; +$string['fml_logs_nmp_csv_headers_courseid_description'] = 'Donne l\'identifiant du cours sur lequel a été réalisée l\'action'; +$string['fml_logs_nmp_csv_headers_section_name_description'] = 'Donne le nom de la section de note my progress dans laquelle se trouvait l\'utilisateur lorsqu\'il a réalisé l\'action'; +$string['fml_logs_nmp_csv_headers_action_type_description'] = 'Donne une description complète de l\'action qui a été réalisée par l\'utilisateur sous la forme verbe + sujet + objet (ex: downloaded_moodle_logfile)'; + + +$string['fml_logs_moodle_table_title'] = 'Description des intitulés'; +$string['fml_logs_moodle_table_subtitle'] = 'Concernant les logs de Moodle'; + +$string['fml_logs_nmp_table_title'] = 'Description des intitulés'; +$string['fml_logs_nmp_table_subtitle'] = 'Concernant les logs de Note My Progress'; + + + + + +$string['fml_logs_nmp_csv_headers_role'] = 'Role'; +$string['fml_logs_nmp_csv_headers_email'] = 'Email'; +$string['fml_logs_nmp_csv_headers_username'] = 'Username'; +$string['fml_logs_nmp_csv_headers_fullname'] = 'Fullname'; +$string['fml_logs_nmp_csv_headers_date'] = 'Date'; +$string['fml_logs_nmp_csv_headers_hour'] = 'Hour'; +$string['fml_logs_nmp_csv_headers_courseid'] = 'CourseID'; +$string['fml_logs_nmp_csv_headers_section_name'] = 'NMP_SECTION_NAME'; +$string['fml_logs_nmp_csv_headers_action_type'] = 'NMP_ACTION_TYPE'; + +$string['fml_logs_table_title'] = 'Intitulé'; +$string['fml_logs_table_title_bis'] = 'Description'; + +$string['fml_logs_help_button_nmp'] = 'A propos des actions réalisées sur Note My Progress'; +$string['fml_logs_help_button_moodle'] = 'A propos des actions réalisées sur Moodle'; + + + +$string['fml_logs_download_details_link'] = 'En savoir plus'; +$string['fml_logs_download_details_title'] = 'Êtes-vous sûr de vouloir un rapport d\'explications détaillées ?'; +$string['fml_logs_download_details_description'] = 'Si vous acceptez, un fichier au format PDF sera téléchargé.'; +$string['fml_logs_download_details_ok'] = 'Télécharger'; +$string['fml_logs_download_details_cancel'] = 'Annuler'; +$string['fml_logs_download_details_validation'] = 'Le rapport a bien été téléchargé'; + + + +/* NoteMyProgress admin settings */ + +$string['fml_settings_bddusername_label'] = 'Nom d\'utilisateur de la base de données'; +$string['fml_settings_bddusername_description'] = 'Ce paramètre désigne le nom d\'utilisateur depuis lequel la base de données MongoDB est accessible. Si ce paramètre est entré, il vous faut entrer le mot de passe ainsi que le nom de la base de données sur laquelle vous souhaitez vous connecter.'; +$string['fml_settings_bddusername_default'] = 'Vide'; + +$string['fml_settings_bddpassword_label'] = 'Mot de passe du compte'; +$string['fml_settings_bddpassword_description'] = 'Ce paramètre désigne le mot de passe du compte depuis lequel la base de données MongoDB est accessible. Si ce paramètre est entré, il vous faut entrer le nom d\'utilisateur ainsi que le nom de la base de données sur laquelle vous souhaitez vous connecter.'; +$string['fml_settings_bddpassword_default'] = 'Vide'; + + +$string['fml_settings_bddaddress_label'] = 'Adresse du serveur MongoDB *'; +$string['fml_settings_bddaddress_description'] = 'Ce paramètre est l\'adresse depuis laquelle la base de données MongoDB est accessible. Ce paramètre est obligatoire et est sous la forme : 151.125.45.58 ou bien votreserveur.com'; +$string['fml_settings_bddaddress_default'] = 'localhost'; + +$string['fml_settings_bddport_label'] = 'Port de communication *'; +$string['fml_settings_bddport_description'] = 'Ce paramètre désigne le port à utiliser pour communiquer avec la base de données. Ce paramètre est obligatoire et doit être un nombre.'; +$string['fml_settings_bddport_default'] = '27017'; + + +$string['fml_settings_bddname_label'] = 'Nom de la base de données'; +$string['fml_settings_bddname_description'] = 'Ce paramètre désigne le nom de la base de données MongoDB dans laquelle vont être enregistrées les informations.'; +$string['fml_settings_bddname_default'] = 'Vide'; + + +