From ea4e08d6d659d8065b3e7dc244ef6a04293e7af2 Mon Sep 17 00:00:00 2001 From: Fred Chasen Date: Thu, 18 Jul 2013 18:46:01 -0700 Subject: [PATCH] poylmer example updates, chapter event details --- build/epub.js | 9 +- build/epub.min.js | 4 +- demo/js/epub.min.js | 4 +- examples/annotator.html | 2 +- examples/basic.html | 2 +- examples/contained.html | 2 +- examples/custom-elements.html | 2 +- examples/fixed.html | 2 +- examples/hypothesis.html | 2 +- examples/polymer/epub-controls.html | 18 - examples/polymer/epub-js.html | 84 ---- examples/polymer/epub-reader.html | 45 -- examples/polymer/epub-reader/assets/add.png | Bin 0 -> 660 bytes .../polymer/epub-reader/assets/fullscreen.png | Bin 0 -> 3048 bytes .../polymer/epub-reader/assets/settings.png | Bin 0 -> 4585 bytes .../polymer/epub-reader/epub-controls.html | 53 ++ examples/polymer/epub-reader/epub-js.html | 108 ++++ examples/polymer/epub-reader/epub-reader.html | 155 ++++++ .../{ => epub-reader}/epub-settings.html | 0 .../polymer/epub-reader/epub-sidebar.html | 38 ++ .../polymer/epub-reader/epub-titlebar.html | 44 ++ examples/polymer/epub-reader/epub-toc.html | 144 ++++++ .../{ => epub-reader}/epub-viewer.html | 57 ++- examples/polymer/epub-sidebar.html | 22 - examples/polymer/epub-titlebar.html | 22 - examples/polymer/epub-toc.html | 30 -- examples/polymer/index.html | 6 +- examples/polymer/polymer-elements/AUTHORS | 9 + examples/polymer/polymer-elements/LICENSE | 27 + examples/polymer/polymer-elements/PATENTS | 23 + .../polymer-elements/polymer-ajax/index.html | 30 ++ .../polymer-ajax/polymer-ajax.html | 179 +++++++ .../polymer-ajax/polymer-xhr.html | 96 ++++ .../polymer-animation/index.html | 86 ++++ .../polymer-animation-group.html | 100 ++++ .../polymer-animation-keyframe.html | 41 ++ .../polymer-animation-prop.html | 25 + .../polymer-animation/polymer-animation.html | 295 +++++++++++ .../polymer-animation/polymer-blink.html | 14 + .../polymer-animation/polymer-bounce.html | 31 ++ .../polymer-animation/polymer-fadein.html | 17 + .../polymer-animation/polymer-fadeout.html | 13 + .../polymer-animation/polymer-flip.html | 46 ++ .../polymer-animation/polymer-shake.html | 59 +++ .../polymer-animation/polymer-translate.html | 41 ++ .../polymer-animation/web-animations.html | 1 + .../polymer-collapse/index.html | 52 ++ .../polymer-collapse/polymer-collapse.html | 188 +++++++ .../polymer-elements/polymer-file/index.html | 27 + .../polymer-file/polymer-file.html | 138 +++++ .../polymer-flex-layout/index.html | 129 +++++ .../polymer-flex-layout.css | 179 +++++++ .../polymer-flex-layout.html | 47 ++ .../polymer-google-jsapi/index.html | 25 + .../polymer-google-jsapi.html | 56 +++ .../polymer-elements/polymer-jsonp/index.html | 28 ++ .../polymer-jsonp/polymer-jsonp.html | 93 ++++ .../polymer-key-helper.html | 13 + .../polymer-layout/index.html | 43 ++ .../polymer-layout/polymer-layout.html | 125 +++++ .../polymer-layout/polymer-slide.html | 155 ++++++ .../polymer-localstorage/index.html | 22 + .../polymer-localstorage.html | 75 +++ .../polymer-media-query/index.html | 36 ++ .../polymer-media-query.html | 43 ++ .../polymer-elements/polymer-meta/index.html | 35 ++ .../polymer-meta/polymer-meta.html | 55 ++ .../polymer-overlay/index.html | 126 +++++ .../polymer-overlay-global.css | 129 +++++ .../polymer-overlay/polymer-overlay.css | 131 +++++ .../polymer-overlay/polymer-overlay.html | 330 ++++++++++++ .../polymer-page/polymer-page.html | 17 + .../polymer-selector/index.html | 45 ++ .../polymer-selector/polymer-selection.html | 64 +++ .../polymer-selector/polymer-selector.html | 197 ++++++++ .../polymer-view-source-link/index.html | 20 + .../polymer-view-source-link.html | 15 + examples/polymer/polymer-ui-elements/AUTHORS | 9 + examples/polymer/polymer-ui-elements/LICENSE | 27 + examples/polymer/polymer-ui-elements/PATENTS | 23 + .../assets/action-icons.pdn | Bin 0 -> 26959 bytes .../assets/action-icons.png | Bin 0 -> 9851 bytes .../assets/ribbon-icons.pdn | Bin 0 -> 34976 bytes .../assets/ribbon-icons.png | Bin 0 -> 8774 bytes .../polymer/polymer-ui-elements/basic.css | 70 +++ .../polymer-ui-accordion/index.html | 55 ++ .../polymer-ui-accordion.css | 11 + .../polymer-ui-accordion.html | 44 ++ .../polymer-ui-collapsible/index.html | 40 ++ .../polymer-ui-collapsible.css | 15 + .../polymer-ui-collapsible.html | 48 ++ .../polymer-ui-icon-button/btn_light.png | Bin 0 -> 2658 bytes .../polymer-ui-icon-button/index.html | 55 ++ .../polymer-ui-icon-button.css | 35 ++ .../polymer-ui-icon-button.html | 77 +++ .../polymer-ui-icon/index.html | 55 ++ .../polymer-ui-icon/polymer-ui-icon.css | 25 + .../polymer-ui-icon/polymer-ui-icon.html | 116 +++++ .../polymer-ui-menu-item/index.html | 33 ++ .../polymer-ui-menu-item.css | 81 +++ .../polymer-ui-menu-item.html | 68 +++ .../polymer-ui-menu/index.html | 53 ++ .../polymer-ui-menu/polymer-ui-menu.css | 29 ++ .../polymer-ui-menu/polymer-ui-menu.html | 90 ++++ .../polymer-ui-nav-arrow/index.html | 64 +++ .../polymer-ui-nav-arrow.css | 26 + .../polymer-ui-nav-arrow.html | 42 ++ .../polymer-ui-ratings/index.html | 23 + .../polymer-ui-ratings/polymer-ui-ratings.css | 29 ++ .../polymer-ui-ratings.html | 74 +++ .../polymer-ui-ratings/star_blank.png | Bin 0 -> 3415 bytes .../polymer-ui-ratings/star_full.png | Bin 0 -> 3463 bytes .../polymer-ui-sidebar-menu/index.html | 68 +++ .../polymer-ui-sidebar-menu.css | 35 ++ .../polymer-ui-sidebar-menu.html | 56 +++ .../polymer-ui-splitter/handle.png | Bin 0 -> 2974 bytes .../polymer-ui-splitter/handle_horiz.png | Bin 0 -> 2899 bytes .../polymer-ui-splitter/index.html | 72 +++ .../polymer-ui-splitter.css | 27 + .../polymer-ui-splitter.html | 91 ++++ .../polymer-ui-tabs/index.html | 29 ++ .../polymer-ui-tabs/polymer-ui-tabs.html | 65 +++ .../polymer-ui-theme-aware.html | 30 ++ .../polymer-ui-toggle-button/index.html | 25 + .../polymer-ui-toggle-button.css | 96 ++++ .../polymer-ui-toggle-button.html | 72 +++ .../polymer-ui-toolbar/index.html | 81 +++ .../polymer-ui-toolbar/polymer-ui-toolbar.css | 59 +++ .../polymer-ui-toolbar.html | 65 +++ .../polymer-ui-toolbar/star.png | Bin 0 -> 3117 bytes .../toolkit-ui/elements/animation/all.html | 8 + .../elements/animation/g-animation-group.html | 100 ++++ .../elements/animation/g-animation.html | 366 ++++++++++++++ .../elements/animation/g-blink.html | 16 + .../elements/animation/g-bounce.html | 33 ++ .../elements/animation/g-fadein.html | 17 + .../elements/animation/g-fadeout.html | 13 + .../toolkit-ui/elements/animation/g-flip.html | 47 ++ .../elements/animation/g-shake.html | 61 +++ .../elements/animation/g-translate.html | 41 ++ .../toolkit-ui/elements/css/g-flex-layout.css | 220 ++++++++ .../toolkit-ui/elements/css/g-menu-button.css | 99 ++++ .../elements/css/g-overlay-global.css | 91 ++++ .../toolkit-ui/elements/css/g-overlay.css | 131 +++++ .../elements/css/g-panels-controller.css | 218 ++++++++ .../elements/css/g-panels-global.css | 412 +++++++++++++++ .../toolkit-ui/elements/css/g-panels.css | 43 ++ .../elements/css/g-tabpanels-controller.css | 53 ++ .../elements/css/g-togglebutton.css | 96 ++++ .../polymer/toolkit-ui/elements/g-ajax.html | 183 +++++++ .../polymer/toolkit-ui/elements/g-app.html | 137 +++++ .../toolkit-ui/elements/g-checkbox.html | 33 ++ .../polymer/toolkit-ui/elements/g-field.html | 69 +++ .../polymer/toolkit-ui/elements/g-form.html | 17 + .../toolkit-ui/elements/g-icon-button.html | 86 ++++ .../polymer/toolkit-ui/elements/g-icon.html | 68 +++ .../polymer/toolkit-ui/elements/g-jsonp.html | 93 ++++ .../toolkit-ui/elements/g-menu-button.html | 45 ++ .../toolkit-ui/elements/g-menu-item.html | 64 +++ .../polymer/toolkit-ui/elements/g-menu.html | 65 +++ .../elements/g-overlay-webanimations.html | 111 ++++ .../toolkit-ui/elements/g-overlay.html | 288 +++++++++++ .../polymer/toolkit-ui/elements/g-panels.html | 475 ++++++++++++++++++ .../toolkit-ui/elements/g-progress.html | 39 ++ .../polymer/toolkit-ui/elements/g-radio.html | 27 + .../toolkit-ui/elements/g-ratings.html | 94 ++++ .../polymer/toolkit-ui/elements/g-ribbon.html | 117 +++++ .../polymer/toolkit-ui/elements/g-select.html | 56 +++ .../toolkit-ui/elements/g-selection.html | 64 +++ .../toolkit-ui/elements/g-selector.html | 180 +++++++ .../toolkit-ui/elements/g-sidebar.html | 88 ++++ .../toolkit-ui/elements/g-tabpanels.html | 65 +++ .../polymer/toolkit-ui/elements/g-tabs.html | 65 +++ .../toolkit-ui/elements/g-togglebutton.html | 73 +++ .../toolkit-ui/elements/g-toolbar.html | 90 ++++ .../polymer/toolkit-ui/elements/g-xhr.html | 92 ++++ .../toolkit-ui/elements/images/btn_light.png | Bin 0 -> 2658 bytes .../toolkit-ui/elements/images/dark_check.png | Bin 0 -> 3827 bytes .../elements/images/light_check.png | Bin 0 -> 3724 bytes .../toolkit-ui/elements/images/ribbon_bg.png | Bin 0 -> 12358 bytes .../toolkit-ui/elements/images/star_blank.png | Bin 0 -> 3415 bytes .../toolkit-ui/elements/images/star_full.png | Bin 0 -> 3463 bytes .../g-flow-panel-transition.html | 155 ++++++ .../g-keyframe-panel-transition.html | 47 ++ .../panel-transitions/g-panel-transition.html | 97 ++++ examples/promises.html | 2 +- examples/single.html | 2 +- src/epubcfi.js | 3 +- src/renderer.js | 6 +- 189 files changed, 11716 insertions(+), 259 deletions(-) delete mode 100644 examples/polymer/epub-controls.html delete mode 100644 examples/polymer/epub-js.html delete mode 100644 examples/polymer/epub-reader.html create mode 100644 examples/polymer/epub-reader/assets/add.png create mode 100755 examples/polymer/epub-reader/assets/fullscreen.png create mode 100644 examples/polymer/epub-reader/assets/settings.png create mode 100644 examples/polymer/epub-reader/epub-controls.html create mode 100644 examples/polymer/epub-reader/epub-js.html create mode 100644 examples/polymer/epub-reader/epub-reader.html rename examples/polymer/{ => epub-reader}/epub-settings.html (100%) create mode 100644 examples/polymer/epub-reader/epub-sidebar.html create mode 100644 examples/polymer/epub-reader/epub-titlebar.html create mode 100644 examples/polymer/epub-reader/epub-toc.html rename examples/polymer/{ => epub-reader}/epub-viewer.html (60%) delete mode 100644 examples/polymer/epub-sidebar.html delete mode 100644 examples/polymer/epub-titlebar.html delete mode 100644 examples/polymer/epub-toc.html create mode 100644 examples/polymer/polymer-elements/AUTHORS create mode 100644 examples/polymer/polymer-elements/LICENSE create mode 100644 examples/polymer/polymer-elements/PATENTS create mode 100644 examples/polymer/polymer-elements/polymer-ajax/index.html create mode 100644 examples/polymer/polymer-elements/polymer-ajax/polymer-ajax.html create mode 100644 examples/polymer/polymer-elements/polymer-ajax/polymer-xhr.html create mode 100644 examples/polymer/polymer-elements/polymer-animation/index.html create mode 100644 examples/polymer/polymer-elements/polymer-animation/polymer-animation-group.html create mode 100644 examples/polymer/polymer-elements/polymer-animation/polymer-animation-keyframe.html create mode 100644 examples/polymer/polymer-elements/polymer-animation/polymer-animation-prop.html create mode 100644 examples/polymer/polymer-elements/polymer-animation/polymer-animation.html create mode 100644 examples/polymer/polymer-elements/polymer-animation/polymer-blink.html create mode 100644 examples/polymer/polymer-elements/polymer-animation/polymer-bounce.html create mode 100644 examples/polymer/polymer-elements/polymer-animation/polymer-fadein.html create mode 100644 examples/polymer/polymer-elements/polymer-animation/polymer-fadeout.html create mode 100644 examples/polymer/polymer-elements/polymer-animation/polymer-flip.html create mode 100644 examples/polymer/polymer-elements/polymer-animation/polymer-shake.html create mode 100644 examples/polymer/polymer-elements/polymer-animation/polymer-translate.html create mode 100644 examples/polymer/polymer-elements/polymer-animation/web-animations.html create mode 100644 examples/polymer/polymer-elements/polymer-collapse/index.html create mode 100644 examples/polymer/polymer-elements/polymer-collapse/polymer-collapse.html create mode 100644 examples/polymer/polymer-elements/polymer-file/index.html create mode 100644 examples/polymer/polymer-elements/polymer-file/polymer-file.html create mode 100644 examples/polymer/polymer-elements/polymer-flex-layout/index.html create mode 100644 examples/polymer/polymer-elements/polymer-flex-layout/polymer-flex-layout.css create mode 100644 examples/polymer/polymer-elements/polymer-flex-layout/polymer-flex-layout.html create mode 100644 examples/polymer/polymer-elements/polymer-google-jsapi/index.html create mode 100644 examples/polymer/polymer-elements/polymer-google-jsapi/polymer-google-jsapi.html create mode 100644 examples/polymer/polymer-elements/polymer-jsonp/index.html create mode 100644 examples/polymer/polymer-elements/polymer-jsonp/polymer-jsonp.html create mode 100644 examples/polymer/polymer-elements/polymer-key-helper/polymer-key-helper.html create mode 100644 examples/polymer/polymer-elements/polymer-layout/index.html create mode 100644 examples/polymer/polymer-elements/polymer-layout/polymer-layout.html create mode 100644 examples/polymer/polymer-elements/polymer-layout/polymer-slide.html create mode 100644 examples/polymer/polymer-elements/polymer-localstorage/index.html create mode 100644 examples/polymer/polymer-elements/polymer-localstorage/polymer-localstorage.html create mode 100644 examples/polymer/polymer-elements/polymer-media-query/index.html create mode 100644 examples/polymer/polymer-elements/polymer-media-query/polymer-media-query.html create mode 100644 examples/polymer/polymer-elements/polymer-meta/index.html create mode 100644 examples/polymer/polymer-elements/polymer-meta/polymer-meta.html create mode 100644 examples/polymer/polymer-elements/polymer-overlay/index.html create mode 100644 examples/polymer/polymer-elements/polymer-overlay/polymer-overlay-global.css create mode 100644 examples/polymer/polymer-elements/polymer-overlay/polymer-overlay.css create mode 100644 examples/polymer/polymer-elements/polymer-overlay/polymer-overlay.html create mode 100644 examples/polymer/polymer-elements/polymer-page/polymer-page.html create mode 100644 examples/polymer/polymer-elements/polymer-selector/index.html create mode 100644 examples/polymer/polymer-elements/polymer-selector/polymer-selection.html create mode 100644 examples/polymer/polymer-elements/polymer-selector/polymer-selector.html create mode 100644 examples/polymer/polymer-elements/polymer-view-source-link/index.html create mode 100644 examples/polymer/polymer-elements/polymer-view-source-link/polymer-view-source-link.html create mode 100644 examples/polymer/polymer-ui-elements/AUTHORS create mode 100644 examples/polymer/polymer-ui-elements/LICENSE create mode 100644 examples/polymer/polymer-ui-elements/PATENTS create mode 100644 examples/polymer/polymer-ui-elements/assets/action-icons.pdn create mode 100644 examples/polymer/polymer-ui-elements/assets/action-icons.png create mode 100644 examples/polymer/polymer-ui-elements/assets/ribbon-icons.pdn create mode 100644 examples/polymer/polymer-ui-elements/assets/ribbon-icons.png create mode 100644 examples/polymer/polymer-ui-elements/basic.css create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-accordion/index.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-accordion/polymer-ui-accordion.css create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-accordion/polymer-ui-accordion.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-collapsible/index.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-collapsible/polymer-ui-collapsible.css create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-collapsible/polymer-ui-collapsible.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-icon-button/btn_light.png create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-icon-button/index.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-icon-button/polymer-ui-icon-button.css create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-icon-button/polymer-ui-icon-button.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-icon/index.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-icon/polymer-ui-icon.css create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-icon/polymer-ui-icon.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-menu-item/index.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-menu-item/polymer-ui-menu-item.css create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-menu-item/polymer-ui-menu-item.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-menu/index.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-menu/polymer-ui-menu.css create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-menu/polymer-ui-menu.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-nav-arrow/index.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-nav-arrow/polymer-ui-nav-arrow.css create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-nav-arrow/polymer-ui-nav-arrow.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-ratings/index.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-ratings/polymer-ui-ratings.css create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-ratings/polymer-ui-ratings.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-ratings/star_blank.png create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-ratings/star_full.png create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-sidebar-menu/index.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-sidebar-menu/polymer-ui-sidebar-menu.css create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-sidebar-menu/polymer-ui-sidebar-menu.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-splitter/handle.png create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-splitter/handle_horiz.png create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-splitter/index.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-splitter/polymer-ui-splitter.css create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-splitter/polymer-ui-splitter.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-tabs/index.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-tabs/polymer-ui-tabs.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-theme-aware/polymer-ui-theme-aware.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-toggle-button/index.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-toggle-button/polymer-ui-toggle-button.css create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-toggle-button/polymer-ui-toggle-button.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-toolbar/index.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-toolbar/polymer-ui-toolbar.css create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-toolbar/polymer-ui-toolbar.html create mode 100644 examples/polymer/polymer-ui-elements/polymer-ui-toolbar/star.png create mode 100644 examples/polymer/toolkit-ui/elements/animation/all.html create mode 100644 examples/polymer/toolkit-ui/elements/animation/g-animation-group.html create mode 100644 examples/polymer/toolkit-ui/elements/animation/g-animation.html create mode 100644 examples/polymer/toolkit-ui/elements/animation/g-blink.html create mode 100644 examples/polymer/toolkit-ui/elements/animation/g-bounce.html create mode 100644 examples/polymer/toolkit-ui/elements/animation/g-fadein.html create mode 100644 examples/polymer/toolkit-ui/elements/animation/g-fadeout.html create mode 100644 examples/polymer/toolkit-ui/elements/animation/g-flip.html create mode 100644 examples/polymer/toolkit-ui/elements/animation/g-shake.html create mode 100644 examples/polymer/toolkit-ui/elements/animation/g-translate.html create mode 100644 examples/polymer/toolkit-ui/elements/css/g-flex-layout.css create mode 100644 examples/polymer/toolkit-ui/elements/css/g-menu-button.css create mode 100644 examples/polymer/toolkit-ui/elements/css/g-overlay-global.css create mode 100644 examples/polymer/toolkit-ui/elements/css/g-overlay.css create mode 100644 examples/polymer/toolkit-ui/elements/css/g-panels-controller.css create mode 100644 examples/polymer/toolkit-ui/elements/css/g-panels-global.css create mode 100644 examples/polymer/toolkit-ui/elements/css/g-panels.css create mode 100644 examples/polymer/toolkit-ui/elements/css/g-tabpanels-controller.css create mode 100644 examples/polymer/toolkit-ui/elements/css/g-togglebutton.css create mode 100644 examples/polymer/toolkit-ui/elements/g-ajax.html create mode 100644 examples/polymer/toolkit-ui/elements/g-app.html create mode 100644 examples/polymer/toolkit-ui/elements/g-checkbox.html create mode 100644 examples/polymer/toolkit-ui/elements/g-field.html create mode 100644 examples/polymer/toolkit-ui/elements/g-form.html create mode 100644 examples/polymer/toolkit-ui/elements/g-icon-button.html create mode 100644 examples/polymer/toolkit-ui/elements/g-icon.html create mode 100644 examples/polymer/toolkit-ui/elements/g-jsonp.html create mode 100644 examples/polymer/toolkit-ui/elements/g-menu-button.html create mode 100644 examples/polymer/toolkit-ui/elements/g-menu-item.html create mode 100644 examples/polymer/toolkit-ui/elements/g-menu.html create mode 100644 examples/polymer/toolkit-ui/elements/g-overlay-webanimations.html create mode 100644 examples/polymer/toolkit-ui/elements/g-overlay.html create mode 100644 examples/polymer/toolkit-ui/elements/g-panels.html create mode 100644 examples/polymer/toolkit-ui/elements/g-progress.html create mode 100644 examples/polymer/toolkit-ui/elements/g-radio.html create mode 100644 examples/polymer/toolkit-ui/elements/g-ratings.html create mode 100644 examples/polymer/toolkit-ui/elements/g-ribbon.html create mode 100644 examples/polymer/toolkit-ui/elements/g-select.html create mode 100644 examples/polymer/toolkit-ui/elements/g-selection.html create mode 100644 examples/polymer/toolkit-ui/elements/g-selector.html create mode 100644 examples/polymer/toolkit-ui/elements/g-sidebar.html create mode 100644 examples/polymer/toolkit-ui/elements/g-tabpanels.html create mode 100644 examples/polymer/toolkit-ui/elements/g-tabs.html create mode 100644 examples/polymer/toolkit-ui/elements/g-togglebutton.html create mode 100644 examples/polymer/toolkit-ui/elements/g-toolbar.html create mode 100644 examples/polymer/toolkit-ui/elements/g-xhr.html create mode 100644 examples/polymer/toolkit-ui/elements/images/btn_light.png create mode 100644 examples/polymer/toolkit-ui/elements/images/dark_check.png create mode 100644 examples/polymer/toolkit-ui/elements/images/light_check.png create mode 100644 examples/polymer/toolkit-ui/elements/images/ribbon_bg.png create mode 100644 examples/polymer/toolkit-ui/elements/images/star_blank.png create mode 100644 examples/polymer/toolkit-ui/elements/images/star_full.png create mode 100644 examples/polymer/toolkit-ui/elements/panel-transitions/g-flow-panel-transition.html create mode 100644 examples/polymer/toolkit-ui/elements/panel-transitions/g-keyframe-panel-transition.html create mode 100644 examples/polymer/toolkit-ui/elements/panel-transitions/g-panel-transition.html diff --git a/build/epub.js b/build/epub.js index be62fc3..7ca5101 100644 --- a/build/epub.js +++ b/build/epub.js @@ -1055,7 +1055,8 @@ EPUBJS.EpubCFI = function(cfiStr){ EPUBJS.EpubCFI.prototype.generateChapter = function(spineNodeIndex, pos, id) { - var spineNodeIndex = spineNodeIndex + 1, + var pos = parseInt(pos), + spineNodeIndex = spineNodeIndex + 1, cfi = '/'+spineNodeIndex+'/'; cfi += (pos + 1) * 2; @@ -1739,8 +1740,8 @@ EPUBJS.Renderer.prototype.setIframeSrc = function(url){ renderer.currentLocationCfi = renderer.getPageCfi(); - renderer.trigger("renderer:chapterDisplayed"); - renderer.book.trigger("renderer:chapterDisplayed"); + renderer.trigger("renderer:chapterDisplayed", renderer.currentChapter); + renderer.book.trigger("renderer:chapterDisplayed", renderer.currentChapter); renderer.visible(true); @@ -1795,7 +1796,7 @@ EPUBJS.Renderer.prototype.formatSpread = function(){ this.spreadWidth = (this.colWidth + this.gap) * divisor; - if(this.bodyEl) this.bodyEl.style.margin = 0; + // if(this.bodyEl) this.bodyEl.style.margin = 0; // this.bodyEl.style.fontSize = localStorage.getItem("fontSize") || "medium"; //-- Clear Margins diff --git a/build/epub.min.js b/build/epub.min.js index a6ae7e8..6d40c85 100644 --- a/build/epub.min.js +++ b/build/epub.min.js @@ -1,2 +1,2 @@ -!function(){var a=this,b=a._,c={},d=Array.prototype,e=Object.prototype,f=Function.prototype,g=d.push,h=d.slice,i=d.concat,j=e.toString,k=e.hasOwnProperty,l=d.forEach,m=d.map,n=d.reduce,o=d.reduceRight,p=d.filter,q=d.every,r=d.some,s=d.indexOf,t=d.lastIndexOf,u=Array.isArray,v=Object.keys,w=f.bind,x=function(a){return a instanceof x?a:this instanceof x?(this._wrapped=a,void 0):new x(a)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=x),exports._=x):a._=x,x.VERSION="1.4.4";var y=x.each=x.forEach=function(a,b,d){if(null!=a)if(l&&a.forEach===l)a.forEach(b,d);else if(a.length===+a.length){for(var e=0,f=a.length;f>e;e++)if(b.call(d,a[e],e,a)===c)return}else for(var g in a)if(x.has(a,g)&&b.call(d,a[g],g,a)===c)return};x.map=x.collect=function(a,b,c){var d=[];return null==a?d:m&&a.map===m?a.map(b,c):(y(a,function(a,e,f){d[d.length]=b.call(c,a,e,f)}),d)};var z="Reduce of empty array with no initial value";x.reduce=x.foldl=x.inject=function(a,b,c,d){var e=arguments.length>2;if(null==a&&(a=[]),n&&a.reduce===n)return d&&(b=x.bind(b,d)),e?a.reduce(b,c):a.reduce(b);if(y(a,function(a,f,g){e?c=b.call(d,c,a,f,g):(c=a,e=!0)}),!e)throw new TypeError(z);return c},x.reduceRight=x.foldr=function(a,b,c,d){var e=arguments.length>2;if(null==a&&(a=[]),o&&a.reduceRight===o)return d&&(b=x.bind(b,d)),e?a.reduceRight(b,c):a.reduceRight(b);var f=a.length;if(f!==+f){var g=x.keys(a);f=g.length}if(y(a,function(h,i,j){i=g?g[--f]:--f,e?c=b.call(d,c,a[i],i,j):(c=a[i],e=!0)}),!e)throw new TypeError(z);return c},x.find=x.detect=function(a,b,c){var d;return A(a,function(a,e,f){return b.call(c,a,e,f)?(d=a,!0):void 0}),d},x.filter=x.select=function(a,b,c){var d=[];return null==a?d:p&&a.filter===p?a.filter(b,c):(y(a,function(a,e,f){b.call(c,a,e,f)&&(d[d.length]=a)}),d)},x.reject=function(a,b,c){return x.filter(a,function(a,d,e){return!b.call(c,a,d,e)},c)},x.every=x.all=function(a,b,d){b||(b=x.identity);var e=!0;return null==a?e:q&&a.every===q?a.every(b,d):(y(a,function(a,f,g){return(e=e&&b.call(d,a,f,g))?void 0:c}),!!e)};var A=x.some=x.any=function(a,b,d){b||(b=x.identity);var e=!1;return null==a?e:r&&a.some===r?a.some(b,d):(y(a,function(a,f,g){return e||(e=b.call(d,a,f,g))?c:void 0}),!!e)};x.contains=x.include=function(a,b){return null==a?!1:s&&a.indexOf===s?-1!=a.indexOf(b):A(a,function(a){return a===b})},x.invoke=function(a,b){var c=h.call(arguments,2),d=x.isFunction(b);return x.map(a,function(a){return(d?b:a[b]).apply(a,c)})},x.pluck=function(a,b){return x.map(a,function(a){return a[b]})},x.where=function(a,b,c){return x.isEmpty(b)?c?null:[]:x[c?"find":"filter"](a,function(a){for(var c in b)if(b[c]!==a[c])return!1;return!0})},x.findWhere=function(a,b){return x.where(a,b,!0)},x.max=function(a,b,c){if(!b&&x.isArray(a)&&a[0]===+a[0]&&65535>a.length)return Math.max.apply(Math,a);if(!b&&x.isEmpty(a))return-1/0;var d={computed:-1/0,value:-1/0};return y(a,function(a,e,f){var g=b?b.call(c,a,e,f):a;g>=d.computed&&(d={value:a,computed:g})}),d.value},x.min=function(a,b,c){if(!b&&x.isArray(a)&&a[0]===+a[0]&&65535>a.length)return Math.min.apply(Math,a);if(!b&&x.isEmpty(a))return 1/0;var d={computed:1/0,value:1/0};return y(a,function(a,e,f){var g=b?b.call(c,a,e,f):a;d.computed>g&&(d={value:a,computed:g})}),d.value},x.shuffle=function(a){var b,c=0,d=[];return y(a,function(a){b=x.random(c++),d[c-1]=d[b],d[b]=a}),d};var B=function(a){return x.isFunction(a)?a:function(b){return b[a]}};x.sortBy=function(a,b,c){var d=B(b);return x.pluck(x.map(a,function(a,b,e){return{value:a,index:b,criteria:d.call(c,a,b,e)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;if(c!==d){if(c>d||void 0===c)return 1;if(d>c||void 0===d)return-1}return a.indexf;){var h=f+g>>>1;e>c.call(d,a[h])?f=h+1:g=h}return f},x.toArray=function(a){return a?x.isArray(a)?h.call(a):a.length===+a.length?x.map(a,x.identity):x.values(a):[]},x.size=function(a){return null==a?0:a.length===+a.length?a.length:x.keys(a).length},x.first=x.head=x.take=function(a,b,c){return null==a?void 0:null==b||c?a[0]:h.call(a,0,b)},x.initial=function(a,b,c){return h.call(a,0,a.length-(null==b||c?1:b))},x.last=function(a,b,c){return null==a?void 0:null==b||c?a[a.length-1]:h.call(a,Math.max(a.length-b,0))},x.rest=x.tail=x.drop=function(a,b,c){return h.call(a,null==b||c?1:b)},x.compact=function(a){return x.filter(a,x.identity)};var D=function(a,b,c){return y(a,function(a){x.isArray(a)?b?g.apply(c,a):D(a,b,c):c.push(a)}),c};x.flatten=function(a,b){return D(a,b,[])},x.without=function(a){return x.difference(a,h.call(arguments,1))},x.uniq=x.unique=function(a,b,c,d){x.isFunction(b)&&(d=c,c=b,b=!1);var e=c?x.map(a,c,d):a,f=[],g=[];return y(e,function(c,d){(b?d&&g[g.length-1]===c:x.contains(g,c))||(g.push(c),f.push(a[d]))}),f},x.union=function(){return x.uniq(i.apply(d,arguments))},x.intersection=function(a){var b=h.call(arguments,1);return x.filter(x.uniq(a),function(a){return x.every(b,function(b){return x.indexOf(b,a)>=0})})},x.difference=function(a){var b=i.apply(d,h.call(arguments,1));return x.filter(a,function(a){return!x.contains(b,a)})},x.zip=function(){for(var a=h.call(arguments),b=x.max(x.pluck(a,"length")),c=Array(b),d=0;b>d;d++)c[d]=x.pluck(a,""+d);return c},x.object=function(a,b){if(null==a)return{};for(var c={},d=0,e=a.length;e>d;d++)b?c[a[d]]=b[d]:c[a[d][0]]=a[d][1];return c},x.indexOf=function(a,b,c){if(null==a)return-1;var d=0,e=a.length;if(c){if("number"!=typeof c)return d=x.sortedIndex(a,b),a[d]===b?d:-1;d=0>c?Math.max(0,e+c):c}if(s&&a.indexOf===s)return a.indexOf(b,c);for(;e>d;d++)if(a[d]===b)return d;return-1},x.lastIndexOf=function(a,b,c){if(null==a)return-1;var d=null!=c;if(t&&a.lastIndexOf===t)return d?a.lastIndexOf(b,c):a.lastIndexOf(b);for(var e=d?c:a.length;e--;)if(a[e]===b)return e;return-1},x.range=function(a,b,c){1>=arguments.length&&(b=a||0,a=0),c=arguments[2]||1;for(var d=Math.max(Math.ceil((b-a)/c),0),e=0,f=Array(d);d>e;)f[e++]=a,a+=c;return f},x.bind=function(a,b){if(a.bind===w&&w)return w.apply(a,h.call(arguments,1));var c=h.call(arguments,2);return function(){return a.apply(b,c.concat(h.call(arguments)))}},x.partial=function(a){var b=h.call(arguments,1);return function(){return a.apply(this,b.concat(h.call(arguments)))}},x.bindAll=function(a){var b=h.call(arguments,1);return 0===b.length&&(b=x.functions(a)),y(b,function(b){a[b]=x.bind(a[b],a)}),a},x.memoize=function(a,b){var c={};return b||(b=x.identity),function(){var d=b.apply(this,arguments);return x.has(c,d)?c[d]:c[d]=a.apply(this,arguments)}},x.delay=function(a,b){var c=h.call(arguments,2);return setTimeout(function(){return a.apply(null,c)},b)},x.defer=function(a){return x.delay.apply(x,[a,1].concat(h.call(arguments,1)))},x.throttle=function(a,b){var c,d,e,f,g=0,h=function(){g=new Date,e=null,f=a.apply(c,d)};return function(){var i=new Date,j=b-(i-g);return c=this,d=arguments,0>=j?(clearTimeout(e),e=null,g=i,f=a.apply(c,d)):e||(e=setTimeout(h,j)),f}},x.debounce=function(a,b,c){var d,e;return function(){var f=this,g=arguments,h=function(){d=null,c||(e=a.apply(f,g))},i=c&&!d;return clearTimeout(d),d=setTimeout(h,b),i&&(e=a.apply(f,g)),e}},x.once=function(a){var b,c=!1;return function(){return c?b:(c=!0,b=a.apply(this,arguments),a=null,b)}},x.wrap=function(a,b){return function(){var c=[a];return g.apply(c,arguments),b.apply(this,c)}},x.compose=function(){var a=arguments;return function(){for(var b=arguments,c=a.length-1;c>=0;c--)b=[a[c].apply(this,b)];return b[0]}},x.after=function(a,b){return 0>=a?b():function(){return 1>--a?b.apply(this,arguments):void 0}},x.keys=v||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var b=[];for(var c in a)x.has(a,c)&&(b[b.length]=c);return b},x.values=function(a){var b=[];for(var c in a)x.has(a,c)&&b.push(a[c]);return b},x.pairs=function(a){var b=[];for(var c in a)x.has(a,c)&&b.push([c,a[c]]);return b},x.invert=function(a){var b={};for(var c in a)x.has(a,c)&&(b[a[c]]=c);return b},x.functions=x.methods=function(a){var b=[];for(var c in a)x.isFunction(a[c])&&b.push(c);return b.sort()},x.extend=function(a){return y(h.call(arguments,1),function(b){if(b)for(var c in b)a[c]=b[c]}),a},x.pick=function(a){var b={},c=i.apply(d,h.call(arguments,1));return y(c,function(c){c in a&&(b[c]=a[c])}),b},x.omit=function(a){var b={},c=i.apply(d,h.call(arguments,1));for(var e in a)x.contains(c,e)||(b[e]=a[e]);return b},x.defaults=function(a){return y(h.call(arguments,1),function(b){if(b)for(var c in b)null==a[c]&&(a[c]=b[c])}),a},x.clone=function(a){return x.isObject(a)?x.isArray(a)?a.slice():x.extend({},a):a},x.tap=function(a,b){return b(a),a};var E=function(a,b,c,d){if(a===b)return 0!==a||1/a==1/b;if(null==a||null==b)return a===b;a instanceof x&&(a=a._wrapped),b instanceof x&&(b=b._wrapped);var e=j.call(a);if(e!=j.call(b))return!1;switch(e){case"[object String]":return a==b+"";case"[object Number]":return a!=+a?b!=+b:0==a?1/a==1/b:a==+b;case"[object Date]":case"[object Boolean]":return+a==+b;case"[object RegExp]":return a.source==b.source&&a.global==b.global&&a.multiline==b.multiline&&a.ignoreCase==b.ignoreCase}if("object"!=typeof a||"object"!=typeof b)return!1;for(var f=c.length;f--;)if(c[f]==a)return d[f]==b;c.push(a),d.push(b);var g=0,h=!0;if("[object Array]"==e){if(g=a.length,h=g==b.length)for(;g--&&(h=E(a[g],b[g],c,d)););}else{var i=a.constructor,k=b.constructor;if(i!==k&&!(x.isFunction(i)&&i instanceof i&&x.isFunction(k)&&k instanceof k))return!1;for(var l in a)if(x.has(a,l)&&(g++,!(h=x.has(b,l)&&E(a[l],b[l],c,d))))break;if(h){for(l in b)if(x.has(b,l)&&!g--)break;h=!g}}return c.pop(),d.pop(),h};x.isEqual=function(a,b){return E(a,b,[],[])},x.isEmpty=function(a){if(null==a)return!0;if(x.isArray(a)||x.isString(a))return 0===a.length;for(var b in a)if(x.has(a,b))return!1;return!0},x.isElement=function(a){return!(!a||1!==a.nodeType)},x.isArray=u||function(a){return"[object Array]"==j.call(a)},x.isObject=function(a){return a===Object(a)},y(["Arguments","Function","String","Number","Date","RegExp"],function(a){x["is"+a]=function(b){return j.call(b)=="[object "+a+"]"}}),x.isArguments(arguments)||(x.isArguments=function(a){return!(!a||!x.has(a,"callee"))}),"function"!=typeof/./&&(x.isFunction=function(a){return"function"==typeof a}),x.isFinite=function(a){return isFinite(a)&&!isNaN(parseFloat(a))},x.isNaN=function(a){return x.isNumber(a)&&a!=+a},x.isBoolean=function(a){return a===!0||a===!1||"[object Boolean]"==j.call(a)},x.isNull=function(a){return null===a},x.isUndefined=function(a){return void 0===a},x.has=function(a,b){return k.call(a,b)},x.noConflict=function(){return a._=b,this},x.identity=function(a){return a},x.times=function(a,b,c){for(var d=Array(a),e=0;a>e;e++)d[e]=b.call(c,e);return d},x.random=function(a,b){return null==b&&(b=a,a=0),a+Math.floor(Math.random()*(b-a+1))};var F={escape:{"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"}};F.unescape=x.invert(F.escape);var G={escape:RegExp("["+x.keys(F.escape).join("")+"]","g"),unescape:RegExp("("+x.keys(F.unescape).join("|")+")","g")};x.each(["escape","unescape"],function(a){x[a]=function(b){return null==b?"":(""+b).replace(G[a],function(b){return F[a][b]})}}),x.result=function(a,b){if(null==a)return null;var c=a[b];return x.isFunction(c)?c.call(a):c},x.mixin=function(a){y(x.functions(a),function(b){var c=x[b]=a[b];x.prototype[b]=function(){var a=[this._wrapped];return g.apply(a,arguments),L.call(this,c.apply(x,a))}})};var H=0;x.uniqueId=function(a){var b=++H+"";return a?a+b:b},x.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var I=/(.)^/,J={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"},K=/\\|'|\r|\n|\t|\u2028|\u2029/g;x.template=function(a,b,c){var d;c=x.defaults({},c,x.templateSettings);var e=RegExp([(c.escape||I).source,(c.interpolate||I).source,(c.evaluate||I).source].join("|")+"|$","g"),f=0,g="__p+='";a.replace(e,function(b,c,d,e,h){return g+=a.slice(f,h).replace(K,function(a){return"\\"+J[a]}),c&&(g+="'+\n((__t=("+c+"))==null?'':_.escape(__t))+\n'"),d&&(g+="'+\n((__t=("+d+"))==null?'':__t)+\n'"),e&&(g+="';\n"+e+"\n__p+='"),f=h+b.length,b}),g+="';\n",c.variable||(g="with(obj||{}){\n"+g+"}\n"),g="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+g+"return __p;\n";try{d=Function(c.variable||"obj","_",g)}catch(h){throw h.source=g,h}if(b)return d(b,x);var i=function(a){return d.call(this,a,x)};return i.source="function("+(c.variable||"obj")+"){\n"+g+"}",i},x.chain=function(a){return x(a).chain()};var L=function(a){return this._chain?x(a).chain():a};x.mixin(x),y(["pop","push","reverse","shift","sort","splice","unshift"],function(a){var b=d[a];x.prototype[a]=function(){var c=this._wrapped;return b.apply(c,arguments),"shift"!=a&&"splice"!=a||0!==c.length||delete c[0],L.call(this,c)}}),y(["concat","join","slice"],function(a){var b=d[a];x.prototype[a]=function(){return L.call(this,b.apply(this._wrapped,arguments))}}),x.extend(x.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}})}.call(this),function(a){"use strict";function b(a,b){f.async(function(){a.trigger("promise:resolved",{detail:b}),a.isResolved=!0,a.resolvedValue=b})}function c(a,b){f.async(function(){a.trigger("promise:failed",{detail:b}),a.isRejected=!0,a.rejectedValue=b})}function d(a){var b,c=[],d=new p,e=a.length;0===e&&d.resolve([]);var f=function(a){return function(b){g(a,b)}},g=function(a,b){c[a]=b,0===--e&&d.resolve(c)},h=function(a){d.reject(a)};for(b=0;e>b;b++)a[b].then(f(b),h);return d}function e(a,b){f[a]=b}var f={},g="undefined"!=typeof window?window:{},h=g.MutationObserver||g.WebKitMutationObserver;if("undefined"!=typeof process&&"[object process]"==={}.toString.call(process))f.async=function(a,b){process.nextTick(function(){a.call(b)})};else if(h){var i=[],j=new h(function(){var a=i.slice();i=[],a.forEach(function(a){var b=a[0],c=a[1];b.call(c)})}),k=document.createElement("div");j.observe(k,{attributes:!0}),window.addEventListener("unload",function(){j.disconnect(),j=null}),f.async=function(a,b){i.push([a,b]),k.setAttribute("drainQueue","drainQueue")}}else f.async=function(a,b){setTimeout(function(){a.call(b)},1)};var l=function(a,b){this.type=a;for(var c in b)b.hasOwnProperty(c)&&(this[c]=b[c])},m=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c][0]===b)return c;return-1},n=function(a){var b=a._promiseCallbacks;return b||(b=a._promiseCallbacks={}),b},o={mixin:function(a){return a.on=this.on,a.off=this.off,a.trigger=this.trigger,a},on:function(a,b,c){var d,e,f=n(this);for(a=a.split(/\s+/),c=c||this;e=a.shift();)d=f[e],d||(d=f[e]=[]),-1===m(d,b)&&d.push([b,c])},off:function(a,b){var c,d,e,f=n(this);for(a=a.split(/\s+/);d=a.shift();)b?(c=f[d],e=m(c,b),-1!==e&&c.splice(e,1)):f[d]=[]},trigger:function(a,b){var c,d,e,f,g,h=n(this);if(c=h[a])for(var i=0,j=c.length;j>i;i++)d=c[i],e=d[0],f=d[1],"object"!=typeof b&&(b={detail:b}),g=new l(a,b),e.call(f,g)}},p=function(){this.on("promise:resolved",function(a){this.trigger("success",{detail:a.detail})},this),this.on("promise:failed",function(a){this.trigger("error",{detail:a.detail})},this)},q=function(){},r=function(a,b,c,d){var e,f,g,h,i="function"==typeof c;if(i)try{e=c(d.detail),g=!0}catch(j){h=!0,f=j}else e=d.detail,g=!0;e&&"function"==typeof e.then?e.then(function(a){b.resolve(a)},function(a){b.reject(a)}):i&&g?b.resolve(e):h?b.reject(f):b[a](e)};p.prototype={then:function(a,b){var c=new p;return this.isResolved&&f.async(function(){r("resolve",c,a,{detail:this.resolvedValue})},this),this.isRejected&&f.async(function(){r("reject",c,b,{detail:this.rejectedValue})},this),this.on("promise:resolved",function(b){r("resolve",c,a,b)}),this.on("promise:failed",function(a){r("reject",c,b,a)}),c},resolve:function(a){b(this,a),this.resolve=q,this.reject=q},reject:function(a){c(this,a),this.resolve=q,this.reject=q}},o.mixin(p.prototype),a.Promise=p,a.Event=l,a.EventTarget=o,a.all=d,a.configure=e}(window.RSVP={});var EPUBJS=EPUBJS||{};EPUBJS.VERSION="0.1.5",EPUBJS.plugins=EPUBJS.plugins||{},EPUBJS.filePath=EPUBJS.filePath||"/epubjs/",EPUBJS.Book=function(a,b){var c=this;this.settings=_.defaults(b||{},{storage:!1,fromStorage:!1,saved:!1,online:!0,contained:!1,width:!1,height:!1,spreads:!0,fixedLayout:!1,responsive:!0,version:1,restore:!1,reload:!1,styles:{}}),this.settings.EPUBJSVERSION=EPUBJS.VERSION,this.spinePos=0,this.stored=!1,this.hooks={beforeChapterDisplay:[]},this.getHooks(),this.online=this.settings.online||navigator.onLine,this.networkListeners(),0!=this.settings.storage&&(this.storage=new fileStorage.storage(this.settings.storage)),this.ready={manifest:new RSVP.Promise,spine:new RSVP.Promise,metadata:new RSVP.Promise,cover:new RSVP.Promise,toc:new RSVP.Promise},this.ready.all=RSVP.all(_.values(this.ready)),this.ready.all.then(function(){this.trigger("book:ready")}.bind(this)),a&&(this.opened=this.open(a)),window.addEventListener("beforeunload",function(){c.settings.restore&&(c.saveSettings(),c.saveContents()),c.trigger("book:unload")},!1)},EPUBJS.Book.prototype.open=function(a,b){var c,d=this,e=this.isSaved(a);return this.settings.bookPath=a,this.bookUrl=this.urlFrom(a),e&&!b&&this.applySavedSettings(),this.settings.contained||this.isContained(a)?(this.settings.contained=this.contained=!0,this.bookUrl="",c=this.unarchive(a).then(function(){return e&&d.settings.restore&&!b?d.restore():d.unpack()})):c=e&&this.settings.restore&&!b?this.restore():this.unpack(),this.online&&this.settings.storage&&!this.settings.contained&&(this.settings.stored||c.then(d.storeOffline())),c},EPUBJS.Book.prototype.unpack=function(a){var b=this,c=new EPUBJS.Parser,a=a||"META-INF/container.xml";return b.loadXml(b.bookUrl+a).then(function(a){return c.container(a)}).then(function(a){return b.settings.contentsPath=b.bookUrl+a.basePath,b.settings.packageUrl=b.bookUrl+a.packagePath,b.loadXml(b.settings.packageUrl)}).then(function(a){return c.package(a,b.settings.contentsPath)}).then(function(a){return b.contents=a,b.manifest=b.contents.manifest,b.spine=b.contents.spine,b.spineIndexByURL=b.contents.spineIndexByURL,b.metadata=b.contents.metadata,b.cover=b.contents.cover=b.settings.contentsPath+a.coverPath,b.spineNodeIndex=b.contents.spineNodeIndex=a.spineNodeIndex,b.ready.manifest.resolve(b.contents.manifest),b.ready.spine.resolve(b.contents.spine),b.ready.metadata.resolve(b.contents.metadata),b.ready.cover.resolve(b.contents.cover),b.settings.tocUrl=b.settings.contentsPath+a.tocPath,b.loadXml(b.settings.tocUrl)}).then(function(a){return c.toc(a)}).then(function(a){b.toc=b.contents.toc=a,b.ready.toc.resolve(b.contents.toc)}).then(null,function(a){console.error(a)})},EPUBJS.Book.prototype.getMetadata=function(){return this.ready.metadata},EPUBJS.Book.prototype.getToc=function(){return this.ready.toc},EPUBJS.Book.prototype.networkListeners=function(){var a=this;window.addEventListener("offline",function(){a.online=!1,a.trigger("book:offline")},!1),window.addEventListener("online",function(){a.online=!0,a.trigger("book:online")},!1)},EPUBJS.Book.prototype.loadXml=function(a){return this.settings.fromStorage?this.storage.getXml(a):this.settings.contained?this.zip.getXml(a):EPUBJS.core.request(a,"xml")},EPUBJS.Book.prototype.urlFrom=function(a){var b=-1!=a.search("://"),c="/"==a[0],d=window.location,e=d.origin||d.protocol+"//"+d.host;return b?a:!b&&c?e+a:b||c?void 0:e+EPUBJS.core.folder(d.pathname)+a},EPUBJS.Book.prototype.unarchive=function(a){return this.zip=new EPUBJS.Unarchiver,this.zip.openZip(a)},EPUBJS.Book.prototype.isContained=function(a){var b=a.lastIndexOf("."),c=a.slice(b+1);return!c||"epub"!=c&&"zip"!=c?!1:!0},EPUBJS.Book.prototype.isSaved=function(a){var b=a+":"+this.settings.version,c=localStorage.getItem(b);return localStorage&&null!==c?!0:!1},EPUBJS.Book.prototype.removeSavedSettings=function(){var a=this.settings.bookPath+":"+this.settings.version;localStorage.removeItem(a),this.settings.stored=!1},EPUBJS.Book.prototype.applySavedSettings=function(){var a=this.settings.bookPath+":"+this.settings.version;return stored=JSON.parse(localStorage.getItem(a)),EPUBJS.VERSION!=stored.EPUBJSVERSION?!1:(this.settings=_.defaults(this.settings,stored),void 0)},EPUBJS.Book.prototype.saveSettings=function(){var a=this.settings.bookPath+":"+this.settings.version;this.render&&(this.settings.previousLocationCfi=this.render.currentLocationCfi),localStorage.setItem(a,JSON.stringify(this.settings))},EPUBJS.Book.prototype.saveContents=function(){var a=this.settings.bookPath+":contents:"+this.settings.version;localStorage.setItem(a,JSON.stringify(this.contents))},EPUBJS.Book.prototype.removeSavedContents=function(){var a=this.settings.bookPath+":contents:"+this.settings.version;localStorage.removeItem(a)},EPUBJS.Book.prototype.renderTo=function(a){var b=this;if(_.isElement(a))this.element=a;else{if("string"!=typeof a)return console.error("Not an Element"),void 0;this.element=EPUBJS.core.getEl(a)}return this.opened.then(function(){return b.render=new EPUBJS.Renderer(b),b.startDisplay()})},EPUBJS.Book.prototype.startDisplay=function(){var a;return a=this.settings.restore&&this.settings.previousLocationCfi?this.displayChapter(this.settings.previousLocationCfi):this.displayChapter(this.spinePos)},EPUBJS.Book.prototype.restore=function(a){var b=this,c=this.settings.bookPath+":contents:"+this.settings.version,d=new RSVP.Promise,e=["manifest","spine","metadata","cover","toc","spineNodeIndex","spineIndexByURL"],a=a||!1,f=localStorage.getItem(c);return this.settings.clearSaved&&(a=!0),a||"undefined"==f||"null"==f||(this.contents=JSON.parse(f),e.forEach(function(c){b[c]=b.contents[c],b[c]||(a=!0)})),!a&&f&&this.contents&&this.settings.contentsPath?(this.ready.manifest.resolve(this.manifest),this.ready.spine.resolve(this.spine),this.ready.metadata.resolve(this.metadata),this.ready.cover.resolve(this.cover),this.ready.toc.resolve(this.toc),d.resolve(),d):this.open(this.settings.bookPath,!0)},EPUBJS.Book.prototype.displayChapter=function(a,b){var c,d,e,f=this;return _.isNumber(a)?e=a:(d=new EPUBJS.EpubCFI(a),e=d.spinePos),e>=this.spine.length?!1:0>e?!1:(this.spinePos=e,this.chapter=new EPUBJS.Chapter(this.spine[e]),c=f.render.chapter(this.chapter),d?c.then(function(b){b.currentLocationCfi=a,b.gotoCfiFragment(d)}):b&&c.then(function(a){a.gotoChapterEnd()}),this.settings.fromStorage||this.settings.contained||c.then(function(){f.preloadNextChapter()}),c)},EPUBJS.Book.prototype.nextPage=function(){var a=this.render.nextPage();return a?void 0:this.nextChapter()},EPUBJS.Book.prototype.prevPage=function(){var a=this.render.prevPage();return a?void 0:this.prevChapter()},EPUBJS.Book.prototype.nextChapter=function(){return this.spinePos++,this.displayChapter(this.spinePos)},EPUBJS.Book.prototype.prevChapter=function(){return this.spinePos--,this.displayChapter(this.spinePos,!0)},EPUBJS.Book.prototype.goto=function(a){var b,c=a.split("#"),d=c[0],e=c[1]||!1,f=-1==d.search("://")?this.settings.contentsPath+d:d,g=this.spineIndexByURL[f];return d||(g=this.chapter.spinePos),"number"!=typeof g?!1:g==this.chapter.spinePos&&this.chapter?(e&&this.render.section(e),(new RSVP.Promise).resolve(this.currentChapter)):this.displayChapter(g).then(function(){e&&b.render.section(e)})},EPUBJS.Book.prototype.preloadNextChapter=function(){return document.createElement("iframe"),this.spinePos>=this.spine.length?!1:(next=new EPUBJS.Chapter(this.spine[this.spinePos+1]),EPUBJS.core.request(next.href),void 0)},EPUBJS.Book.prototype.storeOffline=function(){var a=this,b=_.values(this.manifest);return EPUBJS.storage.batch(b).then(function(){a.settings.stored=!0,a.trigger("book:stored")})},EPUBJS.Book.prototype.availableOffline=function(){return this.settings.stored>0?!0:!1},EPUBJS.Book.prototype.setStyle=function(a,b,c){this.render.setStyle(a,b,c),this.settings.styles[a]=b},EPUBJS.Book.prototype.removeStyle=function(a){this.render.removeStyle(a),delete this.settings.styles[a]},EPUBJS.Book.prototype.getHooks=function(){var a,b=this;plugTypes=_.values(this.hooks);for(plugType in this.hooks)a=_.values(EPUBJS.Hooks[plugType]),a.forEach(function(a){b.registerHook(plugType,a)})},EPUBJS.Book.prototype.registerHook=function(a,b,c){var d=this;"undefined"!=typeof this.hooks[a]?"function"==typeof b?c?this.hooks[a].unshift(b):this.hooks[a].push(b):Array.isArray(b)&&b.forEach(function(b){c?d.hooks[a].unshift(b):d.hooks[a].push(b)}):this.hooks[a]=[func]},EPUBJS.Book.prototype.triggerHooks=function(a,b,c){function d(){f--,0>=f&&b&&b()}var e,f;return"undefined"==typeof this.hooks[a]?!1:(e=this.hooks[a],f=e.length,e.forEach(function(a){a(d,c)}),void 0)},RSVP.EventTarget.mixin(EPUBJS.Book.prototype),EPUBJS.Chapter=function(a){this.href=a.href,this.id=a.id,this.spinePos=a.index,this.properties=a.properties,this.linear=a.linear,this.pages=1},EPUBJS.Chapter.prototype.contents=function(a){return a?a.get(href):EPUBJS.core.request(href,"xml")},EPUBJS.Chapter.prototype.url=function(a){var b=new RSVP.Promise;return a?(this.tempUrl||(this.tempUrl=a.getUrl(this.href)),this.tempUrl):(b.resolve(this.href),b)},EPUBJS.Chapter.prototype.setPages=function(a){this.pages=a},EPUBJS.Chapter.prototype.getPages=function(){return this.pages},EPUBJS.Chapter.prototype.getID=function(){return this.ID},EPUBJS.Chapter.prototype.unload=function(a){this.tempUrl&&a&&(a.revokeUrl(this.tempUrl),this.tempUrl=!1)};var EPUBJS=EPUBJS||{};EPUBJS.core={},EPUBJS.core.getEl=function(a){return document.getElementById(a)},EPUBJS.core.getEls=function(a){return document.getElementsByClassName(a)},EPUBJS.core.request=function(a,b){function c(){if(this.readyState===this.DONE)if(200===this.status||this.responseXML){var a;a="xml"==b?this.responseXML:"json"==b?JSON.parse(this.response):this.response,d.resolve(a)}else d.reject(this)}var d=new RSVP.Promise,e=new XMLHttpRequest;return e.open("GET",a),e.onreadystatechange=c,"blob"==b&&(e.responseType=b),"json"==b&&e.setRequestHeader("Accept","application/json"),"xml"==b&&e.overrideMimeType("text/xml"),e.send(),d},EPUBJS.core.toArray=function(a){var b=[];for(member in a){var c;a.hasOwnProperty(member)&&(c=a[member],c.ident=member,b.push(c))}return b},EPUBJS.core.folder=function(a){var b=a.lastIndexOf("/"),c=a.slice(0,b+1);return-1==b&&(c=""),c},EPUBJS.core.dataURLToBlob=function(a){var b=";base64,";if(-1==a.indexOf(b)){var c=a.split(","),d=c[0].split(":")[1],e=c[1];return new Blob([e],{type:d})}for(var c=a.split(b),d=c[0].split(":")[1],e=window.atob(c[1]),f=e.length,g=new Uint8Array(f),h=0;f>h;++h)g[h]=e.charCodeAt(h);return new Blob([g],{type:d})},EPUBJS.core.addScript=function(a,b,c){var d,e;e=!1,d=document.createElement("script"),d.type="text/javascript",d.async=!1,d.src=a,d.onload=d.onreadystatechange=function(){e||this.readyState&&"complete"!=this.readyState||(e=!0,b&&b())},c=c||document.body,c.appendChild(d)},EPUBJS.core.addScripts=function(a,b,c){var d=a.length,e=0,f=function(){e++,d==e?b&&b():EPUBJS.core.loadScript(a[e],f,c)};EPUBJS.core.addScript(a[e],f,c)},EPUBJS.core.addCss=function(a,b,c){var d,e;e=!1,d=document.createElement("link"),d.type="text/css",d.rel="stylesheet",d.href=a,d.onload=d.onreadystatechange=function(){e||this.readyState&&"complete"!=this.readyState||(e=!0,b&&b())},c=c||document.body,c.appendChild(d)},EPUBJS.core.prefixed=function(a){var b=["Webkit","Moz","O","ms"],c=a[0].toUpperCase()+a.slice(1),d=b.length,e=0;if("undefined"!=typeof document.body.style[a])return a;for(;d>e;e++)if("undefined"!=typeof document.body.style[b[e]+c])return b[e]+c;return a},EPUBJS.core.resolveUrl=function(a,b){var c,d,e=[],f=a.split("/");return f.pop(),d=b.split("/"),d.forEach(function(a){".."===a?f.pop():e.push(a)}),c=f.concat(e),c.join("/")},EPUBJS.EpubCFI=function(a){return a?this.parse(a):void 0},EPUBJS.EpubCFI.prototype.generateChapter=function(a,b,c){var a=a+1,d="/"+a+"/";return d+=2*(b+1),c&&(d+="["+c+"]"),d+="!"},EPUBJS.EpubCFI.prototype.generateFragment=function(a,b){var c=this.pathTo(a),d=[];return b&&d.push(b),c.forEach(function(a){d.push(2*(a.index+1)),a.id&&"EPUBJS"!=a.id.slice(0,6)&&d.push("["+a.id+"]")}),d.join("/")},EPUBJS.EpubCFI.prototype.pathTo=function(a){for(var b,c=[];a&&null!==a.parentNode;)b=a.parentNode.children,c.unshift({id:a.id,tagName:a.tagName,index:b?Array.prototype.indexOf.call(b,a):0}),a=a.parentNode;return c},EPUBJS.EpubCFI.prototype.getChapter=function(a){var b=a.split("!");return b[0]},EPUBJS.EpubCFI.prototype.getFragment=function(a){var b=a.split("!");return b[1]},EPUBJS.EpubCFI.prototype.getOffset=function(a){var b=a.split(":");return[b[0],b[1]]},EPUBJS.EpubCFI.prototype.parse=function(a){var b,c,d,e,f={};return f.chapter=this.getChapter(a),f.fragment=this.getFragment(a),f.spinePos=parseInt(f.chapter.split("/")[2])/2-1||0,b=f.chapter.match(/\[(.*)\]/),f.spineId=b[1]||!1,c=f.fragment.split("/"),d=c[c.length-1],f.sections=[],parseInt(d)%2&&(e=this.getOffset(),f.text=parseInt(e[0]),f.character=parseInt(e[1]),c.pop()),c.forEach(function(a){var b,c,d;a&&(b=parseInt(a)/2-1,c=a.match(/\[(.*)\]/),c&&c[1]&&(d=c[1]),f.sections.push({index:b,id:d||!1}))}),f},EPUBJS.EpubCFI.prototype.getElement=function(a,b){var c,b=b||document,d=a.sections,e=b.getElementsByTagName("html")[0],f=Array.prototype.slice.call(e.children);for(d.shift();d.length>0;)c=d.shift(),c.id?e=b.querySelector("#"+c.id):(e=f[c.index],f||console.error("No Kids",e)),e||console.error("No Element For",c),f=Array.prototype.slice.call(e.children);return e},EPUBJS.Events=function(a,b){return this.events={},this.el=b?b:document.createElement("div"),a.createEvent=this.createEvent,a.tell=this.tell,a.listen=this.listen,a.deafen=this.deafen,a.listenUntil=this.listenUntil,this},EPUBJS.Events.prototype.createEvent=function(a){var b=new CustomEvent(a);return this.events[a]=b,b},EPUBJS.Events.prototype.tell=function(a,b){var c;this.events[a]?c=this.events[a]:(console.warn("No event:",a,"defined yet, creating."),c=this.createEvent(a)),b&&(c.msg=b),this.el.dispatchEvent(c)},EPUBJS.Events.prototype.listen=function(a,b,c){return this.events[a]?(c?this.el.addEventListener(a,b.bind(c),!1):this.el.addEventListener(a,b,!1),void 0):(console.warn("No event:",a,"defined yet, creating."),this.createEvent(a),void 0)},EPUBJS.Events.prototype.deafen=function(a,b){this.el.removeEventListener(a,b,!1)},EPUBJS.Events.prototype.listenUntil=function(a,b,c,d){function e(){this.deafen(a,c),this.deafen(b,e)}this.listen(a,c,d),this.listen(b,e,this)},EPUBJS.Hooks=function(){"use strict";return{register:function(a){if(void 0===this[a]&&(this[a]={}),"object"!=typeof this[a])throw"Already registered: "+a;return this[a]}}}(),EPUBJS.Parser=function(a){this.baseUrl=a||""},EPUBJS.Parser.prototype.container=function(a){var b=a.querySelector("rootfile"),c=b.getAttribute("full-path"),d=EPUBJS.core.folder(c);return{packagePath:c,basePath:d}},EPUBJS.Parser.prototype.package=function(a,b){var c=this;b&&(this.baseUrl=b);var d=a.querySelector("metadata"),e=a.querySelector("manifest"),f=a.querySelector("spine"),g=c.manifest(e),h=c.findTocPath(e),i=c.findCoverPath(e),j=Array.prototype.indexOf.call(f.parentNode.childNodes,f),k=c.spine(f,g),l={};return k.forEach(function(a){l[a.href]=a.index}),{metadata:c.metadata(d),spine:k,manifest:g,tocPath:h,coverPath:i,spineNodeIndex:j,spineIndexByURL:l}},EPUBJS.Parser.prototype.findTocPath=function(a){var b=a.querySelector("item[media-type='application/x-dtbncx+xml']");return b?b.getAttribute("href"):!1},EPUBJS.Parser.prototype.findCoverPath=function(a){var b=a.querySelector("item[properties='cover-image']");return b?b.getAttribute("href"):!1},EPUBJS.Parser.prototype.metadata=function(a){var b={},c=this;return b.bookTitle=c.getElementText(a,"title"),b.creator=c.getElementText(a,"creator"),b.description=c.getElementText(a,"description"),b.pubdate=c.getElementText(a,"date"),b.publisher=c.getElementText(a,"publisher"),b.identifier=c.getElementText(a,"identifier"),b.language=c.getElementText(a,"language"),b.rights=c.getElementText(a,"rights"),b.modified_date=c.querySelectorText(a,"meta[property='dcterms:modified']"),b.layout=c.querySelectorText(a,"meta[property='rendition:orientation']"),b.orientation=c.querySelectorText(a,"meta[property='rendition:orientation']"),b.spread=c.querySelectorText(a,"meta[property='rendition:spread']"),b -},EPUBJS.Parser.prototype.getElementText=function(a,b){var c,d=a.getElementsByTagNameNS("http://purl.org/dc/elements/1.1/",b);return d&&0!=d.length?(c=d[0],c.childNodes.length?c.childNodes[0].nodeValue:""):""},EPUBJS.Parser.prototype.querySelectorText=function(a,b){var c=a.querySelector(b);return c&&c.childNodes.length?c.childNodes[0].nodeValue:""},EPUBJS.Parser.prototype.manifest=function(a){var b=this.baseUrl,c={},d=a.querySelectorAll("item"),e=Array.prototype.slice.call(d);return e.forEach(function(a){var d=a.getAttribute("id"),e=a.getAttribute("href")||"",f=a.getAttribute("media-type")||"";c[d]={href:b+e,type:f}}),c},EPUBJS.Parser.prototype.spine=function(a,b){var c=[],d=a.getElementsByTagName("itemref"),e=Array.prototype.slice.call(d);return e.forEach(function(a,d){var e=a.getAttribute("idref"),f={id:e,linear:a.getAttribute("linear")||"",properties:a.getAttribute("properties")||"",href:b[e].href,index:d};c.push(f)}),c},EPUBJS.Parser.prototype.toc=function(a){function b(a){var c,d=[],e=[],f=a.childNodes,g=Array.prototype.slice.call(f),h=g.length,i=h;if(0==h)return!1;for(;i--;)c=g[i],"navPoint"===c.nodeName&&e.push(c);return e.forEach(function(a){var c=a.getAttribute("id"),e=a.querySelector("content"),f=e.getAttribute("src"),g=(f.split("#"),a.querySelector("navLabel")),h=g.textContent?g.textContent:"",i=b(a);d.unshift({id:c,href:f,label:h,subitems:i})}),d}var c=a.querySelector("navMap");return b(c)},EPUBJS.Renderer=function(a){this.el=a.element,this.book=a,this.settings=a.settings,a.registerHook("beforeChapterDisplay",[this.replaceLinks.bind(this),this.replaceResources.bind(this),this.replaceHead.bind(this)],!0),this.crossBrowserColumnCss(),this.epubcfi=new EPUBJS.EpubCFI,this.initialize(),this.listeners()},EPUBJS.Renderer.prototype.initialize=function(){this.iframe=document.createElement("iframe"),this.settings.width||this.settings.height?this.resizeIframe(!1,this.settings.width||this.el.clientWidth,this.settings.height||this.el.clientHeight):(this.resizeIframe(!1,this.el.clientWidth,this.el.clientHeight),this.on("renderer:resized",this.resizeIframe,this)),this.el.appendChild(this.iframe)},EPUBJS.Renderer.prototype.listeners=function(){this.resized=_.debounce(this.onResized.bind(this),10),window.addEventListener("resize",this.resized,!1)},EPUBJS.Renderer.prototype.chapter=function(a){var b=this,c=!1;return this.book.settings.contained&&(c=this.book.zip),this.currentChapter&&(this.currentChapter.unload(),this.trigger("renderer:chapterUnloaded"),this.book.trigger("renderer:chapterUnloaded")),this.currentChapter=a,this.chapterPos=1,this.pageIds={},this.leftPos=0,this.currentChapterCfi=this.epubcfi.generateChapter(this.book.spineNodeIndex,a.spinePos,a.id),this.visibileEl=!1,a.url(c).then(function(a){return b.setIframeSrc(a)})},EPUBJS.Renderer.prototype.onResized=function(){var a={width:this.el.clientWidth,height:this.el.clientHeight};this.trigger("renderer:resized",a),this.book.trigger("book:resized",a),this.reformat()},EPUBJS.Renderer.prototype.reformat=function(){var a=this;a.book.settings.fixedLayout?a.fixedLayout():a.formatSpread(),setTimeout(function(){a.calcPages(),a.currentLocationCfi&&a.gotoCfiFragment(a.currentLocationCfi)},10)},EPUBJS.Renderer.prototype.destroy=function(){window.removeEventListener("resize",this.resized,!1)},EPUBJS.Renderer.prototype.resizeIframe=function(a,b,c){var d,e;a?(d=a.width,e=a.height):(d=b,e=c),this.iframe.height=e,0!=d%2&&(d+=1),this.iframe.width=d},EPUBJS.Renderer.prototype.crossBrowserColumnCss=function(){EPUBJS.Renderer.columnAxis=EPUBJS.core.prefixed("columnAxis"),EPUBJS.Renderer.columnGap=EPUBJS.core.prefixed("columnGap"),EPUBJS.Renderer.columnWidth=EPUBJS.core.prefixed("columnWidth"),EPUBJS.Renderer.transform=EPUBJS.core.prefixed("transform")},EPUBJS.Renderer.prototype.setIframeSrc=function(a){var b=this,c=new RSVP.Promise;return this.visible(!1),this.iframe.src=a,this.iframe.onload=function(){b.doc=b.iframe.contentDocument,b.docEl=b.doc.documentElement,b.bodyEl=b.doc.body,b.applyStyles(),b.book.settings.fixedLayout?b.fixedLayout():b.formatSpread(),b.beforeDisplay(function(){b.calcPages(),c.resolve(b),b.currentLocationCfi=b.getPageCfi(),b.trigger("renderer:chapterDisplayed"),b.book.trigger("renderer:chapterDisplayed"),b.visible(!0)})},c},EPUBJS.Renderer.prototype.formatSpread=function(){var a=2,b=800;this.colWidth&&(this.OldcolWidth=this.colWidth,this.OldspreadWidth=this.spreadWidth),this.elWidth=this.iframe.width,this.gap=this.gap||Math.ceil(this.elWidth/8),this.elWidth1?(this.chapterPos--,this.leftPos-=this.spreadWidth,this.setLeft(this.leftPos),this.currentLocationCfi=this.getPageCfi(),this.book.trigger("book:pageChanged",this.currentLocationCfi),this.chapterPos):!1},EPUBJS.Renderer.prototype.chapterEnd=function(){this.page(this.displayedPages),this.currentLocationCfi=this.getPageCfi()},EPUBJS.Renderer.prototype.setLeft=function(a){this.doc.defaultView.scrollTo(a,0)},EPUBJS.Renderer.prototype.replace=function(a,b,c){var d,e,f;d=this.doc.querySelectorAll(a),e=Array.prototype.slice.call(d),f=e.length,e.forEach(function(a){b(a,function(){f--,0>=f&&c&&c()})}.bind(this)),0===f&&c()},EPUBJS.Renderer.prototype.determineStore=function(){return this.book.fromStorage?"filesystem"==this.book.storage.getStorageType()?!1:this.book.store:this.book.contained?this.book.zip:!1},EPUBJS.Renderer.prototype.replaceHead=function(a){var b,c,d,e,f={},g=this,h=this.determineStore(),i=function(a,b){a.setAttribute("href",b),a.onload=function(){d--,0>=d&&j()}},j=function(){a&&a(),_.each(e,function(a){h.revokeUrl(a)}),g.urlCache=f};return h?(b=this.doc.head.querySelectorAll("[href]"),c=Array.prototype.slice.call(b),d=c.length,this.urlCache||(this.urlCache={}),e=_.clone(this.urlCache),c.forEach(function(a){var b=a.getAttribute("href"),c=this.book.settings.contentsPath+b;c in e?(i(a,e[c]),f[c]=e[c],delete e[c]):"stylesheet"===a.getAttribute("rel")?h.getText(c).then(function(b){g.replaceUrlsInCss(c,b).then(function(b){var d=window.URL||window.webkitURL||window.mozURL,e=new Blob([b],{type:"text/css"}),g=d.createObjectURL(e);i(a,g),f[c]=g},function(a){console.error(a)})}):h.getUrl(c).then(function(b){i(a,b),f[c]=b})}.bind(this)),0===d&&j(),void 0):(a&&a(),!1)},EPUBJS.Renderer.prototype.replaceUrlsInCss=function(a,b){var c=new RSVP.Promise,d=[],e=this.determineStore(),f=b.match(/url\(\'?\"?([^\'|^\"]*)\'?\"?\)/g);return f?(f.forEach(function(c){var f=EPUBJS.core.resolveUrl(a,c.replace(/url\(|[|\)|\'|\"]/g,""));replaced=e.getUrl(f).then(function(a){b=b.replace(c,'url("'+a+'")')},function(a){console.error(a)}),d.push(replaced)}),RSVP.all(d).then(function(){c.resolve(b)}),c):(c.resolve(b),c)},EPUBJS.Renderer.prototype.replaceLinks=function(a){var b=this.doc.querySelectorAll("a"),c=Array.prototype.slice.call(b),d=this;c.forEach(function(a){var b,c,e=a.getAttribute("href");e&&(b=e.search("://"),c="#"==e[0],-1!=b?a.setAttribute("target","_blank"):a.onclick=function(){return d.book.goto(e),!1})}),a&&a()},EPUBJS.Renderer.prototype.replaceResources=function(a){var b,c,d,e=this.determineStore();return e?(b=this.doc.querySelectorAll("[src]"),c=Array.prototype.slice.call(b),d=c.length,c.forEach(function(b){var c=b.getAttribute("src"),f=this.book.settings.contentsPath+c;e.getUrl(f).then(function(c){b.src=c,b.onload=function(){d--,0>=d&&a&&a()}})}.bind(this)),0===d&&a(),void 0):(a&&a(),!1)},EPUBJS.Renderer.prototype.page=function(a){return a>=1&&a<=this.displayedPages?(this.chapterPos=a,this.leftPos=this.spreadWidth*(a-1),this.setLeft(this.leftPos),!0):!1},EPUBJS.Renderer.prototype.section=function(a){var b=this.doc.getElementById(a);b&&this.pageByElement(b)},EPUBJS.Renderer.prototype.pageByElement=function(a){var b,c;a&&(b=this.leftPos+a.getBoundingClientRect().left,c=Math.floor(b/this.spreadWidth)+1,this.page(c))},EPUBJS.Renderer.prototype.beforeDisplay=function(a){this.book.triggerHooks("beforeChapterDisplay",a.bind(this),this)},EPUBJS.Renderer.prototype.walk=function(a){for(var b,a,c,d,e,f=a,g=[f],h=1e4,i=0;!b&&g.length;){if(a=g.shift(),this.isElementVisible(a)&&(b=a),!b&&a&&a.childElementCount>0){c=a.children,d=c.length;for(var j=0;d>j;j++)c[j]!=e&&g.push(c[j])}if(!b&&0==g.length&&f&&null!==f.parentNode&&(g.push(f.parentNode),e=f,f=f.parentNode),i++,i>h){console.error("ENDLESS LOOP");break}}return b},EPUBJS.Renderer.prototype.getPageCfi=function(){var a=this.visibileEl;return this.visibileEl=this.findFirstVisible(a),this.visibileEl.id||(this.visibileEl.id="EPUBJS-PAGE-"+this.chapterPos),this.pageIds[this.chapterPos]=this.visibileEl.id,this.epubcfi.generateFragment(this.visibileEl,this.currentChapterCfi)},EPUBJS.Renderer.prototype.gotoCfiFragment=function(a){var b;_.isString(a)&&(a=this.epubcfi.parse(a)),b=this.epubcfi.getElement(a,this.doc),this.pageByElement(b)},EPUBJS.Renderer.prototype.findFirstVisible=function(a){var b,c=a||this.bodyEl;return b=this.walk(c),b?b:a},EPUBJS.Renderer.prototype.isElementVisible=function(a){var b;return a&&"function"==typeof a.getBoundingClientRect&&(b=a.getBoundingClientRect().left,b>=0&&be;e++)if(b.call(d,a[e],e,a)===c)return}else for(var g in a)if(x.has(a,g)&&b.call(d,a[g],g,a)===c)return};x.map=x.collect=function(a,b,c){var d=[];return null==a?d:m&&a.map===m?a.map(b,c):(y(a,function(a,e,f){d[d.length]=b.call(c,a,e,f)}),d)};var z="Reduce of empty array with no initial value";x.reduce=x.foldl=x.inject=function(a,b,c,d){var e=arguments.length>2;if(null==a&&(a=[]),n&&a.reduce===n)return d&&(b=x.bind(b,d)),e?a.reduce(b,c):a.reduce(b);if(y(a,function(a,f,g){e?c=b.call(d,c,a,f,g):(c=a,e=!0)}),!e)throw new TypeError(z);return c},x.reduceRight=x.foldr=function(a,b,c,d){var e=arguments.length>2;if(null==a&&(a=[]),o&&a.reduceRight===o)return d&&(b=x.bind(b,d)),e?a.reduceRight(b,c):a.reduceRight(b);var f=a.length;if(f!==+f){var g=x.keys(a);f=g.length}if(y(a,function(h,i,j){i=g?g[--f]:--f,e?c=b.call(d,c,a[i],i,j):(c=a[i],e=!0)}),!e)throw new TypeError(z);return c},x.find=x.detect=function(a,b,c){var d;return A(a,function(a,e,f){return b.call(c,a,e,f)?(d=a,!0):void 0}),d},x.filter=x.select=function(a,b,c){var d=[];return null==a?d:p&&a.filter===p?a.filter(b,c):(y(a,function(a,e,f){b.call(c,a,e,f)&&(d[d.length]=a)}),d)},x.reject=function(a,b,c){return x.filter(a,function(a,d,e){return!b.call(c,a,d,e)},c)},x.every=x.all=function(a,b,d){b||(b=x.identity);var e=!0;return null==a?e:q&&a.every===q?a.every(b,d):(y(a,function(a,f,g){return(e=e&&b.call(d,a,f,g))?void 0:c}),!!e)};var A=x.some=x.any=function(a,b,d){b||(b=x.identity);var e=!1;return null==a?e:r&&a.some===r?a.some(b,d):(y(a,function(a,f,g){return e||(e=b.call(d,a,f,g))?c:void 0}),!!e)};x.contains=x.include=function(a,b){return null==a?!1:s&&a.indexOf===s?-1!=a.indexOf(b):A(a,function(a){return a===b})},x.invoke=function(a,b){var c=h.call(arguments,2),d=x.isFunction(b);return x.map(a,function(a){return(d?b:a[b]).apply(a,c)})},x.pluck=function(a,b){return x.map(a,function(a){return a[b]})},x.where=function(a,b,c){return x.isEmpty(b)?c?null:[]:x[c?"find":"filter"](a,function(a){for(var c in b)if(b[c]!==a[c])return!1;return!0})},x.findWhere=function(a,b){return x.where(a,b,!0)},x.max=function(a,b,c){if(!b&&x.isArray(a)&&a[0]===+a[0]&&65535>a.length)return Math.max.apply(Math,a);if(!b&&x.isEmpty(a))return-1/0;var d={computed:-1/0,value:-1/0};return y(a,function(a,e,f){var g=b?b.call(c,a,e,f):a;g>=d.computed&&(d={value:a,computed:g})}),d.value},x.min=function(a,b,c){if(!b&&x.isArray(a)&&a[0]===+a[0]&&65535>a.length)return Math.min.apply(Math,a);if(!b&&x.isEmpty(a))return 1/0;var d={computed:1/0,value:1/0};return y(a,function(a,e,f){var g=b?b.call(c,a,e,f):a;d.computed>g&&(d={value:a,computed:g})}),d.value},x.shuffle=function(a){var b,c=0,d=[];return y(a,function(a){b=x.random(c++),d[c-1]=d[b],d[b]=a}),d};var B=function(a){return x.isFunction(a)?a:function(b){return b[a]}};x.sortBy=function(a,b,c){var d=B(b);return x.pluck(x.map(a,function(a,b,e){return{value:a,index:b,criteria:d.call(c,a,b,e)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;if(c!==d){if(c>d||void 0===c)return 1;if(d>c||void 0===d)return-1}return a.indexf;){var h=f+g>>>1;e>c.call(d,a[h])?f=h+1:g=h}return f},x.toArray=function(a){return a?x.isArray(a)?h.call(a):a.length===+a.length?x.map(a,x.identity):x.values(a):[]},x.size=function(a){return null==a?0:a.length===+a.length?a.length:x.keys(a).length},x.first=x.head=x.take=function(a,b,c){return null==a?void 0:null==b||c?a[0]:h.call(a,0,b)},x.initial=function(a,b,c){return h.call(a,0,a.length-(null==b||c?1:b))},x.last=function(a,b,c){return null==a?void 0:null==b||c?a[a.length-1]:h.call(a,Math.max(a.length-b,0))},x.rest=x.tail=x.drop=function(a,b,c){return h.call(a,null==b||c?1:b)},x.compact=function(a){return x.filter(a,x.identity)};var D=function(a,b,c){return y(a,function(a){x.isArray(a)?b?g.apply(c,a):D(a,b,c):c.push(a)}),c};x.flatten=function(a,b){return D(a,b,[])},x.without=function(a){return x.difference(a,h.call(arguments,1))},x.uniq=x.unique=function(a,b,c,d){x.isFunction(b)&&(d=c,c=b,b=!1);var e=c?x.map(a,c,d):a,f=[],g=[];return y(e,function(c,d){(b?d&&g[g.length-1]===c:x.contains(g,c))||(g.push(c),f.push(a[d]))}),f},x.union=function(){return x.uniq(i.apply(d,arguments))},x.intersection=function(a){var b=h.call(arguments,1);return x.filter(x.uniq(a),function(a){return x.every(b,function(b){return x.indexOf(b,a)>=0})})},x.difference=function(a){var b=i.apply(d,h.call(arguments,1));return x.filter(a,function(a){return!x.contains(b,a)})},x.zip=function(){for(var a=h.call(arguments),b=x.max(x.pluck(a,"length")),c=Array(b),d=0;b>d;d++)c[d]=x.pluck(a,""+d);return c},x.object=function(a,b){if(null==a)return{};for(var c={},d=0,e=a.length;e>d;d++)b?c[a[d]]=b[d]:c[a[d][0]]=a[d][1];return c},x.indexOf=function(a,b,c){if(null==a)return-1;var d=0,e=a.length;if(c){if("number"!=typeof c)return d=x.sortedIndex(a,b),a[d]===b?d:-1;d=0>c?Math.max(0,e+c):c}if(s&&a.indexOf===s)return a.indexOf(b,c);for(;e>d;d++)if(a[d]===b)return d;return-1},x.lastIndexOf=function(a,b,c){if(null==a)return-1;var d=null!=c;if(t&&a.lastIndexOf===t)return d?a.lastIndexOf(b,c):a.lastIndexOf(b);for(var e=d?c:a.length;e--;)if(a[e]===b)return e;return-1},x.range=function(a,b,c){1>=arguments.length&&(b=a||0,a=0),c=arguments[2]||1;for(var d=Math.max(Math.ceil((b-a)/c),0),e=0,f=Array(d);d>e;)f[e++]=a,a+=c;return f},x.bind=function(a,b){if(a.bind===w&&w)return w.apply(a,h.call(arguments,1));var c=h.call(arguments,2);return function(){return a.apply(b,c.concat(h.call(arguments)))}},x.partial=function(a){var b=h.call(arguments,1);return function(){return a.apply(this,b.concat(h.call(arguments)))}},x.bindAll=function(a){var b=h.call(arguments,1);return 0===b.length&&(b=x.functions(a)),y(b,function(b){a[b]=x.bind(a[b],a)}),a},x.memoize=function(a,b){var c={};return b||(b=x.identity),function(){var d=b.apply(this,arguments);return x.has(c,d)?c[d]:c[d]=a.apply(this,arguments)}},x.delay=function(a,b){var c=h.call(arguments,2);return setTimeout(function(){return a.apply(null,c)},b)},x.defer=function(a){return x.delay.apply(x,[a,1].concat(h.call(arguments,1)))},x.throttle=function(a,b){var c,d,e,f,g=0,h=function(){g=new Date,e=null,f=a.apply(c,d)};return function(){var i=new Date,j=b-(i-g);return c=this,d=arguments,0>=j?(clearTimeout(e),e=null,g=i,f=a.apply(c,d)):e||(e=setTimeout(h,j)),f}},x.debounce=function(a,b,c){var d,e;return function(){var f=this,g=arguments,h=function(){d=null,c||(e=a.apply(f,g))},i=c&&!d;return clearTimeout(d),d=setTimeout(h,b),i&&(e=a.apply(f,g)),e}},x.once=function(a){var b,c=!1;return function(){return c?b:(c=!0,b=a.apply(this,arguments),a=null,b)}},x.wrap=function(a,b){return function(){var c=[a];return g.apply(c,arguments),b.apply(this,c)}},x.compose=function(){var a=arguments;return function(){for(var b=arguments,c=a.length-1;c>=0;c--)b=[a[c].apply(this,b)];return b[0]}},x.after=function(a,b){return 0>=a?b():function(){return 1>--a?b.apply(this,arguments):void 0}},x.keys=v||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var b=[];for(var c in a)x.has(a,c)&&(b[b.length]=c);return b},x.values=function(a){var b=[];for(var c in a)x.has(a,c)&&b.push(a[c]);return b},x.pairs=function(a){var b=[];for(var c in a)x.has(a,c)&&b.push([c,a[c]]);return b},x.invert=function(a){var b={};for(var c in a)x.has(a,c)&&(b[a[c]]=c);return b},x.functions=x.methods=function(a){var b=[];for(var c in a)x.isFunction(a[c])&&b.push(c);return b.sort()},x.extend=function(a){return y(h.call(arguments,1),function(b){if(b)for(var c in b)a[c]=b[c]}),a},x.pick=function(a){var b={},c=i.apply(d,h.call(arguments,1));return y(c,function(c){c in a&&(b[c]=a[c])}),b},x.omit=function(a){var b={},c=i.apply(d,h.call(arguments,1));for(var e in a)x.contains(c,e)||(b[e]=a[e]);return b},x.defaults=function(a){return y(h.call(arguments,1),function(b){if(b)for(var c in b)null==a[c]&&(a[c]=b[c])}),a},x.clone=function(a){return x.isObject(a)?x.isArray(a)?a.slice():x.extend({},a):a},x.tap=function(a,b){return b(a),a};var E=function(a,b,c,d){if(a===b)return 0!==a||1/a==1/b;if(null==a||null==b)return a===b;a instanceof x&&(a=a._wrapped),b instanceof x&&(b=b._wrapped);var e=j.call(a);if(e!=j.call(b))return!1;switch(e){case"[object String]":return a==b+"";case"[object Number]":return a!=+a?b!=+b:0==a?1/a==1/b:a==+b;case"[object Date]":case"[object Boolean]":return+a==+b;case"[object RegExp]":return a.source==b.source&&a.global==b.global&&a.multiline==b.multiline&&a.ignoreCase==b.ignoreCase}if("object"!=typeof a||"object"!=typeof b)return!1;for(var f=c.length;f--;)if(c[f]==a)return d[f]==b;c.push(a),d.push(b);var g=0,h=!0;if("[object Array]"==e){if(g=a.length,h=g==b.length)for(;g--&&(h=E(a[g],b[g],c,d)););}else{var i=a.constructor,k=b.constructor;if(i!==k&&!(x.isFunction(i)&&i instanceof i&&x.isFunction(k)&&k instanceof k))return!1;for(var l in a)if(x.has(a,l)&&(g++,!(h=x.has(b,l)&&E(a[l],b[l],c,d))))break;if(h){for(l in b)if(x.has(b,l)&&!g--)break;h=!g}}return c.pop(),d.pop(),h};x.isEqual=function(a,b){return E(a,b,[],[])},x.isEmpty=function(a){if(null==a)return!0;if(x.isArray(a)||x.isString(a))return 0===a.length;for(var b in a)if(x.has(a,b))return!1;return!0},x.isElement=function(a){return!(!a||1!==a.nodeType)},x.isArray=u||function(a){return"[object Array]"==j.call(a)},x.isObject=function(a){return a===Object(a)},y(["Arguments","Function","String","Number","Date","RegExp"],function(a){x["is"+a]=function(b){return j.call(b)=="[object "+a+"]"}}),x.isArguments(arguments)||(x.isArguments=function(a){return!(!a||!x.has(a,"callee"))}),"function"!=typeof/./&&(x.isFunction=function(a){return"function"==typeof a}),x.isFinite=function(a){return isFinite(a)&&!isNaN(parseFloat(a))},x.isNaN=function(a){return x.isNumber(a)&&a!=+a},x.isBoolean=function(a){return a===!0||a===!1||"[object Boolean]"==j.call(a)},x.isNull=function(a){return null===a},x.isUndefined=function(a){return void 0===a},x.has=function(a,b){return k.call(a,b)},x.noConflict=function(){return a._=b,this},x.identity=function(a){return a},x.times=function(a,b,c){for(var d=Array(a),e=0;a>e;e++)d[e]=b.call(c,e);return d},x.random=function(a,b){return null==b&&(b=a,a=0),a+Math.floor(Math.random()*(b-a+1))};var F={escape:{"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"}};F.unescape=x.invert(F.escape);var G={escape:RegExp("["+x.keys(F.escape).join("")+"]","g"),unescape:RegExp("("+x.keys(F.unescape).join("|")+")","g")};x.each(["escape","unescape"],function(a){x[a]=function(b){return null==b?"":(""+b).replace(G[a],function(b){return F[a][b]})}}),x.result=function(a,b){if(null==a)return null;var c=a[b];return x.isFunction(c)?c.call(a):c},x.mixin=function(a){y(x.functions(a),function(b){var c=x[b]=a[b];x.prototype[b]=function(){var a=[this._wrapped];return g.apply(a,arguments),L.call(this,c.apply(x,a))}})};var H=0;x.uniqueId=function(a){var b=++H+"";return a?a+b:b},x.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var I=/(.)^/,J={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"},K=/\\|'|\r|\n|\t|\u2028|\u2029/g;x.template=function(a,b,c){var d;c=x.defaults({},c,x.templateSettings);var e=RegExp([(c.escape||I).source,(c.interpolate||I).source,(c.evaluate||I).source].join("|")+"|$","g"),f=0,g="__p+='";a.replace(e,function(b,c,d,e,h){return g+=a.slice(f,h).replace(K,function(a){return"\\"+J[a]}),c&&(g+="'+\n((__t=("+c+"))==null?'':_.escape(__t))+\n'"),d&&(g+="'+\n((__t=("+d+"))==null?'':__t)+\n'"),e&&(g+="';\n"+e+"\n__p+='"),f=h+b.length,b}),g+="';\n",c.variable||(g="with(obj||{}){\n"+g+"}\n"),g="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+g+"return __p;\n";try{d=Function(c.variable||"obj","_",g)}catch(h){throw h.source=g,h}if(b)return d(b,x);var i=function(a){return d.call(this,a,x)};return i.source="function("+(c.variable||"obj")+"){\n"+g+"}",i},x.chain=function(a){return x(a).chain()};var L=function(a){return this._chain?x(a).chain():a};x.mixin(x),y(["pop","push","reverse","shift","sort","splice","unshift"],function(a){var b=d[a];x.prototype[a]=function(){var c=this._wrapped;return b.apply(c,arguments),"shift"!=a&&"splice"!=a||0!==c.length||delete c[0],L.call(this,c)}}),y(["concat","join","slice"],function(a){var b=d[a];x.prototype[a]=function(){return L.call(this,b.apply(this._wrapped,arguments))}}),x.extend(x.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}})}.call(this),function(a){"use strict";function b(a,b){f.async(function(){a.trigger("promise:resolved",{detail:b}),a.isResolved=!0,a.resolvedValue=b})}function c(a,b){f.async(function(){a.trigger("promise:failed",{detail:b}),a.isRejected=!0,a.rejectedValue=b})}function d(a){var b,c=[],d=new p,e=a.length;0===e&&d.resolve([]);var f=function(a){return function(b){g(a,b)}},g=function(a,b){c[a]=b,0===--e&&d.resolve(c)},h=function(a){d.reject(a)};for(b=0;e>b;b++)a[b].then(f(b),h);return d}function e(a,b){f[a]=b}var f={},g="undefined"!=typeof window?window:{},h=g.MutationObserver||g.WebKitMutationObserver;if("undefined"!=typeof process&&"[object process]"==={}.toString.call(process))f.async=function(a,b){process.nextTick(function(){a.call(b)})};else if(h){var i=[],j=new h(function(){var a=i.slice();i=[],a.forEach(function(a){var b=a[0],c=a[1];b.call(c)})}),k=document.createElement("div");j.observe(k,{attributes:!0}),window.addEventListener("unload",function(){j.disconnect(),j=null}),f.async=function(a,b){i.push([a,b]),k.setAttribute("drainQueue","drainQueue")}}else f.async=function(a,b){setTimeout(function(){a.call(b)},1)};var l=function(a,b){this.type=a;for(var c in b)b.hasOwnProperty(c)&&(this[c]=b[c])},m=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c][0]===b)return c;return-1},n=function(a){var b=a._promiseCallbacks;return b||(b=a._promiseCallbacks={}),b},o={mixin:function(a){return a.on=this.on,a.off=this.off,a.trigger=this.trigger,a},on:function(a,b,c){var d,e,f=n(this);for(a=a.split(/\s+/),c=c||this;e=a.shift();)d=f[e],d||(d=f[e]=[]),-1===m(d,b)&&d.push([b,c])},off:function(a,b){var c,d,e,f=n(this);for(a=a.split(/\s+/);d=a.shift();)b?(c=f[d],e=m(c,b),-1!==e&&c.splice(e,1)):f[d]=[]},trigger:function(a,b){var c,d,e,f,g,h=n(this);if(c=h[a])for(var i=0,j=c.length;j>i;i++)d=c[i],e=d[0],f=d[1],"object"!=typeof b&&(b={detail:b}),g=new l(a,b),e.call(f,g)}},p=function(){this.on("promise:resolved",function(a){this.trigger("success",{detail:a.detail})},this),this.on("promise:failed",function(a){this.trigger("error",{detail:a.detail})},this)},q=function(){},r=function(a,b,c,d){var e,f,g,h,i="function"==typeof c;if(i)try{e=c(d.detail),g=!0}catch(j){h=!0,f=j}else e=d.detail,g=!0;e&&"function"==typeof e.then?e.then(function(a){b.resolve(a)},function(a){b.reject(a)}):i&&g?b.resolve(e):h?b.reject(f):b[a](e)};p.prototype={then:function(a,b){var c=new p;return this.isResolved&&f.async(function(){r("resolve",c,a,{detail:this.resolvedValue})},this),this.isRejected&&f.async(function(){r("reject",c,b,{detail:this.rejectedValue})},this),this.on("promise:resolved",function(b){r("resolve",c,a,b)}),this.on("promise:failed",function(a){r("reject",c,b,a)}),c},resolve:function(a){b(this,a),this.resolve=q,this.reject=q},reject:function(a){c(this,a),this.resolve=q,this.reject=q}},o.mixin(p.prototype),a.Promise=p,a.Event=l,a.EventTarget=o,a.all=d,a.configure=e}(window.RSVP={});var EPUBJS=EPUBJS||{};EPUBJS.VERSION="0.1.5",EPUBJS.plugins=EPUBJS.plugins||{},EPUBJS.filePath=EPUBJS.filePath||"/epubjs/",EPUBJS.Book=function(a,b){var c=this;this.settings=_.defaults(b||{},{storage:!1,fromStorage:!1,saved:!1,online:!0,contained:!1,width:!1,height:!1,spreads:!0,fixedLayout:!1,responsive:!0,version:1,restore:!1,reload:!1,styles:{}}),this.settings.EPUBJSVERSION=EPUBJS.VERSION,this.spinePos=0,this.stored=!1,this.hooks={beforeChapterDisplay:[]},this.getHooks(),this.online=this.settings.online||navigator.onLine,this.networkListeners(),0!=this.settings.storage&&(this.storage=new fileStorage.storage(this.settings.storage)),this.ready={manifest:new RSVP.Promise,spine:new RSVP.Promise,metadata:new RSVP.Promise,cover:new RSVP.Promise,toc:new RSVP.Promise},this.ready.all=RSVP.all(_.values(this.ready)),this.ready.all.then(function(){this.trigger("book:ready")}.bind(this)),a&&(this.opened=this.open(a)),window.addEventListener("beforeunload",function(){c.settings.restore&&(c.saveSettings(),c.saveContents()),c.trigger("book:unload")},!1)},EPUBJS.Book.prototype.open=function(a,b){var c,d=this,e=this.isSaved(a);return this.settings.bookPath=a,this.bookUrl=this.urlFrom(a),e&&!b&&this.applySavedSettings(),this.settings.contained||this.isContained(a)?(this.settings.contained=this.contained=!0,this.bookUrl="",c=this.unarchive(a).then(function(){return e&&d.settings.restore&&!b?d.restore():d.unpack()})):c=e&&this.settings.restore&&!b?this.restore():this.unpack(),this.online&&this.settings.storage&&!this.settings.contained&&(this.settings.stored||c.then(d.storeOffline())),c},EPUBJS.Book.prototype.unpack=function(a){var b=this,c=new EPUBJS.Parser,a=a||"META-INF/container.xml";return b.loadXml(b.bookUrl+a).then(function(a){return c.container(a)}).then(function(a){return b.settings.contentsPath=b.bookUrl+a.basePath,b.settings.packageUrl=b.bookUrl+a.packagePath,b.loadXml(b.settings.packageUrl)}).then(function(a){return c.package(a,b.settings.contentsPath)}).then(function(a){return b.contents=a,b.manifest=b.contents.manifest,b.spine=b.contents.spine,b.spineIndexByURL=b.contents.spineIndexByURL,b.metadata=b.contents.metadata,b.cover=b.contents.cover=b.settings.contentsPath+a.coverPath,b.spineNodeIndex=b.contents.spineNodeIndex=a.spineNodeIndex,b.ready.manifest.resolve(b.contents.manifest),b.ready.spine.resolve(b.contents.spine),b.ready.metadata.resolve(b.contents.metadata),b.ready.cover.resolve(b.contents.cover),b.settings.tocUrl=b.settings.contentsPath+a.tocPath,b.loadXml(b.settings.tocUrl)}).then(function(a){return c.toc(a)}).then(function(a){b.toc=b.contents.toc=a,b.ready.toc.resolve(b.contents.toc)}).then(null,function(a){console.error(a)})},EPUBJS.Book.prototype.getMetadata=function(){return this.ready.metadata},EPUBJS.Book.prototype.getToc=function(){return this.ready.toc},EPUBJS.Book.prototype.networkListeners=function(){var a=this;window.addEventListener("offline",function(){a.online=!1,a.trigger("book:offline")},!1),window.addEventListener("online",function(){a.online=!0,a.trigger("book:online")},!1)},EPUBJS.Book.prototype.loadXml=function(a){return this.settings.fromStorage?this.storage.getXml(a):this.settings.contained?this.zip.getXml(a):EPUBJS.core.request(a,"xml")},EPUBJS.Book.prototype.urlFrom=function(a){var b=-1!=a.search("://"),c="/"==a[0],d=window.location,e=d.origin||d.protocol+"//"+d.host;return b?a:!b&&c?e+a:b||c?void 0:e+EPUBJS.core.folder(d.pathname)+a},EPUBJS.Book.prototype.unarchive=function(a){return this.zip=new EPUBJS.Unarchiver,this.zip.openZip(a)},EPUBJS.Book.prototype.isContained=function(a){var b=a.lastIndexOf("."),c=a.slice(b+1);return!c||"epub"!=c&&"zip"!=c?!1:!0},EPUBJS.Book.prototype.isSaved=function(a){var b=a+":"+this.settings.version,c=localStorage.getItem(b);return localStorage&&null!==c?!0:!1},EPUBJS.Book.prototype.removeSavedSettings=function(){var a=this.settings.bookPath+":"+this.settings.version;localStorage.removeItem(a),this.settings.stored=!1},EPUBJS.Book.prototype.applySavedSettings=function(){var a=this.settings.bookPath+":"+this.settings.version;return stored=JSON.parse(localStorage.getItem(a)),EPUBJS.VERSION!=stored.EPUBJSVERSION?!1:(this.settings=_.defaults(this.settings,stored),void 0)},EPUBJS.Book.prototype.saveSettings=function(){var a=this.settings.bookPath+":"+this.settings.version;this.render&&(this.settings.previousLocationCfi=this.render.currentLocationCfi),localStorage.setItem(a,JSON.stringify(this.settings))},EPUBJS.Book.prototype.saveContents=function(){var a=this.settings.bookPath+":contents:"+this.settings.version;localStorage.setItem(a,JSON.stringify(this.contents))},EPUBJS.Book.prototype.removeSavedContents=function(){var a=this.settings.bookPath+":contents:"+this.settings.version;localStorage.removeItem(a)},EPUBJS.Book.prototype.renderTo=function(a){var b=this;if(_.isElement(a))this.element=a;else{if("string"!=typeof a)return console.error("Not an Element"),void 0;this.element=EPUBJS.core.getEl(a)}return this.opened.then(function(){return b.render=new EPUBJS.Renderer(b),b.startDisplay()})},EPUBJS.Book.prototype.startDisplay=function(){var a;return a=this.settings.restore&&this.settings.previousLocationCfi?this.displayChapter(this.settings.previousLocationCfi):this.displayChapter(this.spinePos)},EPUBJS.Book.prototype.restore=function(a){var b=this,c=this.settings.bookPath+":contents:"+this.settings.version,d=new RSVP.Promise,e=["manifest","spine","metadata","cover","toc","spineNodeIndex","spineIndexByURL"],a=a||!1,f=localStorage.getItem(c);return this.settings.clearSaved&&(a=!0),a||"undefined"==f||"null"==f||(this.contents=JSON.parse(f),e.forEach(function(c){b[c]=b.contents[c],b[c]||(a=!0)})),!a&&f&&this.contents&&this.settings.contentsPath?(this.ready.manifest.resolve(this.manifest),this.ready.spine.resolve(this.spine),this.ready.metadata.resolve(this.metadata),this.ready.cover.resolve(this.cover),this.ready.toc.resolve(this.toc),d.resolve(),d):this.open(this.settings.bookPath,!0)},EPUBJS.Book.prototype.displayChapter=function(a,b){var c,d,e,f=this;return _.isNumber(a)?e=a:(d=new EPUBJS.EpubCFI(a),e=d.spinePos),e>=this.spine.length?!1:0>e?!1:(this.spinePos=e,this.chapter=new EPUBJS.Chapter(this.spine[e]),c=f.render.chapter(this.chapter),d?c.then(function(b){b.currentLocationCfi=a,b.gotoCfiFragment(d)}):b&&c.then(function(a){a.gotoChapterEnd()}),this.settings.fromStorage||this.settings.contained||c.then(function(){f.preloadNextChapter()}),c)},EPUBJS.Book.prototype.nextPage=function(){var a=this.render.nextPage();return a?void 0:this.nextChapter()},EPUBJS.Book.prototype.prevPage=function(){var a=this.render.prevPage();return a?void 0:this.prevChapter()},EPUBJS.Book.prototype.nextChapter=function(){return this.spinePos++,this.displayChapter(this.spinePos)},EPUBJS.Book.prototype.prevChapter=function(){return this.spinePos--,this.displayChapter(this.spinePos,!0)},EPUBJS.Book.prototype.goto=function(a){var b,c=a.split("#"),d=c[0],e=c[1]||!1,f=-1==d.search("://")?this.settings.contentsPath+d:d,g=this.spineIndexByURL[f];return d||(g=this.chapter.spinePos),"number"!=typeof g?!1:g==this.chapter.spinePos&&this.chapter?(e&&this.render.section(e),(new RSVP.Promise).resolve(this.currentChapter)):this.displayChapter(g).then(function(){e&&b.render.section(e)})},EPUBJS.Book.prototype.preloadNextChapter=function(){return document.createElement("iframe"),this.spinePos>=this.spine.length?!1:(next=new EPUBJS.Chapter(this.spine[this.spinePos+1]),EPUBJS.core.request(next.href),void 0)},EPUBJS.Book.prototype.storeOffline=function(){var a=this,b=_.values(this.manifest);return EPUBJS.storage.batch(b).then(function(){a.settings.stored=!0,a.trigger("book:stored")})},EPUBJS.Book.prototype.availableOffline=function(){return this.settings.stored>0?!0:!1},EPUBJS.Book.prototype.setStyle=function(a,b,c){this.render.setStyle(a,b,c),this.settings.styles[a]=b},EPUBJS.Book.prototype.removeStyle=function(a){this.render.removeStyle(a),delete this.settings.styles[a]},EPUBJS.Book.prototype.getHooks=function(){var a,b=this;plugTypes=_.values(this.hooks);for(plugType in this.hooks)a=_.values(EPUBJS.Hooks[plugType]),a.forEach(function(a){b.registerHook(plugType,a)})},EPUBJS.Book.prototype.registerHook=function(a,b,c){var d=this;"undefined"!=typeof this.hooks[a]?"function"==typeof b?c?this.hooks[a].unshift(b):this.hooks[a].push(b):Array.isArray(b)&&b.forEach(function(b){c?d.hooks[a].unshift(b):d.hooks[a].push(b)}):this.hooks[a]=[func]},EPUBJS.Book.prototype.triggerHooks=function(a,b,c){function d(){f--,0>=f&&b&&b()}var e,f;return"undefined"==typeof this.hooks[a]?!1:(e=this.hooks[a],f=e.length,e.forEach(function(a){a(d,c)}),void 0)},RSVP.EventTarget.mixin(EPUBJS.Book.prototype),EPUBJS.Chapter=function(a){this.href=a.href,this.id=a.id,this.spinePos=a.index,this.properties=a.properties,this.linear=a.linear,this.pages=1},EPUBJS.Chapter.prototype.contents=function(a){return a?a.get(href):EPUBJS.core.request(href,"xml")},EPUBJS.Chapter.prototype.url=function(a){var b=new RSVP.Promise;return a?(this.tempUrl||(this.tempUrl=a.getUrl(this.href)),this.tempUrl):(b.resolve(this.href),b)},EPUBJS.Chapter.prototype.setPages=function(a){this.pages=a},EPUBJS.Chapter.prototype.getPages=function(){return this.pages},EPUBJS.Chapter.prototype.getID=function(){return this.ID},EPUBJS.Chapter.prototype.unload=function(a){this.tempUrl&&a&&(a.revokeUrl(this.tempUrl),this.tempUrl=!1)};var EPUBJS=EPUBJS||{};EPUBJS.core={},EPUBJS.core.getEl=function(a){return document.getElementById(a)},EPUBJS.core.getEls=function(a){return document.getElementsByClassName(a)},EPUBJS.core.request=function(a,b){function c(){if(this.readyState===this.DONE)if(200===this.status||this.responseXML){var a;a="xml"==b?this.responseXML:"json"==b?JSON.parse(this.response):this.response,d.resolve(a)}else d.reject(this)}var d=new RSVP.Promise,e=new XMLHttpRequest;return e.open("GET",a),e.onreadystatechange=c,"blob"==b&&(e.responseType=b),"json"==b&&e.setRequestHeader("Accept","application/json"),"xml"==b&&e.overrideMimeType("text/xml"),e.send(),d},EPUBJS.core.toArray=function(a){var b=[];for(member in a){var c;a.hasOwnProperty(member)&&(c=a[member],c.ident=member,b.push(c))}return b},EPUBJS.core.folder=function(a){var b=a.lastIndexOf("/"),c=a.slice(0,b+1);return-1==b&&(c=""),c},EPUBJS.core.dataURLToBlob=function(a){var b=";base64,";if(-1==a.indexOf(b)){var c=a.split(","),d=c[0].split(":")[1],e=c[1];return new Blob([e],{type:d})}for(var c=a.split(b),d=c[0].split(":")[1],e=window.atob(c[1]),f=e.length,g=new Uint8Array(f),h=0;f>h;++h)g[h]=e.charCodeAt(h);return new Blob([g],{type:d})},EPUBJS.core.addScript=function(a,b,c){var d,e;e=!1,d=document.createElement("script"),d.type="text/javascript",d.async=!1,d.src=a,d.onload=d.onreadystatechange=function(){e||this.readyState&&"complete"!=this.readyState||(e=!0,b&&b())},c=c||document.body,c.appendChild(d)},EPUBJS.core.addScripts=function(a,b,c){var d=a.length,e=0,f=function(){e++,d==e?b&&b():EPUBJS.core.loadScript(a[e],f,c)};EPUBJS.core.addScript(a[e],f,c)},EPUBJS.core.addCss=function(a,b,c){var d,e;e=!1,d=document.createElement("link"),d.type="text/css",d.rel="stylesheet",d.href=a,d.onload=d.onreadystatechange=function(){e||this.readyState&&"complete"!=this.readyState||(e=!0,b&&b())},c=c||document.body,c.appendChild(d)},EPUBJS.core.prefixed=function(a){var b=["Webkit","Moz","O","ms"],c=a[0].toUpperCase()+a.slice(1),d=b.length,e=0;if("undefined"!=typeof document.body.style[a])return a;for(;d>e;e++)if("undefined"!=typeof document.body.style[b[e]+c])return b[e]+c;return a},EPUBJS.core.resolveUrl=function(a,b){var c,d,e=[],f=a.split("/");return f.pop(),d=b.split("/"),d.forEach(function(a){".."===a?f.pop():e.push(a)}),c=f.concat(e),c.join("/")},EPUBJS.EpubCFI=function(a){return a?this.parse(a):void 0},EPUBJS.EpubCFI.prototype.generateChapter=function(a,b,c){var b=parseInt(b),a=a+1,d="/"+a+"/";return d+=2*(b+1),c&&(d+="["+c+"]"),d+="!"},EPUBJS.EpubCFI.prototype.generateFragment=function(a,b){var c=this.pathTo(a),d=[];return b&&d.push(b),c.forEach(function(a){d.push(2*(a.index+1)),a.id&&"EPUBJS"!=a.id.slice(0,6)&&d.push("["+a.id+"]")}),d.join("/")},EPUBJS.EpubCFI.prototype.pathTo=function(a){for(var b,c=[];a&&null!==a.parentNode;)b=a.parentNode.children,c.unshift({id:a.id,tagName:a.tagName,index:b?Array.prototype.indexOf.call(b,a):0}),a=a.parentNode;return c},EPUBJS.EpubCFI.prototype.getChapter=function(a){var b=a.split("!");return b[0]},EPUBJS.EpubCFI.prototype.getFragment=function(a){var b=a.split("!");return b[1]},EPUBJS.EpubCFI.prototype.getOffset=function(a){var b=a.split(":");return[b[0],b[1]]},EPUBJS.EpubCFI.prototype.parse=function(a){var b,c,d,e,f={};return f.chapter=this.getChapter(a),f.fragment=this.getFragment(a),f.spinePos=parseInt(f.chapter.split("/")[2])/2-1||0,b=f.chapter.match(/\[(.*)\]/),f.spineId=b[1]||!1,c=f.fragment.split("/"),d=c[c.length-1],f.sections=[],parseInt(d)%2&&(e=this.getOffset(),f.text=parseInt(e[0]),f.character=parseInt(e[1]),c.pop()),c.forEach(function(a){var b,c,d;a&&(b=parseInt(a)/2-1,c=a.match(/\[(.*)\]/),c&&c[1]&&(d=c[1]),f.sections.push({index:b,id:d||!1}))}),f},EPUBJS.EpubCFI.prototype.getElement=function(a,b){var c,b=b||document,d=a.sections,e=b.getElementsByTagName("html")[0],f=Array.prototype.slice.call(e.children);for(d.shift();d.length>0;)c=d.shift(),c.id?e=b.querySelector("#"+c.id):(e=f[c.index],f||console.error("No Kids",e)),e||console.error("No Element For",c),f=Array.prototype.slice.call(e.children);return e},EPUBJS.Events=function(a,b){return this.events={},this.el=b?b:document.createElement("div"),a.createEvent=this.createEvent,a.tell=this.tell,a.listen=this.listen,a.deafen=this.deafen,a.listenUntil=this.listenUntil,this},EPUBJS.Events.prototype.createEvent=function(a){var b=new CustomEvent(a);return this.events[a]=b,b},EPUBJS.Events.prototype.tell=function(a,b){var c;this.events[a]?c=this.events[a]:(console.warn("No event:",a,"defined yet, creating."),c=this.createEvent(a)),b&&(c.msg=b),this.el.dispatchEvent(c)},EPUBJS.Events.prototype.listen=function(a,b,c){return this.events[a]?(c?this.el.addEventListener(a,b.bind(c),!1):this.el.addEventListener(a,b,!1),void 0):(console.warn("No event:",a,"defined yet, creating."),this.createEvent(a),void 0)},EPUBJS.Events.prototype.deafen=function(a,b){this.el.removeEventListener(a,b,!1)},EPUBJS.Events.prototype.listenUntil=function(a,b,c,d){function e(){this.deafen(a,c),this.deafen(b,e)}this.listen(a,c,d),this.listen(b,e,this)},EPUBJS.Hooks=function(){"use strict";return{register:function(a){if(void 0===this[a]&&(this[a]={}),"object"!=typeof this[a])throw"Already registered: "+a;return this[a]}}}(),EPUBJS.Parser=function(a){this.baseUrl=a||""},EPUBJS.Parser.prototype.container=function(a){var b=a.querySelector("rootfile"),c=b.getAttribute("full-path"),d=EPUBJS.core.folder(c);return{packagePath:c,basePath:d}},EPUBJS.Parser.prototype.package=function(a,b){var c=this;b&&(this.baseUrl=b);var d=a.querySelector("metadata"),e=a.querySelector("manifest"),f=a.querySelector("spine"),g=c.manifest(e),h=c.findTocPath(e),i=c.findCoverPath(e),j=Array.prototype.indexOf.call(f.parentNode.childNodes,f),k=c.spine(f,g),l={};return k.forEach(function(a){l[a.href]=a.index}),{metadata:c.metadata(d),spine:k,manifest:g,tocPath:h,coverPath:i,spineNodeIndex:j,spineIndexByURL:l}},EPUBJS.Parser.prototype.findTocPath=function(a){var b=a.querySelector("item[media-type='application/x-dtbncx+xml']");return b?b.getAttribute("href"):!1},EPUBJS.Parser.prototype.findCoverPath=function(a){var b=a.querySelector("item[properties='cover-image']");return b?b.getAttribute("href"):!1},EPUBJS.Parser.prototype.metadata=function(a){var b={},c=this;return b.bookTitle=c.getElementText(a,"title"),b.creator=c.getElementText(a,"creator"),b.description=c.getElementText(a,"description"),b.pubdate=c.getElementText(a,"date"),b.publisher=c.getElementText(a,"publisher"),b.identifier=c.getElementText(a,"identifier"),b.language=c.getElementText(a,"language"),b.rights=c.getElementText(a,"rights"),b.modified_date=c.querySelectorText(a,"meta[property='dcterms:modified']"),b.layout=c.querySelectorText(a,"meta[property='rendition:orientation']"),b.orientation=c.querySelectorText(a,"meta[property='rendition:orientation']"),b.spread=c.querySelectorText(a,"meta[property='rendition:spread']"),b +},EPUBJS.Parser.prototype.getElementText=function(a,b){var c,d=a.getElementsByTagNameNS("http://purl.org/dc/elements/1.1/",b);return d&&0!=d.length?(c=d[0],c.childNodes.length?c.childNodes[0].nodeValue:""):""},EPUBJS.Parser.prototype.querySelectorText=function(a,b){var c=a.querySelector(b);return c&&c.childNodes.length?c.childNodes[0].nodeValue:""},EPUBJS.Parser.prototype.manifest=function(a){var b=this.baseUrl,c={},d=a.querySelectorAll("item"),e=Array.prototype.slice.call(d);return e.forEach(function(a){var d=a.getAttribute("id"),e=a.getAttribute("href")||"",f=a.getAttribute("media-type")||"";c[d]={href:b+e,type:f}}),c},EPUBJS.Parser.prototype.spine=function(a,b){var c=[],d=a.getElementsByTagName("itemref"),e=Array.prototype.slice.call(d);return e.forEach(function(a,d){var e=a.getAttribute("idref"),f={id:e,linear:a.getAttribute("linear")||"",properties:a.getAttribute("properties")||"",href:b[e].href,index:d};c.push(f)}),c},EPUBJS.Parser.prototype.toc=function(a){function b(a){var c,d=[],e=[],f=a.childNodes,g=Array.prototype.slice.call(f),h=g.length,i=h;if(0==h)return!1;for(;i--;)c=g[i],"navPoint"===c.nodeName&&e.push(c);return e.forEach(function(a){var c=a.getAttribute("id"),e=a.querySelector("content"),f=e.getAttribute("src"),g=(f.split("#"),a.querySelector("navLabel")),h=g.textContent?g.textContent:"",i=b(a);d.unshift({id:c,href:f,label:h,subitems:i})}),d}var c=a.querySelector("navMap");return b(c)},EPUBJS.Renderer=function(a){this.el=a.element,this.book=a,this.settings=a.settings,a.registerHook("beforeChapterDisplay",[this.replaceLinks.bind(this),this.replaceResources.bind(this),this.replaceHead.bind(this)],!0),this.crossBrowserColumnCss(),this.epubcfi=new EPUBJS.EpubCFI,this.initialize(),this.listeners()},EPUBJS.Renderer.prototype.initialize=function(){this.iframe=document.createElement("iframe"),this.settings.width||this.settings.height?this.resizeIframe(!1,this.settings.width||this.el.clientWidth,this.settings.height||this.el.clientHeight):(this.resizeIframe(!1,this.el.clientWidth,this.el.clientHeight),this.on("renderer:resized",this.resizeIframe,this)),this.el.appendChild(this.iframe)},EPUBJS.Renderer.prototype.listeners=function(){this.resized=_.debounce(this.onResized.bind(this),10),window.addEventListener("resize",this.resized,!1)},EPUBJS.Renderer.prototype.chapter=function(a){var b=this,c=!1;return this.book.settings.contained&&(c=this.book.zip),this.currentChapter&&(this.currentChapter.unload(),this.trigger("renderer:chapterUnloaded"),this.book.trigger("renderer:chapterUnloaded")),this.currentChapter=a,this.chapterPos=1,this.pageIds={},this.leftPos=0,this.currentChapterCfi=this.epubcfi.generateChapter(this.book.spineNodeIndex,a.spinePos,a.id),this.visibileEl=!1,a.url(c).then(function(a){return b.setIframeSrc(a)})},EPUBJS.Renderer.prototype.onResized=function(){var a={width:this.el.clientWidth,height:this.el.clientHeight};this.trigger("renderer:resized",a),this.book.trigger("book:resized",a),this.reformat()},EPUBJS.Renderer.prototype.reformat=function(){var a=this;a.book.settings.fixedLayout?a.fixedLayout():a.formatSpread(),setTimeout(function(){a.calcPages(),a.currentLocationCfi&&a.gotoCfiFragment(a.currentLocationCfi)},10)},EPUBJS.Renderer.prototype.destroy=function(){window.removeEventListener("resize",this.resized,!1)},EPUBJS.Renderer.prototype.resizeIframe=function(a,b,c){var d,e;a?(d=a.width,e=a.height):(d=b,e=c),this.iframe.height=e,0!=d%2&&(d+=1),this.iframe.width=d},EPUBJS.Renderer.prototype.crossBrowserColumnCss=function(){EPUBJS.Renderer.columnAxis=EPUBJS.core.prefixed("columnAxis"),EPUBJS.Renderer.columnGap=EPUBJS.core.prefixed("columnGap"),EPUBJS.Renderer.columnWidth=EPUBJS.core.prefixed("columnWidth"),EPUBJS.Renderer.transform=EPUBJS.core.prefixed("transform")},EPUBJS.Renderer.prototype.setIframeSrc=function(a){var b=this,c=new RSVP.Promise;return this.visible(!1),this.iframe.src=a,this.iframe.onload=function(){b.doc=b.iframe.contentDocument,b.docEl=b.doc.documentElement,b.bodyEl=b.doc.body,b.applyStyles(),b.book.settings.fixedLayout?b.fixedLayout():b.formatSpread(),b.beforeDisplay(function(){b.calcPages(),c.resolve(b),b.currentLocationCfi=b.getPageCfi(),b.trigger("renderer:chapterDisplayed",b.currentChapter),b.book.trigger("renderer:chapterDisplayed",b.currentChapter),b.visible(!0)})},c},EPUBJS.Renderer.prototype.formatSpread=function(){var a=2,b=800;this.colWidth&&(this.OldcolWidth=this.colWidth,this.OldspreadWidth=this.spreadWidth),this.elWidth=this.iframe.width,this.gap=this.gap||Math.ceil(this.elWidth/8),this.elWidth1?(this.chapterPos--,this.leftPos-=this.spreadWidth,this.setLeft(this.leftPos),this.currentLocationCfi=this.getPageCfi(),this.book.trigger("book:pageChanged",this.currentLocationCfi),this.chapterPos):!1},EPUBJS.Renderer.prototype.chapterEnd=function(){this.page(this.displayedPages),this.currentLocationCfi=this.getPageCfi()},EPUBJS.Renderer.prototype.setLeft=function(a){this.doc.defaultView.scrollTo(a,0)},EPUBJS.Renderer.prototype.replace=function(a,b,c){var d,e,f;d=this.doc.querySelectorAll(a),e=Array.prototype.slice.call(d),f=e.length,e.forEach(function(a){b(a,function(){f--,0>=f&&c&&c()})}.bind(this)),0===f&&c()},EPUBJS.Renderer.prototype.determineStore=function(){return this.book.fromStorage?"filesystem"==this.book.storage.getStorageType()?!1:this.book.store:this.book.contained?this.book.zip:!1},EPUBJS.Renderer.prototype.replaceHead=function(a){var b,c,d,e,f={},g=this,h=this.determineStore(),i=function(a,b){a.setAttribute("href",b),a.onload=function(){d--,0>=d&&j()}},j=function(){a&&a(),_.each(e,function(a){h.revokeUrl(a)}),g.urlCache=f};return h?(b=this.doc.head.querySelectorAll("[href]"),c=Array.prototype.slice.call(b),d=c.length,this.urlCache||(this.urlCache={}),e=_.clone(this.urlCache),c.forEach(function(a){var b=a.getAttribute("href"),c=this.book.settings.contentsPath+b;c in e?(i(a,e[c]),f[c]=e[c],delete e[c]):"stylesheet"===a.getAttribute("rel")?h.getText(c).then(function(b){g.replaceUrlsInCss(c,b).then(function(b){var d=window.URL||window.webkitURL||window.mozURL,e=new Blob([b],{type:"text/css"}),g=d.createObjectURL(e);i(a,g),f[c]=g},function(a){console.error(a)})}):h.getUrl(c).then(function(b){i(a,b),f[c]=b})}.bind(this)),0===d&&j(),void 0):(a&&a(),!1)},EPUBJS.Renderer.prototype.replaceUrlsInCss=function(a,b){var c=new RSVP.Promise,d=[],e=this.determineStore(),f=b.match(/url\(\'?\"?([^\'|^\"]*)\'?\"?\)/g);return f?(f.forEach(function(c){var f=EPUBJS.core.resolveUrl(a,c.replace(/url\(|[|\)|\'|\"]/g,""));replaced=e.getUrl(f).then(function(a){b=b.replace(c,'url("'+a+'")')},function(a){console.error(a)}),d.push(replaced)}),RSVP.all(d).then(function(){c.resolve(b)}),c):(c.resolve(b),c)},EPUBJS.Renderer.prototype.replaceLinks=function(a){var b=this.doc.querySelectorAll("a"),c=Array.prototype.slice.call(b),d=this;c.forEach(function(a){var b,c,e=a.getAttribute("href");e&&(b=e.search("://"),c="#"==e[0],-1!=b?a.setAttribute("target","_blank"):a.onclick=function(){return d.book.goto(e),!1})}),a&&a()},EPUBJS.Renderer.prototype.replaceResources=function(a){var b,c,d,e=this.determineStore();return e?(b=this.doc.querySelectorAll("[src]"),c=Array.prototype.slice.call(b),d=c.length,c.forEach(function(b){var c=b.getAttribute("src"),f=this.book.settings.contentsPath+c;e.getUrl(f).then(function(c){b.src=c,b.onload=function(){d--,0>=d&&a&&a()}})}.bind(this)),0===d&&a(),void 0):(a&&a(),!1)},EPUBJS.Renderer.prototype.page=function(a){return a>=1&&a<=this.displayedPages?(this.chapterPos=a,this.leftPos=this.spreadWidth*(a-1),this.setLeft(this.leftPos),!0):!1},EPUBJS.Renderer.prototype.section=function(a){var b=this.doc.getElementById(a);b&&this.pageByElement(b)},EPUBJS.Renderer.prototype.pageByElement=function(a){var b,c;a&&(b=this.leftPos+a.getBoundingClientRect().left,c=Math.floor(b/this.spreadWidth)+1,this.page(c))},EPUBJS.Renderer.prototype.beforeDisplay=function(a){this.book.triggerHooks("beforeChapterDisplay",a.bind(this),this)},EPUBJS.Renderer.prototype.walk=function(a){for(var b,a,c,d,e,f=a,g=[f],h=1e4,i=0;!b&&g.length;){if(a=g.shift(),this.isElementVisible(a)&&(b=a),!b&&a&&a.childElementCount>0){c=a.children,d=c.length;for(var j=0;d>j;j++)c[j]!=e&&g.push(c[j])}if(!b&&0==g.length&&f&&null!==f.parentNode&&(g.push(f.parentNode),e=f,f=f.parentNode),i++,i>h){console.error("ENDLESS LOOP");break}}return b},EPUBJS.Renderer.prototype.getPageCfi=function(){var a=this.visibileEl;return this.visibileEl=this.findFirstVisible(a),this.visibileEl.id||(this.visibileEl.id="EPUBJS-PAGE-"+this.chapterPos),this.pageIds[this.chapterPos]=this.visibileEl.id,this.epubcfi.generateFragment(this.visibileEl,this.currentChapterCfi)},EPUBJS.Renderer.prototype.gotoCfiFragment=function(a){var b;_.isString(a)&&(a=this.epubcfi.parse(a)),b=this.epubcfi.getElement(a,this.doc),this.pageByElement(b)},EPUBJS.Renderer.prototype.findFirstVisible=function(a){var b,c=a||this.bodyEl;return b=this.walk(c),b?b:a},EPUBJS.Renderer.prototype.isElementVisible=function(a){var b;return a&&"function"==typeof a.getBoundingClientRect&&(b=a.getBoundingClientRect().left,b>=0&&be;e++)if(b.call(d,a[e],e,a)===c)return}else for(var g in a)if(x.has(a,g)&&b.call(d,a[g],g,a)===c)return};x.map=x.collect=function(a,b,c){var d=[];return null==a?d:m&&a.map===m?a.map(b,c):(y(a,function(a,e,f){d[d.length]=b.call(c,a,e,f)}),d)};var z="Reduce of empty array with no initial value";x.reduce=x.foldl=x.inject=function(a,b,c,d){var e=arguments.length>2;if(null==a&&(a=[]),n&&a.reduce===n)return d&&(b=x.bind(b,d)),e?a.reduce(b,c):a.reduce(b);if(y(a,function(a,f,g){e?c=b.call(d,c,a,f,g):(c=a,e=!0)}),!e)throw new TypeError(z);return c},x.reduceRight=x.foldr=function(a,b,c,d){var e=arguments.length>2;if(null==a&&(a=[]),o&&a.reduceRight===o)return d&&(b=x.bind(b,d)),e?a.reduceRight(b,c):a.reduceRight(b);var f=a.length;if(f!==+f){var g=x.keys(a);f=g.length}if(y(a,function(h,i,j){i=g?g[--f]:--f,e?c=b.call(d,c,a[i],i,j):(c=a[i],e=!0)}),!e)throw new TypeError(z);return c},x.find=x.detect=function(a,b,c){var d;return A(a,function(a,e,f){return b.call(c,a,e,f)?(d=a,!0):void 0}),d},x.filter=x.select=function(a,b,c){var d=[];return null==a?d:p&&a.filter===p?a.filter(b,c):(y(a,function(a,e,f){b.call(c,a,e,f)&&(d[d.length]=a)}),d)},x.reject=function(a,b,c){return x.filter(a,function(a,d,e){return!b.call(c,a,d,e)},c)},x.every=x.all=function(a,b,d){b||(b=x.identity);var e=!0;return null==a?e:q&&a.every===q?a.every(b,d):(y(a,function(a,f,g){return(e=e&&b.call(d,a,f,g))?void 0:c}),!!e)};var A=x.some=x.any=function(a,b,d){b||(b=x.identity);var e=!1;return null==a?e:r&&a.some===r?a.some(b,d):(y(a,function(a,f,g){return e||(e=b.call(d,a,f,g))?c:void 0}),!!e)};x.contains=x.include=function(a,b){return null==a?!1:s&&a.indexOf===s?-1!=a.indexOf(b):A(a,function(a){return a===b})},x.invoke=function(a,b){var c=h.call(arguments,2),d=x.isFunction(b);return x.map(a,function(a){return(d?b:a[b]).apply(a,c)})},x.pluck=function(a,b){return x.map(a,function(a){return a[b]})},x.where=function(a,b,c){return x.isEmpty(b)?c?null:[]:x[c?"find":"filter"](a,function(a){for(var c in b)if(b[c]!==a[c])return!1;return!0})},x.findWhere=function(a,b){return x.where(a,b,!0)},x.max=function(a,b,c){if(!b&&x.isArray(a)&&a[0]===+a[0]&&65535>a.length)return Math.max.apply(Math,a);if(!b&&x.isEmpty(a))return-1/0;var d={computed:-1/0,value:-1/0};return y(a,function(a,e,f){var g=b?b.call(c,a,e,f):a;g>=d.computed&&(d={value:a,computed:g})}),d.value},x.min=function(a,b,c){if(!b&&x.isArray(a)&&a[0]===+a[0]&&65535>a.length)return Math.min.apply(Math,a);if(!b&&x.isEmpty(a))return 1/0;var d={computed:1/0,value:1/0};return y(a,function(a,e,f){var g=b?b.call(c,a,e,f):a;d.computed>g&&(d={value:a,computed:g})}),d.value},x.shuffle=function(a){var b,c=0,d=[];return y(a,function(a){b=x.random(c++),d[c-1]=d[b],d[b]=a}),d};var B=function(a){return x.isFunction(a)?a:function(b){return b[a]}};x.sortBy=function(a,b,c){var d=B(b);return x.pluck(x.map(a,function(a,b,e){return{value:a,index:b,criteria:d.call(c,a,b,e)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;if(c!==d){if(c>d||void 0===c)return 1;if(d>c||void 0===d)return-1}return a.indexf;){var h=f+g>>>1;e>c.call(d,a[h])?f=h+1:g=h}return f},x.toArray=function(a){return a?x.isArray(a)?h.call(a):a.length===+a.length?x.map(a,x.identity):x.values(a):[]},x.size=function(a){return null==a?0:a.length===+a.length?a.length:x.keys(a).length},x.first=x.head=x.take=function(a,b,c){return null==a?void 0:null==b||c?a[0]:h.call(a,0,b)},x.initial=function(a,b,c){return h.call(a,0,a.length-(null==b||c?1:b))},x.last=function(a,b,c){return null==a?void 0:null==b||c?a[a.length-1]:h.call(a,Math.max(a.length-b,0))},x.rest=x.tail=x.drop=function(a,b,c){return h.call(a,null==b||c?1:b)},x.compact=function(a){return x.filter(a,x.identity)};var D=function(a,b,c){return y(a,function(a){x.isArray(a)?b?g.apply(c,a):D(a,b,c):c.push(a)}),c};x.flatten=function(a,b){return D(a,b,[])},x.without=function(a){return x.difference(a,h.call(arguments,1))},x.uniq=x.unique=function(a,b,c,d){x.isFunction(b)&&(d=c,c=b,b=!1);var e=c?x.map(a,c,d):a,f=[],g=[];return y(e,function(c,d){(b?d&&g[g.length-1]===c:x.contains(g,c))||(g.push(c),f.push(a[d]))}),f},x.union=function(){return x.uniq(i.apply(d,arguments))},x.intersection=function(a){var b=h.call(arguments,1);return x.filter(x.uniq(a),function(a){return x.every(b,function(b){return x.indexOf(b,a)>=0})})},x.difference=function(a){var b=i.apply(d,h.call(arguments,1));return x.filter(a,function(a){return!x.contains(b,a)})},x.zip=function(){for(var a=h.call(arguments),b=x.max(x.pluck(a,"length")),c=Array(b),d=0;b>d;d++)c[d]=x.pluck(a,""+d);return c},x.object=function(a,b){if(null==a)return{};for(var c={},d=0,e=a.length;e>d;d++)b?c[a[d]]=b[d]:c[a[d][0]]=a[d][1];return c},x.indexOf=function(a,b,c){if(null==a)return-1;var d=0,e=a.length;if(c){if("number"!=typeof c)return d=x.sortedIndex(a,b),a[d]===b?d:-1;d=0>c?Math.max(0,e+c):c}if(s&&a.indexOf===s)return a.indexOf(b,c);for(;e>d;d++)if(a[d]===b)return d;return-1},x.lastIndexOf=function(a,b,c){if(null==a)return-1;var d=null!=c;if(t&&a.lastIndexOf===t)return d?a.lastIndexOf(b,c):a.lastIndexOf(b);for(var e=d?c:a.length;e--;)if(a[e]===b)return e;return-1},x.range=function(a,b,c){1>=arguments.length&&(b=a||0,a=0),c=arguments[2]||1;for(var d=Math.max(Math.ceil((b-a)/c),0),e=0,f=Array(d);d>e;)f[e++]=a,a+=c;return f},x.bind=function(a,b){if(a.bind===w&&w)return w.apply(a,h.call(arguments,1));var c=h.call(arguments,2);return function(){return a.apply(b,c.concat(h.call(arguments)))}},x.partial=function(a){var b=h.call(arguments,1);return function(){return a.apply(this,b.concat(h.call(arguments)))}},x.bindAll=function(a){var b=h.call(arguments,1);return 0===b.length&&(b=x.functions(a)),y(b,function(b){a[b]=x.bind(a[b],a)}),a},x.memoize=function(a,b){var c={};return b||(b=x.identity),function(){var d=b.apply(this,arguments);return x.has(c,d)?c[d]:c[d]=a.apply(this,arguments)}},x.delay=function(a,b){var c=h.call(arguments,2);return setTimeout(function(){return a.apply(null,c)},b)},x.defer=function(a){return x.delay.apply(x,[a,1].concat(h.call(arguments,1)))},x.throttle=function(a,b){var c,d,e,f,g=0,h=function(){g=new Date,e=null,f=a.apply(c,d)};return function(){var i=new Date,j=b-(i-g);return c=this,d=arguments,0>=j?(clearTimeout(e),e=null,g=i,f=a.apply(c,d)):e||(e=setTimeout(h,j)),f}},x.debounce=function(a,b,c){var d,e;return function(){var f=this,g=arguments,h=function(){d=null,c||(e=a.apply(f,g))},i=c&&!d;return clearTimeout(d),d=setTimeout(h,b),i&&(e=a.apply(f,g)),e}},x.once=function(a){var b,c=!1;return function(){return c?b:(c=!0,b=a.apply(this,arguments),a=null,b)}},x.wrap=function(a,b){return function(){var c=[a];return g.apply(c,arguments),b.apply(this,c)}},x.compose=function(){var a=arguments;return function(){for(var b=arguments,c=a.length-1;c>=0;c--)b=[a[c].apply(this,b)];return b[0]}},x.after=function(a,b){return 0>=a?b():function(){return 1>--a?b.apply(this,arguments):void 0}},x.keys=v||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var b=[];for(var c in a)x.has(a,c)&&(b[b.length]=c);return b},x.values=function(a){var b=[];for(var c in a)x.has(a,c)&&b.push(a[c]);return b},x.pairs=function(a){var b=[];for(var c in a)x.has(a,c)&&b.push([c,a[c]]);return b},x.invert=function(a){var b={};for(var c in a)x.has(a,c)&&(b[a[c]]=c);return b},x.functions=x.methods=function(a){var b=[];for(var c in a)x.isFunction(a[c])&&b.push(c);return b.sort()},x.extend=function(a){return y(h.call(arguments,1),function(b){if(b)for(var c in b)a[c]=b[c]}),a},x.pick=function(a){var b={},c=i.apply(d,h.call(arguments,1));return y(c,function(c){c in a&&(b[c]=a[c])}),b},x.omit=function(a){var b={},c=i.apply(d,h.call(arguments,1));for(var e in a)x.contains(c,e)||(b[e]=a[e]);return b},x.defaults=function(a){return y(h.call(arguments,1),function(b){if(b)for(var c in b)null==a[c]&&(a[c]=b[c])}),a},x.clone=function(a){return x.isObject(a)?x.isArray(a)?a.slice():x.extend({},a):a},x.tap=function(a,b){return b(a),a};var E=function(a,b,c,d){if(a===b)return 0!==a||1/a==1/b;if(null==a||null==b)return a===b;a instanceof x&&(a=a._wrapped),b instanceof x&&(b=b._wrapped);var e=j.call(a);if(e!=j.call(b))return!1;switch(e){case"[object String]":return a==b+"";case"[object Number]":return a!=+a?b!=+b:0==a?1/a==1/b:a==+b;case"[object Date]":case"[object Boolean]":return+a==+b;case"[object RegExp]":return a.source==b.source&&a.global==b.global&&a.multiline==b.multiline&&a.ignoreCase==b.ignoreCase}if("object"!=typeof a||"object"!=typeof b)return!1;for(var f=c.length;f--;)if(c[f]==a)return d[f]==b;c.push(a),d.push(b);var g=0,h=!0;if("[object Array]"==e){if(g=a.length,h=g==b.length)for(;g--&&(h=E(a[g],b[g],c,d)););}else{var i=a.constructor,k=b.constructor;if(i!==k&&!(x.isFunction(i)&&i instanceof i&&x.isFunction(k)&&k instanceof k))return!1;for(var l in a)if(x.has(a,l)&&(g++,!(h=x.has(b,l)&&E(a[l],b[l],c,d))))break;if(h){for(l in b)if(x.has(b,l)&&!g--)break;h=!g}}return c.pop(),d.pop(),h};x.isEqual=function(a,b){return E(a,b,[],[])},x.isEmpty=function(a){if(null==a)return!0;if(x.isArray(a)||x.isString(a))return 0===a.length;for(var b in a)if(x.has(a,b))return!1;return!0},x.isElement=function(a){return!(!a||1!==a.nodeType)},x.isArray=u||function(a){return"[object Array]"==j.call(a)},x.isObject=function(a){return a===Object(a)},y(["Arguments","Function","String","Number","Date","RegExp"],function(a){x["is"+a]=function(b){return j.call(b)=="[object "+a+"]"}}),x.isArguments(arguments)||(x.isArguments=function(a){return!(!a||!x.has(a,"callee"))}),"function"!=typeof/./&&(x.isFunction=function(a){return"function"==typeof a}),x.isFinite=function(a){return isFinite(a)&&!isNaN(parseFloat(a))},x.isNaN=function(a){return x.isNumber(a)&&a!=+a},x.isBoolean=function(a){return a===!0||a===!1||"[object Boolean]"==j.call(a)},x.isNull=function(a){return null===a},x.isUndefined=function(a){return void 0===a},x.has=function(a,b){return k.call(a,b)},x.noConflict=function(){return a._=b,this},x.identity=function(a){return a},x.times=function(a,b,c){for(var d=Array(a),e=0;a>e;e++)d[e]=b.call(c,e);return d},x.random=function(a,b){return null==b&&(b=a,a=0),a+Math.floor(Math.random()*(b-a+1))};var F={escape:{"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"}};F.unescape=x.invert(F.escape);var G={escape:RegExp("["+x.keys(F.escape).join("")+"]","g"),unescape:RegExp("("+x.keys(F.unescape).join("|")+")","g")};x.each(["escape","unescape"],function(a){x[a]=function(b){return null==b?"":(""+b).replace(G[a],function(b){return F[a][b]})}}),x.result=function(a,b){if(null==a)return null;var c=a[b];return x.isFunction(c)?c.call(a):c},x.mixin=function(a){y(x.functions(a),function(b){var c=x[b]=a[b];x.prototype[b]=function(){var a=[this._wrapped];return g.apply(a,arguments),L.call(this,c.apply(x,a))}})};var H=0;x.uniqueId=function(a){var b=++H+"";return a?a+b:b},x.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var I=/(.)^/,J={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"},K=/\\|'|\r|\n|\t|\u2028|\u2029/g;x.template=function(a,b,c){var d;c=x.defaults({},c,x.templateSettings);var e=RegExp([(c.escape||I).source,(c.interpolate||I).source,(c.evaluate||I).source].join("|")+"|$","g"),f=0,g="__p+='";a.replace(e,function(b,c,d,e,h){return g+=a.slice(f,h).replace(K,function(a){return"\\"+J[a]}),c&&(g+="'+\n((__t=("+c+"))==null?'':_.escape(__t))+\n'"),d&&(g+="'+\n((__t=("+d+"))==null?'':__t)+\n'"),e&&(g+="';\n"+e+"\n__p+='"),f=h+b.length,b}),g+="';\n",c.variable||(g="with(obj||{}){\n"+g+"}\n"),g="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+g+"return __p;\n";try{d=Function(c.variable||"obj","_",g)}catch(h){throw h.source=g,h}if(b)return d(b,x);var i=function(a){return d.call(this,a,x)};return i.source="function("+(c.variable||"obj")+"){\n"+g+"}",i},x.chain=function(a){return x(a).chain()};var L=function(a){return this._chain?x(a).chain():a};x.mixin(x),y(["pop","push","reverse","shift","sort","splice","unshift"],function(a){var b=d[a];x.prototype[a]=function(){var c=this._wrapped;return b.apply(c,arguments),"shift"!=a&&"splice"!=a||0!==c.length||delete c[0],L.call(this,c)}}),y(["concat","join","slice"],function(a){var b=d[a];x.prototype[a]=function(){return L.call(this,b.apply(this._wrapped,arguments))}}),x.extend(x.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}})}.call(this),function(a){"use strict";function b(a,b){f.async(function(){a.trigger("promise:resolved",{detail:b}),a.isResolved=!0,a.resolvedValue=b})}function c(a,b){f.async(function(){a.trigger("promise:failed",{detail:b}),a.isRejected=!0,a.rejectedValue=b})}function d(a){var b,c=[],d=new p,e=a.length;0===e&&d.resolve([]);var f=function(a){return function(b){g(a,b)}},g=function(a,b){c[a]=b,0===--e&&d.resolve(c)},h=function(a){d.reject(a)};for(b=0;e>b;b++)a[b].then(f(b),h);return d}function e(a,b){f[a]=b}var f={},g="undefined"!=typeof window?window:{},h=g.MutationObserver||g.WebKitMutationObserver;if("undefined"!=typeof process&&"[object process]"==={}.toString.call(process))f.async=function(a,b){process.nextTick(function(){a.call(b)})};else if(h){var i=[],j=new h(function(){var a=i.slice();i=[],a.forEach(function(a){var b=a[0],c=a[1];b.call(c)})}),k=document.createElement("div");j.observe(k,{attributes:!0}),window.addEventListener("unload",function(){j.disconnect(),j=null}),f.async=function(a,b){i.push([a,b]),k.setAttribute("drainQueue","drainQueue")}}else f.async=function(a,b){setTimeout(function(){a.call(b)},1)};var l=function(a,b){this.type=a;for(var c in b)b.hasOwnProperty(c)&&(this[c]=b[c])},m=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c][0]===b)return c;return-1},n=function(a){var b=a._promiseCallbacks;return b||(b=a._promiseCallbacks={}),b},o={mixin:function(a){return a.on=this.on,a.off=this.off,a.trigger=this.trigger,a},on:function(a,b,c){var d,e,f=n(this);for(a=a.split(/\s+/),c=c||this;e=a.shift();)d=f[e],d||(d=f[e]=[]),-1===m(d,b)&&d.push([b,c])},off:function(a,b){var c,d,e,f=n(this);for(a=a.split(/\s+/);d=a.shift();)b?(c=f[d],e=m(c,b),-1!==e&&c.splice(e,1)):f[d]=[]},trigger:function(a,b){var c,d,e,f,g,h=n(this);if(c=h[a])for(var i=0,j=c.length;j>i;i++)d=c[i],e=d[0],f=d[1],"object"!=typeof b&&(b={detail:b}),g=new l(a,b),e.call(f,g)}},p=function(){this.on("promise:resolved",function(a){this.trigger("success",{detail:a.detail})},this),this.on("promise:failed",function(a){this.trigger("error",{detail:a.detail})},this)},q=function(){},r=function(a,b,c,d){var e,f,g,h,i="function"==typeof c;if(i)try{e=c(d.detail),g=!0}catch(j){h=!0,f=j}else e=d.detail,g=!0;e&&"function"==typeof e.then?e.then(function(a){b.resolve(a)},function(a){b.reject(a)}):i&&g?b.resolve(e):h?b.reject(f):b[a](e)};p.prototype={then:function(a,b){var c=new p;return this.isResolved&&f.async(function(){r("resolve",c,a,{detail:this.resolvedValue})},this),this.isRejected&&f.async(function(){r("reject",c,b,{detail:this.rejectedValue})},this),this.on("promise:resolved",function(b){r("resolve",c,a,b)}),this.on("promise:failed",function(a){r("reject",c,b,a)}),c},resolve:function(a){b(this,a),this.resolve=q,this.reject=q},reject:function(a){c(this,a),this.resolve=q,this.reject=q}},o.mixin(p.prototype),a.Promise=p,a.Event=l,a.EventTarget=o,a.all=d,a.configure=e}(window.RSVP={});var EPUBJS=EPUBJS||{};EPUBJS.VERSION="0.1.5",EPUBJS.plugins=EPUBJS.plugins||{},EPUBJS.filePath=EPUBJS.filePath||"/epubjs/",EPUBJS.Book=function(a,b){var c=this;this.settings=_.defaults(b||{},{storage:!1,fromStorage:!1,saved:!1,online:!0,contained:!1,width:!1,height:!1,spreads:!0,fixedLayout:!1,responsive:!0,version:1,restore:!1,reload:!1,styles:{}}),this.settings.EPUBJSVERSION=EPUBJS.VERSION,this.spinePos=0,this.stored=!1,this.hooks={beforeChapterDisplay:[]},this.getHooks(),this.online=this.settings.online||navigator.onLine,this.networkListeners(),0!=this.settings.storage&&(this.storage=new fileStorage.storage(this.settings.storage)),this.ready={manifest:new RSVP.Promise,spine:new RSVP.Promise,metadata:new RSVP.Promise,cover:new RSVP.Promise,toc:new RSVP.Promise},this.ready.all=RSVP.all(_.values(this.ready)),this.ready.all.then(function(){this.trigger("book:ready")}.bind(this)),a&&(this.opened=this.open(a)),window.addEventListener("beforeunload",function(){c.settings.restore&&(c.saveSettings(),c.saveContents()),c.trigger("book:unload")},!1)},EPUBJS.Book.prototype.open=function(a,b){var c,d=this,e=this.isSaved(a);return this.settings.bookPath=a,this.bookUrl=this.urlFrom(a),e&&!b&&this.applySavedSettings(),this.settings.contained||this.isContained(a)?(this.settings.contained=this.contained=!0,this.bookUrl="",c=this.unarchive(a).then(function(){return e&&d.settings.restore&&!b?d.restore():d.unpack()})):c=e&&this.settings.restore&&!b?this.restore():this.unpack(),this.online&&this.settings.storage&&!this.settings.contained&&(this.settings.stored||c.then(d.storeOffline())),c},EPUBJS.Book.prototype.unpack=function(a){var b=this,c=new EPUBJS.Parser,a=a||"META-INF/container.xml";return b.loadXml(b.bookUrl+a).then(function(a){return c.container(a)}).then(function(a){return b.settings.contentsPath=b.bookUrl+a.basePath,b.settings.packageUrl=b.bookUrl+a.packagePath,b.loadXml(b.settings.packageUrl)}).then(function(a){return c.package(a,b.settings.contentsPath)}).then(function(a){return b.contents=a,b.manifest=b.contents.manifest,b.spine=b.contents.spine,b.spineIndexByURL=b.contents.spineIndexByURL,b.metadata=b.contents.metadata,b.cover=b.contents.cover=b.settings.contentsPath+a.coverPath,b.spineNodeIndex=b.contents.spineNodeIndex=a.spineNodeIndex,b.ready.manifest.resolve(b.contents.manifest),b.ready.spine.resolve(b.contents.spine),b.ready.metadata.resolve(b.contents.metadata),b.ready.cover.resolve(b.contents.cover),b.settings.tocUrl=b.settings.contentsPath+a.tocPath,b.loadXml(b.settings.tocUrl)}).then(function(a){return c.toc(a)}).then(function(a){b.toc=b.contents.toc=a,b.ready.toc.resolve(b.contents.toc)}).then(null,function(a){console.error(a)})},EPUBJS.Book.prototype.getMetadata=function(){return this.ready.metadata},EPUBJS.Book.prototype.getToc=function(){return this.ready.toc},EPUBJS.Book.prototype.networkListeners=function(){var a=this;window.addEventListener("offline",function(){a.online=!1,a.trigger("book:offline")},!1),window.addEventListener("online",function(){a.online=!0,a.trigger("book:online")},!1)},EPUBJS.Book.prototype.loadXml=function(a){return this.settings.fromStorage?this.storage.getXml(a):this.settings.contained?this.zip.getXml(a):EPUBJS.core.request(a,"xml")},EPUBJS.Book.prototype.urlFrom=function(a){var b=-1!=a.search("://"),c="/"==a[0],d=window.location,e=d.origin||d.protocol+"//"+d.host;return b?a:!b&&c?e+a:b||c?void 0:e+EPUBJS.core.folder(d.pathname)+a},EPUBJS.Book.prototype.unarchive=function(a){return this.zip=new EPUBJS.Unarchiver,this.zip.openZip(a)},EPUBJS.Book.prototype.isContained=function(a){var b=a.lastIndexOf("."),c=a.slice(b+1);return!c||"epub"!=c&&"zip"!=c?!1:!0},EPUBJS.Book.prototype.isSaved=function(a){var b=a+":"+this.settings.version,c=localStorage.getItem(b);return localStorage&&null!==c?!0:!1},EPUBJS.Book.prototype.removeSavedSettings=function(){var a=this.settings.bookPath+":"+this.settings.version;localStorage.removeItem(a),this.settings.stored=!1},EPUBJS.Book.prototype.applySavedSettings=function(){var a=this.settings.bookPath+":"+this.settings.version;return stored=JSON.parse(localStorage.getItem(a)),EPUBJS.VERSION!=stored.EPUBJSVERSION?!1:(this.settings=_.defaults(this.settings,stored),void 0)},EPUBJS.Book.prototype.saveSettings=function(){var a=this.settings.bookPath+":"+this.settings.version;this.render&&(this.settings.previousLocationCfi=this.render.currentLocationCfi),localStorage.setItem(a,JSON.stringify(this.settings))},EPUBJS.Book.prototype.saveContents=function(){var a=this.settings.bookPath+":contents:"+this.settings.version;localStorage.setItem(a,JSON.stringify(this.contents))},EPUBJS.Book.prototype.removeSavedContents=function(){var a=this.settings.bookPath+":contents:"+this.settings.version;localStorage.removeItem(a)},EPUBJS.Book.prototype.renderTo=function(a){var b=this;if(_.isElement(a))this.element=a;else{if("string"!=typeof a)return console.error("Not an Element"),void 0;this.element=EPUBJS.core.getEl(a)}return this.opened.then(function(){return b.render=new EPUBJS.Renderer(b),b.startDisplay()})},EPUBJS.Book.prototype.startDisplay=function(){var a;return a=this.settings.restore&&this.settings.previousLocationCfi?this.displayChapter(this.settings.previousLocationCfi):this.displayChapter(this.spinePos)},EPUBJS.Book.prototype.restore=function(a){var b=this,c=this.settings.bookPath+":contents:"+this.settings.version,d=new RSVP.Promise,e=["manifest","spine","metadata","cover","toc","spineNodeIndex","spineIndexByURL"],a=a||!1,f=localStorage.getItem(c);return this.settings.clearSaved&&(a=!0),a||"undefined"==f||"null"==f||(this.contents=JSON.parse(f),e.forEach(function(c){b[c]=b.contents[c],b[c]||(a=!0)})),!a&&f&&this.contents&&this.settings.contentsPath?(this.ready.manifest.resolve(this.manifest),this.ready.spine.resolve(this.spine),this.ready.metadata.resolve(this.metadata),this.ready.cover.resolve(this.cover),this.ready.toc.resolve(this.toc),d.resolve(),d):this.open(this.settings.bookPath,!0)},EPUBJS.Book.prototype.displayChapter=function(a,b){var c,d,e,f=this;return _.isNumber(a)?e=a:(d=new EPUBJS.EpubCFI(a),e=d.spinePos),e>=this.spine.length?!1:0>e?!1:(this.spinePos=e,this.chapter=new EPUBJS.Chapter(this.spine[e]),c=f.render.chapter(this.chapter),d?c.then(function(b){b.currentLocationCfi=a,b.gotoCfiFragment(d)}):b&&c.then(function(a){a.gotoChapterEnd()}),this.settings.fromStorage||this.settings.contained||c.then(function(){f.preloadNextChapter()}),c)},EPUBJS.Book.prototype.nextPage=function(){var a=this.render.nextPage();return a?void 0:this.nextChapter()},EPUBJS.Book.prototype.prevPage=function(){var a=this.render.prevPage();return a?void 0:this.prevChapter()},EPUBJS.Book.prototype.nextChapter=function(){return this.spinePos++,this.displayChapter(this.spinePos)},EPUBJS.Book.prototype.prevChapter=function(){return this.spinePos--,this.displayChapter(this.spinePos,!0)},EPUBJS.Book.prototype.goto=function(a){var b,c=a.split("#"),d=c[0],e=c[1]||!1,f=-1==d.search("://")?this.settings.contentsPath+d:d,g=this.spineIndexByURL[f];return d||(g=this.chapter.spinePos),"number"!=typeof g?!1:g==this.chapter.spinePos&&this.chapter?(e&&this.render.section(e),(new RSVP.Promise).resolve(this.currentChapter)):this.displayChapter(g).then(function(){e&&b.render.section(e)})},EPUBJS.Book.prototype.preloadNextChapter=function(){return document.createElement("iframe"),this.spinePos>=this.spine.length?!1:(next=new EPUBJS.Chapter(this.spine[this.spinePos+1]),EPUBJS.core.request(next.href),void 0)},EPUBJS.Book.prototype.storeOffline=function(){var a=this,b=_.values(this.manifest);return EPUBJS.storage.batch(b).then(function(){a.settings.stored=!0,a.trigger("book:stored")})},EPUBJS.Book.prototype.availableOffline=function(){return this.settings.stored>0?!0:!1},EPUBJS.Book.prototype.setStyle=function(a,b,c){this.render.setStyle(a,b,c),this.settings.styles[a]=b},EPUBJS.Book.prototype.removeStyle=function(a){this.render.removeStyle(a),delete this.settings.styles[a]},EPUBJS.Book.prototype.getHooks=function(){var a,b=this;plugTypes=_.values(this.hooks);for(plugType in this.hooks)a=_.values(EPUBJS.Hooks[plugType]),a.forEach(function(a){b.registerHook(plugType,a)})},EPUBJS.Book.prototype.registerHook=function(a,b,c){var d=this;"undefined"!=typeof this.hooks[a]?"function"==typeof b?c?this.hooks[a].unshift(b):this.hooks[a].push(b):Array.isArray(b)&&b.forEach(function(b){c?d.hooks[a].unshift(b):d.hooks[a].push(b)}):this.hooks[a]=[func]},EPUBJS.Book.prototype.triggerHooks=function(a,b,c){function d(){f--,0>=f&&b&&b()}var e,f;return"undefined"==typeof this.hooks[a]?!1:(e=this.hooks[a],f=e.length,e.forEach(function(a){a(d,c)}),void 0)},RSVP.EventTarget.mixin(EPUBJS.Book.prototype),EPUBJS.Chapter=function(a){this.href=a.href,this.id=a.id,this.spinePos=a.index,this.properties=a.properties,this.linear=a.linear,this.pages=1},EPUBJS.Chapter.prototype.contents=function(a){return a?a.get(href):EPUBJS.core.request(href,"xml")},EPUBJS.Chapter.prototype.url=function(a){var b=new RSVP.Promise;return a?(this.tempUrl||(this.tempUrl=a.getUrl(this.href)),this.tempUrl):(b.resolve(this.href),b)},EPUBJS.Chapter.prototype.setPages=function(a){this.pages=a},EPUBJS.Chapter.prototype.getPages=function(){return this.pages},EPUBJS.Chapter.prototype.getID=function(){return this.ID},EPUBJS.Chapter.prototype.unload=function(a){this.tempUrl&&a&&(a.revokeUrl(this.tempUrl),this.tempUrl=!1)};var EPUBJS=EPUBJS||{};EPUBJS.core={},EPUBJS.core.getEl=function(a){return document.getElementById(a)},EPUBJS.core.getEls=function(a){return document.getElementsByClassName(a)},EPUBJS.core.request=function(a,b){function c(){if(this.readyState===this.DONE)if(200===this.status||this.responseXML){var a;a="xml"==b?this.responseXML:"json"==b?JSON.parse(this.response):this.response,d.resolve(a)}else d.reject(this)}var d=new RSVP.Promise,e=new XMLHttpRequest;return e.open("GET",a),e.onreadystatechange=c,"blob"==b&&(e.responseType=b),"json"==b&&e.setRequestHeader("Accept","application/json"),"xml"==b&&e.overrideMimeType("text/xml"),e.send(),d},EPUBJS.core.toArray=function(a){var b=[];for(member in a){var c;a.hasOwnProperty(member)&&(c=a[member],c.ident=member,b.push(c))}return b},EPUBJS.core.folder=function(a){var b=a.lastIndexOf("/"),c=a.slice(0,b+1);return-1==b&&(c=""),c},EPUBJS.core.dataURLToBlob=function(a){var b=";base64,";if(-1==a.indexOf(b)){var c=a.split(","),d=c[0].split(":")[1],e=c[1];return new Blob([e],{type:d})}for(var c=a.split(b),d=c[0].split(":")[1],e=window.atob(c[1]),f=e.length,g=new Uint8Array(f),h=0;f>h;++h)g[h]=e.charCodeAt(h);return new Blob([g],{type:d})},EPUBJS.core.addScript=function(a,b,c){var d,e;e=!1,d=document.createElement("script"),d.type="text/javascript",d.async=!1,d.src=a,d.onload=d.onreadystatechange=function(){e||this.readyState&&"complete"!=this.readyState||(e=!0,b&&b())},c=c||document.body,c.appendChild(d)},EPUBJS.core.addScripts=function(a,b,c){var d=a.length,e=0,f=function(){e++,d==e?b&&b():EPUBJS.core.loadScript(a[e],f,c)};EPUBJS.core.addScript(a[e],f,c)},EPUBJS.core.addCss=function(a,b,c){var d,e;e=!1,d=document.createElement("link"),d.type="text/css",d.rel="stylesheet",d.href=a,d.onload=d.onreadystatechange=function(){e||this.readyState&&"complete"!=this.readyState||(e=!0,b&&b())},c=c||document.body,c.appendChild(d)},EPUBJS.core.prefixed=function(a){var b=["Webkit","Moz","O","ms"],c=a[0].toUpperCase()+a.slice(1),d=b.length,e=0;if("undefined"!=typeof document.body.style[a])return a;for(;d>e;e++)if("undefined"!=typeof document.body.style[b[e]+c])return b[e]+c;return a},EPUBJS.core.resolveUrl=function(a,b){var c,d,e=[],f=a.split("/");return f.pop(),d=b.split("/"),d.forEach(function(a){".."===a?f.pop():e.push(a)}),c=f.concat(e),c.join("/")},EPUBJS.EpubCFI=function(a){return a?this.parse(a):void 0},EPUBJS.EpubCFI.prototype.generateChapter=function(a,b,c){var a=a+1,d="/"+a+"/";return d+=2*(b+1),c&&(d+="["+c+"]"),d+="!"},EPUBJS.EpubCFI.prototype.generateFragment=function(a,b){var c=this.pathTo(a),d=[];return b&&d.push(b),c.forEach(function(a){d.push(2*(a.index+1)),a.id&&"EPUBJS"!=a.id.slice(0,6)&&d.push("["+a.id+"]")}),d.join("/")},EPUBJS.EpubCFI.prototype.pathTo=function(a){for(var b,c=[];a&&null!==a.parentNode;)b=a.parentNode.children,c.unshift({id:a.id,tagName:a.tagName,index:b?Array.prototype.indexOf.call(b,a):0}),a=a.parentNode;return c},EPUBJS.EpubCFI.prototype.getChapter=function(a){var b=a.split("!");return b[0]},EPUBJS.EpubCFI.prototype.getFragment=function(a){var b=a.split("!");return b[1]},EPUBJS.EpubCFI.prototype.getOffset=function(a){var b=a.split(":");return[b[0],b[1]]},EPUBJS.EpubCFI.prototype.parse=function(a){var b,c,d,e,f={};return f.chapter=this.getChapter(a),f.fragment=this.getFragment(a),f.spinePos=parseInt(f.chapter.split("/")[2])/2-1||0,b=f.chapter.match(/\[(.*)\]/),f.spineId=b[1]||!1,c=f.fragment.split("/"),d=c[c.length-1],f.sections=[],parseInt(d)%2&&(e=this.getOffset(),f.text=parseInt(e[0]),f.character=parseInt(e[1]),c.pop()),c.forEach(function(a){var b,c,d;a&&(b=parseInt(a)/2-1,c=a.match(/\[(.*)\]/),c&&c[1]&&(d=c[1]),f.sections.push({index:b,id:d||!1}))}),f},EPUBJS.EpubCFI.prototype.getElement=function(a,b){var c,b=b||document,d=a.sections,e=b.getElementsByTagName("html")[0],f=Array.prototype.slice.call(e.children);for(d.shift();d.length>0;)c=d.shift(),c.id?e=b.querySelector("#"+c.id):(e=f[c.index],f||console.error("No Kids",e)),e||console.error("No Element For",c),f=Array.prototype.slice.call(e.children);return e},EPUBJS.Events=function(a,b){return this.events={},this.el=b?b:document.createElement("div"),a.createEvent=this.createEvent,a.tell=this.tell,a.listen=this.listen,a.deafen=this.deafen,a.listenUntil=this.listenUntil,this},EPUBJS.Events.prototype.createEvent=function(a){var b=new CustomEvent(a);return this.events[a]=b,b},EPUBJS.Events.prototype.tell=function(a,b){var c;this.events[a]?c=this.events[a]:(console.warn("No event:",a,"defined yet, creating."),c=this.createEvent(a)),b&&(c.msg=b),this.el.dispatchEvent(c)},EPUBJS.Events.prototype.listen=function(a,b,c){return this.events[a]?(c?this.el.addEventListener(a,b.bind(c),!1):this.el.addEventListener(a,b,!1),void 0):(console.warn("No event:",a,"defined yet, creating."),this.createEvent(a),void 0)},EPUBJS.Events.prototype.deafen=function(a,b){this.el.removeEventListener(a,b,!1)},EPUBJS.Events.prototype.listenUntil=function(a,b,c,d){function e(){this.deafen(a,c),this.deafen(b,e)}this.listen(a,c,d),this.listen(b,e,this)},EPUBJS.Hooks=function(){"use strict";return{register:function(a){if(void 0===this[a]&&(this[a]={}),"object"!=typeof this[a])throw"Already registered: "+a;return this[a]}}}(),EPUBJS.Parser=function(a){this.baseUrl=a||""},EPUBJS.Parser.prototype.container=function(a){var b=a.querySelector("rootfile"),c=b.getAttribute("full-path"),d=EPUBJS.core.folder(c);return{packagePath:c,basePath:d}},EPUBJS.Parser.prototype.package=function(a,b){var c=this;b&&(this.baseUrl=b);var d=a.querySelector("metadata"),e=a.querySelector("manifest"),f=a.querySelector("spine"),g=c.manifest(e),h=c.findTocPath(e),i=c.findCoverPath(e),j=Array.prototype.indexOf.call(f.parentNode.childNodes,f),k=c.spine(f,g),l={};return k.forEach(function(a){l[a.href]=a.index}),{metadata:c.metadata(d),spine:k,manifest:g,tocPath:h,coverPath:i,spineNodeIndex:j,spineIndexByURL:l}},EPUBJS.Parser.prototype.findTocPath=function(a){var b=a.querySelector("item[media-type='application/x-dtbncx+xml']");return b?b.getAttribute("href"):!1},EPUBJS.Parser.prototype.findCoverPath=function(a){var b=a.querySelector("item[properties='cover-image']");return b?b.getAttribute("href"):!1},EPUBJS.Parser.prototype.metadata=function(a){var b={},c=this;return b.bookTitle=c.getElementText(a,"title"),b.creator=c.getElementText(a,"creator"),b.description=c.getElementText(a,"description"),b.pubdate=c.getElementText(a,"date"),b.publisher=c.getElementText(a,"publisher"),b.identifier=c.getElementText(a,"identifier"),b.language=c.getElementText(a,"language"),b.rights=c.getElementText(a,"rights"),b.modified_date=c.querySelectorText(a,"meta[property='dcterms:modified']"),b.layout=c.querySelectorText(a,"meta[property='rendition:orientation']"),b.orientation=c.querySelectorText(a,"meta[property='rendition:orientation']"),b.spread=c.querySelectorText(a,"meta[property='rendition:spread']"),b -},EPUBJS.Parser.prototype.getElementText=function(a,b){var c,d=a.getElementsByTagNameNS("http://purl.org/dc/elements/1.1/",b);return d&&0!=d.length?(c=d[0],c.childNodes.length?c.childNodes[0].nodeValue:""):""},EPUBJS.Parser.prototype.querySelectorText=function(a,b){var c=a.querySelector(b);return c&&c.childNodes.length?c.childNodes[0].nodeValue:""},EPUBJS.Parser.prototype.manifest=function(a){var b=this.baseUrl,c={},d=a.querySelectorAll("item"),e=Array.prototype.slice.call(d);return e.forEach(function(a){var d=a.getAttribute("id"),e=a.getAttribute("href")||"",f=a.getAttribute("media-type")||"";c[d]={href:b+e,type:f}}),c},EPUBJS.Parser.prototype.spine=function(a,b){var c=[],d=a.getElementsByTagName("itemref"),e=Array.prototype.slice.call(d);return e.forEach(function(a,d){var e=a.getAttribute("idref"),f={id:e,linear:a.getAttribute("linear")||"",properties:a.getAttribute("properties")||"",href:b[e].href,index:d};c.push(f)}),c},EPUBJS.Parser.prototype.toc=function(a){function b(a){var c,d=[],e=[],f=a.childNodes,g=Array.prototype.slice.call(f),h=g.length,i=h;if(0==h)return!1;for(;i--;)c=g[i],"navPoint"===c.nodeName&&e.push(c);return e.forEach(function(a){var c=a.getAttribute("id"),e=a.querySelector("content"),f=e.getAttribute("src"),g=(f.split("#"),a.querySelector("navLabel")),h=g.textContent?g.textContent:"",i=b(a);d.unshift({id:c,href:f,label:h,subitems:i})}),d}var c=a.querySelector("navMap");return b(c)},EPUBJS.Renderer=function(a){this.el=a.element,this.book=a,this.settings=a.settings,a.registerHook("beforeChapterDisplay",[this.replaceLinks.bind(this),this.replaceResources.bind(this),this.replaceHead.bind(this)],!0),this.crossBrowserColumnCss(),this.epubcfi=new EPUBJS.EpubCFI,this.initialize(),this.listeners()},EPUBJS.Renderer.prototype.initialize=function(){this.iframe=document.createElement("iframe"),this.settings.width||this.settings.height?this.resizeIframe(!1,this.settings.width||this.el.clientWidth,this.settings.height||this.el.clientHeight):(this.resizeIframe(!1,this.el.clientWidth,this.el.clientHeight),this.on("renderer:resized",this.resizeIframe,this)),this.el.appendChild(this.iframe)},EPUBJS.Renderer.prototype.listeners=function(){this.resized=_.debounce(this.onResized.bind(this),10),window.addEventListener("resize",this.resized,!1)},EPUBJS.Renderer.prototype.chapter=function(a){var b=this,c=!1;return this.book.settings.contained&&(c=this.book.zip),this.currentChapter&&(this.currentChapter.unload(),this.trigger("renderer:chapterUnloaded"),this.book.trigger("renderer:chapterUnloaded")),this.currentChapter=a,this.chapterPos=1,this.pageIds={},this.leftPos=0,this.currentChapterCfi=this.epubcfi.generateChapter(this.book.spineNodeIndex,a.spinePos,a.id),this.visibileEl=!1,a.url(c).then(function(a){return b.setIframeSrc(a)})},EPUBJS.Renderer.prototype.onResized=function(){var a={width:this.el.clientWidth,height:this.el.clientHeight};this.trigger("renderer:resized",a),this.book.trigger("book:resized",a),this.reformat()},EPUBJS.Renderer.prototype.reformat=function(){var a=this;a.book.settings.fixedLayout?a.fixedLayout():a.formatSpread(),setTimeout(function(){a.calcPages(),a.currentLocationCfi&&a.gotoCfiFragment(a.currentLocationCfi)},10)},EPUBJS.Renderer.prototype.destroy=function(){window.removeEventListener("resize",this.resized,!1)},EPUBJS.Renderer.prototype.resizeIframe=function(a,b,c){var d,e;a?(d=a.width,e=a.height):(d=b,e=c),this.iframe.height=e,0!=d%2&&(d+=1),this.iframe.width=d},EPUBJS.Renderer.prototype.crossBrowserColumnCss=function(){EPUBJS.Renderer.columnAxis=EPUBJS.core.prefixed("columnAxis"),EPUBJS.Renderer.columnGap=EPUBJS.core.prefixed("columnGap"),EPUBJS.Renderer.columnWidth=EPUBJS.core.prefixed("columnWidth"),EPUBJS.Renderer.transform=EPUBJS.core.prefixed("transform")},EPUBJS.Renderer.prototype.setIframeSrc=function(a){var b=this,c=new RSVP.Promise;return this.visible(!1),this.iframe.src=a,this.iframe.onload=function(){b.doc=b.iframe.contentDocument,b.docEl=b.doc.documentElement,b.bodyEl=b.doc.body,b.applyStyles(),b.book.settings.fixedLayout?b.fixedLayout():b.formatSpread(),b.beforeDisplay(function(){b.calcPages(),c.resolve(b),b.currentLocationCfi=b.getPageCfi(),b.trigger("renderer:chapterDisplayed"),b.book.trigger("renderer:chapterDisplayed"),b.visible(!0)})},c},EPUBJS.Renderer.prototype.formatSpread=function(){var a=2,b=800;this.colWidth&&(this.OldcolWidth=this.colWidth,this.OldspreadWidth=this.spreadWidth),this.elWidth=this.iframe.width,this.gap=this.gap||Math.ceil(this.elWidth/8),this.elWidth1?(this.chapterPos--,this.leftPos-=this.spreadWidth,this.setLeft(this.leftPos),this.currentLocationCfi=this.getPageCfi(),this.book.trigger("book:pageChanged",this.currentLocationCfi),this.chapterPos):!1},EPUBJS.Renderer.prototype.chapterEnd=function(){this.page(this.displayedPages),this.currentLocationCfi=this.getPageCfi()},EPUBJS.Renderer.prototype.setLeft=function(a){this.doc.defaultView.scrollTo(a,0)},EPUBJS.Renderer.prototype.replace=function(a,b,c){var d,e,f;d=this.doc.querySelectorAll(a),e=Array.prototype.slice.call(d),f=e.length,e.forEach(function(a){b(a,function(){f--,0>=f&&c&&c()})}.bind(this)),0===f&&c()},EPUBJS.Renderer.prototype.determineStore=function(){return this.book.fromStorage?"filesystem"==this.book.storage.getStorageType()?!1:this.book.store:this.book.contained?this.book.zip:!1},EPUBJS.Renderer.prototype.replaceHead=function(a){var b,c,d,e,f={},g=this,h=this.determineStore(),i=function(a,b){a.setAttribute("href",b),a.onload=function(){d--,0>=d&&j()}},j=function(){a&&a(),_.each(e,function(a){h.revokeUrl(a)}),g.urlCache=f};return h?(b=this.doc.head.querySelectorAll("[href]"),c=Array.prototype.slice.call(b),d=c.length,this.urlCache||(this.urlCache={}),e=_.clone(this.urlCache),c.forEach(function(a){var b=a.getAttribute("href"),c=this.book.settings.contentsPath+b;c in e?(i(a,e[c]),f[c]=e[c],delete e[c]):"stylesheet"===a.getAttribute("rel")?h.getText(c).then(function(b){g.replaceUrlsInCss(c,b).then(function(b){var d=window.URL||window.webkitURL||window.mozURL,e=new Blob([b],{type:"text/css"}),g=d.createObjectURL(e);i(a,g),f[c]=g},function(a){console.error(a)})}):h.getUrl(c).then(function(b){i(a,b),f[c]=b})}.bind(this)),0===d&&j(),void 0):(a&&a(),!1)},EPUBJS.Renderer.prototype.replaceUrlsInCss=function(a,b){var c=new RSVP.Promise,d=[],e=this.determineStore(),f=b.match(/url\(\'?\"?([^\'|^\"]*)\'?\"?\)/g);return f?(f.forEach(function(c){var f=EPUBJS.core.resolveUrl(a,c.replace(/url\(|[|\)|\'|\"]/g,""));replaced=e.getUrl(f).then(function(a){b=b.replace(c,'url("'+a+'")')},function(a){console.error(a)}),d.push(replaced)}),RSVP.all(d).then(function(){c.resolve(b)}),c):(c.resolve(b),c)},EPUBJS.Renderer.prototype.replaceLinks=function(a){var b=this.doc.querySelectorAll("a"),c=Array.prototype.slice.call(b),d=this;c.forEach(function(a){var b,c,e=a.getAttribute("href");e&&(b=e.search("://"),c="#"==e[0],-1!=b?a.setAttribute("target","_blank"):a.onclick=function(){return d.book.goto(e),!1})}),a&&a()},EPUBJS.Renderer.prototype.replaceResources=function(a){var b,c,d,e=this.determineStore();return e?(b=this.doc.querySelectorAll("[src]"),c=Array.prototype.slice.call(b),d=c.length,c.forEach(function(b){var c=b.getAttribute("src"),f=this.book.settings.contentsPath+c;e.getUrl(f).then(function(c){b.src=c,b.onload=function(){d--,0>=d&&a&&a()}})}.bind(this)),0===d&&a(),void 0):(a&&a(),!1)},EPUBJS.Renderer.prototype.page=function(a){return a>=1&&a<=this.displayedPages?(this.chapterPos=a,this.leftPos=this.spreadWidth*(a-1),this.setLeft(this.leftPos),!0):!1},EPUBJS.Renderer.prototype.section=function(a){var b=this.doc.getElementById(a);b&&this.pageByElement(b)},EPUBJS.Renderer.prototype.pageByElement=function(a){var b,c;a&&(b=this.leftPos+a.getBoundingClientRect().left,c=Math.floor(b/this.spreadWidth)+1,this.page(c))},EPUBJS.Renderer.prototype.beforeDisplay=function(a){this.book.triggerHooks("beforeChapterDisplay",a.bind(this),this)},EPUBJS.Renderer.prototype.walk=function(a){for(var b,a,c,d,e,f=a,g=[f],h=1e4,i=0;!b&&g.length;){if(a=g.shift(),this.isElementVisible(a)&&(b=a),!b&&a&&a.childElementCount>0){c=a.children,d=c.length;for(var j=0;d>j;j++)c[j]!=e&&g.push(c[j])}if(!b&&0==g.length&&f&&null!==f.parentNode&&(g.push(f.parentNode),e=f,f=f.parentNode),i++,i>h){console.error("ENDLESS LOOP");break}}return b},EPUBJS.Renderer.prototype.getPageCfi=function(){var a=this.visibileEl;return this.visibileEl=this.findFirstVisible(a),this.visibileEl.id||(this.visibileEl.id="EPUBJS-PAGE-"+this.chapterPos),this.pageIds[this.chapterPos]=this.visibileEl.id,this.epubcfi.generateFragment(this.visibileEl,this.currentChapterCfi)},EPUBJS.Renderer.prototype.gotoCfiFragment=function(a){var b;_.isString(a)&&(a=this.epubcfi.parse(a)),b=this.epubcfi.getElement(a,this.doc),this.pageByElement(b)},EPUBJS.Renderer.prototype.findFirstVisible=function(a){var b,c=a||this.bodyEl;return b=this.walk(c),b?b:a},EPUBJS.Renderer.prototype.isElementVisible=function(a){var b;return a&&"function"==typeof a.getBoundingClientRect&&(b=a.getBoundingClientRect().left,b>=0&&be;e++)if(b.call(d,a[e],e,a)===c)return}else for(var g in a)if(x.has(a,g)&&b.call(d,a[g],g,a)===c)return};x.map=x.collect=function(a,b,c){var d=[];return null==a?d:m&&a.map===m?a.map(b,c):(y(a,function(a,e,f){d[d.length]=b.call(c,a,e,f)}),d)};var z="Reduce of empty array with no initial value";x.reduce=x.foldl=x.inject=function(a,b,c,d){var e=arguments.length>2;if(null==a&&(a=[]),n&&a.reduce===n)return d&&(b=x.bind(b,d)),e?a.reduce(b,c):a.reduce(b);if(y(a,function(a,f,g){e?c=b.call(d,c,a,f,g):(c=a,e=!0)}),!e)throw new TypeError(z);return c},x.reduceRight=x.foldr=function(a,b,c,d){var e=arguments.length>2;if(null==a&&(a=[]),o&&a.reduceRight===o)return d&&(b=x.bind(b,d)),e?a.reduceRight(b,c):a.reduceRight(b);var f=a.length;if(f!==+f){var g=x.keys(a);f=g.length}if(y(a,function(h,i,j){i=g?g[--f]:--f,e?c=b.call(d,c,a[i],i,j):(c=a[i],e=!0)}),!e)throw new TypeError(z);return c},x.find=x.detect=function(a,b,c){var d;return A(a,function(a,e,f){return b.call(c,a,e,f)?(d=a,!0):void 0}),d},x.filter=x.select=function(a,b,c){var d=[];return null==a?d:p&&a.filter===p?a.filter(b,c):(y(a,function(a,e,f){b.call(c,a,e,f)&&(d[d.length]=a)}),d)},x.reject=function(a,b,c){return x.filter(a,function(a,d,e){return!b.call(c,a,d,e)},c)},x.every=x.all=function(a,b,d){b||(b=x.identity);var e=!0;return null==a?e:q&&a.every===q?a.every(b,d):(y(a,function(a,f,g){return(e=e&&b.call(d,a,f,g))?void 0:c}),!!e)};var A=x.some=x.any=function(a,b,d){b||(b=x.identity);var e=!1;return null==a?e:r&&a.some===r?a.some(b,d):(y(a,function(a,f,g){return e||(e=b.call(d,a,f,g))?c:void 0}),!!e)};x.contains=x.include=function(a,b){return null==a?!1:s&&a.indexOf===s?-1!=a.indexOf(b):A(a,function(a){return a===b})},x.invoke=function(a,b){var c=h.call(arguments,2),d=x.isFunction(b);return x.map(a,function(a){return(d?b:a[b]).apply(a,c)})},x.pluck=function(a,b){return x.map(a,function(a){return a[b]})},x.where=function(a,b,c){return x.isEmpty(b)?c?null:[]:x[c?"find":"filter"](a,function(a){for(var c in b)if(b[c]!==a[c])return!1;return!0})},x.findWhere=function(a,b){return x.where(a,b,!0)},x.max=function(a,b,c){if(!b&&x.isArray(a)&&a[0]===+a[0]&&65535>a.length)return Math.max.apply(Math,a);if(!b&&x.isEmpty(a))return-1/0;var d={computed:-1/0,value:-1/0};return y(a,function(a,e,f){var g=b?b.call(c,a,e,f):a;g>=d.computed&&(d={value:a,computed:g})}),d.value},x.min=function(a,b,c){if(!b&&x.isArray(a)&&a[0]===+a[0]&&65535>a.length)return Math.min.apply(Math,a);if(!b&&x.isEmpty(a))return 1/0;var d={computed:1/0,value:1/0};return y(a,function(a,e,f){var g=b?b.call(c,a,e,f):a;d.computed>g&&(d={value:a,computed:g})}),d.value},x.shuffle=function(a){var b,c=0,d=[];return y(a,function(a){b=x.random(c++),d[c-1]=d[b],d[b]=a}),d};var B=function(a){return x.isFunction(a)?a:function(b){return b[a]}};x.sortBy=function(a,b,c){var d=B(b);return x.pluck(x.map(a,function(a,b,e){return{value:a,index:b,criteria:d.call(c,a,b,e)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;if(c!==d){if(c>d||void 0===c)return 1;if(d>c||void 0===d)return-1}return a.indexf;){var h=f+g>>>1;e>c.call(d,a[h])?f=h+1:g=h}return f},x.toArray=function(a){return a?x.isArray(a)?h.call(a):a.length===+a.length?x.map(a,x.identity):x.values(a):[]},x.size=function(a){return null==a?0:a.length===+a.length?a.length:x.keys(a).length},x.first=x.head=x.take=function(a,b,c){return null==a?void 0:null==b||c?a[0]:h.call(a,0,b)},x.initial=function(a,b,c){return h.call(a,0,a.length-(null==b||c?1:b))},x.last=function(a,b,c){return null==a?void 0:null==b||c?a[a.length-1]:h.call(a,Math.max(a.length-b,0))},x.rest=x.tail=x.drop=function(a,b,c){return h.call(a,null==b||c?1:b)},x.compact=function(a){return x.filter(a,x.identity)};var D=function(a,b,c){return y(a,function(a){x.isArray(a)?b?g.apply(c,a):D(a,b,c):c.push(a)}),c};x.flatten=function(a,b){return D(a,b,[])},x.without=function(a){return x.difference(a,h.call(arguments,1))},x.uniq=x.unique=function(a,b,c,d){x.isFunction(b)&&(d=c,c=b,b=!1);var e=c?x.map(a,c,d):a,f=[],g=[];return y(e,function(c,d){(b?d&&g[g.length-1]===c:x.contains(g,c))||(g.push(c),f.push(a[d]))}),f},x.union=function(){return x.uniq(i.apply(d,arguments))},x.intersection=function(a){var b=h.call(arguments,1);return x.filter(x.uniq(a),function(a){return x.every(b,function(b){return x.indexOf(b,a)>=0})})},x.difference=function(a){var b=i.apply(d,h.call(arguments,1));return x.filter(a,function(a){return!x.contains(b,a)})},x.zip=function(){for(var a=h.call(arguments),b=x.max(x.pluck(a,"length")),c=Array(b),d=0;b>d;d++)c[d]=x.pluck(a,""+d);return c},x.object=function(a,b){if(null==a)return{};for(var c={},d=0,e=a.length;e>d;d++)b?c[a[d]]=b[d]:c[a[d][0]]=a[d][1];return c},x.indexOf=function(a,b,c){if(null==a)return-1;var d=0,e=a.length;if(c){if("number"!=typeof c)return d=x.sortedIndex(a,b),a[d]===b?d:-1;d=0>c?Math.max(0,e+c):c}if(s&&a.indexOf===s)return a.indexOf(b,c);for(;e>d;d++)if(a[d]===b)return d;return-1},x.lastIndexOf=function(a,b,c){if(null==a)return-1;var d=null!=c;if(t&&a.lastIndexOf===t)return d?a.lastIndexOf(b,c):a.lastIndexOf(b);for(var e=d?c:a.length;e--;)if(a[e]===b)return e;return-1},x.range=function(a,b,c){1>=arguments.length&&(b=a||0,a=0),c=arguments[2]||1;for(var d=Math.max(Math.ceil((b-a)/c),0),e=0,f=Array(d);d>e;)f[e++]=a,a+=c;return f},x.bind=function(a,b){if(a.bind===w&&w)return w.apply(a,h.call(arguments,1));var c=h.call(arguments,2);return function(){return a.apply(b,c.concat(h.call(arguments)))}},x.partial=function(a){var b=h.call(arguments,1);return function(){return a.apply(this,b.concat(h.call(arguments)))}},x.bindAll=function(a){var b=h.call(arguments,1);return 0===b.length&&(b=x.functions(a)),y(b,function(b){a[b]=x.bind(a[b],a)}),a},x.memoize=function(a,b){var c={};return b||(b=x.identity),function(){var d=b.apply(this,arguments);return x.has(c,d)?c[d]:c[d]=a.apply(this,arguments)}},x.delay=function(a,b){var c=h.call(arguments,2);return setTimeout(function(){return a.apply(null,c)},b)},x.defer=function(a){return x.delay.apply(x,[a,1].concat(h.call(arguments,1)))},x.throttle=function(a,b){var c,d,e,f,g=0,h=function(){g=new Date,e=null,f=a.apply(c,d)};return function(){var i=new Date,j=b-(i-g);return c=this,d=arguments,0>=j?(clearTimeout(e),e=null,g=i,f=a.apply(c,d)):e||(e=setTimeout(h,j)),f}},x.debounce=function(a,b,c){var d,e;return function(){var f=this,g=arguments,h=function(){d=null,c||(e=a.apply(f,g))},i=c&&!d;return clearTimeout(d),d=setTimeout(h,b),i&&(e=a.apply(f,g)),e}},x.once=function(a){var b,c=!1;return function(){return c?b:(c=!0,b=a.apply(this,arguments),a=null,b)}},x.wrap=function(a,b){return function(){var c=[a];return g.apply(c,arguments),b.apply(this,c)}},x.compose=function(){var a=arguments;return function(){for(var b=arguments,c=a.length-1;c>=0;c--)b=[a[c].apply(this,b)];return b[0]}},x.after=function(a,b){return 0>=a?b():function(){return 1>--a?b.apply(this,arguments):void 0}},x.keys=v||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var b=[];for(var c in a)x.has(a,c)&&(b[b.length]=c);return b},x.values=function(a){var b=[];for(var c in a)x.has(a,c)&&b.push(a[c]);return b},x.pairs=function(a){var b=[];for(var c in a)x.has(a,c)&&b.push([c,a[c]]);return b},x.invert=function(a){var b={};for(var c in a)x.has(a,c)&&(b[a[c]]=c);return b},x.functions=x.methods=function(a){var b=[];for(var c in a)x.isFunction(a[c])&&b.push(c);return b.sort()},x.extend=function(a){return y(h.call(arguments,1),function(b){if(b)for(var c in b)a[c]=b[c]}),a},x.pick=function(a){var b={},c=i.apply(d,h.call(arguments,1));return y(c,function(c){c in a&&(b[c]=a[c])}),b},x.omit=function(a){var b={},c=i.apply(d,h.call(arguments,1));for(var e in a)x.contains(c,e)||(b[e]=a[e]);return b},x.defaults=function(a){return y(h.call(arguments,1),function(b){if(b)for(var c in b)null==a[c]&&(a[c]=b[c])}),a},x.clone=function(a){return x.isObject(a)?x.isArray(a)?a.slice():x.extend({},a):a},x.tap=function(a,b){return b(a),a};var E=function(a,b,c,d){if(a===b)return 0!==a||1/a==1/b;if(null==a||null==b)return a===b;a instanceof x&&(a=a._wrapped),b instanceof x&&(b=b._wrapped);var e=j.call(a);if(e!=j.call(b))return!1;switch(e){case"[object String]":return a==b+"";case"[object Number]":return a!=+a?b!=+b:0==a?1/a==1/b:a==+b;case"[object Date]":case"[object Boolean]":return+a==+b;case"[object RegExp]":return a.source==b.source&&a.global==b.global&&a.multiline==b.multiline&&a.ignoreCase==b.ignoreCase}if("object"!=typeof a||"object"!=typeof b)return!1;for(var f=c.length;f--;)if(c[f]==a)return d[f]==b;c.push(a),d.push(b);var g=0,h=!0;if("[object Array]"==e){if(g=a.length,h=g==b.length)for(;g--&&(h=E(a[g],b[g],c,d)););}else{var i=a.constructor,k=b.constructor;if(i!==k&&!(x.isFunction(i)&&i instanceof i&&x.isFunction(k)&&k instanceof k))return!1;for(var l in a)if(x.has(a,l)&&(g++,!(h=x.has(b,l)&&E(a[l],b[l],c,d))))break;if(h){for(l in b)if(x.has(b,l)&&!g--)break;h=!g}}return c.pop(),d.pop(),h};x.isEqual=function(a,b){return E(a,b,[],[])},x.isEmpty=function(a){if(null==a)return!0;if(x.isArray(a)||x.isString(a))return 0===a.length;for(var b in a)if(x.has(a,b))return!1;return!0},x.isElement=function(a){return!(!a||1!==a.nodeType)},x.isArray=u||function(a){return"[object Array]"==j.call(a)},x.isObject=function(a){return a===Object(a)},y(["Arguments","Function","String","Number","Date","RegExp"],function(a){x["is"+a]=function(b){return j.call(b)=="[object "+a+"]"}}),x.isArguments(arguments)||(x.isArguments=function(a){return!(!a||!x.has(a,"callee"))}),"function"!=typeof/./&&(x.isFunction=function(a){return"function"==typeof a}),x.isFinite=function(a){return isFinite(a)&&!isNaN(parseFloat(a))},x.isNaN=function(a){return x.isNumber(a)&&a!=+a},x.isBoolean=function(a){return a===!0||a===!1||"[object Boolean]"==j.call(a)},x.isNull=function(a){return null===a},x.isUndefined=function(a){return void 0===a},x.has=function(a,b){return k.call(a,b)},x.noConflict=function(){return a._=b,this},x.identity=function(a){return a},x.times=function(a,b,c){for(var d=Array(a),e=0;a>e;e++)d[e]=b.call(c,e);return d},x.random=function(a,b){return null==b&&(b=a,a=0),a+Math.floor(Math.random()*(b-a+1))};var F={escape:{"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"}};F.unescape=x.invert(F.escape);var G={escape:RegExp("["+x.keys(F.escape).join("")+"]","g"),unescape:RegExp("("+x.keys(F.unescape).join("|")+")","g")};x.each(["escape","unescape"],function(a){x[a]=function(b){return null==b?"":(""+b).replace(G[a],function(b){return F[a][b]})}}),x.result=function(a,b){if(null==a)return null;var c=a[b];return x.isFunction(c)?c.call(a):c},x.mixin=function(a){y(x.functions(a),function(b){var c=x[b]=a[b];x.prototype[b]=function(){var a=[this._wrapped];return g.apply(a,arguments),L.call(this,c.apply(x,a))}})};var H=0;x.uniqueId=function(a){var b=++H+"";return a?a+b:b},x.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var I=/(.)^/,J={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"},K=/\\|'|\r|\n|\t|\u2028|\u2029/g;x.template=function(a,b,c){var d;c=x.defaults({},c,x.templateSettings);var e=RegExp([(c.escape||I).source,(c.interpolate||I).source,(c.evaluate||I).source].join("|")+"|$","g"),f=0,g="__p+='";a.replace(e,function(b,c,d,e,h){return g+=a.slice(f,h).replace(K,function(a){return"\\"+J[a]}),c&&(g+="'+\n((__t=("+c+"))==null?'':_.escape(__t))+\n'"),d&&(g+="'+\n((__t=("+d+"))==null?'':__t)+\n'"),e&&(g+="';\n"+e+"\n__p+='"),f=h+b.length,b}),g+="';\n",c.variable||(g="with(obj||{}){\n"+g+"}\n"),g="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+g+"return __p;\n";try{d=Function(c.variable||"obj","_",g)}catch(h){throw h.source=g,h}if(b)return d(b,x);var i=function(a){return d.call(this,a,x)};return i.source="function("+(c.variable||"obj")+"){\n"+g+"}",i},x.chain=function(a){return x(a).chain()};var L=function(a){return this._chain?x(a).chain():a};x.mixin(x),y(["pop","push","reverse","shift","sort","splice","unshift"],function(a){var b=d[a];x.prototype[a]=function(){var c=this._wrapped;return b.apply(c,arguments),"shift"!=a&&"splice"!=a||0!==c.length||delete c[0],L.call(this,c)}}),y(["concat","join","slice"],function(a){var b=d[a];x.prototype[a]=function(){return L.call(this,b.apply(this._wrapped,arguments))}}),x.extend(x.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}})}.call(this),function(a){"use strict";function b(a,b){f.async(function(){a.trigger("promise:resolved",{detail:b}),a.isResolved=!0,a.resolvedValue=b})}function c(a,b){f.async(function(){a.trigger("promise:failed",{detail:b}),a.isRejected=!0,a.rejectedValue=b})}function d(a){var b,c=[],d=new p,e=a.length;0===e&&d.resolve([]);var f=function(a){return function(b){g(a,b)}},g=function(a,b){c[a]=b,0===--e&&d.resolve(c)},h=function(a){d.reject(a)};for(b=0;e>b;b++)a[b].then(f(b),h);return d}function e(a,b){f[a]=b}var f={},g="undefined"!=typeof window?window:{},h=g.MutationObserver||g.WebKitMutationObserver;if("undefined"!=typeof process&&"[object process]"==={}.toString.call(process))f.async=function(a,b){process.nextTick(function(){a.call(b)})};else if(h){var i=[],j=new h(function(){var a=i.slice();i=[],a.forEach(function(a){var b=a[0],c=a[1];b.call(c)})}),k=document.createElement("div");j.observe(k,{attributes:!0}),window.addEventListener("unload",function(){j.disconnect(),j=null}),f.async=function(a,b){i.push([a,b]),k.setAttribute("drainQueue","drainQueue")}}else f.async=function(a,b){setTimeout(function(){a.call(b)},1)};var l=function(a,b){this.type=a;for(var c in b)b.hasOwnProperty(c)&&(this[c]=b[c])},m=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c][0]===b)return c;return-1},n=function(a){var b=a._promiseCallbacks;return b||(b=a._promiseCallbacks={}),b},o={mixin:function(a){return a.on=this.on,a.off=this.off,a.trigger=this.trigger,a},on:function(a,b,c){var d,e,f=n(this);for(a=a.split(/\s+/),c=c||this;e=a.shift();)d=f[e],d||(d=f[e]=[]),-1===m(d,b)&&d.push([b,c])},off:function(a,b){var c,d,e,f=n(this);for(a=a.split(/\s+/);d=a.shift();)b?(c=f[d],e=m(c,b),-1!==e&&c.splice(e,1)):f[d]=[]},trigger:function(a,b){var c,d,e,f,g,h=n(this);if(c=h[a])for(var i=0,j=c.length;j>i;i++)d=c[i],e=d[0],f=d[1],"object"!=typeof b&&(b={detail:b}),g=new l(a,b),e.call(f,g)}},p=function(){this.on("promise:resolved",function(a){this.trigger("success",{detail:a.detail})},this),this.on("promise:failed",function(a){this.trigger("error",{detail:a.detail})},this)},q=function(){},r=function(a,b,c,d){var e,f,g,h,i="function"==typeof c;if(i)try{e=c(d.detail),g=!0}catch(j){h=!0,f=j}else e=d.detail,g=!0;e&&"function"==typeof e.then?e.then(function(a){b.resolve(a)},function(a){b.reject(a)}):i&&g?b.resolve(e):h?b.reject(f):b[a](e)};p.prototype={then:function(a,b){var c=new p;return this.isResolved&&f.async(function(){r("resolve",c,a,{detail:this.resolvedValue})},this),this.isRejected&&f.async(function(){r("reject",c,b,{detail:this.rejectedValue})},this),this.on("promise:resolved",function(b){r("resolve",c,a,b)}),this.on("promise:failed",function(a){r("reject",c,b,a)}),c},resolve:function(a){b(this,a),this.resolve=q,this.reject=q},reject:function(a){c(this,a),this.resolve=q,this.reject=q}},o.mixin(p.prototype),a.Promise=p,a.Event=l,a.EventTarget=o,a.all=d,a.configure=e}(window.RSVP={});var EPUBJS=EPUBJS||{};EPUBJS.VERSION="0.1.5",EPUBJS.plugins=EPUBJS.plugins||{},EPUBJS.filePath=EPUBJS.filePath||"/epubjs/",EPUBJS.Book=function(a,b){var c=this;this.settings=_.defaults(b||{},{storage:!1,fromStorage:!1,saved:!1,online:!0,contained:!1,width:!1,height:!1,spreads:!0,fixedLayout:!1,responsive:!0,version:1,restore:!1,reload:!1,styles:{}}),this.settings.EPUBJSVERSION=EPUBJS.VERSION,this.spinePos=0,this.stored=!1,this.hooks={beforeChapterDisplay:[]},this.getHooks(),this.online=this.settings.online||navigator.onLine,this.networkListeners(),0!=this.settings.storage&&(this.storage=new fileStorage.storage(this.settings.storage)),this.ready={manifest:new RSVP.Promise,spine:new RSVP.Promise,metadata:new RSVP.Promise,cover:new RSVP.Promise,toc:new RSVP.Promise},this.ready.all=RSVP.all(_.values(this.ready)),this.ready.all.then(function(){this.trigger("book:ready")}.bind(this)),a&&(this.opened=this.open(a)),window.addEventListener("beforeunload",function(){c.settings.restore&&(c.saveSettings(),c.saveContents()),c.trigger("book:unload")},!1)},EPUBJS.Book.prototype.open=function(a,b){var c,d=this,e=this.isSaved(a);return this.settings.bookPath=a,this.bookUrl=this.urlFrom(a),e&&!b&&this.applySavedSettings(),this.settings.contained||this.isContained(a)?(this.settings.contained=this.contained=!0,this.bookUrl="",c=this.unarchive(a).then(function(){return e&&d.settings.restore&&!b?d.restore():d.unpack()})):c=e&&this.settings.restore&&!b?this.restore():this.unpack(),this.online&&this.settings.storage&&!this.settings.contained&&(this.settings.stored||c.then(d.storeOffline())),c},EPUBJS.Book.prototype.unpack=function(a){var b=this,c=new EPUBJS.Parser,a=a||"META-INF/container.xml";return b.loadXml(b.bookUrl+a).then(function(a){return c.container(a)}).then(function(a){return b.settings.contentsPath=b.bookUrl+a.basePath,b.settings.packageUrl=b.bookUrl+a.packagePath,b.loadXml(b.settings.packageUrl)}).then(function(a){return c.package(a,b.settings.contentsPath)}).then(function(a){return b.contents=a,b.manifest=b.contents.manifest,b.spine=b.contents.spine,b.spineIndexByURL=b.contents.spineIndexByURL,b.metadata=b.contents.metadata,b.cover=b.contents.cover=b.settings.contentsPath+a.coverPath,b.spineNodeIndex=b.contents.spineNodeIndex=a.spineNodeIndex,b.ready.manifest.resolve(b.contents.manifest),b.ready.spine.resolve(b.contents.spine),b.ready.metadata.resolve(b.contents.metadata),b.ready.cover.resolve(b.contents.cover),b.settings.tocUrl=b.settings.contentsPath+a.tocPath,b.loadXml(b.settings.tocUrl)}).then(function(a){return c.toc(a)}).then(function(a){b.toc=b.contents.toc=a,b.ready.toc.resolve(b.contents.toc)}).then(null,function(a){console.error(a)})},EPUBJS.Book.prototype.getMetadata=function(){return this.ready.metadata},EPUBJS.Book.prototype.getToc=function(){return this.ready.toc},EPUBJS.Book.prototype.networkListeners=function(){var a=this;window.addEventListener("offline",function(){a.online=!1,a.trigger("book:offline")},!1),window.addEventListener("online",function(){a.online=!0,a.trigger("book:online")},!1)},EPUBJS.Book.prototype.loadXml=function(a){return this.settings.fromStorage?this.storage.getXml(a):this.settings.contained?this.zip.getXml(a):EPUBJS.core.request(a,"xml")},EPUBJS.Book.prototype.urlFrom=function(a){var b=-1!=a.search("://"),c="/"==a[0],d=window.location,e=d.origin||d.protocol+"//"+d.host;return b?a:!b&&c?e+a:b||c?void 0:e+EPUBJS.core.folder(d.pathname)+a},EPUBJS.Book.prototype.unarchive=function(a){return this.zip=new EPUBJS.Unarchiver,this.zip.openZip(a)},EPUBJS.Book.prototype.isContained=function(a){var b=a.lastIndexOf("."),c=a.slice(b+1);return!c||"epub"!=c&&"zip"!=c?!1:!0},EPUBJS.Book.prototype.isSaved=function(a){var b=a+":"+this.settings.version,c=localStorage.getItem(b);return localStorage&&null!==c?!0:!1},EPUBJS.Book.prototype.removeSavedSettings=function(){var a=this.settings.bookPath+":"+this.settings.version;localStorage.removeItem(a),this.settings.stored=!1},EPUBJS.Book.prototype.applySavedSettings=function(){var a=this.settings.bookPath+":"+this.settings.version;return stored=JSON.parse(localStorage.getItem(a)),EPUBJS.VERSION!=stored.EPUBJSVERSION?!1:(this.settings=_.defaults(this.settings,stored),void 0)},EPUBJS.Book.prototype.saveSettings=function(){var a=this.settings.bookPath+":"+this.settings.version;this.render&&(this.settings.previousLocationCfi=this.render.currentLocationCfi),localStorage.setItem(a,JSON.stringify(this.settings))},EPUBJS.Book.prototype.saveContents=function(){var a=this.settings.bookPath+":contents:"+this.settings.version;localStorage.setItem(a,JSON.stringify(this.contents))},EPUBJS.Book.prototype.removeSavedContents=function(){var a=this.settings.bookPath+":contents:"+this.settings.version;localStorage.removeItem(a)},EPUBJS.Book.prototype.renderTo=function(a){var b=this;if(_.isElement(a))this.element=a;else{if("string"!=typeof a)return console.error("Not an Element"),void 0;this.element=EPUBJS.core.getEl(a)}return this.opened.then(function(){return b.render=new EPUBJS.Renderer(b),b.startDisplay()})},EPUBJS.Book.prototype.startDisplay=function(){var a;return a=this.settings.restore&&this.settings.previousLocationCfi?this.displayChapter(this.settings.previousLocationCfi):this.displayChapter(this.spinePos)},EPUBJS.Book.prototype.restore=function(a){var b=this,c=this.settings.bookPath+":contents:"+this.settings.version,d=new RSVP.Promise,e=["manifest","spine","metadata","cover","toc","spineNodeIndex","spineIndexByURL"],a=a||!1,f=localStorage.getItem(c);return this.settings.clearSaved&&(a=!0),a||"undefined"==f||"null"==f||(this.contents=JSON.parse(f),e.forEach(function(c){b[c]=b.contents[c],b[c]||(a=!0)})),!a&&f&&this.contents&&this.settings.contentsPath?(this.ready.manifest.resolve(this.manifest),this.ready.spine.resolve(this.spine),this.ready.metadata.resolve(this.metadata),this.ready.cover.resolve(this.cover),this.ready.toc.resolve(this.toc),d.resolve(),d):this.open(this.settings.bookPath,!0)},EPUBJS.Book.prototype.displayChapter=function(a,b){var c,d,e,f=this;return _.isNumber(a)?e=a:(d=new EPUBJS.EpubCFI(a),e=d.spinePos),e>=this.spine.length?!1:0>e?!1:(this.spinePos=e,this.chapter=new EPUBJS.Chapter(this.spine[e]),c=f.render.chapter(this.chapter),d?c.then(function(b){b.currentLocationCfi=a,b.gotoCfiFragment(d)}):b&&c.then(function(a){a.gotoChapterEnd()}),this.settings.fromStorage||this.settings.contained||c.then(function(){f.preloadNextChapter()}),c)},EPUBJS.Book.prototype.nextPage=function(){var a=this.render.nextPage();return a?void 0:this.nextChapter()},EPUBJS.Book.prototype.prevPage=function(){var a=this.render.prevPage();return a?void 0:this.prevChapter()},EPUBJS.Book.prototype.nextChapter=function(){return this.spinePos++,this.displayChapter(this.spinePos)},EPUBJS.Book.prototype.prevChapter=function(){return this.spinePos--,this.displayChapter(this.spinePos,!0)},EPUBJS.Book.prototype.goto=function(a){var b,c=a.split("#"),d=c[0],e=c[1]||!1,f=-1==d.search("://")?this.settings.contentsPath+d:d,g=this.spineIndexByURL[f];return d||(g=this.chapter.spinePos),"number"!=typeof g?!1:g==this.chapter.spinePos&&this.chapter?(e&&this.render.section(e),(new RSVP.Promise).resolve(this.currentChapter)):this.displayChapter(g).then(function(){e&&b.render.section(e)})},EPUBJS.Book.prototype.preloadNextChapter=function(){return document.createElement("iframe"),this.spinePos>=this.spine.length?!1:(next=new EPUBJS.Chapter(this.spine[this.spinePos+1]),EPUBJS.core.request(next.href),void 0)},EPUBJS.Book.prototype.storeOffline=function(){var a=this,b=_.values(this.manifest);return EPUBJS.storage.batch(b).then(function(){a.settings.stored=!0,a.trigger("book:stored")})},EPUBJS.Book.prototype.availableOffline=function(){return this.settings.stored>0?!0:!1},EPUBJS.Book.prototype.setStyle=function(a,b,c){this.render.setStyle(a,b,c),this.settings.styles[a]=b},EPUBJS.Book.prototype.removeStyle=function(a){this.render.removeStyle(a),delete this.settings.styles[a]},EPUBJS.Book.prototype.getHooks=function(){var a,b=this;plugTypes=_.values(this.hooks);for(plugType in this.hooks)a=_.values(EPUBJS.Hooks[plugType]),a.forEach(function(a){b.registerHook(plugType,a)})},EPUBJS.Book.prototype.registerHook=function(a,b,c){var d=this;"undefined"!=typeof this.hooks[a]?"function"==typeof b?c?this.hooks[a].unshift(b):this.hooks[a].push(b):Array.isArray(b)&&b.forEach(function(b){c?d.hooks[a].unshift(b):d.hooks[a].push(b)}):this.hooks[a]=[func]},EPUBJS.Book.prototype.triggerHooks=function(a,b,c){function d(){f--,0>=f&&b&&b()}var e,f;return"undefined"==typeof this.hooks[a]?!1:(e=this.hooks[a],f=e.length,e.forEach(function(a){a(d,c)}),void 0)},RSVP.EventTarget.mixin(EPUBJS.Book.prototype),EPUBJS.Chapter=function(a){this.href=a.href,this.id=a.id,this.spinePos=a.index,this.properties=a.properties,this.linear=a.linear,this.pages=1},EPUBJS.Chapter.prototype.contents=function(a){return a?a.get(href):EPUBJS.core.request(href,"xml")},EPUBJS.Chapter.prototype.url=function(a){var b=new RSVP.Promise;return a?(this.tempUrl||(this.tempUrl=a.getUrl(this.href)),this.tempUrl):(b.resolve(this.href),b)},EPUBJS.Chapter.prototype.setPages=function(a){this.pages=a},EPUBJS.Chapter.prototype.getPages=function(){return this.pages},EPUBJS.Chapter.prototype.getID=function(){return this.ID},EPUBJS.Chapter.prototype.unload=function(a){this.tempUrl&&a&&(a.revokeUrl(this.tempUrl),this.tempUrl=!1)};var EPUBJS=EPUBJS||{};EPUBJS.core={},EPUBJS.core.getEl=function(a){return document.getElementById(a)},EPUBJS.core.getEls=function(a){return document.getElementsByClassName(a)},EPUBJS.core.request=function(a,b){function c(){if(this.readyState===this.DONE)if(200===this.status||this.responseXML){var a;a="xml"==b?this.responseXML:"json"==b?JSON.parse(this.response):this.response,d.resolve(a)}else d.reject(this)}var d=new RSVP.Promise,e=new XMLHttpRequest;return e.open("GET",a),e.onreadystatechange=c,"blob"==b&&(e.responseType=b),"json"==b&&e.setRequestHeader("Accept","application/json"),"xml"==b&&e.overrideMimeType("text/xml"),e.send(),d},EPUBJS.core.toArray=function(a){var b=[];for(member in a){var c;a.hasOwnProperty(member)&&(c=a[member],c.ident=member,b.push(c))}return b},EPUBJS.core.folder=function(a){var b=a.lastIndexOf("/"),c=a.slice(0,b+1);return-1==b&&(c=""),c},EPUBJS.core.dataURLToBlob=function(a){var b=";base64,";if(-1==a.indexOf(b)){var c=a.split(","),d=c[0].split(":")[1],e=c[1];return new Blob([e],{type:d})}for(var c=a.split(b),d=c[0].split(":")[1],e=window.atob(c[1]),f=e.length,g=new Uint8Array(f),h=0;f>h;++h)g[h]=e.charCodeAt(h);return new Blob([g],{type:d})},EPUBJS.core.addScript=function(a,b,c){var d,e;e=!1,d=document.createElement("script"),d.type="text/javascript",d.async=!1,d.src=a,d.onload=d.onreadystatechange=function(){e||this.readyState&&"complete"!=this.readyState||(e=!0,b&&b())},c=c||document.body,c.appendChild(d)},EPUBJS.core.addScripts=function(a,b,c){var d=a.length,e=0,f=function(){e++,d==e?b&&b():EPUBJS.core.loadScript(a[e],f,c)};EPUBJS.core.addScript(a[e],f,c)},EPUBJS.core.addCss=function(a,b,c){var d,e;e=!1,d=document.createElement("link"),d.type="text/css",d.rel="stylesheet",d.href=a,d.onload=d.onreadystatechange=function(){e||this.readyState&&"complete"!=this.readyState||(e=!0,b&&b())},c=c||document.body,c.appendChild(d)},EPUBJS.core.prefixed=function(a){var b=["Webkit","Moz","O","ms"],c=a[0].toUpperCase()+a.slice(1),d=b.length,e=0;if("undefined"!=typeof document.body.style[a])return a;for(;d>e;e++)if("undefined"!=typeof document.body.style[b[e]+c])return b[e]+c;return a},EPUBJS.core.resolveUrl=function(a,b){var c,d,e=[],f=a.split("/");return f.pop(),d=b.split("/"),d.forEach(function(a){".."===a?f.pop():e.push(a)}),c=f.concat(e),c.join("/")},EPUBJS.EpubCFI=function(a){return a?this.parse(a):void 0},EPUBJS.EpubCFI.prototype.generateChapter=function(a,b,c){var b=parseInt(b),a=a+1,d="/"+a+"/";return d+=2*(b+1),c&&(d+="["+c+"]"),d+="!"},EPUBJS.EpubCFI.prototype.generateFragment=function(a,b){var c=this.pathTo(a),d=[];return b&&d.push(b),c.forEach(function(a){d.push(2*(a.index+1)),a.id&&"EPUBJS"!=a.id.slice(0,6)&&d.push("["+a.id+"]")}),d.join("/")},EPUBJS.EpubCFI.prototype.pathTo=function(a){for(var b,c=[];a&&null!==a.parentNode;)b=a.parentNode.children,c.unshift({id:a.id,tagName:a.tagName,index:b?Array.prototype.indexOf.call(b,a):0}),a=a.parentNode;return c},EPUBJS.EpubCFI.prototype.getChapter=function(a){var b=a.split("!");return b[0]},EPUBJS.EpubCFI.prototype.getFragment=function(a){var b=a.split("!");return b[1]},EPUBJS.EpubCFI.prototype.getOffset=function(a){var b=a.split(":");return[b[0],b[1]]},EPUBJS.EpubCFI.prototype.parse=function(a){var b,c,d,e,f={};return f.chapter=this.getChapter(a),f.fragment=this.getFragment(a),f.spinePos=parseInt(f.chapter.split("/")[2])/2-1||0,b=f.chapter.match(/\[(.*)\]/),f.spineId=b[1]||!1,c=f.fragment.split("/"),d=c[c.length-1],f.sections=[],parseInt(d)%2&&(e=this.getOffset(),f.text=parseInt(e[0]),f.character=parseInt(e[1]),c.pop()),c.forEach(function(a){var b,c,d;a&&(b=parseInt(a)/2-1,c=a.match(/\[(.*)\]/),c&&c[1]&&(d=c[1]),f.sections.push({index:b,id:d||!1}))}),f},EPUBJS.EpubCFI.prototype.getElement=function(a,b){var c,b=b||document,d=a.sections,e=b.getElementsByTagName("html")[0],f=Array.prototype.slice.call(e.children);for(d.shift();d.length>0;)c=d.shift(),c.id?e=b.querySelector("#"+c.id):(e=f[c.index],f||console.error("No Kids",e)),e||console.error("No Element For",c),f=Array.prototype.slice.call(e.children);return e},EPUBJS.Events=function(a,b){return this.events={},this.el=b?b:document.createElement("div"),a.createEvent=this.createEvent,a.tell=this.tell,a.listen=this.listen,a.deafen=this.deafen,a.listenUntil=this.listenUntil,this},EPUBJS.Events.prototype.createEvent=function(a){var b=new CustomEvent(a);return this.events[a]=b,b},EPUBJS.Events.prototype.tell=function(a,b){var c;this.events[a]?c=this.events[a]:(console.warn("No event:",a,"defined yet, creating."),c=this.createEvent(a)),b&&(c.msg=b),this.el.dispatchEvent(c)},EPUBJS.Events.prototype.listen=function(a,b,c){return this.events[a]?(c?this.el.addEventListener(a,b.bind(c),!1):this.el.addEventListener(a,b,!1),void 0):(console.warn("No event:",a,"defined yet, creating."),this.createEvent(a),void 0)},EPUBJS.Events.prototype.deafen=function(a,b){this.el.removeEventListener(a,b,!1)},EPUBJS.Events.prototype.listenUntil=function(a,b,c,d){function e(){this.deafen(a,c),this.deafen(b,e)}this.listen(a,c,d),this.listen(b,e,this)},EPUBJS.Hooks=function(){"use strict";return{register:function(a){if(void 0===this[a]&&(this[a]={}),"object"!=typeof this[a])throw"Already registered: "+a;return this[a]}}}(),EPUBJS.Parser=function(a){this.baseUrl=a||""},EPUBJS.Parser.prototype.container=function(a){var b=a.querySelector("rootfile"),c=b.getAttribute("full-path"),d=EPUBJS.core.folder(c);return{packagePath:c,basePath:d}},EPUBJS.Parser.prototype.package=function(a,b){var c=this;b&&(this.baseUrl=b);var d=a.querySelector("metadata"),e=a.querySelector("manifest"),f=a.querySelector("spine"),g=c.manifest(e),h=c.findTocPath(e),i=c.findCoverPath(e),j=Array.prototype.indexOf.call(f.parentNode.childNodes,f),k=c.spine(f,g),l={};return k.forEach(function(a){l[a.href]=a.index}),{metadata:c.metadata(d),spine:k,manifest:g,tocPath:h,coverPath:i,spineNodeIndex:j,spineIndexByURL:l}},EPUBJS.Parser.prototype.findTocPath=function(a){var b=a.querySelector("item[media-type='application/x-dtbncx+xml']");return b?b.getAttribute("href"):!1},EPUBJS.Parser.prototype.findCoverPath=function(a){var b=a.querySelector("item[properties='cover-image']");return b?b.getAttribute("href"):!1},EPUBJS.Parser.prototype.metadata=function(a){var b={},c=this;return b.bookTitle=c.getElementText(a,"title"),b.creator=c.getElementText(a,"creator"),b.description=c.getElementText(a,"description"),b.pubdate=c.getElementText(a,"date"),b.publisher=c.getElementText(a,"publisher"),b.identifier=c.getElementText(a,"identifier"),b.language=c.getElementText(a,"language"),b.rights=c.getElementText(a,"rights"),b.modified_date=c.querySelectorText(a,"meta[property='dcterms:modified']"),b.layout=c.querySelectorText(a,"meta[property='rendition:orientation']"),b.orientation=c.querySelectorText(a,"meta[property='rendition:orientation']"),b.spread=c.querySelectorText(a,"meta[property='rendition:spread']"),b +},EPUBJS.Parser.prototype.getElementText=function(a,b){var c,d=a.getElementsByTagNameNS("http://purl.org/dc/elements/1.1/",b);return d&&0!=d.length?(c=d[0],c.childNodes.length?c.childNodes[0].nodeValue:""):""},EPUBJS.Parser.prototype.querySelectorText=function(a,b){var c=a.querySelector(b);return c&&c.childNodes.length?c.childNodes[0].nodeValue:""},EPUBJS.Parser.prototype.manifest=function(a){var b=this.baseUrl,c={},d=a.querySelectorAll("item"),e=Array.prototype.slice.call(d);return e.forEach(function(a){var d=a.getAttribute("id"),e=a.getAttribute("href")||"",f=a.getAttribute("media-type")||"";c[d]={href:b+e,type:f}}),c},EPUBJS.Parser.prototype.spine=function(a,b){var c=[],d=a.getElementsByTagName("itemref"),e=Array.prototype.slice.call(d);return e.forEach(function(a,d){var e=a.getAttribute("idref"),f={id:e,linear:a.getAttribute("linear")||"",properties:a.getAttribute("properties")||"",href:b[e].href,index:d};c.push(f)}),c},EPUBJS.Parser.prototype.toc=function(a){function b(a){var c,d=[],e=[],f=a.childNodes,g=Array.prototype.slice.call(f),h=g.length,i=h;if(0==h)return!1;for(;i--;)c=g[i],"navPoint"===c.nodeName&&e.push(c);return e.forEach(function(a){var c=a.getAttribute("id"),e=a.querySelector("content"),f=e.getAttribute("src"),g=(f.split("#"),a.querySelector("navLabel")),h=g.textContent?g.textContent:"",i=b(a);d.unshift({id:c,href:f,label:h,subitems:i})}),d}var c=a.querySelector("navMap");return b(c)},EPUBJS.Renderer=function(a){this.el=a.element,this.book=a,this.settings=a.settings,a.registerHook("beforeChapterDisplay",[this.replaceLinks.bind(this),this.replaceResources.bind(this),this.replaceHead.bind(this)],!0),this.crossBrowserColumnCss(),this.epubcfi=new EPUBJS.EpubCFI,this.initialize(),this.listeners()},EPUBJS.Renderer.prototype.initialize=function(){this.iframe=document.createElement("iframe"),this.settings.width||this.settings.height?this.resizeIframe(!1,this.settings.width||this.el.clientWidth,this.settings.height||this.el.clientHeight):(this.resizeIframe(!1,this.el.clientWidth,this.el.clientHeight),this.on("renderer:resized",this.resizeIframe,this)),this.el.appendChild(this.iframe)},EPUBJS.Renderer.prototype.listeners=function(){this.resized=_.debounce(this.onResized.bind(this),10),window.addEventListener("resize",this.resized,!1)},EPUBJS.Renderer.prototype.chapter=function(a){var b=this,c=!1;return this.book.settings.contained&&(c=this.book.zip),this.currentChapter&&(this.currentChapter.unload(),this.trigger("renderer:chapterUnloaded"),this.book.trigger("renderer:chapterUnloaded")),this.currentChapter=a,this.chapterPos=1,this.pageIds={},this.leftPos=0,this.currentChapterCfi=this.epubcfi.generateChapter(this.book.spineNodeIndex,a.spinePos,a.id),this.visibileEl=!1,a.url(c).then(function(a){return b.setIframeSrc(a)})},EPUBJS.Renderer.prototype.onResized=function(){var a={width:this.el.clientWidth,height:this.el.clientHeight};this.trigger("renderer:resized",a),this.book.trigger("book:resized",a),this.reformat()},EPUBJS.Renderer.prototype.reformat=function(){var a=this;a.book.settings.fixedLayout?a.fixedLayout():a.formatSpread(),setTimeout(function(){a.calcPages(),a.currentLocationCfi&&a.gotoCfiFragment(a.currentLocationCfi)},10)},EPUBJS.Renderer.prototype.destroy=function(){window.removeEventListener("resize",this.resized,!1)},EPUBJS.Renderer.prototype.resizeIframe=function(a,b,c){var d,e;a?(d=a.width,e=a.height):(d=b,e=c),this.iframe.height=e,0!=d%2&&(d+=1),this.iframe.width=d},EPUBJS.Renderer.prototype.crossBrowserColumnCss=function(){EPUBJS.Renderer.columnAxis=EPUBJS.core.prefixed("columnAxis"),EPUBJS.Renderer.columnGap=EPUBJS.core.prefixed("columnGap"),EPUBJS.Renderer.columnWidth=EPUBJS.core.prefixed("columnWidth"),EPUBJS.Renderer.transform=EPUBJS.core.prefixed("transform")},EPUBJS.Renderer.prototype.setIframeSrc=function(a){var b=this,c=new RSVP.Promise;return this.visible(!1),this.iframe.src=a,this.iframe.onload=function(){b.doc=b.iframe.contentDocument,b.docEl=b.doc.documentElement,b.bodyEl=b.doc.body,b.applyStyles(),b.book.settings.fixedLayout?b.fixedLayout():b.formatSpread(),b.beforeDisplay(function(){b.calcPages(),c.resolve(b),b.currentLocationCfi=b.getPageCfi(),b.trigger("renderer:chapterDisplayed",b.currentChapter),b.book.trigger("renderer:chapterDisplayed",b.currentChapter),b.visible(!0)})},c},EPUBJS.Renderer.prototype.formatSpread=function(){var a=2,b=800;this.colWidth&&(this.OldcolWidth=this.colWidth,this.OldspreadWidth=this.spreadWidth),this.elWidth=this.iframe.width,this.gap=this.gap||Math.ceil(this.elWidth/8),this.elWidth1?(this.chapterPos--,this.leftPos-=this.spreadWidth,this.setLeft(this.leftPos),this.currentLocationCfi=this.getPageCfi(),this.book.trigger("book:pageChanged",this.currentLocationCfi),this.chapterPos):!1},EPUBJS.Renderer.prototype.chapterEnd=function(){this.page(this.displayedPages),this.currentLocationCfi=this.getPageCfi()},EPUBJS.Renderer.prototype.setLeft=function(a){this.doc.defaultView.scrollTo(a,0)},EPUBJS.Renderer.prototype.replace=function(a,b,c){var d,e,f;d=this.doc.querySelectorAll(a),e=Array.prototype.slice.call(d),f=e.length,e.forEach(function(a){b(a,function(){f--,0>=f&&c&&c()})}.bind(this)),0===f&&c()},EPUBJS.Renderer.prototype.determineStore=function(){return this.book.fromStorage?"filesystem"==this.book.storage.getStorageType()?!1:this.book.store:this.book.contained?this.book.zip:!1},EPUBJS.Renderer.prototype.replaceHead=function(a){var b,c,d,e,f={},g=this,h=this.determineStore(),i=function(a,b){a.setAttribute("href",b),a.onload=function(){d--,0>=d&&j()}},j=function(){a&&a(),_.each(e,function(a){h.revokeUrl(a)}),g.urlCache=f};return h?(b=this.doc.head.querySelectorAll("[href]"),c=Array.prototype.slice.call(b),d=c.length,this.urlCache||(this.urlCache={}),e=_.clone(this.urlCache),c.forEach(function(a){var b=a.getAttribute("href"),c=this.book.settings.contentsPath+b;c in e?(i(a,e[c]),f[c]=e[c],delete e[c]):"stylesheet"===a.getAttribute("rel")?h.getText(c).then(function(b){g.replaceUrlsInCss(c,b).then(function(b){var d=window.URL||window.webkitURL||window.mozURL,e=new Blob([b],{type:"text/css"}),g=d.createObjectURL(e);i(a,g),f[c]=g},function(a){console.error(a)})}):h.getUrl(c).then(function(b){i(a,b),f[c]=b})}.bind(this)),0===d&&j(),void 0):(a&&a(),!1)},EPUBJS.Renderer.prototype.replaceUrlsInCss=function(a,b){var c=new RSVP.Promise,d=[],e=this.determineStore(),f=b.match(/url\(\'?\"?([^\'|^\"]*)\'?\"?\)/g);return f?(f.forEach(function(c){var f=EPUBJS.core.resolveUrl(a,c.replace(/url\(|[|\)|\'|\"]/g,""));replaced=e.getUrl(f).then(function(a){b=b.replace(c,'url("'+a+'")')},function(a){console.error(a)}),d.push(replaced)}),RSVP.all(d).then(function(){c.resolve(b)}),c):(c.resolve(b),c)},EPUBJS.Renderer.prototype.replaceLinks=function(a){var b=this.doc.querySelectorAll("a"),c=Array.prototype.slice.call(b),d=this;c.forEach(function(a){var b,c,e=a.getAttribute("href");e&&(b=e.search("://"),c="#"==e[0],-1!=b?a.setAttribute("target","_blank"):a.onclick=function(){return d.book.goto(e),!1})}),a&&a()},EPUBJS.Renderer.prototype.replaceResources=function(a){var b,c,d,e=this.determineStore();return e?(b=this.doc.querySelectorAll("[src]"),c=Array.prototype.slice.call(b),d=c.length,c.forEach(function(b){var c=b.getAttribute("src"),f=this.book.settings.contentsPath+c;e.getUrl(f).then(function(c){b.src=c,b.onload=function(){d--,0>=d&&a&&a()}})}.bind(this)),0===d&&a(),void 0):(a&&a(),!1)},EPUBJS.Renderer.prototype.page=function(a){return a>=1&&a<=this.displayedPages?(this.chapterPos=a,this.leftPos=this.spreadWidth*(a-1),this.setLeft(this.leftPos),!0):!1},EPUBJS.Renderer.prototype.section=function(a){var b=this.doc.getElementById(a);b&&this.pageByElement(b)},EPUBJS.Renderer.prototype.pageByElement=function(a){var b,c;a&&(b=this.leftPos+a.getBoundingClientRect().left,c=Math.floor(b/this.spreadWidth)+1,this.page(c))},EPUBJS.Renderer.prototype.beforeDisplay=function(a){this.book.triggerHooks("beforeChapterDisplay",a.bind(this),this)},EPUBJS.Renderer.prototype.walk=function(a){for(var b,a,c,d,e,f=a,g=[f],h=1e4,i=0;!b&&g.length;){if(a=g.shift(),this.isElementVisible(a)&&(b=a),!b&&a&&a.childElementCount>0){c=a.children,d=c.length;for(var j=0;d>j;j++)c[j]!=e&&g.push(c[j])}if(!b&&0==g.length&&f&&null!==f.parentNode&&(g.push(f.parentNode),e=f,f=f.parentNode),i++,i>h){console.error("ENDLESS LOOP");break}}return b},EPUBJS.Renderer.prototype.getPageCfi=function(){var a=this.visibileEl;return this.visibileEl=this.findFirstVisible(a),this.visibileEl.id||(this.visibileEl.id="EPUBJS-PAGE-"+this.chapterPos),this.pageIds[this.chapterPos]=this.visibileEl.id,this.epubcfi.generateFragment(this.visibileEl,this.currentChapterCfi)},EPUBJS.Renderer.prototype.gotoCfiFragment=function(a){var b;_.isString(a)&&(a=this.epubcfi.parse(a)),b=this.epubcfi.getElement(a,this.doc),this.pageByElement(b)},EPUBJS.Renderer.prototype.findFirstVisible=function(a){var b,c=a||this.bodyEl;return b=this.walk(c),b?b:a},EPUBJS.Renderer.prototype.isElementVisible=function(a){var b;return a&&"function"==typeof a.getBoundingClientRect&&(b=a.getBoundingClientRect().left,b>=0&&b - + diff --git a/examples/basic.html b/examples/basic.html index e959bbf..8fe87c4 100644 --- a/examples/basic.html +++ b/examples/basic.html @@ -10,7 +10,7 @@ - + -
- - - diff --git a/examples/polymer/epub-reader.html b/examples/polymer/epub-reader.html deleted file mode 100644 index 213976e..0000000 --- a/examples/polymer/epub-reader.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - diff --git a/examples/polymer/epub-reader/assets/add.png b/examples/polymer/epub-reader/assets/add.png new file mode 100644 index 0000000000000000000000000000000000000000..aab6ab58ea089309388f9967fa301b05b2877b21 GIT binary patch literal 660 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 T!oZTp00000NkvXXu0mjfGB1{Z literal 0 HcmV?d00001 diff --git a/examples/polymer/epub-reader/epub-controls.html b/examples/polymer/epub-reader/epub-controls.html new file mode 100644 index 0000000..2014409 --- /dev/null +++ b/examples/polymer/epub-reader/epub-controls.html @@ -0,0 +1,53 @@ + + + + diff --git a/examples/polymer/epub-reader/epub-js.html b/examples/polymer/epub-reader/epub-js.html new file mode 100644 index 0000000..c10eca6 --- /dev/null +++ b/examples/polymer/epub-reader/epub-js.html @@ -0,0 +1,108 @@ + + + + + + + + diff --git a/examples/polymer/epub-reader/epub-reader.html b/examples/polymer/epub-reader/epub-reader.html new file mode 100644 index 0000000..2958c5d --- /dev/null +++ b/examples/polymer/epub-reader/epub-reader.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + diff --git a/examples/polymer/epub-settings.html b/examples/polymer/epub-reader/epub-settings.html similarity index 100% rename from examples/polymer/epub-settings.html rename to examples/polymer/epub-reader/epub-settings.html diff --git a/examples/polymer/epub-reader/epub-sidebar.html b/examples/polymer/epub-reader/epub-sidebar.html new file mode 100644 index 0000000..87f87cd --- /dev/null +++ b/examples/polymer/epub-reader/epub-sidebar.html @@ -0,0 +1,38 @@ + + + + + + + + diff --git a/examples/polymer/epub-reader/epub-titlebar.html b/examples/polymer/epub-reader/epub-titlebar.html new file mode 100644 index 0000000..4ced939 --- /dev/null +++ b/examples/polymer/epub-reader/epub-titlebar.html @@ -0,0 +1,44 @@ + + + + diff --git a/examples/polymer/epub-reader/epub-toc.html b/examples/polymer/epub-reader/epub-toc.html new file mode 100644 index 0000000..fd7f5f7 --- /dev/null +++ b/examples/polymer/epub-reader/epub-toc.html @@ -0,0 +1,144 @@ + + + + + + + diff --git a/examples/polymer/epub-viewer.html b/examples/polymer/epub-reader/epub-viewer.html similarity index 60% rename from examples/polymer/epub-viewer.html rename to examples/polymer/epub-reader/epub-viewer.html index d18fea1..c0f9137 100644 --- a/examples/polymer/epub-viewer.html +++ b/examples/polymer/epub-reader/epub-viewer.html @@ -36,7 +36,8 @@ .arrow:hover { color: #777; } - + + .arrow.active, .arrow:active { color: #000; } @@ -45,7 +46,7 @@ position: absolute; width: 1px; border-right: 1px #000 solid; - height: 80%; + height: 82%; z-index: 1; left: 50%; top: 10%; @@ -66,28 +67,30 @@ margin: -33px 0 0 -33px; } + +
- + on-book-unloaded="bookUnloaded" > + -
+
- diff --git a/examples/polymer/epub-titlebar.html b/examples/polymer/epub-titlebar.html deleted file mode 100644 index 415b366..0000000 --- a/examples/polymer/epub-titlebar.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - diff --git a/examples/polymer/epub-toc.html b/examples/polymer/epub-toc.html deleted file mode 100644 index 83fff1d..0000000 --- a/examples/polymer/epub-toc.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - diff --git a/examples/polymer/index.html b/examples/polymer/index.html index 538205e..d81f60b 100644 --- a/examples/polymer/index.html +++ b/examples/polymer/index.html @@ -6,15 +6,15 @@ - + - + diff --git a/examples/polymer/polymer-elements/AUTHORS b/examples/polymer/polymer-elements/AUTHORS new file mode 100644 index 0000000..0617765 --- /dev/null +++ b/examples/polymer/polymer-elements/AUTHORS @@ -0,0 +1,9 @@ +# Names should be added to this file with this pattern: +# +# For individuals: +# Name +# +# For organizations: +# Organization +# +Google Inc. <*@google.com> diff --git a/examples/polymer/polymer-elements/LICENSE b/examples/polymer/polymer-elements/LICENSE new file mode 100644 index 0000000..92d60b0 --- /dev/null +++ b/examples/polymer/polymer-elements/LICENSE @@ -0,0 +1,27 @@ +// Copyright (c) 2012 The Polymer Authors. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/examples/polymer/polymer-elements/PATENTS b/examples/polymer/polymer-elements/PATENTS new file mode 100644 index 0000000..e120963 --- /dev/null +++ b/examples/polymer/polymer-elements/PATENTS @@ -0,0 +1,23 @@ +Additional IP Rights Grant (Patents) + +"This implementation" means the copyrightable works distributed by +Google as part of the Polymer project. + +Google hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, +transfer and otherwise run, modify and propagate the contents of this +implementation of Polymer, where such license applies only to those +patent claims, both currently owned or controlled by Google and acquired +in the future, licensable by Google that are necessarily infringed by +this implementation of Polymer. This grant does not include claims +that would be infringed only as a consequence of further modification of +this implementation. If you or your agent or exclusive licensee +institute or order or agree to the institution of patent litigation +against any entity (including a cross-claim or counterclaim in a +lawsuit) alleging that this implementation of Polymer or any code +incorporated within this implementation of Polymer constitutes +direct or contributory patent infringement, or inducement of patent +infringement, then any patent rights granted to you under this License +for this implementation of Polymer shall terminate as of the date +such litigation is filed. diff --git a/examples/polymer/polymer-elements/polymer-ajax/index.html b/examples/polymer/polymer-elements/polymer-ajax/index.html new file mode 100644 index 0000000..d206222 --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-ajax/index.html @@ -0,0 +1,30 @@ + + + + polymer-ajax + + + + + + + + + + + diff --git a/examples/polymer/polymer-elements/polymer-ajax/polymer-ajax.html b/examples/polymer/polymer-elements/polymer-ajax/polymer-ajax.html new file mode 100644 index 0000000..d9ad2b8 --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-ajax/polymer-ajax.html @@ -0,0 +1,179 @@ + + + + + + + diff --git a/examples/polymer/polymer-elements/polymer-ajax/polymer-xhr.html b/examples/polymer/polymer-elements/polymer-ajax/polymer-xhr.html new file mode 100644 index 0000000..90d058e --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-ajax/polymer-xhr.html @@ -0,0 +1,96 @@ + + + + + + diff --git a/examples/polymer/polymer-elements/polymer-animation/index.html b/examples/polymer/polymer-elements/polymer-animation/index.html new file mode 100644 index 0000000..eff2cdf --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-animation/index.html @@ -0,0 +1,86 @@ + + + + Polymer Animation Components + + + + + + + + + + + + +
animated!
+
+ + raw + + + + + + + + raw group + + + + + + + + + + + + + + + + bounce + shake + shake forever + flip X + flip Y + blink + fade in + fade out +
+ + + diff --git a/examples/polymer/polymer-elements/polymer-animation/polymer-animation-group.html b/examples/polymer/polymer-elements/polymer-animation/polymer-animation-group.html new file mode 100644 index 0000000..d371787 --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-animation/polymer-animation-group.html @@ -0,0 +1,100 @@ + + + + diff --git a/examples/polymer/polymer-elements/polymer-animation/polymer-animation-keyframe.html b/examples/polymer/polymer-elements/polymer-animation/polymer-animation-keyframe.html new file mode 100644 index 0000000..56b9f58 --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-animation/polymer-animation-keyframe.html @@ -0,0 +1,41 @@ + + + + diff --git a/examples/polymer/polymer-elements/polymer-animation/polymer-animation-prop.html b/examples/polymer/polymer-elements/polymer-animation/polymer-animation-prop.html new file mode 100644 index 0000000..d67a889 --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-animation/polymer-animation-prop.html @@ -0,0 +1,25 @@ + + + + diff --git a/examples/polymer/polymer-elements/polymer-animation/polymer-animation.html b/examples/polymer/polymer-elements/polymer-animation/polymer-animation.html new file mode 100644 index 0000000..2e9ae28 --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-animation/polymer-animation.html @@ -0,0 +1,295 @@ + + + + + + diff --git a/examples/polymer/polymer-elements/polymer-animation/polymer-blink.html b/examples/polymer/polymer-elements/polymer-animation/polymer-blink.html new file mode 100644 index 0000000..b7c348b --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-animation/polymer-blink.html @@ -0,0 +1,14 @@ + + + + diff --git a/examples/polymer/polymer-elements/polymer-animation/polymer-bounce.html b/examples/polymer/polymer-elements/polymer-animation/polymer-bounce.html new file mode 100644 index 0000000..58d2d7c --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-animation/polymer-bounce.html @@ -0,0 +1,31 @@ + + + + diff --git a/examples/polymer/polymer-elements/polymer-animation/polymer-fadein.html b/examples/polymer/polymer-elements/polymer-animation/polymer-fadein.html new file mode 100644 index 0000000..50f09ac --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-animation/polymer-fadein.html @@ -0,0 +1,17 @@ + + + + + diff --git a/examples/polymer/polymer-elements/polymer-animation/polymer-fadeout.html b/examples/polymer/polymer-elements/polymer-animation/polymer-fadeout.html new file mode 100644 index 0000000..75670dc --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-animation/polymer-fadeout.html @@ -0,0 +1,13 @@ + + + + diff --git a/examples/polymer/polymer-elements/polymer-animation/polymer-flip.html b/examples/polymer/polymer-elements/polymer-animation/polymer-flip.html new file mode 100644 index 0000000..fdd91df --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-animation/polymer-flip.html @@ -0,0 +1,46 @@ + + + + diff --git a/examples/polymer/polymer-elements/polymer-animation/polymer-shake.html b/examples/polymer/polymer-elements/polymer-animation/polymer-shake.html new file mode 100644 index 0000000..208d0af --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-animation/polymer-shake.html @@ -0,0 +1,59 @@ + + + + + diff --git a/examples/polymer/polymer-elements/polymer-animation/polymer-translate.html b/examples/polymer/polymer-elements/polymer-animation/polymer-translate.html new file mode 100644 index 0000000..77ad25a --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-animation/polymer-translate.html @@ -0,0 +1,41 @@ + + + + + diff --git a/examples/polymer/polymer-elements/polymer-animation/web-animations.html b/examples/polymer/polymer-elements/polymer-animation/web-animations.html new file mode 100644 index 0000000..293d224 --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-animation/web-animations.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/examples/polymer/polymer-elements/polymer-collapse/index.html b/examples/polymer/polymer-elements/polymer-collapse/index.html new file mode 100644 index 0000000..55115fe --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-collapse/index.html @@ -0,0 +1,52 @@ + + + + polymer-collapse + + + + + +
+ +
+
Forma temperiemque cornua sidera dissociata cornua recessit innabilis ligavit: solidumque coeptis nullus caelum sponte phoebe di regat mentisque tanta austro capacius amphitrite sui quin postquam semina fossae liquidum umor galeae coeptis caligine liberioris quin liquidum matutinis invasit posset: flexi glomeravit radiis certis invasit oppida postquam onerosior inclusum dominari opifex terris pace finxit quam aquae nunc sine altae auroram quam habentem homo totidemque scythiam in pondus ensis tegit caecoque poena lapidosos humanas coeperunt poena aetas totidem nec natura aethera locavit caelumque distinxit animalibus phoebe cingebant moderantum porrexerat terrae possedit sua sole diu summaque obliquis melioris orbem
+
+ +
+
+ +
+
Coercuit iunctarum vix sic aberant spisso imagine litem cetera nubes ambitae tanta usu circumfuso fulminibus umentia rectumque iuga pluviaque meis semina regat ne campoque meis coeperunt nix cura iunctarum ligavit: secant ventos seductaque permisit sic iunctarum locoque his coeptis tum terras animalia recepta aethera cornua invasit tollere videre tonitrua humanas otia tuba alta dissociata sanctius adsiduis inclusum caesa ita onus sine pluviaque litem manebat fixo extendi ubi inposuit cum sublime membra undas orba forma deducite aethera turba coercuit retinebat obliquis bracchia nisi mentisque origine peregrinum manebat
+
+ +
+
Forma temperiemque cornua sidera dissociata cornua recessit innabilis ligavit: solidumque coeptis nullus caelum sponte phoebe di regat mentisque tanta austro capacius amphitrite sui quin postquam semina fossae liquidum umor galeae coeptis caligine liberioris quin liquidum matutinis invasit posset: flexi glomeravit radiis certis invasit oppida postquam onerosior inclusum dominari opifex terris pace finxit quam aquae nunc sine altae auroram quam habentem homo totidemque scythiam in pondus ensis tegit caecoque poena lapidosos humanas coeperunt poena aetas totidem nec natura aethera locavit caelumque distinxit animalibus phoebe cingebant moderantum porrexerat terrae possedit sua sole diu summaque obliquis melioris orbem
+
+ +
+
Forma temperiemque cornua sidera dissociata cornua recessit innabilis ligavit: solidumque coeptis nullus caelum sponte phoebe di regat mentisque tanta austro capacius amphitrite sui quin postquam semina fossae liquidum umor galeae coeptis caligine liberioris quin liquidum matutinis invasit posset: flexi glomeravit radiis certis invasit oppida postquam onerosior inclusum dominari opifex terris pace finxit quam aquae nunc sine altae auroram quam habentem homo totidemque scythiam in pondus ensis tegit caecoque poena lapidosos humanas coeperunt poena aetas totidem nec natura aethera locavit caelumque distinxit animalibus phoebe cingebant moderantum porrexerat terrae possedit sua sole diu summaque obliquis melioris orbem
+
+ +
+
+ +
+
Obstabatque cingebant nitidis rapidisque cepit moderantum discordia habentia frigore solidumque fert inter caecoque sine coeperunt corpore quarum fluminaque coercuit vultus animal austro quem os sectamque animus origo solidumque quoque melioris adspirate recepta utramque rapidisque caelumque orba unus pluviaque erant mutastis gravitate illic quisque alta calidis speciem mixtam ante contraria duae
+
+ +
+ + diff --git a/examples/polymer/polymer-elements/polymer-collapse/polymer-collapse.html b/examples/polymer/polymer-elements/polymer-collapse/polymer-collapse.html new file mode 100644 index 0000000..46478ba --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-collapse/polymer-collapse.html @@ -0,0 +1,188 @@ + + + + + + diff --git a/examples/polymer/polymer-elements/polymer-file/index.html b/examples/polymer/polymer-elements/polymer-file/index.html new file mode 100644 index 0000000..bba5f5c --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-file/index.html @@ -0,0 +1,27 @@ + + + + polymer-file + + + + + + +

Read result:

+ + + + + diff --git a/examples/polymer/polymer-elements/polymer-file/polymer-file.html b/examples/polymer/polymer-elements/polymer-file/polymer-file.html new file mode 100644 index 0000000..94590d3 --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-file/polymer-file.html @@ -0,0 +1,138 @@ + + + + + + + diff --git a/examples/polymer/polymer-elements/polymer-flex-layout/index.html b/examples/polymer/polymer-elements/polymer-flex-layout/index.html new file mode 100644 index 0000000..0da82fb --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-flex-layout/index.html @@ -0,0 +1,129 @@ + + + + polymer-flex-layout + + + + + + + + + + + + + + + + + + +

Using CSS class from polymer-flex-layout.css

+ +
+

polymer-flex-layout as a flexbox container

+ +
+

Using polymer-flex-layout to add flexbox behavior to the parent node

+ + + diff --git a/examples/polymer/polymer-elements/polymer-flex-layout/polymer-flex-layout.css b/examples/polymer/polymer-elements/polymer-flex-layout/polymer-flex-layout.css new file mode 100644 index 0000000..6b41a08 --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-flex-layout/polymer-flex-layout.css @@ -0,0 +1,179 @@ +.flexbox { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: -moz-flex !important; + display: -webkit-flex !important; + display: flex !important; +} + +.flexbox.row { + -webkit-box-orient: horizontal; + -ms-flex-direction: row; + -moz-flex-direction: row; + -webkit-flex-direction: row; + flex-direction: row; +} + +.flexbox.column { + -webkit-box-orient: vertical; + -ms-flex-direction: column; + -moz-flex-direction: column; + -webkit-flex-direction: column; + flex-direction: column; +} + +.flex, [flex], [fit] { + -webkit-box-flex: 1; + -ms-flex: 1; + -moz-flex: 1; + -webkit-flex: 1; + flex: 1; +} + +content::-webkit-distributed(.flex), +content::-webkit-distributed([flex]), +content::-webkit-distributed([fit]) { + -webkit-box-flex: 1; + -ms-flex: 1; + -moz-flex: 1; + -webkit-flex: 1; + flex: 1; +} + +.flexbox.align-start { + -webkit-box-align: start; + -ms-flex-align: start; + -moz-align-items: flex-start; + -webkit-align-items: flex-start; + align-items: flex-start; +} + +.flexbox.align-end { + -webkit-box-align: end; + -ms-flex-align: end; + -moz-align-items: flex-end; + -webkit-align-items: flex-end; + align-items: flex-end; +} + +.flexbox.align-center { + -webkit-box-align: center; + -ms-flex-align: center; + -moz-align-items: center; + -webkit-align-items: center; + align-items: center; +} + +.flexbox.justify-start { + -webkit-box-pack: start; + -ms-flex-pack: start; + -moz-justify-content: flex-start; + -webkit-justify-content: flex-start; + justify-content: flex-start; +} + +.flexbox.justify-end { + -webkit-box-pack: end; + -ms-flex-pack: end; + -moz-justify-content: flex-end; + -webkit-justify-content: flex-end; + justify-content: flex-end; +} + +.flexbox.justify-center { + -webkit-box-pack: center; + -ms-flex-pack: center; + -moz-justify-content: center; + -webkit-justify-content: center; + justify-content: center; +} + +.flexbox.justify-between { + -webkit-box-pack: justify; + -ms-flex-pack: justify; + -moz-justify-content: space-between; + -webkit-justify-content: space-between; + justify-content: space-between; +} + +@host { + .flexbox { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: -moz-flex !important; + display: -webkit-flex !important; + display: flex !important; + } + + .flexbox.row { + -webkit-box-orient: horizontal; + -ms-flex-direction: row; + -moz-flex-direction: row; + -webkit-flex-direction: row; + flex-direction: row; + } + + .flexbox.column { + -webkit-box-orient: vertical; + -ms-flex-direction: column; + -moz-flex-direction: column; + -webkit-flex-direction: column; + flex-direction: column; + } + + .flexbox.align-start { + -webkit-box-align: start; + -ms-flex-align: start; + -moz-align-items: flex-start; + -webkit-align-items: flex-start; + align-items: flex-start; + } + + .flexbox.align-end { + -webkit-box-align: end; + -ms-flex-align: end; + -moz-align-items: flex-end; + -webkit-align-items: flex-end; + align-items: flex-end; + } + + .flexbox.align-center { + -webkit-box-align: center; + -ms-flex-align: center; + -moz-align-items: center; + -webkit-align-items: center; + align-items: center; + } + + .flexbox.justify-start { + -webkit-box-pack: start; + -ms-flex-pack: start; + -moz-justify-content: flex-start; + -webkit-justify-content: flex-start; + justify-content: flex-start; + } + + .flexbox.justify-end { + -webkit-box-pack: end; + -ms-flex-pack: end; + -moz-justify-content: flex-end; + -webkit-justify-content: flex-end; + justify-content: flex-end; + } + + .flexbox.justify-center { + -webkit-box-pack: center; + -ms-flex-pack: center; + -moz-justify-content: center; + -webkit-justify-content: center; + justify-content: center; + } + + .flexbox.justify-between { + -webkit-box-pack: justify; + -ms-flex-pack: justify; + -moz-justify-content: space-between; + -webkit-justify-content: space-between; + justify-content: space-between; + } +} diff --git a/examples/polymer/polymer-elements/polymer-flex-layout/polymer-flex-layout.html b/examples/polymer/polymer-elements/polymer-flex-layout/polymer-flex-layout.html new file mode 100644 index 0000000..3578056 --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-flex-layout/polymer-flex-layout.html @@ -0,0 +1,47 @@ + + + + + diff --git a/examples/polymer/polymer-elements/polymer-google-jsapi/index.html b/examples/polymer/polymer-elements/polymer-google-jsapi/index.html new file mode 100644 index 0000000..7483f1b --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-google-jsapi/index.html @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + diff --git a/examples/polymer/polymer-elements/polymer-google-jsapi/polymer-google-jsapi.html b/examples/polymer/polymer-elements/polymer-google-jsapi/polymer-google-jsapi.html new file mode 100644 index 0000000..0818078 --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-google-jsapi/polymer-google-jsapi.html @@ -0,0 +1,56 @@ + + + + diff --git a/examples/polymer/polymer-elements/polymer-jsonp/index.html b/examples/polymer/polymer-elements/polymer-jsonp/index.html new file mode 100644 index 0000000..d5f0b94 --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-jsonp/index.html @@ -0,0 +1,28 @@ + + + + polymer-jsonp + + + + + + + + + + + diff --git a/examples/polymer/polymer-elements/polymer-jsonp/polymer-jsonp.html b/examples/polymer/polymer-elements/polymer-jsonp/polymer-jsonp.html new file mode 100644 index 0000000..5edd3b6 --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-jsonp/polymer-jsonp.html @@ -0,0 +1,93 @@ + + + + + diff --git a/examples/polymer/polymer-elements/polymer-key-helper/polymer-key-helper.html b/examples/polymer/polymer-elements/polymer-key-helper/polymer-key-helper.html new file mode 100644 index 0000000..6e63b33 --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-key-helper/polymer-key-helper.html @@ -0,0 +1,13 @@ + + + + diff --git a/examples/polymer/polymer-elements/polymer-layout/index.html b/examples/polymer/polymer-elements/polymer-layout/index.html new file mode 100644 index 0000000..2e6b39f --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-layout/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + +
+ +
Hi I'm some content
+
Click Me First
+
Click Me Second
+
+ +
Gribble gribble
+
Click Me
+
Squids!
+
Click Me
+
More is more
+
Squids are larger than they appear.
+
+
Click me
+ +
+ + + + + + + diff --git a/examples/polymer/polymer-elements/polymer-layout/polymer-layout.html b/examples/polymer/polymer-elements/polymer-layout/polymer-layout.html new file mode 100644 index 0000000..0860d65 --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-layout/polymer-layout.html @@ -0,0 +1,125 @@ + + + + + diff --git a/examples/polymer/polymer-elements/polymer-layout/polymer-slide.html b/examples/polymer/polymer-elements/polymer-layout/polymer-slide.html new file mode 100644 index 0000000..7a0a370 --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-layout/polymer-slide.html @@ -0,0 +1,155 @@ + + + + + diff --git a/examples/polymer/polymer-elements/polymer-localstorage/index.html b/examples/polymer/polymer-elements/polymer-localstorage/index.html new file mode 100644 index 0000000..9a35ceb --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-localstorage/index.html @@ -0,0 +1,22 @@ + + + + polymer-localstorage + + + + + + + + + + + + diff --git a/examples/polymer/polymer-elements/polymer-localstorage/polymer-localstorage.html b/examples/polymer/polymer-elements/polymer-localstorage/polymer-localstorage.html new file mode 100644 index 0000000..202501c --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-localstorage/polymer-localstorage.html @@ -0,0 +1,75 @@ + + + + + + diff --git a/examples/polymer/polymer-elements/polymer-media-query/index.html b/examples/polymer/polymer-elements/polymer-media-query/index.html new file mode 100644 index 0000000..42de218 --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-media-query/index.html @@ -0,0 +1,36 @@ + + + + + Polymer match media + + + + + + + + + + + +
+  Log of 'mediachange' events on document, from polymer-match-media:
+  
+ + + + diff --git a/examples/polymer/polymer-elements/polymer-media-query/polymer-media-query.html b/examples/polymer/polymer-elements/polymer-media-query/polymer-media-query.html new file mode 100644 index 0000000..811a11c --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-media-query/polymer-media-query.html @@ -0,0 +1,43 @@ + + + + + + diff --git a/examples/polymer/polymer-elements/polymer-meta/index.html b/examples/polymer/polymer-elements/polymer-meta/index.html new file mode 100644 index 0000000..446ebb3 --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-meta/index.html @@ -0,0 +1,35 @@ + + + + polymer-meta + + + + + + + + + + + + +
+ + + + diff --git a/examples/polymer/polymer-elements/polymer-meta/polymer-meta.html b/examples/polymer/polymer-elements/polymer-meta/polymer-meta.html new file mode 100644 index 0000000..5278c9c --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-meta/polymer-meta.html @@ -0,0 +1,55 @@ + + + + + diff --git a/examples/polymer/polymer-elements/polymer-overlay/index.html b/examples/polymer/polymer-elements/polymer-overlay/index.html new file mode 100644 index 0000000..232273c --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-overlay/index.html @@ -0,0 +1,126 @@ + + + + polymer-overlay + + + + + + + ( open styling: + , + + + ) +
+
+ +

Dialog

+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed fringilla sapien sed enim sollicitudin laoreet. Suspendisse suscipit, metus ac volutpat sodales, libero magna semper lacus, molestie fringilla massa orci ut arcu. Nullam sodales urna sit amet odio vehicula mattis.


+
Ut aliquam vulputate congue. Vestibulum pretium pretium nulla quis sollicitudin. Praesent lacinia congue erat nec mattis. Fusce commodo lacus est. Duis turpis eros, ultrices sed aliquet non, blandit egestas velit. Integer a augue nec lorem tristique hendrerit. Curabitur imperdiet risus id enim bibendum vestibulum. Integer id magna at arcu faucibus fermentum vel a augue. Sed fringilla venenatis dolor, in blandit magna molestie luctus. Vestibulum dignissim posuere ultrices. Aenean urna nisl, tincidunt vitae iaculis ut, pharetra nec eros.


+
+
+ I agree with this wholeheartedly. +
+ + Thank you. +
+


+ +
+ +

+ + + +
+ +
+

Dialog 2

+ I'm dizzy. +
+

+ +
+ + + diff --git a/examples/polymer/polymer-elements/polymer-overlay/polymer-overlay-global.css b/examples/polymer/polymer-elements/polymer-overlay/polymer-overlay-global.css new file mode 100644 index 0000000..021c67d --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-overlay/polymer-overlay-global.css @@ -0,0 +1,129 @@ +/* + * Copyright 2013 The Polymer Authors. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + */ + +.polymer-overlay { + position: fixed; + z-index: 10; + outline: none; + display: none; + opacity: 0.99; + -webkit-transition: opacity 0.001s; + transition: opacity 0.001s; +} + +/* + The revealed class exists because it's necessary to 'show' a node + before applying a transition. When an overlay is opened, it is + immediately revealed (display: block) and then asynchronously the + opened or closing classes are added. + + Because we don't want to actually show the node before a transition + or animation is applied, when the node is + revealed, it is made display: block but visibility: hidden. + It is then made visibility: visible when it is opened. +*/ + +.polymer-overlay.revealed { + display: block; + visibility: hidden; +} + +.polymer-overlay.revealed.opened { + opacity: 1; + display: block; + visibility: visible; +} + +.polymer-overlay.revealed.closing { + display: block; + visibility: visible; +} + +@-webkit-keyframes polymer-overlay-shakeFadeIn { + 0% { + opacity: 0; + -webkit-transform: translateX(0); + } + 10% { + -webkit-transform: translateX(-50px); + } + 30% { + -webkit-transform: translateX(50px); + } + 50% { + -webkit-transform: translateX(-25px); + } + 70% { + -webkit-transform: translateX(25px); + } + 90% { + -webkit-transform: translateX(-13px); + } + 100% { + -webkit-transform: translateX(0); + opacity: 1; + } +} + +@keyframes polymer-overlay-shakeFadeIn { + 0% { + opacity: 0; + transform: translateX(0); + } + 10% { + transform: translateX(-50px); + } + 30% { + transform: translateX(50px); + } + 50% { + transform: translateX(-25px); + } + 70% { + transform: translateX(25px); + } + 90% { + transform: translateX(-13px); + } + 100% { + transform: translateX(0); + opacity: 1; + } +} + +@-webkit-keyframes polymer-overlay-shakeFadeOut { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + 10% { + -webkit-transform: translateX(-50px); + } + 30% { + -webkit-transform: translateX(50px); + } + 100% { + -webkit-transform: translateX(-100%); + opacity: 0; + } +} + +@keyframes polymer-overlay-shakeFadeOut { + 0% { + opacity: 1; + transform: translateX(0); + } + 10% { + transform: translateX(-50px); + } + 30% { + transform: translateX(50px); + } + 100% { + transform: translateX(-100%); + opacity: 0; + } +} diff --git a/examples/polymer/polymer-elements/polymer-overlay/polymer-overlay.css b/examples/polymer/polymer-elements/polymer-overlay/polymer-overlay.css new file mode 100644 index 0000000..821b061 --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-overlay/polymer-overlay.css @@ -0,0 +1,131 @@ +/* + * Copyright 2013 The Polymer Authors. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + */ + +/* + TODO(sorvell): include a reasonable set of default overlay opening + animations. What's here right now is ad hoc. +*/ + + /* + Styling a polymer-overlay: + + 1. use the 'opened' class to style the overlay when it is open. + A transition or animation can be applied to animate the overlay into place. + Note: there's no need to set the display property of an overlay. That's + managed automatically. + + 2. To apply a different animation when the overlay closes, use the + 'closing' class. + */ + +/* Note that trbl: 0 + position: fixed will not 'fit to window' +if a transform is applied to a parent of this element. That parent +becomes the containing block; see: +http://dev.w3.org/csswg/css3-transforms/#transform-rendering +We address this by using script based positioning =( +*/ +@host { + * { + position: fixed; + z-index: 10; + outline: none; + display: none; + opacity: 0.99; + -webkit-transition: opacity 0.001s; + transition: opacity 0.001s; + } + + /* + The revealed class exists because it's necessary to 'show' a node + before applying a transition. When an overlay is opened, it is + immediately revealed (display: block) and then asynchronously the + opened or closing classes are added. + + Because we don't want to actually show the node before a transition + or animation is applied, when the node is + revealed, it is made display: block but visibility: hidden. + It is then made visibility: visible when it is opened. + */ + + .revealed { + display: block; + visibility: hidden; + } + + .revealed.opened { + opacity: 1; + display: block; + visibility: visible; + } + + .revealed.closing { + display: block; + visibility: visible; + } + + /* + When an animation is detected (via an animationstart event) this class + is applied to remove any transition. This ensures only 1 animation end event + will be processed. + + NOTE: if a rule such as a media query changes an overlay from using a css + animation to a transition, the animation class must be altered or removed. + */ + .animation { + -webkit-transition: none; + transition: none; + } + + .polymer-overlay-fade { + opacity: 0; + -webkit-transition: all 0.218s; + transition: all 0.218s; + } + + .polymer-overlay-fade.opened { + opacity: 1; + } + + .polymer-overlay-scale-slideup { + opacity: 0.0; + -webkit-transform: scale(1.05); + transform: scale(1.05); + } + + .polymer-overlay-scale-slideup.opened { + opacity: 1.0; + -webkit-transform: scale(1.0); + transform: scale(1.0); + -webkit-transition: all 0.218s; + transition: all 0.218s; + } + + .polymer-overlay-scale-slideup.closing { + opacity: 0; + -webkit-transform: translateY(-100%); + transform: translateY(-100%); + -webkit-transition: all 0.4s; + transition: all 0.4s; + } + + .polymer-overlay-shake.opened { + -webkit-animation-duration: 0.5s; + -webkit-animation-fill-mode: both; + -webkit-animation-name: polymer-overlay-shakeFadeIn; + animation-duration: 0.5s; + animation-fill-mode: both; + animation-name: polymer-overlay-shakeFadeIn; + } + + .polymer-overlay-shake.closing { + -webkit-animation-duration: 0.5s; + -webkit-animation-fill-mode: both; + -webkit-animation-name: polymer-overlay-shakeFadeOut; + animation-duration: 0.5s; + animation-fill-mode: both; + animation-name: polymer-overlay-shakeFadeOut; + } +} diff --git a/examples/polymer/polymer-elements/polymer-overlay/polymer-overlay.html b/examples/polymer/polymer-elements/polymer-overlay/polymer-overlay.html new file mode 100644 index 0000000..6b8e186 --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-overlay/polymer-overlay.html @@ -0,0 +1,330 @@ + + + + + + + + diff --git a/examples/polymer/polymer-elements/polymer-page/polymer-page.html b/examples/polymer/polymer-elements/polymer-page/polymer-page.html new file mode 100644 index 0000000..2bef02c --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-page/polymer-page.html @@ -0,0 +1,17 @@ + + + + diff --git a/examples/polymer/polymer-elements/polymer-selector/index.html b/examples/polymer/polymer-elements/polymer-selector/index.html new file mode 100644 index 0000000..6c22f34 --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-selector/index.html @@ -0,0 +1,45 @@ + + + + polymer-selector + + + + + + +
Item 1
+
Item 2
+
Item 3
+
Item 4
+
Item 5
+
+

Multi-select

+ +
Item 1
+
Item 2
+
Item 3
+
Item 4
+
Item 5
+
+ + diff --git a/examples/polymer/polymer-elements/polymer-selector/polymer-selection.html b/examples/polymer/polymer-elements/polymer-selector/polymer-selection.html new file mode 100644 index 0000000..318a61e --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-selector/polymer-selection.html @@ -0,0 +1,64 @@ + + + + + + diff --git a/examples/polymer/polymer-elements/polymer-selector/polymer-selector.html b/examples/polymer/polymer-elements/polymer-selector/polymer-selector.html new file mode 100644 index 0000000..4018fd6 --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-selector/polymer-selector.html @@ -0,0 +1,197 @@ + + + + + + + + diff --git a/examples/polymer/polymer-elements/polymer-view-source-link/index.html b/examples/polymer/polymer-elements/polymer-view-source-link/index.html new file mode 100644 index 0000000..9eacd53 --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-view-source-link/index.html @@ -0,0 +1,20 @@ + + + + + polymer-view-source-link + + + + + + + + + View Source + + diff --git a/examples/polymer/polymer-elements/polymer-view-source-link/polymer-view-source-link.html b/examples/polymer/polymer-elements/polymer-view-source-link/polymer-view-source-link.html new file mode 100644 index 0000000..164c6fb --- /dev/null +++ b/examples/polymer/polymer-elements/polymer-view-source-link/polymer-view-source-link.html @@ -0,0 +1,15 @@ + + + + diff --git a/examples/polymer/polymer-ui-elements/AUTHORS b/examples/polymer/polymer-ui-elements/AUTHORS new file mode 100644 index 0000000..0617765 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/AUTHORS @@ -0,0 +1,9 @@ +# Names should be added to this file with this pattern: +# +# For individuals: +# Name +# +# For organizations: +# Organization +# +Google Inc. <*@google.com> diff --git a/examples/polymer/polymer-ui-elements/LICENSE b/examples/polymer/polymer-ui-elements/LICENSE new file mode 100644 index 0000000..92d60b0 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/LICENSE @@ -0,0 +1,27 @@ +// Copyright (c) 2012 The Polymer Authors. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/examples/polymer/polymer-ui-elements/PATENTS b/examples/polymer/polymer-ui-elements/PATENTS new file mode 100644 index 0000000..e120963 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/PATENTS @@ -0,0 +1,23 @@ +Additional IP Rights Grant (Patents) + +"This implementation" means the copyrightable works distributed by +Google as part of the Polymer project. + +Google hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, +transfer and otherwise run, modify and propagate the contents of this +implementation of Polymer, where such license applies only to those +patent claims, both currently owned or controlled by Google and acquired +in the future, licensable by Google that are necessarily infringed by +this implementation of Polymer. This grant does not include claims +that would be infringed only as a consequence of further modification of +this implementation. If you or your agent or exclusive licensee +institute or order or agree to the institution of patent litigation +against any entity (including a cross-claim or counterclaim in a +lawsuit) alleging that this implementation of Polymer or any code +incorporated within this implementation of Polymer constitutes +direct or contributory patent infringement, or inducement of patent +infringement, then any patent rights granted to you under this License +for this implementation of Polymer shall terminate as of the date +such litigation is filed. diff --git a/examples/polymer/polymer-ui-elements/assets/action-icons.pdn b/examples/polymer/polymer-ui-elements/assets/action-icons.pdn new file mode 100644 index 0000000000000000000000000000000000000000..21998463c7ca578b233655404f832e7b26714729 GIT binary patch literal 26959 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 literal 0 HcmV?d00001 diff --git a/examples/polymer/polymer-ui-elements/assets/action-icons.png b/examples/polymer/polymer-ui-elements/assets/action-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..174fc9250cd3b876848700131d76382baaae5ed9 GIT binary patch literal 9851 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 literal 0 HcmV?d00001 diff --git a/examples/polymer/polymer-ui-elements/assets/ribbon-icons.pdn b/examples/polymer/polymer-ui-elements/assets/ribbon-icons.pdn new file mode 100644 index 0000000000000000000000000000000000000000..c60d247e4e6f7f54182deae7170376e3547ea335 GIT binary patch literal 34976 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 Kw%m%6lk#u=)NtPb literal 0 HcmV?d00001 diff --git a/examples/polymer/polymer-ui-elements/assets/ribbon-icons.png b/examples/polymer/polymer-ui-elements/assets/ribbon-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..19eaf0c4aac39ba20a7f6ab52ca90a47cd88e0c4 GIT binary patch literal 8774 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 UObx_}Zovb<%Gyd*3f5u&1;ai3-~a#s literal 0 HcmV?d00001 diff --git a/examples/polymer/polymer-ui-elements/basic.css b/examples/polymer/polymer-ui-elements/basic.css new file mode 100644 index 0000000..51a26e1 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/basic.css @@ -0,0 +1,70 @@ +/* +Copyright 2013 The Polymer Authors. All rights reserved. +Use of this source code is governed by a BSD-style +license that can be found in the LICENSE file. +*/ +.polymer-ui-full-bleed { + height: 100%; + overflow: hidden; + margin: 0; +} + +.polymer-ui-fit { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.polymer-ui-light-bg { + background: #f2f2f2 -webkit-linear-gradient(left, rgba(197,197,197,0), rgba(197,197,197,0.05)); + background: #f2f2f2 -moz-linear-gradient(left, rgba(197,197,197,0), rgba(197,197,197,0.05)); + background: #f2f2f2 -ms-linear-gradient(left, rgba(197,197,197,0), rgba(197,197,197,0.05)); + background: #f2f2f2 linear-gradient(left, rgba(197,197,197,0), rgba(197,197,197,0.05)); + color: #333333; +} + +.polymer-ui-dark-bg { + background: #333333 -webkit-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,0.35)); + background: #333333 -moz-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,0.35)); + background: #333333 -ms-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,0.35)); + background: #333333 linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,0.35)); + color: #ededed; +} + +.polymer-ui-body-text { + font: 16px 'Helvetica Neue', Helvetica, Arial, Roboto; +} + +/* +.polymer-ui-light-bg { + background-color: #d9d9d9; + color: #333; +} + +.polymer-ui-dark-bg { + background-color: #262626; + color: #eee; +} + +.polymer-ui-bg-gray { + background-color: #d9d9d9; +} + +.polymer-ui-bg-jl-dark-theme { + background-color: #4d4d4d; +} + +.polymer-ui-header-gray { + background-color: #262626; +} + +.polymer-ui-header-jl-dark-theme { + background-color: #262626; +} + +.polymer-ui-header { + background-color: #f3f3f0; +} +*/ diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-accordion/index.html b/examples/polymer/polymer-ui-elements/polymer-ui-accordion/index.html new file mode 100644 index 0000000..1b826b6 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-accordion/index.html @@ -0,0 +1,55 @@ + + + + + + polymer-ui-accordion + + + + + + + + +
Header 1
+
+ Forma temperiemque cornua sidera dissociata cornua recessit innabilis ligavit: solidumque coeptis nullus caelum sponte phoebe di regat mentisque tanta austro capacius amphitrite sui quin postquam semina fossae liquidum umor galeae coeptis caligine liberioris quin liquidum matutinis invasit posset: flexi glomeravit radiis certis invasit oppida postquam onerosior inclusum dominari opifex terris pace finxit quam aquae nunc sine altae auroram quam habentem homo totidemque scythiam in pondus ensis tegit caecoque poena lapidosos humanas coeperunt poena aetas totidem nec natura aethera locavit caelumque distinxit animalibus phoebe cingebant moderantum porrexerat terrae possedit sua sole diu summaque obliquis melioris orbem +
+
+ +
Header 2
+
+ Coercuit iunctarum vix sic aberant spisso imagine litem cetera nubes ambitae tanta usu circumfuso fulminibus umentia rectumque iuga pluviaque meis semina regat ne campoque meis coeperunt nix cura iunctarum ligavit: secant ventos seductaque permisit sic iunctarum locoque his coeptis tum terras animalia recepta aethera cornua invasit tollere videre tonitrua humanas otia tuba alta dissociata sanctius adsiduis inclusum caesa ita onus sine pluviaque litem manebat fixo extendi ubi inposuit cum sublime membra undas orba forma deducite aethera turba coercuit retinebat obliquis bracchia nisi mentisque origine peregrinum manebat +
+
+ +
Header 3
+
+ Forma temperiemque cornua sidera dissociata cornua recessit innabilis ligavit: solidumque coeptis nullus caelum sponte phoebe di regat mentisque tanta austro capacius amphitrite sui quin postquam semina fossae liquidum umor galeae coeptis caligine liberioris quin liquidum matutinis invasit posset: flexi glomeravit radiis certis invasit oppida postquam onerosior inclusum dominari opifex terris pace finxit quam aquae nunc sine altae auroram quam habentem homo totidemque scythiam in pondus ensis tegit caecoque poena lapidosos humanas coeperunt poena aetas totidem nec natura aethera locavit caelumque +
+
+
+ + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-accordion/polymer-ui-accordion.css b/examples/polymer/polymer-ui-elements/polymer-ui-accordion/polymer-ui-accordion.css new file mode 100644 index 0000000..ceb10a5 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-accordion/polymer-ui-accordion.css @@ -0,0 +1,11 @@ +/* +Copyright 2013 The Polymer Authors. All rights reserved. +Use of this source code is governed by a BSD-style +license that can be found in the LICENSE file. +*/ + +@host { + * { + display: block; + } +} \ No newline at end of file diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-accordion/polymer-ui-accordion.html b/examples/polymer/polymer-ui-elements/polymer-ui-accordion/polymer-ui-accordion.html new file mode 100644 index 0000000..6f38306 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-accordion/polymer-ui-accordion.html @@ -0,0 +1,44 @@ + + + + + + + + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-collapsible/index.html b/examples/polymer/polymer-ui-elements/polymer-ui-collapsible/index.html new file mode 100644 index 0000000..ee6281f --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-collapsible/index.html @@ -0,0 +1,40 @@ + + + + + polymer-ui-collapsible + + + + + + + +
Header 1
+
+ Forma temperiemque cornua sidera dissociata cornua recessit innabilis ligavit: solidumque coeptis nullus caelum sponte phoebe di regat mentisque tanta austro capacius amphitrite sui quin postquam semina fossae liquidum umor galeae coeptis caligine liberioris quin liquidum matutinis invasit posset: flexi glomeravit radiis certis invasit oppida postquam onerosior inclusum dominari opifex terris pace finxit quam aquae nunc sine altae auroram quam habentem homo totidemque scythiam in pondus ensis tegit caecoque poena lapidosos humanas coeperunt poena aetas totidem nec natura aethera locavit caelumque distinxit animalibus phoebe cingebant moderantum porrexerat terrae possedit sua sole diu summaque obliquis melioris orbem +
+
+ + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-collapsible/polymer-ui-collapsible.css b/examples/polymer/polymer-ui-elements/polymer-ui-collapsible/polymer-ui-collapsible.css new file mode 100644 index 0000000..e5129bf --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-collapsible/polymer-ui-collapsible.css @@ -0,0 +1,15 @@ +/* +Copyright 2013 The Polymer Authors. All rights reserved. +Use of this source code is governed by a BSD-style +license that can be found in the LICENSE file. +*/ + +@host { + * { + display: block; + } +} + +#collapsibleBody { + height: 0; +} \ No newline at end of file diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-collapsible/polymer-ui-collapsible.html b/examples/polymer/polymer-ui-elements/polymer-ui-collapsible/polymer-ui-collapsible.html new file mode 100644 index 0000000..d2cdf6f --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-collapsible/polymer-ui-collapsible.html @@ -0,0 +1,48 @@ + + + + + + + + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-icon-button/btn_light.png b/examples/polymer/polymer-ui-elements/polymer-ui-icon-button/btn_light.png new file mode 100644 index 0000000000000000000000000000000000000000..122af8de1d91c15a40dcf5923b3e4f8a24e17077 GIT binary patch literal 2658 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 + + + + polymer-ui-icon-button + + + + + + + + + + +
+ + + + + + + + + +
+
+ + + + + + + + + +
+
+ + + + + + + + + +
+ + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-icon-button/polymer-ui-icon-button.css b/examples/polymer/polymer-ui-elements/polymer-ui-icon-button/polymer-ui-icon-button.css new file mode 100644 index 0000000..8c32c02 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-icon-button/polymer-ui-icon-button.css @@ -0,0 +1,35 @@ +/* +Copyright 2013 The Polymer Authors. All rights reserved. +Use of this source code is governed by a BSD-style +license that can be found in the LICENSE file. +*/ +@host { + * { + display: inline-block; + box-sizing: border-box; + -moz-box-sizing: border-box; + width: 44px; + height: 44px; + padding: 10px; + vertical-align: middle; + cursor: pointer; + background: url(btn_light.png) top left no-repeat; + background-size: cover; + } + + *:hover { + background-position: 0 -44px; + } + + *.selected { + background-position: 0 -88px; + } + + *:active, *.selected:active { + background-position: 0 -132px; + } +} + +polymer-ui-icon { + display: block !important; +} \ No newline at end of file diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-icon-button/polymer-ui-icon-button.html b/examples/polymer/polymer-ui-elements/polymer-ui-icon-button/polymer-ui-icon-button.html new file mode 100644 index 0000000..d209fff --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-icon-button/polymer-ui-icon-button.html @@ -0,0 +1,77 @@ + + + + + + + + + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-icon/index.html b/examples/polymer/polymer-ui-elements/polymer-ui-icon/index.html new file mode 100644 index 0000000..8db1dee --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-icon/index.html @@ -0,0 +1,55 @@ + + + + + + polymer-ui-icon + + + + + + + + + + +
+ + + + + + + + + +
+
+ + + + + + + + + +
+
+ + + + + + + + + +
+ + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-icon/polymer-ui-icon.css b/examples/polymer/polymer-ui-elements/polymer-ui-icon/polymer-ui-icon.css new file mode 100644 index 0000000..351f625 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-icon/polymer-ui-icon.css @@ -0,0 +1,25 @@ +/* +Copyright 2013 The Polymer Authors. All rights reserved. +Use of this source code is governed by a BSD-style +license that can be found in the LICENSE file. +*/ +@host { + * { + display: inline-block; + vertical-align: middle; + cursor: pointer; + background-repeat: no-repeat; + } + + .polymer-ui-dark-icon, .polymer-ui-light-theme { + background-position: -24px 0; + } + + .polymer-ui-light-icon, .polymer-ui-dark-theme { + background-position: -72px 0; + } + + .polymer-ui-icons { + background-image: url(../assets/action-icons.png); + } +} \ No newline at end of file diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-icon/polymer-ui-icon.html b/examples/polymer/polymer-ui-elements/polymer-ui-icon/polymer-ui-icon.html new file mode 100644 index 0000000..b143297 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-icon/polymer-ui-icon.html @@ -0,0 +1,116 @@ + + + + + + + + + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-menu-item/index.html b/examples/polymer/polymer-ui-elements/polymer-ui-menu-item/index.html new file mode 100644 index 0000000..9e6be63 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-menu-item/index.html @@ -0,0 +1,33 @@ + + + + + + polymer-ui-menu-item + + + + + + +

polymer-ui-light-theme

+
+ + +
+

polymer-ui-dark-theme

+
+ + +
+ + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-menu-item/polymer-ui-menu-item.css b/examples/polymer/polymer-ui-elements/polymer-ui-menu-item/polymer-ui-menu-item.css new file mode 100644 index 0000000..30a155c --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-menu-item/polymer-ui-menu-item.css @@ -0,0 +1,81 @@ +/* +Copyright 2013 The Toolkitchen Authors. All rights reserved. +Use of this source code is governed by a BSD-style +license that can be found in the LICENSE file. +*/ + +@host { + * { + display: block; + } +} + +/* item */ +#item { + display: block; + box-sizing: border-box; + -moz-box-sizing: border-box; + height: 40px; + line-height: 35px; + padding: 0 10px; + border: 1px solid transparent; + border-radius: 3px; + white-space: nowrap; + cursor: pointer; + opacity: 0.5; +} + +#item:hover { + opacity: 0.9; +} + +#item[active] { + opacity: 1; +} + +#item.polymer-ui-light-theme[active] { + background: #f2f2f2; + border: 1px solid rgba(0, 0, 0, 0.15); +} + +#item.polymer-ui-dark-theme { + color: #b3b3b3; +} + +#item.polymer-ui-dark-theme:hover { + color: rgba(255, 255, 255, 0.9); +} + +#item.polymer-ui-dark-theme[active] { + background-color: #000; + border: 1px solid rgba(255, 255, 255, 0.2); + color: rgba(255, 255, 255, 0.9); +} + +#item[active].no-active-bg { + background-color: transparent; + border: 1px solid transparent; +} + +/* icon and label */ +polymer-ui-icon:not([showing]) { + display: none !important; +} + +#item polymer-ui-icon { + margin-right: 16px; +} + +#label { + vertical-align: middle; + padding-right: 20px; +} + +/* menu */ +#menu { + margin-left: 44px; + height: 0; + /* override @host style on polymer-ui-menu */ + background-image: none !important; + padding: 0 !important; +} diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-menu-item/polymer-ui-menu-item.html b/examples/polymer/polymer-ui-elements/polymer-ui-menu-item/polymer-ui-menu-item.html new file mode 100644 index 0000000..d38062b --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-menu-item/polymer-ui-menu-item.html @@ -0,0 +1,68 @@ + + + + + + + + + + + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-menu/index.html b/examples/polymer/polymer-ui-elements/polymer-ui-menu/index.html new file mode 100644 index 0000000..19ed21d --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-menu/index.html @@ -0,0 +1,53 @@ + + + + + + polymer-ui-menu + + + + + + + +

polymer-ui-light-theme

+ + + + + +

polymer-ui-dark-theme

+ + + + + +

no icons

+ + + + + +

sub-menu

+ + + + + + + + + + + + + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-menu/polymer-ui-menu.css b/examples/polymer/polymer-ui-elements/polymer-ui-menu/polymer-ui-menu.css new file mode 100644 index 0000000..b14e8e8 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-menu/polymer-ui-menu.css @@ -0,0 +1,29 @@ +/* +Copyright 2013 The Polymer Authors. All rights reserved. +Use of this source code is governed by a BSD-style +license that can be found in the LICENSE file. +*/ + +@host { + * { + /* technical */ + display: block; + box-sizing: border-box; + -moz-box-sizing: border-box; + /* size */ + padding: 10px; + font-size: 15px; + font-weight: bold; + } + + .polymer-ui-light-theme { + color: #333333; + } + + .polymer-ui-dark-theme { + background: -webkit-linear-gradient(-60deg, #3d3d3d, #353535); + background: -moz-linear-gradient(-60deg, #3d3d3d, #353535); + background: -ms-linear-gradient(-60deg, #3d3d3d, #353535); + color: #ededed; + } +} \ No newline at end of file diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-menu/polymer-ui-menu.html b/examples/polymer/polymer-ui-elements/polymer-ui-menu/polymer-ui-menu.html new file mode 100644 index 0000000..11771ad --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-menu/polymer-ui-menu.html @@ -0,0 +1,90 @@ + + + + + + + + + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-nav-arrow/index.html b/examples/polymer/polymer-ui-elements/polymer-ui-nav-arrow/index.html new file mode 100644 index 0000000..04a6316 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-nav-arrow/index.html @@ -0,0 +1,64 @@ + + + + + + polymer-ui-nav-arrow + + + + + + + +
+ +
Item 1
+
Item 2
+
Item 3
+
Item 4
+
Item 5
+
+ +
+ + + + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-nav-arrow/polymer-ui-nav-arrow.css b/examples/polymer/polymer-ui-elements/polymer-ui-nav-arrow/polymer-ui-nav-arrow.css new file mode 100644 index 0000000..b107e97 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-nav-arrow/polymer-ui-nav-arrow.css @@ -0,0 +1,26 @@ +/* +Copyright 2013 The Toolkitchen Authors. All rights reserved. +Use of this source code is governed by a BSD-style +license that can be found in the LICENSE file. +*/ + +@host { + * { + display: none; + position: absolute; + top: 0; + right: 0; + width: 0; + height: 0; + margin-top: -8px; + border-top: 9px solid transparent; + border-bottom: 9px solid transparent; + border-right: 9px solid white; + -webkit-transition: -webkit-transform 0.5s; + transition: transform 0.5s; + } + + .show { + display: inline; + } +} \ No newline at end of file diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-nav-arrow/polymer-ui-nav-arrow.html b/examples/polymer/polymer-ui-elements/polymer-ui-nav-arrow/polymer-ui-nav-arrow.html new file mode 100644 index 0000000..a8cd901 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-nav-arrow/polymer-ui-nav-arrow.html @@ -0,0 +1,42 @@ + + + + + + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-ratings/index.html b/examples/polymer/polymer-ui-elements/polymer-ui-ratings/index.html new file mode 100644 index 0000000..a7b74b9 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-ratings/index.html @@ -0,0 +1,23 @@ + + + + + + polymer-ui-ratings + + + + + + + + + +

+ + + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-ratings/polymer-ui-ratings.css b/examples/polymer/polymer-ui-elements/polymer-ui-ratings/polymer-ui-ratings.css new file mode 100644 index 0000000..bba8420 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-ratings/polymer-ui-ratings.css @@ -0,0 +1,29 @@ +/* +Copyright 2013 The Polymer Authors. All rights reserved. +Use of this source code is governed by a BSD-style +license that can be found in the LICENSE file. +*/ + +@host { + * { + display: inline-block; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + } +} + +#star { + display: inline-block; + vertical-align: middle; + width: 24px; + height: 24px; + margin: 0 5px; + background-size: 100% 100%; + background-image: url('star_blank.png'); + cursor: pointer; +} + +#star.full { + background-image: url('star_full.png'); +} diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-ratings/polymer-ui-ratings.html b/examples/polymer/polymer-ui-elements/polymer-ui-ratings/polymer-ui-ratings.html new file mode 100644 index 0000000..b3abb92 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-ratings/polymer-ui-ratings.html @@ -0,0 +1,74 @@ + + + + + + + + + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-ratings/star_blank.png b/examples/polymer/polymer-ui-elements/polymer-ui-ratings/star_blank.png new file mode 100644 index 0000000000000000000000000000000000000000..f034646d7d93b754ccd2094c2d9ab52371279096 GIT binary patch literal 3415 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 literal 0 HcmV?d00001 diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-ratings/star_full.png b/examples/polymer/polymer-ui-elements/polymer-ui-ratings/star_full.png new file mode 100644 index 0000000000000000000000000000000000000000..911b822a85ecee93b1ab97aea2b8cd7362130d1e GIT binary patch literal 3463 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 pP6KEF4WI!ufCkV28sHA>_W + + + + polymer-ui-sidebar-menu + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-sidebar-menu/polymer-ui-sidebar-menu.css b/examples/polymer/polymer-ui-elements/polymer-ui-sidebar-menu/polymer-ui-sidebar-menu.css new file mode 100644 index 0000000..8c28cf5 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-sidebar-menu/polymer-ui-sidebar-menu.css @@ -0,0 +1,35 @@ +/* +Copyright 2013 The Polymer Authors. All rights reserved. +Use of this source code is governed by a BSD-style +license that can be found in the LICENSE file. +*/ + +@host { + * { + position: relative; + box-shadow: inset -8px 0px 8px -4px rgba(0, 0, 0, 0.4); + padding: 0; + } + + .polymer-ui-light-theme { + box-shadow: inset -8px 0px 8px -4px rgba(0, 0, 0, 0.15); + } +} + +polymer-ui-toolbar { + /* override @host styles on polymer-ui-toolbar */ + padding: 0 12px !important; + border-bottom: 1px solid rgba(0, 0, 0, 0.2) !important; + box-shadow: 0 1px 0 rgba(255, 255, 255, 0.02); +} + +.sidebar-title { + font-size: 21px; + opacity: 0.8; + text-shadow: -1px -1px rgba(0, 0, 0, 0.2); +} + +.sidebar-menu { + padding: 0 10px; + margin: 10px 0; +} diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-sidebar-menu/polymer-ui-sidebar-menu.html b/examples/polymer/polymer-ui-elements/polymer-ui-sidebar-menu/polymer-ui-sidebar-menu.html new file mode 100644 index 0000000..9730667 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-sidebar-menu/polymer-ui-sidebar-menu.html @@ -0,0 +1,56 @@ + + + + + + + + + + + + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-splitter/handle.png b/examples/polymer/polymer-ui-elements/polymer-ui-splitter/handle.png new file mode 100644 index 0000000000000000000000000000000000000000..1edb011794faf5c50009ddb478e874af483e3df1 GIT binary patch literal 2974 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 UP=?3!M*si-07*qoM6N<$f&%V<%>V!Z literal 0 HcmV?d00001 diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-splitter/handle_horiz.png b/examples/polymer/polymer-ui-elements/polymer-ui-splitter/handle_horiz.png new file mode 100644 index 0000000000000000000000000000000000000000..0a8b6dccd46cf5cb3f9164ad06b283bd84625f62 GIT binary patch literal 2899 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 literal 0 HcmV?d00001 diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-splitter/index.html b/examples/polymer/polymer-ui-elements/polymer-ui-splitter/index.html new file mode 100644 index 0000000..de27e44 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-splitter/index.html @@ -0,0 +1,72 @@ + + + + + + polymer-ui-splitter + + + + + + + +
+
left
+ +
right
+
+
+
+
top
+ +
bottom
+
+
+
+
1
+ +
+
2
+ +
3
+
+
+
+
+
left
+ +
center
+ +
right
+
+ + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-splitter/polymer-ui-splitter.css b/examples/polymer/polymer-ui-elements/polymer-ui-splitter/polymer-ui-splitter.css new file mode 100644 index 0000000..2f7ff6e --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-splitter/polymer-ui-splitter.css @@ -0,0 +1,27 @@ +/* +Copyright 2013 The Polymer Authors. All rights reserved. +Use of this source code is governed by a BSD-style +license that can be found in the LICENSE file. +*/ + +@host { + * { + display: block; + width: 10px; + background: #efefef url(handle.png) no-repeat center; + box-shadow: inset 0 0 2px 1px #ccc; + opacity: 0.9; + cursor: col-resize; + } + + .horizontal { + width: auto; + height: 10px; + cursor: row-resize; + background-image: url(handle_horiz.png); + } + + :hover, .active { + background-color: #ddd; + } +} \ No newline at end of file diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-splitter/polymer-ui-splitter.html b/examples/polymer/polymer-ui-elements/polymer-ui-splitter/polymer-ui-splitter.html new file mode 100644 index 0000000..34dbda6 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-splitter/polymer-ui-splitter.html @@ -0,0 +1,91 @@ + + + + + + \ No newline at end of file diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-tabs/index.html b/examples/polymer/polymer-ui-elements/polymer-ui-tabs/index.html new file mode 100644 index 0000000..4ec0932 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-tabs/index.html @@ -0,0 +1,29 @@ + + + + + + polymer-ui-tabs + + + + + + + + + + + + One + Two + Three + Four + Five + + + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-tabs/polymer-ui-tabs.html b/examples/polymer/polymer-ui-elements/polymer-ui-tabs/polymer-ui-tabs.html new file mode 100644 index 0000000..dfc9431 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-tabs/polymer-ui-tabs.html @@ -0,0 +1,65 @@ + + + + + + + + + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-theme-aware/polymer-ui-theme-aware.html b/examples/polymer/polymer-ui-elements/polymer-ui-theme-aware/polymer-ui-theme-aware.html new file mode 100644 index 0000000..91f4a47 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-theme-aware/polymer-ui-theme-aware.html @@ -0,0 +1,30 @@ + + + + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-toggle-button/index.html b/examples/polymer/polymer-ui-elements/polymer-ui-toggle-button/index.html new file mode 100644 index 0000000..648384f --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-toggle-button/index.html @@ -0,0 +1,25 @@ + + + + + + polymer-ui-toggle-button + + + + + + + + + + + +

+ + + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-toggle-button/polymer-ui-toggle-button.css b/examples/polymer/polymer-ui-elements/polymer-ui-toggle-button/polymer-ui-toggle-button.css new file mode 100644 index 0000000..d25e44d --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-toggle-button/polymer-ui-toggle-button.css @@ -0,0 +1,96 @@ +/* + * Copyright 2013 The Polymer Authors. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + */ +@host { + * { + display: inline-block; + position: relative; + width: 70px; + height: 30px; + overflow: hidden; + border: 1px solid #b6b6b6; + border-radius: 3px; + box-shadow: inset 0px 0px 1px 0 rgba(0,0,0,0.1); + -webkit-user-select: none; + -moz-user-select: none; + -webkit-transition: border 0.130s ease-out; + transition: border 0.130s ease-out; + cursor: pointer; + } + + *.on { + border: 1px solid #4584f2; + } +} + +.toggle { + position: absolute; + left: -42px; + width: 112px; + height: 100%; + overflow: hidden; + white-space: nowrap; + -webkit-transition: left 0.130s ease-out; + transition: left 0.130s ease-out; +} + +.toggle.dragging { + -webkit-transition: all 0; + transition: all 0; +} + +.toggle.on { + left: 0; +} + +.toggle > * { + float: left; +} + +.on-label, .off-label { + width: 50%; + height: 100%; + line-height: 30px; + box-sizing: border-box; + -moz-box-sizing: border-box; + text-align: center; + font-family: 'Helvetica Neue', Helvetica, Arial, 'open sans', sans-serif; + font-size: 10px; +} + +.on-label { + padding-right: 14px; + background-color: #488afd; + color: white; +} + +.off-label { + padding-left: 14px; + background-color: #bfbfbf; + color: #716f6f; +} + +.thumb { + position: absolute; + left: 42px; + width: 28px; + height: 100%; + border-radius: 2px; + background-color: white; +} + +.thumb::after { + content: ""; + position: absolute; + display: block; + top: 10px; + left: 11px; + height: 10px; + width: 8px; + background-image: -webkit-linear-gradient(left, #d4d3d3 40%, transparent 40%); + background-image: -moz-linear-gradient(left, #d4d3d3 40%, transparent 40%); + background-image: -ms-linear-gradient(left, #d4d3d3 40%, transparent 40%); + background-size: 4px; +} diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-toggle-button/polymer-ui-toggle-button.html b/examples/polymer/polymer-ui-elements/polymer-ui-toggle-button/polymer-ui-toggle-button.html new file mode 100644 index 0000000..98fd958 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-toggle-button/polymer-ui-toggle-button.html @@ -0,0 +1,72 @@ + + + + + + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-toolbar/index.html b/examples/polymer/polymer-ui-elements/polymer-ui-toolbar/index.html new file mode 100644 index 0000000..c402bbe --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-toolbar/index.html @@ -0,0 +1,81 @@ + + + + + + polymer-ui-toolbar + + + + + + + + + + + + + + + +
Toolbar: naked
+ +
+
+ + + +
Toolbar: polymer-ui-light-theme
+ +
+
+ + + +
Toolbar: polymer-ui-dark-theme
+ +
+
+ + + +
Toolbar: responsive
+ + + + + +
+
+
+
+ + + +
Toolbar: container theme
+ +
+
+
+
+
+

below here, not so much with the working

+
+

color/font work via style inheritance only, cannot affect the icon without some other support ... pseudo?

+ + +
Toolbar: custom
+ +
+ + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-toolbar/polymer-ui-toolbar.css b/examples/polymer/polymer-ui-elements/polymer-ui-toolbar/polymer-ui-toolbar.css new file mode 100644 index 0000000..3b2d958 --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-toolbar/polymer-ui-toolbar.css @@ -0,0 +1,59 @@ +/* +Copyright 2013 The Polymer Authors. All rights reserved. +Use of this source code is governed by a BSD-style +license that can be found in the LICENSE file. +*/ + +@host { + * { + /* technical */ + display: block; + box-sizing: border-box; + -moz-box-sizing: border-box; + /* border/shadow */ + border-bottom: 1px solid rgba(0, 0, 0, 0.28); + /* size */ + height: 60px; + font-size: 21px; + } + + .polymer-ui-light-theme { + background: #f2f2f2 -webkit-linear-gradient(top, rgba(197,197,197,0), rgba(197,197,197,0.15)); + background: #f2f2f2 -moz-linear-gradient(top, rgba(197,197,197,0), rgba(197,197,197,0.15)); + background: #f2f2f2 -ms-linear-gradient(top, rgba(197,197,197,0), rgba(197,197,197,0.15)); + color: #333333; + } + + .polymer-ui-dark-theme { + background: #333333 -webkit-linear-gradient(top, rgba(0,0,0,0), rgba(0,0,0,0.9)); + background: #333333 -moz-linear-gradient(top, rgba(0,0,0,0), rgba(0,0,0,0.9)); + background: #333333 -ms-linear-gradient(top, rgba(0,0,0,0), rgba(0,0,0,0.9)); + color: #ededed; + } + + .narrow-layout[responsive] { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + border: 0; + border-top: 1px solid rgba(0, 0, 0, 0.28); + } +} + +/*@polyfill @host > * */ +content::-webkit-distributed(> *) { + margin: 0 8px; +} + +/*@polyfill @host > polymer-ui-toolbar */ +content::-webkit-distributed(> polymer-ui-toolbar) { + margin: 0; +} + +/*@polyfill @host > polymer-ui-toolbar:not(.narrow-layout[responsive]) */ +content::-webkit-distributed(> polymer-ui-toolbar:not(.narrow-layout[responsive])) { + border: 0; + background: transparent; +} diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-toolbar/polymer-ui-toolbar.html b/examples/polymer/polymer-ui-elements/polymer-ui-toolbar/polymer-ui-toolbar.html new file mode 100644 index 0000000..0d947cf --- /dev/null +++ b/examples/polymer/polymer-ui-elements/polymer-ui-toolbar/polymer-ui-toolbar.html @@ -0,0 +1,65 @@ + + + + + + + + + + + diff --git a/examples/polymer/polymer-ui-elements/polymer-ui-toolbar/star.png b/examples/polymer/polymer-ui-elements/polymer-ui-toolbar/star.png new file mode 100644 index 0000000000000000000000000000000000000000..2496b8033ea856dddb8f7c12bc8889bf9912fb0b GIT binary patch literal 3117 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 + + + + + + + diff --git a/examples/polymer/toolkit-ui/elements/animation/g-animation-group.html b/examples/polymer/toolkit-ui/elements/animation/g-animation-group.html new file mode 100644 index 0000000..9606fb1 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/animation/g-animation-group.html @@ -0,0 +1,100 @@ + + + + diff --git a/examples/polymer/toolkit-ui/elements/animation/g-animation.html b/examples/polymer/toolkit-ui/elements/animation/g-animation.html new file mode 100644 index 0000000..4bce078 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/animation/g-animation.html @@ -0,0 +1,366 @@ + + + + + + + + + + + + diff --git a/examples/polymer/toolkit-ui/elements/animation/g-blink.html b/examples/polymer/toolkit-ui/elements/animation/g-blink.html new file mode 100644 index 0000000..0760d13 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/animation/g-blink.html @@ -0,0 +1,16 @@ + + + + diff --git a/examples/polymer/toolkit-ui/elements/animation/g-bounce.html b/examples/polymer/toolkit-ui/elements/animation/g-bounce.html new file mode 100644 index 0000000..8126b18 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/animation/g-bounce.html @@ -0,0 +1,33 @@ + + + + diff --git a/examples/polymer/toolkit-ui/elements/animation/g-fadein.html b/examples/polymer/toolkit-ui/elements/animation/g-fadein.html new file mode 100644 index 0000000..e14e8b9 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/animation/g-fadein.html @@ -0,0 +1,17 @@ + + + + + diff --git a/examples/polymer/toolkit-ui/elements/animation/g-fadeout.html b/examples/polymer/toolkit-ui/elements/animation/g-fadeout.html new file mode 100644 index 0000000..5d05f06 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/animation/g-fadeout.html @@ -0,0 +1,13 @@ + + + + diff --git a/examples/polymer/toolkit-ui/elements/animation/g-flip.html b/examples/polymer/toolkit-ui/elements/animation/g-flip.html new file mode 100644 index 0000000..eb2f6d4 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/animation/g-flip.html @@ -0,0 +1,47 @@ + + + + diff --git a/examples/polymer/toolkit-ui/elements/animation/g-shake.html b/examples/polymer/toolkit-ui/elements/animation/g-shake.html new file mode 100644 index 0000000..c55b76f --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/animation/g-shake.html @@ -0,0 +1,61 @@ + + + + + diff --git a/examples/polymer/toolkit-ui/elements/animation/g-translate.html b/examples/polymer/toolkit-ui/elements/animation/g-translate.html new file mode 100644 index 0000000..41ef642 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/animation/g-translate.html @@ -0,0 +1,41 @@ + + + + + diff --git a/examples/polymer/toolkit-ui/elements/css/g-flex-layout.css b/examples/polymer/toolkit-ui/elements/css/g-flex-layout.css new file mode 100644 index 0000000..1a6a10a --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/css/g-flex-layout.css @@ -0,0 +1,220 @@ +.flexbox { + display: -ms-flexbox; + display: -moz-flex; + display: -webkit-flex; + display: flex; +} +.inline-flexbox { + display: -ms-inline-flexbox; + display: -moz-inline-flex; + display: -webkit-inline-flex; + display: inline-flex; +} +.flexbox.row { + -ms-flex-direction: row; + -moz-flex-direction: row; + -webkit-flex-direction: row; + flex-direction: row; +} +.flexbox.col { + -ms-flex-direction: column; + -moz-flex-direction: column; + -webkit-flex-direction: column; + flex-direction: column; +} +.flexbox.justify-start { + -ms-flex-pack: start; + -moz-justify-content: flex-start; + -webkit-justify-content: flex-start; + justify-content: flex-start; +} +.flexbox.justify-end { + -ms-flex-pack: end; + -moz-justify-content: flex-end; + -webkit-justify-content: flex-end; + justify-content: flex-end; +} +.flexbox.justify-center { + -ms-flex-pack: center; + -moz-justify-content: center; + -webkit-justify-content: center; + justify-content: center; +} +.flexbox.justify-between { + -ms-flex-pack: justify; + -moz-justify-content: space-between; + -webkit-justify-content: space-between; + justify-content: space-between; +} +.flexbox.align-start { + -ms-flex-align: start; + -moz-align-items: flex-start; + -webkit-align-items: flex-start; + align-items: flex-start; +} +.flexbox.align-end { + -ms-flex-align: end; + -moz-align-items: flex-end; + -webkit-align-items: flex-end; + align-items: flex-end; +} +.flexbox.align-center { + -ms-flex-align: center; + -moz-align-items: center; + -webkit-align-items: center; + align-items: center; +} +.flexbox.flex-all > *, +[flex] { + -ms-flex: 1; + -moz-flex: 1; + -webkit-flex: 1; + flex: 1; +} +.flexbox > content[flex]::-webkit-distributed(*) { + -ms-flex: 1; + -moz-flex: 1; + -webkit-flex: 1; + flex: 1; +} +.flexbox > .align-start { + -moz-align-self: flex-start; + -webkit-align-self: flex-start; + align-self: flex-start; +} +.flexbox > content::-webkit-distributed(.align-start) { + -moz-align-self: flex-start; + -webkit-align-self: flex-start; + align-self: flex-start; +} +.flexbox > .align-end { + -moz-align-self: flex-end; + -webkit-align-self: flex-end; + align-self: flex-end; +} +.flexbox > content::-webkit-distributed(.align-end) { + -moz-align-self: flex-end; + -webkit-align-self: flex-end; + align-self: flex-end; +} +.flexbox > .align-center { + -moz-align-self: center; + -webkit-align-self: center; + align-self: center; +} +.flexbox > content::-webkit-distributed(.align-center) { + -moz-align-self: center; + -webkit-align-self: center; + align-self: center; +} +@host { + .flexbox { + display: -ms-flexbox; + display: -moz-flex; + display: -webkit-flex; + display: flex; + } + .inline-flexbox { + display: -ms-inline-flexbox; + display: -moz-inline-flex; + display: -webkit-inline-flex; + display: inline-flex; + } + .flexbox.row { + -ms-flex-direction: row; + -moz-flex-direction: row; + -webkit-flex-direction: row; + flex-direction: row; + } + .flexbox.col { + -ms-flex-direction: column; + -moz-flex-direction: column; + -webkit-flex-direction: column; + flex-direction: column; + } + .flexbox.justify-start { + -ms-flex-pack: start; + -moz-justify-content: flex-start; + -webkit-justify-content: flex-start; + justify-content: flex-start; + } + .flexbox.justify-end { + -ms-flex-pack: end; + -moz-justify-content: flex-end; + -webkit-justify-content: flex-end; + justify-content: flex-end; + } + .flexbox.justify-center { + -ms-flex-pack: center; + -moz-justify-content: center; + -webkit-justify-content: center; + justify-content: center; + } + .flexbox.justify-between { + -ms-flex-pack: justify; + -moz-justify-content: space-between; + -webkit-justify-content: space-between; + justify-content: space-between; + } + .flexbox.align-start { + -ms-flex-align: start; + -moz-align-items: flex-start; + -webkit-align-items: flex-start; + align-items: flex-start; + } + .flexbox.align-end { + -ms-flex-align: end; + -moz-align-items: flex-end; + -webkit-align-items: flex-end; + align-items: flex-end; + } + .flexbox.align-center { + -ms-flex-align: center; + -moz-align-items: center; + -webkit-align-items: center; + align-items: center; + } + .flexbox.flex-all > *, + [flex] { + -ms-flex: 1; + -moz-flex: 1; + -webkit-flex: 1; + flex: 1; + } + .flexbox > content[flex]::-webkit-distributed(*) { + -ms-flex: 1; + -moz-flex: 1; + -webkit-flex: 1; + flex: 1; + } + .flexbox > .align-start { + -moz-align-self: flex-start; + -webkit-align-self: flex-start; + align-self: flex-start; + } + .flexbox > content::-webkit-distributed(.align-start) { + -moz-align-self: flex-start; + -webkit-align-self: flex-start; + align-self: flex-start; + } + .flexbox > .align-end { + -moz-align-self: flex-end; + -webkit-align-self: flex-end; + align-self: flex-end; + } + .flexbox > content::-webkit-distributed(.align-end) { + -moz-align-self: flex-end; + -webkit-align-self: flex-end; + align-self: flex-end; + } + .flexbox > .align-center { + -moz-align-self: center; + -webkit-align-self: center; + align-self: center; + } + .flexbox > content::-webkit-distributed(.align-center) { + -moz-align-self: center; + -webkit-align-self: center; + align-self: center; + } +} diff --git a/examples/polymer/toolkit-ui/elements/css/g-menu-button.css b/examples/polymer/toolkit-ui/elements/css/g-menu-button.css new file mode 100644 index 0000000..26a836e --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/css/g-menu-button.css @@ -0,0 +1,99 @@ +@host { + * { + display: inline-block; + box-sizing: border-box; + -moz-box-sizing: border-box; + width: 44px; + height: 44px; + } +} + +#overlay { + background: white; + border: 1px solid rgba(0, 0, 0, 0.15); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); + margin: 9px 0 0 22px; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); +} + +[valign=right] #overlay { + -webkit-transform: translateX(-90%); + transform: translateX(-90%); +} + +[valign=left] #overlay { + -webkit-transform: translateX(-10%); + transform: translateX(-10%); +} + +.arrow { + height: 1px; + width: 0; + margin: -17px auto 0; + border-color: transparent transparent #cfcfcf transparent; + border-style: solid; + border-width: 8px; +} + +.arrow-inner { + border-bottom-color: white; + margin-top: -16px; +} + +[valign=right] .arrow { + position: relative; + left: -7px; + margin-left: 90%; +} + +[valign=left] .arrow { + position: relative; + left: -7px; + margin-left: 10%; +} + +#overlayMenu { + display: block; + box-sizing: border-box; + -moz-box-sizing: border-box; +} + +/* TODO(ffu): adding responsive class won't work in native; to work in native +automatically we'll need to add a feature to detect if we're in a responsive +container */ +@media screen and (max-width: 800px) { + [responsive=true] .arrow-border, .arrow { + display: none; + } + + [responsive=true] #overlayMenu { + width: 100%; + } + + [responsive=true] #overlay { + /* override g-overlay @host rule style */ + position: absolute !important; + -webkit-transform: translateX(0); + transform: translateX(0); + right: 0; + bottom: 0; + left: 0; + margin: 0; + border-bottom: 0; + box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.1); + } + + [responsive=true] #overlay.slideup { + -webkit-transform: translateY(100%); + transform: translateY(100%); + /* override g-overlay @host rule style */ + -webkit-transition: -webkit-transform 0.218s !important; + transition: transform 0.218s !important; + } + + [responsive=true] #overlay.slideup.opened { + -webkit-transform: translateY(0); + transform: translateY(0); + } +} \ No newline at end of file diff --git a/examples/polymer/toolkit-ui/elements/css/g-overlay-global.css b/examples/polymer/toolkit-ui/elements/css/g-overlay-global.css new file mode 100644 index 0000000..f149ea7 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/css/g-overlay-global.css @@ -0,0 +1,91 @@ +/* + * Copyright 2013 The Polymer Authors. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + */ + +@-webkit-keyframes g-overlay-shakeFadeIn { + 0% { + opacity: 0; + -webkit-transform: translateX(0); + } + 10% { + -webkit-transform: translateX(-50px); + } + 30% { + -webkit-transform: translateX(50px); + } + 50% { + -webkit-transform: translateX(-25px); + } + 70% { + -webkit-transform: translateX(25px); + } + 90% { + -webkit-transform: translateX(-13px); + } + 100% { + -webkit-transform: translateX(0); + opacity: 1; + } +} + +@keyframes g-overlay-shakeFadeIn { + 0% { + opacity: 0; + transform: translateX(0); + } + 10% { + transform: translateX(-50px); + } + 30% { + transform: translateX(50px); + } + 50% { + transform: translateX(-25px); + } + 70% { + transform: translateX(25px); + } + 90% { + transform: translateX(-13px); + } + 100% { + transform: translateX(0); + opacity: 1; + } +} + +@-webkit-keyframes g-overlay-shakeFadeOut { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + 10% { + -webkit-transform: translateX(-50px); + } + 30% { + -webkit-transform: translateX(50px); + } + 100% { + -webkit-transform: translateX(-100%); + opacity: 0; + } +} + +@keyframes g-overlay-shakeFadeOut { + 0% { + opacity: 1; + transform: translateX(0); + } + 10% { + transform: translateX(-50px); + } + 30% { + transform: translateX(50px); + } + 100% { + transform: translateX(-100%); + opacity: 0; + } +} \ No newline at end of file diff --git a/examples/polymer/toolkit-ui/elements/css/g-overlay.css b/examples/polymer/toolkit-ui/elements/css/g-overlay.css new file mode 100644 index 0000000..302bbe8 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/css/g-overlay.css @@ -0,0 +1,131 @@ +/* + * Copyright 2013 The Polymer Authors. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + */ + +/* + TODO(sorvell): include a reasonable set of default overlay opening + animations. What's here right now is ad hoc. +*/ + + /* + Styling a g-overlay: + + 1. use the 'opened' class to style the overlay when it is open. + A transition or animation can be applied to animate the overlay into place. + Note: there's no need to set the display property of an overlay. That's + managed automatically. + + 2. To apply a different animation when the overlay closes, use the + 'closing' class. + */ + +/* Note that trbl: 0 + position: fixed will not 'fit to window' +if a transform is applied to a parent of this element. That parent +becomes the containing block; see: +http://dev.w3.org/csswg/css3-transforms/#transform-rendering +We address this by using script based positioning =( +*/ +@host { + * { + position: fixed; + z-index: 10; + outline: none; + display: none; + opacity: 0.99; + -webkit-transition: opacity 0.001s; + transition: opacity 0.001s; + } + + /* + The revealed class exists because it's necessary to 'show' a node + before applying a transition. When an overlay is opened, it is + immediately revealed (display: block) and then asynchronously the + opened or closing classes are added. + + Because we don't want to actually show the node before a transition + or animation is applied, when the node is + revealed, it is made display: block but visibility: hidden. + It is then made visibility: visible when it is opened. + */ + + .revealed { + display: block; + visibility: hidden; + } + + .revealed.opened { + opacity: 1; + display: block; + visibility: visible; + } + + .revealed.closing { + display: block; + visibility: visible; + } + + /* + When an animation is detected (via an animationstart event) this class + is applied to remove any transition. This ensures only 1 animation end event + will be processed. + + NOTE: if a rule such as a media query changes an overlay from using a css + animation to a transition, the animation class must be altered or removed. + */ + .animation { + -webkit-transition: none; + transition: none; + } + + .g-overlay-fade { + opacity: 0; + -webkit-transition: all 0.218s; + transition: all 0.218s; + } + + .g-overlay-fade.opened { + opacity: 1; + } + + .g-overlay-scale-slideup { + opacity: 0.0; + -webkit-transform: scale(1.05); + transform: scale(1.05); + } + + .g-overlay-scale-slideup.opened { + opacity: 1.0; + -webkit-transform: scale(1.0); + transform: scale(1.0); + -webkit-transition: all 0.218s; + transition: all 0.218s; + } + + .g-overlay-scale-slideup.closing { + opacity: 0; + -webkit-transform: translateY(-100%); + transform: translateY(-100%); + -webkit-transition: all 0.4s; + transition: all 0.4s; + } + + .g-overlay-shake.opened { + -webkit-animation-duration: 0.5s; + -webkit-animation-fill-mode: both; + -webkit-animation-name: g-overlay-shakeFadeIn; + animation-duration: 0.5s; + animation-fill-mode: both; + animation-name: g-overlay-shakeFadeIn; + } + + .g-overlay-shake.closing { + -webkit-animation-duration: 0.5s; + -webkit-animation-fill-mode: both; + -webkit-animation-name: g-overlay-shakeFadeOut; + animation-duration: 0.5s; + animation-fill-mode: both; + animation-name: g-overlay-shakeFadeOut; + } +} diff --git a/examples/polymer/toolkit-ui/elements/css/g-panels-controller.css b/examples/polymer/toolkit-ui/elements/css/g-panels-controller.css new file mode 100644 index 0000000..d756731 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/css/g-panels-controller.css @@ -0,0 +1,218 @@ +/* + * Copyright 2013 The Polymer Authors. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + */ + +/* Styling to apply to component children based on conditional +host styling. This should be removed when the ::shadow pseudo +selector is available. */ +/* + TODO(sorvell): include a reasonable set of default panel + animations. +*/ +/* +TODO(sorvell): remove when this issue is addressed: + https://www.w3.org/Bugs/Public/show_bug.cgi?id=21389 + +*/ +g-panels > * { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + -webkit-transform: translateZ(0); + transform: translateZ(0); +} + +g-panels > g-panels { + position: absolute; +} + +g-panels > .transition { + -webkit-transition: all 0.218s ease-in-out; + transition: all 0.218s ease-in-out; +} + +g-panels > .animate { + -webkit-animation-duration: 0.218s; + -webkit-animation-fill-mode: both; + animation-duration: 0.218s; + animation-fill-mode: both; +} + +/* fade */ +g-panels > .panels-ascending-from, g-panels > .panels-descending-from { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-fadeOut; + animation: 0.218s both; + animation-name: g-panels-fadeOut; +} +g-panels > .panels-ascending-to, g-panels > .panels-descending-to { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-fadeIn; + animation: 0.218s both; + animation-name: g-panels-fadeIn; +} + +/* +TODO(sorvell): remove host conditional styling when this issue is addressed: + https://www.w3.org/Bugs/Public/show_bug.cgi?id=21390 +*/ +g-panels-hslide > .panels-ascending-from { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-slideLeft; + animation: 0.218s both; + animation-name: g-panels-slideLeft; +} +.g-panels-hslide > .panels-ascending-to { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-slideFromRight; + animation: 0.218s both; + animation-name: g-panels-slideFromRight; +} +.g-panels-hslide > .panels-descending-from { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-slideRight; + animation: 0.218s both; + animation-name: g-panels-slideRight; +} +.g-panels-hslide > .panels-descending-to { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-slideFromLeft; + animation: 0.218s both; + animation-name: g-panels-slideFromLeft; +} + +/* vslide */ +.g-panels-vslide > .panels-ascending-from { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-slideTop; + animation: 0.218s both; + animation-name: g-panels-slideTop; +} +.g-panels-vslide > .panels-ascending-to { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-slideFromBottom; + animation: 0.218s both; + animation-name: g-panels-slideFromBottom; +} +.g-panels-vslide > .panels-descending-from { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-slideBottom; + animation: 0.218s both; + animation-name: g-panels-slideBottom; +} +.g-panels-vslide > .panels-descending-to { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-slideFromTop; + animation: 0.218s both; + animation-name: g-panels-slideFromTop; +} + +/* hslideover */ +.g-panels-hslideover > .panels-ascending-from, +.g-panels-hslideover > .panels-descending-from { + -webkit-animation-name: none; + animation-name: none; +} +.g-panels-hslideover > .panels-ascending-to { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-slideFromRight; + animation: 0.218s both; + animation-name: g-panels-slideFromRight; +} +.g-panels-hslideover > .panels-descending-to { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-slideFromLeft; + animation: 0.218s both; + animation-name: g-panels-slideFromLeft; +} + +/* vslideover */ +.g-panels-vslideover > .panels-ascending-from, +.g-panels-vslideover > .panels-descending-from { + -webkit-animation-name: none; + animation-name: none; +} +.g-panels-vslideover > .panels-ascending-to { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-slideFromBottom; + animation: 0.218s both; + animation-name: g-panels-slideFromBottom; +} +.g-panels-vslideover > .panels-descending-to { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-slideFromTop; + animation: 0.218s both; + animation-name: g-panels-slideFromTop; +} + +/* explode */ +.g-panels-explode > .panels-ascending-from, +.g-panels-explode > .panels-descending-from { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-explodeOut; + animation: 0.218s both; + animation-name: g-panels-explodeOut; +} +.g-panels-explode > .panels-ascending-to, +.g-panels-explode > .panels-descending-to { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-explodeIn; + animation: 0.218s both; + animation-name: g-panels-explodeIn; +} + +/* scale-slide */ +.g-panels-scale-slide > .panels-ascending-from { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-fadeScaleOut; + animation: 0.218s both; + animation-name: g-panels-fadeScaleOut; +} +.g-panels-scale-slide > .panels-ascending-to { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-slideFromRight; + animation: 0.218s both; + animation-name: g-panels-slideFromRight; +} +.g-panels-scale-slide > .panels-descending-from { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-slideRight; + animation: 0.218s both; + animation-name: g-panels-slideRight; +} +.g-panels-scale-slide > .panels-descending-to { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-fadeScaleIn; + animation: 0.218s both; + animation-name: g-panels-fadeScaleIn; +} + +/* fly-up-right */ +.g-panels-fly-up-right > .panels-ascending-from { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-flyOutRight; + animation: 0.218s both; + animation-name: g-panels-flyOutRight; +} +.g-panels-fly-up-right > .panels-ascending-to { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-fadeInPartial; + animation: 0.218s both; + animation-name: g-panels-fadeInPartial; +} +.g-panels-fly-up-right > .panels-descending-from { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-fadeOutPartial; + animation: 0.218s both; + animation-name: g-panels-fadeOutPartial; +} +.g-panels-fly-up-right > .panels-descending-to { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-flyInLeft; + animation: 0.218s both; + animation-name: g-panels-flyInLeft; +} \ No newline at end of file diff --git a/examples/polymer/toolkit-ui/elements/css/g-panels-global.css b/examples/polymer/toolkit-ui/elements/css/g-panels-global.css new file mode 100644 index 0000000..b0ddd54 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/css/g-panels-global.css @@ -0,0 +1,412 @@ +/* + * Copyright 2013 The Polymer Authors. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + */ +@-webkit-keyframes g-panels-fadeOut { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} + +@keyframes g-panels-fadeOut { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} + +@-webkit-keyframes g-panels-fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} + +@keyframes g-panels-fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} + +@-webkit-keyframes g-panels-fadeInPartial { + 0% { + opacity: 0.25; + } + 100% { + opacity: 1; + } +} + +@keyframes g-panels-fadeInPartial { + 0% { + opacity: 0.25; + } + 100% { + opacity: 1; + } +} + +@-webkit-keyframes g-panels-fadeOutPartial { + 0% { + opacity: 1; + } + 100% { + opacity: 0.25; + } +} + +@keyframes g-panels-fadeOutPartial { + 0% { + opacity: 1; + } + 100% { + opacity: 0.25; + } +} + +@-webkit-keyframes g-panels-fadeScaleIn { + 0% { + z-index: 0; + opacity: 0.5; + -webkit-transform: scale(0.9) translateZ(0); + } + 20% { + z-index: 0; + -webkit-transform: scale(0.9) translateZ(0); + } + 100% { + z-index: 0; + opacity: 1; + -webkit-transform: scale(1) translateZ(0); + } +} + +@keyframes g-panels-fadeScaleIn { + 0% { + z-index: 0; + opacity: 0.5; + transform: scale(0.9) translateZ(0); + } + 20% { + z-index: 0; + transform: scale(0.9) translateZ(0); + } + 100% { + z-index: 0; + opacity: 1; + transform: scale(1) translateZ(0); + } +} + +@-webkit-keyframes g-panels-fadeScaleOut { + 0% { + z-index: 0; + opacity: 1; + -webkit-transform: scale(1) translateZ(0); + } + 20% { + z-index: 0; + -webkit-transform: scale(0.9) translateZ(0); + } + 100% { + z-index: 0; + opacity: 0.5; + -webkit-transform: scale(0.9) translateZ(0); + } +} + +@keyframes g-panels-fadeScaleOut { + 0% { + z-index: 0; + opacity: 1; + transform: scale(1) translateZ(0); + } + 20% { + z-index: 0; + transform: scale(0.9) translateZ(0); + } + 100% { + z-index: 0; + opacity: 0.5; + transform: scale(0.9) translateZ(0); + } +} + +@-webkit-keyframes g-panels-slideRight { + 0% { + z-index: 1; + -webkit-transform: translate3d(0, 0, 0); + } + 100% { + z-index: 1; + -webkit-transform: translate3d(100%, 0, 0); + } +} + +@keyframes g-panels-slideRight { + 0% { + z-index: 1; + transform: translate3d(0, 0, 0); + } + 100% { + z-index: 1; + transform: translate3d(100%, 0, 0); + } +} + +@-webkit-keyframes g-panels-slideFromRight { + 0% { + z-index: 1; + -webkit-transform: translate3d(100%, 0, 0); + } + 100% { + z-index: 1; + -webkit-transform: translate3d(0, 0, 0); + } +} + +@keyframes g-panels-slideFromRight { + 0% { + z-index: 1; + transform: translate3d(100%, 0, 0); + } + 100% { + z-index: 1; + transform: translate3d(0, 0, 0); + } +} + +@-webkit-keyframes g-panels-slideLeft { + 0% { + z-index: 1; + -webkit-transform: translate3d(0, 0, 0); + } + 100% { + z-index: 1; + -webkit-transform: translate3d(-100%, 0, 0); + } +} + +@keyframes g-panels-slideLeft { + 0% { + z-index: 1; + transform: translate3d(0, 0, 0); + } + 100% { + z-index: 1; + transform: translate3d(-100%, 0, 0); + } +} + +@-webkit-keyframes g-panels-slideFromLeft { + 0% { + z-index: 1; + -webkit-transform: translate3d(-100%, 0, 0); + } + 100% { + z-index: 1; + -webkit-transform: translate3d(0, 0, 0); + } +} + +@keyframes g-panels-slideFromLeft { + 0% { + z-index: 1; + transform: translate3d(-100%, 0, 0); + } + 100% { + z-index: 1; + transform: translate3d(0, 0, 0); + } +} + +@-webkit-keyframes g-panels-slideBottom { + 0% { + z-index: 1; + -webkit-transform: translate3d(0, 0, 0); + } + 100% { + z-index: 1; + -webkit-transform: translate3d(0, 100%, 0); + } +} + +@keyframes g-panels-slideBottom { + 0% { + z-index: 1; + transform: translate3d(0, 0, 0); + } + 100% { + z-index: 1; + transform: translate3d(0, 100%, 0); + } +} + +@-webkit-keyframes g-panels-slideFromBottom { + 0% { + z-index: 1; + -webkit-transform: translate3d(0, 100%, 0); + } + 100% { + z-index: 1; + -webkit-transform: translate3d(0, 0, 0); + } +} + +@keyframes g-panels-slideFromBottom { + 0% { + z-index: 1; + transform: translate3d(0, 100%, 0); + } + 100% { + z-index: 1; + transform: translate3d(0, 0, 0); + } +} + +@-webkit-keyframes g-panels-slideTop { + 0% { + z-index: 1; + -webkit-transform: translate3d(0, 0, 0); + } + 100% { + z-index: 1; + -webkit-transform: translate3d(0, -100%, 0); + } +} + +@keyframes g-panels-slideTop { + 0% { + z-index: 1; + transform: translate3d(0, 0, 0); + } + 100% { + z-index: 1; + transform: translate3d(0, -100%, 0); + } +} + +@-webkit-keyframes g-panels-slideFromTop { + 0% { + z-index: 1; + -webkit-transform: translate3d(0, -100%, 0); + } + 100% { + z-index: 1; + -webkit-transform: translate3d(0, 0, 0); + } +} + +@keyframes g-panels-slideFromTop { + 0% { + z-index: 1; + transform: translate3d(0, -100%, 0); + } + 100% { + z-index: 1; + transform: translate3d(0, 0, 0); + } +} + +@-webkit-keyframes g-panels-explodeOut { + 0% { + -webkit-transform: scale(1) translateZ(0); + opacity: 1; + } + 100% { + -webkit-transform: scale(0) translateZ(0); + opacity: 0; + } +} + +@keyframes g-panels-explodeOut { + 0% { + transform: scale(1) translateZ(0); + opacity: 1; + } + 100% { + transform: scale(0) translateZ(0); + opacity: 0; + } +} + +@-webkit-keyframes g-panels-explodeIn { + 0% { + z-index: 1; + -webkit-transform: scale(0) translateZ(0); + opacity: 0; + } + 100% { + z-index: 1; + -webkit-transform: scale(1) translateZ(0); + opacity: 1; + } +} + +@keyframes g-panels-explodeIn { + 0% { + z-index: 1; + transform: scale(0) translateZ(0); + opacity: 0; + } + 100% { + z-index: 1; + transform: scale(1) translateZ(0); + opacity: 1; + } +} + +@-webkit-keyframes g-panels-flyOutRight { + 0% { + z-index: 1; + -webkit-transform: translate3d(0,0,0) rotate(0); + } + 100% { + z-index: 1; + -webkit-transform: translate3d(10%, -110%, 0) rotate(5deg); + } +} + +@keyframes g-panels-flyOutRight { + 0% { + z-index: 1; + transform: translate3d(0,0,0) rotate(0); + } + 100% { + z-index: 1; + transform: translate3d(10%, -110%, 0) rotate(5deg); + } +} + +@-webkit-keyframes g-panels-flyInLeft { + 0% { + z-index: 1; + -webkit-transform: translate3d(10%, -110%, 0) rotate(5deg); + } + 100% { + z-index: 1; + -webkit-transform: translate3d(0,0,0) rotate(0deg); + } +} + +@keyframes g-panels-flyInLeft { + 0% { + z-index: 1; + transform: translate3d(10%, -110%, 0) rotate(5deg); + } + 100% { + z-index: 1; + transform: translate3d(0,0,0) rotate(0deg); + } +} \ No newline at end of file diff --git a/examples/polymer/toolkit-ui/elements/css/g-panels.css b/examples/polymer/toolkit-ui/elements/css/g-panels.css new file mode 100644 index 0000000..a345322 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/css/g-panels.css @@ -0,0 +1,43 @@ +/* + * Copyright 2013 The Polymer Authors. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + */ +@host { + * { + display: block; + position: relative; + outline: none; + overflow: hidden; + } +} + +/* TODO(sorvell): need to style only distributed children. + (*) styles children and all descendants. + Filed related issue + https://www.w3.org/Bugs/Public/show_bug.cgi?id=21389 +*/ + +/* +content::-webkit-distributed(*) { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + -webkit-transform: translateZ(0); +} + +content::-webkit-distributed(g-panels), g-panels > g-panels { + position: absolute; +} + +content::-webkit-distributed(.transition), g-panels > .transition { + -webkit-transition: all 0.218s ease-in-out; +} + +content::-webkit-distributed(.animate), g-panels > .animate { + -webkit-animation-duration: 0.218s; + -webkit-animation-fill-mode: both; +} +*/ \ No newline at end of file diff --git a/examples/polymer/toolkit-ui/elements/css/g-tabpanels-controller.css b/examples/polymer/toolkit-ui/elements/css/g-tabpanels-controller.css new file mode 100644 index 0000000..8836c29 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/css/g-tabpanels-controller.css @@ -0,0 +1,53 @@ +/* + * Copyright 2013 The Polymer Authors. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + */ + + +/*@polyfill #container > * */ +g-tabpanels > * { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + -webkit-transform: translateZ(0); + transform: translateZ(0); +} + +/*@polyfill #container > g-panels */ +g-tabpanels > g-panels { + position: absolute; +} + +/*@polyfill #container > .transition */ +g-tabpanels > .transition { + -webkit-transition: all 0.218s ease-in-out; + transition: all 0.218s ease-in-out; +} + +/*@polyfill #container > .animate */ +g-tabpanels > .animate { + -webkit-animation-duration: 0.218s; + -webkit-animation-fill-mode: both; + animation-duration: 0.218s; + animation-fill-mode: both; +} + +/* fade */ +/*@polyfill #container > .panels-ascending-from, #container > .panels-descending-from */ +g-tabpanels > .panels-ascending-from, g-tabpanels > .panels-descending-from { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-fadeOut; + animation: 0.218s both; + animation-name: g-panels-fadeOut; +} + +/*@polyfill #container > .panels-ascending-to, #container > .panels-descending-to */ +g-tabpanels > .panels-ascending-to, g-tabpanels > .panels-descending-to { + -webkit-animation: 0.218s both; + -webkit-animation-name: g-panels-fadeIn; + animation: 0.218s both; + animation-name: g-panels-fadeIn; +} \ No newline at end of file diff --git a/examples/polymer/toolkit-ui/elements/css/g-togglebutton.css b/examples/polymer/toolkit-ui/elements/css/g-togglebutton.css new file mode 100644 index 0000000..d25e44d --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/css/g-togglebutton.css @@ -0,0 +1,96 @@ +/* + * Copyright 2013 The Polymer Authors. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + */ +@host { + * { + display: inline-block; + position: relative; + width: 70px; + height: 30px; + overflow: hidden; + border: 1px solid #b6b6b6; + border-radius: 3px; + box-shadow: inset 0px 0px 1px 0 rgba(0,0,0,0.1); + -webkit-user-select: none; + -moz-user-select: none; + -webkit-transition: border 0.130s ease-out; + transition: border 0.130s ease-out; + cursor: pointer; + } + + *.on { + border: 1px solid #4584f2; + } +} + +.toggle { + position: absolute; + left: -42px; + width: 112px; + height: 100%; + overflow: hidden; + white-space: nowrap; + -webkit-transition: left 0.130s ease-out; + transition: left 0.130s ease-out; +} + +.toggle.dragging { + -webkit-transition: all 0; + transition: all 0; +} + +.toggle.on { + left: 0; +} + +.toggle > * { + float: left; +} + +.on-label, .off-label { + width: 50%; + height: 100%; + line-height: 30px; + box-sizing: border-box; + -moz-box-sizing: border-box; + text-align: center; + font-family: 'Helvetica Neue', Helvetica, Arial, 'open sans', sans-serif; + font-size: 10px; +} + +.on-label { + padding-right: 14px; + background-color: #488afd; + color: white; +} + +.off-label { + padding-left: 14px; + background-color: #bfbfbf; + color: #716f6f; +} + +.thumb { + position: absolute; + left: 42px; + width: 28px; + height: 100%; + border-radius: 2px; + background-color: white; +} + +.thumb::after { + content: ""; + position: absolute; + display: block; + top: 10px; + left: 11px; + height: 10px; + width: 8px; + background-image: -webkit-linear-gradient(left, #d4d3d3 40%, transparent 40%); + background-image: -moz-linear-gradient(left, #d4d3d3 40%, transparent 40%); + background-image: -ms-linear-gradient(left, #d4d3d3 40%, transparent 40%); + background-size: 4px; +} diff --git a/examples/polymer/toolkit-ui/elements/g-ajax.html b/examples/polymer/toolkit-ui/elements/g-ajax.html new file mode 100644 index 0000000..ca2c94f --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-ajax.html @@ -0,0 +1,183 @@ + + + + + + + diff --git a/examples/polymer/toolkit-ui/elements/g-app.html b/examples/polymer/toolkit-ui/elements/g-app.html new file mode 100644 index 0000000..ab7402c --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-app.html @@ -0,0 +1,137 @@ + + + + + + + + diff --git a/examples/polymer/toolkit-ui/elements/g-checkbox.html b/examples/polymer/toolkit-ui/elements/g-checkbox.html new file mode 100644 index 0000000..1f82934 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-checkbox.html @@ -0,0 +1,33 @@ + + + + diff --git a/examples/polymer/toolkit-ui/elements/g-field.html b/examples/polymer/toolkit-ui/elements/g-field.html new file mode 100644 index 0000000..fd57770 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-field.html @@ -0,0 +1,69 @@ + + + + diff --git a/examples/polymer/toolkit-ui/elements/g-form.html b/examples/polymer/toolkit-ui/elements/g-form.html new file mode 100644 index 0000000..5999887 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-form.html @@ -0,0 +1,17 @@ + + + + diff --git a/examples/polymer/toolkit-ui/elements/g-icon-button.html b/examples/polymer/toolkit-ui/elements/g-icon-button.html new file mode 100644 index 0000000..d08e970 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-icon-button.html @@ -0,0 +1,86 @@ + + + + + + + diff --git a/examples/polymer/toolkit-ui/elements/g-icon.html b/examples/polymer/toolkit-ui/elements/g-icon.html new file mode 100644 index 0000000..e89d611 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-icon.html @@ -0,0 +1,68 @@ + + + + + + diff --git a/examples/polymer/toolkit-ui/elements/g-jsonp.html b/examples/polymer/toolkit-ui/elements/g-jsonp.html new file mode 100644 index 0000000..3dd3344 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-jsonp.html @@ -0,0 +1,93 @@ + + + + + diff --git a/examples/polymer/toolkit-ui/elements/g-menu-button.html b/examples/polymer/toolkit-ui/elements/g-menu-button.html new file mode 100644 index 0000000..8674db6 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-menu-button.html @@ -0,0 +1,45 @@ + + + + + + + + + diff --git a/examples/polymer/toolkit-ui/elements/g-menu-item.html b/examples/polymer/toolkit-ui/elements/g-menu-item.html new file mode 100644 index 0000000..2f3496b --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-menu-item.html @@ -0,0 +1,64 @@ + + + + + + + diff --git a/examples/polymer/toolkit-ui/elements/g-menu.html b/examples/polymer/toolkit-ui/elements/g-menu.html new file mode 100644 index 0000000..21108b9 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-menu.html @@ -0,0 +1,65 @@ + + + + + + + diff --git a/examples/polymer/toolkit-ui/elements/g-overlay-webanimations.html b/examples/polymer/toolkit-ui/elements/g-overlay-webanimations.html new file mode 100644 index 0000000..b778ae2 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-overlay-webanimations.html @@ -0,0 +1,111 @@ + + + + + + + + + + + diff --git a/examples/polymer/toolkit-ui/elements/g-overlay.html b/examples/polymer/toolkit-ui/elements/g-overlay.html new file mode 100644 index 0000000..5d80bdc --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-overlay.html @@ -0,0 +1,288 @@ + + + + + + + diff --git a/examples/polymer/toolkit-ui/elements/g-panels.html b/examples/polymer/toolkit-ui/elements/g-panels.html new file mode 100644 index 0000000..ccf450f --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-panels.html @@ -0,0 +1,475 @@ + + + + + + + + + \ No newline at end of file diff --git a/examples/polymer/toolkit-ui/elements/g-progress.html b/examples/polymer/toolkit-ui/elements/g-progress.html new file mode 100644 index 0000000..8948215 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-progress.html @@ -0,0 +1,39 @@ + + + + + + diff --git a/examples/polymer/toolkit-ui/elements/g-radio.html b/examples/polymer/toolkit-ui/elements/g-radio.html new file mode 100644 index 0000000..7f420f4 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-radio.html @@ -0,0 +1,27 @@ + + + + diff --git a/examples/polymer/toolkit-ui/elements/g-ratings.html b/examples/polymer/toolkit-ui/elements/g-ratings.html new file mode 100644 index 0000000..31cf8c1 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-ratings.html @@ -0,0 +1,94 @@ + + + + + + diff --git a/examples/polymer/toolkit-ui/elements/g-ribbon.html b/examples/polymer/toolkit-ui/elements/g-ribbon.html new file mode 100644 index 0000000..aaaaa4c --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-ribbon.html @@ -0,0 +1,117 @@ + + + + + + + diff --git a/examples/polymer/toolkit-ui/elements/g-select.html b/examples/polymer/toolkit-ui/elements/g-select.html new file mode 100644 index 0000000..076fa0f --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-select.html @@ -0,0 +1,56 @@ + + + + + + diff --git a/examples/polymer/toolkit-ui/elements/g-selection.html b/examples/polymer/toolkit-ui/elements/g-selection.html new file mode 100644 index 0000000..36a8737 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-selection.html @@ -0,0 +1,64 @@ + + + + + + diff --git a/examples/polymer/toolkit-ui/elements/g-selector.html b/examples/polymer/toolkit-ui/elements/g-selector.html new file mode 100644 index 0000000..1f18f72 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-selector.html @@ -0,0 +1,180 @@ + + + + + + + diff --git a/examples/polymer/toolkit-ui/elements/g-sidebar.html b/examples/polymer/toolkit-ui/elements/g-sidebar.html new file mode 100644 index 0000000..12d401f --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-sidebar.html @@ -0,0 +1,88 @@ + + + + + + diff --git a/examples/polymer/toolkit-ui/elements/g-tabpanels.html b/examples/polymer/toolkit-ui/elements/g-tabpanels.html new file mode 100644 index 0000000..01bd064 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-tabpanels.html @@ -0,0 +1,65 @@ + + + + + + + + diff --git a/examples/polymer/toolkit-ui/elements/g-tabs.html b/examples/polymer/toolkit-ui/elements/g-tabs.html new file mode 100644 index 0000000..a9c1d26 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-tabs.html @@ -0,0 +1,65 @@ + + + + + + + diff --git a/examples/polymer/toolkit-ui/elements/g-togglebutton.html b/examples/polymer/toolkit-ui/elements/g-togglebutton.html new file mode 100644 index 0000000..20b5060 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-togglebutton.html @@ -0,0 +1,73 @@ + + + + + + diff --git a/examples/polymer/toolkit-ui/elements/g-toolbar.html b/examples/polymer/toolkit-ui/elements/g-toolbar.html new file mode 100644 index 0000000..5824ac9 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-toolbar.html @@ -0,0 +1,90 @@ + + + + + + diff --git a/examples/polymer/toolkit-ui/elements/g-xhr.html b/examples/polymer/toolkit-ui/elements/g-xhr.html new file mode 100644 index 0000000..4fd05d0 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/g-xhr.html @@ -0,0 +1,92 @@ + + + + + + \ No newline at end of file diff --git a/examples/polymer/toolkit-ui/elements/images/btn_light.png b/examples/polymer/toolkit-ui/elements/images/btn_light.png new file mode 100644 index 0000000000000000000000000000000000000000..122af8de1d91c15a40dcf5923b3e4f8a24e17077 GIT binary patch literal 2658 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 literal 0 HcmV?d00001 diff --git a/examples/polymer/toolkit-ui/elements/images/light_check.png b/examples/polymer/toolkit-ui/elements/images/light_check.png new file mode 100644 index 0000000000000000000000000000000000000000..4f141a1c3ee56a96726c8d8dfb0bc120707fd0ae GIT binary patch literal 3724 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 literal 0 HcmV?d00001 diff --git a/examples/polymer/toolkit-ui/elements/images/star_full.png b/examples/polymer/toolkit-ui/elements/images/star_full.png new file mode 100644 index 0000000000000000000000000000000000000000..911b822a85ecee93b1ab97aea2b8cd7362130d1e GIT binary patch literal 3463 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 pP6KEF4WI!ufCkV28sHA>_W + + + + + + diff --git a/examples/polymer/toolkit-ui/elements/panel-transitions/g-keyframe-panel-transition.html b/examples/polymer/toolkit-ui/elements/panel-transitions/g-keyframe-panel-transition.html new file mode 100644 index 0000000..78660e5 --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/panel-transitions/g-keyframe-panel-transition.html @@ -0,0 +1,47 @@ + + + + + + diff --git a/examples/polymer/toolkit-ui/elements/panel-transitions/g-panel-transition.html b/examples/polymer/toolkit-ui/elements/panel-transitions/g-panel-transition.html new file mode 100644 index 0000000..895aa2b --- /dev/null +++ b/examples/polymer/toolkit-ui/elements/panel-transitions/g-panel-transition.html @@ -0,0 +1,97 @@ + + + + + + + + + \ No newline at end of file diff --git a/examples/promises.html b/examples/promises.html index eb6e7b8..d3f2af4 100644 --- a/examples/promises.html +++ b/examples/promises.html @@ -11,7 +11,7 @@ - + + diff --git a/src/epubcfi.js b/src/epubcfi.js index c8ffff0..a10cada 100644 --- a/src/epubcfi.js +++ b/src/epubcfi.js @@ -4,7 +4,8 @@ EPUBJS.EpubCFI = function(cfiStr){ EPUBJS.EpubCFI.prototype.generateChapter = function(spineNodeIndex, pos, id) { - var spineNodeIndex = spineNodeIndex + 1, + var pos = parseInt(pos), + spineNodeIndex = spineNodeIndex + 1, cfi = '/'+spineNodeIndex+'/'; cfi += (pos + 1) * 2; diff --git a/src/renderer.js b/src/renderer.js index 9988bb0..2ea098b 100644 --- a/src/renderer.js +++ b/src/renderer.js @@ -216,8 +216,8 @@ EPUBJS.Renderer.prototype.setIframeSrc = function(url){ renderer.currentLocationCfi = renderer.getPageCfi(); - renderer.trigger("renderer:chapterDisplayed"); - renderer.book.trigger("renderer:chapterDisplayed"); + renderer.trigger("renderer:chapterDisplayed", renderer.currentChapter); + renderer.book.trigger("renderer:chapterDisplayed", renderer.currentChapter); renderer.visible(true); @@ -272,7 +272,7 @@ EPUBJS.Renderer.prototype.formatSpread = function(){ this.spreadWidth = (this.colWidth + this.gap) * divisor; - if(this.bodyEl) this.bodyEl.style.margin = 0; + // if(this.bodyEl) this.bodyEl.style.margin = 0; // this.bodyEl.style.fontSize = localStorage.getItem("fontSize") || "medium"; //-- Clear Margins