diff --git a/7/bundle.60dc8a92ad5c9b9189aa.js b/7/bundle.60dc8a92ad5c9b9189aa.js new file mode 100644 index 0000000..6910da7 --- /dev/null +++ b/7/bundle.60dc8a92ad5c9b9189aa.js @@ -0,0 +1,2 @@ +(()=>{var t={10:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var i=n(537),s=n.n(i),r=n(645),o=n.n(r)()(s());o.push([t.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},645:t=>{"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n="",i=void 0!==e[5];return e[4]&&(n+="@supports (".concat(e[4],") {")),e[2]&&(n+="@media ".concat(e[2]," {")),i&&(n+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),n+=t(e),i&&(n+="}"),e[2]&&(n+="}"),e[4]&&(n+="}"),n})).join("")},e.i=function(t,n,i,s,r){"string"==typeof t&&(t=[[null,t,void 0]]);var o={};if(i)for(var a=0;a0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=r),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),s&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=s):u[4]="".concat(s)),e.push(u))}},e}},537:t=>{"use strict";t.exports=function(t){var e=t[1],n=t[3];if(!n)return e;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[e].concat([r]).join("\n")}return[e].join("\n")}},484:function(t){t.exports=function(){"use strict";var t=6e4,e=36e5,n="millisecond",i="second",s="minute",r="hour",o="day",a="week",l="month",c="quarter",u="year",d="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(t){var e=["th","st","nd","rd"],n=t%100;return"["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},v=function(t,e,n){var i=String(t);return!i||i.length>=e?t:""+Array(e+1-i.length).join(n)+t},y={s:v,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),i=Math.floor(n/60),s=n%60;return(e<=0?"+":"-")+v(i,2,"0")+":"+v(s,2,"0")},m:function t(e,n){if(e.date()1)return t(o[0])}else{var a=e.name;_[a]=e,s=a}return!i&&s&&($=s),s||!i&&$},C=function(t,e){if(g(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new w(n)},M=y;M.l=b,M.i=g,M.w=function(t,e){return C(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var w=function(){function m(t){this.$L=b(t.locale,null,!0),this.parse(t)}var v=m.prototype;return v.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(M.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var i=e.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(e)}(t),this.$x=t.x||{},this.init()},v.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()},v.$utils=function(){return M},v.isValid=function(){return!(this.$d.toString()===h)},v.isSame=function(t,e){var n=C(t);return this.startOf(e)<=n&&n<=this.endOf(e)},v.isAfter=function(t,e){return C(t){"use strict";var e=[];function n(t){for(var n=-1,i=0;i{"use strict";var e={};t.exports=function(t,n){var i=function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}e[t]=n}return e[t]}(t);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)}},216:t=>{"use strict";t.exports=function(t){var e=document.createElement("style");return t.setAttributes(e,t.attributes),t.insert(e,t.options),e}},565:(t,e,n)=>{"use strict";t.exports=function(t){var e=n.nc;e&&t.setAttribute("nonce",e)}},795:t=>{"use strict";t.exports=function(t){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var e=t.insertStyleElement(t);return{update:function(n){!function(t,e,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))))," */")),e.styleTagTransform(i,t,e.options)}(e,t,n)},remove:function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(e)}}}},589:t=>{"use strict";t.exports=function(t,e){if(e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}}},e={};function n(i){var s=e[i];if(void 0!==s)return s.exports;var r=e[i]={id:i,exports:{}};return t[i].call(r.exports,r,r.exports,n),r.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var i in e)n.o(e,i)&&!n.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.nc=void 0,(()=>{"use strict";function t(t,e,n="beforeend"){if(!(t instanceof _))throw new Error("Can render only components");if(null===e)throw new Error("Container element doesn't exist");e.insertAdjacentElement(n,t.element)}function e(t,e){if(!(t instanceof _&&e instanceof _))throw new Error("Can replace only components");const n=t.element,i=e.element,s=i.parentElement;if(null===s)throw new Error("Parent element doesn't exist");s.replaceChild(n,i)}function i(t){if(null!==t){if(!(t instanceof _))throw new Error("Can remove only components");t.element.remove(),t.removeElement()}}var s=n(379),r=n.n(s),o=n(795),a=n.n(o),l=n(569),c=n.n(l),u=n(565),d=n.n(u),h=n(216),f=n.n(h),p=n(589),m=n.n(p),v=n(10),y={};y.styleTagTransform=m(),y.setAttributes=d(),y.insert=c().bind(null,"head"),y.domAPI=a(),y.insertStyleElement=f(),r()(v.Z,y),v.Z&&v.Z.locals&&v.Z.locals;const $="shake";class _{#t=null;constructor(){if(new.target===_)throw new Error("Can't instantiate AbstractView, only concrete one.")}get element(){return this.#t||(this.#t=function(t){const e=document.createElement("div");return e.innerHTML=t,e.firstElementChild}(this.template)),this.#t}get template(){throw new Error("Abstract method not implemented: get template")}removeElement(){this.#t=null}shake(t){this.element.classList.add($),setTimeout((()=>{this.element.classList.remove($),t?.()}),600)}}const g={EVERYTHING:"Click New Event to create your first point",PAST:"There are no past events now",PRESENT:"There are no present events now",FUTURE:"There are no future events now"},b="everything",C="past",M="present",w="future",E=["day","event","time","price","offer"];function D(t){return t[Math.floor(Math.random()*t.length)]}function S(t){return t.charAt(0).toUpperCase()+t.slice(1)}class k extends _{get template(){return`
\n ${E.map((t=>{return`
\n \n \n
`;var e})).join("")}\n
`}}class A extends _{get template(){return'
    '}}class T extends _{#e=null;constructor(){super()}get template(){return t=this.#e,`\n

    ${g[t.toUpperCase()]}

    \n `;var t}}var x=n(484),O=n.n(x),P=n(646),F=n.n(P),H=n(212),L=n.n(H),Y=n(412),j=n.n(Y);O().extend(F()),O().extend(L()),O().extend(j());const B={DATE:"D MMM",TIME:"HH:mm",FORM:"DD/MM/YY HH:mm"};function I(t,e=B.DATE){return t?O()(t).format(e):""}class N extends _{#n=null;#i=null;#s=null;constructor({point:t,allOffers:e,allDestinations:n,onEditClick:i,onFavoriteClick:s}){super(),this.#n=t,this.allOffers=e,this.allDestinations=n,this.#i=i,this.#s=s,this.element.querySelector(".event__rollup-btn").addEventListener("click",this.#r),this.element.querySelector(".event__favorite-btn").addEventListener("click",this.#o)}get template(){return function(t,e,n){const{type:i,destination:s,dateFrom:r,dateTo:o,basePrice:a,offers:l,isFavorite:c}=t,u=n.find((t=>t.id===s)).name;return`\n
  • \n
    \n \n
    \n Event type icon\n
    \n

    ${S(i)} ${u}

    \n
    \n

    \n \n —\n \n

    \n

    ${function(t,e){const n=O()(t),i=O()(e),s=O().duration(i.diff(n));return s.days()>0?`${s.format("DD[D] HH[H] mm[M]")}`:s.hours()>0?`${s.format("HH[H] mm[M]")}`:`${s.format("mm[M]")}`}(r,o)}

    \n
    \n

    \n € ${a}\n

    \n

    Offers:

    \n
      \n ${l.map((t=>function(t,e,n){const i=n.find((t=>t.type===e)).offers.find((e=>e.id===t));return`\n
    • \n ${i.title}\n +€ \n ${i.price}\n
    • `}(t,i,e))).join("")}\n
    \n \n \n
    \n
  • `}(this.#n,this.allOffers,this.allDestinations)}#r=t=>{t.preventDefault(),this.#i()};#o=t=>{t.preventDefault(),this.#s()}}const U={type:"flight",destination:"",dateFrom:"",dateTo:"",basePrice:"0",offers:["luggage","comfort","meal","seats","train"]};class R extends _{#a=null;#n=null;constructor({point:t=U,allOffers:e,allDestinations:n,edit:i,onFormSubmit:s}){super(),this.#n=t,this.allOffers=e,this.allDestinations=n,this.isEdit=i,this.#a=s,this.element.querySelector(".event--edit").addEventListener("submit",this.#l)}get template(){return function(t,e,n,i){const{type:s,destination:r,dateFrom:o,dateTo:a,basePrice:l,offers:c}=t,u=n.find((t=>t.id===r));return`\n
  • \n
    \n
    \n
    \n \n \n\n
    \n
    \n Event type\n ${e.map((t=>function(t){return`\n
    \n \n \n
    `}(t.type))).join("")}\n
    \n
    \n
    \n\n
    \n \n \n \n ${n.map((t=>``)).join("")}\n \n
    \n\n
    \n \n \n —\n \n \n
    \n\n
    \n \n \n
    \n\n \n \n
    \n
    \n ${function(t,e,n,i,s){const r=[];if(e){const n=i.find((e=>e.type===t));r.push(`\n
    \n

    Offers

    \n
    \n ${n.offers.map((t=>{const n=e.find((e=>e===t.id));return`\n
    \n \n \n
    `})).join("")}\n
    \n
    `)}return n&&(n.picture.length>0||n.description.trim()>0)&&r.push(`\n
    \n

    Destination

    \n ${0===n.description.trim()?"":`

    ${n.description}

    `}\n ${n.picture.length>0?`
    \n
    \n ${n.picture.map((t=>`${t.description}`)).join("")}\n
    \n `:""}\n
    `),r.join("")}(s,c,u,e,i)}\n
    \n
    \n
  • `}(this.#n,this.allOffers,this.allDestinations,this.isEdit)}#l=t=>{t.preventDefault(),this.#a(this.#n)}}const W="DEFAULT",q="EDITING";class Z{#c=null;#u=null;#d=null;#n=null;#h=W;#f=null;#p=null;constructor({pointsListContainer:t,onDataChange:e,onModeChange:n}){this.#c=t,this.#f=e,this.#p=n}init(n,s,r){this.#n=n;const o=this.#u,a=this.#d;this.#u=new N({point:this.#n,allOffers:s,allDestinations:r,onEditClick:this.#i,onFavoriteClick:this.#s}),this.#d=new R({point:this.#n,allOffers:s,allDestinations:r,edit:!0,onFormSubmit:this.#a}),null!==o&&null!==a?(this.#h===W&&e(this.#u,o),this.#h===q&&e(this.#d,a),i(o),i(a)):t(this.#u,this.#c)}resetView(){this.#h!==W&&this.#m()}destroy(){i(this.#u),i(this.#d)}#v=t=>{"Escape"===t.key&&(t.preventDefault(),this.#m(),document.removeEventListener("keydown",this.#v))};#y(){e(this.#d,this.#u),document.removeEventListener("keydown",this.#v),this.#p(),this.#h=q}#m(){e(this.#u,this.#d),document.removeEventListener("keydown",this.#v),this.#h=W}#i=()=>{this.#y()};#a=t=>{this.#f(t),this.#m()};#s=()=>{this.#f({...this.#n,isFavorite:!this.#n.isFavorite})}}const z=[{id:"amsterdam",name:"Amsterdam",description:"",picture:[]},{id:"geneva",name:"Geneva",description:"Geneva is a city in Switzerland that lies at the southern tip of expansive Lac Léman (Lake Geneva). Surrounded by the Alps and Jura mountains, the city has views of dramatic Mont Blanc.",picture:[{src:"img/photos/1.jpg",description:"Event photo"},{src:"img/photos/2.jpg",description:"Event photo"},{src:"img/photos/3.jpg",description:"Event photo"},{src:"img/photos/4.jpg",description:"Event photo"},{src:"img/photos/5.jpg",description:"Event photo"}]},{id:"chamonix",name:"Chamonix",description:"Chamonix, is a beautiful city, a true asian pearl, with crowded streets.",picture:[{src:"https://loremflickr.com/248/152?random=15",description:"Event photo"},{src:"https://loremflickr.com/248/152?random=1554",description:"Event photo"},{src:"https://loremflickr.com/248/152?random=557",description:"Event photo"},{src:"https://loremflickr.com/248/152?random=954",description:"Event photo"},{src:"img/photos/5.jpg",description:"Event photo"}]}];function J(){return z}let V=(t=21)=>crypto.getRandomValues(new Uint8Array(t)).reduce(((t,e)=>t+((e&=63)<36?e.toString(36):e<62?(e-26).toString(36).toUpperCase():e>62?"-":"_")),"");const X=[{type:"taxi",destination:`${D(J()).id}`,dateFrom:"2024-09-01T10:30",dateTo:"2024-09-18T11:00",basePrice:"130",offers:["uber"],isFavorite:!0},{type:"flight",destination:`${D(J()).id}`,dateFrom:"2024-10-18T14:30",dateTo:"2024-10-18T16:05",basePrice:"30",offers:["luggage","comfort"],isFavorite:!1},{type:"check-in",destination:`${D(J()).id}`,dateFrom:"2024-03-20T08:25",dateTo:"2024-03-20T08:55",basePrice:"40",offers:[],isFavorite:!1}];function G(){return{id:V(),...D(X)}}const K=[{type:"taxi",offers:[{id:"uber",value:"uber",title:"Order Uber",price:"20"}]},{type:"bus",offers:[]},{type:"train",offers:[{id:"train",value:"train",title:"Travel by train",price:"40"}]},{type:"ship",offers:[]},{type:"drive",offers:[{id:"rent",value:"rent",title:"Rent a car",price:"200"}]},{type:"flight",offers:[{id:"luggage",value:"luggage",title:"Add luggage",price:"30"},{id:"comfort",value:"comfort",title:"Switch to comfort class",price:"100"},{id:"meal",value:"meal",title:"Add meal",price:"15"},{id:"seats",value:"seats",title:"Choose seats",price:"5"},{id:"train",value:"train",title:"Travel by train",price:"40"}]},{type:"check-in",offers:[{id:"breakfast",value:"breakfast",title:"Add breakfast",price:"50"}]},{type:"sightseeing",offers:[{id:"tickets",value:"tickets",title:"Book tickets",price:"40"}]},{type:"restaurant",offers:[{id:"lunch",value:"lunch",title:"Lunch in city",price:"30"}]}],Q={[b]:t=>t,[C]:t=>t.filter((t=>{return(e=t.dateTo)&&O()().isAfter(O()(e));var e})),[M]:t=>t.filter((t=>{return e=t.dateFrom,n=t.dateTo,O()().isSameOrAfter(O()(e))&&O()().isSameOrBefore(O()(n));var e,n})),[w]:t=>t.filter((t=>{return(e=t.dateFrom)&&O()().isBefore(O()(e));var e}))},tt=document.querySelector(".trip-main").querySelector(".trip-controls__filters"),et=document.querySelector(".page-main").querySelector(".trip-events"),nt=new class{#$=function(){return K}();#_=J();#g=Array.from({length:4},G);get points(){return this.#g}get destinations(){return this.#_}get offers(){return this.#$}},it=new class{#b=null;#C=null;#M=new A;#w=[];#E=new k;#D=new T;#S=new Map;constructor({boardContainer:t,pointsModel:e}){this.#b=t,this.#C=e}init(){this.#w=[...this.#C.points],this.allOffers=[...this.#C.offers],this.allDestinations=[...this.#C.destinations],this.#k()}#A(){t(this.#E,this.#b)}#T(t,e,n){const i=new Z({pointsListContainer:this.#M.element,onDataChange:this.#x,onModeChange:this.#p});i.init(t,e,n),this.#S.set(t.id,i)}#O(){t(this.#M,this.#b);for(let t=0;tt.destroy())),this.#S.clear()}#p=()=>{this.#S.forEach((t=>t.resetView()))};#x=t=>{var e,n;this.#w=(e=this.#w,n=t,e.map((t=>t.id===n.id?n:t))),this.#S.get(t.id).init(t,this.allOffers,this.allDestinations)}}({boardContainer:et,pointsModel:nt}),st=(rt=nt.points,Object.entries(Q).map((([t,e])=>({type:t,points:e(rt)}))));var rt;t(new class extends _{#H=null;constructor({filters:t}){super(),this.#H=t}get template(){return`
    \n ${this.#H.map((t=>function({type:t}){return`
    \n \n \n
    `}(t))).join("")}\n \n
    `}}({filters:st}),tt),it.init()})()})(); +//# sourceMappingURL=bundle.60dc8a92ad5c9b9189aa.js.map \ No newline at end of file diff --git a/7/bundle.60dc8a92ad5c9b9189aa.js.map b/7/bundle.60dc8a92ad5c9b9189aa.js.map new file mode 100644 index 0000000..9cfe567 --- /dev/null +++ b/7/bundle.60dc8a92ad5c9b9189aa.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bundle.60dc8a92ad5c9b9189aa.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/dayjs/plugin/isSameOrAfter.js","webpack://big-trip/./node_modules/dayjs/plugin/isSameOrBefore.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/const.js","webpack://big-trip/./src/utils/common.js","webpack://big-trip/./src/view/sort-view.js","webpack://big-trip/./src/view/list-points-view.js","webpack://big-trip/./src/view/no-point-view.js","webpack://big-trip/./src/utils/points.js","webpack://big-trip/./src/view/point-view.js","webpack://big-trip/./src/view/form-point-view.js","webpack://big-trip/./src/presenter/point-presenter.js","webpack://big-trip/./src/mock/destinations.js","webpack://big-trip/./node_modules/nanoid/index.browser.js","webpack://big-trip/./src/mock/points.js","webpack://big-trip/./src/mock/offers.js","webpack://big-trip/./src/utils/filter.js","webpack://big-trip/./src/main.js","webpack://big-trip/./src/model/points-model.js","webpack://big-trip/./src/presenter/board-presenter.js","webpack://big-trip/./src/mock/filter.js","webpack://big-trip/./src/view/filters-view.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\",f=\"month\",h=\"quarter\",c=\"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},w=function(t,e){if(p(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=v;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}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(O.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.$x=t.x||{},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 O},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(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;\n\n options.insert = insertFn.bind(null, \"head\");\n \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","const NO_POINT_MESSAGES = {\n EVERYTHING: 'Click New Event to create your first point',\n PAST: 'There are no past events now',\n PRESENT: 'There are no present events now',\n FUTURE: 'There are no future events now'\n};\n\nconst FILTERS_VALUES = {\n EVERYTHING: 'everything',\n PAST: 'past',\n PRESENT: 'present',\n FUTURE: 'future'\n};\n\nconst SORT_VALUES = ['day', 'event', 'time', 'price', 'offer'];\n\nexport {NO_POINT_MESSAGES, FILTERS_VALUES, SORT_VALUES};\n","function getRandomArrayElement(items) {\n return items[Math.floor(Math.random() * items.length)];\n}\n\n\nfunction capitalizeFirstLetter(text) {\n const textFirstCapitalLetter = text.charAt(0).toUpperCase() + text.slice(1);\n return textFirstCapitalLetter;\n}\n\nfunction updateItem(items, update) {\n return items.map((item) => item.id === update.id ? update : item);\n}\n\nexport {getRandomArrayElement, capitalizeFirstLetter, updateItem};\n","import AbstractView from '../framework/view/abstract-view.js';\nimport { SORT_VALUES } from '../const.js';\nimport { capitalizeFirstLetter } from '../utils/common.js';\n\nfunction createSortItemTemplate(item) {\n return `
    \n \n \n
    `;\n}\n\nfunction createSortTemplate() {\n return (\n `
    \n ${SORT_VALUES.map((e)=> createSortItemTemplate(e)).join('')}\n
    `\n );\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\nfunction createListTemplate() {\n return '
      ';\n\n}\n\nexport default class ListPointsView extends AbstractView{\n get template() {\n return createListTemplate();\n }\n}\n","import AbstractView from '../framework/view/abstract-view.js';\nimport { NO_POINT_MESSAGES } from '../const.js';\n\nfunction createNoPointTemplate(filterChecked) {\n return `\n

      ${NO_POINT_MESSAGES[filterChecked.toUpperCase()]}

      \n `;\n}\n\nexport default class NoPointView extends AbstractView {\n #filterChecked = null;\n constructor() {\n super();\n // this.#filterChecked = document.querySelector('.trip-filters__filter-input[checked]').value;\n }\n\n get template() {\n return createNoPointTemplate(this.#filterChecked);\n }\n}\n","import dayjs from 'dayjs';\nimport duration from 'dayjs/plugin/duration';\nimport isSameOrAfter from 'dayjs/plugin/isSameOrAfter';\nimport isSameOrBefore from 'dayjs/plugin/isSameOrBefore';\ndayjs.extend(duration);\ndayjs.extend(isSameOrAfter);\ndayjs.extend(isSameOrBefore);\n\nconst FORMATS = {\n DATE: 'D MMM',\n TIME: 'HH:mm',\n FORM: 'DD/MM/YY HH:mm'\n};\n\nfunction humanizePointDate(date, format = FORMATS.DATE) {\n return date ? dayjs(date).format(format) : '';\n}\n\nfunction humanizePointDuration(date1, date2) {\n const startDate = dayjs(date1);\n const endDate = dayjs(date2);\n const pointDuration = dayjs.duration(endDate.diff(startDate));\n\n if (pointDuration.days() > 0) {\n return `${pointDuration.format('DD[D] HH[H] mm[M]')}`;\n }\n if (pointDuration.hours() > 0) {\n return `${pointDuration.format('HH[H] mm[M]')}`;\n }\n return `${pointDuration.format('mm[M]')}`;\n}\n\nfunction isCompletedPoints(dateTo) {\n return dateTo && dayjs().isAfter(dayjs(dateTo));\n}\n\nfunction isCurrentPoints(dateFrom, dateTo) {\n return dayjs().isSameOrAfter(dayjs(dateFrom)) && dayjs().isSameOrBefore(dayjs(dateTo));\n}\n\nfunction isPlannedPoints(dateFrom) {\n return dateFrom && dayjs().isBefore(dayjs(dateFrom));\n}\n\n\nexport {humanizePointDate, humanizePointDuration, FORMATS, isCompletedPoints, isCurrentPoints, isPlannedPoints};\n","import AbstractView from '../framework/view/abstract-view.js';\nimport { FORMATS, humanizePointDate, humanizePointDuration } from '../utils/points.js';\nimport { capitalizeFirstLetter } from '../utils/common.js';\n\nfunction createOffersTemplate(e, type, allOffers) {\n const offerDefault = allOffers.find((item) => item.type === type);\n const offer = offerDefault.offers.find((item) => item.id === e);\n return `\n
    • \n ${offer.title}\n +€ \n ${offer.price}\n
    • `;\n}\n\nfunction createPointTemplate(point, allOffers, allDestinations) {\n const {type, destination, dateFrom, dateTo, basePrice, offers, isFavorite} = point;\n const destinationDefault = allDestinations.find((item) => item.id === destination).name;\n return `\n
    • \n
      \n \n
      \n \"Event\n
      \n

      ${capitalizeFirstLetter(type)} ${destinationDefault}

      \n
      \n

      \n \n —\n \n

      \n

      ${humanizePointDuration(dateFrom,dateTo)}

      \n
      \n

      \n € ${basePrice}\n

      \n

      Offers:

      \n
        \n ${offers.map((e) => createOffersTemplate(e, type, allOffers)).join('')}\n
      \n \n \n
      \n
    • `;\n}\n\nexport default class PointView extends AbstractView{\n #point = null;\n #handleEditClick = null;\n #handleFavoriteClick = null;\n\n constructor({point, allOffers, allDestinations, onEditClick, onFavoriteClick}) {\n super();\n this.#point = point;\n this.allOffers = allOffers;\n this.allDestinations = allDestinations;\n this.#handleEditClick = onEditClick;\n this.#handleFavoriteClick = onFavoriteClick;\n\n this.element.querySelector('.event__rollup-btn')\n .addEventListener('click', this.#editClickHandler);\n this.element.querySelector('.event__favorite-btn')\n .addEventListener('click', this.#favoriteClickHandler);\n }\n\n get template() {\n return createPointTemplate(this.#point, this.allOffers, this.allDestinations);\n }\n\n #editClickHandler = (evt) => {\n evt.preventDefault();\n this.#handleEditClick();\n };\n\n #favoriteClickHandler = (evt) => {\n evt.preventDefault();\n this.#handleFavoriteClick();\n };\n}\n","import AbstractView from '../framework/view/abstract-view.js';\nimport { FORMATS, humanizePointDate } from '../utils/points.js';\nimport { capitalizeFirstLetter } from '../utils/common.js';\n\nconst BLANK_POINT = {\n type: 'flight',\n destination: '',\n dateFrom: '',\n dateTo: '',\n basePrice: '0',\n offers: ['luggage', 'comfort', 'meal', 'seats', 'train'],\n};\n\nfunction createTypeItemTemplate(type) {\n return `\n
      \n \n \n
      `;\n}\n\nfunction createDetailsTemplate(type, offers, destinationDefault, allOffers, edit) {\n const details = [];\n\n if (offers) {\n const offerDefault = allOffers.find((item) => item.type === type);\n details.push(`\n
      \n

      Offers

      \n
      \n ${offerDefault.offers.map((e) => {\n const offer = offers.find((item) => item === e.id);\n return (`\n
      \n \n \n
      `);\n }).join('')}\n
      \n
      `);\n }\n\n if (destinationDefault && (destinationDefault.picture.length > 0 || destinationDefault.description.trim() > 0)) {\n details.push (`\n
      \n

      Destination

      \n ${destinationDefault.description.trim() === 0 ? '' : `

      ${destinationDefault.description}

      `}\n ${destinationDefault.picture.length > 0 ?\n `
      \n
      \n ${destinationDefault.picture.map((e)=> `\"${e.description}\"`).join('')}\n
      \n ` : ''}\n
      `);\n }\n return details.join('');\n}\n\n\nfunction createEventTemplate(point, allOffers, allDestinations, edit) {\n const {type, destination, dateFrom, dateTo, basePrice, offers} = point;\n\n const destinationDefault = allDestinations.find((item) => item.id === destination);\n return `\n
    • \n
      \n
      \n
      \n \n \n\n
      \n
      \n Event type\n ${allOffers.map((e) => createTypeItemTemplate(e.type)).join('')}\n
      \n
      \n
      \n\n
      \n \n \n \n ${allDestinations.map((e) => ``).join('')}\n \n
      \n\n
      \n \n \n —\n \n \n
      \n\n
      \n \n \n
      \n\n \n \n
      \n
      \n ${createDetailsTemplate(type, offers, destinationDefault, allOffers, edit)}\n
      \n
      \n
    • `;\n}\n\n\nexport default class FormPointView extends AbstractView{\n #handleFormSubmit = null;\n #point = null;\n\n constructor({point = BLANK_POINT, allOffers, allDestinations, edit, onFormSubmit}) {\n super();\n this.#point = point;\n this.allOffers = allOffers;\n this.allDestinations = allDestinations;\n this.isEdit = edit;\n this.#handleFormSubmit = onFormSubmit;\n this.element.querySelector('.event--edit')\n .addEventListener('submit', this.#formSubmitHandler);\n }\n\n\n get template() {\n return createEventTemplate(this.#point, this.allOffers, this.allDestinations, this.isEdit);\n }\n\n #formSubmitHandler = (evt) => {\n evt.preventDefault();\n this.#handleFormSubmit(this.#point);\n };\n}\n","import {render, replace, remove} from '../framework/render.js';\nimport PointView from '../view/point-view.js';\nimport FormPointView from '../view/form-point-view.js';\n\nconst Mode = {\n DEFAULT: 'DEFAULT',\n EDITING: 'EDITING',\n};\n\nexport default class PointPresenter {\n #pointsListContainer = null;\n\n #pointComponent = null;\n #pointEditComponent = null;\n\n #point = null;\n #mode = Mode.DEFAULT;\n\n #handleDataChange = null;\n #handleModeChange = null;\n\n constructor({pointsListContainer, onDataChange, onModeChange}) {\n this.#pointsListContainer = pointsListContainer;\n this.#handleDataChange = onDataChange;\n this.#handleModeChange = onModeChange;\n }\n\n\n init(point, allOffers, allDestinations) {\n this.#point = point;\n\n const prevPointComponent = this.#pointComponent;\n const prevPointEditComponent = this.#pointEditComponent;\n\n this.#pointComponent = new PointView({\n point: this.#point,\n allOffers: allOffers,\n allDestinations: allDestinations,\n onEditClick: this.#handleEditClick,\n onFavoriteClick: this.#handleFavoriteClick,\n });\n\n this.#pointEditComponent = new FormPointView({\n point: this.#point,\n allOffers: allOffers,\n allDestinations: allDestinations,\n edit: true,\n onFormSubmit: this.#handleFormSubmit\n });\n\n if (prevPointComponent === null || prevPointEditComponent === null) {\n render(this.#pointComponent, this.#pointsListContainer);\n return;\n }\n\n if (this.#mode === Mode.DEFAULT) {\n replace(this.#pointComponent, prevPointComponent);\n }\n\n if ((this.#mode === Mode.EDITING)) {\n replace(this.#pointEditComponent, prevPointEditComponent);\n }\n\n remove(prevPointComponent);\n remove(prevPointEditComponent);\n }\n\n resetView() {\n if (this.#mode !== Mode.DEFAULT) {\n this.#replaceFormToPoint();\n }\n }\n\n destroy() {\n remove(this.#pointComponent);\n remove(this.#pointEditComponent);\n }\n\n #escKeyDownHandler = (evt) => {\n if (evt.key === 'Escape') {\n evt.preventDefault();\n this.#replaceFormToPoint();\n document.removeEventListener('keydown', this.#escKeyDownHandler);\n }\n };\n\n #replacePointToForm() {\n replace(this.#pointEditComponent, this.#pointComponent);\n document.removeEventListener('keydown', this.#escKeyDownHandler);\n this.#handleModeChange();\n this.#mode = Mode.EDITING;\n }\n\n #replaceFormToPoint() {\n replace(this.#pointComponent, this.#pointEditComponent);\n document.removeEventListener('keydown', this.#escKeyDownHandler);\n this.#mode = Mode.DEFAULT;\n }\n\n #handleEditClick = () => {\n this.#replacePointToForm();\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","const destinationsMock = [\n {\n id: 'amsterdam',\n name: 'Amsterdam',\n description: '',\n picture: []\n },\n {\n id: 'geneva',\n name: 'Geneva',\n description: 'Geneva is a city in Switzerland that lies at the southern tip of expansive Lac Léman (Lake Geneva). Surrounded by the Alps and Jura mountains, the city has views of dramatic Mont Blanc.',\n picture: [\n {\n src: 'img/photos/1.jpg',\n description: 'Event photo'\n },\n {\n src: 'img/photos/2.jpg',\n description: 'Event photo'\n },\n {\n src: 'img/photos/3.jpg',\n description: 'Event photo'\n },\n {\n src: 'img/photos/4.jpg',\n description: 'Event photo'\n },\n {\n src: 'img/photos/5.jpg',\n description: 'Event photo'\n }\n ]\n },\n {\n id: 'chamonix',\n name: 'Chamonix',\n description: 'Chamonix, is a beautiful city, a true asian pearl, with crowded streets.',\n picture: [\n {\n src: 'https://loremflickr.com/248/152?random=15',\n description: 'Event photo'\n },\n {\n src: 'https://loremflickr.com/248/152?random=1554',\n description: 'Event photo'\n },\n {\n src: 'https://loremflickr.com/248/152?random=557',\n description: 'Event photo'\n },\n {\n src: 'https://loremflickr.com/248/152?random=954',\n description: 'Event photo'\n },\n {\n src: 'img/photos/5.jpg',\n description: 'Event photo'\n }\n ]\n }\n];\n\nfunction getDestinations() {\n return destinationsMock;\n}\n\n\nexport { getDestinations };\n","export { urlAlphabet } from './url-alphabet/index.js'\nexport let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nexport let customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nexport let customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nexport let nanoid = (size = 21) =>\n crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n byte &= 63\n if (byte < 36) {\n id += byte.toString(36)\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte > 62) {\n id += '-'\n } else {\n id += '_'\n }\n return id\n }, '')\n","import { getRandomArrayElement } from '../utils/common';\nimport { getDestinations } from '../mock/destinations';\nimport {nanoid} from 'nanoid';\n\nconst mockPoints = [\n {\n type: 'taxi',\n destination: `${getRandomArrayElement(getDestinations()).id}`,\n dateFrom: '2024-09-01T10:30',\n dateTo: '2024-09-18T11:00',\n basePrice: '130',\n offers: ['uber'],\n isFavorite: true,\n },\n {\n type: 'flight',\n destination: `${getRandomArrayElement(getDestinations()).id}`,\n dateFrom: '2024-10-18T14:30',\n dateTo: '2024-10-18T16:05',\n basePrice: '30',\n offers: ['luggage', 'comfort'],\n isFavorite: false,\n },\n {\n type: 'check-in',\n destination: `${getRandomArrayElement(getDestinations()).id}`,\n dateFrom: '2024-03-20T08:25',\n dateTo: '2024-03-20T08:55',\n basePrice: '40',\n offers: [],\n isFavorite: false,\n }\n];\n\nfunction getRandomPoint() {\n return {\n id: nanoid(),\n ...getRandomArrayElement(mockPoints)\n };\n}\n\nexport {getRandomPoint};\n","const offersMock = [\n {\n type: 'taxi',\n offers: [\n {\n id: 'uber',\n value: 'uber',\n title: 'Order Uber',\n price: '20'\n }\n ]\n },\n {\n type: 'bus',\n offers: []\n },\n {\n type: 'train',\n offers: [\n {\n id: 'train',\n value: 'train',\n title: 'Travel by train',\n price: '40'\n }\n ]\n },\n {\n type: 'ship',\n offers: []\n },\n {\n type: 'drive',\n offers: [\n {\n id: 'rent',\n value: 'rent',\n title: 'Rent a car',\n price: '200'\n }\n ]\n },\n {\n type: 'flight',\n offers: [\n {\n id: 'luggage',\n value: 'luggage',\n title: 'Add luggage',\n price: '30'\n },\n {\n id: 'comfort',\n value: 'comfort',\n title: 'Switch to comfort class',\n price: '100'\n },\n {\n id: 'meal',\n value: 'meal',\n title: 'Add meal',\n price: '15'\n },\n {\n id: 'seats',\n value: 'seats',\n title: 'Choose seats',\n price: '5'\n },\n {\n id: 'train',\n value: 'train',\n title: 'Travel by train',\n price: '40'\n }\n ]\n },\n {\n type: 'check-in',\n offers: [\n {\n id: 'breakfast',\n value: 'breakfast',\n title: 'Add breakfast',\n price: '50'\n }\n ]\n },\n {\n type: 'sightseeing',\n offers: [\n {\n id: 'tickets',\n value: 'tickets',\n title: 'Book tickets',\n price: '40'\n },\n\n ]\n },\n {\n type: 'restaurant',\n offers: [\n {\n id: 'lunch',\n value: 'lunch',\n title: 'Lunch in city',\n price: '30'\n }\n ]\n },\n];\n\n\nfunction getOffers() {\n return offersMock;\n}\n\nexport {getOffers};\n","import { FILTERS_VALUES } from '../const';\nimport {isCompletedPoints, isCurrentPoints, isPlannedPoints} from '../utils/points';\n\nconst filter = {\n [FILTERS_VALUES.EVERYTHING]: (points) => points,\n [FILTERS_VALUES.PAST]: (points) => points.filter((point) => isCompletedPoints(point.dateTo)),\n [FILTERS_VALUES.PRESENT]: (points) => points.filter((point) => isCurrentPoints(point.dateFrom, point.dateTo)),\n [FILTERS_VALUES.FUTURE]: (points) => points.filter((point) => isPlannedPoints(point.dateFrom)),\n};\n\nexport {filter};\n","import FiltersView from './view/filters-view.js';\nimport { render } from './framework/render.js';\nimport BoardPresenter from './presenter/board-presenter.js';\nimport PointsModel from './model/points-model.js';\nimport {generateFilter} from './mock/filter.js';\n\nconst header = document.querySelector('.trip-main');\nconst filtersContainer = header.querySelector('.trip-controls__filters');\nconst main = document.querySelector('.page-main');\nconst mainContainer = main.querySelector('.trip-events');\nconst pointsModel = new PointsModel();\nconst boardPresenter = new BoardPresenter({boardContainer: mainContainer, pointsModel});\nconst filters = generateFilter(pointsModel.points);\n\nrender(new FiltersView({filters}), filtersContainer);\n\nboardPresenter.init();\n","import { getRandomPoint } from '../mock/points';\nimport { getDestinations } from '../mock/destinations';\nimport { getOffers } from '../mock/offers';\n\nconst POINT_COUNT = 4;\n\nexport default class PointsModel {\n #allOffers = getOffers();\n #allDestinations = getDestinations();\n #points = Array.from({length: POINT_COUNT}, getRandomPoint);\n\n get points() {\n return this.#points;\n }\n\n get destinations() {\n return this.#allDestinations;\n }\n\n get offers() {\n return this.#allOffers;\n }\n\n}\n\n","import SortView from '../view/sort-view.js';\nimport ListPointsView from '../view/list-points-view.js';\n// import { RenderPosition } from '../framework/render.js';\nimport {render } from '../framework/render.js';\nimport NoPointView from '../view/no-point-view.js';\nimport PointPresenter from './point-presenter.js';\nimport {updateItem} from '../utils/common.js';\n\n\nexport default class BoardPresenter {\n #boardContainer = null;\n #pointsModel = null;\n #listContainer = new ListPointsView();\n #boardPoints = [];\n #sortComponent = new SortView();\n #noPointComponent = new NoPointView();\n #pointPresenters = new Map();\n\n constructor({boardContainer, pointsModel}) {\n this.#boardContainer = boardContainer;\n this.#pointsModel = pointsModel;\n }\n\n init() {\n this.#boardPoints = [...this.#pointsModel.points];\n this.allOffers = [...this.#pointsModel.offers];\n this.allDestinations = [...this.#pointsModel.destinations];\n this.#renderBoard();\n }\n\n #renderSort() {\n render(this.#sortComponent, this.#boardContainer);\n }\n\n #renderPoint(point, allOffers, allDestinations) {\n const pointPresenter = new PointPresenter({\n pointsListContainer: this.#listContainer.element,\n onDataChange: this.#handlePointChange,\n onModeChange: this.#handleModeChange\n });\n\n pointPresenter.init(point, allOffers, allDestinations);\n this.#pointPresenters.set(point.id, pointPresenter);\n }\n\n #renderPointsList() {\n render(this.#listContainer, this.#boardContainer);\n for (let i = 0; i < this.#boardPoints.length; i++) {\n this.#renderPoint(this.#boardPoints[i], this.allOffers, this.allDestinations);\n }\n }\n\n #renderNoPoint() {\n render(this.#noPointComponent, this.#boardContainer);\n }\n\n #renderBoard() {\n if (this.#boardPoints.length === 0) {\n this.#renderNoPoint();\n return;\n }\n this.#renderSort();\n this.#renderPointsList();\n // render(new FormPointView({allOffers: this.allOffers, allDestinations: this.allDestinations}), this.#listContainer.element, RenderPosition.AFTERBEGIN);\n //оставила что бы использовать для отрисовки при нажатии на кнопку New event\n }\n\n #clearPointsList() {\n this.#pointPresenters.forEach((presenter) => presenter.destroy());\n this.#pointPresenters.clear();\n }\n\n #handleModeChange = () => {\n this.#pointPresenters.forEach((presenter) => presenter.resetView());\n };\n\n\n #handlePointChange = (updatedPoint) => {\n this.#boardPoints = updateItem(this.#boardPoints, updatedPoint);\n this.#pointPresenters.get(updatedPoint.id).init(updatedPoint, this.allOffers, this.allDestinations);\n };\n\n}\n\n\n","import {filter} from '../utils/filter.js';\n\nfunction generateFilter(pointsitem) {\n return Object.entries(filter).map(\n ([filterType, points]) => ({\n type: filterType,\n points: points(pointsitem)\n }),\n );\n}\n\nexport {generateFilter};\n","import AbstractView from '../framework/view/abstract-view.js';\n\nfunction createFilterItemTemplate({type}) {\n return `
      \n \n \n
      `;\n}\n\nfunction createFiltersTemplate(filtersItem) {\n return (\n `
      \n ${filtersItem.map((e)=> createFilterItemTemplate(e)).join('')}\n \n
      `\n );\n}\n\nexport default class FiltersView extends AbstractView{\n #filters = null;\n\n constructor ({filters}) {\n super();\n this.#filters = filters;\n }\n\n get template() {\n return createFiltersTemplate(this.#filters);\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","f","h","c","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","args","arguments","O","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","YY","YYYY","MM","MMM","monthsShort","MMMM","DD","dd","weekdaysMin","ddd","weekdaysShort","dddd","H","HH","hh","A","mm","ss","SSS","Z","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","T","forEach","extend","$i","isDayjs","en","Ls","years","days","hours","minutes","seconds","milliseconds","weeks","$l","negative","parseFromMilliseconds","Object","keys","calMilliseconds","reduce","Y","as","humanize","fromNow","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","duration","isDuration","bind","isSameOrAfter","isSameOrBefore","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","SHAKE_CLASS_NAME","constructor","template","innerHTML","firstElementChild","shake","callback","classList","setTimeout","NO_POINT_MESSAGES","EVERYTHING","PAST","PRESENT","FUTURE","FILTERS_VALUES","SORT_VALUES","getRandomArrayElement","items","random","capitalizeFirstLetter","text","charAt","toUpperCase","SortView","createSortItemTemplate","ListPointsView","NoPointView","super","filterChecked","dayjs","FORMATS","DATE","TIME","FORM","humanizePointDate","PointView","point","allOffers","allDestinations","onEditClick","onFavoriteClick","addEventListener","type","destination","dateFrom","dateTo","basePrice","offers","isFavorite","destinationDefault","find","date1","date2","startDate","endDate","pointDuration","humanizePointDuration","offer","title","price","createOffersTemplate","createPointTemplate","evt","preventDefault","BLANK_POINT","FormPointView","edit","onFormSubmit","isEdit","createTypeItemTemplate","details","offerDefault","value","picture","description","trim","src","createDetailsTemplate","createEventTemplate","Mode","PointPresenter","pointsListContainer","onDataChange","onModeChange","prevPointComponent","prevPointEditComponent","resetView","destroy","removeEventListener","#handleEditClick","#handleFavoriteClick","destinationsMock","getDestinations","nanoid","size","crypto","getRandomValues","Uint8Array","byte","mockPoints","getRandomPoint","offersMock","filter","points","isCompletedPoints","isCurrentPoints","isPlannedPoints","filtersContainer","mainContainer","pointsModel","getOffers","from","destinations","boardPresenter","Map","boardContainer","pointPresenter","presenter","clear","#handleModeChange","updatedPoint","filters","pointsitem","entries","filterType","createFilterItemTemplate"],"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..22728a6 --- /dev/null +++ b/7/index.html @@ -0,0 +1 @@ +Big Trip

      Trip events

      \ No newline at end of file