diff --git a/7/bundle.32f4cc6ecd9023f52f05.js b/7/bundle.32f4cc6ecd9023f52f05.js new file mode 100644 index 0000000..11da950 --- /dev/null +++ b/7/bundle.32f4cc6ecd9023f52f05.js @@ -0,0 +1,2 @@ +(()=>{var e={362:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var i=n(354),s=n.n(i),r=n(314),o=n.n(r)()(s());o.push([e.id,".shake {\n animation: shake 0.6s;\n position: relative;\n z-index: 10;\n}\n\n@keyframes shake {\n 0%,\n 100% {\n transform: translateX(0);\n }\n\n 10%,\n 30%,\n 50%,\n 70%,\n 90% {\n transform: translateX(-5px);\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n transform: translateX(5px);\n }\n}\n","",{version:3,sources:["webpack://./src/framework/view/abstract-view.css"],names:[],mappings:"AAAA;EACE,qBAAqB;EACrB,kBAAkB;EAClB,WAAW;AACb;;AAEA;EACE;;IAEE,wBAAwB;EAC1B;;EAEA;;;;;IAKE,2BAA2B;EAC7B;;EAEA;;;;IAIE,0BAA0B;EAC5B;AACF",sourcesContent:[".shake {\n animation: shake 0.6s;\n position: relative;\n z-index: 10;\n}\n\n@keyframes shake {\n 0%,\n 100% {\n transform: translateX(0);\n }\n\n 10%,\n 30%,\n 50%,\n 70%,\n 90% {\n transform: translateX(-5px);\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n transform: translateX(5px);\n }\n}\n"],sourceRoot:""}]);const a=o},314:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",i=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),i&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),i&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,i,s,r){"string"==typeof e&&(e=[[null,e,void 0]]);var o={};if(i)for(var a=0;a0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=r),n&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=n):d[2]=n),s&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=s):d[4]="".concat(s)),t.push(d))}},t}},354:e=>{"use strict";e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var i=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),s="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(i),r="/*# ".concat(s," */");return[t].concat([r]).join("\n")}return[t].join("\n")}},353:function(e){e.exports=function(){"use strict";var e=6e4,t=36e5,n="millisecond",i="second",s="minute",r="hour",o="day",a="week",c="month",l="quarter",d="year",u="date",h="Invalid Date",f=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,p=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,m={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"}},v=function(e,t,n){var i=String(e);return!i||i.length>=t?e:""+Array(t+1-i.length).join(n)+e},$={s:v,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),i=Math.floor(n/60),s=n%60;return(t<=0?"+":"-")+v(i,2,"0")+":"+v(s,2,"0")},m:function e(t,n){if(t.date()1)return e(o[0])}else{var a=t.name;y[a]=t,s=a}return!i&&s&&(b=s),s||!i&&b},C=function(e,t){if(g(e))return e.clone();var n="object"==typeof t?t:{};return n.date=e,n.args=arguments,new M(n)},w=$;w.l=k,w.i=g,w.w=function(e,t){return C(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var M=function(){function m(e){this.$L=k(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[_]=!0}var v=m.prototype;return v.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(w.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var i=t.match(f);if(i){var s=i[2]-1||0,r=(i[7]||"0").substring(0,3);return n?new Date(Date.UTC(i[1],s,i[3]||1,i[4]||0,i[5]||0,i[6]||0,r)):new Date(i[1],s,i[3]||1,i[4]||0,i[5]||0,i[6]||0,r)}}return new Date(t)}(e),this.init()},v.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},v.$utils=function(){return w},v.isValid=function(){return!(this.$d.toString()===h)},v.isSame=function(e,t){var n=C(e);return this.startOf(t)<=n&&n<=this.endOf(t)},v.isAfter=function(e,t){return C(e){"use strict";var t=[];function n(e){for(var n=-1,i=0;i{"use strict";var t={};e.exports=function(e,n){var i=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!i)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");i.appendChild(n)}},540:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},56:(e,t,n)=>{"use strict";e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},825:e=>{"use strict";e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var i="";n.supports&&(i+="@supports (".concat(n.supports,") {")),n.media&&(i+="@media ".concat(n.media," {"));var s=void 0!==n.layer;s&&(i+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),i+=n.css,s&&(i+="}"),n.media&&(i+="}"),n.supports&&(i+="}");var r=n.sourceMap;r&&"undefined"!=typeof btoa&&(i+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(r))))," */")),t.styleTagTransform(i,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},113:e=>{"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}}},t={};function n(i){var s=t[i];if(void 0!==s)return s.exports;var r=t[i]={id:i,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.nc=void 0,(()=>{"use strict";function e(e,t,n="beforeend"){if(!(e instanceof y))throw new Error("Can render only components");if(null===t)throw new Error("Container element doesn't exist");t.insertAdjacentElement(n,e.element)}function t(e,t){if(!(e instanceof y&&t instanceof y))throw new Error("Can replace only components");const n=e.element,i=t.element,s=i.parentElement;if(null===s)throw new Error("Parent element doesn't exist");s.replaceChild(n,i)}function i(e){if(null!==e){if(!(e instanceof y))throw new Error("Can remove only components");e.element.remove(),e.removeElement()}}var s=n(72),r=n.n(s),o=n(825),a=n.n(o),c=n(659),l=n.n(c),d=n(56),u=n.n(d),h=n(540),f=n.n(h),p=n(113),m=n.n(p),v=n(362),$={};$.styleTagTransform=m(),$.setAttributes=u(),$.insert=l().bind(null,"head"),$.domAPI=a(),$.insertStyleElement=f(),r()(v.A,$),v.A&&v.A.locals&&v.A.locals;const b="shake";class y{#e=null;constructor(){if(new.target===y)throw new Error("Can't instantiate AbstractView, only concrete one.")}get element(){return this.#e||(this.#e=function(e){const t=document.createElement("div");return t.innerHTML=e,t.firstElementChild}(this.template)),this.#e}get template(){throw new Error("Abstract method not implemented: get template")}removeElement(){this.#e=null}shake(e){this.element.classList.add(b),setTimeout((()=>{this.element.classList.remove(b),e?.()}),600)}}class _ extends y{get template(){return'\n
\n
\n

Amsterdam — Chamonix — Geneva

\n\n

18 — 20 Mar

\n
\n\n

\n Total: € 1230\n

\n
'}}class g extends y{get template(){return'\n
    '}}var k=n(353),C=n.n(k),w=n(522),M=n.n(w);const E=["Paris","London","Chicago","Tokio","New York","Moscow","Amsterdam","San-Francisco"],D=["Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras aliquet varius magna, non porta ligula feugiat eget.","Fusce tristique felis at fermentum pharetra. Aliquam id orci ut lectus varius viverra.","Nullam nunc ex, convallis sed finibus eget, sollicitudin eget ante.","Phasellus eros mauris, condimentum sed nibh vitae, sodales efficitur ipsum.","Sed blandit, eros vel aliquam faucibus, purus ex euismod diam, eu luctus nunc ante ut dui."],S=1e3,A=["taxi","bus","train","ship","drive","flight","check-in","sightseeing","restaurant"],x="everything",T="past",F="present",j="future",H=[{key:"day",checked:!0,disabled:!1},{key:"event",checked:!1,disabled:!0},{key:"time",checked:!1,disabled:!1},{key:"price",checked:!1,disabled:!1},{key:"offer",checked:!1,disabled:!0}],O="DD/MM/YY HH:mm",q="HH:mm",P="DEFAULT",Y="EDITING",L=(e=1,t=100)=>Math.round(Math.random()*Math.abs(t-e))+e,I=e=>e[L(0,e.length-1)];C().extend(M());const B=(e,t)=>e?C()(e).format(t):"",N=e=>`${e[0].toUpperCase()}${e.slice(1)}`;class W extends y{#t=[];constructor({filters:e}){super(),this.#t=e}get template(){return`\n
    \n
    \n

    Filter events

    \n
    \n ${this.#t.map(((e,t)=>((e,t)=>`\n
    \n \n \n
    `)(e,0===t))).join("")}\n\n \n
    \n
    \n
    `}}class U extends y{get template(){return`\n
    \n ${H.map((e=>(e=>`\n
    \n \n \n
    `)(e))).join("")}\n
    `}}class Z extends y{get template(){return'\n '}}class z extends y{#n=null;constructor({message:e}){super(),this.#n=e}get template(){return`\n

    ${this.#n}

    `}}class J extends y{#i=[];#s=[];#r=[];#o=null;#a=null;constructor({point:e,offers:t,destinations:n,onEditClick:i,onFormSubmit:s}){super(),this.#i=e,this.#r=t,this.#s=n,this.#a=i,this.#o=s,this.element.querySelector("form").addEventListener("submit",this.#c),this.element.querySelector(".event__rollup-btn").addEventListener("click",this.#l)}get template(){return((e,t,n)=>{const i=n.find((t=>t.id===e.destination)),s=t.find((t=>t.type===e.type)).offers,r=s.filter((t=>e.offers.includes(t.id))),{basePrice:o,dateFrom:a,dateTo:c,type:l}=e,{description:d,name:u,pictures:h}=i||{},f=B(a,O),p=B(c,O);return`\n
  • \n
    \n
    \n
    \n \n \n\n
    \n
    \n Event type\n\n ${(e=>`\n ${A.map((t=>`\n
    \n \n \n
    `)).join("")}`)(l)}\n\n
    \n
    \n
    \n\n
    \n \n \n \n ${(e=>e.map((e=>``)).join(""))(n)}\n \n
    \n\n
    \n \n \n —\n \n \n
    \n\n
    \n \n \n
    \n\n \n \n \n
    \n ${((e,t,n,i)=>0!==e.length||n?`\n
    \n ${((e,t)=>{const n=e=>e.toLowerCase().split(" ")[-1];return 0===e.length?"":`\n
    \n

    Offers

    \n\n
    \n ${e.map((e=>`\n
    \n e.id)).includes(e.id)?"checked":""}>\n \n
    `)).join("")}\n
    \n
    `})(e,t)}\n ${((e,t)=>e?`\n
    \n

    Destination

    \n

    ${e}

    \n\n
    \n
    \n ${t.map((e=>`${e.description}`)).join("")}\n
    \n
    \n
    `:"")(n,i)}\n
    `:"")(s,r,d,h)}\n
    \n
  • `})(this.#i,this.#r,this.#s)}#c=e=>{e.preventDefault(),this.#o(this.#i)};#l=e=>{e.preventDefault(),this.#a()}}class V extends y{#i=[];#s=[];#r=[];#a=null;#d=null;constructor({point:e,offers:t,destinations:n,onEditClick:i,onFavoriteClick:s}){super(),this.#i=e,this.#s=n,this.#r=t,this.#a=i,this.#d=s,this.element.querySelector(".event__rollup-btn").addEventListener("click",this.#l),this.element.querySelector(".event__favorite-btn").addEventListener("click",this.#u)}get template(){return((e,t,n)=>{const{basePrice:i,dateFrom:s,dateTo:r,isFavorite:o,type:a}=e,c=t.find((t=>t.type===e.type)).offers.filter((t=>e.offers.includes(t.id))),l=n.find((t=>t.id===e.destination)),d=B(s,"MMM D"),u=B(s,q),h=B(r,q),f=(m=s,v=r,(p=C().duration(C()(v).diff(C()(m)))).get("day")?p.format("DD[D] HH[H] mm[M]"):!p.get("day")&&p.get("hour")?p.format("HH[H] mm[M]"):p.format("mm[M]"));var p,m,v;const $=o?"event__favorite-btn--active":"";return`\n
  • \n
    \n \n
    \n Event ${a} icon\n
    \n

    ${N(a)} ${N(l.name)}

    \n
    \n

    \n \n —\n \n

    \n

    ${f}

    \n
    \n

    \n € ${i}\n

    \n

    Offers:

    \n ${(e=>0===e.length?"":`\n
      \n ${e.map((e=>`\n
    • \n ${e.title}\n +€ \n ${e.price}\n
    • `)).join("")}\n
    `)(c)}\n \n \n
    \n
  • `})(this.#i,this.#r,this.#s)}#l=e=>{e.preventDefault(),this.#a()};#u=e=>{e.preventDefault(),this.#d()}}class X{#h=null;#f=null;#p=null;#i=[];#r=[];#s=[];#m=null;#v=null;#$=P;constructor({listComponent:e,onDataChange:t,onModeChange:n}){this.#h=e,this.#m=t,this.#v=n}init(n,s,r){this.#i=n,this.#r=s,this.#s=r;const o=this.#f,a=this.#p;this.#f=new V({point:this.#i,offers:this.#r,destinations:this.#s,onEditClick:this.#b,onFavoriteClick:this.#d}),this.#p=new J({point:this.#i,offers:this.#r,destinations:this.#s,onEditClick:this.#y,onFormSubmit:this.#o}),null!==o&&null!==a?(this.#$===P&&t(this.#f,o),this.#$===Y&&t(this.#p,a),i(o),i(a)):e(this.#f,this.#h)}destroy(){i(this.#f),i(this.#p)}resetView(){this.#$!==P&&this.#_()}#g=()=>{t(this.#p,this.#f),document.addEventListener("keydown",this.#k),this.#v(),this.#$=Y};#_=()=>{t(this.#f,this.#p),document.removeEventListener("keydown",this.#k),this.#$=P};#k=e=>{"Escape"===e.key&&(e.preventDefault(),this.#_())};#b=()=>{this.#g()};#y=()=>{this.#_()};#o=e=>{this.#m(e),this.#_()};#d=()=>{this.#m({...this.#i,isFavorite:!this.#i.isFavorite})}}const R={[x]:e=>e,[j]:e=>e.filter((e=>{return t=e.dateFrom,C()().isBefore(t);var t})),[F]:e=>e.filter((e=>{return t=e.dateFrom,n=e.dateTo,C()().isAfter(t)&&C()().isBefore(n);var t,n})),[T]:e=>e.filter((e=>{return t=e.dateTo,C()().isAfter(t);var t}))},K=[{id:1,basePrice:`${L(10,S)}`,dateFrom:"2024-09-09T22:55:56.845Z",dateTo:"2024-09-29T11:22:13.375Z",destination:"cfe416cq-10xa-ye10-8077-2fs9a01e73ab",isFavorite:!1,offers:["b4c3e4e6-9053-42ce-b747-e2813jh7aa31","b4cio4e6-9y53-42ce-b747-e2813j88883w"],type:"taxi"},{id:2,basePrice:`${L(10,S)}`,dateFrom:"2023-07-04T19:30:56.845Z",dateTo:"2023-07-04T20:22:13.845Z",destination:"f4b62099-293f-4c3d-a702-94eec4a2808c",isFavorite:!0,offers:["r466o4e6-9t6q-420e-b7u7-e189nbn0kb6s"],type:"check-in"},{id:3,basePrice:`${L(10,S)}`,dateFrom:"2025-08-22T04:10:01.845Z",dateTo:"2025-08-22T07:22:13.845Z",destination:"f4b62099-29rf-4cud-ate2-u457c4a2998r",isFavorite:!0,offers:[],type:"sightseeing"},{id:4,basePrice:`${L(10,S)}`,dateFrom:"2023-02-10T03:40:24.845Z",dateTo:"2023-02-11T13:22:13.375Z",destination:"f4b6ob99-19ef-4y7d-ate2-47eec4a19pjr",isFavorite:!1,offers:["b466o4e6-9fgq-42ce-b7u7-e280pj89k0br","b466o4e6-9k0q-42ce-b7u7-e181en89kb6d"],type:"flight"},{id:5,basePrice:`${L(10,S)}`,dateFrom:"2023-04-10T14:35:56.845Z",dateTo:"2023-04-11T17:22:13.375Z",destination:"b4c3e4e6-9053-42ce-b747-e281314baa31",isFavorite:!0,offers:["b466o4e6-9k5q-42ce-b7u7-e281ej89k000"],type:"ship"}],G=[{id:"cfe416cq-10xa-ye10-8077-2fs9a01e73ab",description:`${I(D)}`,name:`${I(E)}`,pictures:[{src:`https://loremflickr.com/248/152?random=${L()}`,description:"Event photo."},{src:`https://loremflickr.com/248/152?random=${L()}`,description:"Event photo."}]},{id:"f4b62099-293f-4c3d-a702-94eec4a2808c",description:`${I(D)}`,name:`${I(E)}`,pictures:[]},{id:"f4b62099-29rf-4cud-ate2-u457c4a2998r",description:`${I(D)}`,name:`${I(E)}`,pictures:[{src:`https://loremflickr.com/248/152?random=${L()}`,description:"Event photo."}]},{id:"f4b6ob99-19ef-4y7d-ate2-47eec4a19pjr",description:`${I(D)}`,name:`${I(E)}`,pictures:[{src:`https://loremflickr.com/248/152?random=${L()}`,description:"Event photo."}]},{id:"b4c3e4e6-9053-42ce-b747-e281314baa31",description:`${I(D)}`,name:`${I(E)}`,pictures:[{src:`https://loremflickr.com/248/152?random=${L()}`,description:"Event photo."},{src:`https://loremflickr.com/248/152?random=${L()}`,description:"Event photo."},{src:`https://loremflickr.com/248/152?random=${L()}`,description:"Event photo."}]}],Q=[{type:"taxi",offers:[{id:"b4c3e4e6-9053-42ce-b747-e2813jh7aa31",title:"Upgrade to a business class",price:`${L()}`},{id:"b4cee4e6-9y53-42ce-b747-e2813j7uf831",title:"Choose the radio station",price:`${L()}`},{id:"b4cio4e6-9y53-42ce-b747-e2813j88883w",title:"Choose temperature",price:`${L()}`},{id:"b466o4e6-9k5q-42ce-b7u7-e281ej89k83w",title:"Drive slowly",price:`${L()}`}]},{type:"bus",offers:[{id:"b466o4e6-9k5q-42ce-b7u7-e281ej89k8jj",title:"Infotainment system",price:`${L()}`},{id:"b466o4e6-9k5q-42ce-b7u7-e2k8ej89k55w",title:"Choose seats",price:`${L()}`},{id:"b466o4e6-9k5q-42ce-b7u7-e281tr89kp94",title:"Order meal",price:`${L()}`}]},{type:"train",offers:[{id:"b466o4e6-9k6q-42ce-b7u7-e281ej89u6e0",title:"Book a taxi at the arrival point",price:`${L()}`},{id:"b466o4e6-9k5q-48ge-b7u7-e281e111k83e",title:"Order a breakfast",price:`${L()}`},{id:"b49jo4e6-9k5q-42ce-b7u7-e281ej81w33w",title:"Wake up at a certain time",price:`${L()}`}]},{type:"ship",offers:[{id:"b466o4e6-9k5q-42ce-b7u7-e281e897k83w",title:"Add luggage",price:`${L()}`},{id:"b466o4e6-9k5q-42ce-b7u7-e281ej89k000",title:"Upgrade to a business class",price:`${L()}`},{id:"b466o4e6-9k5q-42ce-b7u7-e281ej76k83w",title:"Upgrade to comfort class",price:`${L()}`},{id:"b4666de6-9k5q-42ce-b7u7-e281ej89dd3f",title:"Business lounge",price:`${L()}`}]},{type:"drive",offers:[{id:"b466o4e6-9k5q-4200-b7u7-e281e7y9k0sw",title:"With automatic transmission",price:`${L()}`},{id:"b468h4e6-9k5q-42ce-b7u7-e2hm7j89k0op",title:"With air conditioning",price:`${L()}`}]},{type:"flight",offers:[{id:"b466o4e6-9fgq-42ce-b7u7-e280pj89k0br",title:"Upgrade to a business class",price:`${L()}`},{id:"a466o4e6-9lnq-42ce-b7u7-e20lej89k0vc",title:"Upgrade to comfort class",price:`${L()}`},{id:"b466o4e6-9k0q-42ce-b7u7-e181en89kb6d",title:"Add luggage",price:`${L()}`},{id:"r466o4e6-9k5q-42ce-b7u7-e189nb89kb6c",title:"Business lounge",price:`${L()}`}]},{type:"check-in",offers:[{id:"r466o4e6-9t6q-420e-b7u7-e189nbn0kb6s",title:"Choose the time of check-in",price:`${L()}`},{id:"r466o4e6-9t6q-420e-0ku7-e189nbn0kb6s",title:"Choose the time of check-out",price:`${L()}`},{id:"r466o4ne-9t6q-420e-b7u7-e189nbn0kb6m",title:"Order a meal from the restaurant",price:`${L()}`}]},{type:"sightseeing",offers:[]},{type:"restaurant",offers:[{id:"r46tv4e6-9t6q-420e-b799-e189nbn0kb6s",title:"Choose live music",price:`${L()}`},{id:"r466bve6-9t6q-420e-b7u7-e189nbn99b60",title:"Choose VIP area",price:`${L()}`}]}],ee=document.querySelector(".trip-main"),te=document.querySelector(".trip-events"),ne=document.querySelector(".trip-controls__filters"),ie=new class{#C=null;#s=null;#r=null;constructor(){this.#C=[],this.#s=[],this.#r=[]}init(){this.#C=K,this.#s=G,this.#r=Q}get points(){return this.#C}get destinations(){return this.#s}get offers(){return this.#r}};ie.init();const se=new class{#w=new _;#M=new Z;#E=new U;#h=new g;#D=null;#S=new Map;#C=[];#r=[];#s=[];constructor({infoContainer:e,contentContainer:t,filtersContainer:n,pointModel:i}){this.infoContainer=e,this.contentContainer=t,this.filtersContainer=n,this.#D=i}init(){this.#C=this.#D.points,this.#s=this.#D.destinations,this.#r=this.#D.offers;const t=function(e){return Object.entries(R).map((([t,n])=>({type:t,count:n(e).length})))}(this.#C);e(this.#w,this.infoContainer,"afterbegin"),e(new W({filters:t}),this.filtersContainer),e(this.#M,this.infoContainer),this.#A(this.#C),this.#x(this.#C,this.#r,this.#s)}#A=t=>{0===t.length&&e(new z("Click New Event to create your first point"),this.contentContainer)};#x=(t,n,i)=>{e(this.#E,this.contentContainer),e(this.#h,this.contentContainer),this.#T(t,n,i)};#T=(e,t,n)=>{e.forEach((e=>this.#F(e,t,n)))};#F=(e,t,n)=>{const i=this.#h.element,s=this.#j,r=this.#v,o=new X({listComponent:i,onDataChange:s,onModeChange:r});o.init(e,t,n),this.#S.set(e.id,o)};#j=e=>{var t,n;this.#C=(t=this.#C,n=e,t.map((e=>e.id===n.id?n:e))),this.#S.get(e.id).init(e,this.#r,this.#s)};#v=()=>{this.#S.forEach((e=>e.resetView()))}}({infoContainer:ee,contentContainer:te,filtersContainer:ne,pointModel:ie});se.init()})()})(); +//# sourceMappingURL=bundle.32f4cc6ecd9023f52f05.js.map \ No newline at end of file diff --git a/7/bundle.32f4cc6ecd9023f52f05.js.map b/7/bundle.32f4cc6ecd9023f52f05.js.map new file mode 100644 index 0000000..b1389f7 --- /dev/null +++ b/7/bundle.32f4cc6ecd9023f52f05.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bundle.32f4cc6ecd9023f52f05.js","mappings":"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","sources":["webpack://big-trip/./src/framework/view/abstract-view.css","webpack://big-trip/./node_modules/css-loader/dist/runtime/api.js","webpack://big-trip/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://big-trip/./node_modules/dayjs/dayjs.min.js","webpack://big-trip/./node_modules/dayjs/plugin/duration.js","webpack://big-trip/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://big-trip/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://big-trip/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://big-trip/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://big-trip/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://big-trip/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://big-trip/webpack/bootstrap","webpack://big-trip/webpack/runtime/compat get default export","webpack://big-trip/webpack/runtime/define property getters","webpack://big-trip/webpack/runtime/hasOwnProperty shorthand","webpack://big-trip/webpack/runtime/nonce","webpack://big-trip/./src/framework/render.js","webpack://big-trip/./src/framework/view/abstract-view.css?dfa6","webpack://big-trip/./src/framework/view/abstract-view.js","webpack://big-trip/./src/view/trip-info-view.js","webpack://big-trip/./src/view/events-list-view.js","webpack://big-trip/./src/constants.js","webpack://big-trip/./src/util/utils.js","webpack://big-trip/./src/view/filters-view.js","webpack://big-trip/./src/view/sort-view.js","webpack://big-trip/./src/view/event-add-button-view.js","webpack://big-trip/./src/view/events-message-view.js","webpack://big-trip/./src/view/event-editor-view.js","webpack://big-trip/./src/view/events-item-view.js","webpack://big-trip/./src/presenter/point-presenter.js","webpack://big-trip/./src/mocks/filters.js","webpack://big-trip/./src/mocks/points.js","webpack://big-trip/./src/mocks/destinations.js","webpack://big-trip/./src/mocks/offers.js","webpack://big-trip/./src/main.js","webpack://big-trip/./src/model/point-model.js","webpack://big-trip/./src/presenter/main-presenter.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.shake {\n animation: shake 0.6s;\n position: relative;\n z-index: 10;\n}\n\n@keyframes shake {\n 0%,\n 100% {\n transform: translateX(0);\n }\n\n 10%,\n 30%,\n 50%,\n 70%,\n 90% {\n transform: translateX(-5px);\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n transform: translateX(5px);\n }\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/framework/view/abstract-view.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,qBAAqB;EACrB,kBAAkB;EAClB,WAAW;AACb;;AAEA;EACE;;IAEE,wBAAwB;EAC1B;;EAEA;;;;;IAKE,2BAA2B;EAC7B;;EAEA;;;;IAIE,0BAA0B;EAC5B;AACF\",\"sourcesContent\":[\".shake {\\n animation: shake 0.6s;\\n position: relative;\\n z-index: 10;\\n}\\n\\n@keyframes shake {\\n 0%,\\n 100% {\\n transform: translateX(0);\\n }\\n\\n 10%,\\n 30%,\\n 50%,\\n 70%,\\n 90% {\\n transform: translateX(-5px);\\n }\\n\\n 20%,\\n 40%,\\n 60%,\\n 80% {\\n transform: translateX(5px);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t) 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","__webpack_require__.nc = undefined;","import AbstractView from './view/abstract-view.js';\n\n/** @enum {string} Перечисление возможных позиций для отрисовки */\nconst RenderPosition = {\n BEFOREBEGIN: 'beforebegin',\n AFTERBEGIN: 'afterbegin',\n BEFOREEND: 'beforeend',\n AFTEREND: 'afterend',\n};\n\n/**\n * Функция для создания элемента на основе разметки\n * @param {string} template Разметка в виде строки\n * @returns {HTMLElement} Созданный элемент\n */\nfunction createElement(template) {\n const newElement = document.createElement('div');\n newElement.innerHTML = template;\n\n return newElement.firstElementChild;\n}\n\n/**\n * Функция для отрисовки элемента\n * @param {AbstractView} component Компонент, который должен был отрисован\n * @param {HTMLElement} container Элемент в котором будет отрисован компонент\n * @param {string} place Позиция компонента относительно контейнера. По умолчанию - `beforeend`\n */\nfunction render(component, container, place = RenderPosition.BEFOREEND) {\n if (!(component instanceof AbstractView)) {\n throw new Error('Can render only components');\n }\n\n if (container === null) {\n throw new Error('Container element doesn\\'t exist');\n }\n\n container.insertAdjacentElement(place, component.element);\n}\n\n/**\n * Функция для замены одного компонента на другой\n * @param {AbstractView} newComponent Компонент, который нужно показать\n * @param {AbstractView} oldComponent Компонент, который нужно скрыть\n */\nfunction replace(newComponent, oldComponent) {\n if (!(newComponent instanceof AbstractView && oldComponent instanceof AbstractView)) {\n throw new Error('Can replace only components');\n }\n\n const newElement = newComponent.element;\n const oldElement = oldComponent.element;\n\n const parent = oldElement.parentElement;\n\n if (parent === null) {\n throw new Error('Parent element doesn\\'t exist');\n }\n\n parent.replaceChild(newElement, oldElement);\n}\n\n/**\n * Функция для удаления компонента\n * @param {AbstractView} component Компонент, который нужно удалить\n */\nfunction remove(component) {\n if (component === null) {\n return;\n }\n\n if (!(component instanceof AbstractView)) {\n throw new Error('Can remove only components');\n }\n\n component.element.remove();\n component.removeElement();\n}\n\nexport {RenderPosition, createElement, render, replace, remove};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./abstract-view.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./abstract-view.css\";\n export default content && content.locals ? content.locals : undefined;\n","import {createElement} from '../render.js';\nimport './abstract-view.css';\n\n/** @const {string} Класс, реализующий эффект \"покачивания головой\" */\nconst SHAKE_CLASS_NAME = 'shake';\n\n/** @const {number} Время анимации в миллисекундах */\nconst SHAKE_ANIMATION_TIMEOUT = 600;\n\n/**\n * Абстрактный класс представления\n */\nexport default class AbstractView {\n /** @type {HTMLElement|null} Элемент представления */\n #element = null;\n\n constructor() {\n if (new.target === AbstractView) {\n throw new Error('Can\\'t instantiate AbstractView, only concrete one.');\n }\n }\n\n /**\n * Геттер для получения элемента\n * @returns {HTMLElement} Элемент представления\n */\n get element() {\n if (!this.#element) {\n this.#element = createElement(this.template);\n }\n\n return this.#element;\n }\n\n /**\n * Геттер для получения разметки элемента\n * @abstract\n * @returns {string} Разметка элемента в виде строки\n */\n get template() {\n throw new Error('Abstract method not implemented: get template');\n }\n\n /** Метод для удаления элемента */\n removeElement() {\n this.#element = null;\n }\n\n /**\n * Метод, реализующий эффект \"покачивания головой\"\n * @param {shakeCallback} [callback] Функция, которая будет вызвана после завершения анимации\n */\n shake(callback) {\n this.element.classList.add(SHAKE_CLASS_NAME);\n setTimeout(() => {\n this.element.classList.remove(SHAKE_CLASS_NAME);\n callback?.();\n }, SHAKE_ANIMATION_TIMEOUT);\n }\n}\n\n/**\n * Функция, которая будет вызвана методом shake после завершения анимации\n * @callback shakeCallback\n */\n","import AbstractView from '../framework/view/abstract-view.js';\n\nconst createTripInfoTemplate = () => `\n
    \n
    \n

    Amsterdam — Chamonix — Geneva

    \n\n

    18 — 20 Mar

    \n
    \n\n

    \n Total: € 1230\n

    \n
    `;\n\nexport default class TripInfoView extends AbstractView {\n get template() {\n return createTripInfoTemplate();\n }\n}\n","import AbstractView from '../framework/view/abstract-view.js';\n\nconst createEventsListTemplate = () => `\n
      `;\n\nexport default class EventsListView extends AbstractView {\n get template() {\n return createEventsListTemplate();\n }\n}\n","export const CITIES = [\n 'Paris',\n 'London',\n 'Chicago',\n 'Tokio',\n 'New York',\n 'Moscow',\n 'Amsterdam',\n 'San-Francisco'\n];\n\nexport const CITY_DESCRIPTIONS = [\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras aliquet varius magna, non porta ligula feugiat eget.',\n 'Fusce tristique felis at fermentum pharetra. Aliquam id orci ut lectus varius viverra.',\n 'Nullam nunc ex, convallis sed finibus eget, sollicitudin eget ante.',\n 'Phasellus eros mauris, condimentum sed nibh vitae, sodales efficitur ipsum.',\n 'Sed blandit, eros vel aliquam faucibus, purus ex euismod diam, eu luctus nunc ante ut dui.'\n];\n\nexport const PRICE = {\n MIN: 10,\n MAX: 1000\n};\n\nexport const EVENT_TYPES = [\n 'taxi',\n 'bus',\n 'train',\n 'ship',\n 'drive',\n 'flight',\n 'check-in',\n 'sightseeing',\n 'restaurant'\n];\n\nexport const DEFAULT_EVENT_TYPE = 'train';\n\nexport const FilterType = {\n EVERYTHING: 'everything',\n PAST: 'past',\n PRESENT: 'present',\n FUTURE: 'future'\n};\n\nexport const TRIP_SORT_ITEMS = [\n {\n key: 'day',\n checked: true,\n disabled: false,\n },\n {\n key: 'event',\n checked: false,\n disabled: true,\n },\n {\n key: 'time',\n checked: false,\n disabled: false,\n },\n {\n key: 'price',\n checked: false,\n disabled: false,\n },\n {\n key: 'offer',\n checked: false,\n disabled: true,\n },\n];\n\nexport const DATE_TIME_FORMAT = {\n SHORT_DATE: 'MMM D',\n DATE_AND_TIME: 'DD/MM/YY HH:mm',\n TIME: 'HH:mm',\n D_H_M_DURATION: 'DD[D] HH[H] mm[M]',\n H_M_DURATION: 'HH[H] mm[M]',\n M_DURATION: 'mm[M]'\n};\n\nexport const EVENTS_MESSAGE = {\n EMPTY: 'Click New Event to create your first point',\n LOADING: 'Loading...'\n};\n\nexport const FilterMessage = {\n [FilterType.EVERYTHING]: 'Click New Event to create your first point',\n [FilterType.FUTURE]: 'There are no future events now',\n [FilterType.PRESENT]: 'There are no present events now',\n [FilterType.PAST]: 'There are no past events now'\n};\n\nexport const Mode = {\n DEFAULT: 'DEFAULT',\n EDITING: 'EDITING',\n};\n","import dayjs from 'dayjs';\nimport duration from 'dayjs/plugin/duration';\nimport { DATE_TIME_FORMAT } from '../constants.js';\n\nexport const getRandomInteger = (min = 1, max = 100) => Math.round(Math.random() * Math.abs(max - min)) + min;\n\nexport const getRandomArrayElement = (array) => array[getRandomInteger(0, array.length - 1)];\n\ndayjs.extend(duration);\n\nexport const convertDate = (date, format) => date ? dayjs(date).format(format) : '';\n\nexport const calculateDuration = (start, end) => dayjs.duration(dayjs(end).diff(dayjs(start)));\n\nexport const convertDuration = (value) => {\n if (value.get('day')) {\n return value.format(DATE_TIME_FORMAT.D_H_M_DURATION);\n }\n\n if (!value.get('day') && value.get('hour')) {\n return value.format(DATE_TIME_FORMAT.H_M_DURATION);\n }\n\n return value.format(DATE_TIME_FORMAT.M_DURATION);\n};\n\nexport const isDateFuture = (start) => dayjs().isBefore(start);\n\nexport const isDatePresent = (start, end) => dayjs().isAfter(start) && dayjs().isBefore(end);\n\nexport const isDatePast = (end) => dayjs().isAfter(end);\n\nexport const getCapitalized = (word) => `${word[0].toUpperCase()}${word.slice(1)}`;\n\nexport const updateItem = (items, update) => items.map((item) => item.id === update.id ? update : item);\n","import AbstractView from '../framework/view/abstract-view.js';\nimport { getCapitalized } from '../util/utils.js';\n\nconst createTripFilterTypeTemplate = (filter, isChecked) => `\n
      \n \n \n
      `;\n\nconst createFiltersTemplate = (filters) => `\n
      \n
      \n

      Filter events

      \n
      \n ${filters.map((filter, index) => createTripFilterTypeTemplate(filter, index === 0)).join('')}\n\n \n
      \n
      \n
      `;\n\nexport default class FiltersView extends AbstractView {\n #filters = [];\n\n constructor({filters}) {\n super();\n this.#filters = filters;\n }\n\n get template() {\n return createFiltersTemplate(this.#filters);\n }\n}\n","import AbstractView from '../framework/view/abstract-view.js';\nimport { TRIP_SORT_ITEMS } from '../constants.js';\n\nconst createTripSortItemTemplate = (item) => `\n
      \n \n \n
      `;\n\nconst createSortTemplate = () => `\n
      \n ${TRIP_SORT_ITEMS.map((item) => createTripSortItemTemplate(item)).join('')}\n
      `;\n\nexport default class SortView extends AbstractView {\n get template() {\n return createSortTemplate();\n }\n}\n","import AbstractView from '../framework/view/abstract-view.js';\n\nconst createEventAddButtonTemplate = () => `\n `;\n\nexport default class EventAddButtonView extends AbstractView {\n get template() {\n return createEventAddButtonTemplate();\n }\n}\n","import AbstractView from '../framework/view/abstract-view.js';\n\nconst createEventsMessageTemplate = (message) => `\n

      ${message}

      `;\n\nexport default class EventsMessageView extends AbstractView {\n #message = null;\n\n constructor({message}) {\n super();\n this.#message = message;\n }\n\n get template() {\n return createEventsMessageTemplate(this.#message);\n }\n}\n","import AbstractView from '../framework/view/abstract-view.js';\nimport { convertDate, getCapitalized } from '../util/utils.js';\nimport { DATE_TIME_FORMAT, EVENT_TYPES } from '../constants.js';\n\nconst createEventTypeItemTemplate = (type) => `\n ${EVENT_TYPES.map((eventType) => (`\n
      \n \n \n
      `\n )).join('')}`;\n\nconst createEventDestinationListTemplate = (destinations) => destinations.map((destination) => ``).join('');\n\nconst createEventAvailableOffersTemplate = (defaultOffers, selectedOffers) => {\n const convertOfferTitle = (title) => title.toLowerCase().split(' ')[-1];\n\n if (defaultOffers.length === 0) {\n return '';\n }\n\n return `\n
      \n

      Offers

      \n\n
      \n ${defaultOffers.map((defaultOffer) => (`\n
      \n selectedOffer.id).includes(defaultOffer.id) ? 'checked' : ''}>\n \n
      `)).join('')}\n
      \n
      `;\n};\n\nconst createEventSectionDestinationTemplate = (description, pictures) => {\n if (!description) {\n return '';\n }\n\n return `\n
      \n

      Destination

      \n

      ${description}

      \n\n
      \n
      \n ${pictures.map((picture) => (`\"${picture.description}\"`)).join('')}\n
      \n
      \n
      `;\n};\n\nconst createEventDetailsTemplate = (defaultOffers, selectedOffers, description, pictures) => {\n if (defaultOffers.length === 0 && !description) {\n return '';\n }\n\n return `\n
      \n ${createEventAvailableOffersTemplate(defaultOffers, selectedOffers)}\n ${createEventSectionDestinationTemplate(description, pictures)}\n
      `;\n};\n\nconst createEventEditorTemplate = (point, offers, destinations)=> {\n const eventDestination = destinations.find((item) => item.id === point.destination);\n const defaultOffers = offers.find((offer) => offer.type === point.type).offers;\n const selectedOffers = defaultOffers.filter((defaultOffer) => point.offers.includes(defaultOffer.id));\n\n const { basePrice, dateFrom, dateTo, type } = point;\n const { description, name, pictures } = eventDestination || {};\n\n const startTime = convertDate(dateFrom, DATE_TIME_FORMAT.DATE_AND_TIME);\n const endTime = convertDate(dateTo, DATE_TIME_FORMAT.DATE_AND_TIME);\n\n return `\n
    • \n
      \n
      \n
      \n \n \n\n
      \n
      \n Event type\n\n ${createEventTypeItemTemplate(type)}\n\n
      \n
      \n
      \n\n
      \n \n \n \n ${createEventDestinationListTemplate(destinations)}\n \n
      \n\n
      \n \n \n —\n \n \n
      \n\n
      \n \n \n
      \n\n \n \n \n
      \n ${createEventDetailsTemplate(defaultOffers, selectedOffers, description, pictures)}\n
      \n
    • `;\n};\n\nexport default class EventEditorView extends AbstractView {\n #point = [];\n #destinations = [];\n #offers = [];\n\n #handleFormSubmit = null;\n #handleEditClick = null;\n\n constructor({ point, offers, destinations, onEditClick, onFormSubmit }) {\n super();\n this.#point = point;\n this.#offers = offers;\n this.#destinations = destinations;\n this.#handleEditClick = onEditClick;\n this.#handleFormSubmit = onFormSubmit;\n\n this.element.querySelector('form').addEventListener('submit', this.#formSubmitHandler);\n this.element.querySelector('.event__rollup-btn').addEventListener('click', this.#editClickHandler);\n }\n\n get template() {\n return createEventEditorTemplate(this.#point, this.#offers, this.#destinations);\n }\n\n #formSubmitHandler = (event) => {\n event.preventDefault();\n this.#handleFormSubmit(this.#point);\n };\n\n #editClickHandler = (event) => {\n event.preventDefault();\n this.#handleEditClick();\n };\n}\n","import AbstractView from '../framework/view/abstract-view.js';\nimport { calculateDuration, convertDate, convertDuration, getCapitalized } from '../util/utils.js';\nimport { DATE_TIME_FORMAT } from '../constants.js';\n\nconst createEventSelectedOffersTemplate = (selectedOffers) => {\n if (selectedOffers.length === 0) {\n return '';\n }\n\n return `\n
        \n ${selectedOffers.map((selectedOffer) => (`\n
      • \n ${selectedOffer.title}\n +€ \n ${selectedOffer.price}\n
      • `)).join('')}\n
      `;\n};\n\nconst createEventItemTemplate = (point, offers, destinations) => {\n const { basePrice, dateFrom, dateTo, isFavorite, type } = point;\n\n const defaultOffers = offers.find((offer) => offer.type === point.type).offers;\n const selectedOffers = defaultOffers.filter((defaultOffer) => point.offers.includes(defaultOffer.id));\n const destination = destinations.find((item) => item.id === point.destination);\n\n const startDate = convertDate(dateFrom, DATE_TIME_FORMAT.SHORT_DATE);\n const startTime = convertDate(dateFrom, DATE_TIME_FORMAT.TIME);\n const endTime = convertDate(dateTo, DATE_TIME_FORMAT.TIME);\n const duration = convertDuration(calculateDuration(dateFrom, dateTo));\n const favorite = isFavorite ? 'event__favorite-btn--active' : '';\n\n return `\n
    • \n
      \n \n
      \n \"Event\n
      \n

      ${getCapitalized(type)} ${getCapitalized(destination.name)}

      \n
      \n

      \n \n —\n \n

      \n

      ${duration}

      \n
      \n

      \n € ${basePrice}\n

      \n

      Offers:

      \n ${createEventSelectedOffersTemplate(selectedOffers)}\n \n \n
      \n
    • `;\n};\n\nexport default class EventsItemView extends AbstractView {\n #point = [];\n #destinations = [];\n #offers = [];\n\n #handleEditClick = null;\n #handleFavoriteClick = null;\n\n constructor({ point, offers, destinations, onEditClick, onFavoriteClick }) {\n super();\n this.#point = point;\n this.#destinations = destinations;\n this.#offers = offers;\n this.#handleEditClick = onEditClick;\n this.#handleFavoriteClick = onFavoriteClick;\n\n this.element.querySelector('.event__rollup-btn').addEventListener('click', this.#editClickHandler);\n this.element.querySelector('.event__favorite-btn').addEventListener('click', this.#favoriteClickHandler);\n }\n\n get template() {\n return createEventItemTemplate(this.#point, this.#offers, this.#destinations);\n }\n\n #editClickHandler = (event) => {\n event.preventDefault();\n this.#handleEditClick();\n };\n\n #favoriteClickHandler = (event) => {\n event.preventDefault();\n this.#handleFavoriteClick();\n };\n}\n","import { render, replace, remove } from '../framework/render.js';\nimport { Mode } from '../constants.js';\n\nimport EventEditorView from '../view/event-editor-view.js';\nimport EventsItemView from '../view/events-item-view.js';\n\nexport default class PointPresenter {\n #listComponent = null;\n #eventComponent = null;\n #eventEditorComponent = null;\n\n #point = [];\n #offers = [];\n #destinations = [];\n\n #handleDataChange = null;\n #handleModeChange = null;\n\n #mode = Mode.DEFAULT;\n\n constructor({listComponent, onDataChange, onModeChange}) {\n this.#listComponent = listComponent;\n this.#handleDataChange = onDataChange;\n this.#handleModeChange = onModeChange;\n }\n\n init(point, offers, destinations) {\n this.#point = point;\n this.#offers = offers;\n this.#destinations = destinations;\n\n const prevEventComponent = this.#eventComponent;\n const prevEventEditorComponent = this.#eventEditorComponent;\n\n this.#eventComponent = new EventsItemView({\n point: this.#point,\n offers: this.#offers,\n destinations: this.#destinations,\n onEditClick: this.#handleOpenClick,\n onFavoriteClick: this.#handleFavoriteClick\n });\n\n this.#eventEditorComponent = new EventEditorView({\n point: this.#point,\n offers: this.#offers,\n destinations: this.#destinations,\n onEditClick: this.#handleCloseClick,\n onFormSubmit: this.#handleFormSubmit\n });\n\n if (prevEventComponent === null || prevEventEditorComponent === null) {\n render(this.#eventComponent, this.#listComponent);\n return;\n }\n\n if (this.#mode === Mode.DEFAULT) {\n replace(this.#eventComponent, prevEventComponent);\n }\n\n if (this.#mode === Mode.EDITING) {\n replace(this.#eventEditorComponent, prevEventEditorComponent);\n }\n\n remove(prevEventComponent);\n remove(prevEventEditorComponent);\n }\n\n destroy() {\n remove(this.#eventComponent);\n remove(this.#eventEditorComponent);\n }\n\n resetView() {\n if (this.#mode !== Mode.DEFAULT) {\n this.#replaceFormToPoint();\n }\n }\n\n #replacePointToForm = () => {\n replace(this.#eventEditorComponent, this.#eventComponent);\n document.addEventListener('keydown', this.#escKeyDownHandler);\n this.#handleModeChange();\n this.#mode = Mode.EDITING;\n };\n\n #replaceFormToPoint = () => {\n replace(this.#eventComponent, this.#eventEditorComponent);\n document.removeEventListener('keydown', this.#escKeyDownHandler);\n this.#mode = Mode.DEFAULT;\n };\n\n #escKeyDownHandler = (event) => {\n if (event.key === 'Escape') {\n event.preventDefault();\n this.#replaceFormToPoint();\n }\n };\n\n #handleOpenClick = () => {\n this.#replacePointToForm();\n };\n\n #handleCloseClick = () => {\n this.#replaceFormToPoint();\n };\n\n #handleFormSubmit = (point) => {\n this.#handleDataChange(point);\n this.#replaceFormToPoint();\n };\n\n #handleFavoriteClick = () => {\n this.#handleDataChange({...this.#point, isFavorite: !this.#point.isFavorite});\n };\n}\n","import { FilterType } from '../constants.js';\nimport { isDatePast, isDatePresent, isDateFuture } from '../util/utils.js';\n\nconst filter = {\n [FilterType.EVERYTHING]: (points) => points,\n [FilterType.FUTURE]: (points) => points.filter((point) => isDateFuture(point.dateFrom)),\n [FilterType.PRESENT]: (points) => points.filter((point) => isDatePresent(point.dateFrom, point.dateTo)),\n [FilterType.PAST]: (points) => points.filter((point) => isDatePast(point.dateTo))\n};\n\nexport function generateFilter(points) {\n return Object.entries(filter).map(([filterType, filterPoints]) => ({\n type: filterType,\n count: filterPoints(points).length,\n }));\n}\n","import { getRandomInteger } from '../util/utils.js';\nimport { PRICE } from '../constants';\n\nexport const points = [\n {\n id: 1,\n basePrice: `${getRandomInteger(PRICE.MIN, PRICE.MAX)}`,\n dateFrom: '2024-09-09T22:55:56.845Z',\n dateTo: '2024-09-29T11:22:13.375Z',\n destination: 'cfe416cq-10xa-ye10-8077-2fs9a01e73ab',\n isFavorite: false,\n offers: [\n 'b4c3e4e6-9053-42ce-b747-e2813jh7aa31',\n 'b4cio4e6-9y53-42ce-b747-e2813j88883w'\n ],\n type: 'taxi'\n },\n {\n id: 2,\n basePrice: `${getRandomInteger(PRICE.MIN, PRICE.MAX)}`,\n dateFrom: '2023-07-04T19:30:56.845Z',\n dateTo: '2023-07-04T20:22:13.845Z',\n destination: 'f4b62099-293f-4c3d-a702-94eec4a2808c',\n isFavorite: true,\n offers: [\n 'r466o4e6-9t6q-420e-b7u7-e189nbn0kb6s'\n ],\n type: 'check-in'\n },\n {\n id: 3,\n basePrice: `${getRandomInteger(PRICE.MIN, PRICE.MAX)}`,\n dateFrom: '2025-08-22T04:10:01.845Z',\n dateTo: '2025-08-22T07:22:13.845Z',\n destination: 'f4b62099-29rf-4cud-ate2-u457c4a2998r',\n isFavorite: true,\n offers: [],\n type: 'sightseeing'\n },\n {\n id: 4,\n basePrice: `${getRandomInteger(PRICE.MIN, PRICE.MAX)}`,\n dateFrom: '2023-02-10T03:40:24.845Z',\n dateTo: '2023-02-11T13:22:13.375Z',\n destination: 'f4b6ob99-19ef-4y7d-ate2-47eec4a19pjr',\n isFavorite: false,\n offers: [\n 'b466o4e6-9fgq-42ce-b7u7-e280pj89k0br',\n 'b466o4e6-9k0q-42ce-b7u7-e181en89kb6d'\n ],\n type: 'flight'\n },\n {\n id: 5,\n basePrice: `${getRandomInteger(PRICE.MIN, PRICE.MAX)}`,\n dateFrom: '2023-04-10T14:35:56.845Z',\n dateTo: '2023-04-11T17:22:13.375Z',\n destination: 'b4c3e4e6-9053-42ce-b747-e281314baa31',\n isFavorite: true,\n offers: [\n 'b466o4e6-9k5q-42ce-b7u7-e281ej89k000'\n ],\n type: 'ship'\n }\n];\n","import { getRandomInteger, getRandomArrayElement } from '../util/utils.js';\nimport { CITIES, CITY_DESCRIPTIONS } from '../constants.js';\n\nexport const destinations = [\n {\n id: 'cfe416cq-10xa-ye10-8077-2fs9a01e73ab',\n description: `${getRandomArrayElement(CITY_DESCRIPTIONS)}`,\n name: `${getRandomArrayElement(CITIES)}`,\n pictures: [\n {\n src: `https://loremflickr.com/248/152?random=${getRandomInteger()}`,\n description: 'Event photo.'\n },\n {\n src: `https://loremflickr.com/248/152?random=${getRandomInteger()}`,\n description: 'Event photo.'\n }\n ]\n },\n {\n id: 'f4b62099-293f-4c3d-a702-94eec4a2808c',\n description: `${getRandomArrayElement(CITY_DESCRIPTIONS)}`,\n name: `${getRandomArrayElement(CITIES)}`,\n pictures: []\n },\n {\n id: 'f4b62099-29rf-4cud-ate2-u457c4a2998r',\n description: `${getRandomArrayElement(CITY_DESCRIPTIONS)}`,\n name: `${getRandomArrayElement(CITIES)}`,\n pictures: [\n {\n src: `https://loremflickr.com/248/152?random=${getRandomInteger()}`,\n description: 'Event photo.'\n }\n ]\n },\n {\n id: 'f4b6ob99-19ef-4y7d-ate2-47eec4a19pjr',\n description: `${getRandomArrayElement(CITY_DESCRIPTIONS)}`,\n name: `${getRandomArrayElement(CITIES)}`,\n pictures: [\n {\n src: `https://loremflickr.com/248/152?random=${getRandomInteger()}`,\n description: 'Event photo.'\n }\n ]\n },\n {\n id: 'b4c3e4e6-9053-42ce-b747-e281314baa31',\n description: `${getRandomArrayElement(CITY_DESCRIPTIONS)}`,\n name: `${getRandomArrayElement(CITIES)}`,\n pictures: [\n {\n src: `https://loremflickr.com/248/152?random=${getRandomInteger()}`,\n description: 'Event photo.'\n },\n {\n src: `https://loremflickr.com/248/152?random=${getRandomInteger()}`,\n description: 'Event photo.'\n },\n {\n src: `https://loremflickr.com/248/152?random=${getRandomInteger()}`,\n description: 'Event photo.'\n }\n ]\n }\n];\n","import { getRandomInteger } from '../util/utils.js';\n\nexport const offers = [\n {\n type: 'taxi',\n offers: [\n {\n id: 'b4c3e4e6-9053-42ce-b747-e2813jh7aa31',\n title: 'Upgrade to a business class',\n price: `${getRandomInteger()}`\n },\n {\n id: 'b4cee4e6-9y53-42ce-b747-e2813j7uf831',\n title: 'Choose the radio station',\n price: `${getRandomInteger()}`\n },\n {\n id: 'b4cio4e6-9y53-42ce-b747-e2813j88883w',\n title: 'Choose temperature',\n price: `${getRandomInteger()}`\n },\n {\n id: 'b466o4e6-9k5q-42ce-b7u7-e281ej89k83w',\n title: 'Drive slowly',\n price: `${getRandomInteger()}`\n }\n ]\n },\n {\n type: 'bus',\n offers: [\n {\n id: 'b466o4e6-9k5q-42ce-b7u7-e281ej89k8jj',\n title: 'Infotainment system',\n price: `${getRandomInteger()}`\n },\n {\n id: 'b466o4e6-9k5q-42ce-b7u7-e2k8ej89k55w',\n title: 'Choose seats',\n price: `${getRandomInteger()}`\n },\n {\n id: 'b466o4e6-9k5q-42ce-b7u7-e281tr89kp94',\n title: 'Order meal',\n price: `${getRandomInteger()}`\n }\n ]\n },\n {\n type: 'train',\n offers: [\n {\n id: 'b466o4e6-9k6q-42ce-b7u7-e281ej89u6e0',\n title: 'Book a taxi at the arrival point',\n price: `${getRandomInteger()}`\n },\n {\n id: 'b466o4e6-9k5q-48ge-b7u7-e281e111k83e',\n title: 'Order a breakfast',\n price: `${getRandomInteger()}`\n },\n {\n id: 'b49jo4e6-9k5q-42ce-b7u7-e281ej81w33w',\n title: 'Wake up at a certain time',\n price: `${getRandomInteger()}`\n }\n ]\n },\n {\n type: 'ship',\n offers: [\n {\n id: 'b466o4e6-9k5q-42ce-b7u7-e281e897k83w',\n title: 'Add luggage',\n price: `${getRandomInteger()}`\n },\n {\n id: 'b466o4e6-9k5q-42ce-b7u7-e281ej89k000',\n title: 'Upgrade to a business class',\n price: `${getRandomInteger()}`\n },\n {\n id: 'b466o4e6-9k5q-42ce-b7u7-e281ej76k83w',\n title: 'Upgrade to comfort class',\n price: `${getRandomInteger()}`\n },\n {\n id: 'b4666de6-9k5q-42ce-b7u7-e281ej89dd3f',\n title: 'Business lounge',\n price: `${getRandomInteger()}`\n }\n ]\n },\n {\n type: 'drive',\n offers: [\n {\n id: 'b466o4e6-9k5q-4200-b7u7-e281e7y9k0sw',\n title: 'With automatic transmission',\n price: `${getRandomInteger()}`\n },\n {\n id: 'b468h4e6-9k5q-42ce-b7u7-e2hm7j89k0op',\n title: 'With air conditioning',\n price: `${getRandomInteger()}`\n }\n ]\n },\n {\n type: 'flight',\n offers: [\n {\n id: 'b466o4e6-9fgq-42ce-b7u7-e280pj89k0br',\n title: 'Upgrade to a business class',\n price: `${getRandomInteger()}`\n },\n {\n id: 'a466o4e6-9lnq-42ce-b7u7-e20lej89k0vc',\n title: 'Upgrade to comfort class',\n price: `${getRandomInteger()}`\n },\n {\n id: 'b466o4e6-9k0q-42ce-b7u7-e181en89kb6d',\n title: 'Add luggage',\n price: `${getRandomInteger()}`\n },\n {\n id: 'r466o4e6-9k5q-42ce-b7u7-e189nb89kb6c',\n title: 'Business lounge',\n price: `${getRandomInteger()}`\n }\n ]\n },\n {\n type: 'check-in',\n offers: [\n {\n id: 'r466o4e6-9t6q-420e-b7u7-e189nbn0kb6s',\n title: 'Choose the time of check-in',\n price: `${getRandomInteger()}`\n },\n {\n id: 'r466o4e6-9t6q-420e-0ku7-e189nbn0kb6s',\n title: 'Choose the time of check-out',\n price: `${getRandomInteger()}`\n },\n {\n id: 'r466o4ne-9t6q-420e-b7u7-e189nbn0kb6m',\n title: 'Order a meal from the restaurant',\n price: `${getRandomInteger()}`\n }\n ]\n },\n {\n type: 'sightseeing',\n offers: []\n },\n {\n type: 'restaurant',\n offers: [\n {\n id: 'r46tv4e6-9t6q-420e-b799-e189nbn0kb6s',\n title: 'Choose live music',\n price: `${getRandomInteger()}`\n },\n {\n id: 'r466bve6-9t6q-420e-b7u7-e189nbn99b60',\n title: 'Choose VIP area',\n price: `${getRandomInteger()}`\n }\n ]\n }\n];\n","import MainPresenter from './presenter/main-presenter.js';\nimport PointModel from './model/point-model.js';\n\nconst tripMainElement = document.querySelector('.trip-main');\nconst tripEventsElement = document.querySelector('.trip-events');\nconst filtersElement = document.querySelector('.trip-controls__filters');\n\nconst pointModel = new PointModel();\npointModel.init();\n\nconst presenter = new MainPresenter({\n infoContainer: tripMainElement,\n contentContainer: tripEventsElement,\n filtersContainer: filtersElement,\n pointModel: pointModel\n});\n\npresenter.init();\n","import { points } from '../mocks/points.js';\nimport { destinations } from '../mocks/destinations.js';\nimport { offers } from '../mocks/offers.js';\n\n\nexport default class PointModel {\n #points = null;\n #destinations = null;\n #offers = null;\n\n constructor() {\n this.#points = [];\n this.#destinations = [];\n this.#offers = [];\n }\n\n init() {\n this.#points = points;\n this.#destinations = destinations;\n this.#offers = offers;\n }\n\n get points() {\n return this.#points;\n }\n\n get destinations() {\n return this.#destinations;\n }\n\n get offers() {\n return this.#offers;\n }\n}\n","import TripInfoView from '../view/trip-info-view.js';\nimport EventsListView from '../view/events-list-view.js';\nimport FiltersView from '../view/filters-view.js';\nimport SortView from '../view/sort-view.js';\nimport EventAddButtonView from '../view/event-add-button-view.js';\nimport EventsMessageView from '../view/events-message-view.js';\nimport PointPresenter from './point-presenter.js';\nimport { render, RenderPosition } from '../framework/render.js';\nimport { EVENTS_MESSAGE } from '../constants.js';\nimport { generateFilter } from '../mocks/filters.js';\nimport { updateItem } from '../util/utils.js';\n\nexport default class MainPresenter {\n #tripInfoComponent = new TripInfoView();\n #addButtonComponent = new EventAddButtonView();\n #sortComponent = new SortView();\n #listComponent = new EventsListView();\n #pointModel = null;\n #pointPresenters = new Map();\n\n #points = [];\n #offers = [];\n #destinations = [];\n\n constructor({infoContainer, contentContainer, filtersContainer, pointModel}) {\n this.infoContainer = infoContainer;\n this.contentContainer = contentContainer;\n this.filtersContainer = filtersContainer;\n this.#pointModel = pointModel;\n }\n\n init() {\n this.#points = this.#pointModel.points;\n this.#destinations = this.#pointModel.destinations;\n this.#offers = this.#pointModel.offers;\n const filters = generateFilter(this.#points);\n\n render(this.#tripInfoComponent, this.infoContainer, RenderPosition.AFTERBEGIN);\n render(new FiltersView({filters}), this.filtersContainer);\n render(this.#addButtonComponent, this.infoContainer);\n\n this.#renderWithoutContent(this.#points);\n this.#renderContent(this.#points, this.#offers, this.#destinations);\n }\n\n #renderWithoutContent = (points) => {\n if (points.length === 0) {\n render(new EventsMessageView(EVENTS_MESSAGE.EMPTY), this.contentContainer);\n }\n };\n\n #renderContent = (points, offers, destinations) => {\n render(this.#sortComponent, this.contentContainer);\n render(this.#listComponent, this.contentContainer);\n this.#renderPoints(points, offers, destinations);\n };\n\n #renderPoints = (points, offers, destinations) => {\n points.forEach((point) => this.#renderPoint(point, offers, destinations));\n };\n\n #renderPoint = (point, offers, destinations) => {\n const listComponent = this.#listComponent.element;\n const onDataChange = this.#handlePointChange;\n const onModeChange = this.#handleModeChange;\n const pointPresenter = new PointPresenter({ listComponent, onDataChange, onModeChange });\n\n pointPresenter.init(point, offers, destinations);\n this.#pointPresenters.set(point.id, pointPresenter);\n };\n\n #handlePointChange = (updatedPoint) => {\n this.#points = updateItem(this.#points, updatedPoint);\n this.#pointPresenters.get(updatedPoint.id).init(updatedPoint, this.#offers, this.#destinations);\n };\n\n #handleModeChange = () => {\n this.#pointPresenters.forEach((presenter) => presenter.resetView());\n };\n}\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","e","n","r","s","u","a","o","c","f","h","d","l","$","y","M","name","weekdays","split","months","ordinal","t","m","String","Array","v","z","utcOffset","Math","abs","floor","date","year","month","clone","add","ceil","p","w","D","ms","Q","toLowerCase","replace","g","S","_","O","args","arguments","b","locale","$L","utc","$u","x","$x","$offset","parse","prototype","$d","Date","NaN","test","match","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","valueOf","getTime","toDate","apply","slice","$locale","weekStart","$set","min","daysInMonth","get","Number","round","subtract","format","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","forEach","extend","$i","isDayjs","en","Ls","years","days","hours","minutes","seconds","milliseconds","weeks","$l","negative","parseFromMilliseconds","Object","keys","calMilliseconds","reduce","Y","YY","YYYY","MM","DD","H","HH","mm","ss","SSS","as","humanize","fromNow","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","duration","isDuration","bind","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","options","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","domAPI","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","insert","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","getTarget","Error","appendChild","element","createElement","setAttributes","attributes","styleElement","nonce","setAttribute","insertStyleElement","styleTagTransform","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","call","getter","__esModule","definition","key","defineProperty","enumerable","prop","hasOwnProperty","nc","render","component","container","place","AbstractView","insertAdjacentElement","newComponent","oldComponent","newElement","oldElement","parent","parentElement","replaceChild","removeElement","locals","SHAKE_CLASS_NAME","constructor","template","innerHTML","firstElementChild","shake","callback","classList","setTimeout","TripInfoView","EventsListView","CITIES","CITY_DESCRIPTIONS","PRICE","EVENT_TYPES","FilterType","TRIP_SORT_ITEMS","checked","disabled","DATE_TIME_FORMAT","Mode","getRandomInteger","max","random","getRandomArrayElement","array","dayjs","convertDate","getCapitalized","word","toUpperCase","FiltersView","filters","super","filter","createTripFilterTypeTemplate","isChecked","type","SortView","createTripSortItemTemplate","EventAddButtonView","EventsMessageView","message","EventEditorView","point","offers","destinations","onEditClick","onFormSubmit","addEventListener","createEventEditorTemplate","eventDestination","find","destination","defaultOffers","offer","selectedOffers","defaultOffer","includes","basePrice","dateFrom","dateTo","description","pictures","startTime","endTime","eventType","createEventTypeItemTemplate","createEventDestinationListTemplate","createEventDetailsTemplate","createEventAvailableOffersTemplate","convertOfferTitle","title","selectedOffer","price","createEventSectionDestinationTemplate","picture","src","event","preventDefault","EventsItemView","onFavoriteClick","createEventItemTemplate","isFavorite","startDate","start","end","value","favorite","createEventSelectedOffersTemplate","PointPresenter","listComponent","onDataChange","onModeChange","prevEventComponent","prevEventEditorComponent","destroy","resetView","#replacePointToForm","#replaceFormToPoint","removeEventListener","#handleOpenClick","#handleCloseClick","#handleFavoriteClick","points","isDateFuture","isDatePresent","isDatePast","tripMainElement","tripEventsElement","filtersElement","pointModel","presenter","Map","infoContainer","contentContainer","filtersContainer","entries","filterType","filterPoints","generateFilter","#renderContent","#renderPoints","#renderPoint","pointPresenter","updatedPoint","updateItem","items","#handleModeChange"],"sourceRoot":""} \ No newline at end of file diff --git a/7/css/style.css b/7/css/style.css new file mode 100644 index 0000000..c6c86ec --- /dev/null +++ b/7/css/style.css @@ -0,0 +1,833 @@ +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 400; + src: local('Montserrat Regular'), local('Montserrat-Regular'), url('../fonts/Montserrat-Regular.woff2') format('woff2'); +} + +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 500; + src: local('Montserrat Medium'), local('Montserrat-Medium'), url('../fonts/Montserrat-Medium.woff2') format('woff2'); +} + +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 600; + src: local('Montserrat SemiBold'), local('Montserrat-SemiBold'), url('../fonts/Montserrat-SemiBold.woff2') format('woff2'); +} + +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 700; + src: local('Montserrat Bold'), local('Montserrat-Bold'), url('../fonts/Montserrat-Bold.woff2') format('woff2'); +} + +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 800; + src: local('Montserrat ExtraBold'), local('Montserrat-ExtraBold'), url('../fonts/Montserrat-ExtraBold.woff2') format('woff2'); +} + +html { + height: 100%; } + +body { + padding: 0; + margin: 0; + -webkit-font-smoothing: antialiased; + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: transparent; } + +main { + display: block; } + +@-moz-document url-prefix() { + body { + font-weight: 200; + -moz-osx-font-smoothing: grayscale; } } + +.visually-hidden { + position: absolute; + overflow: hidden; + clip: rect(0 0 0 0); + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + border: 0; } + +.page-body { + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + height: 100%; + min-width: 1200px; + padding: 0; + margin: 0; + font-size: 17px; + line-height: 1.2; + font-family: "Montserrat", "Arial", sans-serif; + color: #000000; + background-color: #f2f2f2; } + +.page-body__container { + -ms-flex-positive: 1; + flex-grow: 1; + position: relative; + z-index: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 1200px; + padding: 0 10px; + margin: 0 auto; } + .page-body__container::after { + content: ""; + position: absolute; + z-index: -1; + top: 0; + bottom: 0; + left: 130px; + width: 2px; + background-color: rgba(255, 255, 255, 0.58); } + +.page-body__page-main { + -ms-flex-positive: 1; + flex-grow: 1; + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; } + +.btn { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: center; + justify-content: center; + padding: 4px 16px 5px; + font-weight: 500; + font-size: 17px; + line-height: 21px; + font-family: inherit; + text-decoration: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + border: none; + border-radius: 15px; + cursor: pointer; + -webkit-transition: opacity 0.2s; + transition: opacity 0.2s; } + .btn:hover { + opacity: 0.8; } + .btn:active { + opacity: 0.6; } + .btn--big { + padding: 17px 29px 16px; + font-size: 18px; + line-height: 21px; + border-radius: 27px; } + .btn--yellow { + color: #424242; + background-color: #ffd054; } + .btn--blue { + color: #ffffff; + background-color: #0d8ae4; } + .btn:disabled { + opacity: 0.46; + cursor: default; } + +.page-header { + padding-top: 23px; + color: #ffffff; + background-color: #078ff0; + background-image: url("../img/header-bg.png"); + background-size: cover; + background-repeat: no-repeat; } + @media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 144dpi), (min-resolution: 1.5dppx) { + .page-header { + background-image: url("../img/header-bg@2x.png"); } } + +.page-header__container { + display: -ms-flexbox; + display: flex; + -ms-flex-align: start; + align-items: flex-start; + padding-left: 110px; } + +.page-header__logo { + display: block; + width: 42px; + height: 42px; + margin-right: 18px; } + +.trip-main { + -ms-flex-positive: 1; + flex-grow: 1; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-align: start; + align-items: flex-start; + -ms-flex-pack: justify; + justify-content: space-between; + padding-bottom: 10px; } + .trip-main--hidden { + display: none; } + +.trip-main__trip-info { + width: 100%; + margin-bottom: 35px; } + +.trip-main__trip-controls { + margin-top: 36px; + width: 600px; } + +.trip-main__event-add-btn { + min-width: 170px; + margin-left: auto; } + .trip-main__event-add-btn::before { + content: "\002B\000A0"; } + .trip-main__event-add-btn--hidden { + display: none; } + +.trip-info { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: justify; } + +.trip-info__main { + width: 600px; } + +.trip-info__title { + margin: 0; + margin-bottom: 4px; + font-weight: 800; + font-size: 17px; + line-height: 21px; } + +.trip-info__dates { + margin: 0; + font-weight: 800; + font-size: 13px; + line-height: 16px; + text-transform: uppercase; + opacity: 0.8; } + +.trip-info__cost { + width: 170px; + margin: 0 0 0 auto; + font-weight: 700; + font-size: 21px; + line-height: 25px; + text-align: center; } + +.trip-controls__trip-tabs { + margin-bottom: 9px; } + +.trip-tabs { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-align: start; + align-items: flex-start; } + +.trip-tabs__btn { + display: block; + font-weight: 500; + font-size: 21px; + line-height: 25px; + text-decoration: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + color: inherit; + opacity: 0.8; + -webkit-transition: opacity 0.2s; + transition: opacity 0.2s; } + .trip-tabs__btn:not(:last-of-type) { + margin-right: 26px; } + .trip-tabs__btn:hover { + opacity: 1; } + .trip-tabs__btn:active { + opacity: 0.6; } + .trip-tabs__btn--active, .trip-tabs__btn--active:hover, .trip-tabs__btn--active:active { + opacity: 1; + cursor: default; } + +.trip-filters { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-align: start; + align-items: flex-start; } + .trip-filters--hidden { + display: none; } + +.trip-filters__filter:not(:last-of-type) { + margin-right: 19px; } + +.trip-filters__filter-label { + font-weight: 800; + font-size: 14px; + line-height: 17px; + letter-spacing: 0.5px; + text-transform: uppercase; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + opacity: 0.6; + cursor: pointer; + -webkit-transition: opacity 0.2s; + transition: opacity 0.2s; } + .trip-filters__filter-label:hover { + opacity: 1; } + .trip-filters__filter-label:active { + opacity: 0.6; } + .trip-filters__filter-input:checked + .trip-filters__filter-label { + opacity: 1; + cursor: default; } + .trip-filters__filter-input:disabled + .trip-filters__filter-label { + opacity: 0.4; + cursor: default; } + +.trip-events { + padding-top: 22px; } + .trip-events--hidden { + display: none; } + +.trip-events__trip-sort { + margin-bottom: 8px; } + +.trip-events__msg { + margin: 0; + margin-top: 280px; + font-weight: 500; + font-size: 44px; + line-height: 60px; + text-align: center; + opacity: 0.89; } + .trip-events__msg--hidden { + display: none; } + +.trip-events__list { + padding: 0; + margin: 0; + list-style: none; } + +.trip-events__item { + margin-bottom: 54px; + margin-left: auto; } + +.trip-sort { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-align: center; + align-items: center; } + +.trip-sort__item { + margin-right: 15px; + font-weight: 800; + font-size: 13px; + line-height: 16px; + letter-spacing: 0.6px; + text-transform: uppercase; + color: #b4b4b4; + cursor: default; + -webkit-transition: color 0.2s; + transition: color 0.2s; } + .trip-sort__item:last-child { + margin-right: 0; } + .trip-sort__item--day { + width: 55px; + text-align: center; + margin-right: 83px; } + .trip-sort__item--event { + width: 300px; } + .trip-sort__item--time { + width: 225px; } + .trip-sort__item--price { + width: 90px; } + +.trip-sort__btn { + display: -ms-inline-flexbox; + display: inline-flex; + -ms-flex-align: center; + align-items: center; + padding: 7px 15px 6px 22px; + border: 1px solid transparent; + border-radius: 14px; + cursor: pointer; } + .trip-sort__btn:hover { + color: #000000; } + .trip-sort__input:checked + .trip-sort__btn { + position: relative; + color: #000000; + border-color: #000000; } + .trip-sort__input:checked + .trip-sort__btn::before { + content: ""; + position: absolute; + top: 50%; + left: 8px; + width: 8px; + height: 8px; + background-color: #ffd054; + border-radius: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); } + +.trip-sort__input:disabled + .trip-sort__btn { + opacity: 0.6; } +.trip-sort__input:disabled + .trip-sort__btn:hover { + color: #b4b4b4; + cursor: default; } + +.event { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 20px; + font-size: 17px; + line-height: 21px; } + .event--edit { + display: block; + margin-left: 80px; + padding: 0; + background-color: #ffffff; + border-radius: 18px; + -webkit-box-shadow: 0 11px 20px rgba(0, 0, 0, 0.043); + box-shadow: 0 11px 20px rgba(0, 0, 0, 0.043); } + +.event__header { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + padding: 20px; } + +.event__date { + display: block; + min-width: 80px; + font-size: 13px; + line-height: 16px; + text-transform: uppercase; + text-align: left; } + +.event__type-wrapper { + position: relative; } + +.event__type { + -ms-flex-negative: 0; + flex-shrink: 0; + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 42px; + height: 42px; + margin-right: 18px; + background-color: #ffffff; + border-radius: 50%; } + +.event__type-btn { + padding: 0; + border: 1px solid #0d8ae4; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; } + +.event__type-icon { + display: block; + width: 17px; + height: 17px; } + +.event__type-list { + position: absolute; + z-index: 2; + top: calc(100% + 7px); + left: -20px; + display: none; + width: 180px; + background-color: #ffffff; + border: 1px solid rgba(151, 151, 151, 0.169724); + -webkit-box-shadow: 0 11px 20px rgba(0, 0, 0, 0.219146); + box-shadow: 0 11px 20px rgba(0, 0, 0, 0.219146); + border-radius: 4px; } + +.event__type-toggle:checked + .event__type-list { + display: block; } + +.event__type-group { + padding: 13px 0 11px; + margin: 0; + border: none; } + .event__type-group:not(:last-of-type) { + border-bottom: 1px solid rgba(151, 151, 151, 0.33); } + +.event__type-item:not(:last-child) { + margin-bottom: 5px; } + +.event__type-label { + position: relative; + display: block; + padding: 5px 10px 5px 62px; + font-size: 17px; + line-height: 21px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + -webkit-transition: color 0.2s; + transition: color 0.2s; } + .event__type-label::before { + content: ""; + position: absolute; + top: calc(50% - 3px); + left: 32px; + width: 17px; + height: 17px; + background-position: 0 0; + background-size: 17px 17px; + background-repeat: no-repeat; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); } + .event__type-label--taxi::before { + background-image: url("../img/icons/taxi.png"); } + .event__type-label--bus::before { + background-image: url("../img/icons/bus.png"); } + .event__type-label--train::before { + background-image: url("../img/icons/train.png"); } + .event__type-label--ship::before { + background-image: url("../img/icons/ship.png"); } + .event__type-label--drive::before { + background-image: url("../img/icons/drive.png"); } + .event__type-label--flight::before { + background-image: url("../img/icons/flight.png"); } + .event__type-label--check-in::before { + background-image: url("../img/icons/check-in.png"); } + .event__type-label--sightseeing::before { + background-image: url("../img/icons/sightseeing.png"); } + .event__type-label--restaurant::before { + background-image: url("../img/icons/restaurant.png"); } + .event__type-label:hover { + color: #ffd054; } + +.event__type-input:checked + .event__type-label { + color: #000000; + background-color: #ffd054; } + .event__type-input:checked + .event__type-label::after { + content: ""; + position: absolute; + top: 50%; + left: 11px; + width: 8px; + height: 8px; + background-color: #ffffff; + border-radius: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); } + +.event__title { + -ms-flex-negative: 0; + flex-shrink: 0; + width: 298px; + margin: 0; + margin-right: 15px; + font-weight: 400; + font-size: inherit; } + .event__title::first-letter { + text-transform: capitalize; } + +.event__schedule { + -ms-flex-negative: 0; + flex-shrink: 0; + width: 230px; + margin-right: 15px; } + +.event__time { + margin: 0; + margin-bottom: 4px; } + +.event__duration { + margin: 0; + font-size: 14px; + line-height: 17px; + letter-spacing: 0.6px; + text-transform: uppercase; + color: #999999; + opacity: 0.9; } + +.event__price { + -ms-flex-negative: 0; + flex-shrink: 0; + width: 90px; + margin: 0; + margin-right: 15px; } + +.event__selected-offers { + width: 220px; + padding: 0; + margin: 0; + font-weight: 600; + list-style: none; } + +.event__rollup-btn { + position: relative; + display: block; + width: 40px; + height: 40px; + padding: 0; + margin: 0; + background-color: transparent; + border: none; + cursor: pointer; } + .event__rollup-btn::after { + content: ""; + position: absolute; + top: calc(50% - 5px); + left: 50%; + width: 10px; + height: 10px; + border-right: 2px solid #000000; + border-bottom: 2px solid #000000; + -webkit-transform: translate(-50%, -50%) rotate(45deg); + transform: translate(-50%, -50%) rotate(45deg); + -webkit-transition: border-color 0.2s, -webkit-transform 0.6s; + transition: border-color 0.2s, -webkit-transform 0.6s; + transition: border-color 0.2s, transform 0.6s; + transition: border-color 0.2s, transform 0.6s, -webkit-transform 0.6s; } + .event__rollup-btn:hover::after { + border-color: #0d8ae4; } + +.event--edit .event__rollup-btn { + margin-left: auto; } +.event--edit .event__rollup-btn::after { + top: calc(50% + 3px); + -webkit-transform: translate(-50%, -50%) rotate(225deg); + transform: translate(-50%, -50%) rotate(225deg); } + +.event__field-group { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + padding: 5px 2px; + margin-right: 18px; + border-bottom: 1px solid #0d8ae4; } + .event__field-group--destination { + width: 290px; } + +.event__label { + margin-right: 5px; + cursor: pointer; } + .event__label::first-letter { + text-transform: capitalize; } + +.event__input { + -ms-flex-positive: 1; + flex-grow: 1; + padding: 0; + font-size: inherit; + line-height: inherit; + font-family: inherit; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: none; } + .event__input--destination { + width: 150px; } + .event__input--destination::-webkit-calendar-picker-indicator { + display: none; } + .event__input--time { + width: 130px; + text-align: center; } + .event__input--price { + width: 66px; } + +.event__save-btn { + margin-right: 18px; } + +.event__reset-btn { + display: block; + padding: 0; + font-weight: 500; + font-size: 17px; + line-height: 21px; + font-family: inherit; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + color: #0d8ae4; + background-color: transparent; + border: none; + cursor: pointer; + -webkit-transition: opacity 0.2s; + transition: opacity 0.2s; } + .event__reset-btn:hover { + opacity: 0.8; } + .event__reset-btn:active { + opacity: 0.6; } + +.event__favorite-btn { + margin: 0 10px; + margin-left: auto; + color: #ebebeb; + background-color: transparent; + border: none; + cursor: pointer; + outline: none; + -webkit-transition: color 0.2s; + transition: color 0.2s; } + .event__favorite-btn:hover, + .event__favorite-btn:focus { + color: rgba(255, 208, 84, 0.6); } + .event__favorite-btn--active { + color: #ffd054; + } + +.event__favorite-icon { + display: block; + width: 28px; + height: 28px; + fill: currentColor; + -webkit-transition: fill 0.2s; + transition: fill 0.2s; } + +.event__details { + padding: 20px 0 27px; + border-top: 2px solid #ffd054; } + +.event--blocked .event__details { + position: relative; } + .event--blocked .event__details::after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: rgba(255, 255, 255, 0.8); + border-radius: 0 0 18px 18px; } + +.event__details-title { + padding-left: 20px; + margin: 0; + margin-bottom: 24px; + font-weight: 500; + font-size: 23px; + line-height: 27px; } + +.event__section:not(:last-child) { + margin-bottom: 28px; } + +.event__section--offers { + padding: 0 20px; } + +.event__section-title { + margin: 0; + font-weight: 800; + font-size: 14px; + line-height: 17px; + letter-spacing: 0.6px; + text-transform: uppercase; + color: #ffd054; } + .event__section-title--offers { + margin-bottom: 15px; } + .event__section-title--destination { + margin-bottom: 8px; + margin-left: 20px; } + +.event__available-offers { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-bottom: -6px; } + +.event__offer::first-letter { + text-transform: capitalize; } + +.event__offer-selector { + margin-bottom: 6px; } + .event__offer-selector:not(:last-of-type) { + margin-right: 6px; } + +.event__offer-label { + display: block; + padding: 22px 30px 21px; + font-size: 17px; + line-height: 21px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-color: #f2f2f2; + border-radius: 32px; + cursor: pointer; + -webkit-transition: background-color 0.2s; + transition: background-color 0.2s; } + .event__offer-label:hover { + background-color: rgba(13, 138, 228, 0.6); } + .event__offer-label::first-letter { + text-transform: capitalize; } + +.event__offer-checkbox:checked + .event__offer-label { + background-color: #0d8ae4; } + +.event__destination-description { + width: 560px; + margin: 0; + margin-bottom: 16px; + margin-left: 20px; + font-size: 15px; + line-height: 18px; } + +.event__photos-container { + width: 100%; + overflow-x: scroll; } + +.event__photos-tape { + display: -ms-flexbox; + display: flex; + -ms-flex-align: start; + align-items: flex-start; } + +.event__photo { + display: block; + height: 152px; + width: auto; + border-radius: 4px; } + .event__photo:first-child { + padding-left: 20px; } + .event__photo:last-child { + padding-right: 20px; } + .event__photo:not(:last-child) { + margin-right: 5px; } diff --git a/7/fonts/Montserrat-Bold.woff2 b/7/fonts/Montserrat-Bold.woff2 new file mode 100644 index 0000000..3d0b409 Binary files /dev/null and b/7/fonts/Montserrat-Bold.woff2 differ diff --git a/7/fonts/Montserrat-ExtraBold.woff2 b/7/fonts/Montserrat-ExtraBold.woff2 new file mode 100644 index 0000000..0abb707 Binary files /dev/null and b/7/fonts/Montserrat-ExtraBold.woff2 differ diff --git a/7/fonts/Montserrat-Medium.woff2 b/7/fonts/Montserrat-Medium.woff2 new file mode 100644 index 0000000..9dc5c7f Binary files /dev/null and b/7/fonts/Montserrat-Medium.woff2 differ diff --git a/7/fonts/Montserrat-Regular.woff2 b/7/fonts/Montserrat-Regular.woff2 new file mode 100644 index 0000000..70788c2 Binary files /dev/null and b/7/fonts/Montserrat-Regular.woff2 differ diff --git a/7/fonts/Montserrat-SemiBold.woff2 b/7/fonts/Montserrat-SemiBold.woff2 new file mode 100644 index 0000000..29cc1a9 Binary files /dev/null and b/7/fonts/Montserrat-SemiBold.woff2 differ diff --git a/7/img/header-bg.png b/7/img/header-bg.png new file mode 100644 index 0000000..c7ccbda Binary files /dev/null and b/7/img/header-bg.png differ diff --git a/7/img/header-bg@2x.png b/7/img/header-bg@2x.png new file mode 100644 index 0000000..26716e3 Binary files /dev/null and b/7/img/header-bg@2x.png differ diff --git a/7/img/icons/bus.png b/7/img/icons/bus.png new file mode 100644 index 0000000..bb2bad6 Binary files /dev/null and b/7/img/icons/bus.png differ diff --git a/7/img/icons/check-in.png b/7/img/icons/check-in.png new file mode 100644 index 0000000..866702e Binary files /dev/null and b/7/img/icons/check-in.png differ diff --git a/7/img/icons/drive.png b/7/img/icons/drive.png new file mode 100644 index 0000000..ef3522d Binary files /dev/null and b/7/img/icons/drive.png differ diff --git a/7/img/icons/flight.png b/7/img/icons/flight.png new file mode 100644 index 0000000..3e690ca Binary files /dev/null and b/7/img/icons/flight.png differ diff --git a/7/img/icons/restaurant.png b/7/img/icons/restaurant.png new file mode 100644 index 0000000..d677771 Binary files /dev/null and b/7/img/icons/restaurant.png differ diff --git a/7/img/icons/ship.png b/7/img/icons/ship.png new file mode 100644 index 0000000..e854301 Binary files /dev/null and b/7/img/icons/ship.png differ diff --git a/7/img/icons/sightseeing.png b/7/img/icons/sightseeing.png new file mode 100644 index 0000000..a87e06b Binary files /dev/null and b/7/img/icons/sightseeing.png differ diff --git a/7/img/icons/taxi.png b/7/img/icons/taxi.png new file mode 100644 index 0000000..f052e81 Binary files /dev/null and b/7/img/icons/taxi.png differ diff --git a/7/img/icons/train.png b/7/img/icons/train.png new file mode 100644 index 0000000..1dfd1f3 Binary files /dev/null and b/7/img/icons/train.png differ diff --git a/7/img/icons/transport.png b/7/img/icons/transport.png new file mode 100644 index 0000000..9200b63 Binary files /dev/null and b/7/img/icons/transport.png differ diff --git a/7/img/logo.png b/7/img/logo.png new file mode 100644 index 0000000..f11c3ae Binary files /dev/null and b/7/img/logo.png differ diff --git a/7/img/photos/1.jpg b/7/img/photos/1.jpg new file mode 100644 index 0000000..2234819 Binary files /dev/null and b/7/img/photos/1.jpg differ diff --git a/7/img/photos/2.jpg b/7/img/photos/2.jpg new file mode 100644 index 0000000..833055b Binary files /dev/null and b/7/img/photos/2.jpg differ diff --git a/7/img/photos/3.jpg b/7/img/photos/3.jpg new file mode 100644 index 0000000..b63e90a Binary files /dev/null and b/7/img/photos/3.jpg differ diff --git a/7/img/photos/4.jpg b/7/img/photos/4.jpg new file mode 100644 index 0000000..de034f4 Binary files /dev/null and b/7/img/photos/4.jpg differ diff --git a/7/img/photos/5.jpg b/7/img/photos/5.jpg new file mode 100644 index 0000000..fa162ab Binary files /dev/null and b/7/img/photos/5.jpg differ diff --git a/7/index.html b/7/index.html new file mode 100644 index 0000000..6dab581 --- /dev/null +++ b/7/index.html @@ -0,0 +1 @@ +Big Trip

      Trip events

      \ No newline at end of file