{"version":3,"sources":["webpack:///./src/assets/data/1/12.jpg","webpack:///./src/assets/data/3/32.jpg","webpack:///./src/assets/images/next_icon.png","webpack:///./src/assets/images/previous_icon.png","webpack:///./src/assets/data/4/25.jpg","webpack:///./src/assets/data/2/23.jpg","webpack:///./src/assets/data/2/10.jpg","webpack:///./src/assets/data/1/15.jpg","webpack:///./src/assets/data/2/1.jpg","webpack:///./src/assets/data/2/25.jpg","webpack:///./src/assets/data/2/21.jpg","webpack:///./src/assets/data/2/8.jpg","webpack:///./src/assets/data/1/20.jpg","webpack:///./src/assets/data/2/33_cn.jpg","webpack:///./src/assets/data/3/9.jpg","webpack:///./src/assets/data/1/28.jpg","webpack:///./src/assets/data/1/14.jpg","webpack:///./src/assets/data/1/27.jpg","webpack:///./src/assets/data/2/12.jpg","webpack:///./src/assets/data/2/27.jpg","webpack:///./src/assets/data/2/6.jpg","webpack:///./src/assets/data/1/9.jpg","webpack:///./src/assets/data/2/2.jpg","webpack:///./src/assets/data/1/24.jpg","webpack:///./src/assets/data/1/25.jpg","webpack:///./src/assets/data/1/6.jpg","webpack:///./src/assets/data/2/9.jpg","webpack:///./src/assets/data/2/17.jpg","webpack:///./src/assets/data/3/zh-hk.js","webpack:///./src/assets/data/4/24_cn.jpg","webpack:///./src/assets/data/2/5.jpg","webpack:///./src/assets/data/4/18.jpg","webpack:///./src/assets/data/1/3.jpg","webpack:///./src/assets/data/3/1.jpg","webpack:///./src/assets/data/1/23.jpg","webpack:///./src/assets/data/4/23_cn.jpg","webpack:///./src/assets/data/1/2.jpg","webpack:///./src/assets/data/2/30.jpg","webpack:///./node_modules/core-js/modules/web.timers.js","webpack:///./src/assets/data/4/10.jpg","webpack:///./src/assets/data/4/16.jpg","webpack:///./src/assets/data/4/23.jpg","webpack:///./src/assets/data/4/21.jpg","webpack:///./src/assets/data/1/21.jpg","webpack:///./src/assets/data/2/14.jpg","webpack:///./src/assets/data/4/1.jpg","webpack:///./src/assets/data/2/4.jpg","webpack:///./src/assets/data sync ^\\.\\/.*\\.js$","webpack:///./src/assets/data/4/en.js","webpack:///./src/assets/data/4/22.jpg","webpack:///./src/assets/data/2/32_cn.jpg","webpack:///./src/assets/data/2/pt.js","webpack:///./src/assets/data/4/12.jpg","webpack:///./src/assets/data/1/10.jpg","webpack:///./src/assets/data/3/19.jpg","webpack:///./src/assets/data/1/22.jpg","webpack:///./src/assets/data/2/3.jpg","webpack:///./src/assets/data/2/29.jpg","webpack:///./src/assets/data/1/16.jpg","webpack:///./src/assets/data/2/24.jpg","webpack:///./src/components/SideBar.vue?8bb3","webpack:///./src/assets/data/4/24.jpg","webpack:///./src/assets/data/2/18.jpg","webpack:///./src/assets/data/3/en.js","webpack:///./src/assets/data/1/zh-hk.js","webpack:///./src/assets/data/4/9.jpg","webpack:///./src/assets/data/4/14.jpg","webpack:///./src/assets/data/4/19.jpg","webpack:///./src/assets/data/2/16.jpg","webpack:///./src/assets/data/3/pt.js","webpack:///./src/assets/data/4/4.jpg","webpack:///./src/assets/data/1/pt.js","webpack:///./src/assets/data/1/34.jpg","webpack:///./src/assets/data/2/7.jpg","webpack:///./src/assets/data/1/zh-cn.js","webpack:///./src/assets/data/4/17.jpg","webpack:///./src/assets/data/4/3.jpg","webpack:///./src/views/column/index.vue?9dfa","webpack:///./src/assets/data/4/6.jpg","webpack:///./src/assets/data/2/11.jpg","webpack:///./src/assets/data/2/en.js","webpack:///./src/components/IntroducePop.vue?e706","webpack:///./src/assets/data/2/28.jpg","webpack:///./src/assets/data/4/13.jpg","webpack:///./src/assets/data/4/7.jpg","webpack:///./src/assets/data/2/31.jpg","webpack:///./src/assets/data/2/22.jpg","webpack:///./src/assets/data/1/26.jpg","webpack:///./src/assets/data/1/35.jpg","webpack:///./src/views/column/index.vue?616a","webpack:///./src/components/SideBar.vue?2749","webpack:///./node_modules/vant/es/mixins/popup/context.js","webpack:///./node_modules/vant/es/utils/dom/event.js","webpack:///./node_modules/vant/es/overlay/index.js","webpack:///./node_modules/vant/es/utils/dom/node.js","webpack:///./node_modules/vant/es/mixins/popup/overlay.js","webpack:///./node_modules/vant/es/utils/dom/scroll.js","webpack:///./node_modules/vant/es/mixins/touch.js","webpack:///./node_modules/vant/es/mixins/portal.js","webpack:///./node_modules/vant/es/mixins/bind-event.js","webpack:///./node_modules/vant/es/mixins/close-on-popstate.js","webpack:///./node_modules/vant/es/mixins/popup/index.js","webpack:///./node_modules/vant/es/popup/index.js","webpack:///src/components/SideBar.vue","webpack:///./src/components/SideBar.vue?9943","webpack:///./src/components/SideBar.vue","webpack:///./src/components/IntroducePop.vue?3f80","webpack:///src/components/IntroducePop.vue","webpack:///./src/components/IntroducePop.vue?4b32","webpack:///./src/components/IntroducePop.vue","webpack:///./src/components/InfoPop.vue?ed9c","webpack:///./node_modules/vant/es/loading/index.js","webpack:///src/components/InfoPop.vue","webpack:///./src/components/InfoPop.vue?9782","webpack:///./src/components/InfoPop.vue","webpack:///./node_modules/ssr-window/dist/ssr-window.esm.js","webpack:///./node_modules/dom7/dist/dom7.modular.js","webpack:///./node_modules/swiper/js/swiper.esm.bundle.js","webpack:///src/views/column/index.vue","webpack:///./src/views/column/index.vue?ba9c","webpack:///./src/views/column/index.vue","webpack:///./src/assets/data/4/8.jpg","webpack:///./src/components/InfoPop.vue?3772","webpack:///./src/assets/data/1/31.jpg","webpack:///./src/assets/data/2/zh-hk.js","webpack:///./src/assets/data/4/5.jpg","webpack:///./src/assets/data/2/zh-cn.js","webpack:///./src/assets/data/4/pt.js","webpack:///./src/assets/data/1/4.jpg","webpack:///./src/assets/data/1/18.jpg","webpack:///./src/assets/data/4/11.jpg","webpack:///./src/assets/data/2/26.jpg","webpack:///./src/assets/data/1/17.jpg","webpack:///./src/assets/data/1/11.jpg","webpack:///./src/assets/data/1/29.jpg","webpack:///./src/assets/data/3/14.jpg","webpack:///./src/assets/data/4/25_cn.jpg","webpack:///./src/assets/images/sidebar_sel.png","webpack:///./src/assets/data/3/zh-cn.js","webpack:///./src/assets/data/1/32.jpg","webpack:///./src/assets/data/2/15.jpg","webpack:///./src/assets/data/3/23.jpg","webpack:///./src/assets/data/1/5.jpg","webpack:///./src/assets/data/1/7.jpg","webpack:///./src/assets/data/2/19.jpg","webpack:///./src/assets/data/1/19.jpg","webpack:///./src/assets/data/2/33.jpg","webpack:///./src/assets/data/4/15.jpg","webpack:///./src/assets/data/1/8.jpg","webpack:///./src/assets/data/1/1.jpg","webpack:///./src/assets/data/4/zh-cn.js","webpack:///./src/assets/data/2/20.jpg","webpack:///./src/assets/data/4/26.jpg","webpack:///./src/assets/data/2/32.jpg","webpack:///./src/assets/data/1/30.jpg","webpack:///./src/assets/data/1/en.js","webpack:///./src/assets/data/1/33.jpg","webpack:///./src/assets/data/4/20.jpg","webpack:///./src/assets/data/4/2.jpg","webpack:///./src/assets/data/1/13.jpg","webpack:///./src/assets/data/2/31_cn.jpg","webpack:///./src/assets/data/4/zh-hk.js","webpack:///./src/assets/data/2/13.jpg","webpack:///./src/assets/data sync ^\\.\\/.*$"],"names":["module","exports","info","title","desc","list","id","pic","align","text","$","global","userAgent","slice","MSIE","test","wrap","scheduler","handler","timeout","boundArgs","arguments","length","args","call","undefined","Function","apply","this","bind","forced","setTimeout","setInterval","map","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","hidden","_vm","_h","$createElement","_c","_self","staticClass","attrs","$t","ref","_l","item","index","key","type","domProps","_s","_v","staticRenderFns","class","sel","classifyType","on","$event","changeSidebar","_e","zIndex","lockCount","stack","find","vm","filter","defineProperty","get","window","addEventListener","target","event","passive","capture","off","removeEventListener","stopPropagation","isStopPropagation","cancelable","preventDefault","_createNamespace","create","createComponent","bem","preventTouchMove","Overlay","h","props","slots","ctx","style","customStyle","duration","animationDuration","name","value","show","className","lockScroll","default","Boolean","Number","String","removeNode","el","parent","parentNode","removeChild","defaultConfig","mountOverlay","click","$emit","closeOnClickOverlay","onClickOverlay","close","updateOverlay","$el","config","overlay","insertBefore","openOverlay","push","closeOverlay","removeOverlay","overflowScrollReg","getScroller","root","node","tagName","nodeType","_window$getComputedSt","getComputedStyle","overflowY","MIN_DISTANCE","getDirection","x","y","TouchMixin","data","direction","methods","touchStart","resetTouchStatus","startX","touches","clientX","startY","clientY","touchMove","touch","deltaX","deltaY","offsetX","Math","abs","offsetY","bindTouchEvent","onTouchStart","onTouchMove","onTouchEnd","getElement","selector","document","querySelector","PortalMixin","_temp","_ref","afterPortal","getContainer","watch","mounted","portal","container","$refs","$parent","appendChild","uid","BindEventMixin","unbind","activated","deactivated","beforeDestroy","CloseOnPopstateMixin","mixins","isBind","handlePopstate","closeOnPopstate","bindStatus","val","onPopstate","shouldReopen","$isServer","action","popupMixinProps","transitionAppear","overlayStyle","overlayClass","lazyRender","PopupMixin","options","inited","computed","shouldRender","skipToggleEvent","open","opened","removeLock","renderOverlay","addLock","body","classList","add","remove","scrollHeight","offsetHeight","scrollTop","status","parseInt","_this","$nextTick","updateZIndex","round","closeable","transition","safeAreaInsetBottom","closeIcon","closeIconPosition","position","beforeCreate","createEmitter","eventName","onClick","onOpened","onClosed","onClickCloseIcon","render","_bem","isCenter","transitionName","components","lang","localStorage","getItem","classify","$route","params","initClassify","changeLang","setItem","$i18n","locale","$router","component","width","height","model","callback","$$v","showPop","expression","directives","rawName","imagePreview","staticStyle","loadImage","LoadingIcon","Spin","i","LoadingText","_props$textColor","fontSize","textSize","color","textColor","Loading","size","iconSize","vertical","loading","getInfo","$viewerApi","images","url","isObject","obj","constructor","extend","src","forEach","doc","ssrDocument","activeElement","blur","nodeName","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","win","ssrWindow","navigator","history","replaceState","pushState","go","back","CustomEvent","getPropertyValue","Image","Date","screen","clearTimeout","matchMedia","Dom7","arr","self","context","els","tempParent","html","trim","indexOf","toCreate","innerHTML","match","split","unique","uniqueArray","addClass","classes","j","removeClass","hasClass","contains","toggleClass","toggle","attr","getAttribute","attrName","removeAttr","removeAttribute","dom7ElementDataStorage","dataKey","transform","elStyle","webkitTransform","webkitTransitionDuration","transitionDuration","eventType","targetSelector","listener","handleLiveEvent","eventData","dom7EventData","unshift","is","parents","k","handleEvent","events","dom7LiveListeners","proxyListener","dom7Listeners","handlers","dom7proxy","splice","trigger","evt","detail","bubbles","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","includeMargins","styles","offsetWidth","parseFloat","box","getBoundingClientRect","clientTop","clientLeft","scrollY","scrollLeft","scrollX","top","left","css","prop","each","matchedItems","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","prepend","next","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","closest","foundElements","found","toAdd","fn","prototype","Class","Methods","outerWidth","outerHeight","offset","methodName","Utils","object","delay","now","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","toString","m41","m42","query","param","urlToParse","paramsPart","decodeURIComponent","to","nextSource","keysArray","nextIndex","len","nextKey","getOwnPropertyDescriptor","enumerable","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","passiveListener","supportsPassive","opts","gestures","SwiperClass","eventsListeners","priority","method","onceHandler","f7proxy","eventHandler","Array","isArray","eventsArray","instanceParams","instance","modules","moduleName","modulesParams","moduleParams","modulePropName","moduleProp","moduleEventName","use","proto","static","install","m","installModule","updateSize","swiper","clientWidth","clientHeight","isHorizontal","isVertical","updateSlides","$wrapperEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","slidesForMargin","slideIndex","cssMode","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","slidesNumberEvenToRows","slideSize","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginTop","marginRight","marginBottom","slidesPerColumn","floor","ceil","slidesPerView","slidesPerColumnFill","max","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","slidesPerGroup","groupIndex","slideIndexInGroup","columnsInGroup","min","order","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","paddingTop","paddingBottom","swiperSlideSize","centeredSlides","slidesPerGroupSkip","newSlidesGrid","effect","setWrapperSize","slidesGridItem","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","emit","watchOverflow","checkOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","speed","activeSlides","newHeight","setTransition","visibleSlides","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","translate","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideProgress","minTranslate","autoHeight","slideBefore","slideAfter","isVisible","progress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","updateSlidesClasses","realIndex","activeSlide","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","loop","slideDuplicateClass","nextSlide","prevSlide","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","update","getTranslate","virtualTranslate","currentTranslate","setTranslate","byController","wrapperEl","z","newProgress","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","scrollTo","behavior","onTranslateToWrapperTransitionEnd","destroyed","transitionStart","dir","slideTo","initialSlide","allowSlideNext","allowSlidePrev","t","scrollWidth","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","slideNext","increment","loopFix","_clientLeft","slidePrev","normalize","normalizedTranslate","normalizedSnapGrid","prevIndex","prevSnap","slideReset","slideToClosest","threshold","currentSnap","nextSnap","slidesPerViewDynamic","slideToIndex","nextTick","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","snapTranslate","diff","slideChanged","loopDestroy","setGrabCursor","moving","simulateTouch","isLocked","cursor","unsetGrabCursor","grabCursor","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","manipulation","platform","ua","device","ios","android","androidChrome","desktop","iphone","ipod","ipad","edge","ie","firefox","macos","windows","cordova","phonegap","electron","screenWidth","screenHeight","toLowerCase","os","osVersion","webView","standalone","webview","pixelRatio","devicePixelRatio","touchEventsData","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","which","button","isTouched","isMoved","noSwiping","noSwipingSelector","noSwipingClass","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","formElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","touchAngle","atan2","PI","touchMoveStopPropagation","nested","startTranslate","allowMomentumBounce","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","velocities","time","touchEndTime","timeDiff","lastClickTime","currentPos","freeModeMomentum","lastMoveEvent","pop","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","doBounce","bounceAmount","freeModeMomentumBounceRatio","needsLoopFix","freeModeMomentumBounce","freeModeSticky","once","moveDistance","currentSlideSize","longSwipesMs","stopIndex","groupSize","ratio","longSwipes","longSwipesRatio","shortSwipes","isNavButtonTarget","navigation","nextEl","prevEl","onResize","breakpoints","setBreakpoint","autoplay","running","paused","run","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","dummyEventAttached","dummyEventListener","attachEvents","touchEvents","start","move","end","passiveListeners","cancel","updateOnWindowResize","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","containerModifierClass","directionChanged","needsReLoop","changeDirection","points","point","minRatio","substr","innerHeight","sort","b","innerWidth","addClasses","classNames","suffixes","suffix","removeClasses","imageEl","srcset","sizes","checkForComplete","image","onReady","isPicture","complete","onload","onerror","preloadImages","imagesLoaded","imagesToLoad","updateOnImagesReady","currentSrc","wasLocked","lastSlidePosition","checkOverflow$1","defaults","init","uniqueNavElements","wrapperClass","prototypes","extendedDefaults","super","prototypeGroup","protoMethod","moduleParamName","swiperParams","useModulesParams","passedParams","swipers","containerEl","newParams","shadowRoot","touchEventsTouch","touchEventsDesktop","clickTimeout","useModules","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","slideEl","deleteInstance","cleanStyles","deleteProps","newDefaults","Device$1","Support$1","support","isSafari","isEdge","isWebView","Browser$1","browser","Resize","resize","resizeHandler","orientationChangeHandler","Observer","func","MutationObserver","WebkitMutationObserver","ObserverFunc","mutations","observerUpdate","requestAnimationFrame","observe","attributes","childList","characterData","observers","observeParents","containerParents","attach","observeSlideChildren","disconnect","Observer$1","destroy","Virtual","force","addSlidesBefore","addSlidesAfter","from","previousFrom","previousTo","previousSlidesGrid","renderSlide","previousOffset","offsetProp","slidesAfter","slidesBefore","onRendered","lazy","load","renderExternal","slidesToRender","prependIndexes","appendIndexes","cache","$slideEl","numberOfNewSlides","newCache","cachedIndex","$cachedEl","cachedElIndex","Virtual$1","overwriteParams","Keyboard","kc","keyCode","charCode","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","onlyInViewport","inView","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","handle","Keyboard$1","enable","disable","isEventSupported","isSupported","element","implementation","hasFeature","Mousewheel","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaMode","spinX","spinY","pixelX","pixelY","mouseEntered","mousewheel","eventsTarged","releaseOnEdges","delta","rtlFactor","forceToAxis","invert","newEvent","sign","ignoreWheelEvents","sensitivity","shift","prevEvent","firstEvent","snapToThreshold","autoplayDisableOnInteraction","stop","raw","animateSlider","releaseScroll","getTime","handleMouseEnter","handleMouseLeave","Mousewheel$1","Navigation","$nextEl","$prevEl","disabledClass","lockClass","onNextClick","onPrevClick","Navigation$1","hideOnClick","hiddenClass","isHidden","Pagination","pagination","current","total","paginationType","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","scaleX","scaleY","progressbarFillClass","renderCustom","paginationHTML","numberOfBullets","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","clickable","clickableClass","modifierClass","progressbarOppositeClass","Pagination$1","number","Scrollbar","scrollbar","dragSize","trackSize","$dragEl","newSize","newPos","hide","opacity","divider","moveDivider","display","dragStartPos","positionRatio","getPointerPosition","setDragPosition","dragTimeout","snapOnRelease","activeListener","onDragStart","onDragMove","onDragEnd","$swiperEl","dragClass","dragEl","draggable","enableDraggable","disableDraggable","Scrollbar$1","Parallax","p","currentOpacity","currentScale","parallax","setTransform","parallaxEl","$parallaxEl","parallaxDuration","Parallax$1","Zoom","x1","y1","x2","y2","zoom","gesture","fakeGestureTouched","fakeGestureMoved","scaleStart","getDistanceBetweenTouches","$imageEl","$imageWrapEl","containerClass","maxRatio","isScaling","scaleMove","touchesStart","slideWidth","slideHeight","scaledWidth","scaledHeight","minX","maxX","minY","maxY","touchesCurrent","prevPositionX","prevPositionY","prevTime","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","out","in","touchX","touchY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","zoomedSlideClass","activeListenerWithCapture","slideSelector","onGestureStart","onGestureChange","onGestureEnd","Zoom$1","onTransitionEnd","Lazy","loadInDuplicate","$images","elementClass","loadedClass","loadingClass","imageIndex","background","$pictureEl","sourceIndex","sourceEl","$source","preloaderClass","slideOriginalIndex","originalSlide","loadInSlide","duplicatedSlide","slideExist","initialImageLoaded","elIndex","loadPrevNext","loadPrevNextAmount","amount","maxIndex","minIndex","Lazy$1","loadOnTransitionStart","Controller","LinearSpline","binarySearch","guess","array","i1","i3","interpolate","c","controller","spline","controlled","control","controlledTranslate","setControlledTranslate","by","getInterpolateFunction","inverse","setControlledTransition","Controller$1","a11y","role","label","notify","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","message","notification","liveRegion","disableEl","makeElNotFocusable","enableEl","makeElFocusable","bulletEl","$bulletEl","addElRole","addElLabel","paginationBulletMessage","onEnterKey","A11y","notificationClass","updateNavigation","updatePagination","History","hashNavigation","paths","getPathValues","scrollToSlide","setHistoryPopState","pathArray","part","slugify","includes","currentState","state","slideHistory","History$1","setHistory","HashNavigation","newHash","activeSlideHash","slideHash","watchState","onHashCange","HashNavigation$1","setHash","Autoplay","$activeSlideEl","reverseDirection","stopOnLastSlide","waitForTransition","Autoplay$1","disableOnInteraction","pause","visibilityState","onVisibilityChange","Fade","tx","ty","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","EffectFade","Cube","swiperWidth","swiperHeight","cubeEffect","$cubeShadowEl","wrapperRotate","shadow","slideAngle","tz","slideShadows","shadowBefore","shadowAfter","shadowOffset","shadowScale","shadowAngle","sin","cos","scale1","scale2","zFactor","EffectCube","Flip","flipEffect","limitRotation","rotate","rotateY","rotateX","EffectFlip","Coverflow","coverflowEffect","center","depth","slideOffset","offsetMultiplier","modifier","translateZ","stretch","slideTransform","$shadowBeforeEl","$shadowAfterEl","prefixedPointerEvents","ws","perspectiveOrigin","EffectCoverflow","Thumbs","thumbs","thumbsParams","swiperCreated","thumbsContainerClass","onThumbClick","thumbsSwiper","slideThumbActiveClass","currentIndex","initial","autoScrollOffset","useOffset","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","multipleActiveThumbs","Thumbs$1","SideBar","IntroducePop","InfoPop","NavBar","currentSwiper","beforeRouteEnter","path","introducePop","reload","initData","initSwiper","clickSwipe","infoPop"],"mappings":"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KAAM,uHAOND,MAAO,SACPqC,QAAQ,EACRzC,KAAM,CACJ,uCACA,QACA,QACA,QACA,a,qBCtTRJ,EAAOC,QAAU,IAA0B,uB,qBCA3C,IAAIgC,EAAM,CACT,YAAa,OACb,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,YAAa,OACb,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,YAAa,OACb,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,YAAa,OACb,YAAa,OACb,YAAa,OACb,YAAa,OACb,YAAa,OACb,YAAa,OACb,SAAU,OACV,YAAa,OACb,SAAU,OACV,YAAa,OACb,YAAa,OACb,eAAgB,OAChB,YAAa,OACb,eAAgB,OAChB,YAAa,OACb,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,YAAa,OACb,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,YAAa,OACb,aAAc,OACd,aAAc,OACd,gBAAiB,OACjB,aAAc,OACd,gBAAiB,OACjB,aAAc,OACd,gBAAiB,OACjB,YAAa,OACb,YAAa,OACb,YAAa,OACb,YAAa,OACb,YAAa,OACb,YAAa,OACb,SAAU,OACV,YAAa,OACb,SAAU,OACV,YAAa,OACb,YAAa,OACb,eAAgB,OAChB,YAAa,OACb,eAAgB,OAChB,YAAa,OACb,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,YAAa,OACb,SAAU,OACV,YAAa,OACb,SAAU,OACV,YAAa,OACb,YAAa,OACb,eAAgB,OAChB,YAAa,OACb,eAAgB,OAChB,YAAa,OACb,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,YAAa,OACb,aAAc,OACd,aAAc,OACd,aAAc,OACd,aAAc,OACd,gBAAiB,OACjB,aAAc,OACd,gBAAiB,OACjB,aAAc,OACd,gBAAiB,OACjB,aAAc,QACd,YAAa,OACb,YAAa,OACb,YAAa,OACb,YAAa,OACb,YAAa,OACb,YAAa,OACb,YAAa,OACb,SAAU,OACV,YAAa,OACb,SAAU,OACV,YAAa,OACb,YAAa,OACb,eAAgB,OAChB,YAAa,OACb,eAAgB,QAIjB,SAASC,EAAeC,GACvB,IAAI7B,EAAK8B,EAAsBD,GAC/B,OAAOE,EAAoB/B,GAE5B,SAAS8B,EAAsBD,GAC9B,IAAIE,EAAoBC,EAAEL,EAAKE,GAAM,CACpC,IAAII,EAAI,IAAIC,MAAM,uBAAyBL,EAAM,KAEjD,MADAI,EAAEE,KAAO,mBACHF,EAEP,OAAON,EAAIE,GAEZD,EAAeQ,KAAO,WACrB,OAAOC,OAAOD,KAAKT,IAEpBC,EAAeU,QAAUR,EACzBpC,EAAOC,QAAUiC,EACjBA,EAAe5B,GAAK","file":"js/column.1697170575961.js","sourcesContent":["module.exports = __webpack_public_path__ + \"img/12.3401f01c.jpg\";","module.exports = __webpack_public_path__ + \"img/32.a9300849.jpg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAMAAABiM0N1AAAAAXNSR0IArs4c6QAAASBQTFRFAAAAv4CA27aSv5+A0bmLv6qAv6qVzLuZv6+PxbaSv7GOxLeQv7OTw7OSw7iSybOSybiSw7SRw7WQw7WUxraSxrOUxreUxrSTxbSSxLSTxrSTxreTxLWSxrWSxrWVxrWTxbSSxbSUxbaSxbaUxbWSxbWUxLWRxLWTxbSTxbaTxbSSxbSUxbWSxbWTxLSSxLWSxLSSxLSTxLWSxrSTxrWTxLSSxLaTxrSTxraTxLSSxbSSxLWSxbWTxLSTxLWTxbSTxbWTxbWSxbWSxLSTxLWTxLSTxLWTxbWTxbWTyLmZybubyrydzL6gz8Kn0MOp0cSq0sWs0sas08eu1Miw1cqx1suz6+bb7Ofd7ejf7urg7+vi8e7l+/r4/Pv6/fz7////voNQEgAAAEh0Uk5TAAQHCAsMDA8QIyQnKC8vLy8zNzc/Q0NHS2NjY2dnZ293d3d3g4OHh6enq6uvr7e3u7u7u7u/v7+/w8PHx8/Pz8/f4+fn8/f30tNCSQAAAf5JREFUWMPtmGlTwkAMhqm1iAooUqSe9UBREMRb8QRLifd9H/z/f+E44zjTbXY3u+gXx/frZp7pJmn6ppHIv/6govGUbad7ou0wzOzMUh2+5JXzGVOHYjglHxg1io4qKzZdA1Seq4IyRjzgyhs3qJz+HRBqv4/GcZsgUdOllKoIBM1JMxXdBJJWJI0VrQJRVSHJXAWyNkS3mwcFFQT1AiVxa9ffVAM1E5x+PgBF7eA9Pg7KGkYr5qmDvBg50zcvTxcC0iT1gU7eW623Sz6oFs6SgwbetlpikhMCFdC4o1cJqRS6WQMPvHoTk/wOBjTIi5SRsgwoD5qkHANaBE1ShQGJulFIqjMDTdjAQlJnANQD2qTeACgNJNI5cpQKgGwgke6RE1sH9CAFpWhXO0OO0gFQXD/Z3QGQpV9+K9hIdV3OIdPZy7qvSJkB5XRf2jwDyuqOkQw72Hw9TiPkAEpo3LGEgxgAfPjfqQ9/A7Wxp5LPkYd4myk08vr58VzRkMR0Ptmo2RpWB43itmZblbPLse5JX43jJ37b+vEMAM+0i+zxOp1TMX/GsG9ZEuu/TOOsWdKlhmTaC5T1z5V2ge/SFrbknpiznSSvomOiVXSIvIp+ZsrloGoTXapLv1MI2Up/wTEiGjIHZ8uH34aqkst2tPM7wuoesO1Ub+f/z52/qA96bQJ2Lt2cuQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAMAAABiM0N1AAAAAXNSR0IArs4c6QAAASlQTFRFAAAAv4CA27aSv5+A0bmLv6qAv6qVzLuZv6+PxbaSv7GOxLeQv7OTw7OSw7iSybOSybiSw7SRw7WQw7WUxraSxrOUxreUxrSTxbSSxLSTxrSTxreTxLWSxrWSxrWVxrWTxbSSxbSUxbaSxbaUxbWSxbWUxLWRxLWTxbSTxbaTxbSSxbSUxbWSxbWTxLSSxLWSxLSSxLSTxLWSxrSTxrWTxLSSxLaTxrSTxraTxLSSxbSSxLWSxbWTxLSTxLWTxbSTxbWTxbWSxbWSxLSTxLWTxLSTxLWTxbWTxbWTxraUxreWyLmZyrudzL6gz8Gl0MKn0MSp0cSp0cWq0sWs0sas1Miv1cmx6OLU6uTY6+bb7ejd7urg8e3l+Pbz+fj0+/r4/Pv6/fz7////ZhavNwAAAEh0Uk5TAAQHCAsMDA8QIyQnKC8vLy8zNzc/Q0NHS2NjY2dnZ293d3d3g4OHh6enq6uvr7e3u7u7u7u/v7+/w8PHx8/Pz8/f4+fn8/f30tNCSQAAAfxJREFUWMPtmGlTwkAMhqm1iBeKFKlnPVAUBPFW8AJKifd93/z/H+E44zjT7XY3G/ULw/s1O890kzR901CopSZUuCdmmvGu8G8YenJmqQLfcvLphE6haFbOBUa1rKXKikyXgSvHVkFpIw4EyhnXsJz+bRBqrw/HsesgUd3GlCoLCM1JMxXeBJRWJI0VLgJSRSFJXwW0NkS3mwcFZQT1AiUF1q6/rgaq9wb08z4oapvf4+OgrGFuxRx1kBNRzPTF/d0JNzCp9kDX743GywEvUvZnyRJzGo1TbszygTISzushN5jz3awm5rxf8aNuGwMapHEAkgwoTeRAigEtEjlQYEAOkQMVZqBROQDtHlAXmQPdHlCcc+IMxYGYB2RyTjyiOGBKQQ8UUIxz4hx3tbgH1ENPdqcHZNDLb3gbqUIlVZnOXqa+InkGlKK+tGkGlKSOkQQ72FwaqeZzADnJqH07QhoA6fC/RQ5/rSwmfRxzv5AcbzMlaJbLp+cbtCGJUD7ZXLM1rA4a5duakipnJ8C6R101jtv739ZPZAB4pl1kj9fxnIL+N4Z9y5BY/2UcZ82QLjUo057BrH+2tAtcG7ewRXfFnFIUvYqOiVbRIfQq+pUpOwBVnuhQXfqtjM9WuguWFiJIH5zNV38MVSGVbPvN7wijc8A0Y93trZ87zahPT7MEhEYWkH4AAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/25.a8f56eef.jpg\";","module.exports = __webpack_public_path__ + \"img/23.b43a869e.jpg\";","module.exports = __webpack_public_path__ + \"img/10.063f0ce8.jpg\";","module.exports = __webpack_public_path__ + \"img/15.1e999c58.jpg\";","module.exports = __webpack_public_path__ + \"img/1.70daa547.jpg\";","module.exports = __webpack_public_path__ + \"img/25.a0cc890c.jpg\";","module.exports = __webpack_public_path__ + \"img/21.93f3b7dd.jpg\";","module.exports = __webpack_public_path__ + \"img/8.3fc6f112.jpg\";","module.exports = __webpack_public_path__ + \"img/20.e2278d51.jpg\";","module.exports = __webpack_public_path__ + \"img/33_cn.0018778c.jpg\";","module.exports = __webpack_public_path__ + \"img/9.3836e0b6.jpg\";","module.exports = __webpack_public_path__ + \"img/28.57f811f0.jpg\";","module.exports = __webpack_public_path__ + \"img/14.cd93432c.jpg\";","module.exports = __webpack_public_path__ + \"img/27.91b1558a.jpg\";","module.exports = __webpack_public_path__ + \"img/12.a26e287a.jpg\";","module.exports = __webpack_public_path__ + \"img/27.74922381.jpg\";","module.exports = __webpack_public_path__ + \"img/6.077bddfa.jpg\";","module.exports = __webpack_public_path__ + \"img/9.04e9d0c5.jpg\";","module.exports = __webpack_public_path__ + \"img/2.ca8f267d.jpg\";","module.exports = __webpack_public_path__ + \"img/24.2b0e5742.jpg\";","module.exports = __webpack_public_path__ + \"img/25.a855460e.jpg\";","module.exports = __webpack_public_path__ + \"img/6.3ba70a1c.jpg\";","module.exports = __webpack_public_path__ + \"img/9.77c2c54c.jpg\";","module.exports = __webpack_public_path__ + \"img/17.587a8309.jpg\";","export default {\r\n info: {\r\n title: '筆下浮生',\r\n desc: '飛歷奇擅長描寫上世紀早期澳門中葡人民的生活和社會民生風貌。他筆下的澳門,展現無限的中西風情和田園牧歌般的浪漫,彷如一幅幅澳門“浮世繪”,引領讀者神遊於昔日的各處街巷,觀照世間萬物滄桑。念茲在茲,畢生追求民族共融的他,在作品中細說一個個跨種族的愛情故事;熱愛美食的他,更巧借自身的經歷和各個人物的故事,為我們奉上豐盛無比又變化萬千的土生葡菜;還有那些年的土生葡人種種的生活方式和宗教盛事一一盡在他筆下呈現。在欣賞過飛歷奇姿彩紛陳的澳門“浮世繪”後,我們必將體會到,浮生若夢,深愛澳門者,非“澳門之子”飛歷奇莫屬!'\r\n },\r\n list: [\r\n {\r\n id: 1,\r\n pic: '1.jpg',\r\n align: 'center',\r\n desc: [\r\n '“不同種族的血液',\r\n '在我的身體內奔流',\r\n '彙成遼闊的海灣',\r\n '我和每一朵浪花握手',\r\n '我和所有的魚一起潛遊',\r\n '雲沒有邊界',\r\n '但我知道它的方向”',\r\n '――姚風',\r\n '(詩歌及照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 2,\r\n text: '“居住在雀仔園這塊小天地裏的衹有幾千人,且都是窮人。他們確確實實有一些地痞流氓,但大部份都規規矩矩、樸實善良,為糊口而艱辛勞做。那裏的男人都是些工人、菜販、木匠、信差、人力車伕、流動攤販、板車伕等。女人則大部份當傭人、織布女、掃地工、梳頭婦、洗衣女、擔水妹等。從總體上看,他們從事的都是低賤的職業,很少有人能當上業主老闆。……像所有其它公用水井一樣,那裏的井臺旁從早到晚總是聚集着挑着水桶來打水的婦人們。那裏也自然成了社交地點。人們在那裏交談、閑聊、說長道短、打聽新聞、散佈讒言。”(《大辮子的誘惑》1996, 3-4)',\r\n align: 'center',\r\n desc: [\r\n '街區風貌――雀仔園',\r\n '1930-1940年代'\r\n ]\r\n },\r\n {\r\n id: 3,\r\n text: '“……靜悄悄的白鴿巢前地籠罩着一片炎熱。老人們三三兩兩地坐在一張張綠色長椅上,沐浴着落日的餘暉。一個姑娘從阿多森杜家老房子的一個窗口伸出腦袋,朝街上張望。另一邊,大門緊閉的嘉諾撒修道院沉浸在一片寂靜之中,沒有一絲歡樂的氣氛。周圍不時響起湯麵攤的叫賣聲,二胡和琵琶的彈奏聲;遠處響起嘩啦嘩啦的麻將牌的聲音,從沙欄仔街還傳來一陣陣鞭炮聲。詩人公園綠樹成蔭、枝葉茂盛的樹冠上閃爍着金色的光輝,一群群鳥兒在金合歡樹的枝頭嘰嘰喳喳地蹦來跳去。”(《大辮子的誘惑》1996, 211)',\r\n align: 'center',\r\n desc: [\r\n '街區風貌――白鴿巢前地',\r\n '1930-1940年代'\r\n ]\r\n },\r\n {\r\n id: 4,\r\n text: '“……即使在那個時間裏,營地街上還是人來人往,熙熙攘攘,正是街市繁忙的時候。小販們佔着人行道與商店爭着生意。他們的攤子上有各式各樣的商品,如雜貨、裝飾品、小五金製品、其中大部分是假的工藝品以及各種用處的陶瓷製品等。到處飄溢着中草藥、粥麵、熱點心以及酸甜的或蘸有各種調料的小菜的氣味。人們高聲交談、討價還價,有買有賣。車伕們高叫着,行人們不得不讓出空道供人力車穿梭來往。叫花子們在乞討,骯髒的孩子們在追逐,一些不耐煩的母親把自己的孩子弄得大聲哭叫着。汽車響着喇叭駛進,自行車響着鈴聲互相讓道。這就是巴薩爾(市集)永遠繁忙、從不停息的熱鬧景象。”(《大辮子的誘惑》1996, 192)',\r\n align: 'center',\r\n desc: [\r\n '街區風貌――營地街',\r\n '1930-1940年代'\r\n ]\r\n },\r\n {\r\n id: 5,\r\n text: '“他們來到草堆街頭上的小廣場。這裏也像剛才走過的街市一樣,推着車的或搭着篷的小販們擋住了街道兩旁的商店,也是一派生意繁忙的景象。這裏也到處飄着同樣的氣味,響着類似的叫賣聲、說話聲、人力車伕的喊叫聲、車輪嘎吱嘎吱的轉動聲,也是亂哄哄一片。一個理髮師正指着椅子拉着生意。一位老牙醫正在給一個不幸的男人鑽着牙齒,痛得這男人哇哇亂叫,不得不由另一個壯漢子抱住他的雙臂。說書人已經引來了聽眾,開始繪聲繪色地講述着一位英雄人物的故事。”(《大辮子的誘惑》1996, 193)',\r\n align: 'center',\r\n desc: [\r\n '街區風貌――草堆街',\r\n '1930-1940年代'\r\n ]\r\n },\r\n {\r\n id: 6,\r\n text: '“……有誰在離這兒不遠的亞婆井的大樹下唱着什麽。那是一群年輕人正冒着寒冷伴着八弦琴和六弦琴高唱着時髦的葡萄牙和英國歌曲,還有法國民歌。音調標準,伴奏優美。或許這位男高音正用温柔的歌喉向在某處的一位姑娘表達熾熱的愛情。一陣間歇後,還是這位歌手悠揚地唱起了澳門土生的一首老歌:‘卡特利娜,我的卡特利娜;卡特利娜,你完全佔有了我的心;卡特利娜,不要憂愁不要悲傷;你很快就要當上伯爵夫人。’”(《愛情與小腳趾》1994, 352)',\r\n align: 'center',\r\n desc: [\r\n '街區風貌――亞婆井',\r\n '20世紀早期'\r\n ]\r\n },\r\n {\r\n id: 7,\r\n text: '“……大街上,一頂頂轎子和一輛輛人力車在陽光下或樹蔭下交錯穿梭;海灣平靜閃爍的水面上,中國帆船和三桅船彷彿在休息。在一堵花崗岩石頭矮牆上,一位梳頭婦女正蹲在樹蔭下,把刨花油塗在一個漁家姑娘的粗辮上。她已經為姑娘扯掉了額頭上的細絨毛,這是人們為了美麗而默默忍受的一種痛苦的手術。近處,一個賣小吃的小販正高聲誇耀着他的酸味小吃;遠處一位拾破爛的男人正敲打着鐵皮罐;磨刀人則在那原始的磨刀石上使勁地來回磨着一把菜刀。”(《愛情與小腳趾》1994, 388)',\r\n align: 'center',\r\n desc: [\r\n '街區風貌――南灣(1)',\r\n '20世紀早期'\r\n ]\r\n },\r\n {\r\n id: 8,\r\n text: '“灣仔島後面的斜陽照得南灣海灘一片金黃。近處,漲潮的海水波光粼粼,與花崗岩海堤喁喁低語,而遠處的海浪則用力地撞擊着十二月一日小炮台邊上的巨石。停泊在海灣的中式商船正懶洋洋地收起船帆。小帆船和舢板隨着潮水上下顛簸。許多漁船還在來往穿梭,給九月初平靜的深綠色海面留下一道道白色航跡。石頭砌成的碼頭向水面傾斜,漁民們正在上面把當天收穫的海貨裝進柳條筐。眼前寬闊的景象讓萊昂蒂娜着了迷。從這一端的陸軍俱樂部到另一端毁損的燒灰爐炮台(或稱聖母炮台),南灣的房屋掩映在枝繁葉茂的大樹之中,形成一條賞心悅目的完整曲線。水面反射出的金色陽光幾乎讓姑娘們睜不開眼睛。……萊昂蒂娜認出了其中幾座建築,西望洋教堂、峰景酒店、總督官邸聖珊澤宮、總督府和法院,以及聖老楞佐教堂、聖若瑟修院和聖母主教堂上部的輪廓。一條小船在下邊的海面悄悄駛來,隨着海水上下顛簸。船尾的女舵手穏住小船,船頭的姑娘滿面堆笑,問兩個姑娘是不是想買點船裡滿載的時令水果。儘管香蕉、番茘枝和柿子讓人垂涎欲滴,但她們擔心弄不好會弄髒衣服,只好是放棄。小船重新啟動,沿着花崗岩海堤慢慢地朝遠處搖去。”(《朵斯姑娘》2015, 115-116)',\r\n align: 'center',\r\n desc: [\r\n '街區風貌――南灣(2)',\r\n '20世紀早期'\r\n ]\r\n },\r\n {\r\n id: 9,\r\n pic: '9.jpg',\r\n align: 'center',\r\n desc: [\r\n '“船來了,為了再次離去',\r\n '在內港,這收藏相遇和離別的地方',\r\n '多少葡萄牙水手在這裏登岸',\r\n '尋找沉醉和酣眠的懷抱',\r\n '多少東方女子望斷遠去的身影',\r\n '用大海擦乾了眼淚',\r\n '海水渾濁,無法掩埋的故事',\r\n '只能述說,只能寫在紙上',\r\n '鋼鐵的吊臂,不要把記憶砸為碎片”',\r\n '――姚風',\r\n '(詩歌及照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 10,\r\n text: '“……他特别喜歡欣賞西望洋山上的晚霞,觀看太陽緩緩藏到灣仔島上羣峰的後面。他注視着滿載活蹦亂跳的魚兒出航歸來的船由遠駛近。耳聞東望洋山上的陣陣松濤心潮起伏,喚起了多少回憶。站在瑪利二世皇后眺望台上,放眼大海,極目地平線,遠處的九洲島如同綠色的衛士在守衛着航道。白鴿巢花園中的樹木鬱鬱葱葱。有時,他會整個下午地呆在燒灰爐斜巷的彎道上,在漁屋附近觀看起網。網中的魚活蹦亂跳,銀光閃閃。或是在球塲的草坪上當着女傭人的面同塔石街的孩子們玩耍。海邊馬路,螺絲山,靑洲,在天主聖名之城安寧和秀麗的景色之中尋求撫慰其痛苦的安謐。”(〈蜑家女阿張〉,《文化雜誌》 (4).1988, 51-57)',\r\n align: 'center',\r\n desc: [\r\n '街區風貌――內港、西望洋、西環、海角遊魂、白鴿巢、塔石……',\r\n '20世紀早期'\r\n ]\r\n },\r\n {\r\n id: 11,\r\n text: '“賣冰激凌的阿來那有名的叫賣聲在大街小巷迴響。賣麵的小夥子正敲打着梆子,沿街招引着顧客。遠處,賣熱麵包和奶油餅乾的小販正用他特有的渾厚嗓音推銷着自己的美味食品,與其遙相呼應的是樓梯口的那個小販,他正叫賣着粽子,有用香蕉葉裹着糯米和鹹猪肉或鴨蛋的裹蒸粽和鹹肉粽。這些聲音的交響曲在夜晚總能喚起人們的思鄉之情,喚起人們對童年和美食的回憶。從各家後院牆裏又溢出‘夜來香’的芳香。”(《大辮子的誘惑》1996, 160)',\r\n align: 'center',\r\n desc: [\r\n '中葡美食――白鴿巢夜市',\r\n '1930-1940年代'\r\n ]\r\n },\r\n {\r\n id: 12,\r\n text: '“姑娘端着一隻大盆子回到外間堂屋,盆子裏盛有用醬油和豆豉煮熟了的鮮紅的螃蟹。這些螃蟹真能令人垂涎三尺,彷彿是故意安排的生活凱旋曲。……確實烹調得不錯。醬汁帶點辣味,白白的蟹肉又鮮又嫩,味道特別可口。簡直難以相信在這樣破舊的家裏竟然會做出這種不尋常的佳餚。”(《大辮子的誘惑》1996, 55-56)',\r\n align: 'center',\r\n desc: [\r\n '中葡美食――阿玲的豉椒炒蟹',\r\n '1930-1940年代'\r\n ]\r\n },\r\n {\r\n id: 13,\r\n text: '“他拿定主意,去當時最普通的葡國餐廳――佛笑樓餐廳,要一盤配有洋葱條和土豆條的油汪汪的牛排,再加一盤鷄蛋。……阿多森杜從來沒有覺得煎鷄蛋像現在這麽可口,那蛋白邊上還有一圏微微發焦的顔色,一大塊厚厚的牛排旁邊還有一大把洋葱和土豆條……”(《大辮子的誘惑》1996, 121)',\r\n align: 'center',\r\n desc: [\r\n '中葡美食――佛笑樓的西餐',\r\n '1930-1940年代'\r\n ]\r\n },\r\n {\r\n id: 14,\r\n pic: '14.jpg',\r\n align: 'center',\r\n desc: [\r\n '中葡美食――土生葡人的家庭菜',\r\n '(照片由文化局提供)'\r\n ]\r\n },\r\n {\r\n id: 15,\r\n text: '“……父母家裏的土生菜點更是無可挑剔:精製面粉夾上鷄肉、蘑菇和肉丁製作的餡餅,奶酪和橄欖味的‘卡貝拉’,還有拌辣椒醬的大雜燴。除此,拌在米飯裏的各種調料,如魚鬆、帝汶檸檬以及澳門的蝦醬也都難以忘懷。”(《大辮子的誘惑》1996, 183)',\r\n align: 'center',\r\n desc: [\r\n '中葡美食――土生葡人的家庭菜',\r\n '1930-1940年代'\r\n ]\r\n },\r\n {\r\n id: 16,\r\n text: '“……我們正要出去的時候,有人道知我們說,大堂在旁邊的一個大廳裏請所有參加領聖體儀式的孩子們和他們的父母‘小用茶點’。我們去了。自然,30年代澳門的‘小用茶點’可不是一般的茶點。茶點十分豐富,有各種糕點,猪肉小餡餅,丸子,包子。許許多多的美味佳餚饞得我們這些正在齋戒的孩子們直流口水。一說可以開始吃了,孩子也不顧什麽規矩不規矩了,把那些盤子一掃而光。我也盯着一堆咖喱的酥皮點心猛吃一頓。那點心做得很可口。我母親用目光盯着我的舉動。要不是剛領完聖體,她早就責備我了。半個小時以後,我們離開了那裏。”(〈首次領聖體〉,《文化雜誌》, (1).1987, 85-92)',\r\n align: 'center',\r\n desc: [\r\n '中葡美食――土生葡人茶會美食(1)',\r\n '1930年代'\r\n ]\r\n },\r\n {\r\n id: 17,\r\n text: '“……後來,有一家為慶祝生日舉行‘豐盛茶會’來邀請她們去當廚師。一切都非成功。她們確實身手不凡,手藝確實超過別人。她們為自己的成功而激動得熱淚盈眶。那些由她們製作的兒童蛋糕、椰子蛋糕、家常餅、椰蓉蛋卷、新娘蛋糕、聖誕蛋糕、奶油蛋糕、冷飲維他命、布丁蛋糕,還有各種各樣的其它點心、糕點,可以稱得上是澳門甜點食品中的精品。帕蒂拉家人製作的炸烤類食品也同樣赫赫有名。烤火鷄、烤鷄、烤乳猪、辛辣鷄等都是外脆裏嫩,叉燒包、奶蓉包等餡兒名目繁多。” (《愛情與小腳趾》1994, 221)',\r\n align: 'center',\r\n desc: [\r\n '中葡美食――土生葡人茶會美食(2)',\r\n '20世紀早期'\r\n ]\r\n },\r\n {\r\n id: 18,\r\n text: '“後來,宣佈茶會開始。餐廳裡,桌上鋪着剛從箱底裡拿出來女主人心愛的潔白的繡花桌布,上面擺着澳門葡人傳統的鹹味和甜味點心,人們頓時食慾大振,發出一陣輕輕的讚歎聲。香酥點心和馬介休球、帶餡鹹點心、咖喱角、芝士多、傳統雞肉火腿、三文治和生菜沙拉,一大盤大雜燴和一大盤炒米粉構成主要的鹹味菜譜。格拉菲拉夫人還說,因為沒有買到合適的白蘿蔔,桌上的蘿蔔糕沒有想像的可口,但女主人在甜點方面大顯身手,有布丁蛋糕、蛋黃點心、果凍、朱古力蛋糕卷、鳳梨蛋糕卷、焦糖蛋糕、麵包片、椰汁及澳門馬拉糕。”(《朵斯姑娘》2015, 133)',\r\n align: 'center',\r\n desc: [\r\n '中葡美食――土生葡人茶會美食(3)',\r\n '20世紀早期'\r\n ]\r\n },\r\n {\r\n id: 19,\r\n pic: '19.jpg',\r\n align: 'center',\r\n desc: [\r\n '中葡美食――土生葡人節日盛宴',\r\n '1930-1940年代',\r\n '(照片由文化局提供)'\r\n ]\r\n },\r\n {\r\n id: 20,\r\n text: '“我還記得我家那張斜放在餐室中的大桌子。上面擺滿了各種美味佳餚,還有許多我母親和她的女友們製作的澳門菜。其中,濃汁猪雜是我母親的拿手菜。還有許許多多在香港牛奶公司預訂的珍饈。那香氣至今仍瀰漫在我的鼻中,我是多麽的想嚐嚐啊。光是饀餅、糕點、甜點心和布丁就佔去了桌子的一大片。自然還有好幾種我母親最拿手的點心。‘薄麵油煎餅’,外面蘸着糖的‘金梅’、‘奶油饀餅’,等等,還有路易莎外祖母製造的‘馬蹄糕’是最受歡迎的點心。我偷偷地藏起了兩種以便到涼台上我最喜歡去的那個角落裏好好受用。” (〈首次領聖體〉,《文化雜誌》, (1).1987, 85-92)',\r\n align: 'center',\r\n desc: [\r\n '中葡美食――土生葡人茶會美食(4)',\r\n '1930年代'\r\n ]\r\n },\r\n {\r\n id: 21,\r\n text: '“對於12月份來講,當時的氣温算是温和的了。可是進餐時還要喝些烈酒。酒有的是,都倒好了。佐餐酒、威士忌、啤酒是最受歡迎的。還有混合甜酒。這酒放在一個巨大的酒鉢中。只有在極其特別的塲合才使用這個酒具。穿着長袍的男僕,身穿白旗袍、辮子梳得整整齊齊的女僕黙黙地和藹地在上菜為大家服務。孩子們的笑聲,成年人的低沉聲音混雜在一起。孩子們在院子裏玩耍,時不時地跑到桌子上來重新拿一份東西吃。來賓們進進出出。因為那天整個澳門不知要有多少這樣的茶點會呢。每個都不能拉下,否則主人會不高興的。到塲應酬一下這是每個知名人士必盡的義務。因此,來的來,走的走,熱鬧非凡,吃的喝的應有盡有。那真是好日子啊!”(〈首次領聖體〉,《文化雜誌》, (1).1987, 85-92)',\r\n align: 'center',\r\n desc: [\r\n '中葡美食――富裕葡人宴客景像',\r\n '1930年代'\r\n ]\r\n },\r\n {\r\n id: 22,\r\n text: '“吃飽喝足以後,紳士們都到裏面的小客廳去玩15點,有的去打球。女士們有的玩一種古老的紙牌,還有一些人懶洋洋地靠在沙發上和椅子上,開始了無邊無際的閑聊。年輕人則開始跳舞,當然,不願打球玩牌的紳士女士也加入了跳舞的行列。樂隊安排在大廳的一角,一陣調音以後,小提琴奏起了慢步華爾茲舞曲。在主人夫婦的帶領下,大廳裏的一對對舞伴,在裙子的嘩嘩聲和彩燈的光影中旋轉了起來。……時間在流逝,人們又跳了波希米亞舞、水兵舞和快步舞。” (《愛情與小腳趾》1994, 227-228)',\r\n align: 'center',\r\n desc: [\r\n '中葡美食――宴後娛樂',\r\n '20世紀早期'\r\n ]\r\n },\r\n {\r\n id: 23,\r\n pic: '23.jpg',\r\n align: 'center',\r\n desc: [\r\n '“我們從來不屬於兩棵樹,而是一棵',\r\n '我們是樹枝,我們糾纏在一起',\r\n '我們包紮天空的傷口',\r\n '我們一起穿過四季',\r\n '我們創造了自己的語言',\r\n '我們用青翠的葉子在風中絮語……”',\r\n '――姚風',\r\n '(詩歌及照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 24,\r\n text: '“他喜歡呆在她的身邊,注視着滿天的繁星,澳門的夜景,西望洋山和媽閣山上鱗次櫛比的房屋在藍色的夜空中宛如飄動在雲端的仙山瓊閣。她,貌不驚人,不知書識禮,整日在水面上奔波。她那典型的東方人的眼睛中毫不掩飾地流露出對戀念大海的水手的脈脈溫情。她的笑容,爲他敬茶的姿式,佈滿老繭的手指愛撫他那歐洲人特有的金髮時所流露出來的萬般溫柔使他傾倒。兩人之間的話語不多,手勢表情更能溝通他們之間的感情。爲了讓他一人靜思,阿張常常默不作聲地呆在小船的角落裏,這寂靜給人的心中帶來多大的安慰呀。”(〈蜑家女阿張〉,《文化雜誌》 (4).1988, 57)',\r\n align: 'center',\r\n desc: [\r\n '文化共融與踫撞――異國情鴛',\r\n '20世紀早期'\r\n ]\r\n },\r\n {\r\n id: 25,\r\n text: '“阿瑞,同一個‘鬼佬’生活有時覺得很難。他有時考慮問題的方法和一些習慣,真讓我不能理解。你就說吃飯吧……還有比用筷子再簡單不過的嗎?用一隻手拿筷子,既方便,又好看。可是他那些餐具什麽刀、叉、湯匙、飯匙、還要用兩隻手拿着,很麻煩,也沒有必要。……我現在吃完飯都不能打嗝。打嗝又有什麽不好?它說明我吃飽了,吃好了,說明飯菜可口,也可以說是對主人或廚師手藝的讚許。可是,這些‘鬼佬’們卻認為那是缺少教養。你說這些人怪不怪?我已經學會喝咖啡,學會喝點酒,學會吃麵包夾黃油。但有一件事我無法接受,就是喝茶還要加糖。加了糖就把茶的味道都沖掉了。‘鬼佬’們真不可調教,他們不懂茶的功能。他們真的不懂,他們永遠也不會懂的!”(《大辮子的誘惑》1996, 162-163)',\r\n align: 'center',\r\n desc: [\r\n '文化共融與踫撞――生活習慣',\r\n '1930-1940年代'\r\n ]\r\n },\r\n {\r\n id: 26,\r\n text: '“他們遇到過種種困難,但都擔當起了各自的角色。既然同一個中國後生連結在一起,安熱利卡同意按照佛教禮儀與他成親。夫妻二人必須活得有尊嚴,在中國人當中生活,她成了蔚康明正言順的妻子。然而,這在基督城裡是絶對不允許的,因在這裡她依然被稱為‘中國人的姘婦’……他們搬進了羅利老馬路附近,‘社會地位’明顯提高了,那裡花草繁茂,離典雅的盧九花園不遠,是中國人和葡萄牙人住宅混雜的城區。他們的房子相當大,周圍是小花園。安熱利卡不再穿中國式服裝,重新按照從小養成的西方習慣生活,但沒有放棄從丈夫那裡學得的傳統,很懂得在兩種文化之間保持平衡。蔚康同意舉行天主教婚禮,當然也不放棄根深蒂固的佛教傳統。小夥子既不炫耀也不張揚,默契地回報了妻子,因為她已經同意遵照佛教禮儀舉行婚禮。這樣,兩個人面對各自親朋的責難都勇敢地履行了自己的行為。”(《朵斯姑娘》2015, 412-414)',\r\n align: 'center',\r\n desc: [\r\n '文化共融與踫撞――中西習俗(1)',\r\n '20世紀早期'\r\n ]\r\n },\r\n {\r\n id: 27,\r\n text: '“應阿多森杜邀請,這位神父來為他們的新居祈禱,祝願他們一家幸福平安。同時,信佛教並對洋教持懷疑態度的蜂王婆在後院點上香火,祈求保住這裏的好風水。有着兩種信仰的保證,預示着這座房子的吉祥和興旺。”(《大辮子的誘惑》1996, 214)',\r\n align: 'center',\r\n desc: [\r\n '文化共融與踫撞――中西習俗(2)',\r\n '1930-1940年代'\r\n ]\r\n },\r\n {\r\n id: 28,\r\n text: '“‘是我讓街上的寫字先生寫的。是外祖父的藥方……上面都是他經常給人開的中藥。這是給阿光準備的。上面寫得很清楚,他會知道麽煎的。你別笑,教父。……我看見我外公神奇地治好了別人的病,當然也有失敗的。我不是說這些中藥就一定會有用,但可以幫助你……’。‘你非常相信中國人的傳統醫學?’‘非常相信。衹要聽到有人嘲笑它,說它是什麽無知、迷信或騙人,我就要生氣。這些人忘了,這可是有了幾千年的實踐歷史。如果像他們說的那麽壞,就不會再存在中國人了。他們全都會死光了……’”(《愛情與小腳趾》1994, 275)',\r\n align: 'center',\r\n desc: [\r\n '文化共融與踫撞――中醫藥',\r\n '20世紀早期'\r\n ]\r\n },\r\n {\r\n id: 29,\r\n text: '“30年代,直到太平洋戰爭(1941年至1945年)爆發的前夕,一年一度的極其隆重的首次領聖體儀式於12月份的第一個星期天舉行。每個教區中初次領聖體的兒童都聚集在大堂中。男孩、女孩足足有數百人。按照規定,男孩們身着黑或白色的衣服,每人的胳膊上都必須佩帶一個花結。女孩們只能穿白顔色,戴着面罩,着連衣裙。看上去真像一個個小新娘。”(〈首次領聖體〉,《文化雜誌》, (1).1987, 85-92)',\r\n align: 'center',\r\n desc: [\r\n '宗教活動――領聖體',\r\n '1930年代'\r\n ]\r\n },\r\n {\r\n id: 30,\r\n text: '“每禮拜有一天是這裡受教育的人最熱切盼望的,那就是禮拜四,每到這一天大家都出去走走。這是她們看一看這座城市、街道、來來往往的人群和人力車的唯一機會。……從四點到五點半,她們兩人一橫排,形成兩路縱隊,極為樸素又難看的灰色修女服寬大得無法看清楚每個人的模樣,剪着日本洋娃娃那樣的短髮,沒有任何飾物,不施脂粉,步伐一致地行進,最小的在前頭,年歲大的在後面,修女們走在隊伍的末尾。……沒有固定的出行路線,全憑修女們的興趣而定,或去南灣,或去加思欄花園,又或去華士古達嘉馬花園,沿得勝馬路、二龍喉區,在那裡可以欣賞到漂亮的住宅及其周圍精心打理的綠色植被。在那裡,她們遠遠地就能看到豪華的景象,人們衣着考究,由女傭們照管的兒童鐘鳴鼎食,與修道院悲慘的封閉生活截然不同。……她們不得與隊伍之外的任何人說話,也不能轉過頭去長時間看着任何人。”(《朵斯姑娘》2015, 88-89)',\r\n align: 'center',\r\n desc: [\r\n '宗教活動――修道院姑娘外出',\r\n '20世紀早期'\r\n ]\r\n },\r\n {\r\n id: 31,\r\n text: '“隊伍應該十點整準時出發。時間快到了,遊行隊伍裡每個人都按照規矩各就各位,旗手和他的女助手們站在最前面,後面是領隊,緊隨其後的是樂隊成員,隊尾是戴着面具的化妝遊行隊伍。樂隊由十五到二十個人組成,曼陀鈴在最前面,緊跟着是中提琴,夏威夷四弦琴、兩把小提琴和其他樂器斷後。戴假面具化妝的人有四五十個,不在正式的隊伍之內,遊行的組織者對這個數字非常滿意。……隊伍在樂曲聲中英姿勃勃地前進,酷似葡萄牙當時流行的閱兵式。隨着雄壯的音樂,不時有人喊出有節有奏的俏皮話,引起了一陣陣笑聲。人數如此眾多的隊伍在水坑尾街拐彎,響亮的樂曲聲在空中震盪,不能不引起人們注意。……兩邊的樓宇被喚醒了,一扇扇窗戶打開了,人們在窗台上好奇地朝下觀望着。行人停住腳瞪大眼睛看着打破沉睡中街道寧靜的隊伍。路上為數不多的汽車放慢速度,人力車跑過來指望能遇上個乘客。還必然能聽到中國兒童們用葡萄牙語喊出的,這已經成為當時的傳統,只是他們常常把輔音讀錯。‘看看那個傻瓜,小丑在這兒’……。”(《朵斯姑娘》2015, 182-183)',\r\n align: 'center',\r\n desc: [\r\n '宗教活動――嘉年華巡遊',\r\n '20世紀早期'\r\n ]\r\n },\r\n {\r\n id: 32,\r\n pic: '32.jpg',\r\n align: 'center',\r\n desc: [\r\n '“哦,賈梅士,我的老朋友',\r\n '我用你的語言寫作',\r\n '我每年獻花給你',\r\n '沒有人知道你是否來過澳門',\r\n '但你的銅像來過',\r\n '至今還戀戀不捨,沒有離去',\r\n '你說愛情是看不見的火焰',\r\n '那是你患有眼疾',\r\n '我看見了愛情的火焰在燃燒',\r\n '但我沒有看見灰燼”',\r\n '――姚風',\r\n '(詩歌及照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 33,\r\n text: '“我入讀小學的歲月,板樟堂街是我每天上學必經之路。我當時住在加思欄馬路,那時尚是偏遠之地,出入並不方便。我每天早上8時半和中午1時半出門,上學路徑恒常一樣。先從加思欄馬路,轉入東望洋新街,穿過加思欄花園上方,走落迂迴的坡道和石級到達花園下面的部份,在南灣尚未填海前,已是海邊了。我快步走過家辣堂街,沿街有許多大宅還有聖羅撒學校高高的圍牆,到達花園盡頭的水坑尾街街口,穿越狹窄蜿蜒的天神巷一直走到巷口就是國華戲院,向左轉便進入板樟堂街。這街上總是人頭湧湧,迎面而來。我快步走到板樟堂前地,沿着議事亭前地的拱形柱廊廊內一直走到新馬路交界處,進入蘇雅利醫生街,便慢慢沿着東方斜巷往上走到路的頂端。那兒與夜呣斜巷交界的地方,便是我的男子小學的校舍,今天已被改建成南灣警司處的大樓了。中午12時及下午3時半我放學了,走同樣的路回家,衹是方向相反。”(〈瑪莉亞仙也斯街〉,《望廈》,1998, 74)',\r\n align: 'center',\r\n desc: [\r\n '人生足跡――飛歷奇上小學之路(板樟堂)',\r\n '1930年代'\r\n ]\r\n },\r\n {\r\n id: 34,\r\n text: '“我與雀仔園的接觸開始於在利宵上學的時候。當時我家住在綠樹蔭翳的葡萄牙式的嘉思欄馬路。我上學可從兩條路走。或者沿着‘地獄口’,穿過白頭馬路,走下火藥局斜巷(今天得勝斜路);或者從東望洋新街走,到達羅憲新街頂頭後,一走下臺階便可直接插入雀仔園的心臟,再走過水井和老土地廟,到達水坑尾街往右拐,走5分鐘,經利宵大門來到塔石。我平常喜歡走第二條路。”(《大辮子的誘惑》1996, 3)',\r\n align: 'center',\r\n desc: [\r\n '人生足跡――飛歷奇上中學之路(雀仔園)',\r\n '1930-1940年代'\r\n ]\r\n },\r\n {\r\n id: 35,\r\n text: '“在那些歲月中,去宗主國攻讀的澳門學生,衹有在學成之後決定返回故土時,才有可能同父母、家人聚首。當年那種惜别的塲景催人淚下。人們在內港的棧橋上珍别。當時還沒有現在這種轉瞬即逝能一下切斷人們惜别之情的飛翼船。在那些漫長的歲月中,人們乘坐下午二點半或是晚上的駛往香港的客輪别離故園。全家人團聚在遊子的周圍,暗中飲泣,這塲景在大學生那憧憬着未來的心靈中永不冺滅。那激動人心的擁抱常常是同某人的訣别,它意味着友誼的結束,人遠情疏。現在的澳門學生是多麼的幸福啊。他們每年可以回故里同家人歡聚,或至少在一個較短的時間可以這樣做。現代化的交通工具縮短了距離。可他們不會知道往昔的大學生們度過的那些歲月,孤獨,苦悶。聖誕節前後那是最難過的一段日子。”(〈不期而遇〉,《文化雜誌》 (3).1987, 45)',\r\n align: 'center',\r\n desc: [\r\n '人生足跡――飛歷奇踏上大學之路(內港碼頭)',\r\n '1940年代'\r\n ]\r\n },\r\n {\r\n id: 36,\r\n text: '“然而,大戰的結束中斷了人們視如珍寶並且似乎要永遠保留下去的古老世界。如今,現代之風不斷勁吹。那些避開了潛水艇和水雷死亡威脅的一艘艘商船重新駛向海洋,恢復傳統航線或開闢新航線。船艙裡充斥着各種令人耳目一新的玩意兒――新款汽車、電器產品、留聲機和收音機,源源不斷到來的各種產品讓人們的生活更加舒適,更加温馨,也更加‘文明’。……堅如磐石的保守主義難以抵禦外來影響,缺口終於出現了。……腐蝕性最強的因素是電影,人們把電影展示的一切都視為真實的生活。看電影也成了時尚。在稍加改造的大棚或舊倉庫擺上一台放映機就能招來滿堂觀眾,他們屏氣凝神、目不轉睛地看那些恐怖片、喜劇片、愛情片,要麽嚇得渾身發抖,要麽樂得開懷大笑,有的傷心得淚眼婆娑,還有的癡迷地直盯着那些髮型怪異,服裝妖艷的蕩婦們。”(《朵斯姑娘》2015, 101-103)',\r\n align: 'center',\r\n desc: [\r\n '二戰後澳門社會的變化(1)',\r\n '1940年代'\r\n ]\r\n },\r\n {\r\n id: 37,\r\n text: '“……當地的花花公子開始戴上飾以黑色緞帶的遮陽草帽。領結代替了領帶,襯衣改為實用的軟領,脖子不再像從前那樣被硬邦邦的衣領緊緊箍住,飽受折磨。各種淺色面料的西服也出現了,不再是一成不變的冬天黑色夏天白色。褲子也各式各樣,甚麽垂釣褲、野餐褲。頭髮塗滿髮蠟,緊貼在頭皮上,還模仿着拉丁美洲明星飾以銀絲或金絲。絡腮鬍子、濃密的唇髭或中國郎中的山羊鬍子不見了,代之而起的是一張張刮得乾乾淨淨的臉。……不少上層社會婦女終於梳着短髮,穿着‘現代’連衣裙、鞋子和帽子,在主教堂星期日十一時莊重的彌撒上出現了。人們忘記了祈禱,忘記聽神父講道,注意力全都集中到彌撒的另一道風景線上。”(《朵斯姑娘》2015, 104-105)',\r\n align: 'center',\r\n desc: [\r\n '二戰後澳門社會的變化(2)',\r\n '1940年代'\r\n ]\r\n },\r\n {\r\n id: 38,\r\n text: '“……城市日常生活中還出現了另一個變化。從前,人們習慣於做完禮拜日彌撒之後走上龍嵩街,去欣賞摩爾人進口那些新奇玩意兒。可如今的摩爾人面臨新馬路上商店的激烈競爭,這是一條新近形成的商業大動脈,兩旁殖民地風格的廊簷抵禦着伏天火辣辣的太陽,這裡集中了中國人經營的最好的商鋪、鞋店、首飾店和茶莊。這條商業街從南灣一直延到內港,將澳門歷史上引以為豪的‘商業中心區’一分為二。這是基督城區的狀況。而面對所有這些新鮮事物,中國城區還是針插不進,水潑不進,他們依然保持着自己的古訓、風俗和傳統,對西方的生活變化視而不見。至少在觀察家眼中,戰後的變化對他們的思想、生活方式、興趣愛好和着裝都沒有絲毫影響。他們固守着自己的生存模式,看樣子個個心滿意足或聽天由命。” (《朵斯姑娘》2015, 105)',\r\n align: 'center',\r\n desc: [\r\n '二戰後澳門社會的變化(3)',\r\n '1940年代'\r\n ]\r\n }\r\n ]\r\n}\r\n","module.exports = __webpack_public_path__ + \"img/24_cn.7e74fce3.jpg\";","module.exports = __webpack_public_path__ + \"img/5.1b059b58.jpg\";","module.exports = __webpack_public_path__ + \"img/18.55fe2371.jpg\";","module.exports = __webpack_public_path__ + \"img/3.2e5215f0.jpg\";","module.exports = __webpack_public_path__ + \"img/1.412fac11.jpg\";","module.exports = __webpack_public_path__ + \"img/23.68795916.jpg\";","module.exports = __webpack_public_path__ + \"img/23_cn.6f4adf55.jpg\";","module.exports = __webpack_public_path__ + \"img/2.78c23696.jpg\";","module.exports = __webpack_public_path__ + \"img/30.7b61242a.jpg\";","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar slice = [].slice;\nvar MSIE = /MSIE .\\./.test(userAgent); // <- dirty ie9- check\n\nvar wrap = function (scheduler) {\n return function (handler, timeout /* , ...arguments */) {\n var boundArgs = arguments.length > 2;\n var args = boundArgs ? slice.call(arguments, 2) : undefined;\n return scheduler(boundArgs ? function () {\n // eslint-disable-next-line no-new-func\n (typeof handler == 'function' ? handler : Function(handler)).apply(this, args);\n } : handler, timeout);\n };\n};\n\n// ie9- setTimeout & setInterval additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\n$({ global: true, bind: true, forced: MSIE }, {\n // `setTimeout` method\n // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout\n setTimeout: wrap(global.setTimeout),\n // `setInterval` method\n // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval\n setInterval: wrap(global.setInterval)\n});\n","module.exports = __webpack_public_path__ + \"img/10.33c23ef7.jpg\";","module.exports = __webpack_public_path__ + \"img/16.284a084a.jpg\";","module.exports = __webpack_public_path__ + \"img/23.768628c9.jpg\";","module.exports = __webpack_public_path__ + \"img/21.284a084a.jpg\";","module.exports = __webpack_public_path__ + \"img/21.9ced00a1.jpg\";","module.exports = __webpack_public_path__ + \"img/14.660dc73a.jpg\";","module.exports = __webpack_public_path__ + \"img/1.05369f80.jpg\";","module.exports = __webpack_public_path__ + \"img/4.7beb34fe.jpg\";","var map = {\n\t\"./1/en.js\": \"f044\",\n\t\"./1/pt.js\": \"8128\",\n\t\"./1/zh-cn.js\": \"8ba6\",\n\t\"./1/zh-hk.js\": \"724d\",\n\t\"./2/en.js\": \"90bb\",\n\t\"./2/pt.js\": \"624d\",\n\t\"./2/zh-cn.js\": \"aadb\",\n\t\"./2/zh-hk.js\": \"a914\",\n\t\"./3/en.js\": \"710c\",\n\t\"./3/pt.js\": \"7cee\",\n\t\"./3/zh-cn.js\": \"c774\",\n\t\"./3/zh-hk.js\": \"32a5\",\n\t\"./4/en.js\": \"558f\",\n\t\"./4/pt.js\": \"b3e9\",\n\t\"./4/zh-cn.js\": \"e5b4\",\n\t\"./4/zh-hk.js\": \"fa25\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"554e\";","export default {\r\n info: {\r\n title: 'Online Reading',\r\n desc: 'Henrique de Senna Fernandes published many novels, as well as articles in local newspapers and magazines. Among these, some of the ones published in Portuguese in Revista de Cultura were translated into Chinese and English. In this section, readers can find online all articles and works of Henrique de Senna Fernandes published in Revista de Cultura, as well as some studies about the author.'\r\n },\r\n list: [\r\n {\r\n id: 1,\r\n pic: '1.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: 〈首次領聖體〉 (My First Communion)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Translator: 金國平 (Jin Guoping)',\r\n 'Publication: Review of Culture (Chinese Edition), no. 1 (Macao: Cultural Institute of Macao, 1987), pp. 85-92.',\r\n 'http://www.icm.gov.mo/rc/viewer/10001/16'\r\n ]\r\n },\r\n {\r\n id: 2,\r\n pic: '2.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: 〈不期而遇〉(An Unforeseen Encounter)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Translator: 金國平 (Jin Guoping)',\r\n 'Publication: Review of Culture (Chinese Edition), no. 3 (Macao: Cultural Institute of Macao, 1987), pp. 45-50.',\r\n 'http://www.icm.gov.mo/rc/viewer/10003/55',\r\n ]\r\n },\r\n {\r\n id: 3,\r\n pic: '3.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: 〈蜑家女阿張〉(Ah-Chan, the Boatwoman)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Translator: 金國平 (Jin Guoping)',\r\n 'Publication: Review of Culture (Chinese Edition), no. 4 (Macao: Cultural Institute of Macao, 1989), pp. 51-57.',\r\n 'http://www.icm.gov.mo/rc/viewer/10004/81',\r\n ]\r\n },\r\n {\r\n id: 4,\r\n pic: '4.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: 〈澳門電影歷史“默片時代” 〉(Cinema in Macao – The “Silent” Years)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Translator: 常征 (Chang Zheng)',\r\n 'Publication: Review of Culture (Chinese Edition), no. 17 (Macao: Cultural Institute of Macao, 1993), pp. 133-159.',\r\n 'http://www.icm.gov.mo/rc/viewer/10017/260',\r\n ]\r\n },\r\n {\r\n id: 5,\r\n pic: '5.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: 〈澳門電影歷史:有聲影片時期〉(Cinema in Macao – The Thrill of the Talkies)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Publication: Review of Culture (Chinese Edition), no. 23 (Macao: Cultural Institute of Macao, 1995), pp. 117-184.',\r\n 'http://www.icm.gov.mo/rc/viewer/10023/383',\r\n ]\r\n },\r\n {\r\n id: 6,\r\n pic: '6.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: A Minha Primeira Comunhão (My First Communion)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Publication: Revista de Cultura (Portuguese Edition), no. 1 (Macao: Cultural Institute of Macao, 1987), pp. 79-85.',\r\n 'http://www.icm.gov.mo/rc/viewer/30001/1368',\r\n ]\r\n },\r\n {\r\n id: 7,\r\n pic: '7.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: O Cinema em Macau : O tempo do “Mudo” – I (Cinema in Macao – The “Silent” Years – I)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Publication: Revista de Cultura (Portuguese Edition), no. 16 (Macao: Cultural Institute of Macao, 1991), pp. 31-61.',\r\n 'http://www.icm.gov.mo/rc/viewer/30016/1646',\r\n ]\r\n },\r\n {\r\n id: 8,\r\n pic: '8.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: O Cinema em Macau - II 1930-31: A Emoção do Sonoro (Cinema in Macao – The Emotion of Sound – II 1930-31)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Publication: Revista de Cultura (Portuguese Edition), no. 18 (Macao: Cultural Institute of Macao, 1994), pp. 183-216.',\r\n 'http://www.icm.gov.mo/rc/viewer/30018/1706',\r\n ]\r\n },\r\n {\r\n id: 9,\r\n pic: '9.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: Cinema em Macau III (1932-36) (Cinema in Macao – III 1932-36)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Publication: Revista de Cultura (Portuguese Edition), no. 23 (Macao: Cultural Institute of Macao, 1995), pp. 133-170.',\r\n 'http://www.icm.gov.mo/rc/viewer/30023/1797'\r\n ]\r\n },\r\n {\r\n id: 10,\r\n pic: '10.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: My First Communion ',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Publication: Review of Culture (English Edition), no. 1 (Macao: Cultural Institute of Macao, 1987), pp. 68-74.',\r\n 'http://www.icm.gov.mo/rc/viewer/20001/740',\r\n ]\r\n },\r\n {\r\n id: 11,\r\n pic: '11.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: Cinema in Macau - The \"Silent\" Years I',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Publication: Review of Culture (English Edition), no. 18 (Macao: Cultural Institute of Macao, 1994), pp. 153-183.',\r\n 'http://www.icm.gov.mo/rc/viewer/20018/1004',\r\n ]\r\n },\r\n {\r\n id: 12,\r\n pic: '12.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: Cinema in Macao - Part II 1930-1931 ',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Translator: Fiona Sanders',\r\n 'Publication: Review of Culture (English Edition), no. 23 (Macao: Cultural Institute of Macao, 1995), pp. 145-182.',\r\n 'http://www.icm.gov.mo/rc/viewer/20023/1090',\r\n ]\r\n },\r\n {\r\n id: 13,\r\n pic: '13.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: Cinema in Macao - Part III 1932-1936',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Translator: Fiona Sanders',\r\n 'Publication: Review of Culture (English Edition), no. 31 (Macao: Cultural Institute of Macao, 1997), pp. 89-132.',\r\n 'http://www.icm.gov.mo/rc/viewer/20031/1220',\r\n ]\r\n },\r\n {\r\n id: 14,\r\n pic: '14.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: 〈論澳門土生文學及其文化價值〉(Macanese Literature and Its Cultural Value)',\r\n 'Author: 汪春 (Wang Chun)',\r\n 'Publication: Review of Culture (Chinese Edition), no. 23 (Macao: Cultural Institute of Macao, 1995), pp. 99-110.',\r\n 'http://www.icm.gov.mo/rc/viewer/10023/381',\r\n ]\r\n },\r\n {\r\n id: 15,\r\n pic: '15.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: Fragmentos Picarescos Senna Fernandinos: Contributos Literários para a Captação do Factual da Macau Antiga em A Trança Feiticeira e Amor e Dedinhos de Pé (Senna Fernandes’s Picaresque Fragments: Literary Contributions to Capturing the historical facts of Macau in A Trança Feiticeira and Amor e Dedinhos de Pé)',\r\n 'Author: Carlos Filipe G. Figueiredo ',\r\n 'Publication: Review of Culture (International Edition), no. 38 (Macao: Cultural Affairs Bureau, 2011), pp. 30-53.',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40038',\r\n ]\r\n },\r\n {\r\n id: 16,\r\n pic: '16.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: Senna Fernandes: Família, Cultura e Diáspora (Senna Fernandes: Family, Culture and Diaspora)',\r\n 'Author: Alfredo Gomes Dias',\r\n 'Publication: Macao: Review of Culture (International Edition), no. 38 (Macao: Cultural Affairs Bureau, 2011), pp. 55-60.',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40038'\r\n ]\r\n },\r\n {\r\n id: 17,\r\n pic: '17.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: Macau, Cidade Multicultural? Marcas de Multiculturalidade em Os Dores de Henrique de Senna Fernandes (Macau, A Multicultural City? Traces of Multiculturalism in Os Dores by Henrique de Senna Fernandes)',\r\n 'Author: Fernando Manuel Margarido João ',\r\n 'Publication: Review of Culture (International Edition), no. 44 (Macao: Cultural Affairs Bureau, 2013), pp. 44-57.',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40044',\r\n ]\r\n },\r\n {\r\n id: 18,\r\n pic: '18.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: Macau em Os Dores, de Henrique de Senna Fernandes (Macao in Os Dores by Henrique de Senna Fernandes)',\r\n 'Author: Maria de Lurdes Escaleira, Fernando Manuel Margarido João',\r\n 'Publication: Review of Culture (International Edition), no. 53 (Macao: Cultural Affairs Bureau, 2016), pp. 101-123.',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40053'\r\n ]\r\n },\r\n {\r\n id: 19,\r\n pic: '19.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: The Fiction of Henrique de Senna Fernandes and Leung Ping-Kwan: Urban Space and Social Change in Macao and Hong Kong',\r\n 'Author: David Brookshaw',\r\n 'Publication: Review of Culture (International Edition), no. 23 (Macao: Cultural Affairs Bureau, 2007), pp. 85-88.',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40023'\r\n ]\r\n },\r\n {\r\n id: 20,\r\n pic: '20.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: A Colonial Diaspora Between Empires: The Macanese and the Fiction of Henrique de Senna Fernandes',\r\n 'Author: David Brookshaw',\r\n 'Publication: Review of Culture (International Edition), no. 27 (Macao: Cultural Affairs Bureau, 2008), pp. 135-141.',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40027'\r\n ]\r\n },\r\n {\r\n id: 21,\r\n pic: '21.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: Politics, Patriarchy, Progress and Postcoloniality: The life in the Fiction of Henrique de Senna Fernandes',\r\n 'Author: David Brookshaw',\r\n 'Publication: Review of Culture (International Edition), no. 38 (Macao: Cultural Affairs Bureau, 2011), pp. 6-21.',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40038'\r\n ]\r\n },\r\n {\r\n id: 22,\r\n pic: '22.jpg',\r\n align: 'center',\r\n desc: [\r\n `Title: A Cuisine of Nostalgia: The Role of Food in Senna Fernandes's A Trança Feiticeira`,\r\n 'Author: David Brookshaw',\r\n 'Publication: Review of Culture (International Edition), no. 38 (Macao: Cultural Affairs Bureau, 2011), pp. 22-29.',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40038'\r\n ]\r\n },\r\n {\r\n id: 23,\r\n pic: '23.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Studies about Henrique de Senna Fernandes in Chinese',\r\n ]\r\n },\r\n {\r\n id: 24,\r\n pic: '24.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Studies about Henrique de Senna Fernandes in Portuguese',\r\n ]\r\n },\r\n {\r\n id: 25,\r\n pic: '25.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Studies about Henrique de Senna Fernandes in English'\r\n ]\r\n },\r\n {\r\n id: 26,\r\n pic: '26.jpg',\r\n align: 'center',\r\n desc: [\r\n '“I keep walking, though with slow steps.',\r\n 'But what I leave to you is not my shadow.',\r\n 'The sun shines so much it erased all shadows',\r\n 'Ah! I haven’t yet spent all that enlightens me.”',\r\n '— Yao Feng',\r\n '(Photo and poem courtesy of Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 27,\r\n text: `Acknowledgements:\r\n The Cultural Affairs Bureau of the Macao S. A. R. Government would like to express its sincere thanks for the support provided to this exhibition:\r\n Dr. Miguel de Senna Fernandes\r\n Prof. Yao Jingming\r\n Dr. Chan Lai Lin\r\n The Archives of Macao\r\n `,\r\n align: 'center',\r\n hidden: true,\r\n desc: [\r\n 'The Cultural Affairs Bureau of the Macao S. A. R. Government would like to express its sincere thanks for the support provided to this exhibition:',\r\n 'Dr. Miguel de Senna Fernandes',\r\n 'Prof. Yao Jingming',\r\n 'Dr. Chan Lai Lin',\r\n 'The Archives of Macao'\r\n ]\r\n }\r\n ]\r\n}\r\n","module.exports = __webpack_public_path__ + \"img/22.284a084a.jpg\";","module.exports = __webpack_public_path__ + \"img/32_cn.30fc61bd.jpg\";","export default {\r\n info: {\r\n title: 'Apresentação da Obra',\r\n desc: 'As obras de Henrique de Senna Fernandes consistem principalmente em romances e contos, estudos sobre a história do cinema de Macau e crónicas abordando diversos temas. Os seus romances, desde a primeira publicação de A-Chan: A Tancareira em 1974, tornaram-se extremamente populares, tendo sido publicados e reimpressos diversas vezes, traduzidos para chinês e inglês, distribuídos por todo o mundo e adaptados ao cinema. Nesta secção, apresentamos aos leitores, detalhadamente, as diferentes versões das suas obras e as crónicas e estudos que o autor redigiu.'\r\n },\r\n list: [\r\n {\r\n id: 1,\r\n pic: '1.jpg',\r\n align: 'center',\r\n desc: [\r\n '“Tenho de escrever estas palavras,',\r\n 'porque o meu coração está cheio de amor.',\r\n 'Quero que estas palavras e personagens',\r\n 'acordem na tua leitura',\r\n 'e vos abraçem.',\r\n 'Num abraço não há senão mais um abraço,',\r\n 'nem a mínima distância.” ',\r\n '— Yao Feng ',\r\n '(Poema e fotografia cedida pelo Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 2,\r\n pic: '2.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título:\tA-Chan, A Tancareira',\r\n 'Autor: \tHenrique de Senna Fernandes',\r\n 'Colecção: Cadernos Capricórnio: 16',\r\n 'Editor: Lobito: O Lobito, Angola, 1974'\r\n ]\r\n },\r\n {\r\n id: 3,\r\n pic: '3.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título:\tNam Van: Contos de Macau',\r\n 'Autor: \tHenrique de Senna Fernandes',\r\n 'Editor: Macau: Edição de autor, 1978'\r\n ]\r\n },\r\n {\r\n id: 4,\r\n pic: '4.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título:\tNam Van: Contos de Macau',\r\n 'Autor: \tHenrique de Senna Fernandes',\r\n 'Colecção: Rua Central: 12',\r\n 'Editor: Macau: Instituto Cultural de Macau, 2ª edição, 1997'\r\n ]\r\n },\r\n {\r\n id: 5,\r\n pic: '5.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título:《南灣》',\r\n 'Autor: \t飛歷奇',\r\n 'Tradutor: 李長森、崔維孝',\r\n 'Editor: 澳門:澳門土生教育協進會,2003',\r\n '(Nam Van: Contos de Macau, Edição em Chinês, Macau)'\r\n ]\r\n },\r\n {\r\n id: 6,\r\n pic: '6.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título:\tNam Van: Contos de Macau',\r\n 'Autor: \tHenrique de Senna Fernandes',\r\n 'Colecção: Identidade: 1',\r\n 'Editor: Rio de Janeiro: Gryphus, 2008'\r\n ]\r\n },\r\n {\r\n id: 7,\r\n pic: '7.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título:《南灣――澳門故事》',\r\n 'Autor: 飛歷奇',\r\n 'Tradutor: 宋子江',\r\n 'Editor: 澳門:Praia Grande Edições, Lda., 2020',\r\n '(Nam Van: Contos de Macau, Edição em Chinês, Macau)'\r\n ]\r\n },\r\n {\r\n id: 8,\r\n pic: '8.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: Nam Van - Tales of Macao',\r\n 'Autor: Henrique de Senna Fernandes',\r\n 'Tradutor: David Brookshaw',\r\n 'Editor: Macau: Praia Grande Edições, Lda., 2020',\r\n '(Nam Van: Contos de Macau, Edição em Inglês, Macau)'\r\n ]\r\n },\r\n {\r\n id: 9,\r\n pic: '9.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: Amor e Dedinhos de pé: Romance de Macau',\r\n 'Autor: Henrique de Senna Fernandes',\r\n 'Editor: Macau: Instituto Cultural de Macau, 1986'\r\n ]\r\n },\r\n {\r\n id: 10,\r\n pic: '10.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: Amor e Dedinhos de Pé',\r\n 'Autor: Henrique de Senna Fernandes',\r\n 'Editor: Lisboa: Gradiva – Publicações Lda., Instituto Cultural de Macau, 1ª edição, 1988'\r\n ]\r\n },\r\n {\r\n id: 11,\r\n pic: '11.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: Amor e Dedinhos de Pé',\r\n 'Autor: Henrique de Senna Fernandes',\r\n 'Editor: Macau: Instituto Cultural de Macau, 3ª edição, 1992'\r\n ]\r\n },\r\n {\r\n id: 12,\r\n pic: '12.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: Amor e Dedinhos de Pé',\r\n 'Autor: Henrique de Senna Fernandes',\r\n 'Colecção: Rua Central: 4',\r\n 'Editor: Macau: Instituto Cultural de Macau, 4ª edição, 1994'\r\n ]\r\n },\r\n {\r\n id: 13,\r\n pic: '13.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título:《愛情與小腳趾》',\r\n 'Autor: 飛歷奇',\r\n 'Tradutor: 喻慧娟',\r\n 'Colecção: 葡語作家叢書文學系列之3',\r\n 'Editor: 澳門/石家莊:澳門文化司署/花山文藝出版社,1994',\r\n '(Amor e Dedinhos de Pé, Edição em Chinês, Macau/Shijiazhuan)'\r\n ]\r\n },\r\n {\r\n id: 14,\r\n pic: '14.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: Amor e Dedinhos de Pé',\r\n 'Autor: Henrique de Senna Fernandes',\r\n 'Colecção: Colecção Identidades',\r\n 'Editor: Rio de Janeiro: Gryphus, 2008'\r\n ]\r\n },\r\n {\r\n id: 15,\r\n pic: '15.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: Amor e Dedinhos de Pé',\r\n 'Autor: Henrique de Senna Fernandes',\r\n 'Colecção: Obra completa de Henrique de Senna Fernandes: 2',\r\n 'Editor: Macau: Instituto Cultural do Governo da R.A.E. de Macau, 5ª edição, 2012'\r\n ]\r\n },\r\n {\r\n id: 16,\r\n pic: '16.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: A Trança Feiticeira',\r\n 'Autor:\tHenrique de Senna Fernandes',\r\n 'Editor: Macau: Fundação Oriente, 1ª edição, 1993'\r\n ]\r\n },\r\n {\r\n id: 17,\r\n pic: '17.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título:《大辮子的誘惑》',\r\n 'Autor: 飛歷奇',\r\n 'Tradutor: 喻慧娟',\r\n 'Colecção: 葡語作家叢書文學系列之15',\r\n 'Editor: 澳門/石家莊:澳門文化司署/花山文藝出版社,1996',\r\n '(A Trança Feiticeira, Edição em Chinês, Macau/Shijiazhuan)'\r\n ]\r\n },\r\n {\r\n id: 18,\r\n pic: '18.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: A Trança Feiticeira',\r\n 'Autor: Henrique de Senna Fernandes',\r\n 'Editor: Macau: Fundação Oriente, 2ª edição, 1998'\r\n ]\r\n },\r\n {\r\n id: 19,\r\n pic: '19.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: The Bewitching Braid',\r\n 'Autor: Henrique de Senna Fernandes',\r\n 'Tradutor: David Brookshaw',\r\n 'Editor: Hong Kong: Hong Kong University Press, 2004',\r\n '(A Trança Feiticeira, Edição em Inglês, Hong Kong)'\r\n ]\r\n },\r\n {\r\n id: 20,\r\n pic: '20.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: A Trança Feiticeira',\r\n 'Autor:\tHenrique de Senna Fernandes',\r\n 'Editor: Rio de Janeiro: Gryphus, 2009'\r\n ]\r\n },\r\n {\r\n id: 21,\r\n pic: '21.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: A Trança Feiticeira',\r\n 'Autor:\tHenrique de Senna Fernandes',\r\n 'Editor: Rio de Janeiro: Gryphus (Kindle Edition), 2011'\r\n ]\r\n },\r\n {\r\n id: 22,\r\n pic: '22.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: A Trança Feiticeira',\r\n 'Autor: Henrique de Senna Fernandes',\r\n 'Colecção: Obra completa de Henrique de Senna Fernandes: 3',\r\n 'Editor: Macau: Instituto Cultural do Governo da R.A.E. de Macau, 3ª edição, 2015'\r\n ]\r\n },\r\n {\r\n id: 23,\r\n pic: '23.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: Mong-Há',\r\n 'Autor: Henrique de Senna Fernandes',\r\n 'Colecção: Rua Central: 14',\r\n 'Editor: Macau: Instituto Cultural de Macau, 1998'\r\n ]\r\n },\r\n {\r\n id: 24,\r\n pic: '24.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: Cinema em Macau : Desde o Início do Século XX até a Década de 30',\r\n 'Autor: Henrique de Senna Fernandes',\r\n 'Editor: Macau: Instituto Internacional de Macau, 2010'\r\n ]\r\n },\r\n {\r\n id: 25,\r\n pic: '25.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: Cinema in Macau: From the 1900s to the mid 30s',\r\n 'Autor: Henrique de Senna Fernandes',\r\n 'Editor: Macau: Instituto Internacional de Macau, 2010',\r\n '(Cinema em Macau : Desde o Início do Século XX até a Década de 30, Edição em Inglês, Macau)'\r\n ]\r\n },\r\n {\r\n id: 26,\r\n pic: '26.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: Os Dores',\r\n 'Autor: Henrique de Senna Fernandes',\r\n 'Colecção: Obra completa de Henrique de Senna Fernandes: 1',\r\n 'Editor: Macau: Instituto Cultural do Governo da R.A.E. de Macau, 1ª edição, 2012',\r\n ]\r\n },\r\n {\r\n id: 27,\r\n pic: '27.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título:《朵斯姑娘》',\r\n 'Autor: 飛歷奇',\r\n 'Tradutor: 喻慧娟',\r\n 'Colecção:中葡文學叢書之4',\r\n 'Editor: 澳門:澳門特別行政區政府文化局,2015',\r\n '(Os Dores, Edição em Chinês, Macau)'\r\n ]\r\n },\r\n {\r\n id: 28,\r\n pic: '28.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: A Noite Desceu em Dezembro',\r\n 'Autor: Henrique de Senna Fernandes',\r\n 'Colecção: Obra completa de Henrique de Senna Fernandes: 4',\r\n 'Editor: Macau: Instituto Cultural do Governo da R.A.E. de Macau, 1ª edição, 2015'\r\n ]\r\n },\r\n {\r\n id: 29,\r\n pic: '29.jpg',\r\n align: 'center',\r\n desc: [\r\n 'OBRA ADAPTADA AO CINEMA',\r\n 'Título: Amor e Dedinhos de Pé',\r\n 'Autor: Henrique de Senna Fernandes',\r\n 'Realizador: Luís Rocha',\r\n 'Actor: Joaquim de Almeida, Ana Torrent',\r\n 'Produção: MGN Filmes, Ou Mun Filmes, Chrysalide Films, Impala, Jet Films, Igeldo Zine Produkzioak, 1992'\r\n ]\r\n },\r\n {\r\n id: 30,\r\n pic: '30.jpg',\r\n align: 'center',\r\n desc: [\r\n 'OBRA ADAPTADA AO CINEMA',\r\n 'Título: A Trança Feiticeira',\r\n 'Autor: Henrique de Senna Fernandes',\r\n 'Realizador: Chai Yuanyuan',\r\n 'Actor: Ning Jing, Ricardo Carriço',\r\n 'Produção: Chai Brothers’ (Macau) Film Company Ltd., 1996'\r\n ]\r\n },\r\n {\r\n id: 31,\r\n pic: '31.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Artigos por Henrique de Senna Fernandes traduzidos para Chinês'\r\n ]\r\n },\r\n {\r\n id: 32,\r\n pic: '32.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Artigos por Henrique de Senna Fernandes '\r\n ]\r\n },\r\n {\r\n id: 33,\r\n pic: '33.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Artigos por Henrique de Senna Fernandes traduzidos para Inglês'\r\n ]\r\n }\r\n ]\r\n}\r\n","module.exports = __webpack_public_path__ + \"img/12.ff155779.jpg\";","module.exports = __webpack_public_path__ + \"img/10.0ddae245.jpg\";","module.exports = __webpack_public_path__ + \"img/19.689566a6.jpg\";","module.exports = __webpack_public_path__ + \"img/22.ae93a62f.jpg\";","module.exports = __webpack_public_path__ + \"img/3.2b7bf34d.jpg\";","module.exports = __webpack_public_path__ + \"img/29.4e1d68f0.jpg\";","module.exports = __webpack_public_path__ + \"img/16.b5a6516b.jpg\";","module.exports = __webpack_public_path__ + \"img/24.b87186ce.jpg\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideBar.vue?vue&type=style&index=0&id=c2758422&scoped=true&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/24.922c917f.jpg\";","module.exports = __webpack_public_path__ + \"img/18.0e02501e.jpg\";","export default {\r\n info: {\r\n title: 'Life under a Pen',\r\n desc: 'Henrique de Senna Fernandes was a master at portraying the life and society of Chinese and Portuguese people in Macao early in the last century. In his works, Macao stands for the endless charm of China and the West, with a touch of romanticism and lyricism. They are like ukiyo-e, for he takes the readers to witness daily life on the streets and alleys of the past. As a permanent advocate for the concept of integration of both peoples, his works tell stories of inter-racial love. As a gastronomy lover, he presents Macanese cuisine with its vast variety and shapes, through his own experiences and the stories of various characters. The lifestyle and religious events of Macanese people are also portrayed in his works. Upon appreciating the colourful ukiyo-e of Macao by Henrique de Senna Fernandes, we see clearly the one who deeply loved Macao and lived a dream life, was he himself, the “son of the land”, Henrique de Senna Fernandes.'\r\n },\r\n list: [\r\n {\r\n id: 1,\r\n pic: '1.jpg',\r\n align: 'center',\r\n desc: [\r\n `“I'm a bay of different bloods.`,\r\n 'Different bloods run in my body',\r\n 'running to the vast bay,',\r\n 'where I shake the hand of every wave',\r\n 'and travel with every fish.',\r\n 'The clouds know no borders',\r\n 'but I know their address.” ',\r\n '— Yao Feng',\r\n '(Poem and Photo courtesy of Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 2,\r\n text: '“The population of Cheok Chai Un consisted of a few thousand individuals, nearly all of whom were impoverished, residing within the confines of their world. While it is true that a small faction of troublemakers existed, the overwhelming majority of residents were orderly and peace-loving, diligently working for their daily sustenance of rice. Among the men were labourers, joiners, carpenters, messenger boys, rickshaw pullers, hawkers and draymen. While the women held occupations as domestic servants, weavers, street cleaners, hair braiders, laundry workers and water carriers, all engaged in the humblest of vocations. Only a few managed to attain the status of self-employment… Consequently, the well, now a vanished relic, served as a focal point from morning till night, especially for the women who congregated there, mirroring the scene at other public wells. Here, they drew water, filling buckets in a continuous flurry of activity. The well also doubled as a social hub, where people conversed and gossiped, reputations were either built up or torn down, and the latest news and slanderous tidbits were exchanged.” (A Trança Feiticeira [The Bewitching Braid], 2015, pp. 6-8)',\r\n align: 'center',\r\n desc: [\r\n 'Life in the neighbourhoods - Horta da Mitra (Cheok Chai Un)',\r\n '(During the 1930s-1940s)'\r\n ]\r\n },\r\n {\r\n id: 6,\r\n text: `“... There were those who sang near the Lilau trees, not too far from the house. It was a group of young men who, despite the cold, chanted popular melodies, accompanied by mandolins and guitars, Portuguese and English songs, and the occasional fado. Their voices were in tune and the accompaniment was refined. There was certainly, somewhere nearby, a lady with whom the melodious tenor was deeply in love. After a pause, the same voice, with sweetness, crooned an old Macanese song: ‘Catrina, my Catrina; my Catrina of the alley; Never be sad, Catrina; You'll soon become a countess.’” (Amor e Dedinhos de Pé [Love and Tiny Toes], 2012, p. 351)`,\r\n align: 'center',\r\n desc: [\r\n 'Life in the neighbourhoods – Lilau',\r\n '(During the early 20th century)'\r\n ]\r\n },\r\n {\r\n id: 7,\r\n text: '“... Underneath, the little sedan-chairs moved in patches of sunlight and shadow, intersecting with rival rickshaws. Junks and lorchas dozed among glimmers of placid water. Squatting on the granite wall, under the shade of the rustling trees, a hairdresser applied wood oil to the thick braid of a young seafarer, after carefully removing with a sharp thread the downy hair on her forehead that did not align with the smoothness of the hairdo, a painful procedure to which the beauties of the people would submit without complains. Nearby, the wandering delicacy merchant proclaimed the excellency of his vinegary snacks, while further ahead, the man with the tinkling instruments played his triangles, and the knife sharpener toiled away on his primitive apparatus, honing a kitchen knife.” (Amor e Dedinhos de Pé [Love and Tiny Toes], 2012, pp. 388-9)',\r\n align: 'center',\r\n desc: [\r\n 'Life in the neighbourhoods - Praia Grande Bay (1)',\r\n '(Early 20th century)'\r\n ]\r\n },\r\n {\r\n id: 8,\r\n text: '“Praia Grande Bay bathed in the golden sun dipping behind Lapa Island. The water from the rising tide reverberated with glowing twinkling, whispering in soliloquy near the granite wall, but crashing in the distance against the stones at the ending of the December 1st Fort. Lazy junks lowered their sails at the berths. Lorchas and sampans balanced along with the tides. Tiny tanka boats, in a ceaseless back and forth, drew lines of foam on the greenish mantle of the early September water. At the stone berths, on a sloping surface, the catch of the day was unloaded in wicker baskets. The contemplation of that wide landscape allured Leontina. The whole waterfront of houses in Praia Grande glowed, in a gracious curve, from one end to the other, from the Military Club to the ruined Fortress of Bom Parto, painted with verdant trees. The golden reflections of the sun almost blinded the girls... She identified a few buildings: the Penha hermitage, Bela Vista Hotel, Santa Sancha Palace, Government House, the Tribunal, the outline of the upper part of the Saint Lawrence Church, of the Saint Joseph Seminar and the Cathedral. A tanka boat approached, sliding below, rising and falling over the murmuring water. As the girl at the stern kept the rudder under control, the one at the bow, a smiling young lady, asked the two girls if they wanted to buy seasonal fruits, of which the little boat was loaded. The bananas, cherimoyas and persimmons were inviting, but they gave up on the idea, not wanting to risk dirtying their dresses. The tanka boat departed, moving along the wall.” (Os Dores [The Dores], 2012. pp. 82-83)',\r\n align: 'center',\r\n desc: [\r\n 'Life in the neighbourhoods - Praia Grande Bay (2)',\r\n '(Early 20th century)'\r\n ]\r\n },\r\n {\r\n id: 9,\r\n pic: '9.jpg',\r\n align: 'center',\r\n desc: [\r\n '“The boats arrived, only to leave again.',\r\n 'At the Inner Harbour, warehouse of meetings and goodbyes,',\r\n 'how many Portuguese sailors disembarked',\r\n 'searching for inebriation and a lap,',\r\n 'how many desperate girls',\r\n 'dried tears with the handkerchief of the sea.',\r\n 'That which the turbid water does not bury',\r\n 'I have to write and tell.',\r\n 'Steel arms, do not break my memory!” ',\r\n '— Yao Feng',\r\n '(Poem and Photo courtesy of Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 10,\r\n text: `“... His greatest joy was observing the sunsets over Penha Hill, marvelling at the sun's descent behind the imposing form of Lapa. He found himself captivated by the unhurried, deliberate return of junks laden with leaping fish. The gentle rustling of pine trees on Guia Hill stirred fond recollections. The Miradouro de D. Maria II provided him with an expansive view of the sea, stretching to the horizon, where he tenderly admired the Nine Islands, verdant sentinels guarding maritime routes. Camões Garden, with its whispering foliage. He dedicated entire afternoons to the curved bay of Bom Parto, amid the fishermen's shacks, watching as nets were drawn in, glistening with grey and golden mullet. Or to the greenery of the Campal Park, engaging in playful activities with children from Tap-Siac, all under the vigilant gaze of their nannies. Estrada de Cacilhas, Montanha Russa, Ilha Verde. Concealed gems within the City of the Name of God, where he sought solace for his troubles amidst the city's serene and captivating beauty.” (A-Chan, A Tancareira [A-Chan, the Boatwoman], 1974, p. 10)`,\r\n align: 'center',\r\n desc: [\r\n 'Life in the neighbourhoods - Inner Harbour, Penha, Bom Porto, Guia, Miradouro de D. Maria II, Camões Garden, Tap-Siac...',\r\n '(Early 20th century)'\r\n ]\r\n },\r\n {\r\n id: 11,\r\n text: `“The ice cream vendor A-Loi conducted his business with his renowned chant of ‘assi-clim’, resonating through the lanes and alleyways. The young noodle seller passed by, attracting customers by tapping a dried bamboo piece with a wooden stick. Farther along the way, the vendor of warm, fresh bread and butter biscuits advertised his delicacies with a distinctively nasal voice. Near the entrance to a flight of stairs, his call was met by the one from the man vending hám-ioc-chong and kó-cheng-chong, the catupá cakes, hot cakes of glutinous rice, pork and salted duck’s egg, wrapped in banana leaves. Such were the night sounds, full of nostalgia, conjuring up the joys of childhood. The intoxicating scent of night jasmine wafted from beyond the garden walls.” (A Trança Feiticeira [The Bewitching Braid], 2015, p. 160) `,\r\n align: 'center',\r\n desc: [\r\n 'Chinese and Portuguese gastronomy - Nighttime vendors near Camões Square',\r\n '(1930s-1940s)'\r\n ]\r\n },\r\n {\r\n id: 14,\r\n pic: '14.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Chinese and Portuguese gastronomy - Macanese Cuisine',\r\n '(Photo provided by the Cultural Affairs Bureau of the S.A.R. Government)'\r\n ]\r\n },\r\n {\r\n id: 16,\r\n text: `“… We were leaving when someone told us that the Church was offering a ‘small cup of tea’ to the communicants, with the assistance of their parents, in an adjoining room. There we went. A ‘small cup of tea’ in Macau in the thirties was, of course, a big tea-party. There were large quantities of pies and cookies, meat balls, sandwiches, and other sweetmeats the look of which made those fasting children even hungrier. As soon as we were told to start, the children literally devastated every dish and tray with patent voracity, forgetting all the previous good-behaviour. I myself plunged into the curry pies, which were really delicious. My mother’s eyes followed me and she would have scolded me, had I not been under a state of Grace. Half an hour later, we went home.” (My First Communion, “RC: Review of Culture”, (1) Apr.-Jun. 1987, p.73)`,\r\n align: 'center',\r\n desc: [\r\n 'Chinese and Portuguese gastronomy - Fat Tea, Macanese cuisine (1)',\r\n '(1930s-1940s)'\r\n ]\r\n },\r\n {\r\n id: 18,\r\n text: `“Then, the announcement for tea. At the dining room, the table was laden with salty and sweet dishes, along with the most traditional Macanese tea, over an embroidered tablecloth, impeccably white, sourced from the most cherished chest. The appetite of those present was enticed with eager murmurs. Croquettes and codfish cakes, stuffed rolls, chili bites, and cheese toast, the classic chicken and ham sandwiches, uncovered from lettuce leaves, and a large platter of chow mein and laksa were the highlights of the savory snacks. Miss Glafira apologized for not being able to provide radish cake, as she couldn't find the right radish. But it was thanks to the desserts that the housewife's inspired hand really shined. There were ‘nun's breasts’, ‘bride’s hairs’ and ‘egg candies’, fruit jelly, marble cake and pineapple cake, sponge cake and slices of homemade bread, as well as milk bebinca and surang-surave.” (Os Dores [The Dores], 2012, p. 95)`,\r\n align: 'center',\r\n desc: [\r\n 'Chinese and Portuguese gastronomy - Fat Tea, Macanese cuisine (2)',\r\n '(Early 20th century)'\r\n ]\r\n },\r\n {\r\n id: 19,\r\n pic: '19.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Chinese and Portuguese gastronomy - Macanese party and banquet',\r\n '(1930s-1940s)',\r\n '(Photo provided by the Cultural Affairs Bureau of the S.A.R. Government)'\r\n ]\r\n },\r\n {\r\n id: 20,\r\n text: `“I can still remember the huge table set diagonally across our large dining-room. It was covered with victuals and delicacies, typical Macanese courses cooked by my mother and her friends. The strong emanations of the ‘serrabulho’ (a stew made of curdled hog blood) – a speciality of my mother’s – were stronger than all the other fragrances put together and are still stuck to my nose and to my memory. Cold meats had also been ordered from Hong Kong’s Dairy Farm. Pies, cookies, sweetmeats and puddings also occupied a prominent place upon the table. There were the inevitable specialities of my mother’s recipes, ‘encantos de massa leve’, ‘golden prunes’ all smeared with sugar, ‘russians’, etc. Little glasses of ‘cow hand gelly’, made by my Grandmother Luísa, were among the most demanded ones. I was able to filch two of them without anyone noticing, to have the pleasure of eating them later on, by myself, leisurely, in my favourite corner on the terrace.” (My First Communion, “RC: Review of Culture”, (1) Apr.-Jun. 1987, p. 73)`,\r\n align: 'center',\r\n desc: [\r\n 'Chinese and Portuguese gastronomy - Fat Tea, Macanese cuisine (3)',\r\n '(1930s)'\r\n ]\r\n },\r\n {\r\n id: 21,\r\n text: `“The temperature that month of December was mild, and the food invited strong drinks of which there was plenty: table wine, whisky and beer were among the favourite. There was also punch, which was served out of a huge punch-bowl used only on very special days. Mal servants with long robes and maids with white tunics and black pants, their hair well combed in shiny tress with wood oil, waited on the guests, silent and polite. There was the laughter of young people, entwined with the graver voices of the grown-ups. The children played in the garden and they kept coming back to the table to get new supplies. The guests were coming and going, because there were tea-parties all over Macau that day and one could not miss any of them, or the hosts would certainly be offended. To be present was a strict duty of politeness. That was why some of the guests left as others knocked on the door, in a continuous coming and going. And always there was plenty of food and drink! Oh, the good old days!” (My First Communion, “RC: Review of Culture”, (1) Apr.-Jun. 1987, p.73)`,\r\n align: 'center',\r\n desc: [\r\n 'Chinese and Portuguese gastronomy - Wealthy Portuguese banquet',\r\n '(Circa 1930)'\r\n ]\r\n },\r\n {\r\n id: 22,\r\n text: `“While the strict gentlemen, after eating, favoured withdrawing into the backroom, for whist and pocker, the ladies into their bafá matches, and others stretched languishingly on the sofas and armchairs for trivial conversations, the youth began demanding that the dancing started. They were joined by the adults who didn't want to waste their time at the gambling table or the makeshift bar. The string orchestra settled on a dais, tuning their instruments, and the violins started wailing a waltz in honour of the celebrated hosts, to start the dance.\r\n Immediately, the hall was filled with other couples, spinning in a dance of skirts and colours... And time flew. Then came the polkas, and the mazurkas, the quadrille, followed by the lancers and marches.” (Amor e Dedinhos de Pé [Love and Tiny Toes], 2012, p. 226)\r\n `,\r\n align: 'center',\r\n desc: [\r\n 'Chinese and Portuguese gastronomy - Entertainment after the meals of the wealthy Portuguese',\r\n '(Early 20th century)'\r\n ]\r\n },\r\n {\r\n id: 23,\r\n pic: '23.jpg',\r\n align: 'center',\r\n desc: [\r\n '“They say we belong to the two trees.',\r\n 'No! We are just one.',\r\n 'Like branches, we twist',\r\n 'and wrap the wounds of the sky.',\r\n 'Holding hands, we go through the four seasons,',\r\n 'creating a language that is ours alone.',\r\n 'This way, we talk to the breeze',\r\n 'Or murmur through the jade leaves...”',\r\n '— Yao Feng',\r\n '(Poem and photo courtesy of Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 26,\r\n text: `“The couple needed dignity, and within the Chinese community where they now resided, she became his wife in every respect. A situation that left the ‘Christian city’ in horrified disagreement, and she went on being called a ‘Chinese lover’... They moved to the Tap Siac area, to Adolfo Loureiro Street, in a neighbourhood full of floricultors and at a short distance of the sumptuous Lou Kao Garden, a neighbourhood where Portuguese and Chinese houses mixed together. The improvement of their status was clear. The house assigned to them was proper and had a yard around it. She stopped dressing in Chinese style and resumed the habits she grew up with, not giving up on those she learned with her husband. She cleverly knew how to maintain the balance between both cultures. He gratefully accepted to get married the catholic way, without renouncing to his deep-rooted Buddhism. Thus, without a fuss, he reciprocated the proof of love she gave him when she submitted to the Buddhist marriage rites. Each of them executed an act of courage, before the disapproval of their respective people.” (Os Dores [The Dores], 2012, pp. 273-274)`,\r\n align: 'center',\r\n desc: [\r\n 'Integration and cultural confrontation - Chinese and Western lifestyles and customs (1)',\r\n '(Early 20th century)'\r\n ]\r\n },\r\n {\r\n id: 28,\r\n text: `“‘I had them drafted by a letter writer on the street. They are my grandfather’s recipes... herbal teas he would recommend. They are for A-Kuong to read. Everything is very clearly explained and he will know how to prepare them. Don’t laugh, godfather... I saw my grandfather perform miracle cures. Of course, he also failed. It is not my intention to claim these herbal teas will have conclusive effects, but they might help...’ ‘You have a lot of trust in traditional Chinese medicine.’ ‘Plenty. I’m annoyed when I hear people make fun of it, coming from ignorance, superstition or quackery. They forget it has been used for millennia. And, if it was that bad, there would be no more Chinese people. Everyone would die...’” (Amor e Dedinhos de Pé [Love and Tiny Toes], 2012, p. 275)`,\r\n align: 'center',\r\n desc: [\r\n 'Integration and cultural confrontation - Traditional Chinese medicine (2)',\r\n '(Early 20th century)'\r\n ]\r\n },\r\n {\r\n id: 29,\r\n text: `“In the thirties and until soon before the War of the Pacific (1941-1945), the highly solemn ceremony of First Communion used to take place every year on the first Sunday in December. It was held in the Cathedral and it brought together all the first communicants of every parish, nearly one hundred, or even more, boys and girls all dressed up in full rig, the boys wearing black or white, with the indispensable ribbon tired in a bow around the sleeve, the girls always in white, looking like sweet little birds with their long dresses and veils.” (My First Communion, “RC: Review of Culture”, (1) Apr.-Jun. 1987, p. 68)`,\r\n align: 'center',\r\n desc: [\r\n 'Religious events - First Communion',\r\n '(1930s)'\r\n ]\r\n },\r\n {\r\n id: 31,\r\n text: `“At ten o’clock, the march should start. The hour was approaching, the parade rows found discipline as each took their place. The flag bearer and helpers at the front, followed by the leader, then the musicians of the musical group, and the masked participants in the back. There were fifteen to twenty musicians, mandolins in front, guitars, ukuleles and two violins in the back, and several other instruments. The people in masks were about forty or fifty, a very flattering number for the organizers, who were keeping track without taking part in the march... Without flaw, the band played with gallantry a march from the Portuguese Magazine, in vogue at the time. Everyone moved in elegant tempo, with a buzz, along perky remarks. The marching of such a numerous group couldn’t go unnoticed, with the tuba’s melodic chords resounding through the air. Upon turning at Campo Street... The buildings woke up, windows would open with curious people leaning out, passers-by stopped in awe of the noise that agitated the calm, drowsy night. The rare automobiles would slow down and the rickshaws would rush there looking for unexpected clients. Inevitably, a tradition at the time was to hear the Chinese kids speaking in Portuguese with a blatant distortion of consonants: ‘Aqui popo… Aqui calanho…’1” (Os Dores [The Dores], 2012, pp. 126-127)\r\n

\r\n

1.The author uses these terms in the context of the Carnival celebrations in the streets of Macao to convey the reaction of the Chinese who, in a mocking way, tried to replicate some of the sayings of the partygoers. “Aqui popo” is the Macanese statement “Aqui bôbo” (Here, fool) and “Aqui calanho” is a corruption of “Aqui caralho” (Here, goddamnit), uttered by the Chinese.

`,\r\n align: 'center',\r\n desc: [\r\n 'Religious events - Carnival parade',\r\n '(Early 20th century)'\r\n ]\r\n },\r\n {\r\n id: 32,\r\n pic: '32.jpg',\r\n align: 'center',\r\n desc: [\r\n '“Oh, Camões, my old friend,',\r\n 'I write in your language, always and forever.',\r\n 'Nobody knows if you really were in Macao',\r\n 'but your statue is and has not yet left.',\r\n 'You say love is an invisible flame',\r\n 'but I saw it, very bright.',\r\n 'I did not see, nor do I want to see, the ashes.” ',\r\n '— Yao Feng',\r\n '(Poem and photo courtesy of Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 33,\r\n text: `“At the time of Primary Instruction, St. Domingos Street was part of my route to the school and back. Back then, I lived in St. Francisco Road, once an isolated and external place. In the morning, I would leave the house at half past eight, and at half past one in the afternoon. The path was always the same. Turning at the Nova Street towards Guia, through the upper part of the St. Francisco Garden, down the stairs and gentle slopes, reaching the lower part of the garden, opening up to the sea, before the Praia Grande landfills came to be. I would then lope through St. Clara Street, along the villas that existed there, and the tall wall of the Santa Rosa de Lima College, leaping the tip of the garden part of Campo Street, and I would then be at the narrow and meandering Anjos Cross, where I would traverse to the end, the entrance to Capitol Cinema. Turning left, I would enter St. Dominic’s Street, always packed with people, and rush to St. Dominic’s Square, staying away from the sun under the archways of Senado Square up to the crossing with Almeida Ribeiro Avenue. From there, I would reach the Cadeia Street (Dr. Soares Street) and go up, at a slower pace, through Calçada do Tronco Velho all the way to the top, reaching Calçada do Gamboa, where the Boy’s Primary School was, at the building now transformed into Police Squad No.1. On the way back, at noon and half past three, I would go the same way, backwards.” (Mariazinhas Street, Mong-Há, 1998, p. 74)`,\r\n align: 'center',\r\n desc: [\r\n 'Life journey - Henrique de Senna Fernandes - Walking to primary school (S. Domingos Street) ',\r\n '(Circa 1930)'\r\n ]\r\n },\r\n {\r\n id: 34,\r\n text: `“My introduction to Cheok Chai Un occurred during my time in secondary school. I lived at Estrada de São Francisco, which was then adorned with trees and paved in the Portuguese style, and I could choose one of two routes to school. I could either navigate around the Boca do Inferno, cross the Estrada dos Parses, and then descend the Calçada do Paiol, or I could veer onto Rua Nova to Guia. I would head to the top of the Rua Tomaz da Rosa and rush down the steps straight into the heart of Cheok Chai Un. Along the way, I passed by the well and the old Tou Tei Temple, emerging onto Rua do Campo. Turning right, I reached the entrance to the secondary school at Tap Siac in just five minutes. My preference leaned toward this second route.” (A Trança Feiticeira [The Bewitching Braid], 2015, p. 7)`,\r\n align: 'center',\r\n desc: [\r\n 'Life journey - Henrique de Senna Fernandes - Walking to secondary school (Cheok Chai Un, Horta da Mitra Neighbourhood)',\r\n '(1930s-1940s)'\r\n ]\r\n },\r\n {\r\n id: 35,\r\n text: `“Back then, students in Macao, headed for many years to the Metropolis, had no chance to see their parents and remaining family members except after graduation, and only when they decided to return to their homeland. Goodbyes, at the time, were a very painful affair, at the boarding bridges of the Inner Harbour, as there were no hydroplanes then to cut the goodbyes short to a minimum. In those distant days, farewells were said on the scheduled boats to Hong Kong, either at two-thirty in the afternoon or in the evening. The entire family gathered around the departing student for a long time, shedding tears in every corner. These scenes, mixed with hopeful prospects, were etched into the student's memory forever. Often, the hugs were the last ones given to someone, while for others, it marked the end of a friendship that would cool off during the separation. Current students from Macau who have the fortune of spending their vacations with their families every year or at least within a relatively short period of absence, due to the speed of communication and other advantages, cannot comprehend what students from earlier times went through, their sense of isolation, and their days of terrible depression. The most challenging moments were during the Christmas season.” (An Unforeseen Encounter, Nam Van, 1997, p. 22)`,\r\n align: 'center',\r\n desc: [\r\n 'Life journey - Henrique de Senna Fernandes - Leaving for university (Inner Harbour)',\r\n '(1940s)'\r\n ]\r\n },\r\n {\r\n id: 36,\r\n text: `“However, the end of the war created a discontinuity with the old world, which had been carefully preserved and had seemed to endure until then. Now, the unstoppable winds of change were blowing. Merchant ships, free from the mortal danger of submarines and mines, invaded once again the oceans and the seas, re-establishing traditional connection routes. Or they would create new ones. They would bring, in their teeming holds, shocking news – never before seen car models, electrical devices, gramophones and phongraphs, a never-ending stream of a variety of products that made life more comfortable, enjoyable and more ‘civilized’... Monolitic conservatism cracked, unable to fight external influences... The most corrosive element was cinema, the statements in which were accepted as real. It also became a trend. The few animatographs, set up in barns or adapted old warehouses, filled up with spectators, mesmerized by serial films, thrilling cowboy adventures, hilarious comedy reels, tear-inducing love dramas, displays of vamps and femme fatales, extravagant and daring in their dresses and hairstyles.” (Os Dores [The Dores], 2012, pp. 73-75)`,\r\n align: 'center',\r\n desc: [\r\n 'Changes in the Macao society after World War II (1)'\r\n ]\r\n },\r\n {\r\n id: 37,\r\n text: `“... The local dandies adopted the use of a flat straw hat, with black bands. Tiny bowtie instead of necktie, shirts with a soft and practical collar, free from the torture of a strictly hard collar, choking and strangling the neck. Light suits, instead of the dull black in Winter and white in Summer. Shorts for fishing and picnics, hairs laden in grease and glued against the scalp, with sideburns mimicking famous Latin cinema actors, clean-shaven faces instead of thick beards and bold mustaches, or those of a Chinese master... Quite a number of society ladies would turn up to the fancy eleven o’clock mass on Sunday, at the Cathedral, with ‘modern’ dresses, shoes and hats, as well as thinned hair. The prayers and the priest’s sermon were ignored, with the focus on the profiles that added a different note to the Mass.” (Os Dores [The Dores], 2012, pp. 75-76)`,\r\n align: 'center',\r\n desc: [\r\n 'Changes in the Macao society after World War II (2)'\r\n ]\r\n }\r\n ]\r\n}\r\n","export default {\r\n info: {\r\n title: '生活剪影',\r\n desc: '飛歷奇是澳門著名的律師和作家,藉着他百歲誕辰的契機,我們緬懷這位對澳門卓有貢獻的“澳門之子”的同時,也希望能讓更多人瞭解他和他的作品,與大家分享他的文學成就。在本部份,讀者可概略認識飛歷奇的生平和他的生活剪影。'\r\n },\r\n list: [\r\n {\r\n id: 1,\r\n pic: '1.jpg',\r\n align: 'left',\r\n desc: [\r\n '飛歷奇(1923.10.15-2010.10.4)是澳門著名作家及大律師,生於一個已有二百多年歷史,糅合葡萄牙、果亞及中國血統的土生葡人望族,是澳門之子。他於葡萄牙科英布拉大學修讀法律專業,1954年返回澳門執業,曾榮任律師公會主席、伯多祿商業學校校長及教師、國立圖書館及何東圖書館館長、土生教育協進會主席、立法會議員、教育委員會委員及文化委員會委員等職務。澳門回歸前,曾應邀前往北京見證《中葡聯合聲明》的簽署儀式。',\r\n '飛歷奇醉心寫作,文學創作成就斐然。早於求學時期,他便以短篇小說《蜑家女阿珍》獲得了1950年科英布拉大學文學奬。文化局歷年為飛歷奇出版了多部著作,其中《愛情與小腳趾》及《大辮子的誘惑》更被改編成電影,廣受好評。飛歷奇還為報刊和雜誌撰寫了大量文章,其中關於澳門早期電影的研究,具有相當學術價值。',\r\n '飛歷奇擅長透過說故事的方式描寫澳門中西文化交融的特質。其筆下的作品觸及不同的種族和社會階層,展示昔日的民生風貌,真切地重現20世紀上半葉澳門社會的實況,中葡兩個民族的交往和生活習俗,更有描繪傳統的土生葡人美食。他的作品,寫實而浪漫,質樸且温馨,藴含深厚的人文情懷,充實了澳門文學的內涵,被奉為澳門文學中的經典之一。 ',\r\n '飛歷奇畢生屢獲殊榮,計有:公共教育軍官勳章(1978)、殷皇子騎士團高級榮譽勳章(1986)、文化功績勳章(1989)、英勇勳章(1995)、寶劍聖地牙哥騎士團大軍官勳章(1998)、澳門榮譽市民(1999)、文化功績勳章(2001)。葡萄牙文化國際學院葡籍通訊院士(2003)、榮譽博士(2006)及(2008)。他博學多識、成就卓著,深具寬厚博愛的人文精神,是本地文化的代表人物。他的著作更是澳門重要的文化遺產。',\r\n '(照片由飛文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 2,\r\n pic: '2.jpg',\r\n align: 'center',\r\n desc: [\r\n '飛歷奇(左)和哥哥愛迪',\r\n '1930年代',\r\n '(照片由飛文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 3,\r\n pic: '3.jpg',\r\n align: 'center',\r\n desc: [\r\n '全家合照,攝於赴葡升學前。飛歷奇站在母親的背後。',\r\n '1946',\r\n '(照片由飛文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 4,\r\n pic: '4.jpg',\r\n align: 'center',\r\n desc: [\r\n '大學時代的飛歷奇',\r\n '50年代',\r\n '(照片由飛文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 5,\r\n pic: '5.jpg',\r\n align: 'center',\r\n desc: [\r\n '與同學攝於畢業慶典上',\r\n '50年代',\r\n '(照片由飛文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 6,\r\n pic: '6.jpg',\r\n align: 'center',\r\n desc: [\r\n '笑意滿滿的飛歷奇',\r\n '約60年代',\r\n '(照片由飛文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 7,\r\n pic: '7.jpg',\r\n align: 'center',\r\n desc: [\r\n '飛歷奇也熱愛教學,與學生攝於課堂內',\r\n '約60年代',\r\n '(照片由飛文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 8,\r\n pic: '8.jpg',\r\n align: 'center',\r\n desc: [\r\n '婚禮合照',\r\n '(照片由飛文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 9,\r\n pic: '9.jpg',\r\n align: 'center',\r\n desc: [\r\n '婚禮一刻',\r\n '(照片由飛文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 10,\r\n pic: '10.jpg',\r\n align: 'center',\r\n desc: [\r\n '飛歷奇父母',\r\n '(照片由飛文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 11,\r\n pic: '11.jpg',\r\n align: 'center',\r\n desc: [\r\n '飛歷奇家庭照',\r\n '(照片由飛文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 12,\r\n pic: '12.jpg',\r\n align: 'center',\r\n desc: [\r\n '與父母三代同堂',\r\n '(照片由飛文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 13,\r\n pic: '13.jpg',\r\n align: 'center',\r\n desc: [\r\n '在中式酒家晚飯',\r\n '(照片由飛文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 14,\r\n pic: '14.jpg',\r\n align: 'center',\r\n desc: [\r\n '攝於嘉年華活動',\r\n '50年代',\r\n '(照片由飛文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 15,\r\n pic: '15.jpg',\r\n align: 'center',\r\n desc: [\r\n '戲劇照',\r\n '(照片由飛文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 16,\r\n pic: '16.jpg',\r\n align: 'center',\r\n desc: [\r\n '與澳門法律界人士合照',\r\n '約1965',\r\n '(照片由飛文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 17,\r\n pic: '17.jpg',\r\n align: 'center',\r\n desc: [\r\n '與父親及其他人合照',\r\n '(照片由飛文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 18,\r\n pic: '18.jpg',\r\n align: 'center',\r\n desc: [\r\n '與法官及葡語作家賈樂安合照',\r\n '(照片由飛文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 19,\r\n pic: '19.jpg',\r\n align: 'center',\r\n desc: [\r\n '辦公中',\r\n '(照片由澳門檔案館提供)'\r\n ]\r\n },\r\n {\r\n id: 20,\r\n pic: '20.jpg',\r\n align: 'center',\r\n desc: [\r\n '寫作中',\r\n '2001',\r\n '(照片由飛文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 21,\r\n pic: '21.jpg',\r\n align: 'center',\r\n desc: [\r\n '與家人及友人晚飯後攝於峰景餐廳前',\r\n '2005.2.20',\r\n '(照片由陳麗蓮女士提供)'\r\n ]\r\n },\r\n {\r\n id: 22,\r\n pic: '22.jpg',\r\n align: 'center',\r\n desc: [\r\n '與友人街頭偶遇',\r\n '約2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 23,\r\n pic: '23.jpg',\r\n align: 'center',\r\n desc: [\r\n '攝於內港航海學校前',\r\n '約2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 24,\r\n pic: '24.jpg',\r\n align: 'center',\r\n desc: [\r\n '攝於新馬路辦事處前',\r\n '約2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 25,\r\n pic: '25.jpg',\r\n align: 'center',\r\n desc: [\r\n '攝於辦公室內',\r\n '約2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 26,\r\n pic: '26.jpg',\r\n align: 'center',\r\n desc: [\r\n '埋首研究',\r\n '約2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 27,\r\n pic: '27.jpg',\r\n align: 'center',\r\n desc: [\r\n '攝於議事亭藏書樓內',\r\n '約2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 28,\r\n pic: '28.jpg',\r\n align: 'center',\r\n desc: [\r\n '童真的一刻',\r\n '約2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 29,\r\n pic: '29.jpg',\r\n align: 'center',\r\n desc: [\r\n '攝於家中',\r\n '約2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 30,\r\n pic: '30.jpg',\r\n align: 'center',\r\n desc: [\r\n '攝於民政總署大樓花園',\r\n '約2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 31,\r\n pic: '31.jpg',\r\n align: 'center',\r\n desc: [\r\n '攝於東方基金會花園',\r\n '約2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 32,\r\n pic: '32.jpg',\r\n align: 'center',\r\n desc: [\r\n '攝於東方基金會花園',\r\n '約2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 33,\r\n pic: '33.jpg',\r\n align: 'center',\r\n desc: [\r\n '攝於澳門葡文學校前',\r\n '約2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 34,\r\n pic: '34.jpg',\r\n align: 'center',\r\n desc: [\r\n '攝於澳門葡文學校前',\r\n '約2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 35,\r\n pic: '35.jpg',\r\n align: 'center',\r\n desc: [\r\n '“這塊土地很小,但也是土地',\r\n '這塊土地很小,但也有很長的路',\r\n '我是這塊土地的兒子',\r\n '我的一生都在這塊土地上行走',\r\n '沒有什麽力量可以把我改變',\r\n '你聽,我的心跳',\r\n '就來自這塊土地的脈動”',\r\n '――姚風',\r\n '(詩歌及照片由姚京明先生提供)'\r\n ]\r\n }\r\n ]\r\n}\r\n","module.exports = __webpack_public_path__ + \"img/9.fb385290.jpg\";","module.exports = __webpack_public_path__ + \"img/14.e1987bd6.jpg\";","module.exports = __webpack_public_path__ + \"img/19.99f495d4.jpg\";","module.exports = __webpack_public_path__ + \"img/16.7cff1ad9.jpg\";","export default {\r\n info: {\r\n title: 'Na Ponta da Caneta',\r\n desc: 'Henrique de Senna Fernandes era exímio a retratar a vida e a sociedade dos chineses e dos portugueses em Macau no início do século passado. Nas suas obras, Macau apresenta um charme infinito da China e do Ocidente e um toque romântico e lírico, como se fossem ukiyo-e, pois leva os leitores a vaguear pelas ruas e becos do passado, observando o dia-a-dia. Sempre persistindo no conceito de integração dos dois povos, as suas obras contam histórias de amor inter-racial. Apaixonado pela gastronomia, apresenta-nos a cozinha macaense na sua ampla variedade e forma através das suas próprias experiências e das histórias de várias personagens. O estilo de vida e os eventos religiosos dos macaenses também são relatados nas suas obras. Após apreciarmos as coloridas ukiyo-e de Macau de Henrique de Senna Fernandes, percebemos definitivamente que quem amou profundamente Macau e viveu uma vida do sonho é sem qualquer dúvida o “filho da terra”, Henrique de Senna Fernandes.'\r\n },\r\n list: [\r\n {\r\n id: 1,\r\n pic: '1.jpg',\r\n align: 'center',\r\n desc: [\r\n '“Sou baía de sangues diferentes.',\r\n 'Diferentes sangues correm no meu corpo',\r\n 'desaguando na vasta baía,',\r\n 'onde aperto a mão de todas as ondas',\r\n 'e viajo com todos os peixes.',\r\n 'As nuvens ignoram fronteiras',\r\n 'mas conheço o seu endereço.” ',\r\n '— Yao Feng',\r\n '(Poema e fotografia cedida pelo Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 2,\r\n text: `“A população de Cheok Chai Un orçava à roda de alguns milhares, quase todos gente pobre, amontoados em espaço diminuto que era o seu mundo. Havia, é certo, uma quadrilha de patifes, mas a maioria era ordeira e pacífica, ganhando a dura tigela de arroz de cada dia. Eles, operários, marceneiros, carpinteiros, moços de recado, condutores de riquexó, vendilhões ambulantes, carregadores de zorras, etc. Elas, serventes, tecedeiras, varredoras de rua, penteadeiras, lavadeira, aguadeiras, etc. Eram, por junto, pessoas que se dedicavam a profissões humildes e raro atingiam a condição de patrões… Por consequência, em volta do poço, hoje desaparecido, como aliás todos os outros poços públicos, reunia-se de manhã ao anoitecer, sobretudo, o mulherio que ia ‘bater a água’, isto é, tirar a água para os baldes, num constante corrupio. O local era também o ponto de convívio da vida social, ali se consersava, se mexericava, se elevavam e se destruíam reputações, se conheciam as novidades e a má-língua.” (A Trança Feiticeira, 2015, p.6-8)`,\r\n align: 'center',\r\n desc: [\r\n 'Vida dos bairros - Bairro Horta da Mitra (Cheok Chai Un)',\r\n '(Décadas de 1930-1940) '\r\n ]\r\n },\r\n {\r\n id: 3,\r\n text: `“… O Largo de Camões dormitava, no rescaldo da canícula. Aqui e ali, nos bancos verdes, velhos e mulheres gozavam os últimos resquícios do sol da tarde. Uma cabeça de rapariga espreitava a rua numa das janelas da antiga casa de Adozinho. Doutro lado, a Casa de Beneficência das Madres Canossianas destacava-se no seu recolhimento conventual, toda a fachada reclusa e sem alegria. Pregões de vendilhão de sopas de fitas. Prantos de violino e alaúde nativos. Matraquear longínquo de pedras de má-cheok. Da Rua do Tarrafeiro, explosões de petardos. Nos cimos da vegetação frondosa do Jardim do Poeta incandesciam revérberos doirados. A passarada em chilreio disseminava-se por entre a ramaria das acácias.” (A Trança Feiticeira, 2015, p.209)`,\r\n align: 'center',\r\n desc: [\r\n 'Vida dos bairros - Largo de Camões',\r\n '(Décadas de 1930-1940)'\r\n ]\r\n },\r\n {\r\n id: 4,\r\n text: `“... A Rua dos Mercadores rumorejava, mesmo àquela hora, em plena actividade. Os vendilhões atravancavam os passeios, à compita com as lojas. Expunham os mais diversos objectos – quinquilharias, adelos, ferros-velhos, obrinhas de arte, falsas na maioria, louças de barro para mais desvairado uso. Reconheciam-se odores de ervas e chás medicinais, de canjas e comidas variadas que fumegavam, de legumes avinagrados e diversos achares. Conversava-se alto, discutia-se, mercadejava-se. Os peões eram obrigados a descer para o meio da rua, abrindo alas para muitos riquexós, nas suas idas e vindas, os condutores gritando. Pedintes mendigavam, garotos pulavam muito sujos, crianças choravam, sacudidas por mães frenéticas. Raros automóveis e bicicletas deslizavam, buzinando ou trinando as campainhas respectivamente. Era a animação do Bazar, na sua pujança que nunca descansava.” (A Trança Feiticeira, 2015, p.191)`,\r\n align: 'center',\r\n desc: [\r\n 'Vida dos bairros - Rua dos Mercadores',\r\n '(Décadas de 1930-1940)'\r\n ]\r\n },\r\n {\r\n id: 5,\r\n text: `“Entraram no troço largo da Rua das Estalagens, tão activa e burburinhante como a rua que deixaram atrás, com os seus vendilhões ambulantes e tendinhas de comércio atravancando o acesso às lojas, num ambiente de feira permanente. Os mesmos cheiros e pregões, diálogos ruidosos, berraria dos condutores de riquexós, zorras a chiar e uma babilónia de vozes. Um barbeiro ambulante oferecia os seus préstimos, apontando a cadeira de serviço. O velho dentista de rua esfuracava, naquele momento, a boca dum desgraçado que urrava, seguro pelos braços por um homem possante. O narrador de histórias já tinha o seu público e começava a desfiar, com eloquência, a lenda dum herói.” (A Trança Feiticeira, 2015, p.192)`,\r\n align: 'center',\r\n desc: [\r\n 'Vida dos bairros - Rua das Estalagens',\r\n '(Décadas de 1930-1940)'\r\n ]\r\n },\r\n {\r\n id: 6,\r\n text: `“… Havia quem cantasse junto às árvores do Lilau, não muito afastadas da casa. Era um grupo de rapazes que, a despeito do frio, garganteavam melodias em moda, ao som de bandolins e viola, canções portuguesas e inglesas, um ou outro fado. As vozes eram afinadas e o acompanhamento apurado. Devia haver por ali, algures, uma moça por quem o tenor mavioso morresse duma paixão assolapada. Depois duma pausa, a mesma voz, com blandícia, gorjeou uma velha xácara macaense: ‘Catrina, minha Catrina; Catrina meu da travessa; Nunca bom ficá triste, Catrina; Vôs lôgo fica condessa.’ ” (Amor e Dedinhos de Pé, 2012, p.351)`,\r\n align: 'center',\r\n desc: [\r\n 'Vida dos bairros – Lilau',\r\n '(Início do século XX)'\r\n ]\r\n },\r\n {\r\n id: 7,\r\n text: `“… Em baixo, as cadeirinhas movimentavam-se nos pachos de sol e sombra, cruzando com os riquexós rivais. Juncos e lorchas dormitavam por entre chispas de água plácida. De cócoras, na muralha de granito, sob a sombra das árvores rumorejantes, uma penteadeira untava de óleo de madeira a trança grossa duma jovem marítima, depois de cortar, a fio de linha, a penugem do cabelo no alto de testa, que não obedecia à lisura do penteado, uma operação dolorosa a que se submetiam, sem murmúrios, as beldades do povo. Perto, o vendedor ambulante de acepipes apregoava as excelências dos seus produtos avinagrados, enquanto, mais além, o homem dos tin-tins batia os ferritos e o amoladore de facas esfalfava-se, no seu aparelho primitivo, a polir um parão de cozinha.” (Amor e Dedinhos de Pé, 2012, p.388-9)`,\r\n align: 'center',\r\n desc: [\r\n 'Vida dos bairros - Baía da Praia Grande (1)',\r\n '(Início do século XX)'\r\n ]\r\n },\r\n {\r\n id: 8,\r\n text: `“A Baía da Praia Grande recobria-se de oiro do sol que declinava atrás da Ilha da Lapa. A água da enchente reverberava em cintilações resplandecentes, murmurava em solilóquios junto da muralha de granito, mas ao longe batia forte nas pedras extremas do fortim de 1.º de Dezembro. Juncos preguiçosos nos ancoradouros recolhiam as velas. Lorchas e sampanas balanceavam ao sabor da maré. Tancares diminutos, em labor incessante de vaivém, riscavam em tiras de espuma o manto esverdeado da água dos princípios de Setembro. Nos cais de pedra, em plano inclinado, desembarcava-se o pescado do dia, em cestas de vime. A contemplação da paisagem larga arrebatou Leontina. Toda a orla do casario da Praia Grande, em curva graciosa, duma ponta à outra, desde o Grémio Militar à arruinada Fortaleza do Bom Parto resplendia, ornada de árvores frondosas. Os reflexos doirados do sol quase cegavam as raparigas… Identificou alguns edifícios, a ermida da Penha, o Hotel Bela Vista, o Palacete de Santa Sancha, o Palácio do Governo, o Tribunal, os contornos superiores da Igreja de S. Lourenço, do Seminário de S. José e da Sé Catedral. Um tancá aproximou-se, esgueirando-se em baixo, subindo e descendo na água murmurante. Enquanto a da popa mantinha o leme controlado, a tancareira da proa, jovem sorridente, perguntava às duas raparigas se queriam comprar frutas da época de que o barquito estava cheio. As bananas, as anonas e os dióspiros convidavam a saboreá-los, mas o risco de sujarem o vestido levou-as a desistir. O tancá partiu, movendo-se rés-vés à muralha.” (Os Dores, 2012. p.82-83)`,\r\n align: 'center',\r\n desc: [\r\n 'Vida dos bairros - Baía da Praia Grande (2)',\r\n '(Início do século XX)'\r\n ]\r\n },\r\n {\r\n id: 9,\r\n pic: '9.jpg',\r\n align: 'center',\r\n desc: [\r\n '“Chegaram os barcos, só para partirem de novo.',\r\n 'No Porto Interior, armazém de encontros e de despedidas,',\r\n 'quantos marinheiros portugueses desembarcaram',\r\n 'à procura de embriaguês e de colo,',\r\n 'quantas raparigas desesperadas',\r\n 'secaram as lágrimas com o lenço do mar.',\r\n 'O que a água turva não enterra',\r\n 'tenho de escrever e contar.',\r\n 'Braços de ferro, não me quebrem a memória!” ',\r\n '— Yao Feng',\r\n '(Poema e fotografia cedida pelo Prof. Yao Jingming )'\r\n ]\r\n },\r\n {\r\n id: 10,\r\n text: `“… Gostava, sobretudo, de admirar os crepúsculos da Penha, de admirar o sol a esconder-se por trás da Lapa imponente. Assistia, empolgado, ao regresso lento e cansado dos juncos, atulhados de peixe saltitante. Enternecia-o o ramalhar dos pinheiros da Guia que lhe blandiciavam recordações. O Mirante de D. Maria, onde os seus olhos furavam o mar até o horizonte e acarinhavam as Nove Ilhas, sentinelas verdes que guardavam os caminhos marítimos. O jardim de Camões, as suas frondes sussurrantes. Passava tardes inteiras na curva do Bom Porto, junto à barraca do pescador a presenciar a recolha das redes, onde prateavam mugens e taínhas. Ou nas verduras do Campal em brincadeira com a petizada do Tap-Seac, sob o olhar vigilante das criadas. Estrada de Cacilhas, Montanha Russa, Ilha Verde. Recantos da Cidade do Santo Nome de Deus a cujo silêncio e beleza ia rogar sossego para os seus pesares.” (A-Chan, a Tancareira, 1974, p.10)`,\r\n align: 'center',\r\n desc: [\r\n 'Guia, Mirante de D. Maria, Jardim Camões, Tap-Seac…',\r\n '(Início do século XX)'\r\n ]\r\n },\r\n {\r\n id: 11,\r\n text: `“O sorveteiro A-Loi propagandeava o seu produto, com o seu famoso pregão ássi-clim, repercutindo pelas calçadas e vielas. O garoto da venda de min cruzava, batendo o taco de madeira, taque-taque, sobre um pedaço de tronco seco de bambueiro, convocando fregueses. Mais ao longe, o vendilhão de pão quente e fresco e de bolacha-manteiga goelava as suas delícias, com a voz caracteristicamente anasalada. Respondia-lhe, da embocadura duma escadaria, o vendilhão de hám-ioc-chong e de kó-cheng-chong, os bolos de catupá, bolos quentes de arroz gomoso, carne de porco e ovo salgado de pata, embrulhados em folhas de bananeira. Eram sons que enchiam de nostalgia a noite e evocavam a infância e as suas delícias. Dos muros dos quintais, escorria o perfume olorante das damas-da-noite.” (A Trança Feiticeira, 2015, p.160)`,\r\n align: 'center',\r\n desc: [\r\n 'Gastronomia chinesa e portuguesa - Vendilhões nocturnos junto à Praça de Camões',\r\n '(Décadas de 1930-1940)'\r\n ]\r\n },\r\n {\r\n id: 12,\r\n text: `“Ela voltou com uma terrina de barro fumegante, contendo caranguejos dum vermelho muito vivo, embebidos em molho de feijão preto. Aqueles caranguejos, tão atraentes, de fama afrodisíaca, vinham muito a propósito, como um hino glorioso à vida… Estavam mesmo apuradinhos, o molho picante, a carne branca, tenrinha e bem temperada. Um gosto especial e reconfortante. Parecia mesmo impossível que isto acontecesse num casebre miserável, onde tais luxos não seriam muito corriqueiros.” (A Trança Feiticeira, 2015, p.61)`,\r\n align: 'center',\r\n desc: [\r\n 'Gastronomia chinesa e portuguesa - Caranguejo em molho de feijão preto da A-Leng ',\r\n '(Décadas de 1930-1940)'\r\n ]\r\n },\r\n {\r\n id: 13,\r\n text: `“Decidiu-se. Desde que pusera pé na rua, perseguira-o a saudade de ovos estrelados que se fixara insidiosamente nas narinas. Ia ao Fat Siu Lau, o mais popular restaurante de comida portuguesa do tempo para comê-los, mais um bife suculento, com muita cebola e batatas fritas… Nunca lhe souberam tão bem os ovos estrelados, a clara tostadinha nos bordos, o bife grosso e ennorme, o monte de cebolas e batatas…” (A Trança Feiticeira, 2015, p.124)`,\r\n align: 'center',\r\n desc: [\r\n 'Gastronomia chinesa e portuguesa - Cozinha ocidental do Restaurante Fat Siu Lau',\r\n '(Décadas de 1930-1940)'\r\n ]\r\n },\r\n {\r\n id: 14,\r\n pic: '14.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Gastronomia chinesa e portuguesa - Cozinha Macaense.',\r\n '(Fotografia cedida pelo Instituto Cultural do Governo da R.A.E.M.) '\r\n ]\r\n },\r\n {\r\n id: 15,\r\n text: `“... Dos pratos macaenses que, em casa dos pais, eram uma especialidade: o empadão de massa fina, com a sua chincha de galinha, cogumelos e nacos de porco, a capela, de sabor a queijo e azeitona preta, o sarrabulho de molho apimentado. Dos condimentos que acompanhavam o arroz, como o missó-cristão, o peixe-esmargal, o limão de Timor e o balichão macaense.” (A Trança Feiticeira, 2015, p.182)`,\r\n align: 'center',\r\n desc: [\r\n 'Gastronomia chinesa e portuguesa - Cozinha Macaense',\r\n '(Décadas de 1930-1940)'\r\n ]\r\n },\r\n {\r\n id: 16,\r\n text: `“… Já saíamos, quando alguém nos avisou que a Sé oferecia um ‘chazinho’ para os comungantes, com a assistência dos pais, numa sala lateral da igreja. Fomos. Claro que um ‘chazinho’ em Macau, nos anos 30, era um chazão. Havia uma quantidade de pastéis e bolos, chilicotes, croquetes, pães recheados e outras guloseimas que acicatavam o apetite de crianças esfaimadas que se achavam em jejum. Logo que houve o sinal de começar, a petizada devastou os pratos com uma voracidade notável, esquecida da compostura anterior. Eu próprio atirei-me a uns pastéis de massa folhada com recheio de caril que estavam deliciosos. A minha mãe seguiu-me com os olhos e ter-me-ia censurado se não pairasse sobre mim o estado da Graça. Meia hora depois, retirávamo-nos.” (A Minha Primeira Comunhão, Mong-Há, 1998, p.68)`,\r\n align: 'center',\r\n desc: [\r\n 'Gastronomia chinesa e portuguesa - Chá Gordo, cozinha Macaense (1)',\r\n '(Décadas de 1930-1940)'\r\n ]\r\n },\r\n {\r\n id: 17,\r\n text: `“…Vieram as primeiras encomendas e depois o chá-gordo dum importante aniversário, de que ficaram encarregadas exclusivamente. Foi um êxito. Tinham, de facto, mãos de fada, uma perícia sem rival. Comia-se e chorava-se por mais. Quem sabe confeccionar o bolo-menino, o bolo-coco, o surang-surave, o pão-de-casa, as coqueiras, as tochas e os rebuçados de ovos? O cake de noiva e o do Natal, os coscorões, as aluas, os fartes, as empadas, as bebincas de leite, as barrigas-de-freira, toda uma generalidade de pastéis, bolos e outras guloseimas de que a doçaria macaense é tão pródiga? E os ‘salgados’? Quem podia sobrepor-se ao empadão das Padillas, de massa tão fofa e recheio tão rico que eram uma delícia de deuses? E os pães recheados, os chilicotes e os cheese-toasts, o peru assado, com o célebre recheio de carne picada com nozes? Os capões, a vaca estudada, o porco à indiana, o caril de galinha, o arroz de pardal, o arroz-pilau ou gordo das Padillas, o missó cristão?” (Amor e Dedinhos de Pé, 2012, p.220)`,\r\n align: 'center',\r\n desc: [\r\n 'Gastronomia chinesa e portuguesa - Chá Gordo, cozinha Macaense (2)',\r\n '(Início do século XX)'\r\n ]\r\n },\r\n {\r\n id: 18,\r\n text: `“Depois, anunciou-se o chá. Na casa de jantar, a mesa vergada de pratos de salgados e doces, do mais tradicional do chá macaense, sobre uma toalha bordada, de brancura imaculada, saída do baú de estimação, atraiu a lambarice das presentes, num rumor açodado. Croquetes e bolinhos de bacalhau, pãezinhos recheados, chilicotes e cheese-toast, as clássicas sandes de galinha e fiambre, destapadas de folhas de alface, e uma travessa enorme de chau-chau e lacassá faziam o forte dos salgados. D. Glafira desculpava-se por não poder obsequiar com bebinca de rábano, por não ter achado nabo a preceito. Mas foi na doçaria que as mãos inspiradas da dona de casa se distinguiram. Havia ‘mamas de freira’, cabelos-de-noiva e rebuçados de ovos, gelatina de frutas, bolo mármore e bolo de ananás, pão-de-ló e fatias de pão-de-casa, a bebinca de leite e surang-surave.” (Os Dores, 2012. p.95)`,\r\n align: 'center',\r\n desc: [\r\n 'Gastronomia chinesa e portuguesa - Chá Gordo, cozinha Macaense (3)',\r\n '(Início do século XX)'\r\n ]\r\n },\r\n {\r\n id: 19,\r\n pic: '19.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Gastronomia chinesa e portuguesa - Festa e banquete macaense',\r\n '(Décadas de 1930-1940)',\r\n '(Fotografia cedida pelo Instituto Cultural do Governo da R.A.E.M.)'\r\n ]\r\n },\r\n {\r\n id: 20,\r\n text: `“Ainda me lembro da mesa enorme atravessada em diagonal, na espaçosa casa de jantar que tínhamos. Uma mesa carregada de vitualhas e iguarias, pratos de culinária macaense, confeccionados por minha mãe e suas amigas. As emanações fortes e apimentadas do sarrabulho – um segredo da minha mãe – sobrepunham-se a outras fragrâncias e ainda estão vivas no meu olfato e na minha nostalgia. Tinham sido também encomendadas carnes frias da ‘Dairy Farm’ de Hong Kong, entre as quais, o game-pie predilecto do meu Avô Damião. Pastéis, bolos, doces e pudins ocupavam outro tanto um lugar proeminente na mesa. Os ‘encantos de massa leve’, as ‘ameixas douradas’, besuntadas de açúcar, os ‘russos’, os ‘cabelos de noiva’, os ‘macazotes’, a ‘bebinca de leite’, o surang-surave, etc. Copitos de ‘geleia de mão de vaca’, obra da minha avó materna, a querida Avó Luíza, eram dos mais cobiçados. Fiz mão leve de dois copitos, à sucapa, para saborear mais tarde, quando estivesse no meu lazer, no canto favorito do terraço.” (A Minha Primeira Comunhão, Mong-Há, 1998, p.69-70)`,\r\n align: 'center',\r\n desc: [\r\n 'Gastronomia chinesa e portuguesa - Chá Gordo, cozinha Macaense (4)',\r\n '(Década de 1930)'\r\n ]\r\n },\r\n {\r\n id: 21,\r\n text: `“A temperatura mantinha-se amena para Dezembro, as comidas inspiravam bebidas fortes que havia a granel. Vinhos de mesa, whisky e cerveja, eram das preferidas. Havia também ponche que se extraía duma poncheira monumental, utilizada só em dias especiais. Criados de túnica comprida e criadas de cabaia branca e calças pretas, a trança bem penteada e luzidia de óleo de madeira, serviam silenciosos e amáveis. Havia risos de gente moça, casando-se com as vozes mais graves da meia-idade. s crianças traquinavam no jardim ou vinham lestas para a mesa para se reforçarem. Os convidados iam e vinham, pois nesse dia havia chás por Macau fora e não se podia faltar a nenhum, sem ofensa para os anfitriões. Marcar a presença constituía um dever rigoroso de etiqueta. Por isso, enquanto uns partiam, outros batiam à porta, num vaivém contínuo e havia sempre que comer e beber. Bons tempos!” (A Minha Primeira Comunhão, Mong-Há, 1998, p.70)`,\r\n align: 'center',\r\n desc: [\r\n 'Gastronomia chinesa e portuguesa - Banquete dos portugueses abastados',\r\n '(Cerca de 1930)'\r\n ]\r\n },\r\n {\r\n id: 22,\r\n text: `“Se cavalheiros graves, depois dos comes, preferiam recolher-se para a sala do fundo, para o whist e para o pocker, e as senhoras para as partidas de bafá, e outros se estendiam languidamente nos sofás e poltronas para conversas triviais, a mocidade começou a exigir o começo do bailarico. Nisto também se juntavam adultos que não queriam perder tempo na mesa do jogo ou junto do bar improvisado. A orquestra de cordas instalou-se num estrado, afinou os instrumentos e os violinos começaram a gemer uma valsa dolente, em honra dos anfitriões homenageados, que abriram o baile. Imediatamente, o salão encheu-se doutros pares, rodopiando num rumor de saias e de colorido… E o tempo deslizou. Vieram as polcas e as mazurcas, marcou-se a quadrilha, seguiram-se os lanceiros e houve marchinhas.” (Amor e Dedinhos de Pé, 2012, p.226)`,\r\n align: 'center',\r\n desc: [\r\n 'Gastronomia chinesa e portuguesa - Entretenimentos após as refeições dos portugueses abastados',\r\n '(Início do século XX)'\r\n ]\r\n },\r\n {\r\n id: 23,\r\n pic: '23.jpg',\r\n align: 'center',\r\n desc: [\r\n '“Dizem que pertencemos às duas àrvores.',\r\n 'Não! Somos apenas uma.',\r\n 'Como ramos, enroscamo-nos',\r\n 'e embrulhamos as feridas do céu.',\r\n 'De mãos dadas, atravessamos as quatro estações,',\r\n 'criando uma linguagem que é só nossa.',\r\n 'Assim, conversamos à brisa',\r\n 'Ou murmuramos pelas folhas de jade…” ',\r\n '— Yao Feng',\r\n '(Poema e fotografia cedida pelo Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 24,\r\n text: `“… Gostava de ficar ao pé dela a seguir a marcha rutilante das estrelas, a paisagem nocturna de Macau, o casario da Penha e o da Barra, diluídos em sonho no fundo azul da noite. Era feia, ignorante, açulada pela canga do rio. Mas os olhos orientais não escondiam uma imensa ternura pelo marinheiro saudoso do mar. Sensibilizava-o a maneira como lhe sorria, como lhe oferecia a tigela de chá ou como lhe passava os dedos calosos e ásperos pelos seus cabelos loiros de europeu, num requinte de familiaridade. Falavam pouco, entendiam-se mais por gestos que por palavras. Mas que reconfortantes os silêncios em que ela se apagava num canto do tancá para não lhe perturbar as meditações.” (A-Chan, a Tancareira, 1974, p.11)`,\r\n align: 'center',\r\n desc: [\r\n 'Integração e confronto cultural - casal de diferentes nacionalidades',\r\n '(Início do século XX)'\r\n ]\r\n },\r\n {\r\n id: 25,\r\n text: `“Às vezes, A-Sôi, é difícil mesmo viver com um Kuai. Ele tem hábitos e uma maneira de pensar que me deixam pasmada, pela estupidez. Vê só na maneira de comer… Há coisa mais fácil e que exija menor esforço que comer com os pauzinhos? É só com uma das mãos e é muito mais elegante, delicado e prático. Os talheres obrigam à utilização de duas mãos, o garfo, a faca, a colher para a sopa, a colher para o arroz, tudo inutilmente complicado… Imagina tu que já não posso arrotar depois da refeição. Que há de mal num arroto? Significa que estamos repletos, satisfeitos, que a comida é boa. É uma homenagem até ao anfitrião, ao cozinheiro. Mas para os kuais, é malcriação. Não é uma gente muito peculiar? Aprendi a beber café, um bocado de vinho e comer pão com manteiga. Há uma coisa, no entanto, que não admito. Beber chá com açúcar. Fica uma horrível mistela e estraga o chá. Os kuais são incivilizados, não conhecem as virtudes do chá. Não, nunca!” (A Trança Feiticeira, 2015, p.162)`,\r\n align: 'center',\r\n desc: [\r\n 'Integração e confronto cultural - Hábitos de vida',\r\n '(Décadas de 1930-1940)'\r\n ]\r\n },\r\n {\r\n id: 26,\r\n text: `“Tiveram as suas dificuldades, mas cada um assumiu o seu papel. Ligada a um chinês, aceitou casar-se com ele, segundo os ritos budistas. O casal precisava de dignidade e, perante o meio chinês onde passaram a viver, ela ficou sendo a esposa dele, para todos os efeitos. Uma situação com que a ‘cidade cristã’ não concordou horrorizada, continuando ela a ser apodada como ‘amásia de chinês’… Mudaram-se para a zona do Tap Seac, à Estrada Adolfo Loureiro, no bairro espalhado de floricultores e a pouca distância do sumptuoso Jardim de Lou Kao, bairro onde se misturavam casas de famílias portuguesas e chinesas. A subida de status foi evidente. A casa que lhes coube era suficiente e tinha quintal em redor. Ela deixou de vestir-se à chinesa e retomou os hábitos em que fora criada, não renunciando, porém, àqueles que aprendera com o marido. Soube inteligentemente manter o equilíbrio entre duas culturas. Ele, grato, acedeu casar-se catolicamente, sem renunciar ao seu entranhado budismo. Reciprocou assim, sem alarde, a prova de amor dela, quando se submetera aos ritos de casamento budista. Cada um cumprira um acto de coragem, perante a reprovação respectiva das suas gentes.” (Os Dores, 2012. p.273-274)`,\r\n align: 'center',\r\n desc: [\r\n 'Integração e confronto cultural - Hábitos de vida e costumes chineses e ocidentais (1)',\r\n '(Início do século XX)'\r\n ]\r\n },\r\n {\r\n id: 27,\r\n text: `“O mesmo pároco benzeu a casa a pedido de Adozinho e rezou pela felicidade daquela família. Ao mesmo tempo, no quintal, a Abelha-Mestra, budista convicta e desconfiada dos ritos estrangeiros, queimava pivetes e papéis votivos para a mantença do bom fong-soi. Com o beneplácito de duas religiões, auguravam-se a paz e a prosperidade daquela habitação.” (A Trança Feiticeira, 2015, p.213)`,\r\n align: 'center',\r\n desc: [\r\n 'Integração e confronto cultural - Hábitos de vida e costumes chineses e ocidentais (2)',\r\n '(Décadas de 1930-1940)'\r\n ]\r\n },\r\n {\r\n id: 28,\r\n text: `“ ‘Mandei-os redigir pelo escriba ambulante. São receitas do meu avó… São tisanas que ele recomendava. São para o A-Kuong lê-los. Está tudo muito claro e ele saberá como preparar. Não sorria, padrinho… Vi o meu avô fazer curas milagrosas. Evidentemente que falhou também. Não pretendo afirmar que estas tisanas terão efeitos decisivos, mas poderão ajudá-lo…’ ‘Tens muita confiança na medicina tradicional chinesa.’ ‘Bastante. Irrita-me quando ouço troçar dela, como fruto de ignorância, superstição e charlatanismo. Esquecem-se de que é praticada há milénios. E, se fosse tão má, já não existia o povo chinês. Morria tudo…’ ” (Amor e Dedinhos de Pé, 2012, p.275)`,\r\n align: 'center',\r\n desc: [\r\n 'Integração e confronto cultural - Medicina tradicional chinesa',\r\n '(Início do século XX)'\r\n ]\r\n },\r\n {\r\n id: 29,\r\n text: `“Nos anos 30 e até pouco antes do início da Guerra do Pacífico (1941-1945), a soleníssima cerimónia da Primeira Comunhão realizava-se anualmente no primeiro domingo de Dezembro. Mais tarde, a data mudar-se-ia para 8 de Dezembro, dia de Imaculada Conceição e feriado. Era na Sé Catedral, reunindo os primeiros comungantes de todas as freguesias, quase uma centena ou mais de rapazes e meninas, todos trajados a preceito, eles de preto ou de branco, com o laço obrigatório no braço, elas sempre de branco, com o véu e vestido comprido que lembravam noivas pequeninas.” (A Minha Primeira Comunhão, Mong-Há, 1998, p.55)`,\r\n align: 'center',\r\n desc: [\r\n 'Eventos religiosos - A primeira comunhão',\r\n '(Década de 1930)'\r\n ]\r\n },\r\n {\r\n id: 30,\r\n text: `“Semanalmente, havia um dia que as educandas aguardavam com ansiedade. Era às quintas-feiras, quando saíam para um passeio, o único ensejo de ver a cidade, as ruas, as pessoas, o movimento dos riquexós... Das quatro às cinco e meia, duas a duas, em fila indiana, vestidas com o severíssmo e feio uniforme cinzento, largo o suficiente para não se lhes ver as formas. Cabelo cortado curto, como de bonecas japonesas, sem nenhum ornamento nem mesmo pó de arroz, lá seguiam, passo uniforme, as mais pequeninas à frente, as mais velhas atrás, com as madres fechando o cortejo… Sem itinerário fixo, conforme o capricho das madres, iam à Praia Grande, ao jardim de S. Francisco ou ao Campal e ao jardim de Vasco da Gama, percorriam a Estrada da Vitória, o bairro da Flora, onde admiravam as lindas vivendas, disseminadas entre vegetação tratada. Viam de longe as manifestações da riqueza, gente bem vestida, crianças bem alimentadas, vigiadas pelas criadas, outra vida que não a existência triste e confinada do convento… Não podiam dirigir palavra a ninguém estranho ao grupo, nem virar a cabeça demoradamente para quem quer que fosse.” (Os Dores, 2012. p.64)`,\r\n align: 'center',\r\n desc: [\r\n 'Eventos religiosos - Passeio das orfãs do convento',\r\n '(Início do século XX)'\r\n ]\r\n },\r\n {\r\n id: 31,\r\n text: `“Às dez em ponto, devia iniciar-se a marcha. A hora aproximava-se, a coluna do cortejo disciplinava-se cada um tomando o seu lugar. A porta-bandeira com as ajudantes à cabeça, seguida pelo chefe, depois os músicos da tuna e na cauda os mascarados. Os músicos eram quinze para vinte, bandolins à frente, as violas, os eukaliles e dois violinos atrás e outros instrumentos variados. Os mascarados contavam-se entre quarenta e cinquenta, um número muito lisonjeiro para os organizadores, que acompanhavam sem fazer parte do cortejo… Sem falha, a tuna trinou com galhardia uma marcha de revista portuguesa que estava em moda no tempo. Todos se moveram ao compasso garboso, burburinho, em dichotes que arrancavam risos. A caminhada dum grupo tão numeroso não podia passsar despercebida, com os acordes melodiosos da tuba espalhando-se pelo ar. Ao dobrar a Rua do Campo… Os prédios acordavam, janelas abriam-se com gente debruçada e curiosa, os transeuntes da rua estacavam pasmados com o barulho que perturbava a via calma e meio-adormecida. Os raros automóveis diminuíam o andamento, riquexós acorriam pensando numa improvável freguesia. Inevitavelmente soava, já uma tradição da época, a fraseologia da criançada chinesa, apoucando desbocada em português, com a distorção das consoantes: ‘Aqui popo… Aqui calanho…’ ” (Os Dores, 2012. p.126-127)`,\r\n align: 'center',\r\n desc: [\r\n 'Eventos religiosos - Desfile de Carnaval',\r\n '(Início do século XX)'\r\n ]\r\n },\r\n {\r\n id: 32,\r\n pic: '32.jpg',\r\n align: 'center',\r\n desc: [\r\n '“Ó, Camões, meu velho amigo,',\r\n 'Escrevo na tua Língua, sempre e para sempre. ',\r\n 'Ninguém sabe se estiveste de certo em Macau',\r\n 'mas a tua estátua está e ainda não se foi embora.',\r\n 'Dizes que o amor é uma chama invisível',\r\n 'mas eu vi-a, e muito acesa.',\r\n 'Não vi nem quero ver as cinzas.” ',\r\n '— Yao Feng',\r\n '(Poema e fotografia cedida pelo Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 33,\r\n text: `“No tempo da Instrução Primária, a Rua de S. Domingos fazia parte do meu caminho de ida e regresso da escola. Nessa altura, eu morava na Estrada de S. Francisco, então um lugar ermo e fora-de-portas. De Manhã, saía da casa às oito e meia e de tarde à uma e meia. O percurso era sempre igual. Dobrava a Rua Nova à Guia, cortava a parte superior do Jardim de S. Francisco, descia as escadarias e as suaves ladeiras e chegava à parte inferior do jardim, aberta para o mar, antes do aparecimento dos aterros da Praia Grande. Trotava então a Rua de Sta. Clara, ao longo dos casarões que ali existiam e o muro alto do Colégio da Sta. Rosa de Lima, galgava a ponta do troço ajardinado da Rua do Campo e estava na estreita e serpeante Travessa dos Anjos que percorria até o fim, na embocadura do Cinema Capitol. Orçando à esquerda, entrava na Rua de S. Domingos, sempre atravancada de gente, apressava-me para o Largo de S. Domingos, abrigava-me na soleira nas arcadas do Largo do Senado até o cruzamento com a Avenida Almeida Ribeiro. Dali, alcançava a Rua da Cadeia (Rua de Dr. Soares) e subia, passo mais vagaroso, a Calçada do Tronco Velho até o cimo, atingindo a Calçada do Gamboa, onde se achava a Escola Primária do Sexo Masculino, no edifício hoje transformado em Esquadra Policial N.o1. De regresso, ao meio-dia e às três e meia da tarde, fazia o mesmo trajecto, ao contrário.” (Rua das Mariazinhas, Mong-Há, 1998, p.74)`,\r\n align: 'center',\r\n desc: [\r\n 'Passos na vida de Henrique de Senna Fernandes - Caminhar para a escola primária (Rua de S. Domingos)',\r\n '(Cerca de 1930)'\r\n ]\r\n },\r\n {\r\n id: 34,\r\n text: `“O meu contacto com o Cheok Chai Un iniciou-se nos tempos do liceu. Morava na Estrada de S. Francisco, então toda arborizada e calçada à portuguesa, e tinha dois caminhos a seguir para a escola. Ou optava por ladear a Boca do Inferno e atravessar a Estrada dos Parses, descendo depois a Calçada do Paiol, ou dobrava para a Rua Nova à Guia. Chegava ao alto da Rua Tomás da Rosa, trotava de escantilhão abaixo a escadaria e estava no coração do Cheok Chai Un. Aproximava-se do poço e do velho templo de Tou Tei e desembocava na Rua do Campo. Daí, orçando para a direita, pisava em cinco minutos a porta do liceu, ao Tap Seac. Eu seguia, de preferência, o segundo caminho.” (A Trança Feiticeira, 2015, p.7)`,\r\n align: 'center',\r\n desc: [\r\n 'Percurso de vida - Henrique de Senna Fernandes - Caminhar para a escola secundária, (Cheok Chai Un, Bairro Horta da Mitra)',\r\n '(Décadas de 1930-1940)'\r\n ]\r\n },\r\n {\r\n id: 35,\r\n text: `“Naqueles tempos, os estudantes de Macau, que iam por largos anos à Metrópole, não tinham possibilidade de rever os pais e o resto da família, senão depois da formatura e só quando se decidiam a retornar para a terra-natal. As despedidas, na época, eram muito dolorosas, realizadas nas pontes de embarque do Porto Interior, pois não existiam ainda os hidroplanadores que cortam o adeus num tempo mínimo. Naqueles dias longínquos, as despedidas faziam-se nos barcos da carreira para Hong Kong das duas e meia ou da noite. A família em peso aglomerava-se em volta de quem partia, por muito tempo, chorando pelos cantos e, assim, na alma do estudante, misturadas com revoadas de esperança aquelas cenas gravavam-se-lhe na memória para sempre. Muitas vezes, os abraços eram os últimos que se davam a alguém, outros, o fim duma amizade que iria esfriar-se, ao longo da separação. Os actuais estudantes de Macau que possuem a ventura de gozar as férias com a família todos os anos ou, pelo menos, dentro dum espaço relativamente curto de ausência, por causa da rapidez das comunicações e doutras vantagens, não podem calcular o que os estudantes doutros tempos passavam, a sua sensação de isolamento, os seus dias de terrível depressão. E os momentos mais difíceis eram os da quadra do Natal.” (Um Encontro Imprevisto, Nam Van, 1997, p.22)`,\r\n align: 'center',\r\n desc: [\r\n 'Percurso de vida - Henrique de Senna Fernandes - Partir para a universidade, (Porto Interior)',\r\n '(Década de 1940)'\r\n ]\r\n },\r\n {\r\n id: 36,\r\n text: `“O termo da guerra produziu, porém, uma solução de continuidade com o mundo antigo, ciosamente preservado, que parecia eternizar-se até aí. Agora soprava um vento imparável de modernidade. Os navios mercantes, livres do perigo mortal dos submarinos e das minas, invadiram de novo os oceanos e os mares e restabeleceram as tradicionais vias de comunicação. Ou criavam outras. Traziam, nos porões a transbordar, novidades chocantes – modelos de automóveis nunca vistos, aparelhos eléctricos, gramofones e grafonolas, um nunca estancar de artigos variados que tornavam a existência mais confortável, mais amena e mais ‘civilizada’… O conservadorismo monolítico abria, porém brechas, impossibilitado de lutar contra as influências exteriores… O elemento mais corrosivo era o cinema, cujas revelações eram aceitas como verdadeiras. Tornara-se também moda. Os poucos animatógrafos, instalados em barrações ou antigos armazéns adaptados, enchiam-se de espectadores, mesmerizados com os filmes de série, coboiadas trepidantes, hilariantes fitas cómicas, dramas de amor que exprimiam as lágrimas, paradas de vamps e de mulheres fatais, espampanantes e ousadas, nos seus vestidos e penteados.” (Os Dores, 2012. p.73-75)`,\r\n align: 'center',\r\n desc: [\r\n 'Mudanças na sociedade de Macau após a Segunda Guerra Mundial (1)'\r\n ]\r\n },\r\n {\r\n id: 37,\r\n text: `“… Os peralvilhos da terra adoptaram o uso do chapéu achatado de palhas, de tarja preta. Laço pequeno a substituir a gravata, camisas de colarinho mole e prático, sem a tortura do colar duríssimo, entalando e estrangulando o pescoço. Fatos de fazenda clara, em vez da monotonia do preto no Inverno e do branco no Verão. Calções para a pesca e piqueniques, cabelos pejados de brilhantina e colados ao couro cabeludo, patilhas a imitar famosos actores latinos do cinema, faces escanhoadas, em vez da barba grossa e bigodes façanhudos ou de mestre-china… Um bom número de senhoras da sociedade apresentaram, na missa chique das onze horas de Domingo, na Sé Catedral, vestidos, calçado e chapéus ‘modernos’, cabelos desbastados. Esqueceram-se as orações, a homilia do padre, as atenções concentradas nos perfis que acentuavam outra nota à missa.” (Os Dores, 2012. p.75-76)`,\r\n align: 'center',\r\n desc: [\r\n 'Mudanças na sociedade de Macau após a Segunda Guerra Mundial (2)'\r\n ]\r\n },\r\n {\r\n id: 38,\r\n text: `“Outra alteração se verificou no quotidiano da cidade. O costume tradicional aos Domingos era subir, depois dessa missa, a Rua Central para admirar e apreciar as ‘maravilhas’ importadas pelos mouros. Agora estes sofriam forte competição da Avenidade Almeida Ribeiro, larga artéria ainda recentemente completada, orlada de graciosas arcadas coloniais que protegiam dos rigores do sol da canícula e onde se concentravam as melhores lojas dos comerciantes chineses, sapatarias, ouriversarias e casas de chá, artéria que, ligando em linha recta a Praia Grande com o Poerto Interior mas rasgando o histórico Bazar em duas partes, era, ao tempo, o orgulho de Macau. Isto, na ‘cidade cristã’. A ‘cidade chinesa’ permaneceu impermeável às inovações, nas suas prédicas, costumes e tradições, costas viradas ao quotidiano ocidental. As alterações do pós-guerra não a afectaram nas ideias, no estilo de vida, nos gostos, na indumentária, pelo menos à vista do observador, ciosa dos seus padrões de existência, com os quais aparentemente a população se sentia feliz ou conformada.” (Os Dores, 2012. p.76)`,\r\n align: 'center',\r\n desc: [\r\n 'Mudanças na sociedade de Macau após a Segunda Guerra Mundial (3)'\r\n ]\r\n }\r\n ]\r\n}\r\n","module.exports = __webpack_public_path__ + \"img/4.9b875e2c.jpg\";","export default {\r\n info: {\r\n title: 'Percurso de Vida',\r\n desc: 'Henrique de Senna Fernandes foi um advogado e escritor de renome de Macau. Por ocasião do centenário do seu nascimento, prestamos homenagem a este “filho da terra” pelo seu notável contributo para Macau. Assim, pretendemos divulgar o autor e a sua obra, bem como partilhar com todos as suas conquistas no mundo literário. Nesta secção, os leitores podem ficar com um breve conhecimento de Henrique de Senna Fernandes e de alguns momentos da sua vida.'\r\n },\r\n list: [\r\n {\r\n id: 1,\r\n pic: '1.jpg',\r\n align: 'left',\r\n desc: [\r\n 'Henrique de Senna Fernandes (1923-10-15 – 2010-10-04) foi um escritor e advogado de renome em Macau, nascido no seio de uma proeminente família macaense de ascendência portuguesa, goesa e chinesa com mais de 200 anos de história, sendo “filho da terra”. Estudou Direito na Universidade de Coimbra, em Portugal, e em 1954 regressou a Macau para exercer a profissão. Foi Presidente da Associação dos Advogados, Director e Professor da Escola Comercial Pedro Nolasco, Director da Biblioteca Nacional de Macau e da Biblioteca Sir Robert Ho Tung, Presidente da Associação Promotora da Instrução dos Macaenses, Deputado da Assembleia Legislativa, Vogal do Conselho de Educação, Vogal do Conselho de Cultura, entre outros cargos. Antes da passagem administrativa da região, foi convidado a visitar Pequim para testemunhar a cerimónia de assinatura da Declaração Conjunta Sino-Portuguesa.',\r\n 'Henrique de Senna Fernandes dedicava-se à escrita e alcançou grandes êxitos durante a sua criação literária. Ainda estudante, foi galardoado com o Prémio Fialho de Almeida dos Jogos Florais da Queima das Fitas de 1950 da Universidade de Coimbra com o conto A-Chan: A Tancareira. Ao longo dos anos, o Instituto Cultural tem vindo a publicar várias obras de Henrique de Senna Fernandes, entre as quais Amor e Dedinhos de Pé e A Trança Feiticeira, que foram adaptadas ao cinema, sendo ambos amplamente aclamados. Henrique de Senna Fernandes escreveu também um grande número de artigos para jornais e revistas, entre os quais estudos sobre o cinema em Macau, no período do seu auge, que é de grande valor académico.',\r\n 'Henrique de Senna Fernandes era excelente a retratar as características de Macau, de fusão entre as culturas chinesa e ocidental, através da narração de histórias. As suas obras retratam diferentes raças e estratos sociais, e revelam a vida de outrora das pessoas, recriando vividamente a realidade da sociedade de Macau na primeira metade do século XX, as interacções entre chineses e portugueses e os seus hábitos, apresentando também a gastronomia macaense tradicional. As suas obras são realistas e românticas, simples e calorosas, com profundos sentimentos humanistas, tendo enriquecido a literatura de Macau. É um autor consagrado como um dos clássicos da literatura de Macau.',\r\n 'Henrique de Senna Fernandes foi distinguido com inúmeras honras ao longo da sua vida, a saber: Oficial da Ordem de Instrução Pública (1978), Comenda da Ordem do Infante D. Henrique (1986), Medalha de Mérito Cultural (1989), Medalha de Valor (1995), Grão-Oficial da Ordem Militar de Santiago de Espada (1998), Cidadão Emérito de Macau (1999) e Medalha de Mérito Cultural (2001). Foi Académico Correspondente Português da Academia Internacional da Cultura Portuguesa (2003) e grau de Doutor “Honoris Causa” (2006 e 2008). Era um homem erudito com realizações excepcionais, de um profundo humanismo, generoso e fraterno, sendo um representante da cultura local. As suas obras fazem parte do importante património cultural de Macau.',\r\n '(Fotografia cedida pelo Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 2,\r\n pic: '2.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Henrique de Senna Fernandes, à esquerda, e o irmão Édi.',\r\n 'Década de 1930',\r\n '(Fotografia cedida pelo Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 3,\r\n pic: '3.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Fotografia de família, tirada antes da partida para Portugal para prosseguir os estudos. Henrique de Senna Fernandes está em pé atrás da mãe. ',\r\n '1946',\r\n '(Fotografia cedida pelo Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 4,\r\n pic: '4.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Henrique de Senna Fernandes na universidade. ',\r\n 'Década de 1950',\r\n '(Fotografia cedida pelo Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 5,\r\n pic: '5.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Henrique de Senna Fernandes com os seus colegas de turma na cerimónia de graduação. ',\r\n 'Década de 1950',\r\n '(Fotografia cedida pelo Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 6,\r\n pic: '6.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Henrique de Senna Fernandes sorridente. ',\r\n 'Década de 1960',\r\n '(Fotografia cedida pelo Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 7,\r\n pic: '7.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Henrique de Senna Fernandes também tinha uma paixão pelo ensino, fotografia tirada com alunos, na sala de aula. ',\r\n 'Década de 1960',\r\n '(Fotografia cedida pelo Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 8,\r\n pic: '8.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Casamento de Henrique de Senna Fernandes.',\r\n '(Fotografia cedida pelo Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 9,\r\n pic: '9.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Casamento de Henrique de Senna Fernandes.',\r\n '(Fotografia cedida pelo Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 10,\r\n pic: '10.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Pais de Henrique de Senna Fernandes.',\r\n '(Fotografia cedida pelo Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 11,\r\n pic: '11.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Fotografia da família de Henrique de Senna Fernandes.',\r\n '(Fotografia cedida pelo Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 12,\r\n pic: '12.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Três gerações familiares.',\r\n '(Fotografia cedida pelo Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 13,\r\n pic: '13.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Henrique de Senna Fernandes e a família a jantar num restaurante chinês.',\r\n '(Fotografia cedida pelo Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 14,\r\n pic: '14.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Henrique de Senna Fernandes num evento carnavalesco.',\r\n 'Década de 1950',\r\n '(Fotografia cedida pelo Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 15,\r\n pic: '15.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Henrique de Senna Fernandes no teatro.',\r\n '(Fotografia cedida pelo Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 16,\r\n pic: '16.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Com personalidades do sector jurídico de Macau. ',\r\n 'Cerca de 1965',\r\n '(Fotografia cedida pelo Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 17,\r\n pic: '17.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Com o pai e outras pessoas.',\r\n '(Fotografia cedida pelo Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 18,\r\n pic: '18.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Com o juíz e escritor português Rodrigo Leal de Carvalho.',\r\n '(Fotografia cedida pelo Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 19,\r\n pic: '19.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Henrique de Senna Fernandes a trabalhar.',\r\n '(Fotografia cedida pelo Arquivo de Macau)'\r\n ]\r\n },\r\n {\r\n id: 20,\r\n pic: '20.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Henrique de Senna Fernandes a escrever.',\r\n '2001',\r\n '(Fotografia cedida pelo Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 21,\r\n pic: '21.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Em frente ao Restaurante Bee Vee após jantar com a família e amigos. ',\r\n '2005.2.20',\r\n '(Fotografia cedida pela Dra. Chan Lai Lin)'\r\n ]\r\n },\r\n {\r\n id: 22,\r\n pic: '22.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Encontro casual na rua, entre Henrique de Senna Fernandes e um amigo. ',\r\n 'Decáda de 2000',\r\n '(Fotografia cedida pelo Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 23,\r\n pic: '23.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Em frente à Escola de Pilotagem do Porto Interior. ',\r\n 'Decáda de 2000',\r\n '(Fotografia cedida pelo Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 24,\r\n pic: '24.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Em frente ao escritório situado na Avenida de Almeida Ribeiro. ',\r\n 'Decáda de 2000',\r\n '(Fotografia cedida pelo Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 25,\r\n pic: '25.jpg',\r\n align: 'center',\r\n desc: [\r\n 'No interior do seu escritório. ',\r\n 'Decáda de 2000',\r\n '(Fotografia cedida pelo Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 26,\r\n pic: '26.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Henrique de Senna Fernandes concentrado na investigação. ',\r\n 'Decáda de 2000 ',\r\n '(Fotografia cedida pelo Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 27,\r\n pic: '27.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Na Biblioteca do Senado. ',\r\n 'Decáda de 2000',\r\n '(Fotografia cedida pelo Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 28,\r\n pic: '28.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Um momento de ingenuidade. ',\r\n 'Decáda de 2000',\r\n '(Fotografia cedida pelo Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 29,\r\n pic: '29.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Em casa. ',\r\n 'Decáda de 2000',\r\n '(Fotografia cedida pelo Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 30,\r\n pic: '30.jpg',\r\n align: 'center',\r\n desc: [\r\n 'No átrio do Edifício do Instituto para os Assuntos Municipais.',\r\n 'Decáda de 2000',\r\n '(Fotografia cedida pelo Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 31,\r\n pic: '31.jpg',\r\n align: 'center',\r\n desc: [\r\n 'No jardim da Fundação Oriente.',\r\n 'Decáda de 2000 ',\r\n '(Fotografia cedida pelo Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 32,\r\n pic: '32.jpg',\r\n align: 'center',\r\n desc: [\r\n 'No jardim da Fundação Oriente. ',\r\n 'Decáda de 2000',\r\n '(Fotografia cedida pelo Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 33,\r\n pic: '33.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Em frente à Escola Portuguesa de Macau. ',\r\n 'Decáda de 2000',\r\n '(Fotografia cedida pelo Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 34,\r\n pic: '34.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Em frente à Escola Portuguesa de Macau. ',\r\n 'Decáda de 2000',\r\n '(Fotografia cedida pelo Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 35,\r\n pic: '35.jpg',\r\n align: 'center',\r\n desc: [\r\n '“Esta terra é pequenina mas é terra.',\r\n 'Esta terra é pequenina mas prolonga-se no caminho…',\r\n 'Sou filho da terra, por isso caminho por esta terra.',\r\n 'Não há nenhuma força que me pode mudar.',\r\n 'Escutem! O palpitar do meu coração',\r\n 'corresponde à alma desta terra.” ',\r\n '— Yao Feng',\r\n '(Poema e fotografia cedida pelo Prof. Yao Jingming)'\r\n ]\r\n }\r\n ]\r\n}\r\n","module.exports = __webpack_public_path__ + \"img/34.5efb028a.jpg\";","module.exports = __webpack_public_path__ + \"img/7.d7f14670.jpg\";","export default {\r\n info: {\r\n title: '生活剪影',\r\n desc: '飞历奇是澳门著名的律师和作家,借着他百岁诞辰的契机,我们缅怀这位对澳门卓有贡献的“澳门之子”的同时,也希望能让更多人了解他和他的作品,与大家分享他的文学成就。在本部份,读者可概略认识飞历奇的生平和他的生活剪影。'\r\n },\r\n list: [\r\n {\r\n id: 1,\r\n pic: '1.jpg',\r\n align: 'left',\r\n desc: [\r\n '飞历奇(1923.10.15-2010.10.4)是澳门著名作家及大律师,生于一个已有二百多年历史,糅合葡萄牙、果亚及中国血统的土生葡人望族,是澳门之子。他于葡萄牙科英布拉大学修读法律专业,1954年返回澳门执业,曾荣任律师公会主席、伯多禄商业学校校长及教师、国立图书馆及何东图书馆馆长、土生教育协进会主席、立法会议员、教育委员会委员及文化委员会委员等职务。澳门回归前,曾应邀前往北京见证《中葡联合声明》的签署仪式。',\r\n '飞历奇醉心写作,文学创作成就斐然。早于求学时期,他便以短篇小说《蜑家女阿珍》获得了1950年科英布拉大学文学奖。文化局历年为飞历奇出版了多部著作,其中《爱情与小脚趾》及《大辫子的诱惑》更被改编成电影,广受好评。飞历奇还为报刊和杂志撰写了大量文章,其中关于澳门早期电影的研究,具有相当学术价值。',\r\n '飞历奇擅长透过说故事的方式描写澳门中西文化交融的特质。其笔下的作品触及不同的种族和社会阶层,展示昔日的民生风貌,真切地重现20世纪上半叶澳门社会的实况,中葡两个民族的交往和生活习俗,更有描绘传统的土生葡人美食。他的作品,写实而浪漫,质朴且温馨,蕴含深厚的人文情怀,充实了澳门文学的内涵,被奉为澳门文学中的经典之一。 ',\r\n '飞历奇毕生屡获殊荣,计有:公共教育军官勋章(1978)、殷皇子骑士团高级荣誉勋章(1986)、文化功绩勋章(1989)、英勇勋章(1995)、宝剑圣地牙哥骑士团大军官勋章(1998)、澳门荣誉市民(1999)、文化功绩勋章(2001)。葡萄牙文化国际学院葡籍通讯院士(2003)、荣誉博士(2006)及(2008)。他博学多识、成就卓著,深具宽厚博爱的人文精神,是本地文化的代表人物。他的著作更是澳门重要的文化遗产。',\r\n '(照片由飞文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 2,\r\n pic: '2.jpg',\r\n align: 'center',\r\n desc: [\r\n '飞历奇(左)和哥哥爱迪',\r\n '1930年代',\r\n '(照片由飞文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 3,\r\n pic: '3.jpg',\r\n align: 'center',\r\n desc: [\r\n '全家合照,摄于赴葡升学前。飞历奇站在母亲的背后。',\r\n '1946',\r\n '(照片由飞文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 4,\r\n pic: '4.jpg',\r\n align: 'center',\r\n desc: [\r\n '大学时代的飞历奇',\r\n '50年代',\r\n '(照片由飞文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 5,\r\n pic: '5.jpg',\r\n align: 'center',\r\n desc: [\r\n '与同学摄于毕业庆典上',\r\n '50年代',\r\n '(照片由飞文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 6,\r\n pic: '6.jpg',\r\n align: 'center',\r\n desc: [\r\n '笑意满满的飞历奇',\r\n '约60年代',\r\n '(照片由飞文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 7,\r\n pic: '7.jpg',\r\n align: 'center',\r\n desc: [\r\n '飞历奇也热爱教学,与学生摄于课堂内',\r\n '约60年代',\r\n '(照片由飞文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 8,\r\n pic: '8.jpg',\r\n align: 'center',\r\n desc: [\r\n '婚礼合照',\r\n '(照片由飞文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 9,\r\n pic: '9.jpg',\r\n align: 'center',\r\n desc: [\r\n '婚礼一刻',\r\n '(照片由飞文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 10,\r\n pic: '10.jpg',\r\n align: 'center',\r\n desc: [\r\n '飞历奇父母',\r\n '(照片由飞文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 11,\r\n pic: '11.jpg',\r\n align: 'center',\r\n desc: [\r\n '飞历奇家庭照',\r\n '(照片由飞文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 12,\r\n pic: '12.jpg',\r\n align: 'center',\r\n desc: [\r\n '与父母三代同堂',\r\n '(照片由飞文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 13,\r\n pic: '13.jpg',\r\n align: 'center',\r\n desc: [\r\n '在中式酒家晚饭',\r\n '(照片由飞文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 14,\r\n pic: '14.jpg',\r\n align: 'center',\r\n desc: [\r\n '摄于嘉年华活动',\r\n '50年代',\r\n '(照片由飞文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 15,\r\n pic: '15.jpg',\r\n align: 'center',\r\n desc: [\r\n '戏剧照',\r\n '(照片由飞文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 16,\r\n pic: '16.jpg',\r\n align: 'center',\r\n desc: [\r\n '与澳门法律界人士合照',\r\n '约1965',\r\n '(照片由飞文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 17,\r\n pic: '17.jpg',\r\n align: 'center',\r\n desc: [\r\n '与父亲及其他人合照',\r\n '(照片由飞文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 18,\r\n pic: '18.jpg',\r\n align: 'center',\r\n desc: [\r\n '与法官及葡语作家贾乐安合照',\r\n '(照片由飞文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 19,\r\n pic: '19.jpg',\r\n align: 'center',\r\n desc: [\r\n '办公中',\r\n '(照片由澳门档案馆提供)'\r\n ]\r\n },\r\n {\r\n id: 20,\r\n pic: '20.jpg',\r\n align: 'center',\r\n desc: [\r\n '写作中',\r\n '2001',\r\n '(照片由飞文基先生提供)'\r\n ]\r\n },\r\n {\r\n id: 21,\r\n pic: '21.jpg',\r\n align: 'center',\r\n desc: [\r\n '与家人及友人晚饭后摄于峰景餐厅前',\r\n '2005.2.20',\r\n '(照片由陈丽莲女士提供)'\r\n ]\r\n },\r\n {\r\n id: 22,\r\n pic: '22.jpg',\r\n align: 'center',\r\n desc: [\r\n '与友人街头偶遇',\r\n '约2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 23,\r\n pic: '23.jpg',\r\n align: 'center',\r\n desc: [\r\n '摄于内港航海学校前',\r\n '约2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 24,\r\n pic: '24.jpg',\r\n align: 'center',\r\n desc: [\r\n '摄于新马路办事处前',\r\n '约2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 25,\r\n pic: '25.jpg',\r\n align: 'center',\r\n desc: [\r\n '摄于办公室内',\r\n '约2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 26,\r\n pic: '26.jpg',\r\n align: 'center',\r\n desc: [\r\n '埋首研究',\r\n '约2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 27,\r\n pic: '27.jpg',\r\n align: 'center',\r\n desc: [\r\n '摄于议事亭藏书楼内',\r\n '约2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 28,\r\n pic: '28.jpg',\r\n align: 'center',\r\n desc: [\r\n '童真的一刻',\r\n '约2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 29,\r\n pic: '29.jpg',\r\n align: 'center',\r\n desc: [\r\n '摄于家中',\r\n '约2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 30,\r\n pic: '30.jpg',\r\n align: 'center',\r\n desc: [\r\n '摄于民政总署大楼花园',\r\n '约2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 31,\r\n pic: '31.jpg',\r\n align: 'center',\r\n desc: [\r\n '摄于东方基金会花园',\r\n '约2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 32,\r\n pic: '32.jpg',\r\n align: 'center',\r\n desc: [\r\n '摄于东方基金会花园',\r\n '约2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 33,\r\n pic: '33.jpg',\r\n align: 'center',\r\n desc: [\r\n '摄于澳门葡文学校前',\r\n '约2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 34,\r\n pic: '34.jpg',\r\n align: 'center',\r\n desc: [\r\n '摄于澳门葡文学校前',\r\n '约2000年代',\r\n '(照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 35,\r\n pic: '35.jpg',\r\n align: 'center',\r\n desc: [\r\n '“这块土地很小,但也是土地',\r\n '这块土地很小,但也有很长的路',\r\n '我是这块土地的儿子',\r\n '我的一生都在这块土地上行走',\r\n '没有什么力量可以把我改变',\r\n '你听,我的心跳',\r\n '就来自这块土地的脉动”',\r\n '――姚风',\r\n '(诗歌及照片由姚京明先生提供)'\r\n ]\r\n }\r\n ]\r\n}\r\n","module.exports = __webpack_public_path__ + \"img/17.23fdc565.jpg\";","module.exports = __webpack_public_path__ + \"img/3.cb1a4947.jpg\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=1f7b5d2c&scoped=true&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/6.c8010603.jpg\";","module.exports = __webpack_public_path__ + \"img/11.0c2c269b.jpg\";","export default {\r\n info: {\r\n title: 'A Tour of Works',\r\n desc: 'The works of Henrique de Senna Fernandes consist mainly of novels and short stories, studies on the history of Macao’s cinema and chronicles on several topics. His romances, since his first publication Ah-Chan: the Boatwoman in 1974, became extremely popular. They were published and reprinted several times, translated into Chinese and English, distributed all over the world and adapted to cinema. In this section, we introduce the readers in detail to the different versions of his works, as well as the chronicles and studies written by the author.'\r\n },\r\n list: [\r\n {\r\n id: 1,\r\n pic: '1.jpg',\r\n align: 'center',\r\n desc: [\r\n '“I have to write these words,',\r\n 'because my heart is full of love.',\r\n 'I want these words and characters',\r\n 'to carry the warmth of my body',\r\n 'to awaken in your reading',\r\n 'and to embrace you.',\r\n 'In one embrace there is nothing but embrace,',\r\n 'not even the slightest distance.”',\r\n '— Yao Feng ',\r\n '(Poem and photo courtesy of Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 2,\r\n pic: '2.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: A-Chan, A Tancareira (Ah-Chan, the Boatwoman)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Series: Cadernos Capricórnio: 16',\r\n 'Publisher: Lobito: O Lobito, Angola, 1974'\r\n ]\r\n },\r\n {\r\n id: 3,\r\n pic: '3.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: Nam Van: Contos de Macau (Nam Van: Tales of Macao)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Publisher: Macao: self-published, 1978'\r\n ]\r\n },\r\n {\r\n id: 4,\r\n pic: '4.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: Nam Van: Contos de Macau (Nam Van: Tales of Macao)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Series: Rua Central: 12',\r\n 'Publisher: Macao: Cultural Institute of Macao, 2nd Edition, 1997'\r\n ]\r\n },\r\n {\r\n id: 5,\r\n pic: '5.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: 《南灣》 (Nam Van)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Translator: 李長森、崔維孝 (Li Changsen, Choi Wai Hao)',\r\n 'Publisher: 澳門:澳門土生教育協進會 (Association for the Promotion of Macanese Education), 2003',\r\n '(Nam Van: Tales of Macau, Chinese Edition)'\r\n ]\r\n },\r\n {\r\n id: 6,\r\n pic: '6.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: Nam Van: Contos de Macau (Nam Van: Tales of Macao)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Series: Identidade: 1',\r\n 'Publisher: Rio de Janeiro: Gryphus, 2008'\r\n ]\r\n },\r\n {\r\n id: 7,\r\n pic: '7.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: 《南灣――澳門故事》 (Nam Van: Tales of Macao)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Translator: 宋子江(Chris Song)',\r\n 'Publisher: Macao: Praia Grande Edições, Lda., 2020',\r\n '(Nam Van: Tales of Macao, Chinese Edition)'\r\n ]\r\n },\r\n {\r\n id: 8,\r\n pic: '8.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: Nam Van: Tales of Macao',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Translator: David Brookshaw',\r\n 'Publisher: Macao: Praia Grande Edições, Lda., 2020',\r\n '(Nam Van: Tales of Macao, English Edition)'\r\n ]\r\n },\r\n {\r\n id: 9,\r\n pic: '9.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: Amor e Dedinhos de pé:Romance de Macau (Love and Tiny Toes: Macao Romance)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Publisher: Macao: Cultural Institute of Macao, 1986'\r\n ]\r\n },\r\n {\r\n id: 10,\r\n pic: '10.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: Amor e Dedinhos de Pé (Love and Tiny Toes)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Publisher: Lisbon: Gradiva – Publicações Lda., Cultural Institute of Macao, 1st edition, 1988'\r\n ]\r\n },\r\n {\r\n id: 11,\r\n pic: '11.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: Amor e Dedinhos de Pé (Love and Tiny Toes)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Publisher: Macao: Cultural Institute of Macao, 3rd edition, 1992'\r\n ]\r\n },\r\n {\r\n id: 12,\r\n pic: '12.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: Amor e Dedinhos de Pé (Love and Tiny Toes)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Series: Rua Central: 4',\r\n 'Publisher: Macao: Cultural Institute of Macao, 4th edition, 1994'\r\n ]\r\n },\r\n {\r\n id: 13,\r\n pic: '13.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: 《愛情與小腳趾》 (Love and Tiny Toes)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Translator: 喻慧娟 (Yu Huijuan)',\r\n 'Series: 葡語作家叢書文學系列之3 (Portuguese Writers Series: 3)',\r\n 'Publisher: 澳門/石家莊:澳門文化司署/花山文藝出版社(Macao/Shijiazhuang: Cultural Institute of Macao/Huashan Literature and Art Publishing House), 1994',\r\n '(Love and Tiny Toes, Chinese Edition)'\r\n ]\r\n },\r\n {\r\n id: 14,\r\n pic: '14.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: Amor e Dedinhos de Pé (Love and Tiny Toes)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Series: Colecção Identidades',\r\n 'Publisher: Rio de Janeiro: Gryphus, 2008'\r\n ]\r\n },\r\n {\r\n id: 15,\r\n pic: '15.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: Amor e Dedinhos de Pé (Love and Tiny Toes)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Series: Obra completa de Henrique de Senna Fernandes: 2',\r\n 'Publisher: Macao: Cultural Affairs Bureau of the Macao S.A.R. Government, 5th edition, 2012'\r\n ]\r\n },\r\n {\r\n id: 16,\r\n pic: '16.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: A Trança Feiticeira (The Bewitching Braid)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Publisher: Macao: Fundação Oriente, 1st edition, 1993'\r\n ]\r\n },\r\n {\r\n id: 17,\r\n pic: '17.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: 《大辮子的誘惑》(The Bewitching Braid)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Translator: 喻慧娟 (Yu Huijuan)',\r\n 'Series: 葡語作家叢書文學系列之15 (Portuguese Writers Series: 15)',\r\n 'Publisher: 澳門/石家莊:澳門文化司署/花山文藝出版社 (Macao/Shijiazhuang: Cultural Institute of Macao/Huashan Literature and Art Publishing House), 1996',\r\n '(The Bewitching Braid, Chinese Edition)'\r\n ]\r\n },\r\n {\r\n id: 18,\r\n pic: '18.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: A Trança Feiticeira (The Bewitching Braid)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Publisher: Macao: Fundação Oriente, 2nd edition, 1998'\r\n ]\r\n },\r\n {\r\n id: 19,\r\n pic: '19.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: The Bewitching Braid',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Translator: David Brookshaw',\r\n 'Publisher: Hong Kong: Hong Kong University Press, 2004',\r\n '(A Trança Feiticeira, English Edition, Hong Kong)'\r\n ]\r\n },\r\n {\r\n id: 20,\r\n pic: '20.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: A Trança Feiticeira (The Bewitching Braid)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Publisher: Rio de Janeiro: Gryphus, 2009'\r\n ]\r\n },\r\n {\r\n id: 21,\r\n pic: '21.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: A Trança Feiticeira (The Bewitching Braid)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Publisher: Rio de Janeiro: Gryphus (Kindle Edition), 2011'\r\n ]\r\n },\r\n {\r\n id: 22,\r\n pic: '22.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: A Trança Feiticeira (The Bewitching Braid)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Series: Obra completa de Henrique de Senna Fernandes: 3',\r\n 'Publisher: Macao: Cultural Affairs Bureau of the Macao S.A.R. Government, 3rd edition, 2015'\r\n ]\r\n },\r\n {\r\n id: 23,\r\n pic: '23.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: Mong-Há',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Series: Rua Central: 14',\r\n 'Publisher: Macao: Cultural Institute of Macao, 1998'\r\n ]\r\n },\r\n {\r\n id: 24,\r\n pic: '24.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: Cinema em Macau : Desde o Início do Século XX até a Década de 30 (Cinema in Macau: From the 1900s to the mid 30s)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Publisher: Macao: Instituto Internacional de Macau, 2010'\r\n ]\r\n },\r\n {\r\n id: 25,\r\n pic: '25.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: Cinema in Macau: From the 1900s to the mid 30s',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Publisher: Macao: Instituto Internacional de Macau, 2010',\r\n '(Cinema em Macau : Desde o Início do Século XX até a Década de 30, English Edition)'\r\n ]\r\n },\r\n {\r\n id: 26,\r\n pic: '26.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: Os Dores (The Dores)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Series: Obra completa de Henrique de Senna Fernandes: 1',\r\n 'Publisher: Macao: Cultural Affairs Bureau of the Macao S.A.R. Government, 1st edition, 2012'\r\n ]\r\n },\r\n {\r\n id: 27,\r\n pic: '27.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: 《朵斯姑娘》(The Dores)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Translator: 喻慧娟 (Yu Huijuan)',\r\n 'Series: 中葡文學叢書之4 (Portuguese Writers Series: 4)',\r\n 'Publisher: Macao: Cultural Affairs Bureau of the Macao S.A.R. Government, 2015',\r\n '(Os Dores, Chinese Edition)'\r\n ]\r\n },\r\n {\r\n id: 28,\r\n pic: '28.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Title: A Noite Desceu em Dezembro (The Night Fell Down in December)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Series: Obra completa de Henrique de Senna Fernandes: 4',\r\n 'Publisher: Macao: Cultural Affairs Bureau of the Macao S.A.R. Government, 1st edition, 2015'\r\n ]\r\n },\r\n {\r\n id: 29,\r\n pic: '29.jpg',\r\n align: 'center',\r\n desc: [\r\n 'WORK ADAPTED TO CINEMA',\r\n 'Title: Amor e Dedinhos de Pé (Love and Tiny Toes)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Director: Luís Rocha',\r\n 'Actor: Joaquim de Almeida, Ana Torrent',\r\n 'Production: MGN Filmes, Ou Mun Filmes, Chrysalide Films, Impala, Jet Films, Igeldo Zine Produkzioak, 1992'\r\n ]\r\n },\r\n {\r\n id: 30,\r\n pic: '30.jpg',\r\n align: 'center',\r\n desc: [\r\n 'WORK ADAPTED TO CINEMA',\r\n 'Title: 《大辮子的誘惑》(The Bewitching Braid)',\r\n 'Author: Henrique de Senna Fernandes',\r\n 'Director: 蔡元元 (Chai Yuanyuan)',\r\n 'Actor: 寧靜 (Ning Jing), Ricardo Carriço (里戛杜)',\r\n 'Production: 蔡氏兄弟(澳門)影業公司 (Chai Brothers’ (Macau) Film Company Ltd.), 1996'\r\n ]\r\n },\r\n {\r\n id: 31,\r\n pic: '31.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Articles by Henrique de Senna Fernandes (translated into Chinese)'\r\n ]\r\n },\r\n {\r\n id: 32,\r\n pic: '32.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Articles by Henrique de Senna Fernandes (in Portuguese)'\r\n ]\r\n },\r\n {\r\n id: 33,\r\n pic: '33.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Articles by Henrique de Senna Fernandes (translated into English)'\r\n ]\r\n }\r\n ]\r\n}\r\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IntroducePop.vue?vue&type=style&index=0&id=5de97a85&scoped=true&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/28.0d09b612.jpg\";","module.exports = __webpack_public_path__ + \"img/13.e62cf5d4.jpg\";","module.exports = __webpack_public_path__ + \"img/7.fbebc020.jpg\";","module.exports = __webpack_public_path__ + \"img/31.855dddb1.jpg\";","module.exports = __webpack_public_path__ + \"img/22.b913d0b6.jpg\";","module.exports = __webpack_public_path__ + \"img/26.c74d94b0.jpg\";","module.exports = __webpack_public_path__ + \"img/35.d827d991.jpg\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\"},[_c('NavBar',{attrs:{\"title\":_vm.$t('column.title')}}),_c('div',{staticClass:\"main flex-align\"},[_c('SideBar',{ref:\"sidebar\"}),_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"content-scroll\"},[_c('div',{staticClass:\"swipe-box\"},[_c('div',{ref:\"mySwiper\",staticClass:\"swiper-container\",attrs:{\"id\":\"mySwiper\"}},[_c('div',{staticClass:\"swiper-wrapper\"},_vm._l((_vm.list),function(item,index){return _c('div',{key:item.id,staticClass:\"swiper-slide\"},[(item.pic)?_c('img',{attrs:{\"src\":require((\"../../assets/data/\" + _vm.type + \"/\" + (item.pic))),\"data-index\":index}}):_c('div',{staticClass:\"text-box-scroll\"},[_c('div',{staticClass:\"text-box\",attrs:{\"data-index\":index},domProps:{\"innerHTML\":_vm._s(item.text)}})])])}),0)]),_c('img',{staticClass:\"swipe-btn previous\",attrs:{\"src\":require(\"@/assets/images/previous_icon.png\")}}),_c('img',{staticClass:\"swipe-btn next\",attrs:{\"src\":require(\"@/assets/images/next_icon.png\")}})]),_c('div',{staticClass:\"introduce-box\"},[_c('div',{staticClass:\"type\"},[_vm._v(_vm._s(_vm.info.title))]),_c('div',{staticClass:\"desc\",domProps:{\"innerHTML\":_vm._s(_vm.info.desc)}})])]),_c('div',{staticClass:\"copyright\"},[_vm._v(_vm._s(_vm.$t('column.copyright')))])])],1),_c('IntroducePop',{ref:\"introducePop\"}),_c('InfoPop',{ref:\"infoPop\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"sidebar\"},_vm._l((_vm.classify),function(item,index){return _c('div',{key:index,class:['sidebar-item flex-space-b', { sel: index + 1 === _vm.classifyType }],on:{\"click\":function($event){return _vm.changeSidebar(index + 1)}}},[_vm._v(\" \"+_vm._s(item)+\" \"),(index + 1 === _vm.classifyType)?_c('img',{attrs:{\"src\":require(\"../assets/images/sidebar_sel.png\"),\"alt\":\"\"}}):_vm._e()])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export var context = {\n zIndex: 2000,\n lockCount: 0,\n stack: [],\n find: function find(vm) {\n return this.stack.filter(function (item) {\n return item.vm === vm;\n })[0];\n }\n};","import { isServer } from '..';\n// eslint-disable-next-line import/no-mutable-exports\nexport var supportsPassive = false;\n\nif (!isServer) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', {\n // eslint-disable-next-line getter-return\n get: function get() {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n });\n window.addEventListener('test-passive', null, opts); // eslint-disable-next-line no-empty\n } catch (e) {}\n}\n\nexport function on(target, event, handler, passive) {\n if (passive === void 0) {\n passive = false;\n }\n\n if (!isServer) {\n target.addEventListener(event, handler, supportsPassive ? {\n capture: false,\n passive: passive\n } : false);\n }\n}\nexport function off(target, event, handler) {\n if (!isServer) {\n target.removeEventListener(event, handler);\n }\n}\nexport function stopPropagation(event) {\n event.stopPropagation();\n}\nexport function preventDefault(event, isStopPropagation) {\n /* istanbul ignore else */\n if (typeof event.cancelable !== 'boolean' || event.cancelable) {\n event.preventDefault();\n }\n\n if (isStopPropagation) {\n stopPropagation(event);\n }\n}","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace, isDef, noop } from '../utils';\nimport { inherit } from '../utils/functional';\nimport { preventDefault } from '../utils/dom/event'; // Types\n\nvar _createNamespace = createNamespace('overlay'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction preventTouchMove(event) {\n preventDefault(event, true);\n}\n\nfunction Overlay(h, props, slots, ctx) {\n var style = _extends({\n zIndex: props.zIndex\n }, props.customStyle);\n\n if (isDef(props.duration)) {\n style.animationDuration = props.duration + \"s\";\n }\n\n return h(\"transition\", {\n \"attrs\": {\n \"name\": \"van-fade\"\n }\n }, [h(\"div\", _mergeJSXProps([{\n \"directives\": [{\n name: \"show\",\n value: props.show\n }],\n \"style\": style,\n \"class\": [bem(), props.className],\n \"on\": {\n \"touchmove\": props.lockScroll ? preventTouchMove : noop\n }\n }, inherit(ctx, true)]), [slots.default == null ? void 0 : slots.default()])]);\n}\n\nOverlay.props = {\n show: Boolean,\n zIndex: [Number, String],\n duration: [Number, String],\n className: null,\n customStyle: Object,\n lockScroll: {\n type: Boolean,\n default: true\n }\n};\nexport default createComponent(Overlay);","export function removeNode(el) {\n var parent = el.parentNode;\n\n if (parent) {\n parent.removeChild(el);\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Overlay from '../../overlay';\nimport { context } from './context';\nimport { mount } from '../../utils/functional';\nimport { removeNode } from '../../utils/dom/node';\nvar defaultConfig = {\n className: '',\n customStyle: {}\n};\n\nfunction mountOverlay(vm) {\n return mount(Overlay, {\n on: {\n // close popup when overlay clicked & closeOnClickOverlay is true\n click: function click() {\n vm.$emit('click-overlay');\n\n if (vm.closeOnClickOverlay) {\n if (vm.onClickOverlay) {\n vm.onClickOverlay();\n } else {\n vm.close();\n }\n }\n }\n }\n });\n}\n\nexport function updateOverlay(vm) {\n var item = context.find(vm);\n\n if (item) {\n var el = vm.$el;\n var config = item.config,\n overlay = item.overlay;\n\n if (el && el.parentNode) {\n el.parentNode.insertBefore(overlay.$el, el);\n }\n\n _extends(overlay, defaultConfig, config, {\n show: true\n });\n }\n}\nexport function openOverlay(vm, config) {\n var item = context.find(vm);\n\n if (item) {\n item.config = config;\n } else {\n var overlay = mountOverlay(vm);\n context.stack.push({\n vm: vm,\n config: config,\n overlay: overlay\n });\n }\n\n updateOverlay(vm);\n}\nexport function closeOverlay(vm) {\n var item = context.find(vm);\n\n if (item) {\n item.overlay.show = false;\n }\n}\nexport function removeOverlay(vm) {\n var item = context.find(vm);\n\n if (item) {\n removeNode(item.overlay.$el);\n }\n}","function isWindow(val) {\n return val === window;\n} // get nearest scroll element\n// https://github.com/youzan/vant/issues/3823\n\n\nvar overflowScrollReg = /scroll|auto/i;\nexport function getScroller(el, root) {\n if (root === void 0) {\n root = window;\n }\n\n var node = el;\n\n while (node && node.tagName !== 'HTML' && node.tagName !== 'BODY' && node.nodeType === 1 && node !== root) {\n var _window$getComputedSt = window.getComputedStyle(node),\n overflowY = _window$getComputedSt.overflowY;\n\n if (overflowScrollReg.test(overflowY)) {\n return node;\n }\n\n node = node.parentNode;\n }\n\n return root;\n}\nexport function getScrollTop(el) {\n var top = 'scrollTop' in el ? el.scrollTop : el.pageYOffset; // iOS scroll bounce cause minus scrollTop\n\n return Math.max(top, 0);\n}\nexport function setScrollTop(el, value) {\n if ('scrollTop' in el) {\n el.scrollTop = value;\n } else {\n el.scrollTo(el.scrollX, value);\n }\n}\nexport function getRootScrollTop() {\n return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n}\nexport function setRootScrollTop(value) {\n setScrollTop(window, value);\n setScrollTop(document.body, value);\n} // get distance from element top to page top or scroller top\n\nexport function getElementTop(el, scroller) {\n if (isWindow(el)) {\n return 0;\n }\n\n var scrollTop = scroller ? getScrollTop(scroller) : getRootScrollTop();\n return el.getBoundingClientRect().top + scrollTop;\n}\nexport function getVisibleHeight(el) {\n if (isWindow(el)) {\n return el.innerHeight;\n }\n\n return el.getBoundingClientRect().height;\n}\nexport function getVisibleTop(el) {\n if (isWindow(el)) {\n return 0;\n }\n\n return el.getBoundingClientRect().top;\n}","import { on } from '../utils/dom/event';\nvar MIN_DISTANCE = 10;\n\nfunction getDirection(x, y) {\n if (x > y && x > MIN_DISTANCE) {\n return 'horizontal';\n }\n\n if (y > x && y > MIN_DISTANCE) {\n return 'vertical';\n }\n\n return '';\n}\n\nexport var TouchMixin = {\n data: function data() {\n return {\n direction: ''\n };\n },\n methods: {\n touchStart: function touchStart(event) {\n this.resetTouchStatus();\n this.startX = event.touches[0].clientX;\n this.startY = event.touches[0].clientY;\n },\n touchMove: function touchMove(event) {\n var touch = event.touches[0]; // Fix: Safari back will set clientX to negative number\n\n this.deltaX = touch.clientX < 0 ? 0 : touch.clientX - this.startX;\n this.deltaY = touch.clientY - this.startY;\n this.offsetX = Math.abs(this.deltaX);\n this.offsetY = Math.abs(this.deltaY);\n this.direction = this.direction || getDirection(this.offsetX, this.offsetY);\n },\n resetTouchStatus: function resetTouchStatus() {\n this.direction = '';\n this.deltaX = 0;\n this.deltaY = 0;\n this.offsetX = 0;\n this.offsetY = 0;\n },\n // avoid Vue 2.6 event bubble issues by manually binding events\n // https://github.com/youzan/vant/issues/3015\n bindTouchEvent: function bindTouchEvent(el) {\n var onTouchStart = this.onTouchStart,\n onTouchMove = this.onTouchMove,\n onTouchEnd = this.onTouchEnd;\n on(el, 'touchstart', onTouchStart);\n on(el, 'touchmove', onTouchMove);\n\n if (onTouchEnd) {\n on(el, 'touchend', onTouchEnd);\n on(el, 'touchcancel', onTouchEnd);\n }\n }\n }\n};","function getElement(selector) {\n if (typeof selector === 'string') {\n return document.querySelector(selector);\n }\n\n return selector();\n}\n\nexport function PortalMixin(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n ref = _ref.ref,\n afterPortal = _ref.afterPortal;\n\n return {\n props: {\n getContainer: [String, Function]\n },\n watch: {\n getContainer: 'portal'\n },\n mounted: function mounted() {\n if (this.getContainer) {\n this.portal();\n }\n },\n methods: {\n portal: function portal() {\n var getContainer = this.getContainer;\n var el = ref ? this.$refs[ref] : this.$el;\n var container;\n\n if (getContainer) {\n container = getElement(getContainer);\n } else if (this.$parent) {\n container = this.$parent.$el;\n }\n\n if (container && container !== el.parentNode) {\n container.appendChild(el);\n }\n\n if (afterPortal) {\n afterPortal.call(this);\n }\n }\n }\n };\n}","/**\n * Bind event when mounted or activated\n */\nimport { on, off } from '../utils/dom/event';\nvar uid = 0;\nexport function BindEventMixin(handler) {\n var key = \"binded_\" + uid++;\n\n function bind() {\n if (!this[key]) {\n handler.call(this, on, true);\n this[key] = true;\n }\n }\n\n function unbind() {\n if (this[key]) {\n handler.call(this, off, false);\n this[key] = false;\n }\n }\n\n return {\n mounted: bind,\n activated: bind,\n deactivated: unbind,\n beforeDestroy: unbind\n };\n}","import { on, off } from '../utils/dom/event';\nimport { BindEventMixin } from './bind-event';\nexport var CloseOnPopstateMixin = {\n mixins: [BindEventMixin(function (bind, isBind) {\n this.handlePopstate(isBind && this.closeOnPopstate);\n })],\n props: {\n closeOnPopstate: Boolean\n },\n data: function data() {\n return {\n bindStatus: false\n };\n },\n watch: {\n closeOnPopstate: function closeOnPopstate(val) {\n this.handlePopstate(val);\n }\n },\n methods: {\n onPopstate: function onPopstate() {\n this.close();\n this.shouldReopen = false;\n },\n handlePopstate: function handlePopstate(bind) {\n /* istanbul ignore if */\n if (this.$isServer) {\n return;\n }\n\n if (this.bindStatus !== bind) {\n this.bindStatus = bind;\n var action = bind ? on : off;\n action(window, 'popstate', this.onPopstate);\n }\n }\n }\n};","// Context\nimport { context } from './context';\nimport { openOverlay, closeOverlay, updateOverlay, removeOverlay } from './overlay'; // Utils\n\nimport { on, off, preventDefault } from '../../utils/dom/event';\nimport { removeNode } from '../../utils/dom/node';\nimport { getScroller } from '../../utils/dom/scroll'; // Mixins\n\nimport { TouchMixin } from '../touch';\nimport { PortalMixin } from '../portal';\nimport { CloseOnPopstateMixin } from '../close-on-popstate';\nexport var popupMixinProps = {\n // Initial rendering animation\n transitionAppear: Boolean,\n // whether to show popup\n value: Boolean,\n // whether to show overlay\n overlay: Boolean,\n // overlay custom style\n overlayStyle: Object,\n // overlay custom class name\n overlayClass: String,\n // whether to close popup when overlay is clicked\n closeOnClickOverlay: Boolean,\n // z-index\n zIndex: [Number, String],\n // prevent body scroll\n lockScroll: {\n type: Boolean,\n default: true\n },\n // whether to lazy render\n lazyRender: {\n type: Boolean,\n default: true\n }\n};\nexport function PopupMixin(options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n mixins: [TouchMixin, CloseOnPopstateMixin, PortalMixin({\n afterPortal: function afterPortal() {\n if (this.overlay) {\n updateOverlay();\n }\n }\n })],\n props: popupMixinProps,\n data: function data() {\n return {\n inited: this.value\n };\n },\n computed: {\n shouldRender: function shouldRender() {\n return this.inited || !this.lazyRender;\n }\n },\n watch: {\n value: function value(val) {\n var type = val ? 'open' : 'close';\n this.inited = this.inited || this.value;\n this[type]();\n\n if (!options.skipToggleEvent) {\n this.$emit(type);\n }\n },\n overlay: 'renderOverlay'\n },\n mounted: function mounted() {\n if (this.value) {\n this.open();\n }\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n if (this.shouldReopen) {\n this.$emit('input', true);\n this.shouldReopen = false;\n }\n },\n beforeDestroy: function beforeDestroy() {\n removeOverlay(this);\n\n if (this.opened) {\n this.removeLock();\n }\n\n if (this.getContainer) {\n removeNode(this.$el);\n }\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n if (this.value) {\n this.close();\n this.shouldReopen = true;\n }\n },\n methods: {\n open: function open() {\n /* istanbul ignore next */\n if (this.$isServer || this.opened) {\n return;\n } // cover default zIndex\n\n\n if (this.zIndex !== undefined) {\n context.zIndex = this.zIndex;\n }\n\n this.opened = true;\n this.renderOverlay();\n this.addLock();\n },\n addLock: function addLock() {\n if (this.lockScroll) {\n on(document, 'touchstart', this.touchStart);\n on(document, 'touchmove', this.onTouchMove);\n\n if (!context.lockCount) {\n document.body.classList.add('van-overflow-hidden');\n }\n\n context.lockCount++;\n }\n },\n removeLock: function removeLock() {\n if (this.lockScroll && context.lockCount) {\n context.lockCount--;\n off(document, 'touchstart', this.touchStart);\n off(document, 'touchmove', this.onTouchMove);\n\n if (!context.lockCount) {\n document.body.classList.remove('van-overflow-hidden');\n }\n }\n },\n close: function close() {\n if (!this.opened) {\n return;\n }\n\n closeOverlay(this);\n this.opened = false;\n this.removeLock();\n this.$emit('input', false);\n },\n onTouchMove: function onTouchMove(event) {\n this.touchMove(event);\n var direction = this.deltaY > 0 ? '10' : '01';\n var el = getScroller(event.target, this.$el);\n var scrollHeight = el.scrollHeight,\n offsetHeight = el.offsetHeight,\n scrollTop = el.scrollTop;\n var status = '11';\n /* istanbul ignore next */\n\n if (scrollTop === 0) {\n status = offsetHeight >= scrollHeight ? '00' : '01';\n } else if (scrollTop + offsetHeight >= scrollHeight) {\n status = '10';\n }\n /* istanbul ignore next */\n\n\n if (status !== '11' && this.direction === 'vertical' && !(parseInt(status, 2) & parseInt(direction, 2))) {\n preventDefault(event, true);\n }\n },\n renderOverlay: function renderOverlay() {\n var _this = this;\n\n if (this.$isServer || !this.value) {\n return;\n }\n\n this.$nextTick(function () {\n _this.updateZIndex(_this.overlay ? 1 : 0);\n\n if (_this.overlay) {\n openOverlay(_this, {\n zIndex: context.zIndex++,\n duration: _this.duration,\n className: _this.overlayClass,\n customStyle: _this.overlayStyle\n });\n } else {\n closeOverlay(_this);\n }\n });\n },\n updateZIndex: function updateZIndex(value) {\n if (value === void 0) {\n value = 0;\n }\n\n this.$el.style.zIndex = ++context.zIndex + value;\n }\n }\n };\n}","import { createNamespace, isDef } from '../utils';\nimport { PopupMixin } from '../mixins/popup';\nimport Icon from '../icon';\n\nvar _createNamespace = createNamespace('popup'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [PopupMixin()],\n props: {\n round: Boolean,\n duration: [Number, String],\n closeable: Boolean,\n transition: String,\n safeAreaInsetBottom: Boolean,\n closeIcon: {\n type: String,\n default: 'cross'\n },\n closeIconPosition: {\n type: String,\n default: 'top-right'\n },\n position: {\n type: String,\n default: 'center'\n },\n overlay: {\n type: Boolean,\n default: true\n },\n closeOnClickOverlay: {\n type: Boolean,\n default: true\n }\n },\n beforeCreate: function beforeCreate() {\n var _this = this;\n\n var createEmitter = function createEmitter(eventName) {\n return function (event) {\n return _this.$emit(eventName, event);\n };\n };\n\n this.onClick = createEmitter('click');\n this.onOpened = createEmitter('opened');\n this.onClosed = createEmitter('closed');\n },\n methods: {\n onClickCloseIcon: function onClickCloseIcon(event) {\n this.$emit('click-close-icon', event);\n this.close();\n }\n },\n render: function render() {\n var _bem;\n\n var h = arguments[0];\n\n if (!this.shouldRender) {\n return;\n }\n\n var round = this.round,\n position = this.position,\n duration = this.duration;\n var isCenter = position === 'center';\n var transitionName = this.transition || (isCenter ? 'van-fade' : \"van-popup-slide-\" + position);\n var style = {};\n\n if (isDef(duration)) {\n var key = isCenter ? 'animationDuration' : 'transitionDuration';\n style[key] = duration + \"s\";\n }\n\n return h(\"transition\", {\n \"attrs\": {\n \"appear\": this.transitionAppear,\n \"name\": transitionName\n },\n \"on\": {\n \"afterEnter\": this.onOpened,\n \"afterLeave\": this.onClosed\n }\n }, [h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.value\n }],\n \"style\": style,\n \"class\": bem((_bem = {\n round: round\n }, _bem[position] = position, _bem['safe-area-inset-bottom'] = this.safeAreaInsetBottom, _bem)),\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.slots(), this.closeable && h(Icon, {\n \"attrs\": {\n \"role\": \"button\",\n \"tabindex\": \"0\",\n \"name\": this.closeIcon\n },\n \"class\": bem('close-icon', this.closeIconPosition),\n \"on\": {\n \"click\": this.onClickCloseIcon\n }\n })])]);\n }\n});","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SideBar.vue?vue&type=template&id=c2758422&scoped=true&\"\nimport script from \"./SideBar.vue?vue&type=script&lang=js&\"\nexport * from \"./SideBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SideBar.vue?vue&type=style&index=0&id=c2758422&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c2758422\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('van-popup',{style:({ width: '56%', height: '56%' }),attrs:{\"position\":\"center\"},model:{value:(_vm.showPop),callback:function ($$v) {_vm.showPop=$$v},expression:\"showPop\"}},[_c('div',{staticClass:\"introduce-pop\"},[_c('div',{staticClass:\"close-box flex-end\"},[_c('van-icon',{attrs:{\"name\":\"cross\",\"color\":\"#221E1F\",\"size\":\"20\"},on:{\"click\":function($event){_vm.showPop = false}}})],1),_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"theme\"},[_vm._v(_vm._s(_vm.$t('info.title')))]),_c('div',{staticClass:\"type\"},[_vm._v(_vm._s(_vm.$t('info.type')))]),_c('div',{staticClass:\"desc\"},[_vm._v(_vm._s(_vm.$t('info.desc')))])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IntroducePop.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IntroducePop.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./IntroducePop.vue?vue&type=template&id=5de97a85&scoped=true&\"\nimport script from \"./IntroducePop.vue?vue&type=script&lang=js&\"\nexport * from \"./IntroducePop.vue?vue&type=script&lang=js&\"\nimport style0 from \"./IntroducePop.vue?vue&type=style&index=0&id=5de97a85&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5de97a85\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('van-popup',{style:({ width: '56%', height: '74%' }),attrs:{\"position\":\"center\"},model:{value:(_vm.showPop),callback:function ($$v) {_vm.showPop=$$v},expression:\"showPop\"}},[(_vm.showPop)?_c('div',{staticClass:\"info-pop\"},[(_vm.loading)?_c('div',{staticClass:\"loading-box flex-center\"},[_c('van-loading',{attrs:{\"color\":\"#666666\"}})],1):[_c('div',{staticClass:\"close-box flex-end\"},[_c('van-icon',{attrs:{\"name\":\"cross\",\"color\":\"#221E1F\",\"size\":\"20\"},on:{\"click\":function($event){_vm.showPop = false}}})],1),_c('div',{staticClass:\"content\"},[(_vm.info.pic)?_c('div',{staticClass:\"pic flex-center\"},[_c('img',{directives:[{name:\"viewer\",rawName:\"v-viewer\"}],attrs:{\"src\":require((\"../assets/data/\" + _vm.type + \"/\" + (_vm.info.pic)))},on:{\"click\":function($event){_vm.imagePreview([require((\"../assets/data/\" + _vm.type + \"/\" + (_vm.info.pic)))]);}}})]):_c('div',{staticClass:\"desc\",domProps:{\"innerHTML\":_vm._s(_vm.info.text)}}),_c('div',{staticClass:\"desc\",class:_vm.info.align},_vm._l((_vm.info.desc),function(item,index){return _c('div',{key:index,domProps:{\"innerHTML\":_vm._s(item)}})}),0)])],(_vm.info.pic)?_c('div',{staticStyle:{\"opacity\":\"0\",\"display\":\"none\"}},[_c('van-image',{attrs:{\"src\":require((\"../assets/data/\" + _vm.type + \"/\" + (_vm.info.pic)))},on:{\"load\":_vm.loadImage}})],1):_vm._e()],2):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, addUnit } from '../utils';\nimport { inherit } from '../utils/functional'; // Types\n\nvar _createNamespace = createNamespace('loading'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction LoadingIcon(h, props) {\n if (props.type === 'spinner') {\n var Spin = [];\n\n for (var i = 0; i < 12; i++) {\n Spin.push(h(\"i\"));\n }\n\n return Spin;\n }\n\n return h(\"svg\", {\n \"class\": bem('circular'),\n \"attrs\": {\n \"viewBox\": \"25 25 50 50\"\n }\n }, [h(\"circle\", {\n \"attrs\": {\n \"cx\": \"50\",\n \"cy\": \"50\",\n \"r\": \"20\",\n \"fill\": \"none\"\n }\n })]);\n}\n\nfunction LoadingText(h, props, slots) {\n if (slots.default) {\n var _props$textColor;\n\n var style = {\n fontSize: addUnit(props.textSize),\n color: (_props$textColor = props.textColor) != null ? _props$textColor : props.color\n };\n return h(\"span\", {\n \"class\": bem('text'),\n \"style\": style\n }, [slots.default()]);\n }\n}\n\nfunction Loading(h, props, slots, ctx) {\n var color = props.color,\n size = props.size,\n type = props.type;\n var style = {\n color: color\n };\n\n if (size) {\n var iconSize = addUnit(size);\n style.width = iconSize;\n style.height = iconSize;\n }\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem([type, {\n vertical: props.vertical\n }])\n }, inherit(ctx, true)]), [h(\"span\", {\n \"class\": bem('spinner', type),\n \"style\": style\n }, [LoadingIcon(h, props)]), LoadingText(h, props, slots)]);\n}\n\nLoading.props = {\n color: String,\n size: [Number, String],\n vertical: Boolean,\n textSize: [Number, String],\n textColor: String,\n type: {\n type: String,\n default: 'circular'\n }\n};\nexport default createComponent(Loading);","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfoPop.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfoPop.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InfoPop.vue?vue&type=template&id=71118041&scoped=true&\"\nimport script from \"./InfoPop.vue?vue&type=script&lang=js&\"\nexport * from \"./InfoPop.vue?vue&type=script&lang=js&\"\nimport style0 from \"./InfoPop.vue?vue&type=style&index=0&id=71118041&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"71118041\",\n null\n \n)\n\nexport default component.exports","/**\n * SSR Window 2.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: May 12, 2020\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target, src) {\n if (target === void 0) { target = {}; }\n if (src === void 0) { src = {}; }\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar doc = typeof document !== 'undefined' ? document : {};\nvar ssrDocument = {\n body: {},\n addEventListener: function () { },\n removeEventListener: function () { },\n activeElement: {\n blur: function () { },\n nodeName: '',\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () { },\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () { },\n getElementsByTagName: function () {\n return [];\n },\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nextend(doc, ssrDocument);\n\nvar win = typeof window !== 'undefined' ? window : {};\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState: function () { },\n pushState: function () { },\n go: function () { },\n back: function () { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () { },\n removeEventListener: function () { },\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n },\n };\n },\n Image: function () { },\n Date: function () { },\n screen: {},\n setTimeout: function () { },\n clearTimeout: function () { },\n matchMedia: function () {\n return {};\n },\n};\nextend(win, ssrWindow);\n\nexport { doc as document, extend, win as window };\n","/**\n * Dom7 2.1.5\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * http://framework7.io/docs/dom.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n *\n * Licensed under MIT\n *\n * Released on: May 15, 2020\n */\nimport { document, window } from 'ssr-window';\n\nclass Dom7 {\n constructor(arr) {\n const self = this;\n // Create array-like object\n for (let i = 0; i < arr.length; i += 1) {\n self[i] = arr[i];\n }\n self.length = arr.length;\n // Return collection with methods\n return this;\n }\n}\n\nfunction $(selector, context) {\n const arr = [];\n let i = 0;\n if (selector && !context) {\n if (selector instanceof Dom7) {\n return selector;\n }\n }\n if (selector) {\n // String\n if (typeof selector === 'string') {\n let els;\n let tempParent;\n const html = selector.trim();\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(':~]/)) {\n // Pure ID selector\n els = [document.getElementById(selector.trim().split('#')[1])];\n } else {\n // Other selectors\n els = (context || document).querySelectorAll(selector.trim());\n }\n for (i = 0; i < els.length; i += 1) {\n if (els[i]) arr.push(els[i]);\n }\n }\n } else if (selector.nodeType || selector === window || selector === document) {\n // Node/element\n arr.push(selector);\n } else if (selector.length > 0 && selector[0].nodeType) {\n // Array of elements or instance of Dom\n for (i = 0; i < selector.length; i += 1) {\n arr.push(selector[i]);\n }\n }\n }\n return new Dom7(arr);\n}\n\n$.fn = Dom7.prototype;\n$.Class = Dom7;\n$.Dom7 = Dom7;\n\nfunction unique(arr) {\n const uniqueArray = [];\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group1) => group1.toUpperCase());\n}\n\nfunction requestAnimationFrame(callback) {\n if (window.requestAnimationFrame) return window.requestAnimationFrame(callback);\n else if (window.webkitRequestAnimationFrame) return window.webkitRequestAnimationFrame(callback);\n return window.setTimeout(callback, 1000 / 60);\n}\nfunction cancelAnimationFrame(id) {\n if (window.cancelAnimationFrame) return window.cancelAnimationFrame(id);\n else if (window.webkitCancelAnimationFrame) return window.webkitCancelAnimationFrame(id);\n return window.clearTimeout(id);\n}\n\n// Classes and attributes\nfunction addClass(className) {\n if (typeof className === 'undefined') {\n return this;\n }\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.add(classes[i]);\n }\n }\n return this;\n}\nfunction removeClass(className) {\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.remove(classes[i]);\n }\n }\n return this;\n}\nfunction hasClass(className) {\n if (!this[0]) return false;\n return this[0].classList.contains(className);\n}\nfunction toggleClass(className) {\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.toggle(classes[i]);\n }\n }\n return this;\n}\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n }\n\n // Set attrs\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n // eslint-disable-next-line\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n return this;\n}\n// eslint-disable-next-line\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n return this;\n}\n// eslint-disable-next-line\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n // eslint-disable-next-line\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n return this;\n }\n}\nfunction data(key, value) {\n let el;\n if (typeof value === 'undefined') {\n el = this[0];\n // Get value\n if (el) {\n if (el.dom7ElementDataStorage && (key in el.dom7ElementDataStorage)) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n if (dataKey) {\n return dataKey;\n }\n return undefined;\n }\n return undefined;\n }\n\n // Set value\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n return this;\n}\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n if (el.dataset) {\n // eslint-disable-next-line\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n // eslint-disable-next-line\n const attr = el.attributes[i];\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n // eslint-disable-next-line\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;\n else if (dataset[key] === 'true') dataset[key] = true;\n else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n return dataset;\n}\nfunction val(value) {\n const dom = this;\n if (typeof value === 'undefined') {\n if (dom[0]) {\n if (dom[0].multiple && dom[0].nodeName.toLowerCase() === 'select') {\n const values = [];\n for (let i = 0; i < dom[0].selectedOptions.length; i += 1) {\n values.push(dom[0].selectedOptions[i].value);\n }\n return values;\n }\n return dom[0].value;\n }\n return undefined;\n }\n\n for (let i = 0; i < dom.length; i += 1) {\n const el = dom[i];\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n return dom;\n}\n// Transforms\n// eslint-disable-next-line\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n const elStyle = this[i].style;\n elStyle.webkitTransform = transform;\n elStyle.transform = transform;\n }\n return this;\n}\nfunction transition(duration) {\n if (typeof duration !== 'string') {\n duration = `${duration}ms`; // eslint-disable-line\n }\n for (let i = 0; i < this.length; i += 1) {\n const elStyle = this[i].style;\n elStyle.webkitTransitionDuration = duration;\n elStyle.transitionDuration = duration;\n }\n return this;\n}\n// Events\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n if ($(target).is(targetSelector)) listener.apply(target, eventData);\n else {\n const parents = $(target).parents(); // eslint-disable-line\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n listener.apply(this, eventData);\n }\n const events = eventType.split(' ');\n let j;\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent,\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent,\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n return this;\n}\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n\n const events = eventType.split(' ');\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n return this;\n}\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\nfunction trigger(...args) {\n const events = args[0].split(' ');\n const eventData = args[1];\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let evt;\n try {\n evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true,\n });\n } catch (e) {\n evt = document.createEvent('Event');\n evt.initEvent(event, true, true);\n evt.detail = eventData;\n }\n // eslint-disable-next-line\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n return this;\n}\nfunction transitionEnd(callback) {\n const events = ['webkitTransitionEnd', 'transitionend'];\n const dom = this;\n let i;\n function fireCallBack(e) {\n /* jshint validthis:true */\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\nfunction animationEnd(callback) {\n const events = ['webkitAnimationEnd', 'animationend'];\n const dom = this;\n let i;\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\n// Sizing/Styles\nfunction width() {\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n return this[0].offsetWidth;\n }\n return null;\n}\nfunction height() {\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n return this[0].offsetHeight;\n }\n return null;\n}\nfunction offset() {\n if (this.length > 0) {\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: (box.top + scrollTop) - clientTop,\n left: (box.left + scrollLeft) - clientLeft,\n };\n }\n\n return null;\n}\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n return this;\n}\nfunction show() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n return this;\n}\nfunction styles() {\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\nfunction css(props, value) {\n let i;\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n for (i = 0; i < this.length; i += 1) {\n // eslint-disable-next-line\n for (let prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n return this;\n }\n }\n if (arguments.length === 2 && typeof props === 'string') {\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n return this;\n }\n return this;\n}\n\n// Dom manipulation\nfunction toArray() {\n const arr = [];\n for (let i = 0; i < this.length; i += 1) {\n arr.push(this[i]);\n }\n return arr;\n}\n// Iterate over the collection passing elements to `callback`\nfunction each(callback) {\n // Don't bother continuing without a callback\n if (!callback) return this;\n // Iterate over the current collection\n for (let i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], i, this[i]) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\nfunction forEach(callback) {\n // Don't bother continuing without a callback\n if (!callback) return this;\n // Iterate over the current collection\n for (let i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], this[i], i) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\nfunction filter(callback) {\n const matchedItems = [];\n const dom = this;\n for (let i = 0; i < dom.length; i += 1) {\n if (callback.call(dom[i], i, dom[i])) matchedItems.push(dom[i]);\n }\n return new Dom7(matchedItems);\n}\nfunction map(callback) {\n const modifiedItems = [];\n const dom = this;\n for (let i = 0; i < dom.length; i += 1) {\n modifiedItems.push(callback.call(dom[i], i, dom[i]));\n }\n return new Dom7(modifiedItems);\n}\n// eslint-disable-next-line\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : undefined;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n return this;\n}\n// eslint-disable-next-line\nfunction text(text) {\n if (typeof text === 'undefined') {\n if (this[0]) {\n return this[0].textContent.trim();\n }\n return null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n return this;\n}\nfunction is(selector) {\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n else if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n else if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n\n compareWith = $(selector);\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n } else if (selector === document) return el === document;\n else if (selector === window) return el === window;\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n }\n return false;\n}\nfunction indexOf(el) {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i] === el) return i;\n }\n return -1;\n}\nfunction index() {\n let child = this[0];\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\n// eslint-disable-next-line\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n let returnIndex;\n if (index > length - 1) {\n return new Dom7([]);\n }\n if (index < 0) {\n returnIndex = length + index;\n if (returnIndex < 0) return new Dom7([]);\n return new Dom7([this[returnIndex]]);\n }\n return new Dom7([this[index]]);\n}\nfunction append(...args) {\n let newChild;\n\n for (let k = 0; k < args.length; k += 1) {\n newChild = args[k];\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n// eslint-disable-next-line\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\nfunction prepend(newChild) {\n let i;\n let j;\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n return this;\n}\n// eslint-disable-next-line\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\nfunction insertBefore(selector) {\n const before = $(selector);\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\nfunction insertAfter(selector) {\n const after = $(selector);\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return new Dom7([this[0].nextElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (this[0].nextElementSibling) return new Dom7([this[0].nextElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return new Dom7([]);\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return new Dom7(nextEls);\n}\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return new Dom7([el.previousElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (el.previousElementSibling) return new Dom7([el.previousElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return new Dom7([]);\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return new Dom7(prevEls);\n}\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n return $(unique(parents));\n}\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentNode;\n }\n }\n return $(unique(parents));\n}\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n if (typeof selector === 'undefined') {\n return new Dom7([]);\n }\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n return closest;\n}\nfunction find(selector) {\n const foundElements = [];\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n return new Dom7(foundElements);\n}\nfunction children(selector) {\n const children = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].childNodes;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector) {\n if (childNodes[j].nodeType === 1) children.push(childNodes[j]);\n } else if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n return new Dom7(unique(children));\n}\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n return this;\n}\nfunction detach() {\n return this.remove();\n}\nfunction add(...args) {\n const dom = this;\n let i;\n let j;\n for (i = 0; i < args.length; i += 1) {\n const toAdd = $(args[i]);\n for (j = 0; j < toAdd.length; j += 1) {\n dom[dom.length] = toAdd[j];\n dom.length += 1;\n }\n }\n return dom;\n}\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n el.textContent = '';\n }\n }\n return this;\n}\n\nfunction scrollTo(...args) {\n let [left, top, duration, easing, callback] = args;\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n if (typeof easing === 'undefined') easing = 'swing';\n\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n let scrollLeft; // eslint-disable-line\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n if (animateTop) {\n currentTop = el.scrollTop;\n if (!duration) {\n el.scrollTop = top;\n }\n }\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n if (!duration) return;\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : (0.5 - (Math.cos(progress * Math.PI) / 2));\n let done;\n if (animateTop) scrollTop = currentTop + (easeProgress * (newTop - currentTop));\n if (animateLeft) scrollLeft = currentLeft + (easeProgress * (newLeft - currentLeft));\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n requestAnimationFrame(render);\n }\n requestAnimationFrame(render);\n });\n}\n// scrollTop(top, duration, easing, callback) {\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n const dom = this;\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n const dom = this;\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing', // or 'linear'\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n }, initialParams),\n\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - (Math.cos(progress * Math.PI) / 2);\n }\n if (typeof easing === 'function') {\n return easing(progress);\n }\n return progress;\n },\n stop() {\n if (a.frameId) {\n cancelAnimationFrame(a.frameId);\n }\n a.animating = false;\n a.elements.each((index, el) => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done(complete) {\n a.animating = false;\n a.elements.each((index, el) => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n const elements = [];\n\n // Define & Cache Initials & Units\n a.elements.each((index, el) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n\n elements[index] = {\n container: el,\n };\n Object.keys(props).forEach((prop) => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue,\n };\n });\n });\n\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress;\n // let el;\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n if (startTime === null) {\n startTime = time;\n }\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), ((startTime + params.duration) - time < 0 ? 0 : (startTime + params.duration) - time), startTime);\n }\n\n elements.forEach((element) => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach((prop) => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const { initialValue, finalValue, unit } = el[prop];\n el[prop].currentValue = initialValue + (easeProgress * (finalValue - initialValue));\n const currentValue = el[prop].currentValue;\n\n if (\n (finalValue > initialValue && currentValue >= finalValue) ||\n (finalValue < initialValue && currentValue <= finalValue)) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n if (done) {\n a.done(params.complete);\n return;\n }\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return;\n // Then call\n a.frameId = requestAnimationFrame(render);\n }\n a.frameId = requestAnimationFrame(render);\n return a;\n },\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = ('resize scroll').split(' ');\nfunction eventShortcut(name, ...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();\n else {\n $(this[i]).trigger(name);\n }\n }\n }\n return this;\n }\n return this.on(name, ...args);\n}\n\nfunction click(...args) {\n return eventShortcut.bind(this)('click', ...args);\n}\nfunction blur(...args) {\n return eventShortcut.bind(this)('blur', ...args);\n}\nfunction focus(...args) {\n return eventShortcut.bind(this)('focus', ...args);\n}\nfunction focusin(...args) {\n return eventShortcut.bind(this)('focusin', ...args);\n}\nfunction focusout(...args) {\n return eventShortcut.bind(this)('focusout', ...args);\n}\nfunction keyup(...args) {\n return eventShortcut.bind(this)('keyup', ...args);\n}\nfunction keydown(...args) {\n return eventShortcut.bind(this)('keydown', ...args);\n}\nfunction keypress(...args) {\n return eventShortcut.bind(this)('keypress', ...args);\n}\nfunction submit(...args) {\n return eventShortcut.bind(this)('submit', ...args);\n}\nfunction change(...args) {\n return eventShortcut.bind(this)('change', ...args);\n}\nfunction mousedown(...args) {\n return eventShortcut.bind(this)('mousedown', ...args);\n}\nfunction mousemove(...args) {\n return eventShortcut.bind(this)('mousemove', ...args);\n}\nfunction mouseup(...args) {\n return eventShortcut.bind(this)('mouseup', ...args);\n}\nfunction mouseenter(...args) {\n return eventShortcut.bind(this)('mouseenter', ...args);\n}\nfunction mouseleave(...args) {\n return eventShortcut.bind(this)('mouseleave', ...args);\n}\nfunction mouseout(...args) {\n return eventShortcut.bind(this)('mouseout', ...args);\n}\nfunction mouseover(...args) {\n return eventShortcut.bind(this)('mouseover', ...args);\n}\nfunction touchstart(...args) {\n return eventShortcut.bind(this)('touchstart', ...args);\n}\nfunction touchend(...args) {\n return eventShortcut.bind(this)('touchend', ...args);\n}\nfunction touchmove(...args) {\n return eventShortcut.bind(this)('touchmove', ...args);\n}\nfunction resize(...args) {\n return eventShortcut.bind(this)('resize', ...args);\n}\nfunction scroll(...args) {\n return eventShortcut.bind(this)('scroll', ...args);\n}\n\nexport { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, prop, data, removeData, dataset, val, transform, transition, on, off, once, trigger, transitionEnd, animationEnd, width, outerWidth, height, outerHeight, offset, hide, show, styles, css, toArray, each, forEach, filter, map, html, text, is, indexOf, index, eq, append, appendTo, prepend, prependTo, insertBefore, insertAfter, next, nextAll, prev, prevAll, siblings, parent, parents, closest, find, children, remove, detach, add, empty, scrollTo, scrollTop, scrollLeft, animate, stop, click, blur, focus, focusin, focusout, keyup, keydown, keypress, submit, change, mousedown, mousemove, mouseup, mouseenter, mouseleave, mouseout, mouseover, touchstart, touchend, touchmove, resize, scroll };\n","/**\n * Swiper 5.4.5\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * http://swiperjs.com\n *\n * Copyright 2014-2020 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: June 16, 2020\n */\n\nimport { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, data, transform, transition as transition$1, on, off, trigger, transitionEnd as transitionEnd$1, outerWidth, outerHeight, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove, add, styles } from 'dom7/dist/dom7.modular';\nimport { window, document as document$1 } from 'ssr-window';\n\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n data,\n transform,\n transition: transition$1,\n on,\n off,\n trigger,\n transitionEnd: transitionEnd$1,\n outerWidth,\n outerHeight,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove,\n add,\n styles,\n};\n\nObject.keys(Methods).forEach((methodName) => {\n $.fn[methodName] = $.fn[methodName] || Methods[methodName];\n});\n\nconst Utils = {\n deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach((key) => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n },\n nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n },\n now() {\n return Date.now();\n },\n getTranslate(el, axis = 'x') {\n let matrix;\n let curTransform;\n let transformMatrix;\n\n const curStyle = window.getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map((a) => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n },\n parseUrlQuery(url) {\n const query = {};\n let urlToParse = url || window.location.href;\n let i;\n let params;\n let param;\n let length;\n if (typeof urlToParse === 'string' && urlToParse.length) {\n urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\\S*\\?/, '') : '';\n params = urlToParse.split('&').filter((paramsPart) => paramsPart !== '');\n length = params.length;\n\n for (i = 0; i < length; i += 1) {\n param = params[i].replace(/#\\S+/g, '').split('=');\n query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param[1]) || '';\n }\n }\n return query;\n },\n isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n },\n extend(...args) {\n const to = Object(args[0]);\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null) {\n const keysArray = Object.keys(Object(nextSource));\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n },\n};\n\nconst Support = (function Support() {\n return {\n touch: !!(('ontouchstart' in window) || (window.DocumentTouch && document$1 instanceof window.DocumentTouch)),\n\n pointerEvents: !!window.PointerEvent && ('maxTouchPoints' in window.navigator) && window.navigator.maxTouchPoints >= 0,\n\n observer: (function checkObserver() {\n return ('MutationObserver' in window || 'WebkitMutationObserver' in window);\n }()),\n\n passiveListener: (function checkPassiveListener() {\n let supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n },\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {\n // No support\n }\n return supportsPassive;\n }()),\n\n gestures: (function checkGestures() {\n return 'ongesturestart' in window;\n }()),\n };\n}());\n\nclass SwiperClass {\n constructor(params = {}) {\n const self = this;\n self.params = params;\n\n // Events\n self.eventsListeners = {};\n\n if (self.params && self.params.on) {\n Object.keys(self.params.on).forEach((eventName) => {\n self.on(eventName, self.params.on[eventName]);\n });\n }\n }\n\n on(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach((event) => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n }\n\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n function onceHandler(...args) {\n self.off(events, onceHandler);\n if (onceHandler.f7proxy) {\n delete onceHandler.f7proxy;\n }\n handler.apply(self, args);\n }\n onceHandler.f7proxy = handler;\n return self.on(events, onceHandler, priority);\n }\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach((event) => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event] && self.eventsListeners[event].length) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || (eventHandler.f7proxy && eventHandler.f7proxy === handler)) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n }\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach((event) => {\n if (self.eventsListeners && self.eventsListeners[event]) {\n const handlers = [];\n self.eventsListeners[event].forEach((eventHandler) => {\n handlers.push(eventHandler);\n });\n handlers.forEach((eventHandler) => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n useModulesParams(instanceParams) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n // Extend params\n if (module.params) {\n Utils.extend(instanceParams, module.params);\n }\n });\n }\n\n useModules(modulesParams = {}) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n const moduleParams = modulesParams[moduleName] || {};\n // Extend instance methods and props\n if (module.instance) {\n Object.keys(module.instance).forEach((modulePropName) => {\n const moduleProp = module.instance[modulePropName];\n if (typeof moduleProp === 'function') {\n instance[modulePropName] = moduleProp.bind(instance);\n } else {\n instance[modulePropName] = moduleProp;\n }\n });\n }\n // Add event listeners\n if (module.on && instance.on) {\n Object.keys(module.on).forEach((moduleEventName) => {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n }\n\n // Module create callback\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n\n static set components(components) {\n const Class = this;\n if (!Class.use) return;\n Class.use(components);\n }\n\n static installModule(module, ...params) {\n const Class = this;\n if (!Class.prototype.modules) Class.prototype.modules = {};\n const name = module.name || (`${Object.keys(Class.prototype.modules).length}_${Utils.now()}`);\n Class.prototype.modules[name] = module;\n // Prototype\n if (module.proto) {\n Object.keys(module.proto).forEach((key) => {\n Class.prototype[key] = module.proto[key];\n });\n }\n // Class\n if (module.static) {\n Object.keys(module.static).forEach((key) => {\n Class[key] = module.static[key];\n });\n }\n // Callback\n if (module.install) {\n module.install.apply(Class, params);\n }\n return Class;\n }\n\n static use(module, ...params) {\n const Class = this;\n if (Array.isArray(module)) {\n module.forEach((m) => Class.installModule(m));\n return Class;\n }\n return Class.installModule(module, ...params);\n }\n}\n\nfunction updateSize () {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n if (typeof swiper.params.width !== 'undefined') {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined') {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10);\n height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10);\n\n Utils.extend(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height,\n });\n}\n\nfunction updateSlides () {\n const swiper = this;\n const params = swiper.params;\n\n const {\n $wrapperEl, size: swiperSize, rtlTranslate: rtl, wrongRTL,\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n\n function slidesForMargin(slideIndex) {\n if (!params.cssMode) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }\n\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.snapGrid.length;\n\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n if (rtl) slides.css({ marginLeft: '', marginTop: '' });\n else slides.css({ marginRight: '', marginBottom: '' });\n\n let slidesNumberEvenToRows;\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n }\n\n // Calc slides\n let slideSize;\n const slidesPerColumn = params.slidesPerColumn;\n const slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n const numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n if (params.slidesPerColumn > 1) {\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n const slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0\n ? params.slidesPerGroup\n : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = (slideIndexInGroup - row * columnsInGroup) + groupIndex * params.slidesPerGroup;\n\n newSlideOrderIndex = column + ((row * slidesNumberEvenToRows) / slidesPerColumn);\n slide\n .css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex,\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - (column * slidesPerColumn);\n if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn - 1)) {\n row += 1;\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - (row * slidesPerRow);\n }\n slide.css(\n `margin-${swiper.isHorizontal() ? 'top' : 'left'}`,\n (row !== 0 && params.spaceBetween) && (`${params.spaceBetween}px`)\n );\n }\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n const slideStyles = window.getComputedStyle(slide[0], null);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal()\n ? slide.outerWidth(true)\n : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n if (swiper.isHorizontal()) {\n const width = parseFloat(slideStyles.getPropertyValue('width'));\n const paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left'));\n const paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right'));\n const marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left'));\n const marginRight = parseFloat(slideStyles.getPropertyValue('margin-right'));\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight;\n }\n } else {\n const height = parseFloat(slideStyles.getPropertyValue('height'));\n const paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top'));\n const paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom'));\n const marginTop = parseFloat(slideStyles.getPropertyValue('margin-top'));\n const marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom'));\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = height + marginTop + marginBottom;\n } else {\n slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom;\n }\n }\n }\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - ((params.slidesPerView - 1) * spaceBetween)) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n if (swiper.isHorizontal()) {\n slides[i].style.width = `${slideSize}px`;\n } else {\n slides[i].style.height = `${slideSize}px`;\n }\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + (slideSize / 2) + (prevSlideSize / 2) + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - (swiperSize / 2) - spaceBetween;\n if (i === 0) slidePosition = slidePosition - (swiperSize / 2) - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index) % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n\n prevSlideSize = slideSize;\n\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n let newSlidesGrid;\n\n if (\n rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n }\n if (params.setWrapperSize) {\n if (swiper.isHorizontal()) $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n else $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` });\n }\n\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal()) $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n else $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` });\n if (params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid = newSlidesGrid;\n }\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) slides.filter(slidesForMargin).css({ marginLeft: `${spaceBetween}px` });\n else slides.filter(slidesForMargin).css({ marginRight: `${spaceBetween}px` });\n } else slides.filter(slidesForMargin).css({ marginBottom: `${spaceBetween}px` });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach((slideSizeValue) => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map((snap) => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach((slideSizeValue) => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Utils.extend(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid,\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}\n\nfunction updateAutoHeight (speed) {\n const swiper = this;\n const activeSlides = [];\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each((index, slide) => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length) break;\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}\n\nfunction updateSlidesOffset () {\n const swiper = this;\n const slides = swiper.slides;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}\n\nfunction updateSlidesProgress (translate = (this && this.translate) || 0) {\n const swiper = this;\n const params = swiper.params;\n\n const { slides, rtlTranslate: rtl } = swiper;\n\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.removeClass(params.slideVisibleClass);\n\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n const slideProgress = (\n (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0)) - slide.swiperSlideOffset\n ) / (slide.swiperSlideSize + params.spaceBetween);\n if (params.watchSlidesVisibility || (params.centeredSlides && params.autoHeight)) {\n const slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = (slideBefore >= 0 && slideBefore < swiper.size - 1)\n || (slideAfter > 1 && slideAfter <= swiper.size)\n || (slideBefore <= 0 && slideAfter >= swiper.size);\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n swiper.visibleSlides = $(swiper.visibleSlides);\n}\n\nfunction updateProgress (translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = (swiper && swiper.translate && (swiper.translate * multiplier)) || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let { progress, isBeginning, isEnd } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / (translatesDiff);\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n Utils.extend(swiper, {\n progress,\n isBeginning,\n isEnd,\n });\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility || (params.centeredSlides && params.autoHeight)) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}\n\nfunction updateSlidesClasses () {\n const swiper = this;\n\n const {\n slides, params, $wrapperEl, activeIndex, realIndex,\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n\n let activeSlide;\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n }\n\n // Active classes\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`)\n .addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`)\n .addClass(params.slideDuplicateActiveClass);\n }\n }\n // Next Slide\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicateNextClass);\n }\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicatePrevClass);\n }\n }\n}\n\nfunction updateActiveIndex (newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid, snapGrid, params, activeIndex: previousIndex, realIndex: previousRealIndex, snapIndex: previousSnapIndex,\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - ((slidesGrid[i + 1] - slidesGrid[i]) / 2)) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n\n // Get real index\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n\n Utils.extend(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex,\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide (e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e.target).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) slideFound = true;\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = $(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide,\n};\n\nfunction getTranslate (axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n\n const {\n params, rtlTranslate: rtl, translate, $wrapperEl,\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = Utils.getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n\n return currentTranslate || 0;\n}\n\nfunction setTranslate (translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl, params, $wrapperEl, wrapperEl, progress,\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / (translatesDiff);\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate () {\n return (-this.snapGrid[0]);\n}\n\nfunction maxTranslate () {\n return (-this.snapGrid[this.snapGrid.length - 1]);\n}\n\nfunction translateTo (translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n\n const {\n params,\n wrapperEl,\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;\n else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;\n else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth',\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}\n\nvar translate = {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo,\n};\n\nfunction setTransition (duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionStart (runCallbacks = true, direction) {\n const swiper = this;\n const { activeIndex, params, previousIndex } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';\n else if (activeIndex < previousIndex) dir = 'prev';\n else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n swiper.emit('slideChangeTransitionStart');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}\n\nfunction transitionEnd (runCallbacks = true, direction) {\n const swiper = this;\n const { activeIndex, previousIndex, params } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';\n else if (activeIndex < previousIndex) dir = 'prev';\n else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n swiper.emit('slideChangeTransitionEnd');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd,\n};\n\nfunction slideTo (index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n\n const {\n params, snapGrid, slidesGrid, previousIndex, activeIndex, rtlTranslate: rtl, wrapperEl,\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n const translate = -snapGrid[snapIndex];\n\n // Update progress\n swiper.updateProgress(translate);\n\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n let direction;\n if (slideIndex > activeIndex) direction = 'next';\n else if (slideIndex < activeIndex) direction = 'prev';\n else direction = 'reset';\n\n\n // Update Index\n if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n let t = -translate;\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth',\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}\n\nfunction slideToLoop (index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let newIndex = index;\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const { params, animating } = swiper;\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n if (params.loop) {\n if (animating) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params, animating, snapGrid, slidesGrid, rtlTranslate,\n } = swiper;\n\n if (params.loop) {\n if (animating) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map((val) => normalize(val));\n const normalizedSlidesGrid = slidesGrid.map((val) => normalize(val));\n\n const currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach((snap) => {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n let prevIndex;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest (speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if ((translate - currentSnap) > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if ((translate - prevSnap) <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide () {\n const swiper = this;\n const { params, $wrapperEl } = swiper;\n\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (\n (slideToIndex < swiper.loopedSlides - (slidesPerView / 2))\n || (slideToIndex > (swiper.slides.length - swiper.loopedSlides) + (slidesPerView / 2))\n ) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`)\n .eq(0)\n .index();\n\n Utils.nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`)\n .eq(0)\n .index();\n\n Utils.nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide,\n};\n\nfunction loopCreate () {\n const swiper = this;\n const { params, $wrapperEl } = swiper;\n // Remove duplicated slides\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n\n let slides = $wrapperEl.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup);\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document$1.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $wrapperEl.append(blankNode);\n }\n slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((index, el) => {\n const slide = $(el);\n if (index < swiper.loopedSlides) appendSlides.push(el);\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) prependSlides.push(el);\n slide.attr('data-swiper-slide-index', index);\n });\n for (let i = 0; i < appendSlides.length; i += 1) {\n $wrapperEl.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $wrapperEl.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}\n\nfunction loopFix () {\n const swiper = this;\n\n swiper.emit('beforeLoopFix');\n\n const {\n activeIndex, slides, loopedSlides, allowSlidePrev, allowSlideNext, snapGrid, rtlTranslate: rtl,\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate();\n\n // Fix For Negative Oversliding\n if (activeIndex < loopedSlides) {\n newIndex = (slides.length - (loopedSlides * 3)) + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n swiper.emit('loopFix');\n}\n\nfunction loopDestroy () {\n const swiper = this;\n const { $wrapperEl, params, slides } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy,\n};\n\nfunction setGrabCursor (moving) {\n const swiper = this;\n if (Support.touch || !swiper.params.simulateTouch || (swiper.params.watchOverflow && swiper.isLocked) || swiper.params.cssMode) return;\n const el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}\n\nfunction unsetGrabCursor () {\n const swiper = this;\n if (Support.touch || (swiper.params.watchOverflow && swiper.isLocked) || swiper.params.cssMode) return;\n swiper.el.style.cursor = '';\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor,\n};\n\nfunction appendSlide (slides) {\n const swiper = this;\n const { $wrapperEl, params } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n}\n\nfunction prependSlide (slides) {\n const swiper = this;\n const { params, $wrapperEl, activeIndex } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndex + 1;\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}\n\nfunction addSlide (index, slides) {\n const swiper = this;\n const { $wrapperEl, params, activeIndex } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n const baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n\n const slidesBuffer = [];\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n $wrapperEl.append(slidesBuffer[i]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeSlide (slidesIndexes) {\n const swiper = this;\n const { params, $wrapperEl, activeIndex } = swiper;\n\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeAllSlides () {\n const swiper = this;\n\n const slidesIndexes = [];\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}\n\nvar manipulation = {\n appendSlide,\n prependSlide,\n addSlide,\n removeSlide,\n removeAllSlides,\n};\n\nconst Device = (function Device() {\n const platform = window.navigator.platform;\n const ua = window.navigator.userAgent;\n\n const device = {\n ios: false,\n android: false,\n androidChrome: false,\n desktop: false,\n iphone: false,\n ipod: false,\n ipad: false,\n edge: false,\n ie: false,\n firefox: false,\n macos: false,\n windows: false,\n cordova: !!(window.cordova || window.phonegap),\n phonegap: !!(window.cordova || window.phonegap),\n electron: false,\n };\n\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const ie = ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n const edge = ua.indexOf('Edge/') >= 0;\n const firefox = ua.indexOf('Gecko/') >= 0 && ua.indexOf('Firefox/') >= 0;\n const windows = platform === 'Win32';\n const electron = ua.toLowerCase().indexOf('electron') >= 0;\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n if (!ipad\n && macos\n && Support.touch\n && (\n (screenWidth === 1024 && screenHeight === 1366) // Pro 12.9\n || (screenWidth === 834 && screenHeight === 1194) // Pro 11\n || (screenWidth === 834 && screenHeight === 1112) // Pro 10.5\n || (screenWidth === 768 && screenHeight === 1024) // other\n )\n ) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n macos = false;\n }\n\n device.ie = ie;\n device.edge = edge;\n device.firefox = firefox;\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.osVersion = android[2];\n device.android = true;\n device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n // iOS\n if (iphone && !ipod) {\n device.osVersion = iphone[2].replace(/_/g, '.');\n device.iphone = true;\n }\n if (ipad) {\n device.osVersion = ipad[2].replace(/_/g, '.');\n device.ipad = true;\n }\n if (ipod) {\n device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n device.ipod = true;\n }\n // iOS 8+ changed UA\n if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {\n if (device.osVersion.split('.')[0] === '10') {\n device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];\n }\n }\n\n // Webview\n device.webView = !!((iphone || ipad || ipod) && (ua.match(/.*AppleWebKit(?!.*Safari)/i) || window.navigator.standalone))\n || (window.matchMedia && window.matchMedia('(display-mode: standalone)').matches);\n device.webview = device.webView;\n device.standalone = device.webView;\n\n // Desktop\n device.desktop = !(device.ios || device.android) || electron;\n if (device.desktop) {\n device.electron = electron;\n device.macos = macos;\n device.windows = windows;\n if (device.macos) {\n device.os = 'macos';\n }\n if (device.windows) {\n device.os = 'windows';\n }\n }\n\n // Pixel Ratio\n device.pixelRatio = window.devicePixelRatio || 1;\n\n // Export object\n return device;\n}());\n\nfunction onTouchStart (event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const { params, touches } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`)[0]) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (\n edgeSwipeDetection\n && ((startX <= edgeSwipeThreshold)\n || (startX >= window.screen.width - edgeSwipeThreshold))\n ) {\n return;\n }\n\n Utils.extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined,\n });\n\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = Utils.now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n if ($targetEl.is(data.formElements)) preventDefault = false;\n if (\n document$1.activeElement\n && $(document$1.activeElement).is(data.formElements)\n && document$1.activeElement !== $targetEl[0]\n ) {\n document$1.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if (params.touchStartForcePreventDefault || shouldPreventDefault) {\n e.preventDefault();\n }\n }\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove (event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const { params, touches, rtlTranslate: rtl } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n if (data.isTouched) {\n Utils.extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n });\n data.touchStartTime = Utils.now();\n }\n return;\n }\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (\n (pageY < touches.startY && swiper.translate <= swiper.maxTranslate())\n || (pageY > touches.startY && swiper.translate >= swiper.minTranslate())\n ) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (\n (pageX < touches.startX && swiper.translate <= swiper.maxTranslate())\n || (pageX > touches.startX && swiper.translate >= swiper.minTranslate())\n ) {\n return;\n }\n }\n if (data.isTouchEvent && document$1.activeElement) {\n if (e.target === document$1.activeElement && $(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n\n touches.currentX = pageX;\n touches.currentY = pageY;\n\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt((diffX ** 2) + (diffY ** 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if ((swiper.isHorizontal() && touches.currentY === touches.startY) || (swiper.isVertical() && touches.currentX === touches.startX)) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if ((diffX * diffX) + (diffY * diffY) >= 25) {\n touchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : (90 - touchAngle > params.touchAngle);\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if ((diff > 0 && data.currentTranslate > swiper.minTranslate())) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = (swiper.minTranslate() - 1) + ((-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = (swiper.maxTranslate() + 1) - ((swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime,\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: Utils.now(),\n });\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd (event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n\n const {\n params, touches, rtlTranslate: rtl, $wrapperEl, slidesGrid, snapGrid,\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = Utils.now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && (touchEndTime - data.lastClickTime) < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = Utils.now();\n Utils.nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || (Utils.now() - lastMoveEvent.time) > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeModeMomentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n swiper.once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n return;\n }\n\n // Find current slide\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += (i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup)) {\n const increment = (i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup);\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = (stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup);\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);\n else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > (1 - params.longSwipesRatio)) swiper.slideTo(stopIndex + increment);\n else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize () {\n const swiper = this;\n\n const { params, el } = swiper;\n\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const { allowSlideNext, allowSlidePrev, snapGrid } = swiper;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n\n swiper.updateSize();\n swiper.updateSlides();\n\n swiper.updateSlidesClasses();\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick (e) {\n const swiper = this;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction onScroll () {\n const swiper = this;\n const { wrapperEl, rtlTranslate } = swiper;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = ((wrapperEl.scrollWidth - wrapperEl.offsetWidth) - wrapperEl.scrollLeft);\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === -0) swiper.translate = 0;\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / (translatesDiff);\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nlet dummyEventAttached = false;\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n const swiper = this;\n const {\n params, touchEvents, el, wrapperEl,\n } = swiper;\n\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n const capture = !!params.nested;\n\n // Touch Events\n if (!Support.touch && Support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document$1.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document$1.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n const passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? { passive: false, capture } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n if (!dummyEventAttached) {\n document$1.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document$1.addEventListener('mousemove', swiper.onTouchMove, capture);\n document$1.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper.on((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n const swiper = this;\n\n const {\n params, touchEvents, el, wrapperEl,\n } = swiper;\n\n const capture = !!params.nested;\n\n // Touch Events\n if (!Support.touch && Support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document$1.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document$1.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n const passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document$1.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document$1.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n }\n\n // Resize handler\n swiper.off((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize);\n}\n\nvar events = {\n attachEvents,\n detachEvents,\n};\n\nfunction setBreakpoint () {\n const swiper = this;\n const {\n activeIndex, initialized, loopedSlides = 0, params, $el,\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach((param) => {\n const paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = params.slidesPerColumn > 1;\n const isMultiRow = breakpointParams.slidesPerColumn > 1;\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}multirow ${params.containerModifierClass}multirow-column`);\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}multirow`);\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(`${params.containerModifierClass}multirow-column`);\n }\n }\n\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n Utils.extend(swiper.params, breakpointParams);\n\n Utils.extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n });\n\n swiper.currentBreakpoint = breakpoint;\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo((activeIndex - loopedSlides) + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n }\n}\n\nfunction getBreakpoint (breakpoints) {\n // Get breakpoint for window width\n if (!breakpoints) return undefined;\n let breakpoint = false;\n\n const points = Object.keys(breakpoints).map((point) => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = window.innerHeight * minRatio;\n return { value, point };\n }\n return { value: point, point };\n });\n\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const { point, value } = points[i];\n if (value <= window.innerWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n\nvar breakpoints = { setBreakpoint, getBreakpoint };\n\nfunction addClasses () {\n const swiper = this;\n const {\n classNames, params, rtl, $el,\n } = swiper;\n const suffixes = [];\n\n suffixes.push('initialized');\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n if (rtl) {\n suffixes.push('rtl');\n }\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n if (params.slidesPerColumnFill === 'column') {\n suffixes.push('multirow-column');\n }\n }\n if (Device.android) {\n suffixes.push('android');\n }\n if (Device.ios) {\n suffixes.push('ios');\n }\n\n if (params.cssMode) {\n suffixes.push('css-mode');\n }\n\n suffixes.forEach((suffix) => {\n classNames.push(params.containerModifierClass + suffix);\n });\n\n $el.addClass(classNames.join(' '));\n}\n\nfunction removeClasses () {\n const swiper = this;\n const { $el, classNames } = swiper;\n\n $el.removeClass(classNames.join(' '));\n}\n\nvar classes = { addClasses, removeClasses };\n\nfunction loadImage (imageEl, src, srcset, sizes, checkForComplete, callback) {\n let image;\n function onReady() {\n if (callback) callback();\n }\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}\n\nfunction preloadImages () {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(\n imageEl,\n imageEl.currentSrc || imageEl.getAttribute('src'),\n imageEl.srcset || imageEl.getAttribute('srcset'),\n imageEl.sizes || imageEl.getAttribute('sizes'),\n true,\n onReady\n );\n }\n}\n\nvar images = {\n loadImage,\n preloadImages,\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const params = swiper.params;\n const wasLocked = swiper.isLocked;\n const lastSlidePosition = swiper.slides.length > 0 && (params.slidesOffsetBefore + (params.spaceBetween * (swiper.slides.length - 1)) + ((swiper.slides[0]).offsetWidth) * swiper.slides.length);\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked;\n\n // events\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nvar checkOverflow$1 = { checkOverflow };\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n //\n preventInteractionOnTransition: false,\n\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n\n // Autoheight\n autoHeight: false,\n\n // Set wrapper width\n setWrapperSize: false,\n\n // Virtual Translate\n virtualTranslate: false,\n\n // Effects\n effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0, // in px\n slidesOffsetAfter: 0, // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n\n // Round length\n roundLengths: false,\n\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n\n // Unique Navigation Elements\n uniqueNavElements: true,\n\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n\n // Cursor\n grabCursor: false,\n\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null, // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n\n // Passive Listeners\n passiveListeners: true,\n\n // NS\n containerModifierClass: 'swiper-container-', // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n\n // Callbacks\n runCallbacksOnInit: true,\n};\n\n/* eslint no-param-reassign: \"off\" */\n\nconst prototypes = {\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n manipulation,\n events,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes,\n images,\n};\n\nconst extendedDefaults = {};\n\nclass Swiper extends SwiperClass {\n constructor(...args) {\n let el;\n let params;\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n\n params = Utils.extend({}, params);\n if (el && !params.el) params.el = el;\n\n super(params);\n\n Object.keys(prototypes).forEach((prototypeGroup) => {\n Object.keys(prototypes[prototypeGroup]).forEach((protoMethod) => {\n if (!Swiper.prototype[protoMethod]) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n }\n });\n });\n\n // Swiper Instance\n const swiper = this;\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n Object.keys(swiper.modules).forEach((moduleName) => {\n const module = swiper.modules[moduleName];\n if (module.params) {\n const moduleParamName = Object.keys(module.params)[0];\n const moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n if (params[moduleParamName] === true) {\n params[moduleParamName] = { enabled: true };\n }\n if (\n typeof params[moduleParamName] === 'object'\n && !('enabled' in params[moduleParamName])\n ) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = { enabled: false };\n }\n });\n\n // Extend defaults with modules params\n const swiperParams = Utils.extend({}, defaults);\n swiper.useModulesParams(swiperParams);\n\n // Extend defaults with passed params\n swiper.params = Utils.extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = Utils.extend({}, swiper.params);\n swiper.passedParams = Utils.extend({}, params);\n\n // Save Dom lib\n swiper.$ = $;\n\n // Find el\n const $el = $(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return undefined;\n }\n\n if ($el.length > 1) {\n const swipers = [];\n $el.each((index, containerEl) => {\n const newParams = Utils.extend({}, params, { el: containerEl });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n }\n\n el.swiper = swiper;\n $el.data('swiper', swiper);\n\n // Find Wrapper\n let $wrapperEl;\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n $wrapperEl = $(el.shadowRoot.querySelector(`.${swiper.params.wrapperClass}`));\n // Children needs to return slot items\n $wrapperEl.children = (options) => $el.children(options);\n } else {\n $wrapperEl = $el.children(`.${swiper.params.wrapperClass}`);\n }\n // Extend Swiper\n Utils.extend(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n\n // Classes\n classNames: [],\n\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // RTL\n rtl: (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n\n //\n isBeginning: true,\n isEnd: false,\n\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n\n // Touch Events\n touchEvents: (function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n let desktop = ['mousedown', 'mousemove', 'mouseup'];\n if (Support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3],\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2],\n };\n return Support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }()),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n formElements: 'input, select, option, textarea, button, video, label',\n // Last click time\n lastClickTime: Utils.now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined,\n },\n\n // Clicks\n allowClick: true,\n\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0,\n },\n\n // Images\n imagesToLoad: [],\n imagesLoaded: 0,\n\n });\n\n // Install Modules\n swiper.useModules();\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n return swiper;\n }\n\n slidesPerViewDynamic() {\n const swiper = this;\n const {\n params, slides, slidesGrid, size: swiperSize, activeIndex,\n } = swiper;\n let spv = 1;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slidesGrid[i] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const { snapGrid, params } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (swiper.params.freeMode) {\n setTranslate();\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if ((newDirection === currentDirection) || (newDirection !== 'horizontal' && newDirection !== 'vertical')) {\n return swiper;\n }\n\n swiper.$el\n .removeClass(`${swiper.params.containerModifierClass}${currentDirection}`)\n .addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n\n swiper.params.direction = newDirection;\n\n swiper.slides.each((slideIndex, slideEl) => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n\n return swiper;\n }\n\n init() {\n const swiper = this;\n if (swiper.initialized) return;\n\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n }\n\n // Attach events\n swiper.attachEvents();\n\n // Init Flag\n swiper.initialized = true;\n\n // Emit\n swiper.emit('init');\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params, $el, $wrapperEl, slides,\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n if (slides && slides.length) {\n slides\n .removeClass([\n params.slideVisibleClass,\n params.slideActiveClass,\n params.slideNextClass,\n params.slidePrevClass,\n ].join(' '))\n .removeAttr('style')\n .removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach((eventName) => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n swiper.$el.data('swiper', null);\n Utils.deleteProps(swiper);\n }\n swiper.destroyed = true;\n\n return null;\n }\n\n static extendDefaults(newDefaults) {\n Utils.extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static get Class() {\n return SwiperClass;\n }\n\n static get $() {\n return $;\n }\n}\n\nvar Device$1 = {\n name: 'device',\n proto: {\n device: Device,\n },\n static: {\n device: Device,\n },\n};\n\nvar Support$1 = {\n name: 'support',\n proto: {\n support: Support,\n },\n static: {\n support: Support,\n },\n};\n\nconst Browser = (function Browser() {\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0);\n }\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),\n };\n}());\n\nvar Browser$1 = {\n name: 'browser',\n proto: {\n browser: Browser,\n },\n static: {\n browser: Browser,\n },\n};\n\nvar Resize = {\n name: 'resize',\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n resize: {\n resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n },\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n // Emit resize\n window.addEventListener('resize', swiper.resize.resizeHandler);\n\n // Emit orientationchange\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy() {\n const swiper = this;\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n },\n};\n\nconst Observer = {\n func: window.MutationObserver || window.WebkitMutationObserver,\n attach(target, options = {}) {\n const swiper = this;\n\n const ObserverFunc = Observer.func;\n const observer = new ObserverFunc((mutations) => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData,\n });\n\n swiper.observer.observers.push(observer);\n },\n init() {\n const swiper = this;\n if (!Support.observer || !swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n for (let i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n }\n // Observe container\n swiper.observer.attach(swiper.$el[0], { childList: swiper.params.observeSlideChildren });\n\n // Observe wrapper\n swiper.observer.attach(swiper.$wrapperEl[0], { attributes: false });\n },\n destroy() {\n const swiper = this;\n swiper.observer.observers.forEach((observer) => {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n },\n};\n\nvar Observer$1 = {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false,\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n observer: {\n init: Observer.init.bind(swiper),\n attach: Observer.attach.bind(swiper),\n destroy: Observer.destroy.bind(swiper),\n observers: [],\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.observer.init();\n },\n destroy() {\n const swiper = this;\n swiper.observer.destroy();\n },\n },\n};\n\nconst Virtual = {\n update(force) {\n const swiper = this;\n const { slidesPerView, slidesPerGroup, centeredSlides } = swiper.params;\n const { addSlidesBefore, addSlidesAfter } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n renderSlide,\n offset: previousOffset,\n } = swiper.virtual;\n swiper.updateActiveIndex();\n const activeIndex = swiper.activeIndex || 0;\n\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';\n else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n\n let slidesAfter;\n let slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesBefore;\n slidesBefore = slidesPerGroup + addSlidesAfter;\n }\n const from = Math.max((activeIndex || 0) - slidesBefore, 0);\n const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n const offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n\n Utils.extend(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid,\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, `${offset}px`);\n }\n swiper.updateProgress();\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: (function getSlides() {\n const slidesToRender = [];\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n }()),\n });\n onRendered();\n return;\n }\n const prependIndexes = [];\n const appendIndexes = [];\n if (force) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${i}\"]`).remove();\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n if (i >= from && i <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(i);\n } else {\n if (i > previousTo) appendIndexes.push(i);\n if (i < previousFrom) prependIndexes.push(i);\n }\n }\n }\n appendIndexes.forEach((index) => {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort((a, b) => b - a).forEach((index) => {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset}px`);\n onRendered();\n },\n renderSlide(slide, index) {\n const swiper = this;\n const params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n const $slideEl = params.renderSlide\n ? $(params.renderSlide.call(swiper, slide, index))\n : $(`
${slide}
`);\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\n return $slideEl;\n },\n appendSlide(slides) {\n const swiper = this;\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n swiper.virtual.update(true);\n },\n prependSlide(slides) {\n const swiper = this;\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach((cachedIndex) => {\n const $cachedEl = cache[cachedIndex];\n const cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n if (cachedElIndex) {\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + 1);\n }\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n swiper.virtual.update(true);\n swiper.slideTo(newActiveIndex, 0);\n },\n removeSlide(slidesIndexes) {\n const swiper = this;\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n swiper.virtual.update(true);\n swiper.slideTo(activeIndex, 0);\n },\n removeAllSlides() {\n const swiper = this;\n swiper.virtual.slides = [];\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n swiper.virtual.update(true);\n swiper.slideTo(0, 0);\n },\n};\n\nvar Virtual$1 = {\n name: 'virtual',\n params: {\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n addSlidesBefore: 0,\n addSlidesAfter: 0,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n virtual: {\n update: Virtual.update.bind(swiper),\n appendSlide: Virtual.appendSlide.bind(swiper),\n prependSlide: Virtual.prependSlide.bind(swiper),\n removeSlide: Virtual.removeSlide.bind(swiper),\n removeAllSlides: Virtual.removeAllSlides.bind(swiper),\n renderSlide: Virtual.renderSlide.bind(swiper),\n slides: swiper.params.virtual.slides,\n cache: {},\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (!swiper.params.virtual.enabled) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n const overwriteParams = {\n watchSlidesProgress: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n\n if (!swiper.params.initialSlide) {\n swiper.virtual.update();\n }\n },\n setTranslate() {\n const swiper = this;\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.update();\n },\n },\n};\n\nconst Keyboard = {\n handle(event) {\n const swiper = this;\n const { rtlTranslate: rtl } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40;\n // Directions locks\n if (!swiper.allowSlideNext && ((swiper.isHorizontal() && isArrowRight) || (swiper.isVertical() && isArrowDown) || isPageDown)) {\n return false;\n }\n if (!swiper.allowSlidePrev && ((swiper.isHorizontal() && isArrowLeft) || (swiper.isVertical() && isArrowUp) || isPageUp)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (document$1.activeElement && document$1.activeElement.nodeName && (document$1.activeElement.nodeName.toLowerCase() === 'input' || document$1.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n let inView = false;\n // Check that swiper should be inside of visible area of window\n if (swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 && swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [\n [swiperOffset.left, swiperOffset.top],\n [swiperOffset.left + swiper.width, swiperOffset.top],\n [swiperOffset.left, swiperOffset.top + swiper.height],\n [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height],\n ];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (\n point[0] >= 0 && point[0] <= windowWidth\n && point[1] >= 0 && point[1] <= windowHeight\n ) {\n inView = true;\n }\n }\n if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n }\n if (((isPageDown || isArrowRight) && !rtl) || ((isPageUp || isArrowLeft) && rtl)) swiper.slideNext();\n if (((isPageUp || isArrowLeft) && !rtl) || ((isPageDown || isArrowRight) && rtl)) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n }\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n swiper.emit('keyPress', kc);\n return undefined;\n },\n enable() {\n const swiper = this;\n if (swiper.keyboard.enabled) return;\n $(document$1).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable() {\n const swiper = this;\n if (!swiper.keyboard.enabled) return;\n $(document$1).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n },\n};\n\nvar Keyboard$1 = {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n keyboard: {\n enabled: false,\n enable: Keyboard.enable.bind(swiper),\n disable: Keyboard.disable.bind(swiper),\n handle: Keyboard.handle.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n },\n },\n};\n\nfunction isEventSupported() {\n const eventName = 'onwheel';\n let isSupported = eventName in document$1;\n\n if (!isSupported) {\n const element = document$1.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported\n && document$1.implementation\n && document$1.implementation.hasFeature\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n && document$1.implementation.hasFeature('', '') !== true\n ) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document$1.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\nconst Mousewheel = {\n lastScrollTime: Utils.now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n event() {\n if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n },\n normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) { // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) { // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else { // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = (pX < 1) ? -1 : 1;\n }\n if (pY && !sY) {\n sY = (pY < 1) ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY,\n };\n },\n handleMouseEnter() {\n const swiper = this;\n swiper.mouseEntered = true;\n },\n handleMouseLeave() {\n const swiper = this;\n swiper.mouseEntered = false;\n },\n handle(event) {\n let e = event;\n const swiper = this;\n const params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n\n const data = Mousewheel.normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;\n else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;\n else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n\n if (params.invert) delta = -delta;\n\n if (!swiper.params.freeMode) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: Utils.now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event,\n };\n\n // Keep the most recent events\n const recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n swiper.mousewheel.animateSlider(newEvent);\n }\n } else {\n swiper.mousewheel.animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (swiper.mousewheel.releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = { time: Utils.now(), delta: Math.abs(delta), direction: Math.sign(delta) };\n const { lastEventBeforeSnap } = swiper.mousewheel;\n const ignoreWheelEvents = lastEventBeforeSnap\n && newEvent.time < lastEventBeforeSnap.time + 500\n && newEvent.delta <= lastEventBeforeSnap.delta\n && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n swiper.mousewheel.lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n let position = swiper.getTranslate() + (delta * params.sensitivity);\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeModeSticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momuntum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = undefined;\n const recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15\n && newEvent.time - firstEvent.time < 500\n && firstEvent.delta - newEvent.delta >= 1\n && newEvent.delta <= 6\n ) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n swiper.mousewheel.lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.mousewheel.timeout = Utils.nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n if (!swiper.mousewheel.timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n swiper.mousewheel.timeout = Utils.nextTick(() => {\n const snapToThreshold = 0.5;\n swiper.mousewheel.lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) swiper.emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n return false;\n },\n animateSlider(newEvent) {\n const swiper = this;\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && Utils.now() - swiper.mousewheel.lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n swiper.mousewheel.lastScrollTime = (new window.Date()).getTime();\n // Return false as a default\n return false;\n },\n releaseScroll(newEvent) {\n const swiper = this;\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n },\n enable() {\n const swiper = this;\n const event = Mousewheel.event();\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n if (!event) return false;\n if (swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable() {\n const swiper = this;\n const event = Mousewheel.event();\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n if (!event) return false;\n if (!swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.off(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n },\n};\n\nvar Mousewheel$1 = {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarged: 'container',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n mousewheel: {\n enabled: false,\n enable: Mousewheel.enable.bind(swiper),\n disable: Mousewheel.disable.bind(swiper),\n handle: Mousewheel.handle.bind(swiper),\n handleMouseEnter: Mousewheel.handleMouseEnter.bind(swiper),\n handleMouseLeave: Mousewheel.handleMouseLeave.bind(swiper),\n animateSlider: Mousewheel.animateSlider.bind(swiper),\n releaseScroll: Mousewheel.releaseScroll.bind(swiper),\n lastScrollTime: Utils.now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n swiper.mousewheel.disable();\n }\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n },\n destroy() {\n const swiper = this;\n if (swiper.params.cssMode) {\n swiper.mousewheel.enable();\n }\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n },\n },\n};\n\nconst Navigation = {\n update() {\n // Update Navigation Buttons\n const swiper = this;\n const params = swiper.params.navigation;\n\n if (swiper.params.loop) return;\n const { $nextEl, $prevEl } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n $prevEl.addClass(params.disabledClass);\n } else {\n $prevEl.removeClass(params.disabledClass);\n }\n $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n $nextEl.addClass(params.disabledClass);\n } else {\n $nextEl.removeClass(params.disabledClass);\n }\n $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n onPrevClick(e) {\n const swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick(e) {\n const swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init() {\n const swiper = this;\n const params = swiper.params.navigation;\n if (!(params.nextEl || params.prevEl)) return;\n\n let $nextEl;\n let $prevEl;\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n if (\n swiper.params.uniqueNavElements\n && typeof params.nextEl === 'string'\n && $nextEl.length > 1\n && swiper.$el.find(params.nextEl).length === 1\n ) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n if (\n swiper.params.uniqueNavElements\n && typeof params.prevEl === 'string'\n && $prevEl.length > 1\n && swiper.$el.find(params.prevEl).length === 1\n ) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n Utils.extend(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0],\n });\n },\n destroy() {\n const swiper = this;\n const { $nextEl, $prevEl } = swiper.navigation;\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n },\n};\n\nvar Navigation$1 = {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n navigation: {\n init: Navigation.init.bind(swiper),\n update: Navigation.update.bind(swiper),\n destroy: Navigation.destroy.bind(swiper),\n onNextClick: Navigation.onNextClick.bind(swiper),\n onPrevClick: Navigation.onPrevClick.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge() {\n const swiper = this;\n swiper.navigation.update();\n },\n fromEdge() {\n const swiper = this;\n swiper.navigation.update();\n },\n destroy() {\n const swiper = this;\n swiper.navigation.destroy();\n },\n click(e) {\n const swiper = this;\n const { $nextEl, $prevEl } = swiper.navigation;\n if (\n swiper.params.navigation.hideOnClick\n && !$(e.target).is($prevEl)\n && !$(e.target).is($nextEl)\n ) {\n let isHidden;\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n swiper.emit('navigationShow', swiper);\n } else {\n swiper.emit('navigationHide', swiper);\n }\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n },\n },\n};\n\nconst Pagination = {\n update() {\n // Render || Update Pagination bullets/items\n const swiper = this;\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n // Current/Total\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n if (current > slidesLength - 1 - (swiper.loopedSlides * 2)) {\n current -= (slidesLength - (swiper.loopedSlides * 2));\n }\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${swiper.pagination.bulletSize * (params.dynamicMainBullets + 4)}px`);\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += (current - swiper.previousIndex);\n if (swiper.pagination.dynamicBulletIndex > (params.dynamicMainBullets - 1)) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.removeClass(`${params.bulletActiveClass} ${params.bulletActiveClass}-next ${params.bulletActiveClass}-next-next ${params.bulletActiveClass}-prev ${params.bulletActiveClass}-prev-prev ${params.bulletActiveClass}-main`);\n if ($el.length > 1) {\n bullets.each((index, bullet) => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n if (bulletIndex === firstIndex) {\n $bullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n }\n if (bulletIndex === lastIndex) {\n $bullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n $firstDisplayedBullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n $lastDisplayedBullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n } else {\n $firstDisplayedBullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n $lastDisplayedBullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (((swiper.pagination.bulletSize * dynamicBulletsLength) - (swiper.pagination.bulletSize)) / 2) - (midIndex * swiper.pagination.bulletSize);\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n if (params.type === 'fraction') {\n $el.find(`.${params.currentClass}`).text(params.formatFractionCurrent(current + 1));\n $el.find(`.${params.totalClass}`).text(params.formatFractionTotal(total));\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n $el.find(`.${params.progressbarFillClass}`).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', swiper, $el[0]);\n } else {\n swiper.emit('paginationUpdate', swiper, $el[0]);\n }\n $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n },\n render() {\n // Render Container\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n if (params.type === 'bullets') {\n const numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(`.${params.bulletClass}`);\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = ``\n + ' / '\n + ``;\n }\n $el.html(paginationHTML);\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n $el.html(paginationHTML);\n }\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el) return;\n\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (\n swiper.params.uniqueNavElements\n && typeof params.el === 'string'\n && $el.length > 1\n ) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n swiper.pagination.dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', `.${params.bulletClass}`, function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Utils.extend(swiper.pagination, {\n $el,\n el: $el[0],\n });\n },\n destroy() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const $el = swiper.pagination.$el;\n\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n if (params.clickable) {\n $el.off('click', `.${params.bulletClass}`);\n }\n },\n};\n\nvar Pagination$1 = {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets', // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: (number) => number,\n formatFractionTotal: (number) => number,\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-', // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable', // NEW\n lockClass: 'swiper-pagination-lock',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n pagination: {\n init: Pagination.init.bind(swiper),\n render: Pagination.render.bind(swiper),\n update: Pagination.update.bind(swiper),\n destroy: Pagination.destroy.bind(swiper),\n dynamicBulletIndex: 0,\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange() {\n const swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange() {\n const swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange() {\n const swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange() {\n const swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy() {\n const swiper = this;\n swiper.pagination.destroy();\n },\n click(e) {\n const swiper = this;\n if (\n swiper.params.pagination.el\n && swiper.params.pagination.hideOnClick\n && swiper.pagination.$el.length > 0\n && !$(e.target).hasClass(swiper.params.pagination.bulletClass)\n ) {\n const isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n swiper.emit('paginationShow', swiper);\n } else {\n swiper.emit('paginationHide', swiper);\n }\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n },\n },\n};\n\nconst Scrollbar = {\n setTranslate() {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const { scrollbar, rtlTranslate: rtl, progress } = swiper;\n const {\n dragSize, trackSize, $dragEl, $el,\n } = scrollbar;\n const params = swiper.params.scrollbar;\n\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n $dragEl.transform(`translate3d(${newPos}px, 0, 0)`);\n $dragEl[0].style.width = `${newSize}px`;\n } else {\n $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);\n $dragEl[0].style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(() => {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition(duration) {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize() {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n\n const { scrollbar } = swiper;\n const { $dragEl, $el } = scrollbar;\n\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n const trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n\n const divider = swiper.size / swiper.virtualSize;\n const moveDivider = divider * (trackSize / swiper.size);\n let dragSize;\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = `${dragSize}px`;\n } else {\n $dragEl[0].style.height = `${dragSize}px`;\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n Utils.extend(scrollbar, {\n trackSize,\n divider,\n moveDivider,\n dragSize,\n });\n scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n },\n getPointerPosition(e) {\n const swiper = this;\n if (swiper.isHorizontal()) {\n return ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].clientX : e.clientX);\n }\n return ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].clientY : e.clientY);\n },\n setDragPosition(e) {\n const swiper = this;\n const { scrollbar, rtlTranslate: rtl } = swiper;\n const {\n $el,\n dragSize,\n trackSize,\n dragStartPos,\n } = scrollbar;\n\n let positionRatio;\n positionRatio = ((scrollbar.getPointerPosition(e)) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top']\n - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n const position = swiper.minTranslate() + ((swiper.maxTranslate() - swiper.minTranslate()) * positionRatio);\n\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n },\n onDragStart(e) {\n const swiper = this;\n const params = swiper.params.scrollbar;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el, $dragEl } = scrollbar;\n swiper.scrollbar.isTouched = true;\n swiper.scrollbar.dragStartPos = (e.target === $dragEl[0] || e.target === $dragEl)\n ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n scrollbar.setDragPosition(e);\n\n clearTimeout(swiper.scrollbar.dragTimeout);\n\n $el.transition(0);\n if (params.hide) {\n $el.css('opacity', 1);\n }\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove(e) {\n const swiper = this;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el, $dragEl } = scrollbar;\n\n if (!swiper.scrollbar.isTouched) return;\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n scrollbar.setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n swiper.emit('scrollbarDragMove', e);\n },\n onDragEnd(e) {\n const swiper = this;\n\n const params = swiper.params.scrollbar;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el } = scrollbar;\n\n if (!swiper.scrollbar.isTouched) return;\n swiper.scrollbar.isTouched = false;\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = Utils.nextTick(() => {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n swiper.emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n },\n enableDraggable() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const {\n scrollbar, touchEventsTouch, touchEventsDesktop, params,\n } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\n const passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n if (!Support.touch) {\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document$1.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document$1.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n disableDraggable() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const {\n scrollbar, touchEventsTouch, touchEventsDesktop, params,\n } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\n const passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n if (!Support.touch) {\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document$1.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document$1.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n init() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const { scrollbar, $el: $swiperEl } = swiper;\n const params = swiper.params.scrollbar;\n\n let $el = $(params.el);\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\n if ($dragEl.length === 0) {\n $dragEl = $(`
`);\n $el.append($dragEl);\n }\n\n Utils.extend(scrollbar, {\n $el,\n el: $el[0],\n $dragEl,\n dragEl: $dragEl[0],\n });\n\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n },\n destroy() {\n const swiper = this;\n swiper.scrollbar.disableDraggable();\n },\n};\n\nvar Scrollbar$1 = {\n name: 'scrollbar',\n params: {\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n scrollbar: {\n init: Scrollbar.init.bind(swiper),\n destroy: Scrollbar.destroy.bind(swiper),\n updateSize: Scrollbar.updateSize.bind(swiper),\n setTranslate: Scrollbar.setTranslate.bind(swiper),\n setTransition: Scrollbar.setTransition.bind(swiper),\n enableDraggable: Scrollbar.enableDraggable.bind(swiper),\n disableDraggable: Scrollbar.disableDraggable.bind(swiper),\n setDragPosition: Scrollbar.setDragPosition.bind(swiper),\n getPointerPosition: Scrollbar.getPointerPosition.bind(swiper),\n onDragStart: Scrollbar.onDragStart.bind(swiper),\n onDragMove: Scrollbar.onDragMove.bind(swiper),\n onDragEnd: Scrollbar.onDragEnd.bind(swiper),\n isTouched: false,\n timeout: null,\n dragTimeout: null,\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n resize() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n observerUpdate() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n setTranslate() {\n const swiper = this;\n swiper.scrollbar.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n swiper.scrollbar.setTransition(duration);\n },\n destroy() {\n const swiper = this;\n swiper.scrollbar.destroy();\n },\n },\n};\n\nconst Parallax = {\n setTransform(el, progress) {\n const swiper = this;\n const { rtl } = swiper;\n\n const $el = $(el);\n const rtlFactor = rtl ? -1 : 1;\n\n const p = $el.attr('data-swiper-parallax') || '0';\n let x = $el.attr('data-swiper-parallax-x');\n let y = $el.attr('data-swiper-parallax-y');\n const scale = $el.attr('data-swiper-parallax-scale');\n const opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if ((x).indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n if ((y).indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - ((opacity - 1) * (1 - Math.abs(progress)));\n $el[0].style.opacity = currentOpacity;\n }\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(`translate3d(${x}, ${y}, 0px)`);\n } else {\n const currentScale = scale - ((scale - 1) * (1 - Math.abs(progress)));\n $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);\n }\n },\n setTranslate() {\n const swiper = this;\n const {\n $el, slides, progress, snapGrid,\n } = swiper;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\n .each((index, el) => {\n swiper.parallax.setTransform(el, progress);\n });\n slides.each((slideIndex, slideEl) => {\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - (progress * (snapGrid.length - 1));\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\n .each((index, el) => {\n swiper.parallax.setTransform(el, slideProgress);\n });\n });\n },\n setTransition(duration = this.params.speed) {\n const swiper = this;\n const { $el } = swiper;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\n .each((index, parallaxEl) => {\n const $parallaxEl = $(parallaxEl);\n let parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n },\n};\n\nvar Parallax$1 = {\n name: 'parallax',\n params: {\n parallax: {\n enabled: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n parallax: {\n setTransform: Parallax.setTransform.bind(swiper),\n setTranslate: Parallax.setTranslate.bind(swiper),\n setTransition: Parallax.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n init() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTranslate() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTransition(duration);\n },\n },\n};\n\nconst Zoom = {\n // Calc Scale From Multi-touches\n getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n const x1 = e.targetTouches[0].pageX;\n const y1 = e.targetTouches[0].pageY;\n const x2 = e.targetTouches[1].pageX;\n const y2 = e.targetTouches[1].pageY;\n const distance = Math.sqrt(((x2 - x1) ** 2) + ((y2 - y1) ** 2));\n return distance;\n },\n // Events\n onGestureStart(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n if (!Support.gestures) {\n if (e.type !== 'touchstart' || (e.type === 'touchstart' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureTouched = true;\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest(`.${swiper.params.slideClass}`);\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n if (gesture.$imageEl) {\n gesture.$imageEl.transition(0);\n }\n swiper.zoom.isScaling = true;\n },\n onGestureChange(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (!Support.gestures) {\n if (e.type !== 'touchmove' || (e.type === 'touchmove' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureMoved = true;\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (Support.gestures) {\n zoom.scale = e.scale * zoom.currentScale;\n } else {\n zoom.scale = (gesture.scaleMove / gesture.scaleStart) * zoom.currentScale;\n }\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = (gesture.maxRatio - 1) + (((zoom.scale - gesture.maxRatio) + 1) ** 0.5);\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = (params.minRatio + 1) - (((params.minRatio - zoom.scale) + 1) ** 0.5);\n }\n gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n },\n onGestureEnd(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (!Support.gestures) {\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n return;\n }\n if (e.type !== 'touchend' || (e.type === 'touchend' && e.changedTouches.length < 2 && !Device.android)) {\n return;\n }\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n zoom.currentScale = zoom.scale;\n zoom.isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n },\n onTouchStart(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (Device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n },\n onTouchMove(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image, velocity } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = Utils.getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = Utils.getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n if (swiper.rtl) {\n image.startX = -image.startX;\n image.startY = -image.startY;\n }\n }\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\n image.maxX = -image.minX;\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\n image.maxY = -image.minY;\n\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !zoom.isScaling) {\n if (\n swiper.isHorizontal()\n && (\n (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x)\n || (Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)\n )\n ) {\n image.isTouched = false;\n return;\n } if (\n !swiper.isHorizontal()\n && (\n (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y)\n || (Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)\n )\n ) {\n image.isTouched = false;\n return;\n }\n }\n if (e.cancelable) {\n e.preventDefault();\n }\n e.stopPropagation();\n\n image.isMoved = true;\n image.currentX = (image.touchesCurrent.x - image.touchesStart.x) + image.startX;\n image.currentY = (image.touchesCurrent.y - image.touchesStart.y) + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = (image.minX + 1) - (((image.minX - image.currentX) + 1) ** 0.8);\n }\n if (image.currentX > image.maxX) {\n image.currentX = (image.maxX - 1) + (((image.currentX - image.maxX) + 1) ** 0.8);\n }\n\n if (image.currentY < image.minY) {\n image.currentY = (image.minY + 1) - (((image.minY - image.currentY) + 1) ** 0.8);\n }\n if (image.currentY > image.maxY) {\n image.currentY = (image.maxY - 1) + (((image.currentY - image.maxY) + 1) ** 0.8);\n }\n\n // Velocity\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n\n gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n },\n onTouchEnd() {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image, velocity } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\n image.maxX = -image.minX;\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n\n gesture.$imageWrapEl.transition(momentumDuration).transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n },\n onTransitionEnd() {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.$imageEl) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n }\n if (gesture.$imageWrapEl) {\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n }\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n },\n // Toggle Zoom\n toggle(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoom.out();\n } else {\n // Zoom In\n zoom.in(e);\n }\n },\n in(e) {\n const swiper = this;\n\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n const { gesture, image } = zoom;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);\n\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left;\n offsetY = gesture.$slideEl.offset().top;\n diffX = (offsetX + (slideWidth / 2)) - touchX;\n diffY = (offsetY + (slideHeight / 2)) - touchY;\n\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n\n translateMinX = Math.min(((slideWidth / 2) - (scaledWidth / 2)), 0);\n translateMinY = Math.min(((slideHeight / 2) - (scaledHeight / 2)), 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n gesture.$imageWrapEl.transition(300).transform(`translate3d(${translateX}px, ${translateY}px,0)`);\n gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n },\n out() {\n const swiper = this;\n\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n const { gesture } = zoom;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`);\n gesture.$slideEl = undefined;\n },\n // Attach/Detach Events\n enable() {\n const swiper = this;\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n const activeListenerWithCapture = Support.passiveListener ? { passive: false, capture: true } : true;\n\n const slideSelector = `.${swiper.params.slideClass}`;\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.on('gesturestart', slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on('gesturechange', slideSelector, zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.on('gestureend', slideSelector, zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n }\n\n // Move image\n swiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove, activeListenerWithCapture);\n },\n disable() {\n const swiper = this;\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n\n swiper.zoom.enabled = false;\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n const activeListenerWithCapture = Support.passiveListener ? { passive: false, capture: true } : true;\n\n const slideSelector = `.${swiper.params.slideClass}`;\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.off('gesturestart', slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off('gesturechange', slideSelector, zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.off('gestureend', slideSelector, zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n }\n\n // Move image\n swiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove, activeListenerWithCapture);\n },\n};\n\nvar Zoom$1 = {\n name: 'zoom',\n params: {\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed',\n },\n },\n create() {\n const swiper = this;\n const zoom = {\n enabled: false,\n scale: 1,\n currentScale: 1,\n isScaling: false,\n gesture: {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3,\n },\n image: {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {},\n },\n velocity: {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined,\n },\n };\n\n ('onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out').split(' ').forEach((methodName) => {\n zoom[methodName] = Zoom[methodName].bind(swiper);\n });\n Utils.extend(swiper, {\n zoom,\n });\n\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n set(value) {\n if (scale !== value) {\n const imageEl = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] : undefined;\n const slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] : undefined;\n swiper.emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.zoom.enabled) {\n swiper.zoom.enable();\n }\n },\n destroy() {\n const swiper = this;\n swiper.zoom.disable();\n },\n touchStart(e) {\n const swiper = this;\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchStart(e);\n },\n touchEnd(e) {\n const swiper = this;\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchEnd(e);\n },\n doubleTap(e) {\n const swiper = this;\n if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n swiper.zoom.toggle(e);\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n swiper.zoom.onTransitionEnd();\n }\n },\n slideChange() {\n const swiper = this;\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n swiper.zoom.onTransitionEnd();\n }\n },\n },\n};\n\nconst Lazy = {\n loadInSlide(index, loadInDuplicate = true) {\n const swiper = this;\n const params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n const $slideEl = isVirtual\n ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${index}\"]`)\n : swiper.slides.eq(index);\n\n let $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images = $images.add($slideEl[0]);\n }\n if ($images.length === 0) return;\n\n $images.each((imageIndex, imageEl) => {\n const $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n\n const background = $imageEl.attr('data-background');\n const src = $imageEl.attr('data-src');\n const srcset = $imageEl.attr('data-srcset');\n const sizes = $imageEl.attr('data-sizes');\n const $pictureEl = $imageEl.parent('picture');\n\n swiper.loadImage($imageEl[0], (src || background), srcset, sizes, false, () => {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || (swiper && !swiper.params) || swiper.destroyed) return;\n if (background) {\n $imageEl.css('background-image', `url(\"${background}\")`);\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n if ($pictureEl.length) {\n $pictureEl.children('source').each((sourceIndex, sourceEl) => {\n const $source = $(sourceEl);\n\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(`.${params.preloaderClass}`).remove();\n if (swiper.params.loop && loadInDuplicate) {\n const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`);\n swiper.lazy.loadInSlide(originalSlide.index(), false);\n } else {\n const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`);\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n }\n }\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n },\n load() {\n const swiper = this;\n const {\n $wrapperEl, params: swiperParams, slides, activeIndex,\n } = swiper;\n const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n const params = swiperParams.lazy;\n\n let slidesPerView = swiperParams.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index=\"${index}\"]`).length) {\n return true;\n }\n } else if (slides[index]) return true;\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n return $(slideEl).index();\n }\n\n if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;\n if (swiper.params.watchSlidesVisibility) {\n $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each((elIndex, slideEl) => {\n const index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n swiper.lazy.loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n swiper.lazy.loadInSlide(activeIndex);\n }\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || (params.loadPrevNextAmount && params.loadPrevNextAmount > 1)) {\n const amount = params.loadPrevNextAmount;\n const spv = slidesPerView;\n const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0);\n // Next Slides\n for (let i = activeIndex + slidesPerView; i < maxIndex; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n // Prev Slides\n for (let i = minIndex; i < activeIndex; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\n if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));\n\n const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\n if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));\n }\n }\n },\n};\n\nvar Lazy$1 = {\n name: 'lazy',\n params: {\n lazy: {\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n lazy: {\n initialImageLoaded: false,\n load: Lazy.load.bind(swiper),\n loadInSlide: Lazy.loadInSlide.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n },\n init() {\n const swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n swiper.lazy.load();\n }\n },\n scroll() {\n const swiper = this;\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n swiper.lazy.load();\n }\n },\n resize() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n scrollbarDragMove() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n transitionStart() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || (!swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded)) {\n swiper.lazy.load();\n }\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n swiper.lazy.load();\n }\n },\n slideChange() {\n const swiper = this;\n if (swiper.params.lazy.enabled && swiper.params.cssMode) {\n swiper.lazy.load();\n }\n },\n },\n};\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\n\nconst Controller = {\n LinearSpline: function LinearSpline(x, y) {\n const binarySearch = (function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n }());\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n let i1;\n let i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0;\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1])) + this.y[i1];\n };\n return this;\n },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction(c) {\n const swiper = this;\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop\n ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid)\n : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate(setTranslate, byController) {\n const swiper = this;\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n swiper.controller.getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = ((translate - swiper.minTranslate()) * multiplier) + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n },\n setTransition(duration, byController) {\n const swiper = this;\n const controlled = swiper.controller.control;\n let i;\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n Utils.nextTick(() => {\n c.updateAutoHeight();\n });\n }\n c.$wrapperEl.transitionEnd(() => {\n if (!controlled) return;\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n },\n};\nvar Controller$1 = {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide', // or 'container'\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n controller: {\n control: swiper.params.controller.control,\n getInterpolateFunction: Controller.getInterpolateFunction.bind(swiper),\n setTranslate: Controller.setTranslate.bind(swiper),\n setTransition: Controller.setTransition.bind(swiper),\n },\n });\n },\n on: {\n update() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n resize() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n observerUpdate() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n setTranslate(translate, byController) {\n const swiper = this;\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n },\n },\n};\n\nconst a11y = {\n makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n return $el;\n },\n addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterKey(e) {\n const swiper = this;\n const params = swiper.params.a11y;\n if (e.keyCode !== 13) return;\n const $targetEl = $(e.target);\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.notify(params.nextSlideMessage);\n }\n }\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n if (swiper.pagination && $targetEl.is(`.${swiper.params.pagination.bulletClass}`)) {\n $targetEl[0].click();\n }\n },\n notify(message) {\n const swiper = this;\n const notification = swiper.a11y.liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n },\n updateNavigation() {\n const swiper = this;\n\n if (swiper.params.loop || !swiper.navigation) return;\n const { $nextEl, $prevEl } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n swiper.a11y.makeElNotFocusable($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n swiper.a11y.makeElFocusable($prevEl);\n }\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n swiper.a11y.makeElNotFocusable($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n swiper.a11y.makeElFocusable($nextEl);\n }\n }\n },\n updatePagination() {\n const swiper = this;\n const params = swiper.params.a11y;\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.bullets.each((bulletIndex, bulletEl) => {\n const $bulletEl = $(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n });\n }\n },\n init() {\n const swiper = this;\n\n swiper.$el.append(swiper.a11y.liveRegion);\n\n // Navigation\n const params = swiper.params.a11y;\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n swiper.a11y.makeElFocusable($nextEl);\n swiper.a11y.addElRole($nextEl, 'button');\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n $nextEl.on('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n swiper.a11y.makeElFocusable($prevEl);\n swiper.a11y.addElRole($prevEl, 'button');\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n $prevEl.on('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.on('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey);\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove();\n\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n $nextEl.off('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.off('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey);\n }\n },\n};\nvar A11y = {\n name: 'a11y',\n params: {\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n a11y: {\n liveRegion: $(``),\n },\n });\n Object.keys(a11y).forEach((methodName) => {\n swiper.a11y[methodName] = a11y[methodName].bind(swiper);\n });\n },\n on: {\n init() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n fromEdge() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n paginationUpdate() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updatePagination();\n },\n destroy() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.destroy();\n },\n },\n};\n\nconst History = {\n init() {\n const swiper = this;\n if (!swiper.params.history) return;\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n const history = swiper.history;\n history.initialized = true;\n history.paths = History.getPathValues();\n if (!history.paths.key && !history.paths.value) return;\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n destroy() {\n const swiper = this;\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n setHistoryPopState() {\n const swiper = this;\n swiper.history.paths = History.getPathValues();\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\n },\n getPathValues() {\n const pathArray = window.location.pathname.slice(1).split('/').filter((part) => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return { key, value };\n },\n setHistory(key, index) {\n const swiper = this;\n if (!swiper.history.initialized || !swiper.params.history.enabled) return;\n const slide = swiper.slides.eq(index);\n let value = History.slugify(slide.attr('data-history'));\n if (!window.location.pathname.includes(key)) {\n value = `${key}/${value}`;\n }\n const currentState = window.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n window.history.replaceState({ value }, null, value);\n } else {\n window.history.pushState({ value }, null, value);\n }\n },\n slugify(text) {\n return text.toString()\n .replace(/\\s+/g, '-')\n .replace(/[^\\w-]+/g, '')\n .replace(/--+/g, '-')\n .replace(/^-+/, '')\n .replace(/-+$/, '');\n },\n scrollToSlide(speed, value, runCallbacks) {\n const swiper = this;\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHistory = History.slugify(slide.attr('data-history'));\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n },\n};\n\nvar History$1 = {\n name: 'history',\n params: {\n history: {\n enabled: false,\n replaceState: false,\n key: 'slides',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n history: {\n init: History.init.bind(swiper),\n setHistory: History.setHistory.bind(swiper),\n setHistoryPopState: History.setHistoryPopState.bind(swiper),\n scrollToSlide: History.scrollToSlide.bind(swiper),\n destroy: History.destroy.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.init();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.destroy();\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.history.initialized) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n slideChange() {\n const swiper = this;\n if (swiper.history.initialized && swiper.params.cssMode) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n },\n};\n\nconst HashNavigation = {\n onHashCange() {\n const swiper = this;\n swiper.emit('hashChange');\n const newHash = document$1.location.hash.replace('#', '');\n const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-hash=\"${newHash}\"]`).index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n },\n setHash() {\n const swiper = this;\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return;\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, (`#${swiper.slides.eq(swiper.activeIndex).attr('data-hash')}` || ''));\n swiper.emit('hashSet');\n } else {\n const slide = swiper.slides.eq(swiper.activeIndex);\n const hash = slide.attr('data-hash') || slide.attr('data-history');\n document$1.location.hash = hash || '';\n swiper.emit('hashSet');\n }\n },\n init() {\n const swiper = this;\n if (!swiper.params.hashNavigation.enabled || (swiper.params.history && swiper.params.history.enabled)) return;\n swiper.hashNavigation.initialized = true;\n const hash = document$1.location.hash.replace('#', '');\n if (hash) {\n const speed = 0;\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHash = slide.attr('data-hash') || slide.attr('data-history');\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n};\nvar HashNavigation$1 = {\n name: 'hash-navigation',\n params: {\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n hashNavigation: {\n initialized: false,\n init: HashNavigation.init.bind(swiper),\n destroy: HashNavigation.destroy.bind(swiper),\n setHash: HashNavigation.setHash.bind(swiper),\n onHashCange: HashNavigation.onHashCange.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.init();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.destroy();\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.hashNavigation.initialized) {\n swiper.hashNavigation.setHash();\n }\n },\n slideChange() {\n const swiper = this;\n if (swiper.hashNavigation.initialized && swiper.params.cssMode) {\n swiper.hashNavigation.setHash();\n }\n },\n },\n};\n\n/* eslint no-underscore-dangle: \"off\" */\n\nconst Autoplay = {\n run() {\n const swiper = this;\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let delay = swiper.params.autoplay.delay;\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = Utils.nextTick(() => {\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();\n }, delay);\n },\n start() {\n const swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop() {\n const swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause(speed) {\n const swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n }\n },\n};\n\nvar Autoplay$1 = {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n autoplay: {\n running: false,\n paused: false,\n run: Autoplay.run.bind(swiper),\n start: Autoplay.start.bind(swiper),\n stop: Autoplay.stop.bind(swiper),\n pause: Autoplay.pause.bind(swiper),\n onVisibilityChange() {\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n swiper.autoplay.paused = false;\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n },\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n },\n beforeTransitionStart(speed, internal) {\n const swiper = this;\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove() {\n const swiper = this;\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd() {\n const swiper = this;\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n },\n },\n};\n\nconst Fade = {\n setTranslate() {\n const swiper = this;\n const { slides } = swiper;\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = swiper.slides.eq(i);\n const offset = $slideEl[0].swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade\n ? Math.max(1 - Math.abs($slideEl[0].progress), 0)\n : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n $slideEl\n .css({\n opacity: slideOpacity,\n })\n .transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n }\n },\n setTransition(duration) {\n const swiper = this;\n const { slides, $wrapperEl } = swiper;\n slides.transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n slides.transitionEnd(() => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n};\n\nvar EffectFade = {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n fadeEffect: {\n setTranslate: Fade.setTranslate.bind(swiper),\n setTransition: Fade.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}fade`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTransition(duration);\n },\n },\n};\n\nconst Cube = {\n setTranslate() {\n const swiper = this;\n const {\n $el, $wrapperEl, slides, width: swiperWidth, height: swiperHeight, rtlTranslate: rtl, size: swiperSize,\n } = swiper;\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let $cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $wrapperEl.append($cubeShadowEl);\n }\n $cubeShadowEl.css({ height: `${swiperWidth}px` });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $el.append($cubeShadowEl);\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n const progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + (round * 4 * swiperSize);\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = (3 * swiperSize) + (swiperSize * 4 * round);\n }\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n if (progress <= 1 && progress > -1) {\n wrapperRotate = (slideIndex * 90) + (progress * 90);\n if (rtl) wrapperRotate = (-slideIndex * 90) - (progress * 90);\n }\n $slideEl.transform(transform);\n if (params.slideShadows) {\n // Set shadows\n let shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $(`
`);\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $(`
`);\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n }\n $wrapperEl.css({\n '-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`,\n '-moz-transform-origin': `50% 50% -${swiperSize / 2}px`,\n '-ms-transform-origin': `50% 50% -${swiperSize / 2}px`,\n 'transform-origin': `50% 50% -${swiperSize / 2}px`,\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(`translate3d(0px, ${(swiperWidth / 2) + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`);\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - (Math.floor(Math.abs(wrapperRotate) / 90) * 90);\n const multiplier = 1.5 - (\n (Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2)\n + (Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2)\n );\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset = params.shadowOffset;\n $cubeShadowEl.transform(`scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${(swiperHeight / 2) + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`);\n }\n }\n const zFactor = (Browser.isSafari || Browser.isWebView) ? (-swiperSize / 2) : 0;\n $wrapperEl\n .transform(`translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`);\n },\n setTransition(duration) {\n const swiper = this;\n const { $el, slides } = swiper;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n },\n};\n\nvar EffectCube = {\n name: 'effect-cube',\n params: {\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n cubeEffect: {\n setTranslate: Cube.setTranslate.bind(swiper),\n setTransition: Cube.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}cube`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTransition(duration);\n },\n },\n};\n\nconst Flip = {\n setTranslate() {\n const swiper = this;\n const { slides, rtlTranslate: rtl } = swiper;\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let progress = $slideEl[0].progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n const offset = $slideEl[0].swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = -offset;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (swiper.params.flipEffect.slideShadows) {\n // Set shadows\n let shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $(`
`);\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $(`
`);\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n $slideEl\n .transform(`translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`);\n }\n },\n setTransition(duration) {\n const swiper = this;\n const { slides, activeIndex, $wrapperEl } = swiper;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n // eslint-disable-next-line\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n};\n\nvar EffectFlip = {\n name: 'effect-flip',\n params: {\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n flipEffect: {\n setTranslate: Flip.setTranslate.bind(swiper),\n setTransition: Flip.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}flip`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTransition(duration);\n },\n },\n};\n\nconst Coverflow = {\n setTranslate() {\n const swiper = this;\n const {\n width: swiperWidth, height: swiperHeight, slides, $wrapperEl, slidesSizesGrid,\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + (swiperWidth / 2) : -transform + (swiperHeight / 2);\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth;\n // Each slide offset from center\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideSize = slidesSizesGrid[i];\n const slideOffset = $slideEl[0].swiperSlideOffset;\n const offsetMultiplier = ((center - slideOffset - (slideSize / 2)) / slideSize) * params.modifier;\n\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n let translateZ = -translate * Math.abs(offsetMultiplier);\n\n let stretch = params.stretch;\n // Allow percentage to make a relative stretch for responsive sliders\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = ((parseFloat(params.stretch) / 100) * slideSize);\n }\n let translateY = isHorizontal ? 0 : stretch * (offsetMultiplier);\n let translateX = isHorizontal ? stretch * (offsetMultiplier) : 0;\n\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\n\n // Fix for ultra small values\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\n\n $slideEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n let $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = $(`
`);\n $slideEl.append($shadowBeforeEl);\n }\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = $(`
`);\n $slideEl.append($shadowAfterEl);\n }\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = (-offsetMultiplier) > 0 ? -offsetMultiplier : 0;\n }\n }\n\n // Set correct perspective for IE10\n if (Support.pointerEvents || Support.prefixedPointerEvents) {\n const ws = $wrapperEl[0].style;\n ws.perspectiveOrigin = `${center}px 50%`;\n }\n },\n setTransition(duration) {\n const swiper = this;\n swiper.slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n },\n};\n\nvar EffectCoverflow = {\n name: 'effect-coverflow',\n params: {\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n coverflowEffect: {\n setTranslate: Coverflow.setTranslate.bind(swiper),\n setTransition: Coverflow.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n\n swiper.classNames.push(`${swiper.params.containerModifierClass}coverflow`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTransition(duration);\n },\n },\n};\n\nconst Thumbs = {\n init() {\n const swiper = this;\n const { thumbs: thumbsParams } = swiper.params;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Utils.extend(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n Utils.extend(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n } else if (Utils.isObject(thumbsParams.swiper)) {\n swiper.thumbs.swiper = new SwiperClass(Utils.extend({}, thumbsParams.swiper, {\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n }));\n swiper.thumbs.swiperCreated = true;\n }\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\n },\n onThumbClick() {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n let currentIndex = swiper.activeIndex;\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n const prevIndex = swiper.slides.eq(currentIndex).prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n const nextIndex = swiper.slides.eq(currentIndex).nextAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;\n else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;\n else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;\n else slideToIndex = prevIndex;\n }\n swiper.slideTo(slideToIndex);\n },\n update(initial) {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto'\n ? thumbsSwiper.slidesPerViewDynamic()\n : thumbsSwiper.params.slidesPerView;\n\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n let currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix();\n // eslint-disable-next-line\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n }\n // Find actual thumbs index to slide to\n const prevThumbsIndex = thumbsSwiper.slides\n .eq(currentThumbsIndex)\n .prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0)\n .index();\n const nextThumbsIndex = thumbsSwiper.slides\n .eq(currentThumbsIndex)\n .nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0)\n .index();\n if (typeof prevThumbsIndex === 'undefined') newThumbsIndex = nextThumbsIndex;\n else if (typeof nextThumbsIndex === 'undefined') newThumbsIndex = prevThumbsIndex;\n else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) newThumbsIndex = currentThumbsIndex;\n else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) newThumbsIndex = nextThumbsIndex;\n else newThumbsIndex = prevThumbsIndex;\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n\n // Activate thumbs\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n\n thumbsToActivate = Math.floor(thumbsToActivate);\n\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n if (thumbsSwiper.params.loop || (thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled)) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).addClass(thumbActiveClass);\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\n }\n }\n },\n};\nvar Thumbs$1 = {\n name: 'thumbs',\n params: {\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-container-thumbs',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n thumbs: {\n swiper: null,\n init: Thumbs.init.bind(swiper),\n update: Thumbs.update.bind(swiper),\n onThumbClick: Thumbs.onThumbClick.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n const { thumbs } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n swiper.thumbs.init();\n swiper.thumbs.update(true);\n },\n slideChange() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n update() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n resize() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n observerUpdate() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n setTransition(duration) {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n },\n beforeDestroy() {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n if (swiper.thumbs.swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n },\n },\n};\n\n// Swiper Class\n\nconst components = [\n Device$1,\n Support$1,\n Browser$1,\n Resize,\n Observer$1,\n Virtual$1,\n Keyboard$1,\n Mousewheel$1,\n Navigation$1,\n Pagination$1,\n Scrollbar$1,\n Parallax$1,\n Zoom$1,\n Lazy$1,\n Controller$1,\n A11y,\n History$1,\n HashNavigation$1,\n Autoplay$1,\n EffectFade,\n EffectCube,\n EffectFlip,\n EffectCoverflow,\n Thumbs$1\n];\n\nif (typeof Swiper.use === 'undefined') {\n Swiper.use = Swiper.Class.use;\n Swiper.installModule = Swiper.Class.installModule;\n}\n\nSwiper.use(components);\n\nexport default Swiper;\n//# sourceMappingURL=swiper.esm.bundle.js.map\n","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1f7b5d2c&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=1f7b5d2c&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1f7b5d2c\",\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"img/8.231f15f1.jpg\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfoPop.vue?vue&type=style&index=0&id=71118041&scoped=true&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/31.bdbc3b20.jpg\";","export default {\r\n info: {\r\n title: '作品巡禮',\r\n desc: '飛歷奇的著作,主要是長篇和短篇小說、對澳門電影歷史的研究,以及其他方面的文章。他的小說作品,自1974年《蜑家女阿珍》首次出版後,均極受歡迎,至今已出版及多次再版,被翻譯成中文及英文,在各地發行,還被改編成電影。在本部份,我們向讀者一一詳列他作品的不同版本及其撰寫的文章資料。'\r\n },\r\n list: [\r\n {\r\n id: 1,\r\n pic: '1.jpg',\r\n align: 'center',\r\n desc: [\r\n '“我要寫,寫下這些文字',\r\n '因為我的心中充滿了愛',\r\n '我要讓這些人物',\r\n '帶著我的體温',\r\n '在你們的閱讀中醒來',\r\n '並且和你們緊緊地擁抱在一起',\r\n '在擁抱中,只有擁抱',\r\n '沒有距離”',\r\n '――姚風',\r\n '(詩歌及照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 2,\r\n pic: '2.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:A-Chan, A Tancareira',\r\n '作者:Henrique de Senna Fernandes',\r\n '叢書:Cadernos Capricórnio: 16',\r\n '出版: Lobito: O Lobito, Angola, 1974',\r\n '(《蜑家女阿珍》葡文首版,安哥拉洛比托)'\r\n ]\r\n },\r\n {\r\n id: 3,\r\n pic: '3.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:Nam Van: Contos de Macau',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Edição de autor, 1978',\r\n '(《南灣》葡文首版,澳門)'\r\n ]\r\n },\r\n {\r\n id: 4,\r\n pic: '4.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:Nam Van: Contos de Macau',\r\n '作者:Henrique de Senna Fernandes',\r\n '叢書:Rua Central: 12',\r\n '出版:Macau: Instituto Cultural de Macau, 2ª edição, 1997',\r\n '(《南灣》葡文第2版,澳門)'\r\n ]\r\n },\r\n {\r\n id: 5,\r\n pic: '5.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:《南灣》',\r\n '作者:飛歷奇',\r\n '譯者:李長森、崔維孝',\r\n '出版:澳門:澳門土生教育協進會,2003'\r\n ]\r\n },\r\n {\r\n id: 6,\r\n pic: '6.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:Nam Van: Contos de Macau',\r\n '作者:Henrique de Senna Fernandes',\r\n '叢書:Identidade: 1',\r\n '出版:Rio de Janeiro: Gryphus, 2008',\r\n '(《南灣》葡文版,巴西里約熱內盧)'\r\n ]\r\n },\r\n {\r\n id: 7,\r\n pic: '7.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:《南灣――澳門故事》',\r\n '作者:飛歷奇',\r\n '譯者:宋子江',\r\n '出版:澳門:PraiaGrande Edições, Lda., 2020'\r\n ]\r\n },\r\n {\r\n id: 8,\r\n pic: '8.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:Nam Van - Tales of Macao',\r\n '作者:Henrique de Senna Fernandes',\r\n '譯者:David Brookshaw',\r\n '出版:Macau: PraiaGrande Edições, Lda., 2020',\r\n '(《南灣――澳門故事》英文版,澳門)'\r\n ]\r\n },\r\n {\r\n id: 9,\r\n pic: '9.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:Amor e Dedinhos de Pé: Romance de Macau',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Instituto cultural de Macau, 1986',\r\n '(《愛情與小腳趾》葡文第1版,澳門)'\r\n ]\r\n },\r\n {\r\n id: 10,\r\n pic: '10.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:Amor e Dedinhos de Pé',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Lisboa: Gradiva – Publicações Lda., Instituto cultural de Macau, 1ª edição, 1988',\r\n '(《愛情與小腳趾》葡文第1版,葡萄牙)'\r\n ]\r\n },\r\n {\r\n id: 11,\r\n pic: '11.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:Amor e Dedinhos de Pé',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Instituto Cultural de Macau, 3ª edição, 1992',\r\n '(《愛情與小腳趾》葡文第3版,澳門)'\r\n ]\r\n },\r\n {\r\n id: 12,\r\n pic: '12.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:Amor e Dedinhos de Pé',\r\n '作者:Henrique de Senna Fernandes',\r\n '叢書:Rua Central: 4',\r\n '出版:Macau: Instituto Cultural de Macau, 4ª edição, 1994',\r\n '(《愛情與小腳趾》葡文第4版,澳門)'\r\n ]\r\n },\r\n {\r\n id: 13,\r\n pic: '13.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:《愛情與小腳趾》',\r\n '作者:飛歷奇',\r\n '譯者:喻慧娟',\r\n '叢書:葡語作家叢書文學系列之3',\r\n '出版:澳門/石家莊:澳門文化司署/花山文藝出版社,1994'\r\n ]\r\n },\r\n {\r\n id: 14,\r\n pic: '14.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:Amor e Dedinhos de Pé',\r\n '作者:Henrique de Senna Fernandes',\r\n '叢書: Colecção Identidades ',\r\n '出版:Rio de Janeiro: Gryphus, 2008',\r\n '(《愛情與小腳趾》葡文版,巴西里約熱內盧)'\r\n ]\r\n },\r\n {\r\n id: 15,\r\n pic: '15.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:Amor e Dedinhos de Pé',\r\n '作者:Henrique de Senna Fernandes',\r\n '叢書:Obra completa de Henrique de Senna Fernandes: 2',\r\n '出版:Macau: Instituto Cultural do Governo da R.A.E. de Macau, 5ª edição, 2012',\r\n '(《愛情與小腳趾》葡文第5版,澳門)'\r\n ]\r\n },\r\n {\r\n id: 16,\r\n pic: '16.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:A Trança Feiticeira',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Fundação Oriente, 1ª edição, 1993',\r\n '(《大辮子的誘惑》葡文第1版,澳門)'\r\n ]\r\n },\r\n {\r\n id: 17,\r\n pic: '17.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:《大辮子的誘惑》 ',\r\n '作者:飛歷奇',\r\n '譯者:喻慧娟',\r\n '叢書:葡語作家叢書文學系列之15',\r\n '出版:澳門/石家莊:澳門文化司署/花山文藝出版社,1996'\r\n ]\r\n },\r\n {\r\n id: 18,\r\n pic: '18.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:A Trança Feiticeira',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Fundação Oriente, 2ª edição, 1998',\r\n '(《大辮子的誘惑》葡文第2版,澳門)'\r\n ]\r\n },\r\n {\r\n id: 19,\r\n pic: '19.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:The Bewitching Braid',\r\n '作者:Henrique de Senna Fernandes',\r\n '譯者:David Brookshaw',\r\n '出版:Hong Kong: Hong Kong University Press, 2004',\r\n '(《大辮子的誘惑》英文第1版,香港)'\r\n ]\r\n },\r\n {\r\n id: 20,\r\n pic: '20.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:A Trança Feiticeira',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Rio de Janeiro: Gryphus, 2009',\r\n '(《大辮子的誘惑》葡文版,巴西里約熱內盧)'\r\n ]\r\n },\r\n {\r\n id: 21,\r\n pic: '21.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:A Trança Feiticeira',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Rio de Janeiro: Gryphus (Kindle Edition), 2011',\r\n '(《大辮子的誘惑》葡文版,巴西里約熱內盧)'\r\n ]\r\n },\r\n {\r\n id: 22,\r\n pic: '22.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:A Trança Feiticeira',\r\n '作者:Henrique de Senna Fernandes',\r\n '叢書:Obra completa de Henrique de Senna Fernandes: 3',\r\n '出版:Macau: Instituto Cultural do Governo da R.A.E. de Macau, 3ª edição, 2015',\r\n '(《大辮子的誘惑》葡文第3版,澳門)'\r\n ]\r\n },\r\n {\r\n id: 23,\r\n pic: '23.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:Mong-Há',\r\n '作者:Henrique de Senna Fernandes',\r\n '叢書:Rua Central: 14',\r\n '出版:Macau: Instituto Cultural de Macau, 1998',\r\n '(《望廈》葡文第1版,澳門)'\r\n ]\r\n },\r\n {\r\n id: 24,\r\n pic: '24.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:Cinema em Macau : Desde o Início do Século XX até a Década de 30',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Instituto Internacional de Macau, 2010',\r\n '(《澳門電影》葡文版,澳門)'\r\n ]\r\n },\r\n {\r\n id: 25,\r\n pic: '25.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:Cinema in Macau: From the 1900s to the mid 30s',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Instituto Internacional de Macau, 2010',\r\n '(《澳門電影》英文版,澳門)'\r\n ]\r\n },\r\n {\r\n id: 26,\r\n pic: '26.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:Os Dores',\r\n '作者:Henrique de Senna Fernandes',\r\n '叢書:Obra completa de Henrique de Senna Fernandes: 1',\r\n '出版:Macau: Instituto Cultural do Governo da R.A.E. de Macau, 1ª edição, 2012',\r\n '(《朵斯姑娘》葡文第1版,澳門)'\r\n ]\r\n },\r\n {\r\n id: 27,\r\n pic: '27.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:《朵斯姑娘》',\r\n '作者:飛歷奇',\r\n '譯者:喻慧娟',\r\n '叢書:中葡文學叢書之4',\r\n '出版:澳門:澳門特別行政區政府文化局,2015'\r\n ]\r\n },\r\n {\r\n id: 28,\r\n pic: '28.jpg',\r\n align: 'center',\r\n desc: [\r\n '書名:A Noite Desceu em Dezembro',\r\n '作者:Henrique de Senna Fernandes',\r\n '叢書:Obra completa de Henrique de Senna Fernandes: 4',\r\n '出版:Macau: Instituto Cultural do Governo da R.A.E. de Macau, 1ª edição, 2015',\r\n '(《黑夜在12月降臨》葡文第1版,澳門)'\r\n ]\r\n },\r\n {\r\n id: 29,\r\n pic: '29.jpg',\r\n align: 'center',\r\n desc: [\r\n '被改編成電影:',\r\n '名稱:《愛情與小腳趾》',\r\n '原著:飛歷奇',\r\n '導演:路易斯·洛薩 (Luís Rocha)',\r\n '演員:Joaquim de Almeida, Ana Torrent(喬昆姆·德·阿爾梅達,安娜·托倫特)',\r\n '製作:MGN Filmes, Ou Mun Filmes, Chrysalide Films, Impala, Jet Films, Igeldo Zine Produkzioak, 1992'\r\n ]\r\n },\r\n {\r\n id: 30,\r\n pic: '30.jpg',\r\n align: 'center',\r\n desc: [\r\n '被改編成電影:',\r\n '名稱:《大辮子的誘惑》',\r\n '原著:飛歷奇',\r\n '導演:蔡元元',\r\n '演員:寧靜、里戛杜 (Ricardo Carriço)',\r\n '製作:蔡氏兄弟(澳門)影業公司, 1996'\r\n ]\r\n },\r\n {\r\n id: 31,\r\n pic: '31.jpg',\r\n align: 'center',\r\n desc: [\r\n '飛歷奇文章(翻譯成中文)'\r\n ]\r\n },\r\n {\r\n id: 32,\r\n pic: '32.jpg',\r\n align: 'center',\r\n desc: [\r\n '飛歷奇文章(葡文)'\r\n ]\r\n },\r\n {\r\n id: 33,\r\n pic: '33.jpg',\r\n align: 'center',\r\n desc: [\r\n '飛歷奇文章(翻譯成英文)'\r\n ]\r\n }\r\n ]\r\n}\r\n","module.exports = __webpack_public_path__ + \"img/5.e1987bd6.jpg\";","export default {\r\n info: {\r\n title: '作品巡礼',\r\n desc: '飞历奇的著作,主要是长篇和短篇小说、对澳门电影历史的研究,以及其他方面的文章。他的小说作品,自1974年《蜑家女阿珍》首次出版后,均极受欢迎,至今已出版及多次再版,被翻译成中文及英文,在各地发行,还被改编成电影。在本部份,我们向读者一一详列他作品的不同版本及其撰写的文章资料。'\r\n },\r\n list: [\r\n {\r\n id: 1,\r\n pic: '1.jpg',\r\n align: 'center',\r\n desc: [\r\n '“我要写,写下这些文字',\r\n '因为我的心中充满了爱',\r\n '我要让这些人物',\r\n '带著我的体温',\r\n '在你们的阅读中醒来',\r\n '并且和你们紧紧地拥抱在一起',\r\n '在拥抱中,只有拥抱',\r\n '没有距离”',\r\n '――姚风',\r\n '(诗歌及照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 2,\r\n pic: '2.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:A-Chan, A Tancareira',\r\n '作者:Henrique de Senna Fernandes',\r\n '丛书:Cadernos Capricórnio: 16',\r\n '出版: Lobito: O Lobito, Angola, 1974',\r\n '(《蜑家女阿珍》葡文首版,安哥拉洛比托)'\r\n ]\r\n },\r\n {\r\n id: 3,\r\n pic: '3.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:Nam Van: Contos de Macau',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Edição de autor, 1978',\r\n '(《南湾》葡文首版,澳门)'\r\n ]\r\n },\r\n {\r\n id: 4,\r\n pic: '4.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:Nam Van: Contos de Macau',\r\n '作者:Henrique de Senna Fernandes',\r\n '丛书:Rua Central: 12',\r\n '出版:Macau: Instituto Cultural de Macau, 2ª edição, 1997',\r\n '(《南湾》葡文第2版,澳门)'\r\n ]\r\n },\r\n {\r\n id: 5,\r\n pic: '5.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:《南湾》',\r\n '作者:飞历奇',\r\n '译者:李长森、崔维孝',\r\n '出版:澳门:澳门土生教育协进会,2003'\r\n ]\r\n },\r\n {\r\n id: 6,\r\n pic: '6.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:Nam Van: Contos de Macau',\r\n '作者:Henrique de Senna Fernandes',\r\n '丛书:Identidade: 1',\r\n '出版:Rio de Janeiro: Gryphus, 2008',\r\n '(《南湾》葡文版,巴西里约热内卢)'\r\n ]\r\n },\r\n {\r\n id: 7,\r\n pic: '7.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:《南湾――澳门故事》',\r\n '作者:飞历奇',\r\n '译者:宋子江',\r\n '出版:澳门:PraiaGrande Edições, Lda., 2020'\r\n ]\r\n },\r\n {\r\n id: 8,\r\n pic: '8.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:Nam Van - Tales of Macao',\r\n '作者:Henrique de Senna Fernandes',\r\n '译者:David Brookshaw',\r\n '出版:Macau: PraiaGrande Edições, Lda., 2020',\r\n '(《南湾――澳门故事》英文版,澳门)'\r\n ]\r\n },\r\n {\r\n id: 9,\r\n pic: '9.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:Amor e Dedinhos de Pé: Romance de Macau',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Instituto cultural de Macau, 1986',\r\n '(《爱情与小脚趾》葡文第1版,澳门)'\r\n ]\r\n },\r\n {\r\n id: 10,\r\n pic: '10.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:Amor e Dedinhos de Pé',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Lisboa: Gradiva – Publicações Lda., Instituto cultural de Macau, 1ª edição, 1988',\r\n '(《爱情与小脚趾》葡文第1版,葡萄牙)'\r\n ]\r\n },\r\n {\r\n id: 11,\r\n pic: '11.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:Amor e Dedinhos de Pé',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Instituto Cultural de Macau, 3ª edição, 1992',\r\n '(《爱情与小脚趾》葡文第3版,澳门)'\r\n ]\r\n },\r\n {\r\n id: 12,\r\n pic: '12.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:Amor e Dedinhos de Pé',\r\n '作者:Henrique de Senna Fernandes',\r\n '丛书:Rua Central: 4',\r\n '出版:Macau: Instituto Cultural de Macau, 4ª edição, 1994',\r\n '(《爱情与小脚趾》葡文第4版,澳门)'\r\n ]\r\n },\r\n {\r\n id: 13,\r\n pic: '13.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:《爱情与小脚趾》',\r\n '作者:飞历奇',\r\n '译者:喻慧娟',\r\n '丛书:葡语作家丛书文学系列之3',\r\n '出版:澳门/石家庄:澳门文化司署/花山文艺出版社,1994'\r\n ]\r\n },\r\n {\r\n id: 14,\r\n pic: '14.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:Amor e Dedinhos de Pé',\r\n '作者:Henrique de Senna Fernandes',\r\n '丛书: Colecção Identidades ',\r\n '出版:Rio de Janeiro: Gryphus, 2008',\r\n '(《爱情与小脚趾》葡文版,巴西里约热内卢)'\r\n ]\r\n },\r\n {\r\n id: 15,\r\n pic: '15.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:Amor e Dedinhos de Pé',\r\n '作者:Henrique de Senna Fernandes',\r\n '丛书:Obra completa de Henrique de Senna Fernandes: 2',\r\n '出版:Macau: Instituto Cultural do Governo da R.A.E. de Macau, 5ª edição, 2012',\r\n '(《爱情与小脚趾》葡文第5版,澳门)'\r\n ]\r\n },\r\n {\r\n id: 16,\r\n pic: '16.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:A Trança Feiticeira',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Fundação Oriente, 1ª edição, 1993',\r\n '(《大辫子的诱惑》葡文第1版,澳门)'\r\n ]\r\n },\r\n {\r\n id: 17,\r\n pic: '17.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:《大辫子的诱惑》 ',\r\n '作者:飞历奇',\r\n '译者:喻慧娟',\r\n '丛书:葡语作家丛书文学系列之15',\r\n '出版:澳门/石家庄:澳门文化司署/花山文艺出版社,1996'\r\n ]\r\n },\r\n {\r\n id: 18,\r\n pic: '18.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:A Trança Feiticeira',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Fundação Oriente, 2ª edição, 1998',\r\n '(《大辫子的诱惑》葡文第2版,澳门)'\r\n ]\r\n },\r\n {\r\n id: 19,\r\n pic: '19.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:The Bewitching Braid',\r\n '作者:Henrique de Senna Fernandes',\r\n '译者:David Brookshaw',\r\n '出版:Hong Kong: Hong Kong University Press, 2004',\r\n '(《大辫子的诱惑》英文第1版,香港)'\r\n ]\r\n },\r\n {\r\n id: 20,\r\n pic: '20.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:A Trança Feiticeira',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Rio de Janeiro: Gryphus, 2009',\r\n '(《大辫子的诱惑》葡文版,巴西里约热内卢)'\r\n ]\r\n },\r\n {\r\n id: 21,\r\n pic: '21.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:A Trança Feiticeira',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Rio de Janeiro: Gryphus (Kindle Edition), 2011',\r\n '(《大辫子的诱惑》葡文版,巴西里约热内卢)'\r\n ]\r\n },\r\n {\r\n id: 22,\r\n pic: '22.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:A Trança Feiticeira',\r\n '作者:Henrique de Senna Fernandes',\r\n '丛书:Obra completa de Henrique de Senna Fernandes: 3',\r\n '出版:Macau: Instituto Cultural do Governo da R.A.E. de Macau, 3ª edição, 2015',\r\n '(《大辫子的诱惑》葡文第3版,澳门)'\r\n ]\r\n },\r\n {\r\n id: 23,\r\n pic: '23.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:Mong-Há',\r\n '作者:Henrique de Senna Fernandes',\r\n '丛书:Rua Central: 14',\r\n '出版:Macau: Instituto Cultural de Macau, 1998',\r\n '(《望厦》葡文第1版,澳门)'\r\n ]\r\n },\r\n {\r\n id: 24,\r\n pic: '24.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:Cinema em Macau : Desde o Início do Século XX até a Década de 30',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Instituto Internacional de Macau, 2010',\r\n '(《澳门电影》葡文版,澳门)'\r\n ]\r\n },\r\n {\r\n id: 25,\r\n pic: '25.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:Cinema in Macau: From the 1900s to the mid 30s',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Instituto Internacional de Macau, 2010',\r\n '(《澳门电影》英文版,澳门)'\r\n ]\r\n },\r\n {\r\n id: 26,\r\n pic: '26.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:Os Dores',\r\n '作者:Henrique de Senna Fernandes',\r\n '丛书:Obra completa de Henrique de Senna Fernandes: 1',\r\n '出版:Macau: Instituto Cultural do Governo da R.A.E. de Macau, 1ª edição, 2012',\r\n '(《朵斯姑娘》葡文第1版,澳门)'\r\n ]\r\n },\r\n {\r\n id: 27,\r\n pic: '27.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:《朵斯姑娘》',\r\n '作者:飞历奇',\r\n '译者:喻慧娟',\r\n '丛书:中葡文学丛书之4',\r\n '出版:澳门:澳门特别行政区政府文化局,2015'\r\n ]\r\n },\r\n {\r\n id: 28,\r\n pic: '28.jpg',\r\n align: 'center',\r\n desc: [\r\n '书名:A Noite Desceu em Dezembro',\r\n '作者:Henrique de Senna Fernandes',\r\n '丛书:Obra completa de Henrique de Senna Fernandes: 4',\r\n '出版:Macau: Instituto Cultural do Governo da R.A.E. de Macau, 1ª edição, 2015',\r\n '(《黑夜在12月降临》葡文第1版,澳门)'\r\n ]\r\n },\r\n {\r\n id: 29,\r\n pic: '29.jpg',\r\n align: 'center',\r\n desc: [\r\n '被改编成电影:',\r\n '名称:《爱情与小脚趾》',\r\n '原著:飞历奇',\r\n '导演:路易斯·洛萨 (Luís Rocha)',\r\n '演员:Joaquim de Almeida, Ana Torrent(乔昆姆·德·阿尔梅达,安娜·托伦特)',\r\n '制作:MGN Filmes, Ou Mun Filmes, Chrysalide Films, Impala, Jet Films, Igeldo Zine Produkzioak, 1992'\r\n ]\r\n },\r\n {\r\n id: 30,\r\n pic: '30.jpg',\r\n align: 'center',\r\n desc: [\r\n '被改编成电影:',\r\n '名称:《大辫子的诱惑》',\r\n '原著:飞历奇',\r\n '导演:蔡元元',\r\n '演员:宁静、里戛杜 (Ricardo Carriço)',\r\n '制作:蔡氏兄弟(澳门)影业公司, 1996'\r\n ]\r\n },\r\n {\r\n id: 31,\r\n pic: '31_cn.jpg',\r\n align: 'center',\r\n desc: [\r\n '飞历奇文章(翻译成中文)'\r\n ]\r\n },\r\n {\r\n id: 32,\r\n pic: '32_cn.jpg',\r\n align: 'center',\r\n desc: [\r\n '飞历奇文章(葡文)'\r\n ]\r\n },\r\n {\r\n id: 33,\r\n pic: '33_cn.jpg',\r\n align: 'center',\r\n desc: [\r\n '飞历奇文章(翻译成英文)'\r\n ]\r\n }\r\n ]\r\n}\r\n","export default {\r\n info: {\r\n title: 'Leitura Online',\r\n desc: 'Henrique de Senna Fernandes publicou muitos romances e artigos em jornais e revistas locais. Entre estes, alguns dos publicados na Revista de Cultura em português foram traduzidos para chinês e inglês. Nesta secção, os leitores podem ler online todos os artigos e obras de Henrique de Senna Fernandes publicados na Revista de Cultura, assim como alguns estudos sobre o autor.'\r\n },\r\n list: [\r\n {\r\n id: 1,\r\n pic: '1.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: 〈首次領聖體 〉(A Minha Primeira Comunhão)',\r\n 'Autor: 飛歷奇',\r\n 'Tradutor: 金國平',\r\n 'Publicação: 澳門:文化學會,《文化雜誌》 (1).1987, 85-92 (RCC1)',\r\n 'http://www.icm.gov.mo/rc/viewer/10001/16',\r\n ]\r\n },\r\n {\r\n id: 2,\r\n pic: '2.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: 〈不期而遇〉(Um Encontro Imprevisto)',\r\n 'Autor: 飛歷奇',\r\n 'Tradutor: 金國平',\r\n 'Publicação: 澳門:文化學會,《文化雜誌》 (3).1987, 45-50 (RCC3)',\r\n 'http://www.icm.gov.mo/rc/viewer/10003/55',\r\n ]\r\n },\r\n {\r\n id: 3,\r\n pic: '3.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: 〈蜑家女阿張〉(A-Chan, a Tancareira)',\r\n 'Autor: 飛歷奇',\r\n 'Tradutor: 金國平',\r\n 'Publicação: 澳門:文化學會,《文化雜誌》 (4).1988, 51-57 (RCC4)',\r\n 'http://www.icm.gov.mo/rc/viewer/10004/81',\r\n ]\r\n },\r\n {\r\n id: 4,\r\n pic: '4.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: 〈澳門電影歷史“默片時代”〉(O Cinema em Macau : O Tempo do \"Mudo\" )',\r\n 'Autor: 飛歷奇',\r\n 'Tradutor: 常征',\r\n 'Publicação: 澳門:文化學會,《文化雜誌》, (17).1993, 133-159 (RCC17)',\r\n 'http://www.icm.gov.mo/rc/viewer/10017/260',\r\n ]\r\n },\r\n {\r\n id: 5,\r\n pic: '5.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: 〈澳門電影歷史:有聲影片時期〉(O Cinema em Macau - A Emoção do Sonoro)',\r\n 'Autor: 飛歷奇',\r\n 'Publicação: 澳門:文化學會,《文化雜誌》, (23). 1995,117-184 (RCC23)',\r\n 'http://www.icm.gov.mo/rc/viewer/10023/383',\r\n ]\r\n },\r\n {\r\n id: 6,\r\n pic: '6.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: A Minha Primeira Comunhão',\r\n 'Autor: Henrique de Senna Fernandes',\r\n 'Publicação: Macau: Revista de Cultura, (1) Abr.-Jun. 1987, 79-85 (RCP1)',\r\n 'http://www.icm.gov.mo/rc/viewer/30001/1368',\r\n ]\r\n },\r\n {\r\n id: 7,\r\n pic: '7.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: O Cinema em Macau : O tempo do \"Mudo\" – I',\r\n 'Autor: Henrique de Senna Fernandes',\r\n 'Publicação:Macau: Revista de Cultura, (16) Out.-Dez. 1991, 31-61 (RCP16)',\r\n 'http://www.icm.gov.mo/rc/viewer/30016/1646',\r\n ]\r\n },\r\n {\r\n id: 8,\r\n pic: '8.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: O Cinema em Macau - II 1930-31: A Emoção do Sonoro',\r\n 'Autor: Henrique de Senna Fernandes',\r\n 'Publicação: Macau: Revista de Cultura, S. 2 (18) Jan.-Mar. 1994, 183-216 (RCP18)',\r\n 'http://www.icm.gov.mo/rc/viewer/30018/1706',\r\n ]\r\n },\r\n {\r\n id: 9,\r\n pic: '9.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: Cinema em Macau III (1932-36) ',\r\n 'Autor: Henrique de Senna Fernandes',\r\n 'Publicação: Macau: Revista de Cultura, S. 2 (23) Abr.-Jun. 1995, 133-170 (RCP23)',\r\n 'http://www.icm.gov.mo/rc/viewer/30023/1797',\r\n ]\r\n },\r\n {\r\n id: 10,\r\n pic: '10.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: My First Communion ',\r\n 'Autor: Henrique de Senna Fernandes',\r\n 'Publicação: Macau: Review of Culture, (1) Apr.-Jun. 1987, 68-74 (RCE1)',\r\n 'http://www.icm.gov.mo/rc/viewer/20001/740',\r\n ]\r\n },\r\n {\r\n id: 11,\r\n pic: '11.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: Cinema in Macau - The \"Silent\" Years I',\r\n 'Autor: Henrique de Senna Fernandes',\r\n 'Publicação: Macau: RC: Review of Culture, S. 2 (18) Jan. - Mar. 1994, 153-183 (RCE18)',\r\n 'http://www.icm.gov.mo/rc/viewer/20018/1004',\r\n ]\r\n },\r\n {\r\n id: 12,\r\n pic: '12.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: Cinema in Macao - Part II 1930-1931 ',\r\n 'Autor: Henrique de Senna Fernandes',\r\n 'Tradutor: Fiona Sanders',\r\n 'Publicação: Macau: Review of Culture, S. 2 (23) Apr.-Jun. 1995, 145-182 (RCE23)',\r\n 'http://www.icm.gov.mo/rc/viewer/20023/1090',\r\n ]\r\n },\r\n {\r\n id: 13,\r\n pic: '13.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: Cinema in Macao - Part III 1932-1936',\r\n 'Autor: Henrique de Senna Fernandes',\r\n 'Tradutor: Fiona Sanders',\r\n 'Publicação: Macau: Review of Culture, S. 2 (31) Apr.-Jun. 1997, 89-132 (RCE31)',\r\n 'http://www.icm.gov.mo/rc/viewer/20031/1220',\r\n ]\r\n },\r\n {\r\n id: 14,\r\n pic: '14.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título:〈論澳門土生文學及其文化價值〉(A Literatura Macaense e o Seu Valor cultural)',\r\n 'Autor: 汪春',\r\n 'Publicação: 澳門:文化司署,《文化雜誌》, (23). 1995, 99-110 (RCC23)',\r\n 'http://www.icm.gov.mo/rc/viewer/10023/381',\r\n ]\r\n },\r\n {\r\n id: 15,\r\n pic: '15.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: Fragmentos Picarescos Senna Fernandinos: Contributos Literários para a Captação do Factual da Macau Antiga em A Trança Feiticeira e Amor e Dedinhos de Pé',\r\n 'Autor: Carlos Filipe G. Figueiredo ',\r\n 'Publicação: Macau: Revista de Cultura = Review of Culture, S.3 (38) Abr. 2011, 30-53 (RCI38)',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40038',\r\n ]\r\n },\r\n {\r\n id: 16,\r\n pic: '16.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: Senna Fernandes: Família, Cultura e Diáspora',\r\n 'Autor: Alfredo Gomes Dias',\r\n 'Publicação: Macau: Revista de Cultura = Review of Culture, S.3 (38) Abr. 2011, 55-60 (RCI38)',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40038',\r\n ]\r\n },\r\n {\r\n id: 17,\r\n pic: '17.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: Macau, Cidade Multicultural? Marcas de Multiculturalidade em Os Dores de Henrique de Senna Fernandes',\r\n 'Autor: Fernando Manuel Margarido João ',\r\n 'Publicação: Macau: Revista de Cultura = Review of Culture, S.3 (44) Out.-Dez. 2013, 44-57 (RCI44)',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40044',\r\n ]\r\n },\r\n {\r\n id: 18,\r\n pic: '18.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: Macau em Os Dores, de Henrique de Senna Fernandes',\r\n 'Autor: Maria de Lurdes Escaleira, Fernando Manuel Margarido João',\r\n 'Publicação: Macau: Revista de Cultura = Review of Culture, S.3 (53) 2016, 101-123 (RCI53)',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40053',\r\n ]\r\n },\r\n {\r\n id: 19,\r\n pic: '19.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: The Fiction of Henrique de Senna Fernandes and Leung Ping-Kwan: Urban Space and Social Change in Macao and Hong Kong',\r\n 'Autor: David Brookshaw',\r\n 'Publicação: Macau: Revista de Cultura = Review of Culture, S. 3 (23) Jul. 2007, 85-88 (RCI23)',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40023',\r\n ]\r\n },\r\n {\r\n id: 20,\r\n pic: '20.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: A Colonial Diaspora Between Empires: The Macaneses and the Fiction of Henrique de Senna Fernandes',\r\n 'Autor: David Brookshaw',\r\n 'Publicação: Macau: Revista de Cultura = Review of Culture, S.3 (27) Jul. 2008, 135-141 (RCI27)',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40027',\r\n ]\r\n },\r\n {\r\n id: 21,\r\n pic: '21.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Título: Politics, Patriarchy, Progress and Postcoloniality: The life in the Fiction of Henrique de Senna Fernandes',\r\n 'Autor: David Brookshaw',\r\n 'Publicação: Macau: Revista de Cultura = Review of Culture, S.3 (38) Abr. 2011, 6-21 (RCI38)',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40038',\r\n ]\r\n },\r\n {\r\n id: 22,\r\n pic: '22.jpg',\r\n align: 'center',\r\n desc: [\r\n `Título: A Cuisine of Nostalgia: The Role of Food in Senna Fernandes's A Trança Feiticeira`,\r\n 'Autor: David Brookshaw',\r\n 'Publicação: Macau: Revista de Cultura = Review of Culture, S.3 (38) Abr. 2011, 22-29 (RCI38)',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40038',\r\n ]\r\n },\r\n {\r\n id: 23,\r\n pic: '23.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Estudos sobre Henrique de Senna Fernandes em Chinês'\r\n ]\r\n },\r\n {\r\n id: 24,\r\n pic: '24.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Estudos sobre Hernique de Senna Fernandes em Português'\r\n ]\r\n },\r\n {\r\n id: 25,\r\n pic: '25.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Estudos sobre Herique de Senna Fernandes em Inglês'\r\n ]\r\n },\r\n {\r\n id: 26,\r\n pic: '26.jpg',\r\n align: 'center',\r\n desc: [\r\n '“Continuo andando, embora com passos lentos.',\r\n 'Mas o que vos legarei não é o meu vulto.',\r\n 'O sol brilha tanto que eliminou todas as sombras',\r\n 'Ah! Ainda não gastei tudo o que me ilumina.” ',\r\n '— Yao Feng',\r\n `(Poema e fotografia cedida pelo Prof. Yao Jingming)`,\r\n ]\r\n },\r\n {\r\n id: 27,\r\n text: `Agradecimentos\r\n O Instituto Cultural do Governo da R.A.E.M gostaria de expressar os seus sinceros agradecimentospelo apoio prestado a esta exposição: \r\n Dr. Miguel de Senna Fernandes\r\n Prof. Yao Jingming\r\n Dra. Chan Lai Lin\r\n Arquivo de Macau\r\n `,\r\n align: 'center',\r\n hidden: true,\r\n desc: [\r\n 'O Instituto Cultural do Governo da R.A.E.M gostaria de expressar os seus sinceros agradecimentospelo apoio prestado a esta exposição: ',\r\n 'Dr. Miguel de Senna Fernandes',\r\n 'Prof. Yao Jingming',\r\n 'Dra. Chan Lai Lin',\r\n 'Arquivo de Macau'\r\n ]\r\n }\r\n ]\r\n}\r\n","module.exports = __webpack_public_path__ + \"img/4.fdcc051a.jpg\";","module.exports = __webpack_public_path__ + \"img/18.146b4273.jpg\";","module.exports = __webpack_public_path__ + \"img/11.6941fae1.jpg\";","module.exports = __webpack_public_path__ + \"img/26.9112f4f3.jpg\";","module.exports = __webpack_public_path__ + \"img/17.238dc200.jpg\";","module.exports = __webpack_public_path__ + \"img/11.be858a44.jpg\";","module.exports = __webpack_public_path__ + \"img/29.3fbb6ea3.jpg\";","module.exports = __webpack_public_path__ + \"img/14.7d5c7789.jpg\";","module.exports = __webpack_public_path__ + \"img/25_cn.06d796aa.jpg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAxCAMAAACrgNoQAAAAAXNSR0IArs4c6QAAAIRQTFRFAAAAJCQkICAgGhoaLhcXJxQnIiIiICAgHBwcGxsbJhoaJBgkIxcjISEhIx8fIR0dIx0gIhwfIR4eIx0dIhwfIR4eIB0gIx0dIh0fIRweIx4eIh4gIh0eIh4fIh4fIR4fIh4fIh4fIh0fIh0eIh0eIh4fIR4fIh4fIh4fIh4fIh4fIh4foxvAdQAAACt0Uk5TAAcICgsNDxASExQVFhdJTlBTVVhaXWBgYmVnwtPU1dbX2Nna29zd8vX4/nlYXP0AAAB8SURBVEjH7dRHFoJQAEPRoNiwF0RQsSBFs//94RbelPPfOHcaKRQaRGl7RvvC/pJ97n9gfzEDmRlIzcDJDBzNwMEM7M3AzgxsfxB0huBKQXSDQKM7BBqXECh+QKDJEwJNXxBo9oZA8woCJR8ItKwh0LpxyY5stVmENx9KPTBTI0+LbhBIAAAAAElFTkSuQmCC\"","export default {\r\n info: {\r\n title: '笔下浮生',\r\n desc: '飞历奇擅长描写上世纪早期澳门中葡人民的生活和社会民生风貌。他笔下的澳门,展现无限的中西风情和田园牧歌般的浪漫,彷如一幅幅澳门“浮世绘”,引领读者神游于昔日的各处街巷,观照世间万物沧桑。念兹在兹,毕生追求民族共融的他,在作品中细说一个个跨种族的爱情故事;热爱美食的他,更巧借自身的经历和各个人物的故事,为我们奉上丰盛无比又变化万千的土生葡菜;还有那些年的土生葡人种种的生活方式和宗教盛事一一尽在他笔下呈现。在欣赏过飞历奇姿彩纷陈的澳门“浮世绘”后,我们必将体会到,浮生若梦,深爱澳门者,非“澳门之子”飞历奇莫属!'\r\n },\r\n list: [\r\n {\r\n id: 1,\r\n pic: '1.jpg',\r\n align: 'center',\r\n desc: [\r\n '“不同种族的血液',\r\n '在我的身体内奔流',\r\n '汇成辽阔的海湾',\r\n '我和每一朵浪花握手',\r\n '我和所有的鱼一起潜游',\r\n '云没有边界',\r\n '但我知道它的方向”',\r\n '――姚风',\r\n '(诗歌及照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 2,\r\n text: '“居住在雀仔园这块小天地里的只有几千人,且都是穷人。他们确确实实有一些地痞流氓,但大部份都规规矩矩、朴实善良,为糊口而艰辛劳做。那里的男人都是些工人、菜贩、木匠、信差、人力车伕、流动摊贩、板车伕等。女人则大部份当佣人、织布女、扫地工、梳头妇、洗衣女、担水妹等。从总体上看,他们从事的都是低贱的职业,很少有人能当上业主老板。……像所有其它公用水井一样,那里的井台旁从早到晚总是聚集着挑着水桶来打水的妇人们。那里也自然成了社交地点。人们在那里交谈、闲聊、说长道短、打听新闻、散布谗言。”(《大辫子的诱惑》1996, 3-4)',\r\n align: 'center',\r\n desc: [\r\n '街区风貌――雀仔园',\r\n '1930-1940年代'\r\n ]\r\n },\r\n {\r\n id: 3,\r\n text: '“……静悄悄的白鸽巢前地笼罩着一片炎热。老人们三三两两地坐在一张张绿色长椅上,沐浴着落日的余晖。一个姑娘从阿多森杜家老房子的一个窗口伸出脑袋,朝街上张望。另一边,大门紧闭的嘉诺撒修道院沉浸在一片寂静之中,没有一丝欢乐的气氛。周围不时响起汤面摊的叫卖声,二胡和琵琶的弹奏声;远处响起哗啦哗啦的麻将牌的声音,从沙栏仔街还传来一阵阵鞭炮声。诗人公园绿树成荫、枝叶茂盛的树冠上闪烁着金色的光辉,一群群鸟儿在金合欢树的枝头叽叽喳喳地蹦来跳去。”(《大辫子的诱惑》1996, 211)',\r\n align: 'center',\r\n desc: [\r\n '街区风貌――白鸽巢前地',\r\n '1930-1940年代'\r\n ]\r\n },\r\n {\r\n id: 4,\r\n text: '“……即使在那个时间里,营地街上还是人来人往,熙熙攘攘,正是街市繁忙的时候。小贩们占着人行道与商店争着生意。他们的摊子上有各式各样的商品,如杂货、装饰品、小五金制品、其中大部分是假的工艺品以及各种用处的陶瓷制品等。到处飘溢着中草药、粥面、热点心以及酸甜的或蘸有各种调料的小菜的气味。人们高声交谈、讨价还价,有买有卖。车伕们高叫着,行人们不得不让出空道供人力车穿梭来往。叫花子们在乞讨,肮脏的孩子们在追逐,一些不耐烦的母亲把自己的孩子弄得大声哭叫着。汽车响着喇叭驶进,自行车响着铃声互相让道。这就是巴萨尔(市集)永远繁忙、从不停息的热闹景象。”(《大辫子的诱惑》1996, 192)',\r\n align: 'center',\r\n desc: [\r\n '街区风貌――营地街',\r\n '1930-1940年代'\r\n ]\r\n },\r\n {\r\n id: 5,\r\n text: '“他们来到草堆街头上的小广场。这里也像刚才走过的街市一样,推着车的或搭着篷的小贩们挡住了街道两旁的商店,也是一派生意繁忙的景象。这里也到处飘着同样的气味,响着类似的叫卖声、说话声、人力车伕的喊叫声、车轮嘎吱嘎吱的转动声,也是乱哄哄一片。一个理发师正指着椅子拉着生意。一位老牙医正在给一个不幸的男人钻着牙齿,痛得这男人哇哇乱叫,不得不由另一个壮汉子抱住他的双臂。说书人已经引来了听众,开始绘声绘色地讲述着一位英雄人物的故事。”(《大辫子的诱惑》1996, 193)',\r\n align: 'center',\r\n desc: [\r\n '街区风貌――草堆街',\r\n '1930-1940年代'\r\n ]\r\n },\r\n {\r\n id: 6,\r\n text: '“……有谁在离这儿不远的亚婆井的大树下唱着什么。那是一群年轻人正冒着寒冷伴着八弦琴和六弦琴高唱着时髦的葡萄牙和英国歌曲,还有法国民歌。音调标准,伴奏优美。或许这位男高音正用温柔的歌喉向在某处的一位姑娘表达炽热的爱情。一阵间歇后,还是这位歌手悠扬地唱起了澳门土生的一首老歌:‘卡特利娜,我的卡特利娜;卡特利娜,你完全占有了我的心;卡特利娜,不要忧愁不要悲伤;你很快就要当上伯爵夫人。’”(《爱情与小脚趾》1994, 352)',\r\n align: 'center',\r\n desc: [\r\n '街区风貌――亚婆井',\r\n '20世纪早期'\r\n ]\r\n },\r\n {\r\n id: 7,\r\n text: '“……大街上,一顶顶轿子和一辆辆人力车在阳光下或树荫下交错穿梭;海湾平静闪烁的水面上,中国帆船和三桅船仿佛在休息。在一堵花岗岩石头矮墙上,一位梳头妇女正蹲在树荫下,把刨花油涂在一个渔家姑娘的粗辫上。她已经为姑娘扯掉了额头上的细绒毛,这是人们为了美丽而默默忍受的一种痛苦的手术。近处,一个卖小吃的小贩正高声夸耀着他的酸味小吃;远处一位拾破烂的男人正敲打着铁皮罐;磨刀人则在那原始的磨刀石上使劲地来回磨着一把菜刀。”(《爱情与小脚趾》1994, 388)',\r\n align: 'center',\r\n desc: [\r\n '街区风貌――南湾(1)',\r\n '20世纪早期'\r\n ]\r\n },\r\n {\r\n id: 8,\r\n text: '“湾仔岛后面的斜阳照得南湾海滩一片金黄。近处,涨潮的海水波光粼粼,与花岗岩海堤喁喁低语,而远处的海浪则用力地撞击着十二月一日小炮台边上的巨石。停泊在海湾的中式商船正懒洋洋地收起船帆。小帆船和舢板随着潮水上下颠簸。许多渔船还在来往穿梭,给九月初平静的深绿色海面留下一道道白色航迹。石头砌成的码头向水面倾斜,渔民们正在上面把当天收获的海货装进柳条筐。眼前宽阔的景象让莱昂蒂娜着了迷。从这一端的陆军俱乐部到另一端毁损的烧灰炉炮台(或称圣母炮台),南湾的房屋掩映在枝繁叶茂的大树之中,形成一条赏心悦目的完整曲线。水面反射出的金色阳光几乎让姑娘们睁不开眼睛。……莱昂蒂娜认出了其中几座建筑,西望洋教堂、峰景酒店、总督官邸圣珊泽宫、总督府和法院,以及圣老楞佐教堂、圣若瑟修院和圣母主教堂上部的轮廓。一条小船在下边的海面悄悄驶来,随着海水上下颠簸。船尾的女舵手穏住小船,船头的姑娘满面堆笑,问两个姑娘是不是想买点船里满载的时令水果。尽管香蕉、番茘枝和柿子让人垂涎欲滴,但她们担心弄不好会弄脏衣服,只好是放弃。小船重新启动,沿着花岗岩海堤慢慢地朝远处摇去。”(《朵斯姑娘》2015, 115-116)',\r\n align: 'center',\r\n desc: [\r\n '街区风貌――南湾(2)',\r\n '20世纪早期'\r\n ]\r\n },\r\n {\r\n id: 9,\r\n pic: '9.jpg',\r\n align: 'center',\r\n desc: [\r\n '“船来了,为了再次离去',\r\n '在内港,这收藏相遇和离别的地方',\r\n '多少葡萄牙水手在这里登岸',\r\n '寻找沉醉和酣眠的怀抱',\r\n '多少东方女子望断远去的身影',\r\n '用大海擦干了眼泪',\r\n '海水浑浊,无法掩埋的故事',\r\n '只能述说,只能写在纸上',\r\n '钢铁的吊臂,不要把记忆砸为碎片”',\r\n '――姚风',\r\n '(诗歌及照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 10,\r\n text: '“……他特别喜欢欣赏西望洋山上的晚霞,观看太阳缓缓藏到湾仔岛上群峰的后面。他注视着满载活蹦乱跳的鱼儿出航归来的船由远驶近。耳闻东望洋山上的阵阵松涛心潮起伏,唤起了多少回忆。站在玛利二世皇后眺望台上,放眼大海,极目地平线,远处的九洲岛如同绿色的卫士在守卫着航道。白鸽巢花园中的树木郁郁葱葱。有时,他会整个下午地呆在烧灰炉斜巷的弯道上,在渔屋附近观看起网。网中的鱼活蹦乱跳,银光闪闪。或是在球场的草坪上当着女佣人的面同塔石街的孩子们玩耍。海边马路,螺丝山,靑洲,在天主圣名之城安宁和秀丽的景色之中寻求抚慰其痛苦的安谧。”(〈蜑家女阿张〉,《文化杂志》 (4).1988, 51-57)',\r\n align: 'center',\r\n desc: [\r\n '街区风貌――内港、西望洋、西环、海角游魂、白鸽巢、塔石……',\r\n '20世纪早期'\r\n ]\r\n },\r\n {\r\n id: 11,\r\n text: '“卖冰激凌的阿来那有名的叫卖声在大街小巷回响。卖面的小伙子正敲打着梆子,沿街招引着顾客。远处,卖热面包和奶油饼干的小贩正用他特有的浑厚嗓音推销着自己的美味食品,与其遥相呼应的是楼梯口的那个小贩,他正叫卖着粽子,有用香蕉叶裹着糯米和咸猪肉或鸭蛋的裹蒸粽和咸肉粽。这些声音的交响曲在夜晚总能唤起人们的思乡之情,唤起人们对童年和美食的回忆。从各家后院墙里又溢出‘夜来香’的芳香。”(《大辫子的诱惑》1996, 160)',\r\n align: 'center',\r\n desc: [\r\n '中葡美食――白鸽巢夜市',\r\n '1930-1940年代'\r\n ]\r\n },\r\n {\r\n id: 12,\r\n text: '“姑娘端着一只大盆子回到外间堂屋,盆子里盛有用酱油和豆豉煮熟了的鲜红的螃蟹。这些螃蟹真能令人垂涎三尺,仿佛是故意安排的生活凯旋曲。……确实烹调得不错。酱汁带点辣味,白白的蟹肉又鲜又嫩,味道特别可口。简直难以相信在这样破旧的家里竟然会做出这种不寻常的佳肴。”(《大辫子的诱惑》1996, 55-56)',\r\n align: 'center',\r\n desc: [\r\n '中葡美食――阿玲的豉椒炒蟹',\r\n '1930-1940年代'\r\n ]\r\n },\r\n {\r\n id: 13,\r\n text: '“他拿定主意,去当时最普通的葡国餐厅――佛笑楼餐厅,要一盘配有洋葱条和土豆条的油汪汪的牛排,再加一盘鸡蛋。……阿多森杜从来没有觉得煎鸡蛋像现在这么可口,那蛋白边上还有一圏微微发焦的颜色,一大块厚厚的牛排旁边还有一大把洋葱和土豆条……”(《大辫子的诱惑》1996, 121)',\r\n align: 'center',\r\n desc: [\r\n '中葡美食――佛笑楼的西餐',\r\n '1930-1940年代'\r\n ]\r\n },\r\n {\r\n id: 14,\r\n pic: '14.jpg',\r\n align: 'center',\r\n desc: [\r\n '中葡美食――土生葡人的家庭菜',\r\n '(照片由文化局提供)'\r\n ]\r\n },\r\n {\r\n id: 15,\r\n text: '“……父母家里的土生菜点更是无可挑剔:精制面粉夹上鸡肉、蘑菇和肉丁制作的馅饼,奶酪和橄榄味的‘卡贝拉’,还有拌辣椒酱的大杂烩。除此,拌在米饭里的各种调料,如鱼松、帝汶柠檬以及澳门的虾酱也都难以忘怀。”(《大辫子的诱惑》1996, 183)',\r\n align: 'center',\r\n desc: [\r\n '中葡美食――土生葡人的家庭菜',\r\n '1930-1940年代'\r\n ]\r\n },\r\n {\r\n id: 16,\r\n text: '“……我们正要出去的时候,有人道知我们说,大堂在旁边的一个大厅里请所有参加领圣体仪式的孩子们和他们的父母‘小用茶点’。我们去了。自然,30年代澳门的‘小用茶点’可不是一般的茶点。茶点十分丰富,有各种糕点,猪肉小馅饼,丸子,包子。许许多多的美味佳肴馋得我们这些正在斋戒的孩子们直流口水。一说可以开始吃了,孩子也不顾什么规矩不规矩了,把那些盘子一扫而光。我也盯着一堆咖喱的酥皮点心猛吃一顿。那点心做得很可口。我母亲用目光盯着我的举动。要不是刚领完圣体,她早就责备我了。半个小时以后,我们离开了那里。”(〈首次领圣体〉,《文化杂志》, (1).1987, 85-92)',\r\n align: 'center',\r\n desc: [\r\n '中葡美食――土生葡人茶会美食(1)',\r\n '1930年代'\r\n ]\r\n },\r\n {\r\n id: 17,\r\n text: '“……后来,有一家为庆祝生日举行‘丰盛茶会’来邀请她们去当厨师。一切都非成功。她们确实身手不凡,手艺确实超过别人。她们为自己的成功而激动得热泪盈眶。那些由她们制作的儿童蛋糕、椰子蛋糕、家常饼、椰蓉蛋卷、新娘蛋糕、圣诞蛋糕、奶油蛋糕、冷饮维他命、布丁蛋糕,还有各种各样的其它点心、糕点,可以称得上是澳门甜点食品中的精品。帕蒂拉家人制作的炸烤类食品也同样赫赫有名。烤火鸡、烤鸡、烤乳猪、辛辣鸡等都是外脆里嫩,叉烧包、奶蓉包等馅儿名目繁多。” (《爱情与小脚趾》1994, 221)',\r\n align: 'center',\r\n desc: [\r\n '中葡美食――土生葡人茶会美食(2)',\r\n '20世纪早期'\r\n ]\r\n },\r\n {\r\n id: 18,\r\n text: '“后来,宣布茶会开始。餐厅里,桌上铺着刚从箱底里拿出来女主人心爱的洁白的绣花桌布,上面摆着澳门葡人传统的咸味和甜味点心,人们顿时食欲大振,发出一阵轻轻的赞叹声。香酥点心和马介休球、带馅咸点心、咖喱角、芝士多、传统鸡肉火腿、三文治和生菜沙拉,一大盘大杂烩和一大盘炒米粉构成主要的咸味菜谱。格拉菲拉夫人还说,因为没有买到合适的白萝卜,桌上的萝卜糕没有想像的可口,但女主人在甜点方面大显身手,有布丁蛋糕、蛋黄点心、果冻、朱古力蛋糕卷、凤梨蛋糕卷、焦糖蛋糕、面包片、椰汁及澳门马拉糕。”(《朵斯姑娘》2015, 133)',\r\n align: 'center',\r\n desc: [\r\n '中葡美食――土生葡人茶会美食(3)',\r\n '20世纪早期'\r\n ]\r\n },\r\n {\r\n id: 19,\r\n pic: '19.jpg',\r\n align: 'center',\r\n desc: [\r\n '中葡美食――土生葡人节日盛宴',\r\n '1930-1940年代',\r\n '(照片由文化局提供)'\r\n ]\r\n },\r\n {\r\n id: 20,\r\n text: '“我还记得我家那张斜放在餐室中的大桌子。上面摆满了各种美味佳肴,还有许多我母亲和她的女友们制作的澳门菜。其中,浓汁猪杂是我母亲的拿手菜。还有许许多多在香港牛奶公司预订的珍馐。那香气至今仍弥漫在我的鼻中,我是多么的想尝尝啊。光是饀饼、糕点、甜点心和布丁就占去了桌子的一大片。自然还有好几种我母亲最拿手的点心。‘薄面油煎饼’,外面蘸着糖的‘金梅’、‘奶油饀饼’,等等,还有路易莎外祖母制造的‘马蹄糕’是最受欢迎的点心。我偷偷地藏起了两种以便到凉台上我最喜欢去的那个角落里好好受用。” (〈首次领圣体〉,《文化杂志》, (1).1987, 85-92)',\r\n align: 'center',\r\n desc: [\r\n '中葡美食――土生葡人茶会美食(4)',\r\n '1930年代'\r\n ]\r\n },\r\n {\r\n id: 21,\r\n text: '“对于12月份来讲,当时的气温算是温和的了。可是进餐时还要喝些烈酒。酒有的是,都倒好了。佐餐酒、威士忌、啤酒是最受欢迎的。还有混合甜酒。这酒放在一个巨大的酒钵中。只有在极其特别的场合才使用这个酒具。穿着长袍的男仆,身穿白旗袍、辫子梳得整整齐齐的女仆黙黙地和蔼地在上菜为大家服务。孩子们的笑声,成年人的低沉声音混杂在一起。孩子们在院子里玩耍,时不时地跑到桌子上来重新拿一份东西吃。来宾们进进出出。因为那天整个澳门不知要有多少这样的茶点会呢。每个都不能拉下,否则主人会不高兴的。到场应酬一下这是每个知名人士必尽的义务。因此,来的来,走的走,热闹非凡,吃的喝的应有尽有。那真是好日子啊!”(〈首次领圣体〉,《文化杂志》, (1).1987, 85-92)',\r\n align: 'center',\r\n desc: [\r\n '中葡美食――富裕葡人宴客景像',\r\n '1930年代'\r\n ]\r\n },\r\n {\r\n id: 22,\r\n text: '“吃饱喝足以后,绅士们都到里面的小客厅去玩15点,有的去打球。女士们有的玩一种古老的纸牌,还有一些人懒洋洋地靠在沙发上和椅子上,开始了无边无际的闲聊。年轻人则开始跳舞,当然,不愿打球玩牌的绅士女士也加入了跳舞的行列。乐队安排在大厅的一角,一阵调音以后,小提琴奏起了慢步华尔兹舞曲。在主人夫妇的带领下,大厅里的一对对舞伴,在裙子的哗哗声和彩灯的光影中旋转了起来。……时间在流逝,人们又跳了波希米亚舞、水兵舞和快步舞。” (《爱情与小脚趾》1994, 227-228)',\r\n align: 'center',\r\n desc: [\r\n '中葡美食――宴后娱乐',\r\n '20世纪早期'\r\n ]\r\n },\r\n {\r\n id: 23,\r\n pic: '23.jpg',\r\n align: 'center',\r\n desc: [\r\n '“我们从来不属于两棵树,而是一棵',\r\n '我们是树枝,我们纠缠在一起',\r\n '我们包扎天空的伤口',\r\n '我们一起穿过四季',\r\n '我们创造了自己的语言',\r\n '我们用青翠的叶子在风中絮语……”',\r\n '――姚风',\r\n '(诗歌及照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 24,\r\n text: '“他喜欢呆在她的身边,注视着满天的繁星,澳门的夜景,西望洋山和妈阁山上鳞次栉比的房屋在蓝色的夜空中宛如飘动在云端的仙山琼阁。她,貌不惊人,不知书识礼,整日在水面上奔波。她那典型的东方人的眼睛中毫不掩饰地流露出对恋念大海的水手的脉脉温情。她的笑容,为他敬茶的姿式,布满老茧的手指爱抚他那欧洲人特有的金发时所流露出来的万般温柔使他倾倒。两人之间的话语不多,手势表情更能沟通他们之间的感情。为了让他一人静思,阿张常常默不作声地呆在小船的角落里,这寂静给人的心中带来多大的安慰呀。”(〈蜑家女阿张〉,《文化杂志》 (4).1988, 57)',\r\n align: 'center',\r\n desc: [\r\n '文化共融与踫撞――异国情鸳',\r\n '20世纪早期'\r\n ]\r\n },\r\n {\r\n id: 25,\r\n text: '“阿瑞,同一个‘鬼佬’生活有时觉得很难。他有时考虑问题的方法和一些习惯,真让我不能理解。你就说吃饭吧……还有比用筷子再简单不过的吗?用一只手拿筷子,既方便,又好看。可是他那些餐具什么刀、叉、汤匙、饭匙、还要用两只手拿着,很麻烦,也没有必要。……我现在吃完饭都不能打嗝。打嗝又有什么不好?它说明我吃饱了,吃好了,说明饭菜可口,也可以说是对主人或厨师手艺的赞许。可是,这些‘鬼佬’们却认为那是缺少教养。你说这些人怪不怪?我已经学会喝咖啡,学会喝点酒,学会吃面包夹黄油。但有一件事我无法接受,就是喝茶还要加糖。加了糖就把茶的味道都冲掉了。‘鬼佬’们真不可调教,他们不懂茶的功能。他们真的不懂,他们永远也不会懂的!”(《大辫子的诱惑》1996, 162-163)',\r\n align: 'center',\r\n desc: [\r\n '文化共融与踫撞――生活习惯',\r\n '1930-1940年代'\r\n ]\r\n },\r\n {\r\n id: 26,\r\n text: '“他们遇到过种种困难,但都担当起了各自的角色。既然同一个中国后生连结在一起,安热利卡同意按照佛教礼仪与他成亲。夫妻二人必须活得有尊严,在中国人当中生活,她成了蔚康明正言顺的妻子。然而,这在基督城里是绝对不允许的,因在这里她依然被称为‘中国人的姘妇’……他们搬进了罗利老马路附近,‘社会地位’明显提高了,那里花草繁茂,离典雅的卢九花园不远,是中国人和葡萄牙人住宅混杂的城区。他们的房子相当大,周围是小花园。安热利卡不再穿中国式服装,重新按照从小养成的西方习惯生活,但没有放弃从丈夫那里学得的传统,很懂得在两种文化之间保持平衡。蔚康同意举行天主教婚礼,当然也不放弃根深蒂固的佛教传统。小伙子既不炫耀也不张扬,默契地回报了妻子,因为她已经同意遵照佛教礼仪举行婚礼。这样,两个人面对各自亲朋的责难都勇敢地履行了自己的行为。”(《朵斯姑娘》2015, 412-414)',\r\n align: 'center',\r\n desc: [\r\n '文化共融与踫撞――中西习俗(1)',\r\n '20世纪早期'\r\n ]\r\n },\r\n {\r\n id: 27,\r\n text: '“应阿多森杜邀请,这位神父来为他们的新居祈祷,祝愿他们一家幸福平安。同时,信佛教并对洋教持怀疑态度的蜂王婆在后院点上香火,祈求保住这里的好风水。有着两种信仰的保证,预示着这座房子的吉祥和兴旺。”(《大辫子的诱惑》1996, 214)',\r\n align: 'center',\r\n desc: [\r\n '文化共融与踫撞――中西习俗(2)',\r\n '1930-1940年代'\r\n ]\r\n },\r\n {\r\n id: 28,\r\n text: '“‘是我让街上的写字先生写的。是外祖父的药方……上面都是他经常给人开的中药。这是给阿光准备的。上面写得很清楚,他会知道么煎的。你别笑,教父。……我看见我外公神奇地治好了别人的病,当然也有失败的。我不是说这些中药就一定会有用,但可以帮助你……’。‘你非常相信中国人的传统医学?’‘非常相信。只要听到有人嘲笑它,说它是什么无知、迷信或骗人,我就要生气。这些人忘了,这可是有了几千年的实践历史。如果像他们说的那么坏,就不会再存在中国人了。他们全都会死光了……’”(《爱情与小脚趾》1994, 275)',\r\n align: 'center',\r\n desc: [\r\n '文化共融与踫撞――中医药',\r\n '20世纪早期'\r\n ]\r\n },\r\n {\r\n id: 29,\r\n text: '“30年代,直到太平洋战争(1941年至1945年)爆发的前夕,一年一度的极其隆重的首次领圣体仪式于12月份的第一个星期天举行。每个教区中初次领圣体的儿童都聚集在大堂中。男孩、女孩足足有数百人。按照规定,男孩们身着黑或白色的衣服,每人的胳膊上都必须佩带一个花结。女孩们只能穿白颜色,戴着面罩,着连衣裙。看上去真像一个个小新娘。”(〈首次领圣体〉,《文化杂志》, (1).1987, 85-92)',\r\n align: 'center',\r\n desc: [\r\n '宗教活动――领圣体',\r\n '1930年代'\r\n ]\r\n },\r\n {\r\n id: 30,\r\n text: '“每礼拜有一天是这里受教育的人最热切盼望的,那就是礼拜四,每到这一天大家都出去走走。这是她们看一看这座城市、街道、来来往往的人群和人力车的唯一机会。……从四点到五点半,她们两人一横排,形成两路纵队,极为朴素又难看的灰色修女服宽大得无法看清楚每个人的模样,剪着日本洋娃娃那样的短发,没有任何饰物,不施脂粉,步伐一致地行进,最小的在前头,年岁大的在后面,修女们走在队伍的末尾。……没有固定的出行路线,全凭修女们的兴趣而定,或去南湾,或去加思栏花园,又或去华士古达嘉马花园,沿得胜马路、二龙喉区,在那里可以欣赏到漂亮的住宅及其周围精心打理的绿色植被。在那里,她们远远地就能看到豪华的景象,人们衣着考究,由女佣们照管的儿童钟鸣鼎食,与修道院悲惨的封闭生活截然不同。……她们不得与队伍之外的任何人说话,也不能转过头去长时间看着任何人。”(《朵斯姑娘》2015, 88-89)',\r\n align: 'center',\r\n desc: [\r\n '宗教活动――修道院姑娘外出',\r\n '20世纪早期'\r\n ]\r\n },\r\n {\r\n id: 31,\r\n text: '“队伍应该十点整准时出发。时间快到了,游行队伍里每个人都按照规矩各就各位,旗手和他的女助手们站在最前面,后面是领队,紧随其后的是乐队成员,队尾是戴着面具的化妆游行队伍。乐队由十五到二十个人组成,曼陀铃在最前面,紧跟着是中提琴,夏威夷四弦琴、两把小提琴和其他乐器断后。戴假面具化妆的人有四五十个,不在正式的队伍之内,游行的组织者对这个数字非常满意。……队伍在乐曲声中英姿勃勃地前进,酷似葡萄牙当时流行的阅兵式。随着雄壮的音乐,不时有人喊出有节有奏的俏皮话,引起了一阵阵笑声。人数如此众多的队伍在水坑尾街拐弯,响亮的乐曲声在空中震荡,不能不引起人们注意。……两边的楼宇被唤醒了,一扇扇窗户打开了,人们在窗台上好奇地朝下观望着。行人停住脚瞪大眼睛看着打破沉睡中街道宁静的队伍。路上为数不多的汽车放慢速度,人力车跑过来指望能遇上个乘客。还必然能听到中国儿童们用葡萄牙语喊出的,这已经成为当时的传统,只是他们常常把辅音读错。‘看看那个傻瓜,小丑在这儿’……。”(《朵斯姑娘》2015, 182-183)',\r\n align: 'center',\r\n desc: [\r\n '宗教活动――嘉年华巡游',\r\n '20世纪早期'\r\n ]\r\n },\r\n {\r\n id: 32,\r\n pic: '32.jpg',\r\n align: 'center',\r\n desc: [\r\n '“哦,贾梅士,我的老朋友',\r\n '我用你的语言写作',\r\n '我每年献花给你',\r\n '没有人知道你是否来过澳门',\r\n '但你的铜像来过',\r\n '至今还恋恋不舍,没有离去',\r\n '你说爱情是看不见的火焰',\r\n '那是你患有眼疾',\r\n '我看见了爱情的火焰在燃烧',\r\n '但我没有看见灰烬”',\r\n '――姚风',\r\n '(诗歌及照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 33,\r\n text: '“我入读小学的岁月,板樟堂街是我每天上学必经之路。我当时住在加思栏马路,那时尚是偏远之地,出入并不方便。我每天早上8时半和中午1时半出门,上学路径恒常一样。先从加思栏马路,转入东望洋新街,穿过加思栏花园上方,走落迂回的坡道和石级到达花园下面的部份,在南湾尚未填海前,已是海边了。我快步走过家辣堂街,沿街有许多大宅还有圣罗撒学校高高的围墙,到达花园尽头的水坑尾街街口,穿越狭窄蜿蜒的天神巷一直走到巷口就是国华戏院,向左转便进入板樟堂街。这街上总是人头涌涌,迎面而来。我快步走到板樟堂前地,沿着议事亭前地的拱形柱廊廊内一直走到新马路交界处,进入苏雅利医生街,便慢慢沿着东方斜巷往上走到路的顶端。那儿与夜呣斜巷交界的地方,便是我的男子小学的校舍,今天已被改建成南湾警司处的大楼了。中午12时及下午3时半我放学了,走同样的路回家,只是方向相反。”(〈玛莉亚仙也斯街〉,《望厦》,1998, 74)',\r\n align: 'center',\r\n desc: [\r\n '人生足迹――飞历奇上小学之路(板樟堂)',\r\n '1930年代'\r\n ]\r\n },\r\n {\r\n id: 34,\r\n text: '“我与雀仔园的接触开始于在利宵上学的时候。当时我家住在绿树荫翳的葡萄牙式的嘉思栏马路。我上学可从两条路走。或者沿着‘地狱口’,穿过白头马路,走下火药局斜巷(今天得胜斜路);或者从东望洋新街走,到达罗宪新街顶头后,一走下台阶便可直接插入雀仔园的心脏,再走过水井和老土地庙,到达水坑尾街往右拐,走5分钟,经利宵大门来到塔石。我平常喜欢走第二条路。”(《大辫子的诱惑》1996, 3)',\r\n align: 'center',\r\n desc: [\r\n '人生足迹――飞历奇上中学之路(雀仔园)',\r\n '1930-1940年代'\r\n ]\r\n },\r\n {\r\n id: 35,\r\n text: '“在那些岁月中,去宗主国攻读的澳门学生,只有在学成之后决定返回故土时,才有可能同父母、家人聚首。当年那种惜别的场景催人泪下。人们在内港的栈桥上珍别。当时还没有现在这种转瞬即逝能一下切断人们惜别之情的飞翼船。在那些漫长的岁月中,人们乘坐下午二点半或是晚上的驶往香港的客轮别离故园。全家人团聚在游子的周围,暗中饮泣,这场景在大学生那憧憬着未来的心灵中永不冺灭。那激动人心的拥抱常常是同某人的诀别,它意味着友谊的结束,人远情疏。现在的澳门学生是多么的幸福啊。他们每年可以回故里同家人欢聚,或至少在一个较短的时间可以这样做。现代化的交通工具缩短了距离。可他们不会知道往昔的大学生们度过的那些岁月,孤独,苦闷。圣诞节前后那是最难过的一段日子。”(〈不期而遇〉,《文化杂志》 (3).1987, 45)',\r\n align: 'center',\r\n desc: [\r\n '人生足迹――飞历奇踏上大学之路(内港码头)',\r\n '1940年代'\r\n ]\r\n },\r\n {\r\n id: 36,\r\n text: '“然而,大战的结束中断了人们视如珍宝并且似乎要永远保留下去的古老世界。如今,现代之风不断劲吹。那些避开了潜水艇和水雷死亡威胁的一艘艘商船重新驶向海洋,恢复传统航线或开辟新航线。船舱里充斥着各种令人耳目一新的玩意儿――新款汽车、电器产品、留声机和收音机,源源不断到来的各种产品让人们的生活更加舒适,更加温馨,也更加‘文明’。……坚如磐石的保守主义难以抵御外来影响,缺口终于出现了。……腐蚀性最强的因素是电影,人们把电影展示的一切都视为真实的生活。看电影也成了时尚。在稍加改造的大棚或旧仓库摆上一台放映机就能招来满堂观众,他们屏气凝神、目不转睛地看那些恐怖片、喜剧片、爱情片,要么吓得浑身发抖,要么乐得开怀大笑,有的伤心得泪眼婆娑,还有的痴迷地直盯着那些发型怪异,服装妖艳的荡妇们。”(《朵斯姑娘》2015, 101-103)',\r\n align: 'center',\r\n desc: [\r\n '二战后澳门社会的变化(1)',\r\n '1940年代'\r\n ]\r\n },\r\n {\r\n id: 37,\r\n text: '“……当地的花花公子开始戴上饰以黑色缎带的遮阳草帽。领结代替了领带,衬衣改为实用的软领,脖子不再像从前那样被硬邦邦的衣领紧紧箍住,饱受折磨。各种浅色面料的西服也出现了,不再是一成不变的冬天黑色夏天白色。裤子也各式各样,甚么垂钓裤、野餐裤。头发涂满发蜡,紧贴在头皮上,还模仿着拉丁美洲明星饰以银丝或金丝。络腮胡子、浓密的唇髭或中国郎中的山羊胡子不见了,代之而起的是一张张刮得干干净净的脸。……不少上层社会妇女终于梳着短发,穿着‘现代’连衣裙、鞋子和帽子,在主教堂星期日十一时庄重的弥撒上出现了。人们忘记了祈祷,忘记听神父讲道,注意力全都集中到弥撒的另一道风景线上。”(《朵斯姑娘》2015, 104-105)',\r\n align: 'center',\r\n desc: [\r\n '二战后澳门社会的变化(2)',\r\n '1940年代'\r\n ]\r\n },\r\n {\r\n id: 38,\r\n text: '“……城市日常生活中还出现了另一个变化。从前,人们习惯于做完礼拜日弥撒之后走上龙嵩街,去欣赏摩尔人进口那些新奇玩意儿。可如今的摩尔人面临新马路上商店的激烈竞争,这是一条新近形成的商业大动脉,两旁殖民地风格的廊檐抵御着伏天火辣辣的太阳,这里集中了中国人经营的最好的商铺、鞋店、首饰店和茶庄。这条商业街从南湾一直延到内港,将澳门历史上引以为豪的‘商业中心区’一分为二。这是基督城区的状况。而面对所有这些新鲜事物,中国城区还是针插不进,水泼不进,他们依然保持着自己的古训、风俗和传统,对西方的生活变化视而不见。至少在观察家眼中,战后的变化对他们的思想、生活方式、兴趣爱好和着装都没有丝毫影响。他们固守着自己的生存模式,看样子个个心满意足或听天由命。” (《朵斯姑娘》2015, 105)',\r\n align: 'center',\r\n desc: [\r\n '二战后澳门社会的变化(3)',\r\n '1940年代'\r\n ]\r\n }\r\n ]\r\n}\r\n","module.exports = __webpack_public_path__ + \"img/32.ee34df86.jpg\";","module.exports = __webpack_public_path__ + \"img/15.7c899df8.jpg\";","module.exports = __webpack_public_path__ + \"img/23.c427fa85.jpg\";","module.exports = __webpack_public_path__ + \"img/5.12f13ea2.jpg\";","module.exports = __webpack_public_path__ + \"img/7.801bb845.jpg\";","module.exports = __webpack_public_path__ + \"img/19.8ab8872a.jpg\";","module.exports = __webpack_public_path__ + \"img/19.821e03e4.jpg\";","module.exports = __webpack_public_path__ + \"img/33.6315e58e.jpg\";","module.exports = __webpack_public_path__ + \"img/15.284a084a.jpg\";","module.exports = __webpack_public_path__ + \"img/8.0f5f4092.jpg\";","module.exports = __webpack_public_path__ + \"img/1.6b017a85.jpg\";","export default {\r\n info: {\r\n title: '在线轨迹',\r\n desc: '飞历奇曾在本地报章杂志上发表了不少小说和文章,其中,在《文化杂志》上刊载的,有葡文、被翻译成中文及英文的作品。读者可在本部份直接在线阅读所有刊登在《文化杂志》的飞历奇文章作品,以及与飞历奇相关的研究资料。'\r\n },\r\n list: [\r\n {\r\n id: 1,\r\n pic: '1.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:〈首次领圣体〉',\r\n '作者:飞历奇',\r\n '译者:金国平',\r\n '出版:澳门:文化学会,《文化杂志》 (1).1987, 85-92 (RCC1)',\r\n 'http://www.icm.gov.mo/rc/viewer/10001/16'\r\n ]\r\n },\r\n {\r\n id: 2,\r\n pic: '2.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:〈不期而遇〉',\r\n '作者:飞历奇',\r\n '译者:金国平',\r\n '出版:澳门:文化学会,《文化杂志》 (3).1987, 45-50 (RCC3)',\r\n 'http://www.icm.gov.mo/rc/viewer/10003/55'\r\n ]\r\n },\r\n {\r\n id: 3,\r\n pic: '3.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:〈蜑家女阿张〉',\r\n '作者:飞历奇',\r\n '译者:金国平',\r\n '出版:澳门:文化学会,《文化杂志》 (4).1988, 51-57 (RCC4)',\r\n 'http://www.icm.gov.mo/rc/viewer/10004/81'\r\n ]\r\n },\r\n {\r\n id: 4,\r\n pic: '4.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:〈澳门电影历史“默片时代”〉',\r\n '作者:飞历奇',\r\n '译者:常征',\r\n '出版:澳门:文化司署,《文化杂志》, (17).1993, 133-159 (RCC17)',\r\n 'http://www.icm.gov.mo/rc/viewer/10017/260'\r\n ]\r\n },\r\n {\r\n id: 5,\r\n pic: '5.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:〈澳门电影历史:有声影片时期〉',\r\n '作者:飞历奇',\r\n '译者:无n.d.',\r\n '出版:澳门:文化司署,《文化杂志》, (23). 1995,117-184 (RCC23)',\r\n 'http://www.icm.gov.mo/rc/viewer/10023/383'\r\n ]\r\n },\r\n {\r\n id: 6,\r\n pic: '6.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:A Minha Primeira Comunhão(首次领圣体)',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Revista de Cultura, (1) Abr.-Jun. 1987, 79-85 (RCP1)',\r\n 'http://www.icm.gov.mo/rc/viewer/30001/1368'\r\n ]\r\n },\r\n {\r\n id: 7,\r\n pic: '7.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:O Cinema em Macau : O tempo do \"Mudo\" – I(澳门电影历史:I“默片时代”)',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Revista de Cultura, (16) Out.-Dez. 1991, 31-61 (RCP16)',\r\n 'http://www.icm.gov.mo/rc/viewer/30016/1646'\r\n ]\r\n },\r\n {\r\n id: 8,\r\n pic: '8.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:O Cinema em Macau - II 1930-31: A Emoção do Sonoro(澳门电影历史:II 1930-31,有声影片时期)',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Revista de Cultura, S. 2 (18) Jan.-Mar. 1994, 183-216 (RCP18)',\r\n 'http://www.icm.gov.mo/rc/viewer/30018/1706'\r\n ]\r\n },\r\n {\r\n id: 9,\r\n pic: '9.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:Cinema em Macau III (1932-36) (澳门电影历史:III 1932-36有声影片时期)',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Revista de Cultura, S. 2 (23) Abr.-Jun. 1995, 133-170 (RCP23)',\r\n 'http://www.icm.gov.mo/rc/viewer/30023/1797'\r\n ]\r\n },\r\n {\r\n id: 10,\r\n pic: '10.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:My First Communion (首次领圣体)',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Review of Culture, (1) Apr.-Jun. 1987, 68-74 (RCE1)',\r\n 'http://www.icm.gov.mo/rc/viewer/20001/740'\r\n ]\r\n },\r\n {\r\n id: 11,\r\n pic: '11.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:Cinema in Macau - The “Silent” Years I(澳门电影历史:I“默片时代”)',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Review of Culture, S. 2 (18) Jan. - Mar. 1994, 153-183 (RCE18)',\r\n 'http://www.icm.gov.mo/rc/viewer/20018/1004'\r\n ]\r\n },\r\n {\r\n id: 12,\r\n pic: '12.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:Cinema in Macao - Part II 1930-1931(澳门电影历史:II 1930-1931)',\r\n '作者:Henrique de Senna Fernandes',\r\n '译者:Fiona Sanders',\r\n '出版:Macau: Review of Culture, S. 2 (23) Apr.-Jun. 1995, 145-182 (RCE23)',\r\n 'http://www.icm.gov.mo/rc/viewer/20023/1090'\r\n ]\r\n },\r\n {\r\n id: 13,\r\n pic: '13.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:Cinema in Macao - Part III 1932-1936(澳门电影历史:III 1932-36)',\r\n '作者:Henrique de Senna Fernandes',\r\n '译者:Fiona Sanders',\r\n '出版:Macau: Review of Culture, S. 2 (31) Apr.-Jun. 1997, 89-132 (RCE31)',\r\n 'http://www.icm.gov.mo/rc/viewer/20031/1220'\r\n ]\r\n },\r\n {\r\n id: 14,\r\n pic: '14.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:〈论澳门土生文学及其文化价值〉',\r\n '作者:汪春',\r\n '出版:澳门:文化司署,《文化杂志》, (23). 1995, 99-110 (RCC23)',\r\n 'http://www.icm.gov.mo/rc/viewer/10023/381'\r\n ]\r\n },\r\n {\r\n id: 15,\r\n pic: '15.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:Fragmentos Picarescos Senna Fernandinos: Contributos Literários para a Captação do Factual da Macau Antiga em A Trança Feiticeira e Amor e Dedinhos de Pé(飞历奇的喜剧作品:《大辫子的诱惑》和《爱情与小脚趾》对文学的贡献在于昔日澳门情景的再现)',\r\n '作者:Carlos Filipe G. Figueiredo ',\r\n '出版:Macau: Revista de Cultura = Review of Culture, S.3 (38) Abr. 2011, 30-53 (RCI38)',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40038'\r\n ]\r\n },\r\n {\r\n id: 16,\r\n pic: '16.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:Senna Fernandes: Família, Cultura e Diáspora(飞历奇作品表现的情景:家庭、文化和散居在异乡的人)',\r\n '作者:Alfredo Gomes Dias',\r\n '出版:Macau: Revista de Cultura = Review of Culture, S.3 (38) Abr. 2011, 55-60 (RCI38)',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40038'\r\n ]\r\n },\r\n {\r\n id: 17,\r\n pic: '17.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:Macau, Cidade Multicultural? Marcas de Multiculturalidade em Os Dores de Henrique de Senna Fernandes(澳门,多元文化之城?飞历奇小说《朵斯姑娘》中的多元文化印迹)',\r\n '作者:Fernando Manuel Margarido João ',\r\n '出版:Macau: Revista de Cultura = Review of Culture, S.3 (44) Out.-Dez. 2013, 44-57 (RCI44)',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40044'\r\n ]\r\n },\r\n {\r\n id: 18,\r\n pic: '18.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:Macau em Os Dores, de Henrique de Senna Fernandes(飞历奇作品《朵斯姑娘》中的澳门)',\r\n '作者:Maria de Lurdes Escaleira, Fernando Manuel Margarido João',\r\n '出版:Macau: Revista de Cultura = Review of Culture, S.3 (53) 2016, 101-123 (RCI53)',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40053'\r\n ]\r\n },\r\n {\r\n id: 19,\r\n pic: '19.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:The Fiction of Henrique de Senna Fernandes and Leung Ping-Kwan: Urban Space and Social Change in Macao and Hong Kong(澳门和香港的都市空间与社会变化:飞历奇和梁秉钧的小说)',\r\n '作者:David Brookshaw',\r\n '出版:Macau: Revista de Cultura = Review of Culture, S. 3 (23) Jul. 2007, 85-88 (RCI23)',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40023'\r\n ]\r\n },\r\n {\r\n id: 20,\r\n pic: '20.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:A Colonial Diaspora Between Empires: The Macaenses and the Fiction of Henrique de Senna Fernandes(帝国之间的殖民散居族裔。土生葡人和飞历奇的小说)',\r\n '作者:David Brookshaw',\r\n '出版:Macau: Revista de Cultura = Review of Culture,S.3 (27) Jul. 2008, 135-141 (RCI27)',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40027'\r\n ]\r\n },\r\n {\r\n id: 21,\r\n pic: '21.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:Politics, Patriarchy, Progress and Postcoloniality: The life in the Fiction of Henrique de Senna Fernandes(政治、父权制、发展和后殖民:飞历奇小说中的生活描述)',\r\n '作者:David Brookshaw',\r\n '出版:Macau: Revista de Cultura = Review of Culture, S.3 (38) Abr. 2011, 6-21 (RCI38)',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40038'\r\n ]\r\n },\r\n {\r\n id: 22,\r\n pic: '22.jpg',\r\n align: 'center',\r\n desc: [\r\n `篇名:A Cuisine of Nostalgia: The Role of Food in Senna Fernandes's A Trança Feiticeira(怀旧佳肴:食物在飞历奇作品《大辫子的诱惑》中的角色)`,\r\n '作者:David Brookshaw',\r\n '出版:Macau: Revista de Cultura = Review of Culture, S.3 (38) Abr. 2011, 22-29 (RCI38)',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40038'\r\n ]\r\n },\r\n {\r\n id: 23,\r\n pic: '23_cn.jpg',\r\n align: 'center',\r\n desc: [\r\n '飞历奇研究(中文)'\r\n ]\r\n },\r\n {\r\n id: 24,\r\n pic: '24_cn.jpg',\r\n align: 'center',\r\n desc: [\r\n '飞历奇研究(葡文)'\r\n ]\r\n },\r\n {\r\n id: 25,\r\n pic: '25_cn.jpg',\r\n align: 'center',\r\n desc: [\r\n '飞历奇研究(英文)'\r\n ]\r\n },\r\n {\r\n id: 26,\r\n pic: '26.jpg',\r\n align: 'center',\r\n desc: [\r\n '“我向前走去,步履显得蹒跚',\r\n '但我留给你们的,留给这个世界的',\r\n '不仅仅是一个背影',\r\n '阳光多么明媚',\r\n '照在我的身上',\r\n '我还没有把灿烂的部分用完”',\r\n '——姚风',\r\n '(诗歌及照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 27,\r\n text: `鸣谢\r\n 澳门特别行政区政府文化局向是次展览提供协助的以下人士及机构致以衷心感谢:\r\n 飞文基先生\r\n 姚京明先生\r\n 陈丽莲女士\r\n 澳门档案馆\r\n `,\r\n align: 'center',\r\n hidden: true,\r\n desc: [\r\n '澳门特别行政区政府文化局向是次展览提供协助的以下人士及机构致以衷心感谢:',\r\n '飞文基先生',\r\n '姚京明先生',\r\n '陈丽莲女士',\r\n '澳门档案馆',\r\n ]\r\n }\r\n ]\r\n}\r\n","module.exports = __webpack_public_path__ + \"img/20.cb11ce8f.jpg\";","module.exports = __webpack_public_path__ + \"img/26.39b35c61.jpg\";","module.exports = __webpack_public_path__ + \"img/32.4093bb7d.jpg\";","module.exports = __webpack_public_path__ + \"img/30.ac4d6904.jpg\";","export default {\r\n info: {\r\n title: 'Life Paths',\r\n desc: 'Henrique de Senna Fernandes was a renowned lawyer and writer in Macao. To commemorate the centenary of his birth, we pay homage to this “son of the land”, highlighting his notable contributions to Macao. As such, we intend to share the author and his work, as well as to share with everyone his achievements in the world of literature. In this section, readers will get to know briefly about Henrique de Senna Fernandes and a few moments of his life.'\r\n },\r\n list: [\r\n {\r\n id: 1,\r\n pic: '1.jpg',\r\n align: 'left',\r\n desc: [\r\n 'Henrique de Senna Fernandes (15/10/1923 – 04/10/2010) was a renowned writer and lawyer in Macao, born to a prominent Macanese family with Portuguese, Goan and Chinese roots with over 200 years of history, hence a “son of the land”. He studied Law in the University of Coimbra, in Portugal, and in 1954 returned to Macao to practise his trade. He was the President of the Lawyers Association, Director and Professor at the Pedro Nolasco Commercial School, Director of the Macao National Library and the Sir Robert Ho Tung Library, President of the Association for Promoting Macanese Instruction, member of the Legislative Assembly, member of the Cultural Affairs Council, among other positions. Before Macao’s handover to China, he was invited to visit Beijing to testify to the signing of the Sino-Portuguese Joint Declaration.',\r\n 'Henrique de Senna Fernandes dedicated himself to writing and achieved great successes with his literary creation. While he was still a student, he was awarded the Fialho de Almeida Award at the Floral Games of the 1950 University of Coimbra Ribbon Burning, thanks to his short story Ah-Chan: the Boatwoman. Throughout the years, the Cultural Affairs Bureau has published several works by Henrique de Senna Fernandes, including Love and Tiny Toes and The Bewitching Braid, both adapted to movies to great acclaim. Henrique de Senna Fernandes also wrote a great number of articles for newspapers and magazines, among those essays on Macao’s cinema at its early era. These are of great academic value.',\r\n 'Henrique de Senna Fernandes excelled at picturing the characteristics of Macao, its fusion of Chinese and Western culture, through narrative stories. His works encapsulate different races and layers of society, displaying the past life of people while vividly recreating the reality of society in Macao during the first half of the 20th century, the interactions between Chinese and Portuguese people, their habits and the traditional cuisine of Macao. His works are realistic and romantic, simple and full of warmth, with deep, humane feelings, hence enriching Macao’s literature. They are regarded as one of the classics of Macao literature.',\r\n 'Henrique de Senna Fernandes was awarded numerous honours throughout his lifetime, namely: Officer of the Order of Public Instruction (1978), Commander of the Order of Prince Henry (1986), Medal of Cultural Merit (1989), Medal of Honour (1995), Grand Officer of the Military Order of St. James of the Sword (1998), Emeritus Citizen of Macao (1999) and Medal of Cultural Merit (2001). He was a Portuguese Corresponding Academic of the International Academy of Portuguese Culture (2003) and was awarded an honorary doctorate degree (2006 and 2008). He was a scholar with exceptional achievements, profoundly humane, generous and fraternal, acting as an ambassador of local culture. His works are part of the important cultural heritage of Macao.',\r\n '(Photo courtesy of Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 2,\r\n pic: '2.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Henrique de Senna Fernandes, to the left, and his brother Édi.',\r\n '1930s',\r\n '(Photo courtesy of Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 3,\r\n pic: '3.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Family photo, taken before his departure to Portugal to further his studies. Henrique de Senna Fernandes is standing behind his mother.',\r\n '1946',\r\n '(Photo courtesy of Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 4,\r\n pic: '4.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Henrique de Senna Fernandes in his college years.',\r\n '1950s',\r\n '(Photo courtesy of Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 5,\r\n pic: '5.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Henrique de Senna Fernandes with his classmates at the graduation ceremony.',\r\n '1950s',\r\n '(Photo courtesy of Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 6,\r\n pic: '6.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Henrique de Senna Fernandes brimming with smiles. ',\r\n '1960s',\r\n '(Photo courtesy of Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 7,\r\n pic: '7.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Henrique de Senna Fernandes also had a passion for teaching. Photo taken with students, in the classroom.',\r\n '1960s',\r\n '(Photo courtesy of Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 8,\r\n pic: '8.jpg',\r\n align: 'center',\r\n desc: [\r\n 'The wedding of Henrique de Senna Fernandes.',\r\n '(Photo courtesy of Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 9,\r\n pic: '9.jpg',\r\n align: 'center',\r\n desc: [\r\n 'The wedding of Henrique de Senna Fernandes.',\r\n '(Photo courtesy of Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 10,\r\n pic: '10.jpg',\r\n align: 'center',\r\n desc: [\r\n 'The parents of Henrique de Senna Fernandes.',\r\n '(Photo courtesy of Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 11,\r\n pic: '11.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Photo of the family of Henrique de Senna Fernandes.',\r\n '(Photo courtesy of Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 12,\r\n pic: '12.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Three generations of the family.',\r\n '(Photo courtesy of Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 13,\r\n pic: '13.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Henrique de Senna Fernandes and his family having dinner at a Chinese restaurant.',\r\n '(Photo courtesy of Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 14,\r\n pic: '14.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Henrique de Senna Fernandes at a carnival event. ',\r\n '1950s',\r\n '(Photo courtesy of Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 15,\r\n pic: '15.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Henrique de Senna Fernandes at the theatre.',\r\n '(Photo courtesy of Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 16,\r\n pic: '16.jpg',\r\n align: 'center',\r\n desc: [\r\n 'With figures of the law in Macao. ',\r\n 'Circa 1965',\r\n '(Photo courtesy of Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 17,\r\n pic: '17.jpg',\r\n align: 'center',\r\n desc: [\r\n 'With his father and other people.',\r\n '(Photo courtesy of Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 18,\r\n pic: '18.jpg',\r\n align: 'center',\r\n desc: [\r\n 'With the Portuguese judge and writer Rodrigo Leal de Carvalho.',\r\n '(Photo courtesy of Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 19,\r\n pic: '19.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Henrique de Senna Fernandes at work.',\r\n '(Photo courtesy of The Archives of Macao)'\r\n ]\r\n },\r\n {\r\n id: 20,\r\n pic: '20.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Henrique de Senna Fernandes writing. ',\r\n '2001',\r\n '(Photo courtesy of Dr. Miguel de Senna Fernandes)'\r\n ]\r\n },\r\n {\r\n id: 21,\r\n pic: '21.jpg',\r\n align: 'center',\r\n desc: [\r\n 'In front of the Bee Vee Restaurant after a dinner with family and friends. ',\r\n '2005.2.20',\r\n '(Photo courtesy of Dr. Chan Lai Lin)'\r\n ]\r\n },\r\n {\r\n id: 22,\r\n pic: '22.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Casual street meeting between Henrique de Senna Fernandes and a friend. ',\r\n '2000s',\r\n '(Photo courtesy of Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 23,\r\n pic: '23.jpg',\r\n align: 'center',\r\n desc: [\r\n 'In front of the Maritime Training School at the Inner Harbour.',\r\n '2000s',\r\n '(Photo courtesy of Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 24,\r\n pic: '24.jpg',\r\n align: 'center',\r\n desc: [\r\n 'In front of his office located at the Almeida Ribeiro Avenue. ',\r\n '2000s',\r\n '(Photo courtesy of Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 25,\r\n pic: '25.jpg',\r\n align: 'center',\r\n desc: [\r\n 'In his office. ',\r\n '2000s',\r\n '(Photo courtesy of Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 26,\r\n pic: '26.jpg',\r\n align: 'center',\r\n desc: [\r\n 'Henrique de Senna Fernandes focused in research.',\r\n '2000s',\r\n '(Photo courtesy of Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 27,\r\n pic: '27.jpg',\r\n align: 'center',\r\n desc: [\r\n 'In Senado Library. ',\r\n '2000s',\r\n '(Photo courtesy of Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 28,\r\n pic: '28.jpg',\r\n align: 'center',\r\n desc: [\r\n 'A moment of ingenuity. ',\r\n '2000s',\r\n '(Photo courtesy of Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 29,\r\n pic: '29.jpg',\r\n align: 'center',\r\n desc: [\r\n 'At home.',\r\n '2000s',\r\n '(Photo courtesy of Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 30,\r\n pic: '30.jpg',\r\n align: 'center',\r\n desc: [\r\n 'At the garden of the Municipal Affairs Bureau Building. ',\r\n '2000s',\r\n '(Photo courtesy of Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 31,\r\n pic: '31.jpg',\r\n align: 'center',\r\n desc: [\r\n 'At Casa Garden.',\r\n '2000s',\r\n '(Photo courtesy of Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 32,\r\n pic: '32.jpg',\r\n align: 'center',\r\n desc: [\r\n 'At Casa Garden. ',\r\n '2000s',\r\n '(Photo courtesy of Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 33,\r\n pic: '33.jpg',\r\n align: 'center',\r\n desc: [\r\n 'In front of the Macau Portuguese School. ',\r\n '2000s',\r\n '(Photo courtesy of Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 34,\r\n pic: '34.jpg',\r\n align: 'center',\r\n desc: [\r\n 'In front of the Macau Portuguese School.',\r\n '2000s',\r\n '(Photo courtesy of Prof. Yao Jingming)'\r\n ]\r\n },\r\n {\r\n id: 35,\r\n pic: '35.jpg',\r\n align: 'center',\r\n desc: [\r\n '“This land is small but it is land.',\r\n 'This land is small but it stretches along the way…',\r\n 'I’m a son of the land, so I walk this land.',\r\n 'There is no force that can change me.',\r\n 'Listen! The beating of my heart',\r\n 'matches the soul of this land.”',\r\n '— Yao Feng',\r\n '(Poem and photo courtesy of Prof. Yao Jingming)'\r\n ]\r\n }\r\n ]\r\n}\r\n","module.exports = __webpack_public_path__ + \"img/33.d7cdda12.jpg\";","module.exports = __webpack_public_path__ + \"img/20.5966da58.jpg\";","module.exports = __webpack_public_path__ + \"img/2.56cae6d3.jpg\";","module.exports = __webpack_public_path__ + \"img/13.bb4b80c1.jpg\";","module.exports = __webpack_public_path__ + \"img/31_cn.eff8c0a6.jpg\";","export default {\r\n info: {\r\n title: '在線軌跡',\r\n desc: '飛歷奇曾在本地報章雜誌上發表了不少小說和文章,其中,在《文化雜誌》上刊載的,有葡文、被翻譯成中文及英文的作品。讀者可在本部份直接在線閱讀所有刊登在《文化雜誌》的飛歷奇文章作品,以及與飛歷奇相關的研究資料。'\r\n },\r\n list: [\r\n {\r\n id: 1,\r\n pic: '1.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:〈首次領聖體〉',\r\n '作者:飛歷奇',\r\n '譯者:金國平',\r\n '出版:澳門:文化學會,《文化雜誌》 (1).1987, 85-92 (RCC1)',\r\n 'http://www.icm.gov.mo/rc/viewer/10001/16'\r\n ]\r\n },\r\n {\r\n id: 2,\r\n pic: '2.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:〈不期而遇〉',\r\n '作者:飛歷奇',\r\n '譯者:金國平',\r\n '出版:澳門:文化學會,《文化雜誌》 (3).1987, 45-50 (RCC3)',\r\n 'http://www.icm.gov.mo/rc/viewer/10003/55'\r\n ]\r\n },\r\n {\r\n id: 3,\r\n pic: '3.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:〈蜑家女阿張〉',\r\n '作者:飛歷奇',\r\n '譯者:金國平',\r\n '出版:澳門:文化學會,《文化雜誌》 (4).1988, 51-57 (RCC4)',\r\n 'http://www.icm.gov.mo/rc/viewer/10004/81'\r\n ]\r\n },\r\n {\r\n id: 4,\r\n pic: '4.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:〈澳門電影歷史“默片時代”〉',\r\n '作者:飛歷奇',\r\n '譯者:常征',\r\n '出版:澳門:文化司署,《文化雜誌》, (17).1993, 133-159 (RCC17)',\r\n 'http://www.icm.gov.mo/rc/viewer/10017/260'\r\n ]\r\n },\r\n {\r\n id: 5,\r\n pic: '5.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:〈澳門電影歷史:有聲影片時期〉',\r\n '作者:飛歷奇',\r\n '譯者:無n.d.',\r\n '出版:澳門:文化司署,《文化雜誌》, (23). 1995,117-184 (RCC23)',\r\n 'http://www.icm.gov.mo/rc/viewer/10023/383'\r\n ]\r\n },\r\n {\r\n id: 6,\r\n pic: '6.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:A Minha Primeira Comunhão(首次領聖體)',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Revista de Cultura, (1) Abr.-Jun. 1987, 79-85 (RCP1)',\r\n 'http://www.icm.gov.mo/rc/viewer/30001/1368'\r\n ]\r\n },\r\n {\r\n id: 7,\r\n pic: '7.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:O Cinema em Macau : O tempo do \"Mudo\" – I(澳門電影歷史:I“默片時代”)',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Revista de Cultura, (16) Out.-Dez. 1991, 31-61 (RCP16)',\r\n 'http://www.icm.gov.mo/rc/viewer/30016/1646'\r\n ]\r\n },\r\n {\r\n id: 8,\r\n pic: '8.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:O Cinema em Macau - II 1930-31: A Emoção do Sonoro(澳門電影歷史:II 1930-31,有聲影片時期)',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Revista de Cultura, S. 2 (18) Jan.-Mar. 1994, 183-216 (RCP18)',\r\n 'http://www.icm.gov.mo/rc/viewer/30018/1706'\r\n ]\r\n },\r\n {\r\n id: 9,\r\n pic: '9.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:Cinema em Macau III (1932-36) (澳門電影歷史:III 1932-36有聲影片時期)',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Revista de Cultura, S. 2 (23) Abr.-Jun. 1995, 133-170 (RCP23)',\r\n 'http://www.icm.gov.mo/rc/viewer/30023/1797'\r\n ]\r\n },\r\n {\r\n id: 10,\r\n pic: '10.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:My First Communion (首次領聖體)',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Review of Culture, (1) Apr.-Jun. 1987, 68-74 (RCE1)',\r\n 'http://www.icm.gov.mo/rc/viewer/20001/740'\r\n ]\r\n },\r\n {\r\n id: 11,\r\n pic: '11.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:Cinema in Macau - The “Silent” Years I(澳門電影歷史:I“默片時代”)',\r\n '作者:Henrique de Senna Fernandes',\r\n '出版:Macau: Review of Culture, S. 2 (18) Jan. - Mar. 1994, 153-183 (RCE18)',\r\n 'http://www.icm.gov.mo/rc/viewer/20018/1004'\r\n ]\r\n },\r\n {\r\n id: 12,\r\n pic: '12.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:Cinema in Macao - Part II 1930-1931(澳門電影歷史:II 1930-1931)',\r\n '作者:Henrique de Senna Fernandes',\r\n '譯者:Fiona Sanders',\r\n '出版:Macau: Review of Culture, S. 2 (23) Apr.-Jun. 1995, 145-182 (RCE23)',\r\n 'http://www.icm.gov.mo/rc/viewer/20023/1090'\r\n ]\r\n },\r\n {\r\n id: 13,\r\n pic: '13.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:Cinema in Macao - Part III 1932-1936(澳門電影歷史:III 1932-36)',\r\n '作者:Henrique de Senna Fernandes',\r\n '譯者:Fiona Sanders',\r\n '出版:Macau: Review of Culture, S. 2 (31) Apr.-Jun. 1997, 89-132 (RCE31)',\r\n 'http://www.icm.gov.mo/rc/viewer/20031/1220'\r\n ]\r\n },\r\n {\r\n id: 14,\r\n pic: '14.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:〈論澳門土生文學及其文化價值〉',\r\n '作者:汪春',\r\n '出版:澳門:文化司署,《文化雜誌》, (23). 1995, 99-110 (RCC23)',\r\n 'http://www.icm.gov.mo/rc/viewer/10023/381'\r\n ]\r\n },\r\n {\r\n id: 15,\r\n pic: '15.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:Fragmentos Picarescos Senna Fernandinos: Contributos Literários para a Captação do Factual da Macau Antiga em A Trança Feiticeira e Amor e Dedinhos de Pé(飛歷奇的喜劇作品:《大辮子的誘惑》和《愛情與小腳趾》對文學的貢獻在於昔日澳門情景的再現)',\r\n '作者:Carlos Filipe G. Figueiredo ',\r\n '出版:Macau: Revista de Cultura = Review of Culture, S.3 (38) Abr. 2011, 30-53 (RCI38)',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40038'\r\n ]\r\n },\r\n {\r\n id: 16,\r\n pic: '16.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:Senna Fernandes: Família, Cultura e Diáspora(飛歷奇作品表現的情景:家庭、文化和散居在異鄉的人)',\r\n '作者:Alfredo Gomes Dias',\r\n '出版:Macau: Revista de Cultura = Review of Culture, S.3 (38) Abr. 2011, 55-60 (RCI38)',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40038'\r\n ]\r\n },\r\n {\r\n id: 17,\r\n pic: '17.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:Macau, Cidade Multicultural? Marcas de Multiculturalidade em Os Dores de Henrique de Senna Fernandes(澳門,多元文化之城?飛歷奇小說《朵斯姑娘》中的多元文化印迹)',\r\n '作者:Fernando Manuel Margarido João ',\r\n '出版:Macau: Revista de Cultura = Review of Culture, S.3 (44) Out.-Dez. 2013, 44-57 (RCI44)',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40044'\r\n ]\r\n },\r\n {\r\n id: 18,\r\n pic: '18.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:Macau em Os Dores, de Henrique de Senna Fernandes(飛歷奇作品《朵斯姑娘》中的澳門)',\r\n '作者:Maria de Lurdes Escaleira, Fernando Manuel Margarido João',\r\n '出版:Macau: Revista de Cultura = Review of Culture, S.3 (53) 2016, 101-123 (RCI53)',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40053'\r\n ]\r\n },\r\n {\r\n id: 19,\r\n pic: '19.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:The Fiction of Henrique de Senna Fernandes and Leung Ping-Kwan: Urban Space and Social Change in Macao and Hong Kong(澳門和香港的都市空間與社會變化:飛歷奇和梁秉鈞的小說)',\r\n '作者:David Brookshaw',\r\n '出版:Macau: Revista de Cultura = Review of Culture, S. 3 (23) Jul. 2007, 85-88 (RCI23)',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40023'\r\n ]\r\n },\r\n {\r\n id: 20,\r\n pic: '20.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:A Colonial Diaspora Between Empires: The Macaenses and the Fiction of Henrique de Senna Fernandes(帝國之間的殖民散居族裔。土生葡人和飛歷奇的小說)',\r\n '作者:David Brookshaw',\r\n '出版:Macau: Revista de Cultura = Review of Culture,S.3 (27) Jul. 2008, 135-141 (RCI27)',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40027'\r\n ]\r\n },\r\n {\r\n id: 21,\r\n pic: '21.jpg',\r\n align: 'center',\r\n desc: [\r\n '篇名:Politics, Patriarchy, Progress and Postcoloniality: The life in the Fiction of Henrique de Senna Fernandes(政治、父權制、發展和後殖民:飛歷奇小說中的生活描述)',\r\n '作者:David Brookshaw',\r\n '出版:Macau: Revista de Cultura = Review of Culture, S.3 (38) Abr. 2011, 6-21 (RCI38)',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40038'\r\n ]\r\n },\r\n {\r\n id: 22,\r\n pic: '22.jpg',\r\n align: 'center',\r\n desc: [\r\n `篇名:A Cuisine of Nostalgia: The Role of Food in Senna Fernandes's A Trança Feiticeira(懷舊佳肴:食物在飛歷奇作品《大辮子的誘惑》中的角色)`,\r\n '作者:David Brookshaw',\r\n '出版:Macau: Revista de Cultura = Review of Culture, S.3 (38) Abr. 2011, 22-29 (RCI38)',\r\n 'http://www.icm.gov.mo/rc/viewer/pdf/40038'\r\n ]\r\n },\r\n {\r\n id: 23,\r\n pic: '23.jpg',\r\n align: 'center',\r\n desc: [\r\n '飛歷奇研究(中文)'\r\n ]\r\n },\r\n {\r\n id: 24,\r\n pic: '24.jpg',\r\n align: 'center',\r\n desc: [\r\n '飛歷奇研究(葡文)'\r\n ]\r\n },\r\n {\r\n id: 25,\r\n pic: '25.jpg',\r\n align: 'center',\r\n desc: [\r\n '飛歷奇研究(英文)'\r\n ]\r\n },\r\n {\r\n id: 26,\r\n pic: '26.jpg',\r\n align: 'center',\r\n desc: [\r\n '“我向前走去,步履顯得蹣跚',\r\n '但我留給你們的,留給這個世界的',\r\n '不僅僅是一個背影',\r\n '陽光多麽明媚',\r\n '照在我的身上',\r\n '我還沒有把燦爛的部分用完”',\r\n '——姚風',\r\n '(詩歌及照片由姚京明先生提供)'\r\n ]\r\n },\r\n {\r\n id: 27,\r\n text: `鳴謝\r\n 澳門特別行政區政府文化局向是次展覽提供協助的以下人士及機構致以衷心感謝:\r\n 飛文基先生\r\n 姚京明先生\r\n 陳麗蓮女士\r\n 澳門檔案館\r\n `,\r\n align: 'center',\r\n hidden: true,\r\n desc: [\r\n '澳門特別行政區政府文化局向是次展覽提供協助的以下人士及機構致以衷心感謝:',\r\n '飛文基先生',\r\n '姚京明先生',\r\n '陳麗蓮女士',\r\n '澳門檔案館',\r\n ]\r\n }\r\n ]\r\n}\r\n","module.exports = __webpack_public_path__ + \"img/13.45633b1a.jpg\";","var map = {\n\t\"./1/1.jpg\": \"e12c\",\n\t\"./1/10.jpg\": \"63fb\",\n\t\"./1/11.jpg\": \"bdca\",\n\t\"./1/12.jpg\": \"0160\",\n\t\"./1/13.jpg\": \"f895\",\n\t\"./1/14.jpg\": \"1972\",\n\t\"./1/15.jpg\": \"0b87\",\n\t\"./1/16.jpg\": \"6a55\",\n\t\"./1/17.jpg\": \"b9f8\",\n\t\"./1/18.jpg\": \"b597\",\n\t\"./1/19.jpg\": \"d5b2\",\n\t\"./1/2.jpg\": \"458b\",\n\t\"./1/20.jpg\": \"117f\",\n\t\"./1/21.jpg\": \"4f91\",\n\t\"./1/22.jpg\": \"6850\",\n\t\"./1/23.jpg\": \"3eba\",\n\t\"./1/24.jpg\": \"284c\",\n\t\"./1/25.jpg\": \"2ada\",\n\t\"./1/26.jpg\": \"9dde\",\n\t\"./1/27.jpg\": \"1ef6\",\n\t\"./1/28.jpg\": \"177a\",\n\t\"./1/29.jpg\": \"beab\",\n\t\"./1/3.jpg\": \"39ee\",\n\t\"./1/30.jpg\": \"ee27\",\n\t\"./1/31.jpg\": \"a60b\",\n\t\"./1/32.jpg\": \"c77c\",\n\t\"./1/33.jpg\": \"f6be\",\n\t\"./1/34.jpg\": \"8689\",\n\t\"./1/35.jpg\": \"9fe0\",\n\t\"./1/4.jpg\": \"b577\",\n\t\"./1/5.jpg\": \"d09c\",\n\t\"./1/6.jpg\": \"2d50\",\n\t\"./1/7.jpg\": \"d2d7\",\n\t\"./1/8.jpg\": \"e0bf\",\n\t\"./1/9.jpg\": \"26cc\",\n\t\"./1/en\": \"f044\",\n\t\"./1/en.js\": \"f044\",\n\t\"./1/pt\": \"8128\",\n\t\"./1/pt.js\": \"8128\",\n\t\"./1/zh-cn\": \"8ba6\",\n\t\"./1/zh-cn.js\": \"8ba6\",\n\t\"./1/zh-hk\": \"724d\",\n\t\"./1/zh-hk.js\": \"724d\",\n\t\"./2/1.jpg\": \"0d05\",\n\t\"./2/10.jpg\": \"0afd\",\n\t\"./2/11.jpg\": \"8fbc\",\n\t\"./2/12.jpg\": \"2229\",\n\t\"./2/13.jpg\": \"fa96\",\n\t\"./2/14.jpg\": \"4fb1\",\n\t\"./2/15.jpg\": \"ca27\",\n\t\"./2/16.jpg\": \"7be6\",\n\t\"./2/17.jpg\": \"3040\",\n\t\"./2/18.jpg\": \"708f\",\n\t\"./2/19.jpg\": \"d4df\",\n\t\"./2/2.jpg\": \"2740\",\n\t\"./2/20.jpg\": \"e733\",\n\t\"./2/21.jpg\": \"0f5f\",\n\t\"./2/22.jpg\": \"9c51\",\n\t\"./2/23.jpg\": \"0a42\",\n\t\"./2/24.jpg\": \"6bc9\",\n\t\"./2/25.jpg\": \"0d79\",\n\t\"./2/26.jpg\": \"b9bc\",\n\t\"./2/27.jpg\": \"2577\",\n\t\"./2/28.jpg\": \"970b\",\n\t\"./2/29.jpg\": \"6a41\",\n\t\"./2/3.jpg\": \"6882\",\n\t\"./2/30.jpg\": \"46f6\",\n\t\"./2/31.jpg\": \"9a7c\",\n\t\"./2/31_cn.jpg\": \"f8bd\",\n\t\"./2/32.jpg\": \"ed78\",\n\t\"./2/32_cn.jpg\": \"601d\",\n\t\"./2/33.jpg\": \"d96f\",\n\t\"./2/33_cn.jpg\": \"13ce\",\n\t\"./2/4.jpg\": \"539b\",\n\t\"./2/5.jpg\": \"3683\",\n\t\"./2/6.jpg\": \"26a7\",\n\t\"./2/7.jpg\": \"898d\",\n\t\"./2/8.jpg\": \"0f80\",\n\t\"./2/9.jpg\": \"2f3b\",\n\t\"./2/en\": \"90bb\",\n\t\"./2/en.js\": \"90bb\",\n\t\"./2/pt\": \"624d\",\n\t\"./2/pt.js\": \"624d\",\n\t\"./2/zh-cn\": \"aadb\",\n\t\"./2/zh-cn.js\": \"aadb\",\n\t\"./2/zh-hk\": \"a914\",\n\t\"./2/zh-hk.js\": \"a914\",\n\t\"./3/1.jpg\": \"3bf4\",\n\t\"./3/14.jpg\": \"c025\",\n\t\"./3/19.jpg\": \"6768\",\n\t\"./3/23.jpg\": \"cdb9\",\n\t\"./3/32.jpg\": \"0660\",\n\t\"./3/9.jpg\": \"1761\",\n\t\"./3/en\": \"710c\",\n\t\"./3/en.js\": \"710c\",\n\t\"./3/pt\": \"7cee\",\n\t\"./3/pt.js\": \"7cee\",\n\t\"./3/zh-cn\": \"c774\",\n\t\"./3/zh-cn.js\": \"c774\",\n\t\"./3/zh-hk\": \"32a5\",\n\t\"./3/zh-hk.js\": \"32a5\",\n\t\"./4/1.jpg\": \"5305\",\n\t\"./4/10.jpg\": \"482b\",\n\t\"./4/11.jpg\": \"b81f\",\n\t\"./4/12.jpg\": \"63e2\",\n\t\"./4/13.jpg\": \"9843\",\n\t\"./4/14.jpg\": \"770c\",\n\t\"./4/15.jpg\": \"dac1\",\n\t\"./4/16.jpg\": \"4e3f\",\n\t\"./4/17.jpg\": \"8cb5\",\n\t\"./4/18.jpg\": \"36d8\",\n\t\"./4/19.jpg\": \"7a81\",\n\t\"./4/2.jpg\": \"f892\",\n\t\"./4/20.jpg\": \"f79b\",\n\t\"./4/21.jpg\": \"4e90\",\n\t\"./4/22.jpg\": \"5c16\",\n\t\"./4/23.jpg\": \"4e5b\",\n\t\"./4/23_cn.jpg\": \"4431\",\n\t\"./4/24.jpg\": \"6fcd\",\n\t\"./4/24_cn.jpg\": \"3647\",\n\t\"./4/25.jpg\": \"0a18\",\n\t\"./4/25_cn.jpg\": \"c083\",\n\t\"./4/26.jpg\": \"ea8e6\",\n\t\"./4/3.jpg\": \"8d2c\",\n\t\"./4/4.jpg\": \"808f\",\n\t\"./4/5.jpg\": \"a964\",\n\t\"./4/6.jpg\": \"8eb4\",\n\t\"./4/7.jpg\": \"99ca\",\n\t\"./4/8.jpg\": \"a53e\",\n\t\"./4/9.jpg\": \"75e5\",\n\t\"./4/en\": \"558f\",\n\t\"./4/en.js\": \"558f\",\n\t\"./4/pt\": \"b3e9\",\n\t\"./4/pt.js\": \"b3e9\",\n\t\"./4/zh-cn\": \"e5b4\",\n\t\"./4/zh-cn.js\": \"e5b4\",\n\t\"./4/zh-hk\": \"fa25\",\n\t\"./4/zh-hk.js\": \"fa25\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"fbc9\";"],"sourceRoot":""}