diff options
43 files changed, 104045 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..abe8adf --- /dev/null +++ b/.gitignore | |||
@@ -0,0 +1,3 @@ | |||
1 | # IDEA project files | ||
2 | .idea/ | ||
3 | *.iml | ||
@@ -1,4 +1,32 @@ | |||
1 | WhatsThePoint | 1 | WhatsThePoint |
2 | ============= | 2 | ============= |
3 | 3 | ||
4 | What's The Point? | 4 | "What's The Point?" is a remote controllable, themable web slide toolkit. |
5 | |||
6 | |||
7 | Slideshow formats | ||
8 | ----------------- | ||
9 | |||
10 | - Markdown | ||
11 | - HTML | ||
12 | - PDF (Beamer) | ||
13 | |||
14 | |||
15 | Features | ||
16 | -------- | ||
17 | |||
18 | - Notes / Presenter mode | ||
19 | - Remote controllable | ||
20 | - Working on mobile platforms (smartphone, tablet, e-reader) | ||
21 | - Uses only static files (HTML, CSS, JS), does not require a special web server | ||
22 | - Fully themable | ||
23 | |||
24 | |||
25 | TODO | ||
26 | ---- | ||
27 | |||
28 | - [ ] Debug and clean up everything | ||
29 | - [ ] Complete existing themes (title slides, ...) | ||
30 | - [ ] Add syntax highlighting plugin | ||
31 | - [ ] Add more themes | ||
32 | - [ ] Add optional server side rendering | ||
diff --git a/index.html b/index.html new file mode 100644 index 0000000..80e23c7 --- /dev/null +++ b/index.html | |||
@@ -0,0 +1,25 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head> | ||
4 | <meta charset="UTF-8"> | ||
5 | <meta | ||
6 | content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" | ||
7 | name="viewport"> | ||
8 | <title>What's The Point?</title> | ||
9 | <link href="point/base.css" rel="stylesheet"> | ||
10 | <script src="point/libs/requirejs/require.js" data-main="point/point"></script> | ||
11 | </head> | ||
12 | <body> | ||
13 | <div id="loadingclock"></div> | ||
14 | |||
15 | <noscript> | ||
16 | Sorry, | ||
17 | <br> | ||
18 | JavaScript is required | ||
19 | <br> | ||
20 | to view this slideshow. | ||
21 | </noscript> | ||
22 | |||
23 | <p-screen></p-screen> | ||
24 | </body> | ||
25 | </html> | ||
diff --git a/point.yml b/point.yml new file mode 100644 index 0000000..716528c --- /dev/null +++ b/point.yml | |||
@@ -0,0 +1,52 @@ | |||
1 | # | ||
2 | # What's The Point presentation configuration file | ||
3 | # | ||
4 | |||
5 | data: | ||
6 | file: "../slides.yml" | ||
7 | type: | ||
8 | #html | ||
9 | markdown | ||
10 | |||
11 | |||
12 | dimension: | ||
13 | width: 1100 | ||
14 | height: 700 | ||
15 | |||
16 | theme: | ||
17 | #default | ||
18 | clean | ||
19 | #aperture | ||
20 | |||
21 | control: | ||
22 | #local | ||
23 | remote: | ||
24 | webcastorUrl: "https://webcastor.herokuapp.com:443" | ||
25 | channelId: "fc503470-051e-11e4-8b02-cbfbda9da717" | ||
26 | |||
27 | binding: | ||
28 | - keyboard | ||
29 | - touch | ||
30 | - speech | ||
31 | |||
32 | plugins: | ||
33 | - autoscale | ||
34 | #- prettify | ||
35 | #- chartjs | ||
36 | #- doge | ||
37 | |||
38 | |||
39 | # | ||
40 | # Plug-ins and others parameters | ||
41 | # | ||
42 | |||
43 | speechSettings: | ||
44 | lang: "fr-FR" | ||
45 | keywords: | ||
46 | NEXT_SLIDE: | ||
47 | - "suivant" | ||
48 | PREVIOUS_SLIDE: | ||
49 | - "précédent" | ||
50 | |||
51 | prettifySettings: | ||
52 | lang: javascript | ||
diff --git a/point/base.css b/point/base.css new file mode 100644 index 0000000..fcdc2a6 --- /dev/null +++ b/point/base.css | |||
@@ -0,0 +1,114 @@ | |||
1 | /* | ||
2 | * This file is part of "What's The Point" <https://github.com/Pacien/WhatsThePoint> | ||
3 | * Copyright (C) 2014 Pacien TRAN-GIRARD | ||
4 | * | ||
5 | * "What's The Point" is free software: you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU Affero General Public License as | ||
7 | * published by the Free Software Foundation, either version 3 of the | ||
8 | * License, or (at your option) any later version. | ||
9 | * | ||
10 | * "What's The Point" is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU Affero General Public License for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU Affero General Public License | ||
16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | */ | ||
18 | @import url("libs/normalizecss/normalize.css"); | ||
19 | |||
20 | html { | ||
21 | width: 100%; | ||
22 | height: 100%; | ||
23 | } | ||
24 | |||
25 | body { | ||
26 | position: absolute; | ||
27 | width: 100%; | ||
28 | height: 100%; | ||
29 | background: black; | ||
30 | } | ||
31 | |||
32 | noscript { | ||
33 | position: absolute; | ||
34 | width: 20em; | ||
35 | height: 5em; | ||
36 | margin: auto; | ||
37 | top: 0; | ||
38 | bottom: 0; | ||
39 | left: 0; | ||
40 | right: 0; | ||
41 | text-align: center; | ||
42 | color: white; | ||
43 | background: black; | ||
44 | } | ||
45 | |||
46 | /* loading animation */ | ||
47 | /* http://codepen.io/lixquid/pen/ybjmr */ | ||
48 | |||
49 | #loadingclock { | ||
50 | position: absolute; | ||
51 | margin: auto; | ||
52 | top: 0; | ||
53 | bottom: 0; | ||
54 | left: 0; | ||
55 | right: 0; | ||
56 | width: 48px; | ||
57 | height: 48px; | ||
58 | border: 2px solid #ccc; | ||
59 | border-radius: 100%; | ||
60 | } | ||
61 | |||
62 | #loadingclock:before { | ||
63 | display: block; | ||
64 | position: absolute; | ||
65 | left: 23px; | ||
66 | top: 2px; | ||
67 | width: 2px; | ||
68 | height: 22px; | ||
69 | background-color: #ccc; | ||
70 | animation: spin 3s linear infinite; | ||
71 | -webkit-animation: spin 3s linear infinite; | ||
72 | content: " "; | ||
73 | transform-origin: 1px 22px; | ||
74 | -webkit-transform-origin: 1px 22px; | ||
75 | } | ||
76 | |||
77 | #loadingclock:after { | ||
78 | display: block; | ||
79 | position: absolute; | ||
80 | left: 23px; | ||
81 | top: 3px; | ||
82 | width: 2px; | ||
83 | height: 21px; | ||
84 | background-color: #ccc; | ||
85 | animation: spin 18s linear infinite; | ||
86 | -webkit-animation: spin 18s linear infinite; | ||
87 | content: ""; | ||
88 | transform-origin: 1px 21px; | ||
89 | -webkit-transform-origin: 1px 21px; | ||
90 | } | ||
91 | |||
92 | @-moz-keyframes spin { | ||
93 | to { | ||
94 | transform: rotate(360deg); | ||
95 | } | ||
96 | } | ||
97 | |||
98 | @-webkit-keyframes spin { | ||
99 | to { | ||
100 | -webkit-transform: rotate(360deg); | ||
101 | } | ||
102 | } | ||
103 | |||
104 | @-o-keyframes spin { | ||
105 | to { | ||
106 | transform: rotate(360deg); | ||
107 | } | ||
108 | } | ||
109 | |||
110 | @keyframes spin { | ||
111 | to { | ||
112 | transform: rotate(360deg); | ||
113 | } | ||
114 | } | ||
diff --git a/point/binding/keyboard.js b/point/binding/keyboard.js new file mode 100644 index 0000000..14eabc2 --- /dev/null +++ b/point/binding/keyboard.js | |||
@@ -0,0 +1,70 @@ | |||
1 | /* | ||
2 | * This file is part of "What's The Point" <https://github.com/Pacien/WhatsThePoint> | ||
3 | * Copyright (C) 2014 Pacien TRAN-GIRARD | ||
4 | * | ||
5 | * "What's The Point" is free software: you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU Affero General Public License as | ||
7 | * published by the Free Software Foundation, either version 3 of the | ||
8 | * License, or (at your option) any later version. | ||
9 | * | ||
10 | * "What's The Point" is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU Affero General Public License for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU Affero General Public License | ||
16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | */ | ||
18 | |||
19 | define(["control/control"], function (control) { | ||
20 | |||
21 | var keyboard = { | ||
22 | |||
23 | KEYCODE: { | ||
24 | BACKSPACE: 8, | ||
25 | ENTER: 13, | ||
26 | SPACE: 32, | ||
27 | END: 35, | ||
28 | HOME: 36, | ||
29 | LEFT: 37, | ||
30 | UP: 38, | ||
31 | RIGHT: 39, | ||
32 | DOWN: 40, | ||
33 | }, | ||
34 | |||
35 | init: function (settings) { | ||
36 | this.bindEvent(); | ||
37 | }, | ||
38 | |||
39 | translate: function (keyCode) { | ||
40 | var gotoEvent; | ||
41 | switch (keyCode) { | ||
42 | case this.KEYCODE.LEFT: | ||
43 | case this.KEYCODE.BACKSPACE: | ||
44 | return control.dispatchEvent(control.EVENT.GOTO, control.GOTO.PREVIOUS_SLIDE); | ||
45 | |||
46 | case this.KEYCODE.RIGHT: | ||
47 | case this.KEYCODE.ENTER: | ||
48 | case this.KEYCODE.SPACE: | ||
49 | return control.dispatchEvent(control.EVENT.GOTO, control.GOTO.NEXT_SLIDE); | ||
50 | |||
51 | case this.KEYCODE.HOME: | ||
52 | return control.dispatchEvent(control.EVENT.GOTO, control.GOTO.FIRST_SLIDE); | ||
53 | |||
54 | case this.KEYCODE.END: | ||
55 | return control.dispatchEvent(control.EVENT.GOTO, control.GOTO.LAST_SLIDE); | ||
56 | } | ||
57 | |||
58 | }, | ||
59 | |||
60 | bindEvent: function () { | ||
61 | document.addEventListener("keydown", function (keydownEvent) { | ||
62 | // TODO: ignore if focus in form | ||
63 | keyboard.translate(keydownEvent.keyCode); | ||
64 | }); | ||
65 | }, | ||
66 | }; | ||
67 | |||
68 | return keyboard; | ||
69 | |||
70 | }); | ||
diff --git a/point/binding/network.js b/point/binding/network.js new file mode 100644 index 0000000..11cf58a --- /dev/null +++ b/point/binding/network.js | |||
@@ -0,0 +1,40 @@ | |||
1 | /* | ||
2 | * This file is part of "What's The Point" <https://github.com/Pacien/WhatsThePoint> | ||
3 | * Copyright (C) 2014 Pacien TRAN-GIRARD | ||
4 | * | ||
5 | * "What's The Point" is free software: you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU Affero General Public License as | ||
7 | * published by the Free Software Foundation, either version 3 of the | ||
8 | * License, or (at your option) any later version. | ||
9 | * | ||
10 | * "What's The Point" is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU Affero General Public License for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU Affero General Public License | ||
16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | */ | ||
18 | |||
19 | define(["control/control", "libs/webcastor/webcastor"], function (control, webcastor) { | ||
20 | |||
21 | var network = { | ||
22 | |||
23 | init: function (settings) { | ||
24 | webcastor.init(settings, function (socket) { | ||
25 | network.bindEvents(); | ||
26 | }); | ||
27 | }, | ||
28 | |||
29 | /* network -> local */ | ||
30 | bindEvents: function () { | ||
31 | webcastor.on("message", function (message) { | ||
32 | var event = JSON.parse(message); | ||
33 | control.dispatchEvent(event.event, event.eventDetail, false); | ||
34 | }); | ||
35 | }, | ||
36 | }; | ||
37 | |||
38 | return network; | ||
39 | |||
40 | }); | ||
diff --git a/point/binding/speech.js b/point/binding/speech.js new file mode 100644 index 0000000..41f5914 --- /dev/null +++ b/point/binding/speech.js | |||
@@ -0,0 +1,89 @@ | |||
1 | /* | ||
2 | * This file is part of "What's The Point" <https://github.com/Pacien/WhatsThePoint> | ||
3 | * Copyright (C) 2014 Pacien TRAN-GIRARD | ||
4 | * | ||
5 | * "What's The Point" is free software: you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU Affero General Public License as | ||
7 | * published by the Free Software Foundation, either version 3 of the | ||
8 | * License, or (at your option) any later version. | ||
9 | * | ||
10 | * "What's The Point" is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU Affero General Public License for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU Affero General Public License | ||
16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | */ | ||
18 | |||
19 | define(["control/control"], function (control) { | ||
20 | |||
21 | var speech = { | ||
22 | |||
23 | init: function (settings) { | ||
24 | if ("speechRecognition" in window || "webkitSpeechRecognition" in window) { | ||
25 | var recognition = new webkitSpeechRecognition(); | ||
26 | |||
27 | recognition.continuous = true; | ||
28 | recognition.interimResults = true; | ||
29 | recognition.lang = settings.speechSettings.lang; | ||
30 | |||
31 | recognition.onresult = this.onResult; | ||
32 | |||
33 | recognition.onend = function () { | ||
34 | recognition.start(); | ||
35 | }; | ||
36 | |||
37 | recognition.start(); | ||
38 | } | ||
39 | |||
40 | this.sleepDelay = 1500; | ||
41 | this.wakeupTime = 0; | ||
42 | |||
43 | this.command = { | ||
44 | NEXT_SLIDE: settings.speechSettings.keywords.NEXT_SLIDE, | ||
45 | PREVIOUS_SLIDE: settings.speechSettings.keywords.PREVIOUS_SLIDE, | ||
46 | }; | ||
47 | }, | ||
48 | |||
49 | onResult: function (speechEvent) { | ||
50 | var result = event.results[event.resultIndex]; | ||
51 | |||
52 | if (result.isFinal) { | ||
53 | return; | ||
54 | } | ||
55 | |||
56 | var sentence = result[0].transcript.split(" "); | ||
57 | var command = sentence[sentence.length - 1]; | ||
58 | speech.processCommand(command); | ||
59 | }, | ||
60 | |||
61 | processCommand: function (speechCommand) { | ||
62 | if (Date.now() < speech.wakeupTime) { | ||
63 | return; | ||
64 | } | ||
65 | |||
66 | var command = speech.translateCommand(speechCommand); | ||
67 | |||
68 | if (command === undefined) { | ||
69 | return; | ||
70 | } | ||
71 | |||
72 | speech.wakeupTime = Date.now() + speech.sleepDelay; | ||
73 | control.dispatchEvent(control.EVENT.GOTO, control.GOTO[command]); | ||
74 | }, | ||
75 | |||
76 | translateCommand: function (speechCommand) { | ||
77 | for (var command in speech.command) { | ||
78 | for (var index in speech.command[command]) { | ||
79 | if (speechCommand.indexOf(speech.command[command][index]) > -1) { | ||
80 | return command; | ||
81 | } | ||
82 | } | ||
83 | } | ||
84 | }, | ||
85 | }; | ||
86 | |||
87 | return speech; | ||
88 | |||
89 | }); | ||
diff --git a/point/binding/touch.js b/point/binding/touch.js new file mode 100644 index 0000000..a09d5fd --- /dev/null +++ b/point/binding/touch.js | |||
@@ -0,0 +1,93 @@ | |||
1 | /* | ||
2 | * This file is part of "What's The Point" <https://github.com/Pacien/WhatsThePoint> | ||
3 | * Copyright (C) 2014 Pacien TRAN-GIRARD | ||
4 | * | ||
5 | * "What's The Point" is free software: you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU Affero General Public License as | ||
7 | * published by the Free Software Foundation, either version 3 of the | ||
8 | * License, or (at your option) any later version. | ||
9 | * | ||
10 | * "What's The Point" is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU Affero General Public License for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU Affero General Public License | ||
16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | */ | ||
18 | |||
19 | define(["libs/hammerjs/hammer.min", "control/control"], function (hammer, control) { | ||
20 | |||
21 | var touch = { | ||
22 | |||
23 | ACTION: { | ||
24 | SWIPE: "swipe", | ||
25 | DOUBLETAP: "doubletap", | ||
26 | TOUCHMOVE: "touchmove", | ||
27 | DRAG: "drag", | ||
28 | }, | ||
29 | |||
30 | DIRECTION: { | ||
31 | DOWN: "down", | ||
32 | LEFT: "left", | ||
33 | UP: "up", | ||
34 | RIGHT: "right", | ||
35 | }, | ||
36 | |||
37 | init: function (settings) { | ||
38 | this.touchZone = document.body; | ||
39 | |||
40 | this.hammerElement = hammer(this.touchZone); | ||
41 | |||
42 | this.hammerElement.options.drag = true; | ||
43 | this.hammerElement.options.dragBlockHorizontal = true; | ||
44 | this.hammerElement.options.dragBlockVertical = true; | ||
45 | this.hammerElement.options.dragLockMinDistance = 20; | ||
46 | |||
47 | this.disableSelect(); | ||
48 | this.bindEvent(); | ||
49 | }, | ||
50 | |||
51 | disableSelect: function () { | ||
52 | this.touchZone.style.WebkitTouchCallout = "none"; | ||
53 | this.touchZone.style.WebkitUserSelect = "none"; | ||
54 | this.touchZone.style.KhtmlUserSelect = "none"; | ||
55 | this.touchZone.style.MozUserSelect = "none"; | ||
56 | this.touchZone.style.msUserSelect = "none"; | ||
57 | this.touchZone.style.userSelect = "none"; | ||
58 | }, | ||
59 | |||
60 | translateSwipe: function (swipeDirection) { | ||
61 | switch (swipeDirection) { | ||
62 | case this.DIRECTION.LEFT: | ||
63 | return control.dispatchEvent(control.EVENT.GOTO, control.GOTO.NEXT_SLIDE); | ||
64 | |||
65 | case this.DIRECTION.RIGHT: | ||
66 | return control.dispatchEvent(control.EVENT.GOTO, control.GOTO.PREVIOUS_SLIDE); | ||
67 | |||
68 | case this.DIRECTION.UP: | ||
69 | return control.dispatchEvent(control.EVENT.SHOW, control.SHOW.NOTES); | ||
70 | |||
71 | case this.DIRECTION.DOWN: | ||
72 | return control.dispatchEvent(control.EVENT.SHOW, control.SHOW.SLIDES); | ||
73 | } | ||
74 | }, | ||
75 | |||
76 | handleDoubletap: function () { | ||
77 | control.dispatchEvent(control.EVENT.TOGGLE, control.TOGGLE.FULLSCREEN); | ||
78 | }, | ||
79 | |||
80 | bindEvent: function () { | ||
81 | this.hammerElement.on(this.ACTION.SWIPE, function (swipeEvent) { | ||
82 | touch.translateSwipe(swipeEvent.gesture.direction); | ||
83 | }); | ||
84 | |||
85 | this.hammerElement.on(this.ACTION.DOUBLETAP, function (doubletapEvent) { | ||
86 | touch.handleDoubletap(); | ||
87 | }); | ||
88 | }, | ||
89 | }; | ||
90 | |||
91 | return touch; | ||
92 | |||
93 | }); | ||
diff --git a/point/control/control.js b/point/control/control.js new file mode 100644 index 0000000..4ec21da --- /dev/null +++ b/point/control/control.js | |||
@@ -0,0 +1,83 @@ | |||
1 | /* | ||
2 | * This file is part of "What's The Point" <https://github.com/Pacien/WhatsThePoint> | ||
3 | * Copyright (C) 2014 Pacien TRAN-GIRARD | ||
4 | * | ||
5 | * "What's The Point" is free software: you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU Affero General Public License as | ||
7 | * published by the Free Software Foundation, either version 3 of the | ||
8 | * License, or (at your option) any later version. | ||
9 | * | ||
10 | * "What's The Point" is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU Affero General Public License for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU Affero General Public License | ||
16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | */ | ||
18 | |||
19 | define(function () { | ||
20 | |||
21 | var control = { | ||
22 | |||
23 | MODE: { | ||
24 | MASTER: "master", | ||
25 | SLAVE: "slave", | ||
26 | FREE: "free", | ||
27 | }, | ||
28 | |||
29 | EVENT: { | ||
30 | GOTO: "goTo", | ||
31 | SLIDE: "slide", | ||
32 | SHOW: "show", | ||
33 | TOGGLE: "toggle", | ||
34 | TRIGGER: "trigger", | ||
35 | }, | ||
36 | |||
37 | SLIDE: { | ||
38 | |||
39 | }, | ||
40 | |||
41 | GOTO: { | ||
42 | PREVIOUS_SLIDE: "previousSlide", | ||
43 | NEXT_SLIDE: "nextSlide", | ||
44 | FIRST_SLIDE: "firstSlide", | ||
45 | LAST_SLIDE: "lastSlide", | ||
46 | }, | ||
47 | |||
48 | SHOW: { | ||
49 | SLIDES: "slides", | ||
50 | NOTES: "notes", | ||
51 | }, | ||
52 | |||
53 | TOGGLE: { | ||
54 | FULLSCREEN: "fullscreen", | ||
55 | }, | ||
56 | |||
57 | TRIGGER: { | ||
58 | |||
59 | }, | ||
60 | |||
61 | init: function () { | ||
62 | return; | ||
63 | }, | ||
64 | |||
65 | dispatchEvent: function (eventType, eventDetail, forward) { | ||
66 | return document.dispatchEvent(new CustomEvent(eventType, { | ||
67 | "detail": { | ||
68 | "detail": eventDetail, | ||
69 | "forward": forward !== undefined ? forward : true, | ||
70 | }, | ||
71 | })); | ||
72 | }, | ||
73 | |||
74 | bindEvent: function (eventType, eventListener) { | ||
75 | document.addEventListener(eventType, function (event) { | ||
76 | eventListener(event.detail); | ||
77 | }); | ||
78 | }, | ||
79 | }; | ||
80 | |||
81 | return control; | ||
82 | |||
83 | }); | ||
diff --git a/point/control/fullscreen.js b/point/control/fullscreen.js new file mode 100644 index 0000000..6e53bc4 --- /dev/null +++ b/point/control/fullscreen.js | |||
@@ -0,0 +1,68 @@ | |||
1 | /* | ||
2 | * This file is part of "What's The Point" <https://github.com/Pacien/WhatsThePoint> | ||
3 | * Copyright (C) 2014 Pacien TRAN-GIRARD | ||
4 | * | ||
5 | * "What's The Point" is free software: you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU Affero General Public License as | ||
7 | * published by the Free Software Foundation, either version 3 of the | ||
8 | * License, or (at your option) any later version. | ||
9 | * | ||
10 | * "What's The Point" is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU Affero General Public License for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU Affero General Public License | ||
16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | */ | ||
18 | |||
19 | define(["control/control"], function (control) { | ||
20 | |||
21 | var fullscreen = { | ||
22 | |||
23 | init: function () { | ||
24 | this.bindEvent(); | ||
25 | }, | ||
26 | |||
27 | toggleFullscreen: function () { | ||
28 | // from | ||
29 | // https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode#Toggling_fullscreenController_mode | ||
30 | if (!document.fullscreenControllerElement && // alternative | ||
31 | // standard method | ||
32 | !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement) {// current | ||
33 | // working | ||
34 | // methods | ||
35 | if (document.documentElement.requestFullscreen) { | ||
36 | document.documentElement.requestFullscreen(); | ||
37 | } else if (document.documentElement.msRequestFullscreen) { | ||
38 | document.documentElement.msRequestFullscreen(); | ||
39 | } else if (document.documentElement.mozRequestFullScreen) { | ||
40 | document.documentElement.mozRequestFullScreen(); | ||
41 | } else if (document.documentElement.webkitRequestFullscreen) { | ||
42 | document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); | ||
43 | } | ||
44 | } else { | ||
45 | if (document.exitFullscreen) { | ||
46 | document.exitFullscreen(); | ||
47 | } else if (document.msExitFullscreen) { | ||
48 | document.msExitFullscreen(); | ||
49 | } else if (document.mozCancelFullScreen) { | ||
50 | document.mozCancelFullScreen(); | ||
51 | } else if (document.webkitExitFullscreen) { | ||
52 | document.webkitExitFullscreen(); | ||
53 | } | ||
54 | } | ||
55 | }, | ||
56 | |||
57 | bindEvent: function () { | ||
58 | control.bindEvent(control.EVENT.TOGGLE, function (toggleEvent) { | ||
59 | if (toggleEvent.detail === control.TOGGLE.FULLSCREEN) { | ||
60 | fullscreen.toggleFullscreen(); | ||
61 | } | ||
62 | }); | ||
63 | }, | ||
64 | }; | ||
65 | |||
66 | return fullscreen; | ||
67 | |||
68 | }); | ||
diff --git a/point/control/layout.js b/point/control/layout.js new file mode 100644 index 0000000..84a55ff --- /dev/null +++ b/point/control/layout.js | |||
@@ -0,0 +1,61 @@ | |||
1 | /* | ||
2 | * This file is part of "What's The Point" <https://github.com/Pacien/WhatsThePoint> | ||
3 | * Copyright (C) 2014 Pacien TRAN-GIRARD | ||
4 | * | ||
5 | * "What's The Point" is free software: you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU Affero General Public License as | ||
7 | * published by the Free Software Foundation, either version 3 of the | ||
8 | * License, or (at your option) any later version. | ||
9 | * | ||
10 | * "What's The Point" is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU Affero General Public License for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU Affero General Public License | ||
16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | */ | ||
18 | |||
19 | define(["control/control"], function (control) { | ||
20 | |||
21 | var layout = { | ||
22 | |||
23 | init: function () { | ||
24 | this.screen = document.getElementsByTagName("p-screen")[0]; | ||
25 | this.bindEvent(); | ||
26 | }, | ||
27 | |||
28 | CLASS: { | ||
29 | SLIDES: "slides", | ||
30 | NODES: "notes", | ||
31 | }, | ||
32 | |||
33 | reset: function () { | ||
34 | for (var className in this.CLASS) { | ||
35 | this.screen.classList.remove(this.CLASS[className]); | ||
36 | } | ||
37 | }, | ||
38 | |||
39 | show: function (element) { | ||
40 | this.reset(); | ||
41 | switch (element) { | ||
42 | case control.SHOW.SLIDES: | ||
43 | this.screen.classList.add("slides"); | ||
44 | break; | ||
45 | |||
46 | case control.SHOW.NOTES: | ||
47 | this.screen.classList.add("notes"); | ||
48 | break; | ||
49 | } | ||
50 | }, | ||
51 | |||
52 | bindEvent: function () { | ||
53 | control.bindEvent(control.EVENT.SHOW, function (showEvent) { | ||
54 | layout.show(showEvent.detail); | ||
55 | }); | ||
56 | }, | ||
57 | }; | ||
58 | |||
59 | return layout; | ||
60 | |||
61 | }); | ||
diff --git a/point/control/network.js b/point/control/network.js new file mode 100644 index 0000000..e782257 --- /dev/null +++ b/point/control/network.js | |||
@@ -0,0 +1,58 @@ | |||
1 | /* | ||
2 | * This file is part of "What's The Point" <https://github.com/Pacien/WhatsThePoint> | ||
3 | * Copyright (C) 2014 Pacien TRAN-GIRARD | ||
4 | * | ||
5 | * "What's The Point" is free software: you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU Affero General Public License as | ||
7 | * published by the Free Software Foundation, either version 3 of the | ||
8 | * License, or (at your option) any later version. | ||
9 | * | ||
10 | * "What's The Point" is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU Affero General Public License for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU Affero General Public License | ||
16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | */ | ||
18 | |||
19 | define([ "control/control", "libs/webcastor/webcastor", "control/slide" ], function (control, webcastor, slide) { | ||
20 | |||
21 | var network = { | ||
22 | |||
23 | init: function (settings) { | ||
24 | webcastor.init(settings, function () { | ||
25 | network.bindEvents(); | ||
26 | }); | ||
27 | }, | ||
28 | |||
29 | send: function (event, eventDetail) { | ||
30 | var message = JSON.stringify({ | ||
31 | "event": event, | ||
32 | "eventDetail": eventDetail, | ||
33 | }); | ||
34 | webcastor.send(message); | ||
35 | }, | ||
36 | |||
37 | bindEvent: function (event) { | ||
38 | control.bindEvent(event, function (eventDetail) { | ||
39 | if (!eventDetail.forward) { | ||
40 | return false; | ||
41 | } | ||
42 | network.send(event, eventDetail.detail); | ||
43 | }); | ||
44 | }, | ||
45 | |||
46 | /* local -> network */ | ||
47 | bindEvents: function () { | ||
48 | var events = [ control.EVENT.SLIDE, control.EVENT.TRIGGER ]; | ||
49 | for (var i = 0; i < events.length; i++) { | ||
50 | this.bindEvent(events[i]); | ||
51 | } | ||
52 | }, | ||
53 | |||
54 | }; | ||
55 | |||
56 | return network; | ||
57 | |||
58 | }); | ||
diff --git a/point/control/slide.js b/point/control/slide.js new file mode 100644 index 0000000..c539a60 --- /dev/null +++ b/point/control/slide.js | |||
@@ -0,0 +1,86 @@ | |||
1 | /* | ||
2 | * This file is part of "What's The Point" <https://github.com/Pacien/WhatsThePoint> | ||
3 | * Copyright (C) 2014 Pacien TRAN-GIRARD | ||
4 | * | ||
5 | * "What's The Point" is free software: you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU Affero General Public License as | ||
7 | * published by the Free Software Foundation, either version 3 of the | ||
8 | * License, or (at your option) any later version. | ||
9 | * | ||
10 | * "What's The Point" is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU Affero General Public License for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU Affero General Public License | ||
16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | */ | ||
18 | |||
19 | define(["control/control"], function (control) { | ||
20 | |||
21 | var slide = { | ||
22 | |||
23 | init: function () { | ||
24 | this.slideCount = document.getElementsByTagName("p-slide").length; | ||
25 | this.start(); | ||
26 | this.bindEvent(); | ||
27 | }, | ||
28 | |||
29 | start: function () { | ||
30 | var slideIndex = location.hash.substr(1); | ||
31 | location.hash = 0; | ||
32 | location.hash = 1; | ||
33 | this.setCurrentSlide(slideIndex); | ||
34 | }, | ||
35 | |||
36 | setCurrentSlide: function (slideIndex) { | ||
37 | if (isNaN(slideIndex) || slideIndex < 1 || slideIndex > this.slideCount) { | ||
38 | return false; | ||
39 | } | ||
40 | location.hash = slideIndex; | ||
41 | return true; | ||
42 | }, | ||
43 | |||
44 | getCurrentSlideIndex: function () { | ||
45 | var hash = location.hash.substring(1); | ||
46 | return isNaN(hash) || hash < 1 || hash > this.slideCount ? 0 : Number(hash); | ||
47 | }, | ||
48 | |||
49 | shift: function (delta) { | ||
50 | return this.getCurrentSlideIndex() + delta; | ||
51 | }, | ||
52 | |||
53 | getIndex: function (target) { | ||
54 | switch (target) { | ||
55 | case control.GOTO.PREVIOUS_SLIDE: | ||
56 | return this.shift(-1); | ||
57 | |||
58 | case control.GOTO.NEXT_SLIDE: | ||
59 | return this.shift(+1); | ||
60 | |||
61 | case control.GOTO.FIRST_SLIDE: | ||
62 | return 1; | ||
63 | |||
64 | case control.GOTO.LAST_SLIDE: | ||
65 | return this.slideCount; | ||
66 | } | ||
67 | }, | ||
68 | |||
69 | translate: function (target) { | ||
70 | control.dispatchEvent(control.EVENT.SLIDE, this.getIndex(target)); | ||
71 | }, | ||
72 | |||
73 | bindEvent: function () { | ||
74 | control.bindEvent(control.EVENT.GOTO, function (gotoEvent) { | ||
75 | slide.translate(gotoEvent.detail); | ||
76 | }); | ||
77 | |||
78 | control.bindEvent(control.EVENT.SLIDE, function (slideEvent) { | ||
79 | slide.setCurrentSlide(slideEvent.detail); | ||
80 | }); | ||
81 | }, | ||
82 | }; | ||
83 | |||
84 | return slide; | ||
85 | |||
86 | }); | ||
diff --git a/point/data/html.js b/point/data/html.js new file mode 100644 index 0000000..66448cc --- /dev/null +++ b/point/data/html.js | |||
@@ -0,0 +1,86 @@ | |||
1 | /* | ||
2 | * This file is part of "What's The Point" <https://github.com/Pacien/WhatsThePoint> | ||
3 | * Copyright (C) 2014 Pacien TRAN-GIRARD | ||
4 | * | ||
5 | * "What's The Point" is free software: you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU Affero General Public License as | ||
7 | * published by the Free Software Foundation, either version 3 of the | ||
8 | * License, or (at your option) any later version. | ||
9 | * | ||
10 | * "What's The Point" is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU Affero General Public License for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU Affero General Public License | ||
16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | */ | ||
18 | |||
19 | define(function () { | ||
20 | |||
21 | var xml = { | ||
22 | |||
23 | init: function () { | ||
24 | return; | ||
25 | }, | ||
26 | |||
27 | getProp: function (object, dom, property, method) { | ||
28 | var elements = dom.getElementsByTagName(property); | ||
29 | if (elements.length > 0) { | ||
30 | object[property] = method(elements[0]); | ||
31 | } | ||
32 | return object; | ||
33 | }, | ||
34 | |||
35 | getInnerText: function (object, dom, property) { | ||
36 | return this.getProp(object, dom, property, function (element) { | ||
37 | return element.textContent; | ||
38 | }); | ||
39 | }, | ||
40 | |||
41 | getInnerHtml: function (object, dom, property) { | ||
42 | return this.getProp(object, dom, property, function (element) { | ||
43 | if (window.XMLSerializer !== undefined) { | ||
44 | return (new window.XMLSerializer()).serializeToString(element); | ||
45 | } else if (element.xml !== undefined) { | ||
46 | return element.xml; | ||
47 | } | ||
48 | return element.innerHTML; | ||
49 | }); | ||
50 | }, | ||
51 | |||
52 | parseSlide: function (domSlide) { | ||
53 | var slide = {}; | ||
54 | |||
55 | ["type", "title", "subtitle"].forEach(function (tag) { | ||
56 | xml.getInnerText(slide, domSlide, tag); | ||
57 | }); | ||
58 | |||
59 | ["content", "notes"].forEach(function (tag) { | ||
60 | xml.getInnerHtml(slide, domSlide, tag); | ||
61 | }); | ||
62 | |||
63 | return slide; | ||
64 | }, | ||
65 | |||
66 | parseSlides: function (domSlides) { | ||
67 | var slides = []; | ||
68 | |||
69 | for (var i = 0; i < domSlides.length; i++) { | ||
70 | slides.push(this.parseSlide(domSlides[i])); | ||
71 | } | ||
72 | |||
73 | return slides; | ||
74 | }, | ||
75 | |||
76 | parse: function (rawData, callback) { | ||
77 | var dom = new DOMParser().parseFromString(rawData, "text/xml"); | ||
78 | var domSlides = dom.getElementsByTagName("slide"); | ||
79 | |||
80 | callback(this.parseSlides(domSlides)); | ||
81 | }, | ||
82 | }; | ||
83 | |||
84 | return xml; | ||
85 | |||
86 | }); | ||
diff --git a/point/data/markdown.js b/point/data/markdown.js new file mode 100644 index 0000000..38a564d --- /dev/null +++ b/point/data/markdown.js | |||
@@ -0,0 +1,61 @@ | |||
1 | /* | ||
2 | * This file is part of "What's The Point" <https://github.com/Pacien/WhatsThePoint> | ||
3 | * Copyright (C) 2014 Pacien TRAN-GIRARD | ||
4 | * | ||
5 | * "What's The Point" is free software: you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU Affero General Public License as | ||
7 | * published by the Free Software Foundation, either version 3 of the | ||
8 | * License, or (at your option) any later version. | ||
9 | * | ||
10 | * "What's The Point" is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU Affero General Public License for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU Affero General Public License | ||
16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | */ | ||
18 | |||
19 | requirejs.config({ | ||
20 | shim: { | ||
21 | "markdownjs": { | ||
22 | exports: "markdown", | ||
23 | }, | ||
24 | }, | ||
25 | paths: { | ||
26 | "markdownjs": "libs/markdownjs/markdown.min", | ||
27 | }, | ||
28 | }); | ||
29 | |||
30 | define(["js-yaml", "markdownjs"], function (jsyaml, markdownjs) { | ||
31 | |||
32 | var markdown = { | ||
33 | |||
34 | init: function () { | ||
35 | return; | ||
36 | }, | ||
37 | |||
38 | renderSlide: function (slide) { | ||
39 | if (slide.content !== undefined) { | ||
40 | slide.content = markdownjs.toHTML(slide.content); | ||
41 | } | ||
42 | if (slide.notes !== undefined) { | ||
43 | slide.notes = markdownjs.toHTML(slide.notes); | ||
44 | } | ||
45 | return slide; | ||
46 | }, | ||
47 | |||
48 | parse: function (rawData, callback) { | ||
49 | var slides = []; | ||
50 | |||
51 | jsyaml.safeLoadAll(rawData, function (slide) { | ||
52 | slides.push(markdown.renderSlide(slide)); | ||
53 | }); | ||
54 | |||
55 | callback(slides); | ||
56 | }, | ||
57 | }; | ||
58 | |||
59 | return markdown; | ||
60 | |||
61 | }); | ||
diff --git a/point/data/pdf.js b/point/data/pdf.js new file mode 100644 index 0000000..f789bdf --- /dev/null +++ b/point/data/pdf.js | |||
@@ -0,0 +1,130 @@ | |||
1 | /* | ||
2 | * This file is part of "What's The Point" <https://github.com/Pacien/WhatsThePoint> | ||
3 | * Copyright (C) 2014 Pacien TRAN-GIRARD | ||
4 | * | ||
5 | * "What's The Point" is free software: you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU Affero General Public License as | ||
7 | * published by the Free Software Foundation, either version 3 of the | ||
8 | * License, or (at your option) any later version. | ||
9 | * | ||
10 | * "What's The Point" is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU Affero General Public License for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU Affero General Public License | ||
16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | */ | ||
18 | |||
19 | requirejs.config({ | ||
20 | shim: { | ||
21 | "pdfjs": { | ||
22 | exports: "PDFJS", | ||
23 | }, | ||
24 | }, | ||
25 | paths: { | ||
26 | "pdfjs": "libs/pdfjs/pdf", | ||
27 | }, | ||
28 | }); | ||
29 | |||
30 | define(["pdfjs"], function (pdfjs) { | ||
31 | |||
32 | var pdf = { | ||
33 | |||
34 | init: function (settings) { | ||
35 | this.fileUrl = settings.data.file; | ||
36 | this.width = settings.dimension.width; | ||
37 | this.height = settings.dimension.height; | ||
38 | |||
39 | this.slides = []; | ||
40 | |||
41 | pdfjs.disableRange = true; | ||
42 | pdfjs.workerSrc = "point/libs/pdfjs/pdf.worker.js"; | ||
43 | }, | ||
44 | |||
45 | makeCanvas: function () { | ||
46 | var canvas = document.createElement("canvas"); | ||
47 | canvas.width = pdf.width; | ||
48 | canvas.height = pdf.height; | ||
49 | return canvas; | ||
50 | }, | ||
51 | |||
52 | clearOutline: function (context, slideWidth, slideHeight, offsetX, offsetY) { | ||
53 | context.clearRect(0, 0, offsetX, pdf.height); | ||
54 | context.clearRect(offsetX + slideWidth, 0, offsetX, pdf.height); | ||
55 | context.clearRect(0, 0, pdf.width, offsetY); | ||
56 | context.clearRect(0, offsetY + slideHeight, pdf.width, offsetY); | ||
57 | return context; | ||
58 | }, | ||
59 | |||
60 | renderSlide: function (pdfDocument, slideIndex, callback) { | ||
61 | pdfDocument.getPage(slideIndex).then(function (pdfPage) { | ||
62 | |||
63 | var viewport = pdfPage.getViewport(1); | ||
64 | var slideWidth = viewport.width / 2; | ||
65 | var slideHeight = viewport.height; | ||
66 | |||
67 | var widthRatio = pdf.width / slideWidth; | ||
68 | var heightRatio = pdf.height / slideHeight; | ||
69 | var scale = Math.min(widthRatio, heightRatio); | ||
70 | slideWidth *= scale; | ||
71 | slideHeight *= scale; | ||
72 | |||
73 | var offsetX = (pdf.width - slideWidth) / 2; | ||
74 | var offsetY = (pdf.height - slideHeight) / 2; | ||
75 | |||
76 | var contentViewport = new pdfjs.PageViewport(pdfPage.view, scale, 0, offsetX, offsetY); | ||
77 | var notesViewport = new pdfjs.PageViewport(pdfPage.view, scale, 0, -slideWidth + offsetX, offsetY); | ||
78 | |||
79 | var contentCanvas = pdf.makeCanvas(); | ||
80 | var contentContext = contentCanvas.getContext("2d"); | ||
81 | |||
82 | var notesCanvas = pdf.makeCanvas(); | ||
83 | var notesContext = notesCanvas.getContext("2d"); | ||
84 | |||
85 | var contentRenderContext = { | ||
86 | canvasContext: contentContext, | ||
87 | viewport: contentViewport, | ||
88 | }; | ||
89 | |||
90 | var notesRenderContext = { | ||
91 | canvasContext: notesContext, | ||
92 | viewport: notesViewport, | ||
93 | }; | ||
94 | |||
95 | pdfPage.render(contentRenderContext).then(function () { | ||
96 | pdf.clearOutline(contentContext, slideWidth, slideHeight, offsetX, offsetY); | ||
97 | |||
98 | pdfPage.render(notesRenderContext).then(function () { | ||
99 | pdf.clearOutline(notesContext, slideWidth, slideHeight, offsetX, offsetY); | ||
100 | |||
101 | pdf.registerSlide(contentCanvas, notesCanvas, pdfDocument, slideIndex, callback); | ||
102 | |||
103 | }); | ||
104 | }); | ||
105 | }); | ||
106 | }, | ||
107 | |||
108 | registerSlide: function (contentCanvas, notesCanvas, pdfDocument, slideIndex, callback) { | ||
109 | pdf.slides[slideIndex - 1] = { | ||
110 | content: contentCanvas, | ||
111 | notes: notesCanvas, | ||
112 | }; | ||
113 | |||
114 | if (slideIndex < pdfDocument.pdfInfo.numPages) { | ||
115 | pdf.renderSlide(pdfDocument, slideIndex + 1, callback); | ||
116 | } else { | ||
117 | callback(pdf.slides); | ||
118 | } | ||
119 | }, | ||
120 | |||
121 | parse: function (rawData, callback) { | ||
122 | pdfjs.getDocument(require.toUrl(this.fileUrl)).then(function (pdfDocument) { | ||
123 | pdf.renderSlide(pdfDocument, 1, callback); | ||
124 | }); | ||
125 | }, | ||
126 | }; | ||
127 | |||
128 | return pdf; | ||
129 | |||
130 | }); | ||
diff --git a/point/data/renderSlide.js b/point/data/renderSlide.js new file mode 100644 index 0000000..e149f41 --- /dev/null +++ b/point/data/renderSlide.js | |||
@@ -0,0 +1,127 @@ | |||
1 | /* | ||
2 | * This file is part of "What's The Point" <https://github.com/Pacien/WhatsThePoint> | ||
3 | * Copyright (C) 2014 Pacien TRAN-GIRARD | ||
4 | * | ||
5 | * "What's The Point" is free software: you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU Affero General Public License as | ||
7 | * published by the Free Software Foundation, either version 3 of the | ||
8 | * License, or (at your option) any later version. | ||
9 | * | ||
10 | * "What's The Point" is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU Affero General Public License for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU Affero General Public License | ||
16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | */ | ||
18 | |||
19 | define(function () { | ||
20 | |||
21 | var renderSlide = { | ||
22 | |||
23 | init: function () { | ||
24 | this.lastTitle = undefined; | ||
25 | }, | ||
26 | |||
27 | appendNode: function (parent, tag, content, appendMethod) { | ||
28 | var node = document.createElement(tag); | ||
29 | appendMethod(node, content); | ||
30 | parent.appendChild(node); | ||
31 | return parent; | ||
32 | }, | ||
33 | |||
34 | appendHtmlNode: function (parent, tag, htmlContent) { | ||
35 | return this.appendNode(parent, tag, htmlContent, function (parent, htmlContent) { | ||
36 | parent.innerHTML = htmlContent; | ||
37 | }); | ||
38 | }, | ||
39 | |||
40 | appendObjectNode: function (parent, tag, node) { | ||
41 | return this.appendNode(parent, tag, node, function (parent, node) { | ||
42 | parent.appendChild(node); | ||
43 | }); | ||
44 | }, | ||
45 | |||
46 | appendTextNode: function (parent, tag, text) { | ||
47 | return this.appendObjectNode(parent, tag, document.createTextNode(text)); | ||
48 | }, | ||
49 | |||
50 | appendContentNode: function (parent, tag, content) { | ||
51 | if (typeof (content) === "string") { | ||
52 | this.appendHtmlNode(parent, tag, content); | ||
53 | } else { | ||
54 | this.appendObjectNode(parent, tag, content); | ||
55 | } | ||
56 | }, | ||
57 | |||
58 | renderTitle: function (slideData) { | ||
59 | var title = slideData.title; | ||
60 | var subtitle = slideData.subtitle; | ||
61 | |||
62 | if (title !== undefined) { | ||
63 | this.lastTitle = title; | ||
64 | } else { | ||
65 | if (subtitle !== undefined) { | ||
66 | title = this.lastTitle; | ||
67 | } else { | ||
68 | this.lastTitle = undefined; | ||
69 | } | ||
70 | } | ||
71 | |||
72 | var titleNode; | ||
73 | if (title !== undefined || subtitle !== undefined) { | ||
74 | titleNode = document.createElement("s-title"); | ||
75 | } else { | ||
76 | titleNode = document.createDocumentFragment("s-title"); | ||
77 | } | ||
78 | |||
79 | if (title !== undefined) { | ||
80 | this.appendTextNode(titleNode, "h1", title); | ||
81 | } | ||
82 | |||
83 | if (subtitle !== undefined) { | ||
84 | this.appendTextNode(titleNode, "h2", subtitle); | ||
85 | } | ||
86 | |||
87 | return titleNode; | ||
88 | }, | ||
89 | |||
90 | renderBody: function (slideData) { | ||
91 | var bodyNode = document.createDocumentFragment(); | ||
92 | //var bodyNode = document.createElement("s-body"); | ||
93 | |||
94 | if (slideData.content !== undefined) { | ||
95 | this.appendContentNode(bodyNode, "s-content", slideData.content); | ||
96 | } | ||
97 | |||
98 | var notes = slideData.notes === undefined ? "" : slideData.notes; | ||
99 | this.appendContentNode(bodyNode, "s-notes", notes); | ||
100 | |||
101 | return bodyNode; | ||
102 | }, | ||
103 | |||
104 | renderSlide: function (slideData, index) { | ||
105 | var slide = document.createElement("p-slide"); | ||
106 | slide.setAttribute("id", index + 1); | ||
107 | slide.appendChild(this.renderTitle(slideData)); | ||
108 | slide.appendChild(this.renderBody(slideData)); | ||
109 | return slide; | ||
110 | }, | ||
111 | |||
112 | renderSlides: function (slidesData) { | ||
113 | var slides = document.createDocumentFragment(); | ||
114 | for (var i = 0; i < slidesData.length; i++) { | ||
115 | slides.appendChild(this.renderSlide(slidesData[i], i)); | ||
116 | } | ||
117 | return slides; | ||
118 | }, | ||
119 | |||
120 | render: function (slidesData, callback) { | ||
121 | callback(this.renderSlides(slidesData)); | ||
122 | }, | ||
123 | }; | ||
124 | |||
125 | return renderSlide; | ||
126 | |||
127 | }); | ||
diff --git a/point/libs/hammerjs/hammer.min.js b/point/libs/hammerjs/hammer.min.js new file mode 100644 index 0000000..d7b2e9a --- /dev/null +++ b/point/libs/hammerjs/hammer.min.js | |||
@@ -0,0 +1,313 @@ | |||
1 | /*! Hammer.JS - v1.1.3 - 2014-05-20 | ||
2 | * http://eightmedia.github.io/hammer.js | ||
3 | * | ||
4 | * Copyright (c) 2014 Jorik Tangelder <j.tangelder@gmail.com>; | ||
5 | * Licensed under the MIT license */ | ||
6 | |||
7 | |||
8 | !function (a, b) { | ||
9 | "use strict"; | ||
10 | function c() { | ||
11 | d.READY || (s.determineEventTypes(), r.each(d.gestures, function (a) { | ||
12 | u.register(a) | ||
13 | }), s.onTouch(d.DOCUMENT, n, u.detect), s.onTouch(d.DOCUMENT, o, u.detect), d.READY = !0) | ||
14 | } | ||
15 | |||
16 | var d = function v(a, b) { | ||
17 | return new v.Instance(a, b || {}) | ||
18 | }; | ||
19 | d.VERSION = "1.1.3", d.defaults = {behavior: {userSelect: "none", touchAction: "pan-y", touchCallout: "none", contentZooming: "none", userDrag: "none", tapHighlightColor: "rgba(0,0,0,0)"}}, d.DOCUMENT = document, d.HAS_POINTEREVENTS = navigator.pointerEnabled || navigator.msPointerEnabled, d.HAS_TOUCHEVENTS = "ontouchstart"in a, d.IS_MOBILE = /mobile|tablet|ip(ad|hone|od)|android|silk/i.test(navigator.userAgent), d.NO_MOUSEEVENTS = d.HAS_TOUCHEVENTS && d.IS_MOBILE || d.HAS_POINTEREVENTS, d.CALCULATE_INTERVAL = 25; | ||
20 | var e = {}, f = d.DIRECTION_DOWN = "down", g = d.DIRECTION_LEFT = "left", h = d.DIRECTION_UP = "up", i = d.DIRECTION_RIGHT = "right", j = d.POINTER_MOUSE = "mouse", k = d.POINTER_TOUCH = "touch", l = d.POINTER_PEN = "pen", m = d.EVENT_START = "start", n = d.EVENT_MOVE = "move", o = d.EVENT_END = "end", p = d.EVENT_RELEASE = "release", q = d.EVENT_TOUCH = "touch"; | ||
21 | d.READY = !1, d.plugins = d.plugins || {}, d.gestures = d.gestures || {}; | ||
22 | var r = d.utils = {extend: function (a, c, d) { | ||
23 | for (var e in c)!c.hasOwnProperty(e) || a[e] !== b && d || (a[e] = c[e]); | ||
24 | return a | ||
25 | }, on: function (a, b, c) { | ||
26 | a.addEventListener(b, c, !1) | ||
27 | }, off: function (a, b, c) { | ||
28 | a.removeEventListener(b, c, !1) | ||
29 | }, each: function (a, c, d) { | ||
30 | var e, f; | ||
31 | if ("forEach"in a)a.forEach(c, d); else if (a.length !== b) { | ||
32 | for (e = 0, f = a.length; f > e; e++)if (c.call(d, a[e], e, a) === !1)return | ||
33 | } else for (e in a)if (a.hasOwnProperty(e) && c.call(d, a[e], e, a) === !1)return | ||
34 | }, inStr: function (a, b) { | ||
35 | return a.indexOf(b) > -1 | ||
36 | }, inArray: function (a, b) { | ||
37 | if (a.indexOf) { | ||
38 | var c = a.indexOf(b); | ||
39 | return-1 === c ? !1 : c | ||
40 | } | ||
41 | for (var d = 0, e = a.length; e > d; d++)if (a[d] === b)return d; | ||
42 | return!1 | ||
43 | }, toArray: function (a) { | ||
44 | return Array.prototype.slice.call(a, 0) | ||
45 | }, hasParent: function (a, b) { | ||
46 | for (; a;) { | ||
47 | if (a == b)return!0; | ||
48 | a = a.parentNode | ||
49 | } | ||
50 | return!1 | ||
51 | }, getCenter: function (a) { | ||
52 | var b = [], c = [], d = [], e = [], f = Math.min, g = Math.max; | ||
53 | return 1 === a.length ? {pageX: a[0].pageX, pageY: a[0].pageY, clientX: a[0].clientX, clientY: a[0].clientY} : (r.each(a, function (a) { | ||
54 | b.push(a.pageX), c.push(a.pageY), d.push(a.clientX), e.push(a.clientY) | ||
55 | }), {pageX: (f.apply(Math, b) + g.apply(Math, b)) / 2, pageY: (f.apply(Math, c) + g.apply(Math, c)) / 2, clientX: (f.apply(Math, d) + g.apply(Math, d)) / 2, clientY: (f.apply(Math, e) + g.apply(Math, e)) / 2}) | ||
56 | }, getVelocity: function (a, b, c) { | ||
57 | return{x: Math.abs(b / a) || 0, y: Math.abs(c / a) || 0} | ||
58 | }, getAngle: function (a, b) { | ||
59 | var c = b.clientX - a.clientX, d = b.clientY - a.clientY; | ||
60 | return 180 * Math.atan2(d, c) / Math.PI | ||
61 | }, getDirection: function (a, b) { | ||
62 | var c = Math.abs(a.clientX - b.clientX), d = Math.abs(a.clientY - b.clientY); | ||
63 | return c >= d ? a.clientX - b.clientX > 0 ? g : i : a.clientY - b.clientY > 0 ? h : f | ||
64 | }, getDistance: function (a, b) { | ||
65 | var c = b.clientX - a.clientX, d = b.clientY - a.clientY; | ||
66 | return Math.sqrt(c * c + d * d) | ||
67 | }, getScale: function (a, b) { | ||
68 | return a.length >= 2 && b.length >= 2 ? this.getDistance(b[0], b[1]) / this.getDistance(a[0], a[1]) : 1 | ||
69 | }, getRotation: function (a, b) { | ||
70 | return a.length >= 2 && b.length >= 2 ? this.getAngle(b[1], b[0]) - this.getAngle(a[1], a[0]) : 0 | ||
71 | }, isVertical: function (a) { | ||
72 | return a == h || a == f | ||
73 | }, setPrefixedCss: function (a, b, c, d) { | ||
74 | var e = ["", "Webkit", "Moz", "O", "ms"]; | ||
75 | b = r.toCamelCase(b); | ||
76 | for (var f = 0; f < e.length; f++) { | ||
77 | var g = b; | ||
78 | if (e[f] && (g = e[f] + g.slice(0, 1).toUpperCase() + g.slice(1)), g in a.style) { | ||
79 | a.style[g] = (null == d || d) && c || ""; | ||
80 | break | ||
81 | } | ||
82 | } | ||
83 | }, toggleBehavior: function (a, b, c) { | ||
84 | if (b && a && a.style) { | ||
85 | r.each(b, function (b, d) { | ||
86 | r.setPrefixedCss(a, d, b, c) | ||
87 | }); | ||
88 | var d = c && function () { | ||
89 | return!1 | ||
90 | }; | ||
91 | "none" == b.userSelect && (a.onselectstart = d), "none" == b.userDrag && (a.ondragstart = d) | ||
92 | } | ||
93 | }, toCamelCase: function (a) { | ||
94 | return a.replace(/[_-]([a-z])/g, function (a) { | ||
95 | return a[1].toUpperCase() | ||
96 | }) | ||
97 | }}, s = d.event = {preventMouseEvents: !1, started: !1, shouldDetect: !1, on: function (a, b, c, d) { | ||
98 | var e = b.split(" "); | ||
99 | r.each(e, function (b) { | ||
100 | r.on(a, b, c), d && d(b) | ||
101 | }) | ||
102 | }, off: function (a, b, c, d) { | ||
103 | var e = b.split(" "); | ||
104 | r.each(e, function (b) { | ||
105 | r.off(a, b, c), d && d(b) | ||
106 | }) | ||
107 | }, onTouch: function (a, b, c) { | ||
108 | var f = this, g = function (e) { | ||
109 | var g, h = e.type.toLowerCase(), i = d.HAS_POINTEREVENTS, j = r.inStr(h, "mouse"); | ||
110 | j && f.preventMouseEvents || (j && b == m && 0 === e.button ? (f.preventMouseEvents = !1, f.shouldDetect = !0) : i && b == m ? f.shouldDetect = 1 === e.buttons || t.matchType(k, e) : j || b != m || (f.preventMouseEvents = !0, f.shouldDetect = !0), i && b != o && t.updatePointer(b, e), f.shouldDetect && (g = f.doDetect.call(f, e, b, a, c)), g == o && (f.preventMouseEvents = !1, f.shouldDetect = !1, t.reset()), i && b == o && t.updatePointer(b, e)) | ||
111 | }; | ||
112 | return this.on(a, e[b], g), g | ||
113 | }, doDetect: function (a, b, c, d) { | ||
114 | var e = this.getTouchList(a, b), f = e.length, g = b, h = e.trigger, i = f; | ||
115 | b == m ? h = q : b == o && (h = p, i = e.length - (a.changedTouches ? a.changedTouches.length : 1)), i > 0 && this.started && (g = n), this.started = !0; | ||
116 | var j = this.collectEventData(c, g, e, a); | ||
117 | return b != o && d.call(u, j), h && (j.changedLength = i, j.eventType = h, d.call(u, j), j.eventType = g, delete j.changedLength), g == o && (d.call(u, j), this.started = !1), g | ||
118 | }, determineEventTypes: function () { | ||
119 | var b; | ||
120 | return b = d.HAS_POINTEREVENTS ? a.PointerEvent ? ["pointerdown", "pointermove", "pointerup pointercancel lostpointercapture"] : ["MSPointerDown", "MSPointerMove", "MSPointerUp MSPointerCancel MSLostPointerCapture"] : d.NO_MOUSEEVENTS ? ["touchstart", "touchmove", "touchend touchcancel"] : ["touchstart mousedown", "touchmove mousemove", "touchend touchcancel mouseup"], e[m] = b[0], e[n] = b[1], e[o] = b[2], e | ||
121 | }, getTouchList: function (a, b) { | ||
122 | if (d.HAS_POINTEREVENTS)return t.getTouchList(); | ||
123 | if (a.touches) { | ||
124 | if (b == n)return a.touches; | ||
125 | var c = [], e = [].concat(r.toArray(a.touches), r.toArray(a.changedTouches)), f = []; | ||
126 | return r.each(e, function (a) { | ||
127 | r.inArray(c, a.identifier) === !1 && f.push(a), c.push(a.identifier) | ||
128 | }), f | ||
129 | } | ||
130 | return a.identifier = 1, [a] | ||
131 | }, collectEventData: function (a, b, c, d) { | ||
132 | var e = k; | ||
133 | return r.inStr(d.type, "mouse") || t.matchType(j, d) ? e = j : t.matchType(l, d) && (e = l), {center: r.getCenter(c), timeStamp: Date.now(), target: d.target, touches: c, eventType: b, pointerType: e, srcEvent: d, preventDefault: function () { | ||
134 | var a = this.srcEvent; | ||
135 | a.preventManipulation && a.preventManipulation(), a.preventDefault && a.preventDefault() | ||
136 | }, stopPropagation: function () { | ||
137 | this.srcEvent.stopPropagation() | ||
138 | }, stopDetect: function () { | ||
139 | return u.stopDetect() | ||
140 | }} | ||
141 | }}, t = d.PointerEvent = {pointers: {}, getTouchList: function () { | ||
142 | var a = []; | ||
143 | return r.each(this.pointers, function (b) { | ||
144 | a.push(b) | ||
145 | }), a | ||
146 | }, updatePointer: function (a, b) { | ||
147 | a == o || a != o && 1 !== b.buttons ? delete this.pointers[b.pointerId] : (b.identifier = b.pointerId, this.pointers[b.pointerId] = b) | ||
148 | }, matchType: function (a, b) { | ||
149 | if (!b.pointerType)return!1; | ||
150 | var c = b.pointerType, d = {}; | ||
151 | return d[j] = c === (b.MSPOINTER_TYPE_MOUSE || j), d[k] = c === (b.MSPOINTER_TYPE_TOUCH || k), d[l] = c === (b.MSPOINTER_TYPE_PEN || l), d[a] | ||
152 | }, reset: function () { | ||
153 | this.pointers = {} | ||
154 | }}, u = d.detection = {gestures: [], current: null, previous: null, stopped: !1, startDetect: function (a, b) { | ||
155 | this.current || (this.stopped = !1, this.current = {inst: a, startEvent: r.extend({}, b), lastEvent: !1, lastCalcEvent: !1, futureCalcEvent: !1, lastCalcData: {}, name: ""}, this.detect(b)) | ||
156 | }, detect: function (a) { | ||
157 | if (this.current && !this.stopped) { | ||
158 | a = this.extendEventData(a); | ||
159 | var b = this.current.inst, c = b.options; | ||
160 | return r.each(this.gestures, function (d) { | ||
161 | !this.stopped && b.enabled && c[d.name] && d.handler.call(d, a, b) | ||
162 | }, this), this.current && (this.current.lastEvent = a), a.eventType == o && this.stopDetect(), a | ||
163 | } | ||
164 | }, stopDetect: function () { | ||
165 | this.previous = r.extend({}, this.current), this.current = null, this.stopped = !0 | ||
166 | }, getCalculatedData: function (a, b, c, e, f) { | ||
167 | var g = this.current, h = !1, i = g.lastCalcEvent, j = g.lastCalcData; | ||
168 | i && a.timeStamp - i.timeStamp > d.CALCULATE_INTERVAL && (b = i.center, c = a.timeStamp - i.timeStamp, e = a.center.clientX - i.center.clientX, f = a.center.clientY - i.center.clientY, h = !0), (a.eventType == q || a.eventType == p) && (g.futureCalcEvent = a), (!g.lastCalcEvent || h) && (j.velocity = r.getVelocity(c, e, f), j.angle = r.getAngle(b, a.center), j.direction = r.getDirection(b, a.center), g.lastCalcEvent = g.futureCalcEvent || a, g.futureCalcEvent = a), a.velocityX = j.velocity.x, a.velocityY = j.velocity.y, a.interimAngle = j.angle, a.interimDirection = j.direction | ||
169 | }, extendEventData: function (a) { | ||
170 | var b = this.current, c = b.startEvent, d = b.lastEvent || c; | ||
171 | (a.eventType == q || a.eventType == p) && (c.touches = [], r.each(a.touches, function (a) { | ||
172 | c.touches.push({clientX: a.clientX, clientY: a.clientY}) | ||
173 | })); | ||
174 | var e = a.timeStamp - c.timeStamp, f = a.center.clientX - c.center.clientX, g = a.center.clientY - c.center.clientY; | ||
175 | return this.getCalculatedData(a, d.center, e, f, g), r.extend(a, {startEvent: c, deltaTime: e, deltaX: f, deltaY: g, distance: r.getDistance(c.center, a.center), angle: r.getAngle(c.center, a.center), direction: r.getDirection(c.center, a.center), scale: r.getScale(c.touches, a.touches), rotation: r.getRotation(c.touches, a.touches)}), a | ||
176 | }, register: function (a) { | ||
177 | var c = a.defaults || {}; | ||
178 | return c[a.name] === b && (c[a.name] = !0), r.extend(d.defaults, c, !0), a.index = a.index || 1e3, this.gestures.push(a), this.gestures.sort(function (a, b) { | ||
179 | return a.index < b.index ? -1 : a.index > b.index ? 1 : 0 | ||
180 | }), this.gestures | ||
181 | }}; | ||
182 | d.Instance = function (a, b) { | ||
183 | var e = this; | ||
184 | c(), this.element = a, this.enabled = !0, r.each(b, function (a, c) { | ||
185 | delete b[c], b[r.toCamelCase(c)] = a | ||
186 | }), this.options = r.extend(r.extend({}, d.defaults), b || {}), this.options.behavior && r.toggleBehavior(this.element, this.options.behavior, !0), this.eventStartHandler = s.onTouch(a, m, function (a) { | ||
187 | e.enabled && a.eventType == m ? u.startDetect(e, a) : a.eventType == q && u.detect(a) | ||
188 | }), this.eventHandlers = [] | ||
189 | }, d.Instance.prototype = {on: function (a, b) { | ||
190 | var c = this; | ||
191 | return s.on(c.element, a, b, function (a) { | ||
192 | c.eventHandlers.push({gesture: a, handler: b}) | ||
193 | }), c | ||
194 | }, off: function (a, b) { | ||
195 | var c = this; | ||
196 | return s.off(c.element, a, b, function (a) { | ||
197 | var d = r.inArray({gesture: a, handler: b}); | ||
198 | d !== !1 && c.eventHandlers.splice(d, 1) | ||
199 | }), c | ||
200 | }, trigger: function (a, b) { | ||
201 | b || (b = {}); | ||
202 | var c = d.DOCUMENT.createEvent("Event"); | ||
203 | c.initEvent(a, !0, !0), c.gesture = b; | ||
204 | var e = this.element; | ||
205 | return r.hasParent(b.target, e) && (e = b.target), e.dispatchEvent(c), this | ||
206 | }, enable: function (a) { | ||
207 | return this.enabled = a, this | ||
208 | }, dispose: function () { | ||
209 | var a, b; | ||
210 | for (r.toggleBehavior(this.element, this.options.behavior, !1), a = -1; b = this.eventHandlers[++a];)r.off(this.element, b.gesture, b.handler); | ||
211 | return this.eventHandlers = [], s.off(this.element, e[m], this.eventStartHandler), null | ||
212 | }}, function (a) { | ||
213 | function b(b, d) { | ||
214 | var e = u.current; | ||
215 | if (!(d.options.dragMaxTouches > 0 && b.touches.length > d.options.dragMaxTouches))switch (b.eventType) { | ||
216 | case m: | ||
217 | c = !1; | ||
218 | break; | ||
219 | case n: | ||
220 | if (b.distance < d.options.dragMinDistance && e.name != a)return; | ||
221 | var j = e.startEvent.center; | ||
222 | if (e.name != a && (e.name = a, d.options.dragDistanceCorrection && b.distance > 0)) { | ||
223 | var k = Math.abs(d.options.dragMinDistance / b.distance); | ||
224 | j.pageX += b.deltaX * k, j.pageY += b.deltaY * k, j.clientX += b.deltaX * k, j.clientY += b.deltaY * k, b = u.extendEventData(b) | ||
225 | } | ||
226 | (e.lastEvent.dragLockToAxis || d.options.dragLockToAxis && d.options.dragLockMinDistance <= b.distance) && (b.dragLockToAxis = !0); | ||
227 | var l = e.lastEvent.direction; | ||
228 | b.dragLockToAxis && l !== b.direction && (b.direction = r.isVertical(l) ? b.deltaY < 0 ? h : f : b.deltaX < 0 ? g : i), c || (d.trigger(a + "start", b), c = !0), d.trigger(a, b), d.trigger(a + b.direction, b); | ||
229 | var q = r.isVertical(b.direction); | ||
230 | (d.options.dragBlockVertical && q || d.options.dragBlockHorizontal && !q) && b.preventDefault(); | ||
231 | break; | ||
232 | case p: | ||
233 | c && b.changedLength <= d.options.dragMaxTouches && (d.trigger(a + "end", b), c = !1); | ||
234 | break; | ||
235 | case o: | ||
236 | c = !1 | ||
237 | } | ||
238 | } | ||
239 | |||
240 | var c = !1; | ||
241 | d.gestures.Drag = {name: a, index: 50, handler: b, defaults: {dragMinDistance: 10, dragDistanceCorrection: !0, dragMaxTouches: 1, dragBlockHorizontal: !1, dragBlockVertical: !1, dragLockToAxis: !1, dragLockMinDistance: 25}} | ||
242 | }("drag"), d.gestures.Gesture = {name: "gesture", index: 1337, handler: function (a, b) { | ||
243 | b.trigger(this.name, a) | ||
244 | }}, function (a) { | ||
245 | function b(b, d) { | ||
246 | var e = d.options, f = u.current; | ||
247 | switch (b.eventType) { | ||
248 | case m: | ||
249 | clearTimeout(c), f.name = a, c = setTimeout(function () { | ||
250 | f && f.name == a && d.trigger(a, b) | ||
251 | }, e.holdTimeout); | ||
252 | break; | ||
253 | case n: | ||
254 | b.distance > e.holdThreshold && clearTimeout(c); | ||
255 | break; | ||
256 | case p: | ||
257 | clearTimeout(c) | ||
258 | } | ||
259 | } | ||
260 | |||
261 | var c; | ||
262 | d.gestures.Hold = {name: a, index: 10, defaults: {holdTimeout: 500, holdThreshold: 2}, handler: b} | ||
263 | }("hold"), d.gestures.Release = {name: "release", index: 1 / 0, handler: function (a, b) { | ||
264 | a.eventType == p && b.trigger(this.name, a) | ||
265 | }}, d.gestures.Swipe = {name: "swipe", index: 40, defaults: {swipeMinTouches: 1, swipeMaxTouches: 1, swipeVelocityX: .6, swipeVelocityY: .6}, handler: function (a, b) { | ||
266 | if (a.eventType == p) { | ||
267 | var c = a.touches.length, d = b.options; | ||
268 | if (c < d.swipeMinTouches || c > d.swipeMaxTouches)return; | ||
269 | (a.velocityX > d.swipeVelocityX || a.velocityY > d.swipeVelocityY) && (b.trigger(this.name, a), b.trigger(this.name + a.direction, a)) | ||
270 | } | ||
271 | }}, function (a) { | ||
272 | function b(b, d) { | ||
273 | var e, f, g = d.options, h = u.current, i = u.previous; | ||
274 | switch (b.eventType) { | ||
275 | case m: | ||
276 | c = !1; | ||
277 | break; | ||
278 | case n: | ||
279 | c = c || b.distance > g.tapMaxDistance; | ||
280 | break; | ||
281 | case o: | ||
282 | !r.inStr(b.srcEvent.type, "cancel") && b.deltaTime < g.tapMaxTime && !c && (e = i && i.lastEvent && b.timeStamp - i.lastEvent.timeStamp, f = !1, i && i.name == a && e && e < g.doubleTapInterval && b.distance < g.doubleTapDistance && (d.trigger("doubletap", b), f = !0), (!f || g.tapAlways) && (h.name = a, d.trigger(h.name, b))) | ||
283 | } | ||
284 | } | ||
285 | |||
286 | var c = !1; | ||
287 | d.gestures.Tap = {name: a, index: 100, handler: b, defaults: {tapMaxTime: 250, tapMaxDistance: 10, tapAlways: !0, doubleTapDistance: 20, doubleTapInterval: 300}} | ||
288 | }("tap"), d.gestures.Touch = {name: "touch", index: -1 / 0, defaults: {preventDefault: !1, preventMouse: !1}, handler: function (a, b) { | ||
289 | return b.options.preventMouse && a.pointerType == j ? void a.stopDetect() : (b.options.preventDefault && a.preventDefault(), void(a.eventType == q && b.trigger("touch", a))) | ||
290 | }}, function (a) { | ||
291 | function b(b, d) { | ||
292 | switch (b.eventType) { | ||
293 | case m: | ||
294 | c = !1; | ||
295 | break; | ||
296 | case n: | ||
297 | if (b.touches.length < 2)return; | ||
298 | var e = Math.abs(1 - b.scale), f = Math.abs(b.rotation); | ||
299 | if (e < d.options.transformMinScale && f < d.options.transformMinRotation)return; | ||
300 | u.current.name = a, c || (d.trigger(a + "start", b), c = !0), d.trigger(a, b), f > d.options.transformMinRotation && d.trigger("rotate", b), e > d.options.transformMinScale && (d.trigger("pinch", b), d.trigger("pinch" + (b.scale < 1 ? "in" : "out"), b)); | ||
301 | break; | ||
302 | case p: | ||
303 | c && b.changedLength < 2 && (d.trigger(a + "end", b), c = !1) | ||
304 | } | ||
305 | } | ||
306 | |||
307 | var c = !1; | ||
308 | d.gestures.Transform = {name: a, index: 45, defaults: {transformMinScale: .01, transformMinRotation: 1}, handler: b} | ||
309 | }("transform"), "function" == typeof define && define.amd ? define(function () { | ||
310 | return d | ||
311 | }) : "undefined" != typeof module && module.exports ? module.exports = d : a.Hammer = d | ||
312 | }(window); | ||
313 | //# sourceMappingURL=hammer.min.map | ||
diff --git a/point/libs/hammerjs/hammer.min.map b/point/libs/hammerjs/hammer.min.map new file mode 100644 index 0000000..61db733 --- /dev/null +++ b/point/libs/hammerjs/hammer.min.map | |||
@@ -0,0 +1 @@ | |||
{"version": 3, "file": "hammer.min.js", "sources": ["hammer.js"], "names": ["window", "undefined", "setup", "Hammer", "READY", "Event", "determineEventTypes", "Utils", "each", "gestures", "gesture", "Detection", "register", "onTouch", "DOCUMENT", "EVENT_MOVE", "detect", "EVENT_END", "element", "options", "Instance", "VERSION", "defaults", "behavior", "userSelect", "touchAction", "touchCallout", "contentZooming", "userDrag", "tapHighlightColor", "document", "HAS_POINTEREVENTS", "navigator", "pointerEnabled", "msPointerEnabled", "HAS_TOUCHEVENTS", "IS_MOBILE", "test", "userAgent", "NO_MOUSEEVENTS", "CALCULATE_INTERVAL", "EVENT_TYPES", "DIRECTION_DOWN", "DIRECTION_LEFT", "DIRECTION_UP", "DIRECTION_RIGHT", "POINTER_MOUSE", "POINTER_TOUCH", "POINTER_PEN", "EVENT_START", "EVENT_RELEASE", "EVENT_TOUCH", "plugins", "utils", "extend", "dest", "src", "merge", "key", "hasOwnProperty", "on", "type", "handler", "addEventListener", "off", "removeEventListener", "obj", "iterator", "context", "i", "len", "forEach", "length", "call", "inStr", "find", "indexOf", "inArray", "index", "toArray", "Array", "prototype", "slice", "hasParent", "node", "parent", "parentNode", "getCenter", "touches", "pageX", "pageY", "clientX", "clientY", "min", "Math", "max", "touch", "push", "apply", "getVelocity", "deltaTime", "deltaX", "deltaY", "x", "abs", "y", "getAngle", "touch1", "touch2", "atan2", "PI", "getDirection", "getDistance", "sqrt", "getScale", "start", "end", "this", "getRotation", "isVertical", "direction", "setPrefixedCss", "prop", "value", "toggle", "prefixes", "toCamelCase", "p", "toUpperCase", "style", "toggleBehavior", "props", "falseFn", "onselectstart", "ondragstart", "str", "replace", "s", "event", "preventMouseEvents", "started", "shouldDetect", "hook", "types", "split", "eventType", "self", "onTouchHandler", "ev", "triggerType", "srcType", "toLowerCase", "isPointer", "isMouse", "button", "buttons", "PointerEvent", "matchType", "updatePointer", "doDetect", "reset", "touchList", "getTouchList", "touchListLength", "triggerChange", "trigger", "changedLength", "changedTouches", "evData", "collectEventData", "identifiers", "concat", "identifier", "pointerType", "center", "timeStamp", "Date", "now", "target", "srcEvent", "preventDefault", "preventManipulation", "stopPropagation", "stopDetect", "pointers", "touchlist", "pointer", "pointerEvent", "pointerId", "pt", "MSPOINTER_TYPE_MOUSE", "MSPOINTER_TYPE_TOUCH", "MSPOINTER_TYPE_PEN", "detection", "current", "previous", "stopped", "startDetect", "inst", "eventData", "startEvent", "lastEvent", "lastCalcEvent", "futureCalcEvent", "lastCalcData", "name", "extendEventData", "instOptions", "enabled", "getCalculatedData", "cur", "recalc", "calcEv", "calcData", "velocity", "angle", "velocityX", "velocityY", "interimAngle", "interimDirection", "startEv", "lastEv", "distance", "scale", "rotation", "sort", "a", "b", "eventStartHandler", "eventHandlers", "splice", "createEvent", "initEvent", "dispatchEvent", "enable", "state", "dispose", "eh", "dragGesture", "dragMaxTouches", "triggered", "dragMinDistance", "startCenter", "dragDistanceCorrection", "factor", "dragLockToAxis", "dragLockMinDistance", "lastDirection", "dragBlockVertical", "dragBlockHorizontal", "Drag", "Gesture", "holdGesture", "clearTimeout", "timer", "setTimeout", "holdTimeout", "holdThreshold", "Hold", "Release", "Infinity", "Swipe", "swipeMinTouches", "swipeMaxTouches", "swipeVelocityX", "swipeVelocityY", "tapGesture", "sincePrev", "didDoubleTap", "prev", "hasMoved", "tapMaxDistance", "tapMaxTime", "doubleTapInterval", "doubleTapDistance", "tapAlways", "Tap", "Touch", "preventMouse", "transformGesture", "scaleThreshold", "rotationThreshold", "transformMinScale", "transformMinRotation", "Transform", "define", "amd", "module", "exports"], "mappings": "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"} \ No newline at end of file | |||
diff --git a/point/libs/js-yaml/js-yaml.min.js b/point/libs/js-yaml/js-yaml.min.js new file mode 100644 index 0000000..bd05e77 --- /dev/null +++ b/point/libs/js-yaml/js-yaml.min.js | |||
@@ -0,0 +1,880 @@ | |||
1 | /* js-yaml 3.0.2 https://github.com/nodeca/js-yaml */ | ||
2 | !function (e) { | ||
3 | "object" == typeof exports ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : "undefined" != typeof window ? window.jsyaml = e() : "undefined" != typeof global ? global.jsyaml = e() : "undefined" != typeof self && (self.jsyaml = e()) | ||
4 | }(function () { | ||
5 | return function e(t, r, n) { | ||
6 | function a(c, o) { | ||
7 | if (!r[c]) { | ||
8 | if (!t[c]) { | ||
9 | var s = "function" == typeof require && require; | ||
10 | if (!o && s)return s(c, !0); | ||
11 | if (i)return i(c, !0); | ||
12 | throw new Error("Cannot find module '" + c + "'") | ||
13 | } | ||
14 | var l = r[c] = {exports: {}}; | ||
15 | t[c][0].call(l.exports, function (e) { | ||
16 | var r = t[c][1][e]; | ||
17 | return a(r ? r : e) | ||
18 | }, l, l.exports, e, t, r, n) | ||
19 | } | ||
20 | return r[c].exports | ||
21 | } | ||
22 | |||
23 | for (var i = "function" == typeof require && require, c = 0; c < n.length; c++)a(n[c]); | ||
24 | return a | ||
25 | }({1: [function (e, t) { | ||
26 | "use strict"; | ||
27 | var r = e("./lib/js-yaml.js"); | ||
28 | t.exports = r | ||
29 | }, {"./lib/js-yaml.js": 2}], 2: [function (e, t) { | ||
30 | "use strict"; | ||
31 | function r(e) { | ||
32 | return function () { | ||
33 | throw new Error("Function " + e + " is deprecated and cannot be used.") | ||
34 | } | ||
35 | } | ||
36 | |||
37 | var n = e("./js-yaml/loader"), a = e("./js-yaml/dumper"); | ||
38 | t.exports.Type = e("./js-yaml/type"), t.exports.Schema = e("./js-yaml/schema"), t.exports.FAILSAFE_SCHEMA = e("./js-yaml/schema/failsafe"), t.exports.JSON_SCHEMA = e("./js-yaml/schema/json"), t.exports.CORE_SCHEMA = e("./js-yaml/schema/core"), t.exports.DEFAULT_SAFE_SCHEMA = e("./js-yaml/schema/default_safe"), t.exports.DEFAULT_FULL_SCHEMA = e("./js-yaml/schema/default_full"), t.exports.load = n.load, t.exports.loadAll = n.loadAll, t.exports.safeLoad = n.safeLoad, t.exports.safeLoadAll = n.safeLoadAll, t.exports.dump = a.dump, t.exports.safeDump = a.safeDump, t.exports.YAMLException = e("./js-yaml/exception"), t.exports.MINIMAL_SCHEMA = e("./js-yaml/schema/failsafe"), t.exports.SAFE_SCHEMA = e("./js-yaml/schema/default_safe"), t.exports.DEFAULT_SCHEMA = e("./js-yaml/schema/default_full"), t.exports.scan = r("scan"), t.exports.parse = r("parse"), t.exports.compose = r("compose"), t.exports.addConstructor = r("addConstructor") | ||
39 | }, {"./js-yaml/dumper": 4, "./js-yaml/exception": 5, "./js-yaml/loader": 6, "./js-yaml/schema": 8, "./js-yaml/schema/core": 9, "./js-yaml/schema/default_full": 10, "./js-yaml/schema/default_safe": 11, "./js-yaml/schema/failsafe": 12, "./js-yaml/schema/json": 13, "./js-yaml/type": 14}], 3: [function (e, t) { | ||
40 | "use strict"; | ||
41 | function r(e) { | ||
42 | return void 0 === e || null === e | ||
43 | } | ||
44 | |||
45 | function n(e) { | ||
46 | return"object" == typeof e && null !== e | ||
47 | } | ||
48 | |||
49 | function a(e) { | ||
50 | return Array.isArray(e) ? e : r(e) ? [] : [e] | ||
51 | } | ||
52 | |||
53 | function i(e, t) { | ||
54 | var r, n, a, i; | ||
55 | if (t)for (i = Object.keys(t), r = 0, n = i.length; n > r; r += 1)a = i[r], e[a] = t[a]; | ||
56 | return e | ||
57 | } | ||
58 | |||
59 | function c(e, t) { | ||
60 | var r, n = ""; | ||
61 | for (r = 0; t > r; r += 1)n += e; | ||
62 | return n | ||
63 | } | ||
64 | |||
65 | t.exports.isNothing = r, t.exports.isObject = n, t.exports.toArray = a, t.exports.repeat = c, t.exports.extend = i | ||
66 | }, {}], 4: [function (e, t) { | ||
67 | "use strict"; | ||
68 | function r(e, t) { | ||
69 | var r, n, a, i, c, o, s; | ||
70 | if (null === t)return{}; | ||
71 | for (r = {}, n = Object.keys(t), a = 0, i = n.length; i > a; a += 1)c = n[a], o = String(t[c]), "!!" === c.slice(0, 2) && (c = "tag:yaml.org,2002:" + c.slice(2)), s = e.compiledTypeMap[c], s && b.call(s.dumpStyleAliases, o) && (o = s.dumpStyleAliases[o]), r[c] = o; | ||
72 | return r | ||
73 | } | ||
74 | |||
75 | function n(e) { | ||
76 | var t, r, n; | ||
77 | if (t = e.toString(16).toUpperCase(), 255 >= e)r = "x", n = 2; else if (65535 >= e)r = "u", n = 4; else { | ||
78 | if (!(4294967295 >= e))throw new y("code point within a string may not be greater than 0xFFFFFFFF"); | ||
79 | r = "U", n = 8 | ||
80 | } | ||
81 | return"\\" + r + g.repeat("0", n - t.length) + t | ||
82 | } | ||
83 | |||
84 | function a(e) { | ||
85 | this.schema = e.schema || x, this.indent = Math.max(1, e.indent || 2), this.skipInvalid = e.skipInvalid || !1, this.flowLevel = g.isNothing(e.flowLevel) ? -1 : e.flowLevel, this.styleMap = r(this.schema, e.styles || null), this.implicitTypes = this.schema.compiledImplicit, this.explicitTypes = this.schema.compiledExplicit, this.tag = null, this.result = "" | ||
86 | } | ||
87 | |||
88 | function i(e, t) { | ||
89 | return"\n" + g.repeat(" ", e.indent * t) | ||
90 | } | ||
91 | |||
92 | function c(e, t) { | ||
93 | var r, n, a; | ||
94 | for (r = 0, n = e.implicitTypes.length; n > r; r += 1)if (a = e.implicitTypes[r], a.loadResolver && a.loadResolver({result: t}))return!0; | ||
95 | return!1 | ||
96 | } | ||
97 | |||
98 | function o(e, t) { | ||
99 | var r, a, i, o, s, l; | ||
100 | for (e.dump = "", r = !1, a = 0, l = t.charCodeAt(0) || 0, -1 !== G.indexOf(t) ? r = !0 : 0 === t.length ? r = !0 : S === l || S === t.charCodeAt(t.length - 1) ? r = !0 : (N === l || K === l) && (r = !0), i = 0, o = t.length; o > i; i += 1)s = t.charCodeAt(i), r || (w === s || C === s || j === s || M === s || D === s || Y === s || U === s || B === s || O === s || F === s || L === s || I === s || H === s || _ === s || R === s || k === s || E === s || P === s || T === s || q === s) && (r = !0), ($[s] || !(s >= 32 && 126 >= s || 133 === s || s >= 160 && 55295 >= s || s >= 57344 && 65533 >= s || s >= 65536 && 1114111 >= s)) && (e.dump += t.slice(a, i), e.dump += $[s] || n(s), a = i + 1, r = !0); | ||
101 | i > a && (e.dump += t.slice(a, i)), !r && c(e, e.dump) && (r = !0), r && (e.dump = '"' + e.dump + '"') | ||
102 | } | ||
103 | |||
104 | function s(e, t, r) { | ||
105 | var n, a, i = "", c = e.tag; | ||
106 | for (n = 0, a = r.length; a > n; n += 1)f(e, t, r[n], !1, !1) && (0 !== n && (i += ", "), i += e.dump); | ||
107 | e.tag = c, e.dump = "[" + i + "]" | ||
108 | } | ||
109 | |||
110 | function l(e, t, r, n) { | ||
111 | var a, c, o = "", s = e.tag; | ||
112 | for (a = 0, c = r.length; c > a; a += 1)f(e, t + 1, r[a], !0, !0) && (n && 0 === a || (o += i(e, t)), o += "- " + e.dump); | ||
113 | e.tag = s, e.dump = o || "[]" | ||
114 | } | ||
115 | |||
116 | function u(e, t, r) { | ||
117 | var n, a, i, c, o, s = "", l = e.tag, u = Object.keys(r); | ||
118 | for (n = 0, a = u.length; a > n; n += 1)o = "", 0 !== n && (o += ", "), i = u[n], c = r[i], f(e, t, i, !1, !1) && (e.dump.length > 1024 && (o += "? "), o += e.dump + ": ", f(e, t, c, !1, !1) && (o += e.dump, s += o)); | ||
119 | e.tag = l, e.dump = "{" + s + "}" | ||
120 | } | ||
121 | |||
122 | function p(e, t, r, n) { | ||
123 | var a, c, o, s, l, u, p = "", h = e.tag, d = Object.keys(r); | ||
124 | for (a = 0, c = d.length; c > a; a += 1)u = "", n && 0 === a || (u += i(e, t)), o = d[a], s = r[o], f(e, t + 1, o, !0, !0) && (l = null !== e.tag && "?" !== e.tag || e.dump && e.dump.length > 1024, l && (u += e.dump && C === e.dump.charCodeAt(0) ? "?" : "? "), u += e.dump, l && (u += i(e, t)), f(e, t + 1, s, !0, l) && (u += e.dump && C === e.dump.charCodeAt(0) ? ":" : ": ", u += e.dump, p += u)); | ||
125 | e.tag = h, e.dump = p || "{}" | ||
126 | } | ||
127 | |||
128 | function h(e, t, r) { | ||
129 | var n, a, i, c, o, s; | ||
130 | for (a = r ? e.explicitTypes : e.implicitTypes, i = 0, c = a.length; c > i; i += 1)if (o = a[i], (o.dumpInstanceOf || o.dumpPredicate) && (!o.dumpInstanceOf || "object" == typeof t && t instanceof o.dumpInstanceOf) && (!o.dumpPredicate || o.dumpPredicate(t))) { | ||
131 | if (e.tag = r ? o.tag : "?", o.dumpRepresenter) { | ||
132 | if (s = e.styleMap[o.tag] || o.dumpDefaultStyle, "[object Function]" === A.call(o.dumpRepresenter))n = o.dumpRepresenter(t, s); else { | ||
133 | if (!b.call(o.dumpRepresenter, s))throw new y("!<" + o.tag + '> tag resolver accepts not "' + s + '" style'); | ||
134 | n = o.dumpRepresenter[s](t, s) | ||
135 | } | ||
136 | e.dump = n | ||
137 | } | ||
138 | return!0 | ||
139 | } | ||
140 | return!1 | ||
141 | } | ||
142 | |||
143 | function f(e, t, r, n, a) { | ||
144 | e.tag = null, e.dump = r, h(e, r, !1) || h(e, r, !0); | ||
145 | var i = A.call(e.dump); | ||
146 | if (n && (n = 0 > e.flowLevel || e.flowLevel > t), (null !== e.tag && "?" !== e.tag || 2 !== e.indent && t > 0) && (a = !1), "[object Object]" === i)n && 0 !== Object.keys(e.dump).length ? p(e, t, e.dump, a) : u(e, t, e.dump); else if ("[object Array]" === i)n && 0 !== e.dump.length ? l(e, t, e.dump, a) : s(e, t, e.dump); else { | ||
147 | if ("[object String]" !== i) { | ||
148 | if (e.skipInvalid)return!1; | ||
149 | throw new y("unacceptabe kind of an object to dump " + i) | ||
150 | } | ||
151 | "?" !== e.tag && o(e, e.dump) | ||
152 | } | ||
153 | return null !== e.tag && "?" !== e.tag && (e.dump = "!<" + e.tag + "> " + e.dump), !0 | ||
154 | } | ||
155 | |||
156 | function d(e, t) { | ||
157 | t = t || {}; | ||
158 | var r = new a(t); | ||
159 | return f(r, 0, e, !0, !0) ? r.dump + "\n" : "" | ||
160 | } | ||
161 | |||
162 | function m(e, t) { | ||
163 | return d(e, g.extend({schema: v}, t)) | ||
164 | } | ||
165 | |||
166 | var g = e("./common"), y = e("./exception"), x = e("./schema/default_full"), v = e("./schema/default_safe"), A = Object.prototype.toString, b = Object.prototype.hasOwnProperty, w = 9, C = 10, j = 13, S = 32, I = 33, k = 34, O = 35, E = 37, F = 38, R = 39, L = 42, M = 44, N = 45, T = 58, _ = 62, K = 63, P = 64, D = 91, Y = 93, q = 96, U = 123, H = 124, B = 125, $ = {}; | ||
167 | $[0] = "\\0", $[7] = "\\a", $[8] = "\\b", $[9] = "\\t", $[10] = "\\n", $[11] = "\\v", $[12] = "\\f", $[13] = "\\r", $[27] = "\\e", $[34] = '\\"', $[92] = "\\\\", $[133] = "\\N", $[160] = "\\_", $[8232] = "\\L", $[8233] = "\\P"; | ||
168 | var G = ["y", "Y", "yes", "Yes", "YES", "on", "On", "ON", "n", "N", "no", "No", "NO", "off", "Off", "OFF"]; | ||
169 | t.exports.dump = d, t.exports.safeDump = m | ||
170 | }, {"./common": 3, "./exception": 5, "./schema/default_full": 10, "./schema/default_safe": 11}], 5: [function (e, t) { | ||
171 | "use strict"; | ||
172 | function r(e, t) { | ||
173 | this.name = "YAMLException", this.reason = e, this.mark = t, this.message = this.toString(!1) | ||
174 | } | ||
175 | |||
176 | r.prototype.toString = function (e) { | ||
177 | var t; | ||
178 | return t = "JS-YAML: " + (this.reason || "(unknown reason)"), !e && this.mark && (t += " " + this.mark.toString()), t | ||
179 | }, t.exports = r | ||
180 | }, {}], 6: [function (e, t) { | ||
181 | "use strict"; | ||
182 | function r(e, t) { | ||
183 | this.input = e, this.filename = t.filename || null, this.schema = t.schema || M, this.strict = t.strict || !1, this.legacy = t.legacy || !1, this.implicitTypes = this.schema.compiledImplicit, this.typeMap = this.schema.compiledTypeMap, this.length = e.length, this.position = 0, this.line = 0, this.lineStart = 0, this.lineIndent = 0, this.character = e.charCodeAt(0) | ||
184 | } | ||
185 | |||
186 | function n(e, t) { | ||
187 | return new F(t, new R(e.filename, e.input, e.position, e.line, e.position - e.lineStart)) | ||
188 | } | ||
189 | |||
190 | function a(e, t) { | ||
191 | throw n(e, t) | ||
192 | } | ||
193 | |||
194 | function i(e, t) { | ||
195 | var r = n(e, t); | ||
196 | if (e.strict)throw r; | ||
197 | console.warn(r.toString()) | ||
198 | } | ||
199 | |||
200 | function c(e, t, r, n) { | ||
201 | var i, c, o, s; | ||
202 | if (r > t) { | ||
203 | if (s = e.input.slice(t, r), n)for (i = 0, c = s.length; c > i; i += 1)o = s.charCodeAt(i), 9 === o || o >= 32 && 1114111 >= o || a(e, "expected valid JSON character"); | ||
204 | e.result += s | ||
205 | } | ||
206 | } | ||
207 | |||
208 | function o(e, t, r) { | ||
209 | var n, i, c, o; | ||
210 | for (E.isObject(r) || a(e, "cannot merge mappings; the provided source object is unacceptable"), n = Object.keys(r), c = 0, o = n.length; o > c; c += 1)i = n[c], N.call(t, i) || (t[i] = r[i]) | ||
211 | } | ||
212 | |||
213 | function s(e, t, r, n, a) { | ||
214 | var i, c; | ||
215 | if (n = String(n), null === t && (t = {}), "tag:yaml.org,2002:merge" === r)if (Array.isArray(a))for (i = 0, c = a.length; c > i; i += 1)o(e, t, a[i]); else o(e, t, a); else t[n] = a; | ||
216 | return t | ||
217 | } | ||
218 | |||
219 | function l(e) { | ||
220 | H === e.character ? e.position += 1 : B === e.character ? e.position += H === e.input.charCodeAt(e.position + 1) ? 2 : 1 : a(e, "a line break is expected"), e.line += 1, e.lineStart = e.position, e.character = e.input.charCodeAt(e.position) | ||
221 | } | ||
222 | |||
223 | function u(e, t, r) { | ||
224 | for (var n = 0; e.position < e.length;) { | ||
225 | for (; $ === e.character || U === e.character;)e.character = e.input.charCodeAt(++e.position); | ||
226 | if (t && J === e.character)do e.character = e.input.charCodeAt(++e.position); while (e.position < e.length && H !== e.character && B !== e.character); | ||
227 | if (H !== e.character && B !== e.character)break; | ||
228 | for (l(e), n += 1, e.lineIndent = 0; $ === e.character;)e.lineIndent += 1, e.character = e.input.charCodeAt(++e.position); | ||
229 | e.lineIndent < r && i(e, "deficient indentation") | ||
230 | } | ||
231 | return n | ||
232 | } | ||
233 | |||
234 | function p(e) { | ||
235 | var t, r; | ||
236 | return e.position === e.lineStart && (tt === e.character || rt === e.character) && e.input.charCodeAt(e.position + 1) === e.character && e.input.charCodeAt(e.position + 2) === e.character && (t = e.position + 3, r = e.input.charCodeAt(t), t >= e.length || $ === r || U === r || H === r || B === r) ? !0 : !1 | ||
237 | } | ||
238 | |||
239 | function h(e, t) { | ||
240 | 1 === t ? e.result += " " : t > 1 && (e.result += E.repeat("\n", t - 1)) | ||
241 | } | ||
242 | |||
243 | function f(e, t, r) { | ||
244 | var n, a, i, o, s, l, f, d, m = e.kind, g = e.result; | ||
245 | if ($ === e.character || U === e.character || H === e.character || B === e.character || et === e.character || xt === e.character || At === e.character || Mt === e.character || Tt === e.character || J === e.character || Z === e.character || Q === e.character || G === e.character || Nt === e.character || lt === e.character || W === e.character || V === e.character || z === e.character || pt === e.character || wt === e.character)return!1; | ||
246 | if ((ut === e.character || tt === e.character) && (a = e.input.charCodeAt(e.position + 1), $ === a || U === a || H === a || B === a || r && (et === a || xt === a || At === a || Mt === a || Tt === a)))return!1; | ||
247 | for (e.kind = "scalar", e.result = "", i = o = e.position, s = !1; e.position < e.length;) { | ||
248 | if (ot === e.character) { | ||
249 | if (a = e.input.charCodeAt(e.position + 1), $ === a || U === a || H === a || B === a || r && (et === a || xt === a || At === a || Mt === a || Tt === a))break | ||
250 | } else if (J === e.character) { | ||
251 | if (n = e.input.charCodeAt(e.position - 1), $ === n || U === n || H === n || B === n)break | ||
252 | } else { | ||
253 | if (e.position === e.lineStart && p(e) || r && (et === e.character || xt === e.character || At === e.character || Mt === e.character || Tt === e.character))break; | ||
254 | if (H === e.character || B === e.character) { | ||
255 | if (l = e.line, f = e.lineStart, d = e.lineIndent, u(e, !1, -1), e.lineIndent >= t) { | ||
256 | s = !0; | ||
257 | continue | ||
258 | } | ||
259 | e.position = o, e.line = l, e.lineStart = f, e.lineIndent = d, e.character = e.input.charCodeAt(e.position); | ||
260 | break | ||
261 | } | ||
262 | } | ||
263 | s && (c(e, i, o, !1), h(e, e.line - l), i = o = e.position, s = !1), $ !== e.character && U !== e.character && (o = e.position + 1), e.character = e.input.charCodeAt(++e.position) | ||
264 | } | ||
265 | return c(e, i, o, !1), e.result ? !0 : (e.kind = m, e.result = g, !1) | ||
266 | } | ||
267 | |||
268 | function d(e, t) { | ||
269 | var r, n; | ||
270 | if (W !== e.character)return!1; | ||
271 | for (e.kind = "scalar", e.result = "", e.character = e.input.charCodeAt(++e.position), r = n = e.position; e.position < e.length;)if (W === e.character) { | ||
272 | if (c(e, r, e.position, !0), e.character = e.input.charCodeAt(++e.position), W !== e.character)return!0; | ||
273 | r = n = e.position, e.character = e.input.charCodeAt(++e.position) | ||
274 | } else H === e.character || B === e.character ? (c(e, r, n, !0), h(e, u(e, !1, t)), r = n = e.position, e.character = e.input.charCodeAt(e.position)) : e.position === e.lineStart && p(e) ? a(e, "unexpected end of the document within a single quoted scalar") : (e.character = e.input.charCodeAt(++e.position), n = e.position); | ||
275 | a(e, "unexpected end of the stream within a single quoted scalar") | ||
276 | } | ||
277 | |||
278 | function m(e, t) { | ||
279 | var r, n, i, o, s, l; | ||
280 | if (V !== e.character)return!1; | ||
281 | for (e.kind = "scalar", e.result = "", e.character = e.input.charCodeAt(++e.position), r = n = e.position; e.position < e.length;) { | ||
282 | if (V === e.character)return c(e, r, e.position, !0), e.character = e.input.charCodeAt(++e.position), !0; | ||
283 | if (vt === e.character) { | ||
284 | if (c(e, r, e.position, !0), e.character = e.input.charCodeAt(++e.position), H === e.character || B === e.character)u(e, !1, t); else if (_t[e.character])e.result += _t[e.character], e.character = e.input.charCodeAt(++e.position); else if (Kt[e.character]) { | ||
285 | for (i = Kt[e.character], l = 0, o = 1; i >= o; o += 1)s = 4 * (i - o), e.character = e.input.charCodeAt(++e.position), at <= e.character && e.character <= ct ? l |= e.character - at << s : ht <= e.character && e.character <= ft ? l |= e.character - ht + 10 << s : Ct <= e.character && e.character <= It ? l |= e.character - Ct + 10 << s : a(e, "expected hexadecimal character"); | ||
286 | e.result += String.fromCharCode(l), e.character = e.input.charCodeAt(++e.position) | ||
287 | } else a(e, "unknown escape sequence"); | ||
288 | r = n = e.position | ||
289 | } else H === e.character || B === e.character ? (c(e, r, n, !0), h(e, u(e, !1, t)), r = n = e.position, e.character = e.input.charCodeAt(e.position)) : e.position === e.lineStart && p(e) ? a(e, "unexpected end of the document within a double quoted scalar") : (e.character = e.input.charCodeAt(++e.position), n = e.position) | ||
290 | } | ||
291 | a(e, "unexpected end of the stream within a double quoted scalar") | ||
292 | } | ||
293 | |||
294 | function g(e, t) { | ||
295 | var r, n, i, c, o, l, p, h, f, d, m = !0, g = e.tag; | ||
296 | switch (e.character) { | ||
297 | case xt: | ||
298 | c = At, p = !1, n = []; | ||
299 | break; | ||
300 | case Mt: | ||
301 | c = Tt, p = !0, n = {}; | ||
302 | break; | ||
303 | default: | ||
304 | return!1 | ||
305 | } | ||
306 | for (null !== e.anchor && (e.anchorMap[e.anchor] = n), e.character = e.input.charCodeAt(++e.position); e.position < e.length;) { | ||
307 | if (u(e, !0, t), e.character === c)return e.character = e.input.charCodeAt(++e.position), e.tag = g, e.kind = p ? "mapping" : "sequence", e.result = n, !0; | ||
308 | m || a(e, "missed comma between flow collection entries"), f = h = d = null, o = l = !1, ut === e.character && (i = e.input.charCodeAt(e.position + 1), ($ === i || U === i || H === i || B === i) && (o = l = !0, e.position += 1, e.character = i, u(e, !0, t))), r = e.line, C(e, t, T, !1, !0), f = e.tag, h = e.result, u(e, !0, t), !l && e.line !== r || ot !== e.character || (o = !0, e.character = e.input.charCodeAt(++e.position), u(e, !0, t), C(e, t, T, !1, !0), d = e.result), p ? s(e, n, f, h, d) : o ? n.push(s(e, null, f, h, d)) : n.push(h), u(e, !0, t), et === e.character ? (m = !0, e.character = e.input.charCodeAt(++e.position)) : m = !1 | ||
309 | } | ||
310 | a(e, "unexpected end of the stream within a flow collection") | ||
311 | } | ||
312 | |||
313 | function y(e, t) { | ||
314 | var r, n, i = D, o = !1, s = t, u = 0, p = !1; | ||
315 | switch (e.character) { | ||
316 | case Nt: | ||
317 | n = !1; | ||
318 | break; | ||
319 | case lt: | ||
320 | n = !0; | ||
321 | break; | ||
322 | default: | ||
323 | return!1 | ||
324 | } | ||
325 | for (e.kind = "scalar", e.result = ""; e.position < e.length;)if (e.character = e.input.charCodeAt(++e.position), X === e.character || tt === e.character)D === i ? i = X === e.character ? q : Y : a(e, "repeat of a chomping mode identifier"); else { | ||
326 | if (!(at <= e.character && e.character <= ct))break; | ||
327 | at === e.character ? a(e, "bad explicit indentation width of a block scalar; it cannot be less than one") : o ? a(e, "repeat of an indentation width identifier") : (s = t + (e.character - it), o = !0) | ||
328 | } | ||
329 | if ($ === e.character || U === e.character) { | ||
330 | do e.character = e.input.charCodeAt(++e.position); while ($ === e.character || U === e.character); | ||
331 | if (J === e.character)do e.character = e.input.charCodeAt(++e.position); while (e.position < e.length && H !== e.character && B !== e.character) | ||
332 | } | ||
333 | for (; e.position < e.length;) { | ||
334 | for (l(e), e.lineIndent = 0; (!o || e.lineIndent < s) && $ === e.character;)e.lineIndent += 1, e.character = e.input.charCodeAt(++e.position); | ||
335 | if (!o && e.lineIndent > s && (s = e.lineIndent), H !== e.character && B !== e.character) { | ||
336 | if (e.lineIndent < s) { | ||
337 | switch (i) { | ||
338 | case q: | ||
339 | e.result += E.repeat("\n", u); | ||
340 | break; | ||
341 | case D: | ||
342 | o && (e.result += "\n") | ||
343 | } | ||
344 | break | ||
345 | } | ||
346 | n ? $ === e.character || U === e.character ? (p = !0, e.result += E.repeat("\n", u + 1)) : p ? (p = !1, e.result += E.repeat("\n", u + 1)) : 0 === u ? o && (e.result += " ") : e.result += E.repeat("\n", u) : e.result += o ? E.repeat("\n", u + 1) : E.repeat("\n", u), o = !0, u = 0, r = e.position; | ||
347 | do e.character = e.input.charCodeAt(++e.position); while (e.position < e.length && H !== e.character && B !== e.character); | ||
348 | c(e, r, e.position, !1) | ||
349 | } else u += 1 | ||
350 | } | ||
351 | return!0 | ||
352 | } | ||
353 | |||
354 | function x(e, t) { | ||
355 | var r, n, i = e.tag, c = [], o = !1; | ||
356 | for (null !== e.anchor && (e.anchorMap[e.anchor] = c); e.position < e.length && tt === e.character && (n = e.input.charCodeAt(e.position + 1), $ === n || U === n || H === n || B === n);)if (o = !0, e.position += 1, e.character = n, u(e, !0, -1) && e.lineIndent <= t)c.push(null); else if (r = e.line, C(e, t, K, !1, !0), c.push(e.result), u(e, !0, -1), (e.line === r || e.lineIndent > t) && e.position < e.length)a(e, "bad indentation of a sequence entry"); else if (e.lineIndent < t)break; | ||
357 | return o ? (e.tag = i, e.kind = "sequence", e.result = c, !0) : !1 | ||
358 | } | ||
359 | |||
360 | function v(e, t) { | ||
361 | var r, n, i, c = e.tag, o = {}, l = null, p = null, h = null, f = !1, d = !1; | ||
362 | for (null !== e.anchor && (e.anchorMap[e.anchor] = o); e.position < e.length;) { | ||
363 | if (r = e.input.charCodeAt(e.position + 1), i = e.line, ut !== e.character && ot !== e.character || $ !== r && U !== r && H !== r && B !== r) { | ||
364 | if (!C(e, t, _, !1, !0))break; | ||
365 | if (e.line === i) { | ||
366 | for (; $ === e.character || U === e.character;)e.character = e.input.charCodeAt(++e.position); | ||
367 | if (ot === e.character)e.character = e.input.charCodeAt(++e.position), $ !== e.character && U !== e.character && H !== e.character && B !== e.character && a(e, "a whitespace character is expected after the key-value separator within a block mapping"), f && (s(e, o, l, p, null), l = p = h = null), d = !0, f = !1, n = !1, l = e.tag, p = e.result; else { | ||
368 | if (!d)return e.tag = c, !0; | ||
369 | a(e, "can not read an implicit mapping pair; a colon is missed") | ||
370 | } | ||
371 | } else { | ||
372 | if (!d)return e.tag = c, !0; | ||
373 | a(e, "can not read a block mapping entry; a multiline key may not be an implicit key") | ||
374 | } | ||
375 | } else ut === e.character ? (f && (s(e, o, l, p, null), l = p = h = null), d = !0, f = !0, n = !0) : f ? (f = !1, n = !0) : a(e, "incomplete explicit mapping pair; a key node is missed"), e.position += 1, e.character = r; | ||
376 | if ((e.line === i || e.lineIndent > t) && (C(e, t, P, !0, n) && (f ? p = e.result : h = e.result), f || (s(e, o, l, p, h), l = p = h = null), u(e, !0, -1)), e.lineIndent > t && e.position < e.length)a(e, "bad indentation of a mapping entry"); else if (e.lineIndent < t)break | ||
377 | } | ||
378 | return f && s(e, o, l, p, null), d && (e.tag = c, e.kind = "mapping", e.result = o), d | ||
379 | } | ||
380 | |||
381 | function A(e) { | ||
382 | var t, r, n, i = !1, c = !1; | ||
383 | if (G !== e.character)return!1; | ||
384 | if (null !== e.tag && a(e, "duplication of a tag property"), e.character = e.input.charCodeAt(++e.position), st === e.character ? (i = !0, e.character = e.input.charCodeAt(++e.position)) : G === e.character ? (c = !0, r = "!!", e.character = e.input.charCodeAt(++e.position)) : r = "!", t = e.position, i) { | ||
385 | do e.character = e.input.charCodeAt(++e.position); while (e.position < e.length && lt !== e.character); | ||
386 | e.position < e.length ? (n = e.input.slice(t, e.position), e.character = e.input.charCodeAt(++e.position)) : a(e, "unexpected end of the stream within a verbatim tag") | ||
387 | } else { | ||
388 | for (; e.position < e.length && $ !== e.character && U !== e.character && H !== e.character && B !== e.character;)G === e.character && (c ? a(e, "tag suffix cannot contain exclamation marks") : (r = e.input.slice(t - 1, e.position + 1), qt.test(r) || a(e, "named tag handle cannot contain such characters"), c = !0, t = e.position + 1)), e.character = e.input.charCodeAt(++e.position); | ||
389 | n = e.input.slice(t, e.position), Yt.test(n) && a(e, "tag suffix cannot contain flow indicator characters") | ||
390 | } | ||
391 | return n && !Ut.test(n) && a(e, "tag name cannot contain such characters: " + n), i ? e.tag = n : N.call(e.tagMap, r) ? e.tag = e.tagMap[r] + n : "!" === r ? e.tag = "!" + n : "!!" === r ? e.tag = "tag:yaml.org,2002:" + n : a(e, 'undeclared tag handle "' + r + '"'), !0 | ||
392 | } | ||
393 | |||
394 | function b(e) { | ||
395 | var t; | ||
396 | if (Z !== e.character)return!1; | ||
397 | for (null !== e.anchor && a(e, "duplication of an anchor property"), e.character = e.input.charCodeAt(++e.position), t = e.position; e.position < e.length && $ !== e.character && U !== e.character && H !== e.character && B !== e.character && et !== e.character && xt !== e.character && At !== e.character && Mt !== e.character && Tt !== e.character;)e.character = e.input.charCodeAt(++e.position); | ||
398 | return e.position === t && a(e, "name of an anchor node must contain at least one character"), e.anchor = e.input.slice(t, e.position), !0 | ||
399 | } | ||
400 | |||
401 | function w(e) { | ||
402 | var t, r; | ||
403 | if (Q !== e.character)return!1; | ||
404 | for (e.character = e.input.charCodeAt(++e.position), t = e.position; e.position < e.length && $ !== e.character && U !== e.character && H !== e.character && B !== e.character && et !== e.character && xt !== e.character && At !== e.character && Mt !== e.character && Tt !== e.character;)e.character = e.input.charCodeAt(++e.position); | ||
405 | return e.position === t && a(e, "name of an alias node must contain at least one character"), r = e.input.slice(t, e.position), e.anchorMap.hasOwnProperty(r) || a(e, 'unidentified alias "' + r + '"'), e.result = e.anchorMap[r], u(e, !0, -1), !0 | ||
406 | } | ||
407 | |||
408 | function C(e, t, r, n, c) { | ||
409 | var o, s, l, p, h, C, j, S, I = !1, k = !0, O = !1; | ||
410 | if (e.tag = null, e.anchor = null, e.kind = null, e.result = null, o = s = l = P === r || K === r, n && u(e, !0, -1))if (I = !0, e.lineIndent === t)k = !1; else { | ||
411 | if (!(e.lineIndent > t))return!1; | ||
412 | k = !0 | ||
413 | } | ||
414 | if (k)for (; A(e) || b(e);)if (u(e, !0, -1))if (I = !0, e.lineIndent > t)k = !0, l = o; else { | ||
415 | if (e.lineIndent !== t)return!0; | ||
416 | k = !1, l = o | ||
417 | } else l = !1; | ||
418 | if (l && (l = I || c), (k || P === r) && (j = T === r || _ === r ? t : t + 1, S = e.position - e.lineStart, k ? l && (x(e, S) || v(e, S)) || g(e, j) ? O = !0 : (s && y(e, j) || d(e, j) || m(e, j) ? O = !0 : w(e) ? (O = !0, (null !== e.tag || null !== e.anchor) && a(e, "alias node should not have any properties")) : f(e, j, T === r) && (O = !0, null === e.tag && (e.tag = "?")), null !== e.anchor && (e.anchorMap[e.anchor] = e.result)) : O = l && x(e, S)), null !== e.tag && "!" !== e.tag)if ("?" === e.tag) { | ||
419 | for (p = 0, h = e.implicitTypes.length; h > p; p += 1)if (C = e.implicitTypes[p], C.loadResolver && C.loadResolver(e)) { | ||
420 | e.tag = C.tag; | ||
421 | break | ||
422 | } | ||
423 | } else N.call(e.typeMap, e.tag) ? (C = e.typeMap[e.tag], null !== e.result && C.loadKind !== e.kind && a(e, "unacceptable node kind for !<" + e.tag + '> tag; it should be "' + C.loadKind + '", not "' + e.kind + '"'), C.loadResolver && !C.loadResolver(e) && a(e, "cannot resolve a node with !<" + e.tag + "> explicit tag")) : i(e, "unknown tag !<" + e.tag + ">"); | ||
424 | return null !== e.tag || null !== e.anchor || O | ||
425 | } | ||
426 | |||
427 | function j(e, t) { | ||
428 | var r, n, c, o = e.position, s = !1; | ||
429 | for (e.version = null, e.checkLineBreaks = e.legacy, e.tagMap = {}, e.anchorMap = {}; e.position < e.length && (u(e, !0, -1), !(e.lineIndent > 0 || z !== e.character));) { | ||
430 | for (s = !0, e.character = e.input.charCodeAt(++e.position), r = e.position; e.position < e.length && $ !== e.character && U !== e.character && H !== e.character && B !== e.character;)e.character = e.input.charCodeAt(++e.position); | ||
431 | for (n = e.input.slice(r, e.position), c = [], n.length < 1 && a(e, "directive name must not be less than one character in length"); e.position < e.length;) { | ||
432 | for (; $ === e.character || U === e.character;)e.character = e.input.charCodeAt(++e.position); | ||
433 | if (J === e.character) { | ||
434 | do e.character = e.input.charCodeAt(++e.position); while (e.position < e.length && H !== e.character && B !== e.character); | ||
435 | break | ||
436 | } | ||
437 | if (H === e.character || B === e.character)break; | ||
438 | for (r = e.position; e.position < e.length && $ !== e.character && U !== e.character && H !== e.character && B !== e.character;)e.character = e.input.charCodeAt(++e.position); | ||
439 | c.push(e.input.slice(r, e.position)) | ||
440 | } | ||
441 | e.position < e.length && l(e), N.call(Ht, n) ? Ht[n](e, n, c) : i(e, 'unknown document directive "' + n + '"') | ||
442 | } | ||
443 | return u(e, !0, -1), 0 === e.lineIndent && tt === e.character && tt === e.input.charCodeAt(e.position + 1) && tt === e.input.charCodeAt(e.position + 2) ? (e.position += 3, e.character = e.input.charCodeAt(e.position), u(e, !0, -1)) : s && a(e, "directives end mark is expected"), C(e, e.lineIndent - 1, P, !1, !0), u(e, !0, -1), e.checkLineBreaks && Dt.test(e.input.slice(o, e.position)) && i(e, "non-ASCII line breaks are interpreted as content"), t(e.result), e.position === e.lineStart && p(e) ? (rt === e.character && (e.position += 3, e.character = e.input.charCodeAt(e.position), u(e, !0, -1)), void 0) : (e.position < e.length && a(e, "end of the stream or a document separator is expected"), void 0) | ||
444 | } | ||
445 | |||
446 | function S(e, t, n) { | ||
447 | n = n || {}; | ||
448 | var i = new r(e, n); | ||
449 | for (Pt.test(i.input) && a(i, "the stream contains non-printable characters"); $ === i.character;)i.lineIndent += 1, i.character = i.input.charCodeAt(++i.position); | ||
450 | for (; i.position < i.length;)j(i, t) | ||
451 | } | ||
452 | |||
453 | function I(e, t) { | ||
454 | function r(e) { | ||
455 | if (a)throw new F("expected a single document in the stream, but found more"); | ||
456 | n = e, a = !0 | ||
457 | } | ||
458 | |||
459 | var n = null, a = !1; | ||
460 | return S(e, r, t), n | ||
461 | } | ||
462 | |||
463 | function k(e, t, r) { | ||
464 | S(e, t, E.extend({schema: L}, r)) | ||
465 | } | ||
466 | |||
467 | function O(e, t) { | ||
468 | return I(e, E.extend({schema: L}, t)) | ||
469 | } | ||
470 | |||
471 | var E = e("./common"), F = e("./exception"), R = e("./mark"), L = e("./schema/default_safe"), M = e("./schema/default_full"), N = Object.prototype.hasOwnProperty, T = 1, _ = 2, K = 3, P = 4, D = 1, Y = 2, q = 3, U = 9, H = 10, B = 13, $ = 32, G = 33, V = 34, J = 35, z = 37, Z = 38, W = 39, Q = 42, X = 43, et = 44, tt = 45, rt = 46, nt = 47, at = 48, it = 49, ct = 57, ot = 58, st = 60, lt = 62, ut = 63, pt = 64, ht = 65, ft = 70, dt = 76, mt = 78, gt = 80, yt = 85, xt = 91, vt = 92, At = 93, bt = 95, wt = 96, Ct = 97, jt = 98, St = 101, It = 102, kt = 110, Ot = 114, Et = 116, Ft = 117, Rt = 118, Lt = 120, Mt = 123, Nt = 124, Tt = 125, _t = {}; | ||
472 | _t[at] = "\x00", _t[Ct] = "", _t[jt] = "\b", _t[Et] = " ", _t[U] = " ", _t[kt] = "\n", _t[Rt] = "", _t[It] = "\f", _t[Ot] = "\r", _t[St] = "", _t[$] = " ", _t[V] = '"', _t[nt] = "/", _t[vt] = "\\", _t[mt] = " ", _t[bt] = " ", _t[dt] = "\u2028", _t[gt] = "\u2029"; | ||
473 | var Kt = {}; | ||
474 | Kt[Lt] = 2, Kt[Ft] = 4, Kt[yt] = 8; | ||
475 | var Pt = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uD800-\uDFFF\uFFFE\uFFFF]/, Dt = /[\x85\u2028\u2029]/, Yt = /[,\[\]\{\}]/, qt = /^(?:!|!!|![a-z\-]+!)$/i, Ut = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i, Ht = {YAML: function (e, t, r) { | ||
476 | var n, c, o; | ||
477 | null !== e.version && a(e, "duplication of %YAML directive"), 1 !== r.length && a(e, "YAML directive accepts exactly one argument"), n = /^([0-9]+)\.([0-9]+)$/.exec(r[0]), null === n && a(e, "ill-formed argument of the YAML directive"), c = parseInt(n[1], 10), o = parseInt(n[2], 10), 1 !== c && a(e, "unacceptable YAML version of the document"), e.version = r[0], e.checkLineBreaks = 2 > o, 1 !== o && 2 !== o && i(e, "unsupported YAML version of the document") | ||
478 | }, TAG: function (e, t, r) { | ||
479 | var n, i; | ||
480 | 2 !== r.length && a(e, "TAG directive accepts exactly two arguments"), n = r[0], i = r[1], qt.test(n) || a(e, "ill-formed tag handle (first argument) of the TAG directive"), N.call(e.tagMap, n) && a(e, 'there is a previously declared suffix for "' + n + '" tag handle'), Ut.test(i) || a(e, "ill-formed tag prefix (second argument) of the TAG directive"), e.tagMap[n] = i | ||
481 | }}; | ||
482 | t.exports.loadAll = S, t.exports.load = I, t.exports.safeLoadAll = k, t.exports.safeLoad = O | ||
483 | }, {"./common": 3, "./exception": 5, "./mark": 7, "./schema/default_full": 10, "./schema/default_safe": 11}], 7: [function (e, t) { | ||
484 | "use strict"; | ||
485 | function r(e, t, r, n, a) { | ||
486 | this.name = e, this.buffer = t, this.position = r, this.line = n, this.column = a | ||
487 | } | ||
488 | |||
489 | var n = e("./common"); | ||
490 | r.prototype.getSnippet = function (e, t) { | ||
491 | var r, a, i, c, o; | ||
492 | if (!this.buffer)return null; | ||
493 | for (e = e || 4, t = t || 75, r = "", a = this.position; a > 0 && -1 === "\x00\r\n \u2028\u2029".indexOf(this.buffer.charAt(a - 1));)if (a -= 1, this.position - a > t / 2 - 1) { | ||
494 | r = " ... ", a += 5; | ||
495 | break | ||
496 | } | ||
497 | for (i = "", c = this.position; c < this.buffer.length && -1 === "\x00\r\n \u2028\u2029".indexOf(this.buffer.charAt(c));)if (c += 1, c - this.position > t / 2 - 1) { | ||
498 | i = " ... ", c -= 5; | ||
499 | break | ||
500 | } | ||
501 | return o = this.buffer.slice(a, c), n.repeat(" ", e) + r + o + i + "\n" + n.repeat(" ", e + this.position - a + r.length) + "^" | ||
502 | }, r.prototype.toString = function (e) { | ||
503 | var t, r = ""; | ||
504 | return this.name && (r += 'in "' + this.name + '" '), r += "at line " + (this.line + 1) + ", column " + (this.column + 1), e || (t = this.getSnippet(), t && (r += ":\n" + t)), r | ||
505 | }, t.exports = r | ||
506 | }, {"./common": 3}], 8: [function (e, t) { | ||
507 | "use strict"; | ||
508 | function r(e, t, n) { | ||
509 | var a = []; | ||
510 | return e.include.forEach(function (e) { | ||
511 | n = r(e, t, n) | ||
512 | }), e[t].forEach(function (e) { | ||
513 | n.forEach(function (t, r) { | ||
514 | t.tag === e.tag && a.push(r) | ||
515 | }), n.push(e) | ||
516 | }), n.filter(function (e, t) { | ||
517 | return-1 === a.indexOf(t) | ||
518 | }) | ||
519 | } | ||
520 | |||
521 | function n() { | ||
522 | function e(e) { | ||
523 | n[e.tag] = e | ||
524 | } | ||
525 | |||
526 | var t, r, n = {}; | ||
527 | for (t = 0, r = arguments.length; r > t; t += 1)arguments[t].forEach(e); | ||
528 | return n | ||
529 | } | ||
530 | |||
531 | function a(e) { | ||
532 | this.include = e.include || [], this.implicit = e.implicit || [], this.explicit = e.explicit || [], this.implicit.forEach(function (e) { | ||
533 | if (e.loadKind && "scalar" !== e.loadKind)throw new c("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.") | ||
534 | }), this.compiledImplicit = r(this, "implicit", []), this.compiledExplicit = r(this, "explicit", []), this.compiledTypeMap = n(this.compiledImplicit, this.compiledExplicit) | ||
535 | } | ||
536 | |||
537 | var i = e("./common"), c = e("./exception"), o = e("./type"); | ||
538 | a.DEFAULT = null, a.create = function () { | ||
539 | var e, t; | ||
540 | switch (arguments.length) { | ||
541 | case 1: | ||
542 | e = a.DEFAULT, t = arguments[0]; | ||
543 | break; | ||
544 | case 2: | ||
545 | e = arguments[0], t = arguments[1]; | ||
546 | break; | ||
547 | default: | ||
548 | throw new c("Wrong number of arguments for Schema.create function") | ||
549 | } | ||
550 | if (e = i.toArray(e), t = i.toArray(t), !e.every(function (e) { | ||
551 | return e instanceof a | ||
552 | }))throw new c("Specified list of super schemas (or a single Schema object) contains a non-Schema object."); | ||
553 | if (!t.every(function (e) { | ||
554 | return e instanceof o | ||
555 | }))throw new c("Specified list of YAML types (or a single Type object) contains a non-Type object."); | ||
556 | return new a({include: e, explicit: t}) | ||
557 | }, t.exports = a | ||
558 | }, {"./common": 3, "./exception": 5, "./type": 14}], 9: [function (e, t) { | ||
559 | "use strict"; | ||
560 | var r = e("../schema"); | ||
561 | t.exports = new r({include: [e("./json")]}) | ||
562 | }, {"../schema": 8, "./json": 13}], 10: [function (e, t) { | ||
563 | "use strict"; | ||
564 | var r = e("../schema"); | ||
565 | t.exports = r.DEFAULT = new r({include: [e("./default_safe")], explicit: [e("../type/js/undefined"), e("../type/js/regexp"), e("../type/js/function")]}) | ||
566 | }, {"../schema": 8, "../type/js/function": 19, "../type/js/regexp": 20, "../type/js/undefined": 21, "./default_safe": 11}], 11: [function (e, t) { | ||
567 | "use strict"; | ||
568 | var r = e("../schema"); | ||
569 | t.exports = new r({include: [e("./core")], implicit: [e("../type/timestamp"), e("../type/merge")], explicit: [e("../type/binary"), e("../type/omap"), e("../type/pairs"), e("../type/set")]}) | ||
570 | }, {"../schema": 8, "../type/binary": 15, "../type/merge": 23, "../type/omap": 25, "../type/pairs": 26, "../type/set": 28, "../type/timestamp": 30, "./core": 9}], 12: [function (e, t) { | ||
571 | "use strict"; | ||
572 | var r = e("../schema"); | ||
573 | t.exports = new r({explicit: [e("../type/str"), e("../type/seq"), e("../type/map")]}) | ||
574 | }, {"../schema": 8, "../type/map": 22, "../type/seq": 27, "../type/str": 29}], 13: [function (e, t) { | ||
575 | "use strict"; | ||
576 | var r = e("../schema"); | ||
577 | t.exports = new r({include: [e("./failsafe")], implicit: [e("../type/null"), e("../type/bool"), e("../type/int"), e("../type/float")]}) | ||
578 | }, {"../schema": 8, "../type/bool": 16, "../type/float": 17, "../type/int": 18, "../type/null": 24, "./failsafe": 12}], 14: [function (e, t) { | ||
579 | "use strict"; | ||
580 | function r(e) { | ||
581 | var t = {}; | ||
582 | return null !== e && Object.keys(e).forEach(function (r) { | ||
583 | e[r].forEach(function (e) { | ||
584 | t[String(e)] = r | ||
585 | }) | ||
586 | }), t | ||
587 | } | ||
588 | |||
589 | function n(e, t) { | ||
590 | if (t = t || {}, Object.keys(t).forEach(function (t) { | ||
591 | if (-1 === i.indexOf(t))throw new a('Unknown option "' + t + '" is met in definition of "' + e + '" YAML type.') | ||
592 | }), this.tag = e, this.loadKind = t.loadKind || null, this.loadResolver = t.loadResolver || null, this.dumpInstanceOf = t.dumpInstanceOf || null, this.dumpPredicate = t.dumpPredicate || null, this.dumpRepresenter = t.dumpRepresenter || null, this.dumpDefaultStyle = t.dumpDefaultStyle || null, this.dumpStyleAliases = r(t.dumpStyleAliases || null), -1 === c.indexOf(this.loadKind))throw new a('Unknown loadKind "' + this.loadKind + '" is specified for "' + e + '" YAML type.') | ||
593 | } | ||
594 | |||
595 | var a = e("./exception"), i = ["loadKind", "loadResolver", "dumpInstanceOf", "dumpPredicate", "dumpRepresenter", "dumpDefaultStyle", "dumpStyleAliases"], c = ["scalar", "sequence", "mapping"]; | ||
596 | t.exports = n | ||
597 | }, {"./exception": 5}], 15: [function (e, t) { | ||
598 | "use strict"; | ||
599 | function r(e) { | ||
600 | var t, r, n, a, c = 0, l = [], u = e.result; | ||
601 | for (n = 0, a = 0, c = 0; c < u.length; c += 1)if (r = u.charCodeAt(c), t = s[127 & r], 10 !== r && 13 !== r) { | ||
602 | if (-1 === t)return!1; | ||
603 | a = a << 6 | t, n += 6, n >= 8 && (n -= 8, o !== u.charAt(c) && l.push(a >> n & 255), a &= (1 << n) - 1) | ||
604 | } | ||
605 | return n ? !1 : (e.result = i ? new i(l) : l, !0) | ||
606 | } | ||
607 | |||
608 | function n(e) { | ||
609 | var t, r, n, a = ""; | ||
610 | for (t = 0, r = e.length - 2; r > t; t += 3)a += l[e[t + 0] >> 2], a += l[((3 & e[t + 0]) << 4) + (e[t + 1] >> 4)], a += l[((15 & e[t + 1]) << 2) + (e[t + 2] >> 6)], a += l[63 & e[t + 2]]; | ||
611 | return n = e.length % 3, 0 !== n && (t = e.length - n, a += l[e[t + 0] >> 2], 2 === n ? (a += l[((3 & e[t + 0]) << 4) + (e[t + 1] >> 4)], a += l[(15 & e[t + 1]) << 2], a += o) : (a += l[(3 & e[t + 0]) << 4], a += o + o)), a | ||
612 | } | ||
613 | |||
614 | function a(e) { | ||
615 | return i && i.isBuffer(e) | ||
616 | } | ||
617 | |||
618 | var i = e("buffer").Buffer, c = e("../type"), o = "=", s = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, 0, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1], l = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""); | ||
619 | t.exports = new c("tag:yaml.org,2002:binary", {loadKind: "scalar", loadResolver: r, dumpPredicate: a, dumpRepresenter: n}) | ||
620 | }, {"../type": 14, buffer: 31}], 16: [function (e, t) { | ||
621 | "use strict"; | ||
622 | function r(e) { | ||
623 | return i.hasOwnProperty(e.result) ? (e.result = i[e.result], !0) : !1 | ||
624 | } | ||
625 | |||
626 | function n(e) { | ||
627 | return"[object Boolean]" === Object.prototype.toString.call(e) | ||
628 | } | ||
629 | |||
630 | var a = e("../type"), i = {"true": !0, True: !0, TRUE: !0, "false": !1, False: !1, FALSE: !1}; | ||
631 | t.exports = new a("tag:yaml.org,2002:bool", {loadKind: "scalar", loadResolver: r, dumpPredicate: n, dumpRepresenter: {lowercase: function (e) { | ||
632 | return e ? "true" : "false" | ||
633 | }, uppercase: function (e) { | ||
634 | return e ? "TRUE" : "FALSE" | ||
635 | }, camelcase: function (e) { | ||
636 | return e ? "True" : "False" | ||
637 | }}, dumpDefaultStyle: "lowercase"}) | ||
638 | }, {"../type": 14}], 17: [function (e, t) { | ||
639 | "use strict"; | ||
640 | function r(e) { | ||
641 | var t, r, n, a, i = e.result; | ||
642 | return c.test(i) ? (t = i.replace(/_/g, "").toLowerCase(), r = "-" === t[0] ? -1 : 1, a = [], 0 <= "+-".indexOf(t[0]) && (t = t.slice(1)), ".inf" === t ? (e.result = 1 === r ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY, !0) : ".nan" === t ? (e.result = 0 / 0, !0) : 0 <= t.indexOf(":") ? (t.split(":").forEach(function (e) { | ||
643 | a.unshift(parseFloat(e, 10)) | ||
644 | }), t = 0, n = 1, a.forEach(function (e) { | ||
645 | t += e * n, n *= 60 | ||
646 | }), e.result = r * t, !0) : (e.result = r * parseFloat(t, 10), !0)) : !1 | ||
647 | } | ||
648 | |||
649 | function n(e, t) { | ||
650 | if (isNaN(e))switch (t) { | ||
651 | case"lowercase": | ||
652 | return".nan"; | ||
653 | case"uppercase": | ||
654 | return".NAN"; | ||
655 | case"camelcase": | ||
656 | return".NaN" | ||
657 | } else if (Number.POSITIVE_INFINITY === e)switch (t) { | ||
658 | case"lowercase": | ||
659 | return".inf"; | ||
660 | case"uppercase": | ||
661 | return".INF"; | ||
662 | case"camelcase": | ||
663 | return".Inf" | ||
664 | } else { | ||
665 | if (Number.NEGATIVE_INFINITY !== e)return e.toString(10); | ||
666 | switch (t) { | ||
667 | case"lowercase": | ||
668 | return"-.inf"; | ||
669 | case"uppercase": | ||
670 | return"-.INF"; | ||
671 | case"camelcase": | ||
672 | return"-.Inf" | ||
673 | } | ||
674 | } | ||
675 | } | ||
676 | |||
677 | function a(e) { | ||
678 | return"[object Number]" === Object.prototype.toString.call(e) && 0 !== e % 1 | ||
679 | } | ||
680 | |||
681 | var i = e("../type"), c = new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)\\.[0-9_]*(?:[eE][-+][0-9]+)?|\\.[0-9_]+(?:[eE][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"); | ||
682 | t.exports = new i("tag:yaml.org,2002:float", {loadKind: "scalar", loadResolver: r, dumpPredicate: a, dumpRepresenter: n, dumpDefaultStyle: "lowercase"}) | ||
683 | }, {"../type": 14}], 18: [function (e, t) { | ||
684 | "use strict"; | ||
685 | function r(e) { | ||
686 | var t, r, n, a, c = e.result; | ||
687 | return i.test(c) ? (t = c.replace(/_/g, ""), r = "-" === t[0] ? -1 : 1, a = [], 0 <= "+-".indexOf(t[0]) && (t = t.slice(1)), "0" === t ? (e.result = 0, !0) : /^0b/.test(t) ? (e.result = r * parseInt(t.slice(2), 2), !0) : /^0x/.test(t) ? (e.result = r * parseInt(t, 16), !0) : "0" === t[0] ? (e.result = r * parseInt(t, 8), !0) : 0 <= t.indexOf(":") ? (t.split(":").forEach(function (e) { | ||
688 | a.unshift(parseInt(e, 10)) | ||
689 | }), t = 0, n = 1, a.forEach(function (e) { | ||
690 | t += e * n, n *= 60 | ||
691 | }), e.result = r * t, !0) : (e.result = r * parseInt(t, 10), !0)) : !1 | ||
692 | } | ||
693 | |||
694 | function n(e) { | ||
695 | return"[object Number]" === Object.prototype.toString.call(e) && 0 === e % 1 | ||
696 | } | ||
697 | |||
698 | var a = e("../type"), i = new RegExp("^(?:[-+]?0b[0-1_]+|[-+]?0[0-7_]+|[-+]?(?:0|[1-9][0-9_]*)|[-+]?0x[0-9a-fA-F_]+|[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)$"); | ||
699 | t.exports = new a("tag:yaml.org,2002:int", {loadKind: "scalar", loadResolver: r, dumpPredicate: n, dumpRepresenter: {binary: function (e) { | ||
700 | return"0b" + e.toString(2) | ||
701 | }, octal: function (e) { | ||
702 | return"0" + e.toString(8) | ||
703 | }, decimal: function (e) { | ||
704 | return e.toString(10) | ||
705 | }, hexadecimal: function (e) { | ||
706 | return"0x" + e.toString(16).toUpperCase() | ||
707 | }}, dumpDefaultStyle: "decimal", dumpStyleAliases: {binary: [2, "bin"], octal: [8, "oct"], decimal: [10, "dec"], hexadecimal: [16, "hex"]}}) | ||
708 | }, {"../type": 14}], 19: [function (e, t) { | ||
709 | "use strict"; | ||
710 | function r(e) { | ||
711 | try { | ||
712 | var t, r = "(" + e.result + ")", n = i.parse(r, {range: !0}), a = []; | ||
713 | return"Program" !== n.type || 1 !== n.body.length || "ExpressionStatement" !== n.body[0].type || "FunctionExpression" !== n.body[0].expression.type ? !1 : (n.body[0].expression.params.forEach(function (e) { | ||
714 | a.push(e.name) | ||
715 | }), t = n.body[0].expression.body.range, e.result = new Function(a, r.slice(t[0] + 1, t[1] - 1)), !0) | ||
716 | } catch (c) { | ||
717 | return!1 | ||
718 | } | ||
719 | } | ||
720 | |||
721 | function n(e) { | ||
722 | return e.toString() | ||
723 | } | ||
724 | |||
725 | function a(e) { | ||
726 | return"[object Function]" === Object.prototype.toString.call(e) | ||
727 | } | ||
728 | |||
729 | var i; | ||
730 | try { | ||
731 | i = e("esprima") | ||
732 | } catch (c) { | ||
733 | window && (i = window.esprima) | ||
734 | } | ||
735 | var o = e("../../type"); | ||
736 | t.exports = new o("tag:yaml.org,2002:js/function", {loadKind: "scalar", loadResolver: r, dumpPredicate: a, dumpRepresenter: n}) | ||
737 | }, {"../../type": 14, esprima: "S2ZkVY"}], 20: [function (e, t) { | ||
738 | "use strict"; | ||
739 | function r(e) { | ||
740 | var t, r = e.result, n = /\/([gim]*)$/.exec(e.result); | ||
741 | "/" === r[0] && n && 4 >= n[0].length && (r = r.slice(1, r.length - n[0].length), t = n[1]); | ||
742 | try { | ||
743 | return e.result = new RegExp(r, t), !0 | ||
744 | } catch (a) { | ||
745 | return!1 | ||
746 | } | ||
747 | } | ||
748 | |||
749 | function n(e) { | ||
750 | var t = "/" + e.source + "/"; | ||
751 | return e.global && (t += "g"), e.multiline && (t += "m"), e.ignoreCase && (t += "i"), t | ||
752 | } | ||
753 | |||
754 | function a(e) { | ||
755 | return"[object RegExp]" === Object.prototype.toString.call(e) | ||
756 | } | ||
757 | |||
758 | var i = e("../../type"); | ||
759 | t.exports = new i("tag:yaml.org,2002:js/regexp", {loadKind: "scalar", loadResolver: r, dumpPredicate: a, dumpRepresenter: n}) | ||
760 | }, {"../../type": 14}], 21: [function (e, t) { | ||
761 | "use strict"; | ||
762 | function r(e) { | ||
763 | return e.result = void 0, !0 | ||
764 | } | ||
765 | |||
766 | function n() { | ||
767 | return"" | ||
768 | } | ||
769 | |||
770 | function a(e) { | ||
771 | return"undefined" == typeof e | ||
772 | } | ||
773 | |||
774 | var i = e("../../type"); | ||
775 | t.exports = new i("tag:yaml.org,2002:js/undefined", {loadKind: "scalar", loadResolver: r, dumpPredicate: a, dumpRepresenter: n}) | ||
776 | }, {"../../type": 14}], 22: [function (e, t) { | ||
777 | "use strict"; | ||
778 | var r = e("../type"); | ||
779 | t.exports = new r("tag:yaml.org,2002:map", {loadKind: "mapping"}) | ||
780 | }, {"../type": 14}], 23: [function (e, t) { | ||
781 | "use strict"; | ||
782 | function r(e) { | ||
783 | return"<<" === e.result | ||
784 | } | ||
785 | |||
786 | var n = e("../type"); | ||
787 | t.exports = new n("tag:yaml.org,2002:merge", {loadKind: "scalar", loadResolver: r}) | ||
788 | }, {"../type": 14}], 24: [function (e, t) { | ||
789 | "use strict"; | ||
790 | function r(e) { | ||
791 | return i.hasOwnProperty(e.result) ? (e.result = null, !0) : !1 | ||
792 | } | ||
793 | |||
794 | function n(e) { | ||
795 | return null === e | ||
796 | } | ||
797 | |||
798 | var a = e("../type"), i = {"~": !0, "null": !0, Null: !0, NULL: !0}; | ||
799 | t.exports = new a("tag:yaml.org,2002:null", {loadKind: "scalar", loadResolver: r, dumpPredicate: n, dumpRepresenter: {canonical: function () { | ||
800 | return"~" | ||
801 | }, lowercase: function () { | ||
802 | return"null" | ||
803 | }, uppercase: function () { | ||
804 | return"NULL" | ||
805 | }, camelcase: function () { | ||
806 | return"Null" | ||
807 | }}, dumpDefaultStyle: "lowercase"}) | ||
808 | }, {"../type": 14}], 25: [function (e, t) { | ||
809 | "use strict"; | ||
810 | function r(e) { | ||
811 | var t, r, n, c, o, s = [], l = e.result; | ||
812 | for (t = 0, r = l.length; r > t; t += 1) { | ||
813 | if (n = l[t], o = !1, "[object Object]" !== i.call(n))return!1; | ||
814 | for (c in n)if (a.call(n, c)) { | ||
815 | if (o)return!1; | ||
816 | o = !0 | ||
817 | } | ||
818 | if (!o)return!1; | ||
819 | if (-1 !== s.indexOf(c))return!1; | ||
820 | s.push(c) | ||
821 | } | ||
822 | return!0 | ||
823 | } | ||
824 | |||
825 | var n = e("../type"), a = Object.prototype.hasOwnProperty, i = Object.prototype.toString; | ||
826 | t.exports = new n("tag:yaml.org,2002:omap", {loadKind: "sequence", loadResolver: r}) | ||
827 | }, {"../type": 14}], 26: [function (e, t) { | ||
828 | "use strict"; | ||
829 | function r(e) { | ||
830 | var t, r, n, i, c, o = e.result; | ||
831 | for (c = new Array(o.length), t = 0, r = o.length; r > t; t += 1) { | ||
832 | if (n = o[t], "[object Object]" !== a.call(n))return!1; | ||
833 | if (i = Object.keys(n), 1 !== i.length)return!1; | ||
834 | c[t] = [i[0], n[i[0]]] | ||
835 | } | ||
836 | return e.result = c, !0 | ||
837 | } | ||
838 | |||
839 | var n = e("../type"), a = Object.prototype.toString; | ||
840 | t.exports = new n("tag:yaml.org,2002:pairs", {loadKind: "sequence", loadResolver: r}) | ||
841 | }, {"../type": 14}], 27: [function (e, t) { | ||
842 | "use strict"; | ||
843 | var r = e("../type"); | ||
844 | t.exports = new r("tag:yaml.org,2002:seq", {loadKind: "sequence"}) | ||
845 | }, {"../type": 14}], 28: [function (e, t) { | ||
846 | "use strict"; | ||
847 | function r(e) { | ||
848 | var t, r = e.result; | ||
849 | for (t in r)if (a.call(r, t) && null !== r[t])return!1; | ||
850 | return!0 | ||
851 | } | ||
852 | |||
853 | var n = e("../type"), a = Object.prototype.hasOwnProperty; | ||
854 | t.exports = new n("tag:yaml.org,2002:set", {loadKind: "mapping", loadResolver: r}) | ||
855 | }, {"../type": 14}], 29: [function (e, t) { | ||
856 | "use strict"; | ||
857 | var r = e("../type"); | ||
858 | t.exports = new r("tag:yaml.org,2002:str", {loadKind: "scalar"}) | ||
859 | }, {"../type": 14}], 30: [function (e, t) { | ||
860 | "use strict"; | ||
861 | function r(e) { | ||
862 | var t, r, n, a, c, o, s, l, u, p, h = 0, f = null; | ||
863 | if (t = i.exec(e.result), null === t)return!1; | ||
864 | if (r = +t[1], n = +t[2] - 1, a = +t[3], !t[4])return e.result = new Date(Date.UTC(r, n, a)), !0; | ||
865 | if (c = +t[4], o = +t[5], s = +t[6], t[7]) { | ||
866 | for (h = t[7].slice(0, 3); h.length < 3;)h += "0"; | ||
867 | h = +h | ||
868 | } | ||
869 | return t[9] && (l = +t[10], u = +(t[11] || 0), f = 6e4 * (60 * l + u), "-" === t[9] && (f = -f)), p = new Date(Date.UTC(r, n, a, c, o, s, h)), f && p.setTime(p.getTime() - f), e.result = p, !0 | ||
870 | } | ||
871 | |||
872 | function n(e) { | ||
873 | return e.toISOString() | ||
874 | } | ||
875 | |||
876 | var a = e("../type"), i = new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?)?$"); | ||
877 | t.exports = new a("tag:yaml.org,2002:timestamp", {loadKind: "scalar", loadResolver: r, dumpInstanceOf: Date, dumpRepresenter: n}) | ||
878 | }, {"../type": 14}], 31: [function () { | ||
879 | }, {}]}, {}, [1])(1) | ||
880 | }); \ No newline at end of file | ||
diff --git a/point/libs/markdownjs/markdown.min.js b/point/libs/markdownjs/markdown.min.js new file mode 100644 index 0000000..9bf8d3f --- /dev/null +++ b/point/libs/markdownjs/markdown.min.js | |||
@@ -0,0 +1,538 @@ | |||
1 | !function (a) { | ||
2 | function b() { | ||
3 | return"Markdown.mk_block( " + uneval(this.toString()) + ", " + uneval(this.trailing) + ", " + uneval(this.lineNumber) + " )" | ||
4 | } | ||
5 | |||
6 | function c() { | ||
7 | var a = require("util"); | ||
8 | return"Markdown.mk_block( " + a.inspect(this.toString()) + ", " + a.inspect(this.trailing) + ", " + a.inspect(this.lineNumber) + " )" | ||
9 | } | ||
10 | |||
11 | function d(a) { | ||
12 | for (var b = 0, c = -1; -1 !== (c = a.indexOf("\n", c + 1));)b++; | ||
13 | return b | ||
14 | } | ||
15 | |||
16 | function e(a) { | ||
17 | return a.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'") | ||
18 | } | ||
19 | |||
20 | function f(a) { | ||
21 | if ("string" == typeof a)return e(a); | ||
22 | var b = a.shift(), c = {}, d = []; | ||
23 | for (!a.length || "object" != typeof a[0] || a[0]instanceof Array || (c = a.shift()); a.length;)d.push(f(a.shift())); | ||
24 | var g = ""; | ||
25 | for (var h in c)g += " " + h + '="' + e(c[h]) + '"'; | ||
26 | return"img" === b || "br" === b || "hr" === b ? "<" + b + g + "/>" : "<" + b + g + ">" + d.join("") + "</" + b + ">" | ||
27 | } | ||
28 | |||
29 | function g(a, b, c) { | ||
30 | var d; | ||
31 | c = c || {}; | ||
32 | var e = a.slice(0); | ||
33 | "function" == typeof c.preprocessTreeNode && (e = c.preprocessTreeNode(e, b)); | ||
34 | var f = o(e); | ||
35 | if (f) { | ||
36 | e[1] = {}; | ||
37 | for (d in f)e[1][d] = f[d]; | ||
38 | f = e[1] | ||
39 | } | ||
40 | if ("string" == typeof e)return e; | ||
41 | switch (e[0]) { | ||
42 | case"header": | ||
43 | e[0] = "h" + e[1].level, delete e[1].level; | ||
44 | break; | ||
45 | case"bulletlist": | ||
46 | e[0] = "ul"; | ||
47 | break; | ||
48 | case"numberlist": | ||
49 | e[0] = "ol"; | ||
50 | break; | ||
51 | case"listitem": | ||
52 | e[0] = "li"; | ||
53 | break; | ||
54 | case"para": | ||
55 | e[0] = "p"; | ||
56 | break; | ||
57 | case"markdown": | ||
58 | e[0] = "html", f && delete f.references; | ||
59 | break; | ||
60 | case"code_block": | ||
61 | e[0] = "pre", d = f ? 2 : 1; | ||
62 | var h = ["code"]; | ||
63 | h.push.apply(h, e.splice(d, e.length - d)), e[d] = h; | ||
64 | break; | ||
65 | case"inlinecode": | ||
66 | e[0] = "code"; | ||
67 | break; | ||
68 | case"img": | ||
69 | e[1].src = e[1].href, delete e[1].href; | ||
70 | break; | ||
71 | case"linebreak": | ||
72 | e[0] = "br"; | ||
73 | break; | ||
74 | case"link": | ||
75 | e[0] = "a"; | ||
76 | break; | ||
77 | case"link_ref": | ||
78 | e[0] = "a"; | ||
79 | var i = b[f.ref]; | ||
80 | if (!i)return f.original; | ||
81 | delete f.ref, f.href = i.href, i.title && (f.title = i.title), delete f.original; | ||
82 | break; | ||
83 | case"img_ref": | ||
84 | e[0] = "img"; | ||
85 | var i = b[f.ref]; | ||
86 | if (!i)return f.original; | ||
87 | delete f.ref, f.src = i.href, i.title && (f.title = i.title), delete f.original | ||
88 | } | ||
89 | if (d = 1, f) { | ||
90 | for (var j in e[1]) { | ||
91 | d = 2; | ||
92 | break | ||
93 | } | ||
94 | 1 === d && e.splice(d, 1) | ||
95 | } | ||
96 | for (; d < e.length; ++d)e[d] = g(e[d], b, c); | ||
97 | return e | ||
98 | } | ||
99 | |||
100 | function h(a) { | ||
101 | for (var b = o(a) ? 2 : 1; b < a.length;)"string" == typeof a[b] ? b + 1 < a.length && "string" == typeof a[b + 1] ? a[b] += a.splice(b + 1, 1)[0] : ++b : (h(a[b]), ++b) | ||
102 | } | ||
103 | |||
104 | function i(a, b) { | ||
105 | function c(a) { | ||
106 | this.len_after = a, this.name = "close_" + b | ||
107 | } | ||
108 | |||
109 | var d = a + "_state", e = "strong" === a ? "em_state" : "strong_state"; | ||
110 | return function (f) { | ||
111 | if (this[d][0] === b)return this[d].shift(), [f.length, new c(f.length - b.length)]; | ||
112 | var g = this[e].slice(), h = this[d].slice(); | ||
113 | this[d].unshift(b); | ||
114 | var i = this.processInline(f.substr(b.length)), j = i[i.length - 1]; | ||
115 | if (this[d].shift(), j instanceof c) { | ||
116 | i.pop(); | ||
117 | var k = f.length - j.len_after; | ||
118 | return[k, [a].concat(i)] | ||
119 | } | ||
120 | return this[e] = g, this[d] = h, [b.length, b] | ||
121 | } | ||
122 | } | ||
123 | |||
124 | function j(a) { | ||
125 | for (var b = a.split(""), c = [""], d = !1; b.length;) { | ||
126 | var e = b.shift(); | ||
127 | switch (e) { | ||
128 | case" ": | ||
129 | d ? c[c.length - 1] += e : c.push(""); | ||
130 | break; | ||
131 | case"'": | ||
132 | case'"': | ||
133 | d = !d; | ||
134 | break; | ||
135 | case"\\": | ||
136 | e = b.shift(); | ||
137 | default: | ||
138 | c[c.length - 1] += e | ||
139 | } | ||
140 | } | ||
141 | return c | ||
142 | } | ||
143 | |||
144 | var k = {}; | ||
145 | k.mk_block = function (a, d, e) { | ||
146 | 1 === arguments.length && (d = "\n\n"); | ||
147 | var f = new String(a); | ||
148 | return f.trailing = d, f.inspect = c, f.toSource = b, void 0 !== e && (f.lineNumber = e), f | ||
149 | }; | ||
150 | var l = k.isArray = Array.isArray || function (a) { | ||
151 | return"[object Array]" === Object.prototype.toString.call(a) | ||
152 | }; | ||
153 | k.forEach = Array.prototype.forEach ? function (a, b, c) { | ||
154 | return a.forEach(b, c) | ||
155 | } : function (a, b, c) { | ||
156 | for (var d = 0; d < a.length; d++)b.call(c || a, a[d], d, a) | ||
157 | }, k.isEmpty = function (a) { | ||
158 | for (var b in a)if (hasOwnProperty.call(a, b))return!1; | ||
159 | return!0 | ||
160 | }, k.extract_attr = function (a) { | ||
161 | return l(a) && a.length > 1 && "object" == typeof a[1] && !l(a[1]) ? a[1] : void 0 | ||
162 | }; | ||
163 | var m = function (a) { | ||
164 | switch (typeof a) { | ||
165 | case"undefined": | ||
166 | this.dialect = m.dialects.Gruber; | ||
167 | break; | ||
168 | case"object": | ||
169 | this.dialect = a; | ||
170 | break; | ||
171 | default: | ||
172 | if (!(a in m.dialects))throw new Error("Unknown Markdown dialect '" + String(a) + "'"); | ||
173 | this.dialect = m.dialects[a] | ||
174 | } | ||
175 | this.em_state = [], this.strong_state = [], this.debug_indent = "" | ||
176 | }; | ||
177 | m.dialects = {}; | ||
178 | var n = m.mk_block = k.mk_block, l = k.isArray; | ||
179 | m.parse = function (a, b) { | ||
180 | var c = new m(b); | ||
181 | return c.toTree(a) | ||
182 | }, m.prototype.split_blocks = function (a) { | ||
183 | a = a.replace(/(\r\n|\n|\r)/g, "\n"); | ||
184 | var b, c = /([\s\S]+?)($|\n#|\n(?:\s*\n|$)+)/g, e = [], f = 1; | ||
185 | for (null !== (b = /^(\s*\n)/.exec(a)) && (f += d(b[0]), c.lastIndex = b[0].length); null !== (b = c.exec(a));)"\n#" === b[2] && (b[2] = "\n", c.lastIndex--), e.push(n(b[1], b[2], f)), f += d(b[0]); | ||
186 | return e | ||
187 | }, m.prototype.processBlock = function (a, b) { | ||
188 | var c = this.dialect.block, d = c.__order__; | ||
189 | if ("__call__"in c)return c.__call__.call(this, a, b); | ||
190 | for (var e = 0; e < d.length; e++) { | ||
191 | var f = c[d[e]].call(this, a, b); | ||
192 | if (f)return(!l(f) || f.length > 0 && !l(f[0])) && this.debug(d[e], "didn't return a proper array"), f | ||
193 | } | ||
194 | return[] | ||
195 | }, m.prototype.processInline = function (a) { | ||
196 | return this.dialect.inline.__call__.call(this, String(a)) | ||
197 | }, m.prototype.toTree = function (a, b) { | ||
198 | var c = a instanceof Array ? a : this.split_blocks(a), d = this.tree; | ||
199 | try { | ||
200 | for (this.tree = b || this.tree || ["markdown"]; c.length;) { | ||
201 | var e = this.processBlock(c.shift(), c); | ||
202 | e.length && this.tree.push.apply(this.tree, e) | ||
203 | } | ||
204 | return this.tree | ||
205 | } finally { | ||
206 | b && (this.tree = d) | ||
207 | } | ||
208 | }, m.prototype.debug = function () { | ||
209 | var a = Array.prototype.slice.call(arguments); | ||
210 | a.unshift(this.debug_indent), "undefined" != typeof print && print.apply(print, a), "undefined" != typeof console && "undefined" != typeof console.log && console.log.apply(null, a) | ||
211 | }, m.prototype.loop_re_over_block = function (a, b, c) { | ||
212 | for (var d, e = b.valueOf(); e.length && null !== (d = a.exec(e));)e = e.substr(d[0].length), c.call(this, d); | ||
213 | return e | ||
214 | }, m.buildBlockOrder = function (a) { | ||
215 | var b = []; | ||
216 | for (var c in a)"__order__" !== c && "__call__" !== c && b.push(c); | ||
217 | a.__order__ = b | ||
218 | }, m.buildInlinePatterns = function (a) { | ||
219 | var b = []; | ||
220 | for (var c in a)if (!c.match(/^__.*__$/)) { | ||
221 | var d = c.replace(/([\\.*+?|()\[\]{}])/g, "\\$1").replace(/\n/, "\\n"); | ||
222 | b.push(1 === c.length ? d : "(?:" + d + ")") | ||
223 | } | ||
224 | b = b.join("|"), a.__patterns__ = b; | ||
225 | var e = a.__call__; | ||
226 | a.__call__ = function (a, c) { | ||
227 | return void 0 !== c ? e.call(this, a, c) : e.call(this, a, b) | ||
228 | } | ||
229 | }; | ||
230 | var o = k.extract_attr; | ||
231 | m.renderJsonML = function (a, b) { | ||
232 | b = b || {}, b.root = b.root || !1; | ||
233 | var c = []; | ||
234 | if (b.root)c.push(f(a)); else for (a.shift(), !a.length || "object" != typeof a[0] || a[0]instanceof Array || a.shift(); a.length;)c.push(f(a.shift())); | ||
235 | return c.join("\n\n") | ||
236 | }, m.toHTMLTree = function (a, b, c) { | ||
237 | "string" == typeof a && (a = this.parse(a, b)); | ||
238 | var d = o(a), e = {}; | ||
239 | d && d.references && (e = d.references); | ||
240 | var f = g(a, e, c); | ||
241 | return h(f), f | ||
242 | }, m.toHTML = function (a, b, c) { | ||
243 | var d = this.toHTMLTree(a, b, c); | ||
244 | return this.renderJsonML(d) | ||
245 | }; | ||
246 | var p = {}; | ||
247 | p.inline_until_char = function (a, b) { | ||
248 | for (var c = 0, d = []; ;) { | ||
249 | if (a.charAt(c) === b)return c++, [c, d]; | ||
250 | if (c >= a.length)return null; | ||
251 | var e = this.dialect.inline.__oneElement__.call(this, a.substr(c)); | ||
252 | c += e[0], d.push.apply(d, e.slice(1)) | ||
253 | } | ||
254 | }, p.subclassDialect = function (a) { | ||
255 | function b() { | ||
256 | } | ||
257 | |||
258 | function c() { | ||
259 | } | ||
260 | |||
261 | return b.prototype = a.block, c.prototype = a.inline, {block: new b, inline: new c} | ||
262 | }; | ||
263 | var q = k.forEach, o = k.extract_attr, n = k.mk_block, r = k.isEmpty, s = p.inline_until_char, t = {block: {atxHeader: function (a, b) { | ||
264 | var c = a.match(/^(#{1,6})\s*(.*?)\s*#*\s*(?:\n|$)/); | ||
265 | if (!c)return void 0; | ||
266 | var d = ["header", {level: c[1].length}]; | ||
267 | return Array.prototype.push.apply(d, this.processInline(c[2])), c[0].length < a.length && b.unshift(n(a.substr(c[0].length), a.trailing, a.lineNumber + 2)), [d] | ||
268 | }, setextHeader: function (a, b) { | ||
269 | var c = a.match(/^(.*)\n([-=])\2\2+(?:\n|$)/); | ||
270 | if (!c)return void 0; | ||
271 | var d = "=" === c[2] ? 1 : 2, e = ["header", {level: d}, c[1]]; | ||
272 | return c[0].length < a.length && b.unshift(n(a.substr(c[0].length), a.trailing, a.lineNumber + 2)), [e] | ||
273 | }, code: function (a, b) { | ||
274 | var c = [], d = /^(?: {0,3}\t| {4})(.*)\n?/; | ||
275 | if (!a.match(d))return void 0; | ||
276 | a:for (; ;) { | ||
277 | var e = this.loop_re_over_block(d, a.valueOf(), function (a) { | ||
278 | c.push(a[1]) | ||
279 | }); | ||
280 | if (e.length) { | ||
281 | b.unshift(n(e, a.trailing)); | ||
282 | break a | ||
283 | } | ||
284 | if (!b.length)break a; | ||
285 | if (!b[0].match(d))break a; | ||
286 | c.push(a.trailing.replace(/[^\n]/g, "").substring(2)), a = b.shift() | ||
287 | } | ||
288 | return[ | ||
289 | ["code_block", c.join("\n")] | ||
290 | ] | ||
291 | }, horizRule: function (a, b) { | ||
292 | var c = a.match(/^(?:([\s\S]*?)\n)?[ \t]*([-_*])(?:[ \t]*\2){2,}[ \t]*(?:\n([\s\S]*))?$/); | ||
293 | if (!c)return void 0; | ||
294 | var d = [ | ||
295 | ["hr"] | ||
296 | ]; | ||
297 | if (c[1]) { | ||
298 | var e = n(c[1], "", a.lineNumber); | ||
299 | d.unshift.apply(d, this.toTree(e, [])) | ||
300 | } | ||
301 | return c[3] && b.unshift(n(c[3], a.trailing, a.lineNumber + 1)), d | ||
302 | }, lists: function () { | ||
303 | function a(a) { | ||
304 | return new RegExp("(?:^(" + i + "{0," + a + "} {0,3})(" + f + ")\\s+)|" + "(^" + i + "{0," + (a - 1) + "}[ ]{0,4})") | ||
305 | } | ||
306 | |||
307 | function b(a) { | ||
308 | return a.replace(/ {0,3}\t/g, " ") | ||
309 | } | ||
310 | |||
311 | function c(a, b, c, d) { | ||
312 | if (b)return a.push(["para"].concat(c)), void 0; | ||
313 | var e = a[a.length - 1]instanceof Array && "para" === a[a.length - 1][0] ? a[a.length - 1] : a; | ||
314 | d && a.length > 1 && c.unshift(d); | ||
315 | for (var f = 0; f < c.length; f++) { | ||
316 | var g = c[f], h = "string" == typeof g; | ||
317 | h && e.length > 1 && "string" == typeof e[e.length - 1] ? e[e.length - 1] += g : e.push(g) | ||
318 | } | ||
319 | } | ||
320 | |||
321 | function d(a, b) { | ||
322 | for (var c = new RegExp("^(" + i + "{" + a + "}.*?\\n?)*$"), d = new RegExp("^" + i + "{" + a + "}", "gm"), e = []; b.length > 0 && c.exec(b[0]);) { | ||
323 | var f = b.shift(), g = f.replace(d, ""); | ||
324 | e.push(n(g, f.trailing, f.lineNumber)) | ||
325 | } | ||
326 | return e | ||
327 | } | ||
328 | |||
329 | function e(a, b, c) { | ||
330 | var d = a.list, e = d[d.length - 1]; | ||
331 | if (!(e[1]instanceof Array && "para" === e[1][0]))if (b + 1 === c.length)e.push(["para"].concat(e.splice(1, e.length - 1))); else { | ||
332 | var f = e.pop(); | ||
333 | e.push(["para"].concat(e.splice(1, e.length - 1)), f) | ||
334 | } | ||
335 | } | ||
336 | |||
337 | var f = "[*+-]|\\d+\\.", g = /[*+-]/, h = new RegExp("^( {0,3})(" + f + ")[ ]+"), i = "(?: {0,3}\\t| {4})"; | ||
338 | return function (f, i) { | ||
339 | function j(a) { | ||
340 | var b = g.exec(a[2]) ? ["bulletlist"] : ["numberlist"]; | ||
341 | return n.push({list: b, indent: a[1]}), b | ||
342 | } | ||
343 | |||
344 | var k = f.match(h); | ||
345 | if (!k)return void 0; | ||
346 | for (var l, m, n = [], o = j(k), p = !1, r = [n[0].list]; ;) { | ||
347 | for (var s = f.split(/(?=\n)/), t = "", u = "", v = 0; v < s.length; v++) { | ||
348 | u = ""; | ||
349 | var w = s[v].replace(/^\n/, function (a) { | ||
350 | return u = a, "" | ||
351 | }), x = a(n.length); | ||
352 | if (k = w.match(x), void 0 !== k[1]) { | ||
353 | t.length && (c(l, p, this.processInline(t), u), p = !1, t = ""), k[1] = b(k[1]); | ||
354 | var y = Math.floor(k[1].length / 4) + 1; | ||
355 | if (y > n.length)o = j(k), l.push(o), l = o[1] = ["listitem"]; else { | ||
356 | var z = !1; | ||
357 | for (m = 0; m < n.length; m++)if (n[m].indent === k[1]) { | ||
358 | o = n[m].list, n.splice(m + 1, n.length - (m + 1)), z = !0; | ||
359 | break | ||
360 | } | ||
361 | z || (y++, y <= n.length ? (n.splice(y, n.length - y), o = n[y - 1].list) : (o = j(k), l.push(o))), l = ["listitem"], o.push(l) | ||
362 | } | ||
363 | u = "" | ||
364 | } | ||
365 | w.length > k[0].length && (t += u + w.substr(k[0].length)) | ||
366 | } | ||
367 | t.length && (c(l, p, this.processInline(t), u), p = !1, t = ""); | ||
368 | var A = d(n.length, i); | ||
369 | A.length > 0 && (q(n, e, this), l.push.apply(l, this.toTree(A, []))); | ||
370 | var B = i[0] && i[0].valueOf() || ""; | ||
371 | if (!B.match(h) && !B.match(/^ /))break; | ||
372 | f = i.shift(); | ||
373 | var C = this.dialect.block.horizRule(f, i); | ||
374 | if (C) { | ||
375 | r.push.apply(r, C); | ||
376 | break | ||
377 | } | ||
378 | q(n, e, this), p = !0 | ||
379 | } | ||
380 | return r | ||
381 | } | ||
382 | }(), blockquote: function (a, b) { | ||
383 | if (!a.match(/^>/m))return void 0; | ||
384 | var c = []; | ||
385 | if (">" !== a[0]) { | ||
386 | for (var d = a.split(/\n/), e = [], f = a.lineNumber; d.length && ">" !== d[0][0];)e.push(d.shift()), f++; | ||
387 | var g = n(e.join("\n"), "\n", a.lineNumber); | ||
388 | c.push.apply(c, this.processBlock(g, [])), a = n(d.join("\n"), a.trailing, f) | ||
389 | } | ||
390 | for (; b.length && ">" === b[0][0];) { | ||
391 | var h = b.shift(); | ||
392 | a = n(a + a.trailing + h, h.trailing, a.lineNumber) | ||
393 | } | ||
394 | var i = a.replace(/^> ?/gm, ""), j = (this.tree, this.toTree(i, ["blockquote"])), k = o(j); | ||
395 | return k && k.references && (delete k.references, r(k) && j.splice(1, 1)), c.push(j), c | ||
396 | }, referenceDefn: function (a, b) { | ||
397 | var c = /^\s*\[(.*?)\]:\s*(\S+)(?:\s+(?:(['"])(.*?)\3|\((.*?)\)))?\n?/; | ||
398 | if (!a.match(c))return void 0; | ||
399 | o(this.tree) || this.tree.splice(1, 0, {}); | ||
400 | var d = o(this.tree); | ||
401 | void 0 === d.references && (d.references = {}); | ||
402 | var e = this.loop_re_over_block(c, a, function (a) { | ||
403 | a[2] && "<" === a[2][0] && ">" === a[2][a[2].length - 1] && (a[2] = a[2].substring(1, a[2].length - 1)); | ||
404 | var b = d.references[a[1].toLowerCase()] = {href: a[2]}; | ||
405 | void 0 !== a[4] ? b.title = a[4] : void 0 !== a[5] && (b.title = a[5]) | ||
406 | }); | ||
407 | return e.length && b.unshift(n(e, a.trailing)), [] | ||
408 | }, para: function (a) { | ||
409 | return[["para"].concat(this.processInline(a))] | ||
410 | }}, inline: {__oneElement__: function (a, b, c) { | ||
411 | var d, e; | ||
412 | b = b || this.dialect.inline.__patterns__; | ||
413 | var f = new RegExp("([\\s\\S]*?)(" + (b.source || b) + ")"); | ||
414 | if (d = f.exec(a), !d)return[a.length, a]; | ||
415 | if (d[1])return[d[1].length, d[1]]; | ||
416 | var e; | ||
417 | return d[2]in this.dialect.inline && (e = this.dialect.inline[d[2]].call(this, a.substr(d.index), d, c || [])), e = e || [d[2].length, d[2]] | ||
418 | }, __call__: function (a, b) { | ||
419 | function c(a) { | ||
420 | "string" == typeof a && "string" == typeof e[e.length - 1] ? e[e.length - 1] += a : e.push(a) | ||
421 | } | ||
422 | |||
423 | for (var d, e = []; a.length > 0;)d = this.dialect.inline.__oneElement__.call(this, a, b, e), a = a.substr(d.shift()), q(d, c); | ||
424 | return e | ||
425 | }, "]": function () { | ||
426 | }, "}": function () { | ||
427 | }, __escape__: /^\\[\\`\*_{}\[\]()#\+.!\-]/, "\\": function (a) { | ||
428 | return this.dialect.inline.__escape__.exec(a) ? [2, a.charAt(1)] : [1, "\\"] | ||
429 | }, "![": function (a) { | ||
430 | var b = a.match(/^!\[(.*?)\][ \t]*\([ \t]*([^")]*?)(?:[ \t]+(["'])(.*?)\3)?[ \t]*\)/); | ||
431 | if (b) { | ||
432 | b[2] && "<" === b[2][0] && ">" === b[2][b[2].length - 1] && (b[2] = b[2].substring(1, b[2].length - 1)), b[2] = this.dialect.inline.__call__.call(this, b[2], /\\/)[0]; | ||
433 | var c = {alt: b[1], href: b[2] || ""}; | ||
434 | return void 0 !== b[4] && (c.title = b[4]), [b[0].length, ["img", c]] | ||
435 | } | ||
436 | return b = a.match(/^!\[(.*?)\][ \t]*\[(.*?)\]/), b ? [b[0].length, ["img_ref", {alt: b[1], ref: b[2].toLowerCase(), original: b[0]}]] : [2, "!["] | ||
437 | }, "[": function v(a) { | ||
438 | var b = String(a), c = s.call(this, a.substr(1), "]"); | ||
439 | if (!c)return[1, "["]; | ||
440 | var v, d, e = 1 + c[0], f = c[1]; | ||
441 | a = a.substr(e); | ||
442 | var g = a.match(/^\s*\([ \t]*([^"']*)(?:[ \t]+(["'])(.*?)\2)?[ \t]*\)/); | ||
443 | if (g) { | ||
444 | var h = g[1]; | ||
445 | if (e += g[0].length, h && "<" === h[0] && ">" === h[h.length - 1] && (h = h.substring(1, h.length - 1)), !g[3])for (var i = 1, j = 0; j < h.length; j++)switch (h[j]) { | ||
446 | case"(": | ||
447 | i++; | ||
448 | break; | ||
449 | case")": | ||
450 | 0 === --i && (e -= h.length - j, h = h.substring(0, j)) | ||
451 | } | ||
452 | return h = this.dialect.inline.__call__.call(this, h, /\\/)[0], d = {href: h || ""}, void 0 !== g[3] && (d.title = g[3]), v = ["link", d].concat(f), [e, v] | ||
453 | } | ||
454 | return g = a.match(/^\s*\[(.*?)\]/), g ? (e += g[0].length, d = {ref: (g[1] || String(f)).toLowerCase(), original: b.substr(0, e)}, v = ["link_ref", d].concat(f), [e, v]) : 1 === f.length && "string" == typeof f[0] ? (d = {ref: f[0].toLowerCase(), original: b.substr(0, e)}, v = ["link_ref", d, f[0]], [e, v]) : [1, "["] | ||
455 | }, "<": function (a) { | ||
456 | var b; | ||
457 | return null !== (b = a.match(/^<(?:((https?|ftp|mailto):[^>]+)|(.*?@.*?\.[a-zA-Z]+))>/)) ? b[3] ? [b[0].length, ["link", {href: "mailto:" + b[3]}, b[3]]] : "mailto" === b[2] ? [b[0].length, ["link", {href: b[1]}, b[1].substr("mailto:".length)]] : [b[0].length, ["link", {href: b[1]}, b[1]]] : [1, "<"] | ||
458 | }, "`": function (a) { | ||
459 | var b = a.match(/(`+)(([\s\S]*?)\1)/); | ||
460 | return b && b[2] ? [b[1].length + b[2].length, ["inlinecode", b[3]]] : [1, "`"] | ||
461 | }, " \n": function () { | ||
462 | return[3, ["linebreak"]] | ||
463 | }}}; | ||
464 | t.inline["**"] = i("strong", "**"), t.inline.__ = i("strong", "__"), t.inline["*"] = i("em", "*"), t.inline._ = i("em", "_"), m.dialects.Gruber = t, m.buildBlockOrder(m.dialects.Gruber.block), m.buildInlinePatterns(m.dialects.Gruber.inline); | ||
465 | var u = p.subclassDialect(t), o = k.extract_attr, q = k.forEach; | ||
466 | u.processMetaHash = function (a) { | ||
467 | for (var b = j(a), c = {}, d = 0; d < b.length; ++d)if (/^#/.test(b[d]))c.id = b[d].substring(1); else if (/^\./.test(b[d]))c["class"] = c["class"] ? c["class"] + b[d].replace(/./, " ") : b[d].substring(1); else if (/\=/.test(b[d])) { | ||
468 | var e = b[d].split(/\=/); | ||
469 | c[e[0]] = e[1] | ||
470 | } | ||
471 | return c | ||
472 | }, u.block.document_meta = function (a) { | ||
473 | if (a.lineNumber > 1)return void 0; | ||
474 | if (!a.match(/^(?:\w+:.*\n)*\w+:.*$/))return void 0; | ||
475 | o(this.tree) || this.tree.splice(1, 0, {}); | ||
476 | var b = a.split(/\n/); | ||
477 | for (var c in b) { | ||
478 | var d = b[c].match(/(\w+):\s*(.*)$/), e = d[1].toLowerCase(), f = d[2]; | ||
479 | this.tree[1][e] = f | ||
480 | } | ||
481 | return[] | ||
482 | }, u.block.block_meta = function (a) { | ||
483 | var b = a.match(/(^|\n) {0,3}\{:\s*((?:\\\}|[^\}])*)\s*\}$/); | ||
484 | if (!b)return void 0; | ||
485 | var c, d = this.dialect.processMetaHash(b[2]); | ||
486 | if ("" === b[1]) { | ||
487 | var e = this.tree[this.tree.length - 1]; | ||
488 | if (c = o(e), "string" == typeof e)return void 0; | ||
489 | c || (c = {}, e.splice(1, 0, c)); | ||
490 | for (var f in d)c[f] = d[f]; | ||
491 | return[] | ||
492 | } | ||
493 | var g = a.replace(/\n.*$/, ""), h = this.processBlock(g, []); | ||
494 | c = o(h[0]), c || (c = {}, h[0].splice(1, 0, c)); | ||
495 | for (var f in d)c[f] = d[f]; | ||
496 | return h | ||
497 | }, u.block.definition_list = function (a, b) { | ||
498 | var c, d, e = /^((?:[^\s:].*\n)+):\s+([\s\S]+)$/, f = ["dl"]; | ||
499 | if (!(d = a.match(e)))return void 0; | ||
500 | for (var g = [a]; b.length && e.exec(b[0]);)g.push(b.shift()); | ||
501 | for (var h = 0; h < g.length; ++h) { | ||
502 | var d = g[h].match(e), i = d[1].replace(/\n$/, "").split(/\n/), j = d[2].split(/\n:\s+/); | ||
503 | for (c = 0; c < i.length; ++c)f.push(["dt", i[c]]); | ||
504 | for (c = 0; c < j.length; ++c)f.push(["dd"].concat(this.processInline(j[c].replace(/(\n)\s+/, "$1")))) | ||
505 | } | ||
506 | return[f] | ||
507 | }, u.block.table = function w(a) { | ||
508 | var b, c, d = function (a, b) { | ||
509 | b = b || "\\s", b.match(/^[\\|\[\]{}?*.+^$]$/) && (b = "\\" + b); | ||
510 | for (var c, d = [], e = new RegExp("^((?:\\\\.|[^\\\\" + b + "])*)" + b + "(.*)"); c = a.match(e);)d.push(c[1]), a = c[2]; | ||
511 | return d.push(a), d | ||
512 | }, e = /^ {0,3}\|(.+)\n {0,3}\|\s*([\-:]+[\-| :]*)\n((?:\s*\|.*(?:\n|$))*)(?=\n|$)/, f = /^ {0,3}(\S(?:\\.|[^\\|])*\|.*)\n {0,3}([\-:]+\s*\|[\-| :]*)\n((?:(?:\\.|[^\\|])*\|.*(?:\n|$))*)(?=\n|$)/; | ||
513 | if (c = a.match(e))c[3] = c[3].replace(/^\s*\|/gm, ""); else if (!(c = a.match(f)))return void 0; | ||
514 | var w = ["table", ["thead", ["tr"]], ["tbody"]]; | ||
515 | c[2] = c[2].replace(/\|\s*$/, "").split("|"); | ||
516 | var g = []; | ||
517 | for (q(c[2], function (a) { | ||
518 | a.match(/^\s*-+:\s*$/) ? g.push({align: "right"}) : a.match(/^\s*:-+\s*$/) ? g.push({align: "left"}) : a.match(/^\s*:-+:\s*$/) ? g.push({align: "center"}) : g.push({}) | ||
519 | }), c[1] = d(c[1].replace(/\|\s*$/, ""), "|"), b = 0; b < c[1].length; b++)w[1][1].push(["th", g[b] || {}].concat(this.processInline(c[1][b].trim()))); | ||
520 | return q(c[3].replace(/\|\s*$/gm, "").split("\n"), function (a) { | ||
521 | var c = ["tr"]; | ||
522 | for (a = d(a, "|"), b = 0; b < a.length; b++)c.push(["td", g[b] || {}].concat(this.processInline(a[b].trim()))); | ||
523 | w[2].push(c) | ||
524 | }, this), [w] | ||
525 | }, u.inline["{:"] = function (a, b, c) { | ||
526 | if (!c.length)return[2, "{:"]; | ||
527 | var d = c[c.length - 1]; | ||
528 | if ("string" == typeof d)return[2, "{:"]; | ||
529 | var e = a.match(/^\{:\s*((?:\\\}|[^\}])*)\s*\}/); | ||
530 | if (!e)return[2, "{:"]; | ||
531 | var f = this.dialect.processMetaHash(e[1]), g = o(d); | ||
532 | g || (g = {}, d.splice(1, 0, g)); | ||
533 | for (var h in f)g[h] = f[h]; | ||
534 | return[e[0].length, ""] | ||
535 | }, m.dialects.Maruku = u, m.dialects.Maruku.inline.__escape__ = /^\\[\\`\*_{}\[\]()#\+.!\-|:]/, m.buildBlockOrder(m.dialects.Maruku.block), m.buildInlinePatterns(m.dialects.Maruku.inline), a.Markdown = m, a.parse = m.parse, a.toHTML = m.toHTML, a.toHTMLTree = m.toHTMLTree, a.renderJsonML = m.renderJsonML | ||
536 | }(function () { | ||
537 | return window.markdown = {}, window.markdown | ||
538 | }()); \ No newline at end of file | ||
diff --git a/point/libs/normalize/normalize.js b/point/libs/normalize/normalize.js new file mode 100644 index 0000000..e1733d6 --- /dev/null +++ b/point/libs/normalize/normalize.js | |||
@@ -0,0 +1,140 @@ | |||
1 | /* | ||
2 | * css.normalize.js | ||
3 | * | ||
4 | * CSS Normalization | ||
5 | * | ||
6 | * CSS paths are normalized based on an optional basePath and the RequireJS config | ||
7 | * | ||
8 | * Usage: | ||
9 | * normalize(css, fromBasePath, toBasePath); | ||
10 | * | ||
11 | * css: the stylesheet content to normalize | ||
12 | * fromBasePath: the absolute base path of the css relative to any root (but without ../ backtracking) | ||
13 | * toBasePath: the absolute new base path of the css relative to the same root | ||
14 | * | ||
15 | * Absolute dependencies are left untouched. | ||
16 | * | ||
17 | * Urls in the CSS are picked up by regular expressions. | ||
18 | * These will catch all statements of the form: | ||
19 | * | ||
20 | * url(*) | ||
21 | * url('*') | ||
22 | * url("*") | ||
23 | * | ||
24 | * @import '*' | ||
25 | * @import "*" | ||
26 | * | ||
27 | * (and so also @import url(*) variations) | ||
28 | * | ||
29 | * For urls needing normalization | ||
30 | * | ||
31 | */ | ||
32 | |||
33 | define(function () { | ||
34 | |||
35 | // regular expression for removing double slashes | ||
36 | // eg http://www.example.com//my///url/here -> http://www.example.com/my/url/here | ||
37 | var slashes = /([^:])\/+/g | ||
38 | var removeDoubleSlashes = function (uri) { | ||
39 | return uri.replace(slashes, '$1/'); | ||
40 | } | ||
41 | |||
42 | // given a relative URI, and two absolute base URIs, convert it from one base to another | ||
43 | var protocolRegEx = /[^\:\/]*:\/\/([^\/])*/; | ||
44 | var absUrlRegEx = /^(\/|data:)/; | ||
45 | |||
46 | function convertURIBase(uri, fromBase, toBase) { | ||
47 | if (uri.match(absUrlRegEx) || uri.match(protocolRegEx)) | ||
48 | return uri; | ||
49 | uri = removeDoubleSlashes(uri); | ||
50 | // if toBase specifies a protocol path, ensure this is the same protocol as fromBase, if not | ||
51 | // use absolute path at fromBase | ||
52 | var toBaseProtocol = toBase.match(protocolRegEx); | ||
53 | var fromBaseProtocol = fromBase.match(protocolRegEx); | ||
54 | if (fromBaseProtocol && (!toBaseProtocol || toBaseProtocol[1] != fromBaseProtocol[1] || toBaseProtocol[2] != fromBaseProtocol[2])) | ||
55 | return absoluteURI(uri, fromBase); | ||
56 | |||
57 | else { | ||
58 | return relativeURI(absoluteURI(uri, fromBase), toBase); | ||
59 | } | ||
60 | }; | ||
61 | |||
62 | // given a relative URI, calculate the absolute URI | ||
63 | function absoluteURI(uri, base) { | ||
64 | if (uri.substr(0, 2) == './') | ||
65 | uri = uri.substr(2); | ||
66 | |||
67 | // absolute urls are left in tact | ||
68 | if (uri.match(absUrlRegEx) || uri.match(protocolRegEx)) | ||
69 | return uri; | ||
70 | |||
71 | var baseParts = base.split('/'); | ||
72 | var uriParts = uri.split('/'); | ||
73 | |||
74 | baseParts.pop(); | ||
75 | |||
76 | while (curPart = uriParts.shift()) | ||
77 | if (curPart == '..') | ||
78 | baseParts.pop(); | ||
79 | else | ||
80 | baseParts.push(curPart); | ||
81 | |||
82 | return baseParts.join('/'); | ||
83 | }; | ||
84 | |||
85 | |||
86 | // given an absolute URI, calculate the relative URI | ||
87 | function relativeURI(uri, base) { | ||
88 | |||
89 | // reduce base and uri strings to just their difference string | ||
90 | var baseParts = base.split('/'); | ||
91 | baseParts.pop(); | ||
92 | base = baseParts.join('/') + '/'; | ||
93 | i = 0; | ||
94 | while (base.substr(i, 1) == uri.substr(i, 1)) | ||
95 | i++; | ||
96 | while (base.substr(i, 1) != '/') | ||
97 | i--; | ||
98 | base = base.substr(i + 1); | ||
99 | uri = uri.substr(i + 1); | ||
100 | |||
101 | // each base folder difference is thus a backtrack | ||
102 | baseParts = base.split('/'); | ||
103 | var uriParts = uri.split('/'); | ||
104 | out = ''; | ||
105 | while (baseParts.shift()) | ||
106 | out += '../'; | ||
107 | |||
108 | // finally add uri parts | ||
109 | while (curPart = uriParts.shift()) | ||
110 | out += curPart + '/'; | ||
111 | |||
112 | return out.substr(0, out.length - 1); | ||
113 | }; | ||
114 | |||
115 | var normalizeCSS = function (source, fromBase, toBase) { | ||
116 | |||
117 | fromBase = removeDoubleSlashes(fromBase); | ||
118 | toBase = removeDoubleSlashes(toBase); | ||
119 | |||
120 | var urlRegEx = /@import\s*("([^"]*)"|'([^']*)')|url\s*\(\s*(\s*"([^"]*)"|'([^']*)'|[^\)]*\s*)\s*\)/ig; | ||
121 | var result, url, source; | ||
122 | |||
123 | while (result = urlRegEx.exec(source)) { | ||
124 | url = result[3] || result[2] || result[5] || result[6] || result[4]; | ||
125 | var newUrl; | ||
126 | newUrl = convertURIBase(url, fromBase, toBase); | ||
127 | var quoteLen = result[5] || result[6] ? 1 : 0; | ||
128 | source = source.substr(0, urlRegEx.lastIndex - url.length - quoteLen - 1) + newUrl + source.substr(urlRegEx.lastIndex - quoteLen - 1); | ||
129 | urlRegEx.lastIndex = urlRegEx.lastIndex + (newUrl.length - url.length); | ||
130 | } | ||
131 | |||
132 | return source; | ||
133 | }; | ||
134 | |||
135 | normalizeCSS.convertURIBase = convertURIBase; | ||
136 | normalizeCSS.absoluteURI = absoluteURI; | ||
137 | normalizeCSS.relativeURI = relativeURI; | ||
138 | |||
139 | return normalizeCSS; | ||
140 | }); | ||
diff --git a/point/libs/normalizecss/normalize.css b/point/libs/normalizecss/normalize.css new file mode 100644 index 0000000..67a5436 --- /dev/null +++ b/point/libs/normalizecss/normalize.css | |||
@@ -0,0 +1,425 @@ | |||
1 | /*! normalize.css v3.0.1 | MIT License | git.io/normalize */ | ||
2 | |||
3 | /** | ||
4 | * 1. Set default font family to sans-serif. | ||
5 | * 2. Prevent iOS text size adjust after orientation change, without disabling | ||
6 | * user zoom. | ||
7 | */ | ||
8 | |||
9 | html { | ||
10 | font-family: sans-serif; /* 1 */ | ||
11 | -ms-text-size-adjust: 100%; /* 2 */ | ||
12 | -webkit-text-size-adjust: 100%; /* 2 */ | ||
13 | } | ||
14 | |||
15 | /** | ||
16 | * Remove default margin. | ||
17 | */ | ||
18 | |||
19 | body { | ||
20 | margin: 0; | ||
21 | } | ||
22 | |||
23 | /* HTML5 display definitions | ||
24 | ========================================================================== */ | ||
25 | |||
26 | /** | ||
27 | * Correct `block` display not defined for any HTML5 element in IE 8/9. | ||
28 | * Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. | ||
29 | * Correct `block` display not defined for `main` in IE 11. | ||
30 | */ | ||
31 | |||
32 | article, | ||
33 | aside, | ||
34 | details, | ||
35 | figcaption, | ||
36 | figure, | ||
37 | footer, | ||
38 | header, | ||
39 | hgroup, | ||
40 | main, | ||
41 | nav, | ||
42 | section, | ||
43 | summary { | ||
44 | display: block; | ||
45 | } | ||
46 | |||
47 | /** | ||
48 | * 1. Correct `inline-block` display not defined in IE 8/9. | ||
49 | * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. | ||
50 | */ | ||
51 | |||
52 | audio, | ||
53 | canvas, | ||
54 | progress, | ||
55 | video { | ||
56 | display: inline-block; /* 1 */ | ||
57 | vertical-align: baseline; /* 2 */ | ||
58 | } | ||
59 | |||
60 | /** | ||
61 | * Prevent modern browsers from displaying `audio` without controls. | ||
62 | * Remove excess height in iOS 5 devices. | ||
63 | */ | ||
64 | |||
65 | audio:not([controls]) { | ||
66 | display: none; | ||
67 | height: 0; | ||
68 | } | ||
69 | |||
70 | /** | ||
71 | * Address `[hidden]` styling not present in IE 8/9/10. | ||
72 | * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. | ||
73 | */ | ||
74 | |||
75 | [hidden], | ||
76 | template { | ||
77 | display: none; | ||
78 | } | ||
79 | |||
80 | /* Links | ||
81 | ========================================================================== */ | ||
82 | |||
83 | /** | ||
84 | * Remove the gray background color from active links in IE 10. | ||
85 | */ | ||
86 | |||
87 | a { | ||
88 | background: transparent; | ||
89 | } | ||
90 | |||
91 | /** | ||
92 | * Improve readability when focused and also mouse hovered in all browsers. | ||
93 | */ | ||
94 | |||
95 | a:active, | ||
96 | a:hover { | ||
97 | outline: 0; | ||
98 | } | ||
99 | |||
100 | /* Text-level semantics | ||
101 | ========================================================================== */ | ||
102 | |||
103 | /** | ||
104 | * Address styling not present in IE 8/9/10/11, Safari, and Chrome. | ||
105 | */ | ||
106 | |||
107 | abbr[title] { | ||
108 | border-bottom: 1px dotted; | ||
109 | } | ||
110 | |||
111 | /** | ||
112 | * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. | ||
113 | */ | ||
114 | |||
115 | b, | ||
116 | strong { | ||
117 | font-weight: bold; | ||
118 | } | ||
119 | |||
120 | /** | ||
121 | * Address styling not present in Safari and Chrome. | ||
122 | */ | ||
123 | |||
124 | dfn { | ||
125 | font-style: italic; | ||
126 | } | ||
127 | |||
128 | /** | ||
129 | * Address variable `h1` font-size and margin within `section` and `article` | ||
130 | * contexts in Firefox 4+, Safari, and Chrome. | ||
131 | */ | ||
132 | |||
133 | h1 { | ||
134 | font-size: 2em; | ||
135 | margin: 0.67em 0; | ||
136 | } | ||
137 | |||
138 | /** | ||
139 | * Address styling not present in IE 8/9. | ||
140 | */ | ||
141 | |||
142 | mark { | ||
143 | background: #ff0; | ||
144 | color: #000; | ||
145 | } | ||
146 | |||
147 | /** | ||
148 | * Address inconsistent and variable font size in all browsers. | ||
149 | */ | ||
150 | |||
151 | small { | ||
152 | font-size: 80%; | ||
153 | } | ||
154 | |||
155 | /** | ||
156 | * Prevent `sub` and `sup` affecting `line-height` in all browsers. | ||
157 | */ | ||
158 | |||
159 | sub, | ||
160 | sup { | ||
161 | font-size: 75%; | ||
162 | line-height: 0; | ||
163 | position: relative; | ||
164 | vertical-align: baseline; | ||
165 | } | ||
166 | |||
167 | sup { | ||
168 | top: -0.5em; | ||
169 | } | ||
170 | |||
171 | sub { | ||
172 | bottom: -0.25em; | ||
173 | } | ||
174 | |||
175 | /* Embedded content | ||
176 | ========================================================================== */ | ||
177 | |||
178 | /** | ||
179 | * Remove border when inside `a` element in IE 8/9/10. | ||
180 | */ | ||
181 | |||
182 | img { | ||
183 | border: 0; | ||
184 | } | ||
185 | |||
186 | /** | ||
187 | * Correct overflow not hidden in IE 9/10/11. | ||
188 | */ | ||
189 | |||
190 | svg:not(:root) { | ||
191 | overflow: hidden; | ||
192 | } | ||
193 | |||
194 | /* Grouping content | ||
195 | ========================================================================== */ | ||
196 | |||
197 | /** | ||
198 | * Address margin not present in IE 8/9 and Safari. | ||
199 | */ | ||
200 | |||
201 | figure { | ||
202 | margin: 1em 40px; | ||
203 | } | ||
204 | |||
205 | /** | ||
206 | * Address differences between Firefox and other browsers. | ||
207 | */ | ||
208 | |||
209 | hr { | ||
210 | -moz-box-sizing: content-box; | ||
211 | box-sizing: content-box; | ||
212 | height: 0; | ||
213 | } | ||
214 | |||
215 | /** | ||
216 | * Contain overflow in all browsers. | ||
217 | */ | ||
218 | |||
219 | pre { | ||
220 | overflow: auto; | ||
221 | } | ||
222 | |||
223 | /** | ||
224 | * Address odd `em`-unit font size rendering in all browsers. | ||
225 | */ | ||
226 | |||
227 | code, | ||
228 | kbd, | ||
229 | pre, | ||
230 | samp { | ||
231 | font-family: monospace, monospace; | ||
232 | font-size: 1em; | ||
233 | } | ||
234 | |||
235 | /* Forms | ||
236 | ========================================================================== */ | ||
237 | |||
238 | /** | ||
239 | * Known limitation: by default, Chrome and Safari on OS X allow very limited | ||
240 | * styling of `select`, unless a `border` property is set. | ||
241 | */ | ||
242 | |||
243 | /** | ||
244 | * 1. Correct color not being inherited. | ||
245 | * Known issue: affects color of disabled elements. | ||
246 | * 2. Correct font properties not being inherited. | ||
247 | * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. | ||
248 | */ | ||
249 | |||
250 | button, | ||
251 | input, | ||
252 | optgroup, | ||
253 | select, | ||
254 | textarea { | ||
255 | color: inherit; /* 1 */ | ||
256 | font: inherit; /* 2 */ | ||
257 | margin: 0; /* 3 */ | ||
258 | } | ||
259 | |||
260 | /** | ||
261 | * Address `overflow` set to `hidden` in IE 8/9/10/11. | ||
262 | */ | ||
263 | |||
264 | button { | ||
265 | overflow: visible; | ||
266 | } | ||
267 | |||
268 | /** | ||
269 | * Address inconsistent `text-transform` inheritance for `button` and `select`. | ||
270 | * All other form control elements do not inherit `text-transform` values. | ||
271 | * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. | ||
272 | * Correct `select` style inheritance in Firefox. | ||
273 | */ | ||
274 | |||
275 | button, | ||
276 | select { | ||
277 | text-transform: none; | ||
278 | } | ||
279 | |||
280 | /** | ||
281 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` | ||
282 | * and `video` controls. | ||
283 | * 2. Correct inability to style clickable `input` types in iOS. | ||
284 | * 3. Improve usability and consistency of cursor style between image-type | ||
285 | * `input` and others. | ||
286 | */ | ||
287 | |||
288 | button, | ||
289 | html input[type="button"], /* 1 */ | ||
290 | input[type="reset"], | ||
291 | input[type="submit"] { | ||
292 | -webkit-appearance: button; /* 2 */ | ||
293 | cursor: pointer; /* 3 */ | ||
294 | } | ||
295 | |||
296 | /** | ||
297 | * Re-set default cursor for disabled elements. | ||
298 | */ | ||
299 | |||
300 | button[disabled], | ||
301 | html input[disabled] { | ||
302 | cursor: default; | ||
303 | } | ||
304 | |||
305 | /** | ||
306 | * Remove inner padding and border in Firefox 4+. | ||
307 | */ | ||
308 | |||
309 | button::-moz-focus-inner, | ||
310 | input::-moz-focus-inner { | ||
311 | border: 0; | ||
312 | padding: 0; | ||
313 | } | ||
314 | |||
315 | /** | ||
316 | * Address Firefox 4+ setting `line-height` on `input` using `!important` in | ||
317 | * the UA stylesheet. | ||
318 | */ | ||
319 | |||
320 | input { | ||
321 | line-height: normal; | ||
322 | } | ||
323 | |||
324 | /** | ||
325 | * It's recommended that you don't attempt to style these elements. | ||
326 | * Firefox's implementation doesn't respect box-sizing, padding, or width. | ||
327 | * | ||
328 | * 1. Address box sizing set to `content-box` in IE 8/9/10. | ||
329 | * 2. Remove excess padding in IE 8/9/10. | ||
330 | */ | ||
331 | |||
332 | input[type="checkbox"], | ||
333 | input[type="radio"] { | ||
334 | box-sizing: border-box; /* 1 */ | ||
335 | padding: 0; /* 2 */ | ||
336 | } | ||
337 | |||
338 | /** | ||
339 | * Fix the cursor style for Chrome's increment/decrement buttons. For certain | ||
340 | * `font-size` values of the `input`, it causes the cursor style of the | ||
341 | * decrement button to change from `default` to `text`. | ||
342 | */ | ||
343 | |||
344 | input[type="number"]::-webkit-inner-spin-button, | ||
345 | input[type="number"]::-webkit-outer-spin-button { | ||
346 | height: auto; | ||
347 | } | ||
348 | |||
349 | /** | ||
350 | * 1. Address `appearance` set to `searchfield` in Safari and Chrome. | ||
351 | * 2. Address `box-sizing` set to `border-box` in Safari and Chrome | ||
352 | * (include `-moz` to future-proof). | ||
353 | */ | ||
354 | |||
355 | input[type="search"] { | ||
356 | -webkit-appearance: textfield; /* 1 */ | ||
357 | -moz-box-sizing: content-box; | ||
358 | -webkit-box-sizing: content-box; /* 2 */ | ||
359 | box-sizing: content-box; | ||
360 | } | ||
361 | |||
362 | /** | ||
363 | * Remove inner padding and search cancel button in Safari and Chrome on OS X. | ||
364 | * Safari (but not Chrome) clips the cancel button when the search input has | ||
365 | * padding (and `textfield` appearance). | ||
366 | */ | ||
367 | |||
368 | input[type="search"]::-webkit-search-cancel-button, | ||
369 | input[type="search"]::-webkit-search-decoration { | ||
370 | -webkit-appearance: none; | ||
371 | } | ||
372 | |||
373 | /** | ||
374 | * Define consistent border, margin, and padding. | ||
375 | */ | ||
376 | |||
377 | fieldset { | ||
378 | border: 1px solid #c0c0c0; | ||
379 | margin: 0 2px; | ||
380 | padding: 0.35em 0.625em 0.75em; | ||
381 | } | ||
382 | |||
383 | /** | ||
384 | * 1. Correct `color` not being inherited in IE 8/9/10/11. | ||
385 | * 2. Remove padding so people aren't caught out if they zero out fieldsets. | ||
386 | */ | ||
387 | |||
388 | legend { | ||
389 | border: 0; /* 1 */ | ||
390 | padding: 0; /* 2 */ | ||
391 | } | ||
392 | |||
393 | /** | ||
394 | * Remove default vertical scrollbar in IE 8/9/10/11. | ||
395 | */ | ||
396 | |||
397 | textarea { | ||
398 | overflow: auto; | ||
399 | } | ||
400 | |||
401 | /** | ||
402 | * Don't inherit the `font-weight` (applied by a rule above). | ||
403 | * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. | ||
404 | */ | ||
405 | |||
406 | optgroup { | ||
407 | font-weight: bold; | ||
408 | } | ||
409 | |||
410 | /* Tables | ||
411 | ========================================================================== */ | ||
412 | |||
413 | /** | ||
414 | * Remove most spacing between table cells. | ||
415 | */ | ||
416 | |||
417 | table { | ||
418 | border-collapse: collapse; | ||
419 | border-spacing: 0; | ||
420 | } | ||
421 | |||
422 | td, | ||
423 | th { | ||
424 | padding: 0; | ||
425 | } | ||
diff --git a/point/libs/pdfjs/pdf.js b/point/libs/pdfjs/pdf.js new file mode 100644 index 0000000..929914f --- /dev/null +++ b/point/libs/pdfjs/pdf.js | |||
@@ -0,0 +1,8550 @@ | |||
1 | /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ | ||
2 | /* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ | ||
3 | /* Copyright 2012 Mozilla Foundation | ||
4 | * | ||
5 | * Licensed under the Apache License, Version 2.0 (the "License"); | ||
6 | * you may not use this file except in compliance with the License. | ||
7 | * You may obtain a copy of the License at | ||
8 | * | ||
9 | * http://www.apache.org/licenses/LICENSE-2.0 | ||
10 | * | ||
11 | * Unless required by applicable law or agreed to in writing, software | ||
12 | * distributed under the License is distributed on an "AS IS" BASIS, | ||
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
14 | * See the License for the specific language governing permissions and | ||
15 | * limitations under the License. | ||
16 | */ | ||
17 | /*jshint globalstrict: false */ | ||
18 | |||
19 | // Initializing PDFJS global object (if still undefined) | ||
20 | if (typeof PDFJS === 'undefined') { | ||
21 | (typeof window !== 'undefined' ? window : this).PDFJS = {}; | ||
22 | } | ||
23 | |||
24 | PDFJS.version = '1.0.68'; | ||
25 | PDFJS.build = 'ead4cbf'; | ||
26 | |||
27 | (function pdfjsWrapper() { | ||
28 | // Use strict in our context only - users might not want it | ||
29 | 'use strict'; | ||
3 |