code.min.js

angular.module("homepage",["ngStorage","ui.router","templates"]),angular.module("templates",[]),angular.module("homepage").config(["$httpProvider",function(e){var t=function(e,t,n){function i(e){return e.headers=e.headers||{},n.token&&(e.headers.Authorization="Bearer "+n.token),e}function l(n){return 401!==n.status&&403!==n.status||t.path("/#/login"),e.reject(n)}return function(e){return e.then(i,l)}};t.$inject=["$q","$location","$localStorage"],e.interceptors.push(t)}]).run(["$http","$localStorage","$rootScope","Authentication","MobileType","Server",function(e,t,n,i,l,o){function s(){n.isMobile=l.any()}function a(){t.templates&&t.templates.length?o.ibsubmit({templates:t.templates}).success(function(e){console.log(e),e.success&&(t.templates=[])}):t.templates=[]}function r(){e.defaults.headers.common["X-Auth-Token"]=t.token}function c(){n.userDtls=i.getUser(),n.isAuthenticated=i.isAuthenticated()}function u(){s(),r(),a(),c()}u(),window.addEventListener("orientationchange",s,!1),window.addEventListener("resize",s,!1)}]),angular.module("homepage").controller("DownloadController",["$anchorScroll","$scope","$state","DataStoreSrvc","DownloadFile","Server",function(e,t,n,i,l,o){e();var s=i.getInputData();t.selectedFileType="DOCX",t.selectFileType=function(e){t.selectedFileType=e},t.onBack=function(){n.transitionTo("inputextras")},t.onEdit=function(){n.transitionTo("inputbasic")},t.downloadCV=function(){var e={type:t.selectedFileType,inputs:s};"RTF"===t.selectedFileType?o.downloadRtf(e).then(function(e){l.getPlainText("file.rtf",e.data.content)}):o.downloadDocx(e).then(function(e){var t=s.profile.fullname?s.profile.fullname:"file";l.getDocxFile(t+".docx",e.data)})},t.print=function(){n.transitionTo("print")}}]),angular.module("homepage").controller("InputBasicController",["$anchorScroll","$localStorage","$scope","$state","DataStoreSrvc",function(e,t,n,i,l){e(),n.inputs=l.getInputData(),n.onReset=function(){},n.onNext=function(){t.inputs=JSON.stringify(n.inputs),console.log(n.inputs),i.transitionTo("inputexperience")}}]),angular.module("homepage").controller("InputExperienceController",["$anchorScroll","$localStorage","$scope","$state","DataStoreSrvc",function(e,t,n,i,l){e(),n.inputs=l.getInputData(),n.onBack=function(){t.inputs=JSON.stringify(n.inputs),i.transitionTo("inputbasic")},n.onNext=function(){t.inputs=JSON.stringify(n.inputs),console.log(n.inputs),i.transitionTo("inputextras")}}]),angular.module("homepage").controller("InputExtrasController",["$anchorScroll","$localStorage","$scope","$state","DataStoreSrvc","Server",function(e,t,n,i,l,o){e(),n.inputs=l.getInputData(),n.onBack=function(){t.inputs=JSON.stringify(n.inputs),i.transitionTo("inputexperience")},n.onSubmit=function(){t.inputs=JSON.stringify(n.inputs),console.log(n.inputs),o.saveResumeData(n.inputs),i.transitionTo("download")}}]),angular.module("homepage").controller("PrintController",["$anchorScroll","$scope","$state","$timeout","$window","DataStoreSrvc",function(e,t,n,i,l,o){e(),t.inputs=o.getInputData(),t.onBack=function(){n.transitionTo("download")},t.print=function(){i(function(){l.print()})}}]),angular.module("homepage").filter("reverse",function(){return function(e){return e.slice().reverse()}}).filter("arr2str",function(){return function(e){var t="";for(var n in e){var i=e[n];"0"!==n&&(t+=", "),void 0!==i&&0!==i.length&&""!==i&&(t+=i)}return t}}).filter("arraysum",function(){return function(e,t){var n=0;for(var i in e){var l=e[i];if(void 0!==l&&void 0!==l[t.name]){var o=parseInt(l[t.name]);"number"==typeof o&&(n+=o)}}return n}}).filter("filterByValue",function(){return function(e,t){var n=[];for(var i in e){var l=e[i];"INCL"==t.type||"INCLUDE"==t.type?l[t.name]===t.value&&n.push(e[i]):l[t.name]!==t.value&&n.push(e[i])}return n}}).filter("filterByIndex",function(){return function(e,t){var n=[];for(var i in e)t.exclude===!0?i!=t.index&&n.push(e[i]):i===t.index&&n.push(e[i]);return n}}),angular.module("homepage").filter("doubledigit",[function(){return function(e){return e<10?"0"+e:e}}]),angular.module("homepage").filter("companytext",function(){return function(e){var t="";return e.companyName&&(t+=e.companyName+" | "),e.startDate&&e.endDate&&(t+=e.startDate+" to "+e.endDate),t}}),angular.module("homepage").filter("codeconvert",["CodeConvertSrvc",function(e){return function(t){var n=e.getValue(t);return""===n?t:n}}]),angular.module("homepage").filter("datediff",function(){return function(e,t,n){var i="",l="",o=new Date(t).getTime(),s=new Date(n).getTime(),a=Math.abs(o-s)/1e3;return a<60?i=a+" sec":a<3600?(a=Math.floor(a/60),i=a+"min"):a<86400&&(a=Math.floor(a/3600),i=a+" hour"),l=1==a?"":"s",i+l}}),angular.module("homepage").filter("educationtext",function(){return function(e){var t="";return e.educationTitle&&(t+=e.educationTitle),e.studiedFrom&&(t+=" | "+e.studiedFrom),e.startDate&&e.endDate&&(t+=" | "+e.startDate+" to "+e.endDate),e.specialization&&(t+=" | "+e.specialization),e.score&&(t+=" | "+e.score),t}}),angular.module("homepage").filter("projecttext",function(){return function(e){var t="";return e.projectName&&(t+=e.projectName+" | "),e.startDate&&e.endDate&&(t+=e.startDate+" to "+e.endDate),t}}),angular.module("homepage").filter("skilltext",function(){return function(e){var t="";return e.skillName&&(t+=e.skillName+" | "),e.versionNo&&(t+="Version "+e.versionNo+" | "),e.totalExp&&(t+=e.totalExp),t}}),angular.module("homepage").directive("choosemany",function(){function e(e,t,n){n.choosemany,n.namespace&&"string"==typeof n.namespace&&n.namespace.length>0?"."+n.namespace+" ":"";t.bind("click",function(){this.classList.contains("chosen")?this.classList.remove("chosen"):this.classList.add("chosen")})}return{link:e,restrict:"A",replace:!1}}),angular.module("homepage").directive("chooseone",function(){function e(e,t,n){var i=n.chooseone,l=n.namespace&&"string"==typeof n.namespace&&n.namespace.length>0?"."+n.namespace+" ":"",o=l+"[chooseone="+i+"]";t.bind("click",function(){for(var e=document.querySelectorAll(o),t=0;t<e.length;t++){var n=e[t];n.classList.remove("chosen")}this.classList.add("chosen")})}return{link:e,restrict:"A",replace:!1}}),angular.module("homepage").directive("choosetoggle",function(){function e(e,t,n){t.bind("click",function(){this.classList.toggle("chosen")})}return{link:e,restrict:"A",replace:!1}}),angular.module("homepage").directive("contenteditable",function(){return{restrict:"A",require:"ngModel",link:function(e,t,n,i){function l(){i.$setViewValue(t.html()||"<br>")}i.$render=function(){t.html(i.$viewValue||"<br>")},t.bind("blur keyup change",function(){e.$apply(l)})}}}),angular.module("homepage").directive("onAction",["StringUtility","$timeout",function(e,t){function n(t,n,s){var a=e.getPartsOfString(t.onAction);a=o(a),a=l(a);var r=a[0];for(var c in r){var u=r[c];u.toLowerCase()=="KEYUP".toLowerCase()&&n.bind("keyup",function(e){i(e,t,a)}),u.toLowerCase()=="CLICK".toLowerCase()&&n.bind("click",function(e){i(e,t,a)})}}function i(n,i,l){n.stopPropagation();var o=l[1],s=l[2];for(var a in o){var r=o[a].trim(),c=e.stringToBoolean(s[a].trim());i.isVisible[r]=c}t(function(){i.$apply()})}function l(e){var t=e[1],n=e[2];if(t.length!=n.length){var i=n[0],n=[];for(var l in t)n.push(i);e[2]=n}return e}function o(e){for(var t in e){var n=e[t];"string"==typeof n&&(e[t]=[n.trim()])}return e}return{restrict:"A",link:n,scope:{onAction:"=",isVisible:"=scopeObj"}}}]),angular.module("homepage").directive("onActionToggle",["StringUtility","$timeout",function(e,t){function n(t,n,a){var r=e.getPartsOfString(t.onActionToggle);r=s(r),r=o(r),i(t,r);var c=r[0];for(var u in c){var p=c[u];p.toLowerCase()=="KEYUP".toLowerCase()&&n.bind("keyup",function(e){l(e,t,r)}),p.toLowerCase()=="CLICK".toLowerCase()&&n.bind("click",function(e){l(e,t,r)})}}function i(n,i){var l=i[1],o=i[2];for(var s in l){var a=l[s].trim(),r=e.stringToBoolean(o[s].trim());n.isVisible[a]=r}t(function(){n.$apply()})}function l(e,n,i){e.stopPropagation();var l=i[1];i[2];for(var o in l){var s=l[o].trim();n.isVisible[s]=!n.isVisible[s]}t(function(){n.$apply()})}function o(e){var t=e[1],n=e[2];if(t.length!=n.length){var i=n[0],n=[];for(var l in t)n.push(i);e[2]=n}return e}function s(e){for(var t in e){var n=e[t];"string"==typeof n&&(e[t]=[n.trim()])}return e}return{restrict:"A",link:n,scope:{onActionToggle:"=",isVisible:"=scopeObj"}}}]),angular.module("homepage").directive("setequalheight",["$timeout",function(e){function t(t,n,i){function l(){e(function(){t.$apply(function(){for(var e=JSON.parse(i.setequalheight),t=n[0].querySelector(e.main),l=t.offsetHeight,o=0;o<e.others.length;o++){var s,a;s=""==e.others[o]?n[0]:n[0].querySelector(e.others[o]),s&&null!=s&&(a=e.offset&&e.offset[o]?e.offset[o]:0,s.style.height=l-a+"px")}})})}window.addEventListener("orientationchange",l,!1),window.addEventListener("resize",l,!1),l()}return{link:t,restrict:"A",replace:!1}}]),angular.module("templates").run(["$templateCache",function(e){e.put("components/common-components/autocomplete/autocomplete.html",'<div class="autocomplete">\n  <input class="inputtext" type="text" ng-model="enteredtext" ng-keyup="filterItems()"/>\n  <div class="choices" ng-show="isVisible.suggestions">\n    <div class="choice" ng-repeat="choice in filteredChoices"\n      ng-click="selectItem(choice.index)">{{choice.label}}</div>\n  </div>\n</div>'),e.put("components/common-components/editor/editor.html",'<div class="editor">\n\t<div class="editorbox" contenteditable="{{isEditable}}" ng-model="note"\n\tng-paste="handlePaste($event)"><br></div>\n</div>\n'),e.put("components/common-components/checkbox/checkbox.html",'<span class="checkbox">\n    <input type="checkbox" id="{{::name}}" name="cc" ng-model="isChecked"\n        ng-click="markCheckboxFn({\'name\':name, \'isChecked\': isChecked})"/>\n    <label for="{{::name}}">\n        <span class="icon"></span>\n        <span class="label-text">{{::label}}</span>\n    </label>\n</span>\n'),e.put("components/common-components/list/list.html",'<div class="list">\n\t<!-- pass only object, not primitive while using isolated scope directives -->\n\t<div ng-repeat="item in list track by $index">\n\t\t<!-- need to pass parameters from scope into the directive methods, blank or non scope params are not passed to controller method -->\n\t\t<listitem list="list" is-disabled="isDisabled" itemindex="{index: $index}"\n\t\t\tset-list="setList($index)"></listitem>\n\t\t<list list="item.list" is-disabled="isDisabled" ng-if="item.list != undefined"><list>\n\t</div>\n</div>\n'),e.put("components/common-components/title/title.html",'<div class="inputfield title">\n\t<input class="input-value" type="text" ng-model="note.title" placeholder="Title" \n\tonfocus="this.placeholder = \'\'" onblur="this.placeholder = \'Title\'">\n</div>'),e.put("components/content-components/drawer/drawer-menu.html",'<div class="drawer-menu" ng-if="isMobile">\n\t<div class="drawer-icon">\n\t\t<i class="fa fa-bars menu-icon" aria-hidden="true" ng-click="toggleDrawer()"></i>\n\t</div>\n\t<div class="menu-sidebar" ng-show="isPanelVisible">\n\t\t<div class="menu-item">\n\t\t\t<a href="/#/home" ng-click="hideDrawer()">Home</a>\n\t\t</div>\n\t\t<div class="menu-item">\n\t\t\t<a href="/#/comment" ng-click="hideDrawer()">Feedback</a>\n\t\t</div>\n\t\t<!-- <div class="menu-item">\n\t\t\t<a href="/#/about" ng-click="hideDrawer()">About Us</a>\n\t\t</div> -->\n\t\t<div class="menu-item register">\n\t\t\t<a href="/#/signup" ng-click="hideDrawer()">Register</a>\n\t\t</div>\n\t</div>\n</div>'),e.put("components/content-components/footer/footer.html",'<div class="copyright-wrapper">\n  <div class="copyright text-center">\n      Contact Us at hello@about-me.co\n  </div>\n</div>\n'),e.put("components/content-components/header/header-menu.html",'<div class="header-menu">\n    <div class="item hidden-xs">\n        <a href="/#/comment">\n            <i class="fa fa-comment-o" aria-hidden="true"></i>\n        </a>\n    </div>\n    <div class="item" ng-hide="isAuthenticated">\n        <a class="clickable" href="/#/login">Login</a>\n    </div>\n    <div class="item hidden-very-xs" ng-hide="isAuthenticated">\n        <a class="btn clickable register" href="/#/signup">Sign Up</a>\n    </div>\n    <div class="item" ng-show="isAuthenticated">\n        <a class="btn clickable register" ng-click="logout()">Log Out</a>\n    </div>\n</div>\n'),e.put("components/content-components/header/header.html",'<div class="header-wrapper">\n    <div class="header container">\n        <div class="title">\n        \t<drawer-menu></drawer-menu>\n        \t<a class="inputbox-link" ng-click="loadDefaultPage()">ABOUT ME</a>\n        </div>\n        <header-menu></header-menu>\n    </div>\n</div>\n'),e.put("components/content-components/home/home.html",'<div class="container">\n    <div class="home col-xs-12 col-sm-12 col-md-12" ng-init="getUser()">\n        <ng-transclude></ng-transclude>\n    </div>\n</div>\n'),e.put("components/content-components/input/activity-list.html",'<div class="activity-list">\n    <div class="activity list-item" ng-repeat="activity in activities track by $index">\n        <div class="inputfield">\n            <label class="input-title" ng-if="$index === 0">Description</label>\n            <div class="description">\n                <div class="index" ng-if="activities.length > 1">{{$index + 1}}</div>\n                <editor note="activity.description" is-editable="true"></editor>\n            </div>\n        </div>\n    </div>\n    <div class="inputfield">\n        <button ng-click="addActivity()" class="btn secondary-btn full-width" type="button" name="button">Add New</button>\n    </div>\n</div>\n'),e.put("components/content-components/input/career-objective.html",'<div class="career-objective">\n    <div class="description">\n        <div class="inputfield">\n            <label class="input-title">Description</label>\n            <editor note="objective.description" is-editable="true"></editor>\n        </div>\n    </div>\n</div>\n'),e.put("components/content-components/input/company-list.html",'<div class="company-list">\n    <div class="company list-item" ng-repeat="company in companies track by $index">\n        <div class="" ng-show="companies.length > 1 || company.projects.length > 0">\n            <div class="index">{{$index + 1}}</div>\n            <div class="underline"></div>\n        </div>\n        <div class="inputfield">\n            <label class="input-title">Company name</label>\n            <input class="input-value" type="text" ng-model="company.companyName">\n        </div>\n        <div class="inputfield">\n            <label class="input-title">Last Job Title</label>\n            <input class="input-value" type="text" ng-model="company.jobTitle">\n        </div>\n        <div class="inputfield">\n            <div class="split-two first">\n                <label class="input-title">Start Date</label>\n                <input class="input-value" type="text" ng-model="company.startDate">\n                <!-- <input-with-plchldr placeholder="DD Month YYYY"></input-with-plchldr> -->\n            </div>\n            <div class="split-two second">\n                <label class="input-title">End Date</label>\n                <input class="input-value" type="text" ng-model="company.endDate">\n                <!-- <input-with-plchldr placeholder="DD Month YYYY"></input-with-plchldr> -->\n            </div>\n        </div>\n        <projects-list data="company.projects"></projects-list>\n        <div class="inputfield">\n            <button ng-click="addProject($index)" class="btn secondary-btn selected full-width" type="button" name="button">Add Project</button>\n        </div>\n    </div>\n\n    <div class="inputfield">\n        <button ng-click="addCompany()" class="btn secondary-btn full-width" type="button" name="button">Add Company</button>\n    </div>\n</div>\n'),e.put("components/content-components/input/education-list.html",'<div class="education-list">\n    <div class="education list-item" ng-repeat="education in educations">\n        <div class="index" ng-show="educations.length > 1">{{$index + 1}}</div>\n        <div class="underline" ng-show="educations.length > 1"></div>\n        <div class="inputfield">\n            <label class="input-title">Education Title</label>\n            <input class="input-value" type="text" ng-model="education.educationTitle">\n        </div>\n        <div class="inputfield">\n            <label class="input-title">Studied From</label>\n            <input class="input-value" type="text" ng-model="education.studiedFrom">\n        </div>\n        <div class="inputfield">\n            <div class="split-two first">\n                <label class="input-title">Start Date</label>\n                <input class="input-value" type="text" ng-model="education.startDate">\n                <!-- <input-with-plchldr placeholder="DD Month YYYY"></input-with-plchldr> -->\n            </div>\n            <div class="split-two second">\n                <label class="input-title">End Date</label>\n                <input class="input-value" type="text" ng-model="education.endDate">\n                <!-- <input-with-plchldr placeholder="DD Month YYYY"></input-with-plchldr> -->\n            </div>\n        </div>\n        <div class="inputfield">\n            <div class="split-two first">\n                <label class="input-title">Specialization</label>\n                <input class="input-value" type="text" ng-model="education.specialization">\n                <!-- <input-with-plchldr placeholder="DD Month YYYY"></input-with-plchldr> -->\n            </div>\n            <div class="split-two second">\n                <label class="input-title">CPA / Score</label>\n                <input class="input-value" type="text" ng-model="education.score">\n                <!-- <input-with-plchldr placeholder="DD Month YYYY"></input-with-plchldr> -->\n            </div>\n        </div>\n    </div>\n    <div class="inputfield">\n        <button ng-click="addEducation()" class="btn secondary-btn full-width" type="button" name="button">Add New</button>\n    </div>\n</div>\n'),e.put("components/content-components/input/experience-list.html",'<div class="experience-list">\n    <div class="experience list-item" ng-repeat="experience in experiences track by $index">\n        <div class="inputfield">\n            <label class="input-title" ng-if="$index === 0">Description</label>\n            <div class="description">\n                <div class="index" ng-if="experiences.length > 1">{{$index + 1}}</div>\n                <editor note="experience.description" is-editable="true"></editor>\n            </div>\n        </div>\n    </div>\n    <div class="inputfield">\n        <button ng-click="addExperience()" class="btn secondary-btn full-width" type="button" name="button">Add New</button>\n    </div>\n</div>\n'),e.put("components/content-components/input/interest-info.html",'<div class="interest-info">\n    <div class="description">\n        <div class="inputfield">\n            <label class="input-title">Interests / Hobbies</label>\n            <list list="interest.hobbies.list" is-disabled="false"></list>\n        </div>\n        <div class="inputfield">\n            <label class="input-title">Blogs / Websites</label>\n            <list list="interest.blogs.list" is-disabled="false"></list>\n        </div>\n        <div class="inputfield">\n            <label class="input-title">Projects</label>\n            <list list="interest.projects.list" is-disabled="false"></list>\n        </div>\n    </div>\n</div>\n'),e.put("components/content-components/input/more-details.html",'<div class="more-details">\n    <div class="description">\n        <div class="inputfield">\n            <label class="input-title">Languages (Spoken)</label>\n            <input class="input-value" type="text" ng-model="detail.languages.spoken">\n        </div>\n        <div class="inputfield">\n            <label class="input-title">Languages (Read / Write)</label>\n            <input class="input-value" type="text" ng-model="detail.languages.readwrite">\n        </div>\n        <div class="inputfield">\n            <label class="input-title">Email Id</label>\n            <input class="input-value" type="text" ng-model="detail.emailId">\n        </div>\n        <div class="inputfield">\n            <div class="split-two first">\n                <label class="input-title">Contact Number</label>\n                <input class="input-value" type="text" ng-model="detail.contactNo">\n                <!-- <input-with-plchldr placeholder="DD Month YYYY"></input-with-plchldr> -->\n            </div>\n            <div class="split-two second">\n                <label class="input-title">Notice Period <span class="emphasis">(In Months)</span></label>\n                <input class="input-value" type="text" ng-model="detail.noticeDuration">\n                <!-- <input-with-plchldr placeholder="DD Month YYYY"></input-with-plchldr> -->\n            </div>\n        </div>\n        <div class="inputfield">\n            <div class="split-two first">\n                <label class="input-title">Current City</label>\n                <input class="input-value" type="text" ng-model="detail.currentCity">\n                <!-- <input-with-plchldr placeholder="DD Month YYYY"></input-with-plchldr> -->\n            </div>\n            <div class="split-two second">\n                <label class="input-title">Home Town</label>\n                <input class="input-value" type="text" ng-model="detail.homeTown">\n                <!-- <input-with-plchldr placeholder="DD Month YYYY"></input-with-plchldr> -->\n            </div>\n        </div>\n        <div class="inputfield">\n            <div class="split-two first">\n                <label class="input-title">Current CTC <span class="emphasis">(Optional)</span></label>\n                <input class="input-value" type="text" ng-model="detail.currentCtc">\n                <!-- <input-with-plchldr placeholder="DD Month YYYY"></input-with-plchldr> -->\n            </div>\n            <div class="split-two second">\n                <label class="input-title">Expected CTC <span class="emphasis">(Optional)</span></label>\n                <input class="input-value" type="text" ng-model="detail.expectedCtc">\n                <!-- <input-with-plchldr placeholder="DD Month YYYY"></input-with-plchldr> -->\n            </div>\n        </div>\n    </div>\n</div>\n'),e.put("components/content-components/input/profile-summary.html",'<div class="profile-summary">\n    <div class="inputfield">\n        <label class="input-title">Full name</label>\n        <input class="input-value" type="text" ng-model="data.fullname">\n    </div>\n    <div class="inputfield">\n        <label class="input-title">Job Title / Designation</label>\n        <input class="input-value" type="text" ng-model="data.designation">\n    </div>\n    <div class="inputfield">\n        <div class="split-two first">\n            <label class="input-title">Date of Birth</label>\n            <input class="input-value" type="text" ng-model="data.dateOfBirth">\n            <!-- <input-with-plchldr placeholder="DD Month YYYY"></input-with-plchldr> -->\n        </div>\n        <div class="split-two second">\n            <label class="input-title">Gender</label>\n            <input class="input-value" type="text" ng-model="data.gender">\n            <!-- <input-with-plchldr placeholder="DD Month YYYY"></input-with-plchldr> -->\n        </div>\n    </div>\n    <div class="inputfield">\n        <div class="split-two first">\n            <label class="input-title">Total Experience</label>\n            <input class="input-value" type="text" ng-model="data.experienceTotal">\n            <!-- <input-with-plchldr placeholder="DD Month YYYY"></input-with-plchldr> -->\n        </div>\n        <div class="split-two second">\n            <label class="input-title">Relevant Experience</label>\n            <input class="input-value" type="text" ng-model="data.experienceRelevant">\n            <!-- <input-with-plchldr placeholder="DD Month YYYY"></input-with-plchldr> -->\n        </div>\n    </div>\n</div>\n'),e.put("components/content-components/input/projects-list.html",'<div class="projects-list">\n    <div class="project" ng-repeat="project in projects track by $index">\n        <div class="" ng-show="projects.length > 0">\n            <div class="index sub-index">{{$index + 1}}</div>\n            <div class="underline"></div>\n        </div>\n        <div class="inputfield">\n            <label class="input-title">Project name</label>\n            <input class="input-value" type="text" ng-model="project.projectName">\n        </div>\n        <div class="inputfield">\n            <label class="input-title">Job Role</label>\n            <input class="input-value" type="text" ng-model="project.jobTitle">\n        </div>\n        <div class="inputfield">\n            <div class="split-two first">\n                <label class="input-title">Start Date</label>\n                <input class="input-value" type="text" ng-model="project.startDate">\n                <!-- <input-with-plchldr placeholder="DD Month YYYY"></input-with-plchldr> -->\n            </div>\n            <div class="split-two second">\n                <label class="input-title">End Date</label>\n                <input class="input-value" type="text" ng-model="project.endDate">\n                <!-- <input-with-plchldr placeholder="DD Month YYYY"></input-with-plchldr> -->\n            </div>\n        </div>\n        <div class="inputfield">\n            <label class="input-title">Responsibilities</label>\n            <list list="project.responsibilities" is-disabled="false"></list>\n        </div>\n    </div>\n</div>\n'),e.put("components/content-components/input/skill-list.html",'<div class="skill-list">\n    <div class="skill list-item" ng-repeat="skill in skills track by $index">\n        <div class="index" ng-show="skills.length > 1">{{$index + 1}}</div>\n        <div class="underline" ng-show="skills.length > 1"></div>\n        <div class="inputfield">\n            <div class="split-two first">\n                <label class="input-title">Skill Title</label>\n                <input class="input-value" type="text" ng-model="skill.skillName">\n                <!-- <input-with-plchldr placeholder="DD Month YYYY"></input-with-plchldr> -->\n            </div>\n            <div class="split-two second">\n                <label class="input-title">Version Number</label>\n                <input class="input-value" type="text" ng-model="skill.versionNo">\n                <!-- <input-with-plchldr placeholder="DD Month YYYY"></input-with-plchldr> -->\n            </div>\n        </div>\n        <div class="inputfield">\n            <div class="split-two first">\n                <label class="input-title">Total Experience</label>\n                <input class="input-value" type="text" ng-model="skill.totalExp">\n                <!-- <input-with-plchldr placeholder="DD Month YYYY"></input-with-plchldr> -->\n            </div>\n            <div class="split-two second">\n                <label class="input-title">Self Rating (Out of 10)</label>\n                <input class="input-value" type="text" ng-model="skill.selfRating">\n                <!-- <input-with-plchldr placeholder="DD Month YYYY"></input-with-plchldr> -->\n            </div>\n        </div>\n    </div>\n    <div class="inputfield">\n        <button ng-click="addSkill()" class="btn secondary-btn full-width" type="button" name="button">Add New</button>\n    </div>\n</div>\n'),e.put("components/content-components/login/commentpanel.html",'<div class="row">\n    <style>\n        .addcomment {\n            font-weight: normal;\n            text-align: center;\n            text-transform: uppercase;\n        }\n    </style>\n    <div class="col-xs-12 col-sm-8 col-sm-offset-2 col-md-10 col-md-offset-1" ng-controller="commentPanelController">\n        <div class="signup-wall">\n            <form class="form-signin" name="registerationForm">\n                <label class="addcomment full-width" for="commentbox">feeback and suggestions here</label>\n                <textarea required class="full-width" name="commentbox" cols="30" rows="10"\n                    ng-model="comment"></textarea>\n                <button type="submit" class="btn btn-lg btn-block btn-register ib-blue-bg"\n                ng-click="registerationForm.$valid && addcomment()">Submit</button>\n                <span class="clearfix"></span>\n            </form>\n        </div>\n        <div class="alert alert-info text-center" role="alert" ng-show="isMessageVisible">{{::message}}</div>\n    </div>\n</div>\n'),e.put("components/content-components/login/loginpanel.html",'<div class="row">\n    <div class="col-xs-12 col-sm-6 col-sm-offset-3 col-md-10 col-md-offset-1">\n        <div class="account-wall">\n            <div class="user text-center">\n                <i class="fa fa-user" aria-hidden="true" style="font-size: 5em;"></i>\n            </div>\n            <form class="form-signin">\n                <div class="inputfield">\n                    <label class="input-title">User Name</label>\n                    <input type="text" ng-model="username" placeholder="" required autofocus="true">\n                </div>\n                <div class="inputfield">\n                    <label class="input-title">Password</label>\n                    <input type="password" ng-model="password" placeholder="" required>\n                </div>\n                <div class="inputfield">\n                    <button type="submit" class="btn secondary-btn full-width"\n                    ng-click="authenticate()">Sign in</button>\n                </div>\n                <span class="clearfix"></span>\n            </form>\n            <div class="form-signin">\n                <div class="signup">\n                    <p class="text-center">New User</p>\n                    <a href="/#/signup" class="text-center new-account">\n                        <button type="submit" class="btn primary-btn full-width">Sign Up</button>\n                    </a>\n                </div>\n            </div>\n            <div class="alert alert-info text-center" role="alert" ng-show="isMessageVisible">{{message}}</div>\n        </div>\n    </div>\n</div>\n'),e.put("components/content-components/login/registerpanel.html",'<div class="row">\n    <div class="col-xs-12 col-sm-6 col-sm-offset-3 col-md-10 col-md-offset-1">\n        <div class="signup-wall">\n            <div class="register" ng-hide="hasInvite">\n                <h3 class="message text-center">\n                    <span>Get a</span>\n                    <span class="empahsis ib-pink-txt" style="padding-left: 5px">\n                        <i class="fa fa-rocket" aria-hidden="true"></i>\n                        <span>beta</span>\n                    </span>\n                    <span>&nbsp;version invite</span>\n                </h3>\n                <form class="form-signin" name="registerationForm">\n                    <div class="inputfield">\n                        <label class="input-title">Full Name</label>\n                        <input required type="text" ng-model="data.fullname" placeholder="" autofocus="{{!hasInvite}}">\n                    </div>\n                    <div class="inputfield">\n                        <label class="input-title">Email</label>\n                        <input required type="email" ng-model="data.email" placeholder="">\n                    </div>\n                    <button type="submit" class="btn btn-lg btn-primary btn-block btn-register"\n                        ng-click="registerationForm.$valid && register() && fbq(\'track\', \'CompleteRegistration\');">Register</button>\n                    <span class="clearfix"></span>\n                </form>\n            </div>\n            <div class="alert alert-info text-center" role="alert" ng-show="isRegisterMessageVisible">{{message}}</div>\n            <div class="invite-code">\n                <h3 class="text-center">Got invite code?</h3>\n                <form class="form-signin" name="inviteForm">\n                    <div class="inputfield">\n                        <label class="input-title">Invite Code</label>\n                        <input required type="text" ng-model="invite.code" placeholder="" autofocus="{{hasInvite}}">\n                    </div>\n                    <button type="submit" class="btn btn-lg btn-success btn-block btn-register"\n                        ng-click="inviteForm.$valid && checkInviteCode() && fbq(\'track\', \'UsedInviteCode\');">Submit</button>\n                    <span class="clearfix"></span>\n                </form>\n            </div>\n            <div class="alert alert-info text-center" role="alert" ng-show="isInviteMessageVisible">{{message}}</div>\n        </div>\n    </div>\n</div>\n'),
e.put("components/content-components/login/signuppanel.html",'<div class="row">\n    <div class="col-md-10 col-md-offset-1">\n        <div class="signup-wall">\n            <form class="form-signin">\n                <div class="inputfield">\n            \t\t<label class="input-title">First Name</label>\n                    <input id="firstname" maxlength="15" required type="text" pattern="[A-Za-z]*"\n                        oninvalid="setCustomValidity(\'Please enter only Alphabets\')" oninput="try{setCustomValidity(\'\')}catch(e){}"\n                        ng-model="registrationInfo.firstName" placeholder="" autofocus="true">\n            \t</div>\n                <div class="inputfield">\n                    <label class="input-title">Last Name</label>\n                    <input id="lastname" maxlength="15" required type="text" pattern="[A-Za-z]*"\n                        oninvalid="setCustomValidity(\'Please enter only Alphabets\')" oninput="try{setCustomValidity(\'\')}catch(e){}"\n                        ng-model="registrationInfo.lastName" placeholder="">\n                </div>\n                <div class="inputfield">\n                    <label class="input-title">Username</label>\n                    <input id="username" maxlength="15" required type="text" pattern="[A-Za-z0-9]*"\n                        oninvalid="setCustomValidity(\'Special characters not allowed\')" oninput="try{setCustomValidity(\'\')}catch(e){}"\n                        ng-model="registrationInfo.username" placeholder="">\n                </div>\n                <div class="inputfield">\n                    <label class="input-title">Password</label>\n                    <input required type="text" ng-model="registrationInfo.password" placeholder="" class="nomargin">\n                </div>\n                <div class="inputfield">\n                    <label class="input-title">Email</label>\n                    <input required type="email" ng-model="registrationInfo.email" placeholder=""\n                        oninvalid="setCustomValidity(\'Please enter an email address\')" oninput="try{setCustomValidity(\'\')}catch(e){}">\n                </div>\n                <div class="inputfield">\n                    <button type="submit" class="btn secondary-btn full-width" ng-click="registerUser()">Submit</button>\n                </div>\n                <span class="clearfix"></span>\n            </form>\n            <div class="alert alert-info text-center" role="alert" ng-show="isMessageVisible">{{message}}</div>\n            <div class="form-signin">\n                <div class="login">\n                    <p class="text-center">Already have an account</p>\n                    <a href="/#/login" class="text-center new-account">\n                        <button type="submit" class="btn primary-btn full-width">Sign In</button>\n                    </a>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n'),e.put("components/content-components/preview/preview-resume.html",'<div class="preview-cv">\n    <div class="person-details">\n        <h1 class="person-name title">{{inputs.profile.fullname}}</h1>\n        <h3 class="sub-title">{{inputs.profile.designation}} {{inputs.profile.gender ? \' | \' + inputs.profile.gender : \'\'}} {{inputs.profile.experienceTotal ? \' | \' + inputs.profile.experienceTotal + \' experience\' : \'\'}}</h3>\n        <hr>\n    </div>\n    <div class="career-objective">\n        <h2 class="title">Career Objective</h2>\n        <div class="objective description">\n            {{inputs.objective.description}}\n        </div>\n    </div>\n    <div class="skills-list">\n        <h2 class="title">Skills List</h2>\n        <ul class="skills">\n            <li class="skill" ng-repeat="skill in inputs.skills.list">\n                {{ skill | skilltext }}\n            </li>\n        </ul>\n    </div>\n    <div class="work-experience">\n        <h2 class="title">Work Experience</h2>\n        <div class="companies">\n            <div class="company" ng-repeat="company in inputs.companies.list">\n                <div class="main-title">\n                    {{ company | companytext }}\n                </div>\n                <div class="projects">\n                    <div class="project" ng-repeat="project in company.projects">\n                        <div class="project-title">\n                            {{ project | projecttext }}\n                        </div>\n                        <ul class="responsibilities">\n                            <li class="responsibility" ng-repeat="responsibility in project.responsibilities">\n                                {{ responsibility.value }}\n                            </li>\n                        </ul>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class="educations">\n        <h2 class="title">Education Summary</h2>\n        <ul class="educations">\n            <li class="education" ng-repeat="education in inputs.educations.list">\n                {{ education | educationtext }}\n            </li>\n        </ul>\n    </div>\n    <div class="experiences">\n        <h2 class="title">Professional Experience</h2>\n        <ul class="experiences">\n            <li class="experience" ng-repeat="experience in inputs.experiences.list">\n                {{ experience.description }}\n            </li>\n        </ul>\n    </div>\n    <div class="activities">\n        <h2 class="title">Accomplishments</h2>\n        <ul class="activities">\n            <li class="activity" ng-repeat="activity in inputs.activities.list">\n                {{ activity.description }}\n            </li>\n        </ul>\n    </div>\n    <div class="interest-info">\n        <h2 class="title">Other Activities</h2>\n        <div class="interests">\n            <div class="interest">\n                <div class="main-title">\n                    Interests / Hobbies\n                </div>\n                <ul class="hobbies">\n                    <li class="activity" ng-repeat="activity in inputs.interest.hobbies.list">\n                        {{ activity.value }}\n                    </li>\n                </ul>\n            </div>\n            <div class="interest">\n                <div class="main-title">\n                    Blogs / Websites\n                </div>\n                <ul class="blogs">\n                    <li class="blog" ng-repeat="blog in inputs.interest.blogs.list">\n                        {{ blog.value }}\n                    </li>\n                </ul>\n            </div>\n            <div class="interest">\n                <div class="main-title">\n                    Projects\n                </div>\n                <ul class="projects">\n                    <li class="project" ng-repeat="project in inputs.interest.projects.list">\n                        {{ project.value }}\n                    </li>\n                </ul>\n            </div>\n        </div>\n    </div>\n</div>\n')}]),angular.module("homepage").run(["$rootScope","$state","$timeout","Authentication",function(e,t,n,i){e.isVisible={loading:!1},e.currentRoute={name:""},e.$on("$stateChangeStart",function(n,l,o,s,a){e.isVisible.loading=!0,"login"==l.name&&i.isAuthenticated()?(e.currentRoute.name="inputbasic",t.transitionTo("inputbasic"),n.preventDefault()):l.authenticate&&!i.isAuthenticated()?(e.currentRoute.name="login",t.transitionTo("login"),n.preventDefault()):l.authenticate||(e.currentRoute.name=l.name)}),e.$on("$viewContentLoaded",function(){n(function(){e.isVisible.loading=!1},1e3)})}]).config(["$stateProvider","$urlRouterProvider",function(e,t){t.otherwise("/start"),e.state("start",{url:"/start",templateUrl:"../../html/partials/partial-index.html",authenticate:!1}).state("login",{url:"/login",templateUrl:"../../html/partials/partial-login.html",authenticate:!1}).state("signup",{url:"/signup",templateUrl:"../../html/partials/partial-signup.html",authenticate:!1}).state("register",{url:"/register",templateUrl:"../../html/partials/partial-register.html",authenticate:!1}).state("inputbasic",{url:"/input/basic",templateUrl:"../../html/partials/partial-input-basic.html",authenticate:!0,controller:"InputBasicController"}).state("inputexperience",{url:"/input/experience",templateUrl:"../../html/partials/partial-input-experience.html",authenticate:!0,controller:"InputExperienceController"}).state("inputextras",{url:"/input/extras",templateUrl:"../../html/partials/partial-input-extras.html",authenticate:!0,controller:"InputExtrasController"}).state("download",{url:"/download",templateUrl:"../../html/partials/partial-download.html",authenticate:!0,controller:"DownloadController"}).state("print",{url:"/print",templateUrl:"../../html/partials/partial-print.html",authenticate:!0,controller:"PrintController"})}]),angular.module("homepage").factory("Server",["$http",function(e){return{login:function(t){return e.post("/auth/user/login",t)},logout:function(){return e.get("/auth/user/logout")},register:function(t){return e.post("/auth/user/register",t)},signup:function(t){return e.post("/auth/user/signup",t)},downloadDocx:function(t){return e.post("/api/download/docx",t,{responseType:"arraybuffer"})},downloadRtf:function(t){return e.post("/api/download/rtf",t)},saveResumeData:function(t){return e.post("/api/resume/save",t)}}}]),angular.module("homepage").factory("DownloadFile",function(){function e(e,t){var i="plain/text",l="data:"+i+";charset=utf-8,"+encodeURIComponent(t);n(e,l)}function t(e,t){const i="application/vnd.openxmlformats-officedocument.wordprocessingml.document";var l=new Blob([t],{type:i}),o=URL.createObjectURL(l);n(e,o)}function n(e,t){var n=document.createElement("a");n.setAttribute("href",t),n.setAttribute("download",e),n.style.display="none",document.body.appendChild(n),n.click(),document.body.removeChild(n)}return{getPlainText:e,getDocxFile:t}}),angular.module("homepage").factory("Authentication",["$http","$localStorage","$rootScope",function(e,t,n){function i(e){var t=e.replace("-","+").replace("_","/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}return window.atob(t)}function l(){var e=t.token,n={};if("undefined"!=typeof e){var l=e.split(".")[1];n=JSON.parse(i(l))}return n}function o(){delete t.token}function s(){return p=l()}function a(e){e&&(t.token=e,n.userDtls=s(),n.isAuthenticated=!0)}function r(){o(),n.userDtls={},n.isAuthenticated=!1,p={}}function c(){return!(!n.userDtls||void 0===n.userDtls.username)}function u(){e.defaults.headers.common["X-Auth-Token"]=t.token}var p={};return{getUser:s,setUser:a,removeUser:r,isAuthenticated:c,setHeaders:u}}]),angular.module("homepage").factory("CodeConvertSrvc",function(){function e(e){return t[e]?t[e]:""}var t={PMNT:"Payment"};return{getValue:e}}),angular.module("homepage").factory("DataStorage",function(){var e={profile:{title:"Profile Summary",fullname:"",designation:"",dateOfBirth:"",experienceTotal:"",experienceRelevant:"",gender:""},companies:{title:"Work Experience",list:[{companyName:"",jobTitle:"",startDate:"",endDate:"",projects:[]}]},educations:{title:"Education Summary",list:[{educationTitle:"",studiedFrom:"",startDate:"",endDate:"",specialization:"",score:""}]},skills:{title:"Skills List",list:[{skillName:"",totalExp:"",versionNo:"",studiedFrom:"",selfRating:""}]},experiences:{title:"Professional Experience",list:[{description:""}]},activities:{title:"Accomplishments",list:[{description:""}]},objective:{title:"Career Objective",description:""},detail:{title:"More Details",languages:{spoken:"",readwrite:""},emailId:"",contactNo:"",noticeDuration:"",currentCity:"",homeTown:"",currentCtc:"",expectedCtc:""},interest:{title:"Other Activities",hobbies:{title:"Interests / Hobbies",list:[{value:""}]},blogs:{title:"Blogs / Websites",list:[{value:""}]},projects:{title:"Projects",list:[{value:""}]}}},t={profile:{title:"Profile Summary",fullname:"Jagdeep Singh Bisht",designation:"Senior Software Engineer",dateOfBirth:"20 Mar 1990",experienceTotal:"7 years",experienceRelevant:"7 years",gender:"Male"},companies:{title:"Work Experience",list:[{companyName:"IBM",jobTitle:"Trainee Software Engineer",startDate:"Sept 2011",endDate:"Mar 2012",projects:[{projectName:"IBM Cúram Workers Compensation",jobTitle:"Trainee Software Engineer",startDate:"Sept 2011",endDate:"Mar 2012",responsibilities:[{value:"Working very hard irrespective of task assigned"},{value:"Smartly led the task to completion"}]},{projectName:"IBM Cúram Child Care",jobTitle:"Associate Software Engineer",startDate:"Apr 2012",endDate:"Aug 2012",responsibilities:[{value:"Working very hard irrespective of task assigned"},{value:"Smartly led the task to completion"}]},{projectName:"IBM Cúram Income Support",jobTitle:"Software Engineer",startDate:"Sept 2012",endDate:"Jun 2015",responsibilities:[{value:"Working very hard irrespective of task assigned"},{value:"Smartly led the task to completion"}]}]},{companyName:"Amadeus",jobTitle:"Senior Software Engineer",startDate:"Jun 2015",endDate:"Aug 2017",projects:[{projectName:"Air China",jobTitle:"UI Developer",startDate:"Sept 2011",endDate:"Mar 2012",responsibilities:[{value:"Working very hard irrespective of task assigned"},{value:"Smartly led the task to completion"}]},{projectName:"IBM Cúram Child Care",jobTitle:"UI Developer",startDate:"Apr 2012",endDate:"Aug 2012",responsibilities:[{value:"Working very hard irrespective of task assigned"},{value:"Smartly led the task to completion"}]}]}]},educations:{title:"Education Summary",list:[{educationTitle:"B.E",studiedFrom:"Bangalore Coll. of Engg. & Tech",startDate:"Aug 2006",endDate:"Jun 2010",specialization:"Computer Science",score:"100"},{educationTitle:"12th",studiedFrom:"Kendriya Vidyalaya A.S.C Centre",startDate:"Apr 2005",endDate:"Jun 2006",specialization:"Computer Science",score:"100"},{educationTitle:"10th",studiedFrom:"Kendriya Vidyalaya A.S.C Centre",startDate:"Apr 2003",endDate:"Jun 2004",specialization:"Computer Science",score:"100"}]},skills:{title:"Skills List",list:[{skillName:"Java",totalExp:"2 years",versionNo:"7",studiedFrom:"Online",selfRating:"7"},{skillName:"Java",totalExp:"2 years",versionNo:"7",studiedFrom:"Online",selfRating:"7"}]},experiences:{title:"Professional Experience",list:[{description:"Experience of using javascript OOP"},{description:"Very highly experienced in killing time"},{description:"Can play guitar at times"},{description:"Highly proficient in cooking non-edible items"}]},activities:{title:"Accomplishments",list:[{description:"Got Pinkies number"},{description:"Healed frodo when he was stabbed"}]},objective:{title:"Career Objective",description:"Wanna rock the world with my amazing products and world changing ideas. Great fan of lean principles. Still trying to understand how to best implement the same."},detail:{title:"More Details",languages:{spoken:"English, Hindi, Kannada",readwrite:"English, Hindi"},emailId:"hello@jsbisht.in",contactNo:"9743012345",noticeDuration:"2 months",currentCity:"Bangalore",homeTown:"Dehradun",currentCtc:"10 Lac INR",expectedCtc:"20 Lac INR"},interest:{title:"Other Activities",hobbies:{title:"Hobbies",list:[{value:"Table Tennis"},{value:"Running"},{value:"Badminton"},{value:"Volleyball"}]},blogs:{title:"Blogs / Websites",list:[{value:"jsbisht.in"},{value:"inputbox.co"}]},projects:{title:"Projects",list:[{value:"Creepy Chat"},{value:"Inputbox"},{value:"Preaching Mommy"},{value:"About Me"}]}}};return{InputTemplate:e,InputData:t}}),angular.module("homepage").factory("DataStoreSrvc",["$localStorage","DataStorage",function(e,t){function n(){return i.inputs}var i={inputs:{}};return e.inputs?i.inputs=JSON.parse(e.inputs):i.inputs=t.InputTemplate,{getInputData:n}}]),angular.module("homepage").factory("ReadJsonSrvc",["$http",function(e){function t(t){return e.get("../../../json/"+t+".json")}return{readJson:t}}]),angular.module("homepage").factory("Activity",function(){function e(){this.description=null}return e}),angular.module("homepage").factory("Company",function(){function e(){this.companyName=null,this.jobTitle=null,this.startDate=null,this.endDate=null,this.projects=[]}return e}),angular.module("homepage").factory("Education",function(){function e(){this.educationTitle=null,this.studiedFrom=null,this.startDate=null,this.endDate=null,this.specialization=null,this.score=null}return e}),angular.module("homepage").factory("Experience",function(){function e(){this.description=null}return e}),angular.module("homepage").factory("Project",function(){function e(){this.projectName=null,this.jobTitle=null,this.startDate=null,this.endDate=null,this.responsibilities=[{value:""}]}return e}),angular.module("homepage").factory("Skill",function(){function e(){this.skillName=null,this.totalExp=null,this.versionNo=null,this.studiedFrom=null,this.selfRating=null}return e}),angular.module("homepage").factory("Structs",["$rootScope","DataStoreSrvc","GlobalDataService","Server",function(e,t,n,i){function l(){return{start:null,end:null}}return{DateRange:l}}]),angular.module("homepage").factory("ArrayUtility",function(){function e(e,t){e.length=0;for(var n in t){var i=t[n];e.push(i)}return e}return{reassignArray:e}}),angular.module("homepage").factory("DateUtility",function(){function e(e){e=new Date(e)||new Date;var t=e.getHours(),n=e.getMinutes(),i=e.getSeconds(),l=t>=12?"pm":"am";t%=12,t=t?t:12,n=n<10?"0"+n:n,i=i<10?"0"+i:i;var o=t+":"+n+":"+i+" "+l;return o}function t(e){return e=new Date(e)||new Date,e.getDate()+" "+c[e.getMonth()]+" "+e.getFullYear()}function n(e){return e=new Date(e),new Date(e.setHours(0,0,0,0))}function i(e){return e=new Date(e),new Date(e.setHours(23,59,59,999))}function l(e){e=new Date(e);var t=new Date(e.getFullYear(),e.getMonth(),1),l=new Date(e.getFullYear(),e.getMonth()+1,0);return{start:n(t),end:i(l)}}function o(e){e||(e=new Date);var t=new Date(e).getTime(),n=(new Date).getTimezoneOffset();return t+=60*n*1e3}function s(e){return e=new Date(e),e.setTime((new Date).getTime()),e}function a(e,t){e=n(e),t=n(t);var i=864e5,l=(e.getTime()-e.getTime())/i;return l}function r(e,t,l,o,s){var a=!1;return e=new Date(e),t=n(t),l=i(l),a=o&&s?e>=t&&e<=l:o?e>=t&&e<l:s?e>t&&e<=l:e>t&&e<l}var c=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];return{getTimeStr:e,getDateStr:t,getDateOnly:n,getDateEnd:i,getMonthDateRange:l,getGmtTimestamp:o,newDateSameRef:s,compareDateOnly:a,isBetweenDates:r}}),angular.module("homepage").factory("StringUtility",function(){function e(e){var n=[];return e.indexOf("[")>-1?t(n,e):n=e.split(",")}function t(e,n){n=n.trim();var i=n.indexOf(","),l=n.indexOf("[");if(0!=n.length)if(n.indexOf("[")==-1){var o=i>-1?i:n.trim().length;e.push(n.substring(0,o)),t(e,n.substring(o+1))}else if(i>l){var s=n.indexOf("]"),a=n.substring(l+1,s),r=a.split(",");e.push(r),t(e,n.substring(s+2))}else i<l&&(e.push(n.substring(0,i)),t(e,n.substring(i+1)));return e}function n(e){switch(e.toLowerCase().trim()){case"true":case"yes":case"1":return!0;case"false":case"no":case"0":case null:return!1}return e}return{getPartsOfString:e,stringToBoolean:n}}),angular.module("homepage").service("BrowserType",["$window",function(e){return function(){var t=e.navigator.userAgent,n={chrome:/chrome/i,safari:/safari/i,firefox:/firefox/i,ie:/internet explorer/i};for(var i in n)if(n[i].test(t))return i;return"unknown"}}]).service("MobileType",function(){return{Android:function(){return navigator.userAgent.match(/Android/i)},BlackBerry:function(){return navigator.userAgent.match(/BlackBerry/i)},iOS:function(){return navigator.userAgent.match(/iPhone|iPad|iPod/i)},Opera:function(){return navigator.userAgent.match(/Opera Mini/i)},Windows:function(){return navigator.userAgent.match(/IEMobile/i)||navigator.userAgent.match(/WPDesktop/i)},any:function(){var e=window.innerWidth<600;return this.Android()||this.BlackBerry()||this.iOS()||this.Opera()||this.Windows()||e}}}),angular.module("homepage").directive("autocomplete",["$timeout",function(e){return{controller:"autocompleteController",restrict:"E",replace:!0,scope:{choices:"=",enteredtext:"=",minlength:"=",result:"=",type:"=",onselect:"&"},templateUrl:"components/common-components/autocomplete/autocomplete.html"}}]).controller("autocompleteController",["$scope","$timeout",function(e,t){function n(t){return e.choices&&t?e.choices.filter(i(t)):[]}function i(e){var t=angular.lowercase(e);return function(e){var n=angular.lowercase(e.label);return 0===n.indexOf(t)}}e.filteredChoices=[],e.isVisible={suggestions:!1},e.filterItems=function(){e.enteredtext&&e.minlength<=e.enteredtext.length?(e.filteredChoices=n(e.enteredtext),e.isVisible.suggestions=e.filteredChoices.length>0):e.isVisible.suggestions=!1},e.selectItem=function(n){e.result={chosen:e.choices[n-1],type:e.type},e.enteredtext=e.result.chosen.label,e.isVisible.suggestions=!1,t(function(){e.$apply(),e.onselect&&e.onselect()})}}]),angular.module("homepage").directive("checkbox",function(){return{controller:"checkboxController",restrict:"E",replace:!0,scope:{label:"=",name:"=",isChecked:"=",markCheckboxFn:"&"},transclude:!0,templateUrl:"components/common-components/checkbox/checkbox.html"}}).controller("checkboxController",["$scope",function(e){e.checked=!!e.checked&&e.checked}]),angular.module("homepage").directive("editor",function(){return{controller:"EditorController",restrict:"E",replace:!0,scope:{note:"=",isEditable:"="},transclude:!0,templateUrl:"components/common-components/editor/editor.html"}}).controller("EditorController",["$scope",function(e){e.handlePaste=function(e){}}]),angular.module("homepage").directive("list",["$compile","$timeout","RecursionHelper",function(e,t,n){function i(e,n,i){t(function(){})}function l(e){return n.compile(e)}return{compile:l,controller:"ListController",link:i,replace:!0,restrict:"E",scope:{list:"=",isDisabled:"="},templateUrl:"components/common-components/list/list.html"}}]).directive("listitem",["$compile","$timeout",function(e,t){function n(e,n,i){n.on("keyup",function(n){n.stopPropagation();var i=n.keyCode||n.which;e.itemindex.index;13==i&&(e.setList(),t(function(){e.$apply()}))})}return{link:n,replace:!0,restrict:"E",scope:{list:"=",isDisabled:"=",itemindex:"=",setList:"&"},template:'<div class="listitem"><label class="listitem-index">{{itemindex.index + 1}}.</label><input class="input-field" type="text" ng-disabled="isDisabled" ng-model="list[itemindex.index].value"/></div>'}}]).controller("ListController",["$scope","ListHelper",function(e,t){var n=[{value:""}];void 0===e.list&&(e.list=angular.copy(n)),e.setList=function(n){var i=parseInt(n)+1,l=e.list[n].value;if(void 0!==l&&"number"==typeof i){var o=e.list.length,s={value:""};t.isCreatingList(l);i==o?e.list.push(s):e.list.splice(i,0,s)}}}]).factory("ListHelper",function(){return{isCreatingList:function(e){return e+="",e=e.trim(),":"==e.charAt(e.length-1)&&":"==e.charAt(e.length-2)}}}).factory("RecursionHelper",["$compile",function(e){return{compile:function(t,n){angular.isFunction(n)&&(n={post:n});var i,l=t.contents().remove();return{pre:n&&n.pre?n.pre:null,post:function(t,o){i||(i=e(l)),i(t,function(e){o.append(e)}),n&&n.post&&n.post.apply(null,arguments)}}}}}]),angular.module("homepage").directive("title",function(){return{restrict:"E",replace:!0,scope:{title:"="},templateUrl:"components/common-components/title/title.html"}}),angular.module("homepage").directive("drawerMenu",function(){function e(e,t,n){e.$on("$destroy",function(){document.querySelector("body").classList.add("noscroll")})}return{controller:"drawerMenuController",link:e,restrict:"E",templateUrl:"components/content-components/drawer/drawer-menu.html"}}).controller("drawerMenuController",["$scope",function(e){var t=document.querySelector("body");e.isPanelVisible=!1,e.showDrawer=function(){e.isPanelVisible=!0,t.classList.add("noscroll")},e.hideDrawer=function(){e.isPanelVisible=!1,t.classList.remove("noscroll")},e.toggleDrawer=function(){e.isPanelVisible=!e.isPanelVisible,t.classList.toggle("noscroll")}}]),angular.module("homepage").directive("footer",function(){return{restrict:"E",replace:!0,transclude:!0,templateUrl:"components/content-components/footer/footer.html"}}),angular.module("homepage").directive("headerMenu",function(){return{restrict:"E",replace:!0,transclude:!0,templateUrl:"components/content-components/header/header-menu.html",controller:"loginController"}}).controller("loginController",["$scope","$window","Authentication","Server",function(e,t,n,i){e.login=function(){i.fblogin().success(function(e){console.log(e)})},e.logout=function(){i.logout().success(function(e){n.removeUser(),t.location.href="/#/"})}}]),angular.module("homepage").directive("header",function(){return{controller:"HeaderController",restrict:"E",replace:!0,transclude:!0,templateUrl:"components/content-components/header/header.html"}}).controller("HeaderController",["$scope","$state","$rootScope","$window","Authentication",function(e,t,n,i,l){e.loadDefaultPage=function(){"demo"==n.currentRoute.name?t.go("start"):n.isAuthenticated?i.location.href="/#/home":t.go("start")}}]),angular.module("homepage").directive("home",function(){return{restrict:"E",replace:!0,transclude:!0,templateUrl:"components/content-components/home/home.html"}}),angular.module("homepage").directive("activityList",function(){return{restrict:"E",replace:!0,scope:{activities:"=data"},templateUrl:"components/content-components/input/activity-list.html",controller:"activityListController"}}).controller("activityListController",["$scope","Activity",function(e,t){e.activities&&0!==e.activities.length||(e.activities=[],e.activities[0]=new t),e.addActivity=function(){var n=e.activities.length;e.activities[n]=new t}}]),angular.module("homepage").directive("careerObjective",function(){return{restrict:"E",replace:!0,scope:{objective:"=data"},templateUrl:"components/content-components/input/career-objective.html",controller:"careerObjectiveController"}}).controller("careerObjectiveController",["$scope",function(e){}]),angular.module("homepage").directive("companyList",function(){return{restrict:"E",replace:!0,scope:{companies:"=data"},templateUrl:"components/content-components/input/company-list.html",controller:"companyListController"}}).controller("companyListController",["$scope","Company","Project",function(e,t,n){e.companies&&0!==e.companies.length||(e.companies=[],e.companies[0]=new t),e.addProject=function(t){var i=e.companies[t].projects.length;e.companies[t].projects[i]=new n},e.addCompany=function(){var n=e.companies.length;e.companies[n]=new t}}]),angular.module("homepage").directive("educationList",function(){return{restrict:"E",replace:!0,scope:{educations:"=data"},templateUrl:"components/content-components/input/education-list.html",controller:"educationListController"}}).controller("educationListController",["$scope","Education",function(e,t){e.educations&&0!==e.educations.length||(e.educations=[],e.educations[0]=new t),e.addEducation=function(){var n=e.educations.length;e.educations[n]=new t}}]),angular.module("homepage").directive("experienceList",function(){return{restrict:"E",replace:!0,scope:{experiences:"=data"},templateUrl:"components/content-components/input/experience-list.html",controller:"experienceListController"}}).controller("experienceListController",["$scope","Experience",function(e,t){e.experiences&&0!==e.experiences.length||(e.experiences=[],e.experiences[0]=new t),e.addExperience=function(){var n=e.experiences.length;e.experiences[n]=new t}}]),angular.module("homepage").directive("interestInfo",function(){return{restrict:"E",replace:!0,scope:{interest:"=data"},templateUrl:"components/content-components/input/interest-info.html",controller:"interestInfoController"}}).controller("interestInfoController",["$scope",function(e){e.interest.list=[{value:""}]}]),angular.module("homepage").directive("moreDetails",function(){return{restrict:"E",replace:!0,scope:{detail:"=data"},templateUrl:"components/content-components/input/more-details.html",controller:"moreDetailsController"}}).controller("moreDetailsController",["$scope",function(e){e.detail.language={spoken:"",readwrite:""}}]),angular.module("homepage").directive("profileSummary",function(){return{restrict:"E",replace:!0,scope:{data:"="},templateUrl:"components/content-components/input/profile-summary.html",controller:"profileSummaryController"}}).controller("profileSummaryController",["$scope",function(e){}]),angular.module("homepage").directive("projectsList",function(){return{restrict:"E",replace:!0,scope:{projects:"=data"},templateUrl:"components/content-components/input/projects-list.html"}}),angular.module("homepage").directive("skillList",function(){return{restrict:"E",replace:!0,scope:{skills:"=data"},templateUrl:"components/content-components/input/skill-list.html",controller:"skillListController"}}).controller("skillListController",["$scope","Skill",function(e,t){e.skills&&0!==e.skills.length||(e.skills=[],e.skills[0]=new t),e.addSkill=function(){var n=e.skills.length;e.skills[n]=new t}}]),angular.module("homepage").directive("commentpanel",function(){return{controller:"commentPanelController",restrict:"E",replace:!0,transclude:!0,templateUrl:"components/content-components/login/commentpanel.html"}}).controller("commentPanelController",["$scope","$timeout","Server",function(e,t,n){e.isMessageVisible=!1,e.message="Comment posted successfully",e.addcomment=function(){n.addcomment({comment:e.comment}).success(function(n){e.comment="",e.isMessageVisible=!0,t(function(){e.isMessageVisible=!1},3e3)})}}]),angular.module("homepage").directive("loginpanel",function(){return{controller:"loginPanelController",restrict:"E",replace:!0,transclude:!0,templateUrl:"components/content-components/login/loginpanel.html"}}).controller("loginPanelController",["$scope","$timeout","$window","Authentication","Server",function(e,t,n,i,l){e.isMessageVisible=!1,e.authenticate=function(){var o={username:e.username,password:e.password};l.login(o).success(function(l){console.log(l),l.token&&l.success?(i.setUser(l.token),i.setHeaders(),n.location.href="/#/home"):(e.message=l.message,e.isMessageVisible=!0,t(function(){e.isMessageVisible=!1},3e3))})}}]),angular.module("homepage").directive("registerpanel",function(){return{controller:"registerPanelController",restrict:"E",replace:!0,transclude:!0,templateUrl:"components/content-components/login/registerpanel.html"}}).controller("registerPanelController",["$location","$scope","$timeout","Server",function(e,t,n,i){fbq("track","Lead");var l=e.search();console.log(l),t.data={},t.invite={code:""},t.isRegisterMessageVisible=!1,t.isInviteMessageVisible=!1,t.hasInvite=l.hasinvite,t.register=function(){console.log(t.data),i.register(t.data).success(function(e){console.log(e),e.success,t.data={},t.message=e.message,t.isRegisterMessageVisible=!0,n(function(){t.isRegisterMessageVisible=!1},3e3)})},t.checkInviteCode=function(){i.checkInvite(t.invite).success(function(i){console.log(i),t.invite.code="",i.success&&n(function(){e.path("/signup")},2e3),t.message=i.message,t.isInviteMessageVisible=!0,n(function(){t.isInviteMessageVisible=!1},3e3)})}}]),angular.module("homepage").directive("signuppanel",function(){return{restrict:"E",replace:!0,transclude:!0,templateUrl:"components/content-components/login/signuppanel.html",controller:"signupPanelController"}}).controller("signupPanelController",["$scope","$timeout","$window","Authentication","Server",function(e,t,n,i,l){function o(e){if(!e)return!1;var t=0;for(var n in e)e.hasOwnProperty(n)&&t++;return 5===t||void 0}e.isMessageVisible=!1,e.error={email:!1,username:!1},e.registerUser=function(){var s=e.registrationInfo;console.log(s),o(s)&&l.signup(s).success(function(l){console.log(l),e.message=l.message,l.success?(e.isMessageVisible=!0,e.registrationInfo={},t(function(){i.setUser(l.token),n.location.href="/#/home"},3e3)):(e.isMessageVisible=!0,t(function(){e.isMessageVisible=!1},3e3))})}}]),angular.module("homepage").directive("previewResume",function(){
return{restrict:"E",replace:!0,templateUrl:"components/content-components/preview/preview-resume.html",controller:"previewResumeController"}}).controller("previewResumeController",["$scope","DataStoreSrvc",function(e,t){e.inputs=t.getInputData()}]);