diff --git a/css/app.2a50c464.css b/css/app.2a50c464.css new file mode 100644 index 0000000..1615b0a --- /dev/null +++ b/css/app.2a50c464.css @@ -0,0 +1 @@ +@font-face{font-family:Montserrat;src:url(../fonts/Montserrat-Regular.ac0da5e7.woff2) format("woff2") font-weight-normal,url(../fonts/Montserrat-Bold.6509f3de.woff2) format("woff2") font-weight-bold}@font-face{font-family:Product Sans;src:url("../fonts/Product Sans Regular.226dc899.woff2") format("woff2") font-weight-normal,url("../fonts/Product Sans Bold.288fe063.woff2") format("woff2") font-weight-bold,url("../fonts/Product Sans Italic.b4128ec3.woff2") format("woff2") font-italic font-weight-normal,url("../fonts/Product Sans Bold Italic.4d251744.woff2") format("woff2") font-italic font-weight-bold}body{font-family:Product Sans;margin:0}h1,h2,h3,h4,h5,h6,p{margin-bottom:0;margin-top:0}a{color:#000;text-decoration:none}a:hover{text-decoration:underline}.line-separator{border:.2rem solid #3c3571}.form-space{height:3rem}.form-input{margin-bottom:2rem}.form-input.horizontal{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.form-input *{display:block}.form-input.horizontal>label{width:80%}.form-input.horiziontal>div,input{width:20%}.form-input label{font-size:1.5rem;font-weight:700}.form-input label.required:after{content:"*";color:red}.form-input input[type=text],input[type=password],textarea{border:none;border-bottom:1px solid #000;font-family:Product Sans;padding:.25rem .25rem;background-color:inherit}.form-input input[type=file],.form-input input[type=text],input[type=password],textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%}.form-input input[type=radio],.form-input input[type=radio]:checked{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:1rem;border-radius:50%;padding:0 .5rem;margin:0 .4rem;border:1px solid #000}.form-input input[type=radio]:checked{background:radial-gradient(#000 0,#000 35%,transparent 36%)}.form-input div{padding:.25rem .25rem}.form-notice{margin-bottom:2rem}.button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#3c3571;color:#fff;border:none;border-radius:5px;font-family:Product Sans;margin:.5rem 0;cursor:pointer}.button.plain{color:#3c3571;background-color:transparent}.button.large{padding:1rem .5rem;font-size:1.5rem}.button.medium{padding:1rem .5rem;font-size:1.25rem}header{font-family:Product Sans;font-size:1.125rem;background-color:#f2f2f2;height:4rem;-webkit-box-shadow:0 2px 4px rgba(0,0,0,.3);box-shadow:0 2px 4px rgba(0,0,0,.3);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 3rem}header .logo img{-o-object-fit:contain;object-fit:contain;height:4rem}header .sublogo{margin-left:.25rem;margin-top:auto;margin-bottom:1rem;margin-right:1rem;font-size:1rem}header .nav{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}header .nav,header .nav-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-direction:normal}header .nav-item{margin:0 1rem;-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%}header .nav-item .nav-link{text-decoration:none;color:#000}header .selectors{margin-left:auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.bluefire-selector{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;font-family:Product Sans;font-size:1.125rem;margin-top:.5rem;margin-bottom:.5rem;padding-right:2rem;background-image:linear-gradient(45deg,transparent 50%,#666 0),linear-gradient(135deg,#666 50%,transparent 0);background-position:calc(100% - 1rem) .4rem,calc(100% - .5rem) .4rem;background-size:.5rem .5rem,.5rem .5rem;background-repeat:no-repeat}.bluefire-selector:focus{color:#000;border:none}header .search{position:relative;border-bottom:.125rem solid #000;margin-right:1rem}header .search .header-search{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;padding:.25rem;font-size:.875rem;font-family:Product Sans}header .search .button-search img{position:absolute;right:0;height:1.5rem}header .account .nav-link{font-weight:700}.container{padding:2rem 4%}.index-banner{padding:0 8% 0 8%}.index-banner h1{font-family:Montserrat;font-weight:700;font-size:3.5rem;text-align:center;color:#333;margin-top:3rem;margin-bottom:2rem}.index-banner .index-image{width:100%;border-radius:20px;opacity:.78}.index-banner .subheading{font-weight:700;font-size:2rem;text-align:center;color:#333;margin:3rem auto}.page-banner{height:20rem;background:url(../img/1.55c09292.jpg);background-size:cover}.page-banner-inner{background-color:hsla(0,0%,100%,.25);width:100%;height:calc(100% - 4rem);padding:2rem 8%;position:relative}.page-banner-title{position:absolute;left:6%;bottom:.5rem}.page-banner-title h1{font-size:3.25rem}.main-content{padding:0 3%}.section-heading{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;border-bottom:.5rem solid #322b6b}.section-heading h1{font-size:3rem;font-family:Product Sans;margin-bottom:0;margin-left:.5rem}.section-heading .right{margin-left:auto}.section-content{padding:0 1%;margin-bottom:4rem}footer{padding:0 3rem;background-color:#d7d7d7;margin-bottom:.5rem}.main-footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:8rem}.main-footer .logo img{-o-object-fit:contain;object-fit:contain;height:4rem}.main-footer .sublogo{margin-left:.25rem;margin-top:auto;margin-bottom:3rem;margin-right:1rem;font-size:1rem}.main-footer .contact{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-left:auto;margin-right:3rem;-webkit-box-align:right;-ms-flex-align:right;align-items:right}.main-footer .contact p{text-align:right;margin:.5rem 0;font-size:1.125rem}footer .copyright{font-size:1.125rem;text-align:center;padding:.5rem 0}.login-container{background:url(../img/2.9a4ff646.jpg);background-size:cover;position:relative}.login-container .inner{background:hsla(0,0%,100%,.63);padding:4rem 4% 8rem 4%;padding-top:8rem;padding-bottom:6rem}.login-banner{position:absolute;top:10rem;right:4%;float:right;text-align:right}.login-banner p{margin:0;font-size:3rem;font-weight:700;line-height:1}.login-banner .large{font-size:5rem;color:#333}.box-container{background-color:#f2f2f2;padding-top:2rem;padding-left:2.5rem;padding-right:2.5rem;padding-bottom:.5rem;border-radius:20px;-webkit-box-shadow:5px 5px 18px rgba(167,109,109,.3);box-shadow:5px 5px 18px rgba(167,109,109,.3);width:25rem}.login-box .admin-login{display:block;text-align:right}.login-form{padding:0 2.5rem}.register-link a{color:#3c3571;font-size:1.25rem;font-weight:700}.admin-container{padding:0 1.5%}.admin-heading{margin-bottom:4rem}.admin-heading h1{font-size:1.75rem}.position-container{margin-top:1rem;padding:0 8%}.position{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.position-overview{width:30%}.title-bar{width:4rem;border-top:.75rem solid #3c3571;height:.5rem}.position-location div,.position-title{margin-bottom:.5rem}.position-location .region{font-family:Montserrat;font-weight:700;font-size:.75rem}.position-location .address{font-size:.875rem}.detail-item h2{margin-bottom:.25rem;font-size:1.25rem}.detail-item p{font-size:1.25rem;margin-bottom:1rem}.position-description{padding-left:6%;padding-top:1.5rem;width:75%;font-size:1.125rem}.position-description .description{margin-bottom:2rem}.position-status{margin-left:auto;padding:2rem 2rem 2rem 2rem}.position-status h2{font-size:1.5rem}.position-status .applicant-amount{color:#3c3571;font-size:3.5rem;text-align:center;font-weight:700}.list-container{margin-top:2rem}.narrow-container{margin-top:4rem;padding:0 8%}.normal-heading{font-size:1.5rem;font-family:Montserrat}.normal-box{background-color:#f2f2f2;padding:2rem 2rem 2rem 1.5rem}.normal-form{background-color:#f2f2f2;padding:2rem 8rem 2rem 1.5rem}.apply-title{margin:0 2rem;margin-bottom:2rem}.required-notice{color:red;font-weight:700}.normal-box.applicant{-webkit-box-shadow:4px 4px 17px rgba(0,0,0,.349019607843137);box-shadow:4px 4px 17px rgba(0,0,0,.349019607843137);border-radius:20px;margin-bottom:2rem}.applicant .applicant-no{font-weight:700;font-size:1.5rem;color:#322b6b;margin-right:1rem}.applicant .applicant-detail{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.applicant-name{font-size:.75rem;margin-bottom:1rem}.applicant-data{padding:.5rem}.applicant-fate{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.about-background{background:url(../img/about.08cd3350.jpg)}.about-container{background:hsla(0,0%,100%,.9);padding:2.5rem 12rem 2.5rem 12rem;font-family:Montserrat}.about-container h1{font-size:4rem;padding-bottom:2.5rem;text-align:center}.about-container p{text-align:center;font-size:1.5rem}.about-container .about-bottom-space{padding-bottom:2.5rem}.w-25{width:25%}.w-33{width:33.333333%}.w-50{width:50%}.w-67{width:66.6666666%}.w-100{width:100%}.text-center{text-align:center}.uppercase{text-transform:uppercase}.row{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}.flex-center,.row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-direction:normal}.flex-center{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.rounded{border-radius:20px}textarea.noresize{resize:none}.font-heading{font-family:Montserrat}.job-listing{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.job-listing .categories{width:25%}.job-listing .listing{width:75%}.categories .category{background-color:#f2f2f2;padding:1.5rem;-webkit-box-shadow:5px 5px 14px rgba(0,0,0,.3);box-shadow:5px 5px 14px rgba(0,0,0,.3);margin:1rem .5rem}.category label{font-size:1.5rem;font-weight:700;color:#322b6b}.category .bluefire-selector{width:100%;font-weight:700;margin-top:.5rem}.listing .job-item{background-color:#f2f2f2;padding:.5rem 1.5rem;-webkit-box-shadow:5px 5px 14px rgba(0,0,0,.3);box-shadow:5px 5px 14px rgba(0,0,0,.3);margin:1rem .5rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;font-size:1rem;font-weight:700}.job-item .job-no{font-size:1.5rem;color:#322b6b;margin-right:1rem}.job-item .job-title{font-size:1.5rem;color:#333;margin:0}.job-item .job-location{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row;margin-left:auto}.job-item .job-location,.job-item .job-location div{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-direction:normal}.job-item .job-location div{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:1.25rem;font-weight:400;margin:.5rem 3rem}.job-item .job-location h2{font-size:1.125rem;color:#322b6b;margin:0 0 .25rem 0}.job-item .job-location p{font-size:1.125rem;margin:0}.job-item .bookmark img{height:1.5rem;margin:.5rem 0}.job-item .see-detail{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.job-item .see-detail a{color:#3c3571;font-size:1.25rem;font-weight:400}.pagination{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:1rem 0}.pagination .page-link{font-size:1.5rem;font-weight:700;margin:0 .75rem;color:#3c3571}.pagination .next{color:#444} \ No newline at end of file diff --git a/css/chunk-vendors.e6574c94.css b/css/chunk-vendors.e6574c94.css new file mode 100644 index 0000000..f3b1632 --- /dev/null +++ b/css/chunk-vendors.e6574c94.css @@ -0,0 +1,3 @@ +@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(../fonts/MaterialIcons-Regular.96c47680.eot);src:local("Material Icons"),local("MaterialIcons-Regular"),url(../fonts/MaterialIcons-Regular.0509ab09.woff2) format("woff2"),url(../fonts/MaterialIcons-Regular.29b882f0.woff) format("woff"),url(../fonts/MaterialIcons-Regular.d120c85b.ttf) format("truetype")}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;-webkit-font-feature-settings:"liga";font-feature-settings:"liga"} + +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none} \ No newline at end of file diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000..df36fcf Binary files /dev/null and b/favicon.ico differ diff --git a/fonts/MaterialIcons-Regular.0509ab09.woff2 b/fonts/MaterialIcons-Regular.0509ab09.woff2 new file mode 100644 index 0000000..34cdd2a Binary files /dev/null and b/fonts/MaterialIcons-Regular.0509ab09.woff2 differ diff --git a/fonts/MaterialIcons-Regular.29b882f0.woff b/fonts/MaterialIcons-Regular.29b882f0.woff new file mode 100644 index 0000000..d1c81db Binary files /dev/null and b/fonts/MaterialIcons-Regular.29b882f0.woff differ diff --git a/fonts/MaterialIcons-Regular.96c47680.eot b/fonts/MaterialIcons-Regular.96c47680.eot new file mode 100644 index 0000000..17b6f72 Binary files /dev/null and b/fonts/MaterialIcons-Regular.96c47680.eot differ diff --git a/fonts/MaterialIcons-Regular.d120c85b.ttf b/fonts/MaterialIcons-Regular.d120c85b.ttf new file mode 100644 index 0000000..8f07978 Binary files /dev/null and b/fonts/MaterialIcons-Regular.d120c85b.ttf differ diff --git a/fonts/Montserrat-Bold.6509f3de.woff2 b/fonts/Montserrat-Bold.6509f3de.woff2 new file mode 100644 index 0000000..24fd8fc Binary files /dev/null and b/fonts/Montserrat-Bold.6509f3de.woff2 differ diff --git a/fonts/Montserrat-Regular.ac0da5e7.woff2 b/fonts/Montserrat-Regular.ac0da5e7.woff2 new file mode 100644 index 0000000..95cb51d Binary files /dev/null and b/fonts/Montserrat-Regular.ac0da5e7.woff2 differ diff --git a/fonts/Product Sans Bold Italic.4d251744.woff2 b/fonts/Product Sans Bold Italic.4d251744.woff2 new file mode 100644 index 0000000..80f6e97 Binary files /dev/null and b/fonts/Product Sans Bold Italic.4d251744.woff2 differ diff --git a/fonts/Product Sans Bold.288fe063.woff2 b/fonts/Product Sans Bold.288fe063.woff2 new file mode 100644 index 0000000..6ac7bfb Binary files /dev/null and b/fonts/Product Sans Bold.288fe063.woff2 differ diff --git a/fonts/Product Sans Italic.b4128ec3.woff2 b/fonts/Product Sans Italic.b4128ec3.woff2 new file mode 100644 index 0000000..ac18842 Binary files /dev/null and b/fonts/Product Sans Italic.b4128ec3.woff2 differ diff --git a/fonts/Product Sans Regular.226dc899.woff2 b/fonts/Product Sans Regular.226dc899.woff2 new file mode 100644 index 0000000..07e2427 Binary files /dev/null and b/fonts/Product Sans Regular.226dc899.woff2 differ diff --git a/frontend/.env b/frontend/.env index 000311e..35aee63 100644 --- a/frontend/.env +++ b/frontend/.env @@ -1 +1 @@ -VUE_APP_API_URL=http://localhost:8000/api/index.php/training +VUE_APP_API_URL=http://localhost:8081/api/index.php/training diff --git a/frontend/README.md b/frontend/README.md index 474dfc1..80e12a2 100644 --- a/frontend/README.md +++ b/frontend/README.md @@ -3,6 +3,8 @@ ## Project setup ``` yarn install +vim .env +# Edit VUE_APP_API_URL to point to API endpoint ``` ### Compiles and hot-reloads for development diff --git a/frontend/src/components/JobListing.vue b/frontend/src/components/JobListing.vue index b28ee29..ad69b9e 100644 --- a/frontend/src/components/JobListing.vue +++ b/frontend/src/components/JobListing.vue @@ -5,14 +5,14 @@
Don't have an account yet?
\nWelcome to BlueFire, your number one source for recruitment info. We're dedicated to giving you the very best of information, with a focus on giving the best experience.
\nFounded in 2020 by IT Division, Bluefire has come a long way from its beginnings in Binus University. When IT Division first started out, their passion for excellence drove him to start making this website, and gave him the impetus to turn hard work and inspiration into to a recruitment website. We now serve potential recruit, and are thrilled to be a part of the wing of the recruitment industry.
\nWe hope you enjoy our service as much as we enjoy offering them to you. If you have any questions or comments, please don't hesitate to contact us.
\nSincerely,
\nBlueFire.
\n{{ job.JobLevel }}
\n{{ deadlineFormat }}
\n{{ openStatus }}
\n{{ job.ApplicantCount }}
\n{{ job.ApplicantCount }}
\n{{ entry.Email }}
\n{{ entry.Phone}}
\n{{ entry.PrevCompanyName }}
\n{{ entry.PrevPosition }}
\n{{ entry.UniversityName }}
\n{{ entry.CvLink}}
\n{{ entry.PortofolioLink }}
\n, or missing
. Bailing hydration and performing ' +\n 'full client-side render.'\n );\n }\n }\n // either not server-rendered, or hydration failed.\n // create an empty node and replace it\n oldVnode = emptyNodeAt(oldVnode);\n }\n\n // replacing existing element\n var oldElm = oldVnode.elm;\n var parentElm = nodeOps.parentNode(oldElm);\n\n // create new node\n createElm(\n vnode,\n insertedVnodeQueue,\n // extremely rare edge case: do not insert if old element is in a\n // leaving transition. Only happens when combining transition +\n // keep-alive + HOCs. (#4590)\n oldElm._leaveCb ? null : parentElm,\n nodeOps.nextSibling(oldElm)\n );\n\n // update parent placeholder node element, recursively\n if (isDef(vnode.parent)) {\n var ancestor = vnode.parent;\n var patchable = isPatchable(vnode);\n while (ancestor) {\n for (var i = 0; i < cbs.destroy.length; ++i) {\n cbs.destroy[i](ancestor);\n }\n ancestor.elm = vnode.elm;\n if (patchable) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, ancestor);\n }\n // #6513\n // invoke insert hooks that may have been merged by create hooks.\n // e.g. for directives that uses the \"inserted\" hook.\n var insert = ancestor.data.hook.insert;\n if (insert.merged) {\n // start at index 1 to avoid re-invoking component mounted hook\n for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {\n insert.fns[i$2]();\n }\n }\n } else {\n registerRef(ancestor);\n }\n ancestor = ancestor.parent;\n }\n }\n\n // destroy old node\n if (isDef(parentElm)) {\n removeVnodes([oldVnode], 0, 0);\n } else if (isDef(oldVnode.tag)) {\n invokeDestroyHook(oldVnode);\n }\n }\n }\n\n invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\n return vnode.elm\n }\n}\n\n/* */\n\nvar directives = {\n create: updateDirectives,\n update: updateDirectives,\n destroy: function unbindDirectives (vnode) {\n updateDirectives(vnode, emptyNode);\n }\n};\n\nfunction updateDirectives (oldVnode, vnode) {\n if (oldVnode.data.directives || vnode.data.directives) {\n _update(oldVnode, vnode);\n }\n}\n\nfunction _update (oldVnode, vnode) {\n var isCreate = oldVnode === emptyNode;\n var isDestroy = vnode === emptyNode;\n var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);\n var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);\n\n var dirsWithInsert = [];\n var dirsWithPostpatch = [];\n\n var key, oldDir, dir;\n for (key in newDirs) {\n oldDir = oldDirs[key];\n dir = newDirs[key];\n if (!oldDir) {\n // new directive, bind\n callHook$1(dir, 'bind', vnode, oldVnode);\n if (dir.def && dir.def.inserted) {\n dirsWithInsert.push(dir);\n }\n } else {\n // existing directive, update\n dir.oldValue = oldDir.value;\n dir.oldArg = oldDir.arg;\n callHook$1(dir, 'update', vnode, oldVnode);\n if (dir.def && dir.def.componentUpdated) {\n dirsWithPostpatch.push(dir);\n }\n }\n }\n\n if (dirsWithInsert.length) {\n var callInsert = function () {\n for (var i = 0; i < dirsWithInsert.length; i++) {\n callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);\n }\n };\n if (isCreate) {\n mergeVNodeHook(vnode, 'insert', callInsert);\n } else {\n callInsert();\n }\n }\n\n if (dirsWithPostpatch.length) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n for (var i = 0; i < dirsWithPostpatch.length; i++) {\n callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\n }\n });\n }\n\n if (!isCreate) {\n for (key in oldDirs) {\n if (!newDirs[key]) {\n // no longer present, unbind\n callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\n }\n }\n }\n}\n\nvar emptyModifiers = Object.create(null);\n\nfunction normalizeDirectives$1 (\n dirs,\n vm\n) {\n var res = Object.create(null);\n if (!dirs) {\n // $flow-disable-line\n return res\n }\n var i, dir;\n for (i = 0; i < dirs.length; i++) {\n dir = dirs[i];\n if (!dir.modifiers) {\n // $flow-disable-line\n dir.modifiers = emptyModifiers;\n }\n res[getRawDirName(dir)] = dir;\n dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);\n }\n // $flow-disable-line\n return res\n}\n\nfunction getRawDirName (dir) {\n return dir.rawName || ((dir.name) + \".\" + (Object.keys(dir.modifiers || {}).join('.')))\n}\n\nfunction callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {\n var fn = dir.def && dir.def[hook];\n if (fn) {\n try {\n fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\n } catch (e) {\n handleError(e, vnode.context, (\"directive \" + (dir.name) + \" \" + hook + \" hook\"));\n }\n }\n}\n\nvar baseModules = [\n ref,\n directives\n];\n\n/* */\n\nfunction updateAttrs (oldVnode, vnode) {\n var opts = vnode.componentOptions;\n if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\n return\n }\n if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\n return\n }\n var key, cur, old;\n var elm = vnode.elm;\n var oldAttrs = oldVnode.data.attrs || {};\n var attrs = vnode.data.attrs || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(attrs.__ob__)) {\n attrs = vnode.data.attrs = extend({}, attrs);\n }\n\n for (key in attrs) {\n cur = attrs[key];\n old = oldAttrs[key];\n if (old !== cur) {\n setAttr(elm, key, cur);\n }\n }\n // #4391: in IE9, setting type can reset value for input[type=radio]\n // #6666: IE/Edge forces progress value down to 1 before setting a max\n /* istanbul ignore if */\n if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\n setAttr(elm, 'value', attrs.value);\n }\n for (key in oldAttrs) {\n if (isUndef(attrs[key])) {\n if (isXlink(key)) {\n elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else if (!isEnumeratedAttr(key)) {\n elm.removeAttribute(key);\n }\n }\n }\n}\n\nfunction setAttr (el, key, value) {\n if (el.tagName.indexOf('-') > -1) {\n baseSetAttr(el, key, value);\n } else if (isBooleanAttr(key)) {\n // set attribute for blank value\n // e.g. \n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // technically allowfullscreen is a boolean attribute for