1
1
/*!
2
- * Vue-html5-editor 0.4.2
2
+ * Vue-html5-editor 0.5.0
3
3
* https://github.com/PeakTai/vue-html5-editor
4
4
*/
5
5
( function webpackUniversalModuleDefinition ( root , factory ) {
@@ -132,6 +132,10 @@ return /******/ (function(modules) { // webpackBootstrap
132
132
133
133
var _enUs2 = _interopRequireDefault ( _enUs ) ;
134
134
135
+ var _arrayPolyfill = __webpack_require__ ( 126 ) ;
136
+
137
+ var _arrayPolyfill2 = _interopRequireDefault ( _arrayPolyfill ) ;
138
+
135
139
function _interopRequireDefault ( obj ) { return obj && obj . __esModule ? obj : { default : obj } ; }
136
140
137
141
/**
@@ -141,6 +145,8 @@ return /******/ (function(modules) { // webpackBootstrap
141
145
*/
142
146
exports . install = function ( Vue , options ) {
143
147
148
+ ( 0 , _arrayPolyfill2 . default ) ( ) ;
149
+
144
150
options = options || { } ;
145
151
146
152
//modules
@@ -157,6 +163,32 @@ return /******/ (function(modules) { // webpackBootstrap
157
163
modules = modules . concat ( arr ) ;
158
164
} ) ( ) ;
159
165
}
166
+ //hidden modules
167
+ if ( Array . isArray ( options . hiddenModules ) ) {
168
+ modules = function ( ) {
169
+ var arr = [ ] ;
170
+ modules . forEach ( function ( m ) {
171
+ if ( ! options . hiddenModules . includes ( m . name ) ) {
172
+ arr . push ( m ) ;
173
+ }
174
+ } ) ;
175
+ return arr ;
176
+ } ( ) ;
177
+ }
178
+ //visible modules
179
+ if ( Array . isArray ( options . visibleModules ) ) {
180
+ modules = function ( ) {
181
+ var arr = [ ] ;
182
+ options . visibleModules . forEach ( function ( name ) {
183
+ modules . forEach ( function ( module ) {
184
+ if ( module . name == name ) {
185
+ arr . push ( module ) ;
186
+ }
187
+ } ) ;
188
+ } ) ;
189
+ return arr ;
190
+ } ( ) ;
191
+ }
160
192
161
193
var components = { } ;
162
194
modules . forEach ( function ( module ) {
@@ -1053,7 +1085,8 @@ return /******/ (function(modules) { // webpackBootstrap
1053
1085
exports . default = {
1054
1086
props : {
1055
1087
content : {
1056
- twoWay : true ,
1088
+ //no longer be required
1089
+ //twoWay: true,
1057
1090
type : String ,
1058
1091
required : true ,
1059
1092
default : ""
@@ -1133,6 +1166,9 @@ return /******/ (function(modules) { // webpackBootstrap
1133
1166
computeDashboardStyle : function computeDashboardStyle ( ) {
1134
1167
this . dashboardStyle = { 'max-height' : this . $els . content . clientHeight + 'px' } ;
1135
1168
} ,
1169
+ getContentElement : function getContentElement ( ) {
1170
+ return this . $els . content ;
1171
+ } ,
1136
1172
toggleFullScreen : function toggleFullScreen ( ) {
1137
1173
this . fullScreen = ! this . fullScreen ;
1138
1174
} ,
@@ -1146,11 +1182,11 @@ return /******/ (function(modules) { // webpackBootstrap
1146
1182
this . dashboard = null ;
1147
1183
} ,
1148
1184
getCurrentRange : function getCurrentRange ( ) {
1149
- var selection = window . getSelection ( ) ;
1150
- return selection . rangeCount ? selection . getRangeAt ( 0 ) : null ;
1185
+ return this . range ;
1151
1186
} ,
1152
1187
saveCurrentRange : function saveCurrentRange ( ) {
1153
- var range = this . getCurrentRange ( ) ;
1188
+ var selection = window . getSelection ? window . getSelection ( ) : document . getSelection ( ) ;
1189
+ var range = selection . rangeCount ? selection . getRangeAt ( 0 ) : null ;
1154
1190
if ( ! range ) {
1155
1191
return ;
1156
1192
}
@@ -1159,7 +1195,7 @@ return /******/ (function(modules) { // webpackBootstrap
1159
1195
}
1160
1196
} ,
1161
1197
restoreSelection : function restoreSelection ( ) {
1162
- var selection = window . getSelection ( ) ;
1198
+ var selection = window . getSelection ? window . getSelection ( ) : document . getSelection ( ) ;
1163
1199
selection . removeAllRanges ( ) ;
1164
1200
if ( this . range ) {
1165
1201
selection . addRange ( this . range ) ;
@@ -1202,20 +1238,17 @@ return /******/ (function(modules) { // webpackBootstrap
1202
1238
component . content = component . $els . content . innerHTML ;
1203
1239
} , false ) ;
1204
1240
1205
- component . touchHander = function ( e ) {
1206
- var isInside = component . $els . content . contains ( e . target ) ;
1207
- var currentRange = component . getCurrentRange ( ) ;
1208
- var clear = currentRange && currentRange . startContainer === currentRange . endContainer && currentRange . startOffset === currentRange . endOffset ;
1209
- if ( ! clear || isInside ) {
1241
+ component . touchHandler = function ( e ) {
1242
+ if ( component . $els . content . contains ( e . target ) ) {
1210
1243
component . saveCurrentRange ( ) ;
1211
1244
}
1212
1245
} ;
1213
1246
1214
- window . addEventListener ( "touchend" , component . touchHander , false ) ;
1247
+ window . addEventListener ( "touchend" , component . touchHandler , false ) ;
1215
1248
} ,
1216
1249
beforeDestroy : function beforeDestroy ( ) {
1217
1250
var editor = this ;
1218
- window . removeEventListener ( "touchend" , editor . touchHander ) ;
1251
+ window . removeEventListener ( "touchend" , editor . touchHandler ) ;
1219
1252
editor . modules . forEach ( function ( module ) {
1220
1253
if ( typeof module . destroyed == "function" ) {
1221
1254
module . destroyed ( editor ) ;
@@ -1416,13 +1449,22 @@ return /******/ (function(modules) { // webpackBootstrap
1416
1449
// </label>
1417
1450
// <button v-for="size in 7" type="button" @click="setFontSize(size+1)">{{size+1}}</button>
1418
1451
// </div>
1452
+ // <div>
1453
+ // <label>
1454
+ // {{$parent.locale["line height"]}}:
1455
+ // </label>
1456
+ // <button v-for="lh in lineHeightList" type="button" @click="setLineHeight(lh)">
1457
+ // {{lh}}
1458
+ // </button>
1459
+ // </div>
1419
1460
// </div>
1420
1461
// </template>
1421
1462
// <script>
1422
1463
exports . default = {
1423
1464
data : function data ( ) {
1424
1465
return {
1425
- nameList : [ "Microsoft YaHei" , "Helvetica Neue" , "Helvetica" , "Arial" , "sans-serif" , "Verdana" , "Georgia" , "Times New Roman" , "Trebuchet MS" , "Microsoft JhengHei" , "Courier New" , "Impact" , "Comic Sans MS" , "Consolas" ]
1466
+ nameList : [ "Microsoft YaHei" , "Helvetica Neue" , "Helvetica" , "Arial" , "sans-serif" , "Verdana" , "Georgia" , "Times New Roman" , "Trebuchet MS" , "Microsoft JhengHei" , "Courier New" , "Impact" , "Comic Sans MS" , "Consolas" ] ,
1467
+ lineHeightList : [ "1.0" , "1.5" , "1.8" , "2.0" , "2.5" , "3.0" ]
1426
1468
} ;
1427
1469
} ,
1428
1470
@@ -1435,6 +1477,48 @@ return /******/ (function(modules) { // webpackBootstrap
1435
1477
} ,
1436
1478
setHeading : function setHeading ( heading ) {
1437
1479
this . $parent . execCommand ( "formatBlock" , "h" + heading ) ;
1480
+ } ,
1481
+ _contains : function _contains ( arr , el ) {
1482
+ for ( var i = 0 ; i < arr . length ; i ++ ) {
1483
+ if ( arr [ i ] == el ) {
1484
+ return true ;
1485
+ }
1486
+ }
1487
+ return false ;
1488
+ } ,
1489
+ setLineHeight : function setLineHeight ( lh ) {
1490
+ var range = this . $parent . getCurrentRange ( ) ;
1491
+ if ( ! range ) {
1492
+ return ;
1493
+ }
1494
+ if ( ! range . collapsed ) {
1495
+ range . collapse ( ) ;
1496
+ }
1497
+ //find parent block element
1498
+ var blockNodeNames = [ "DIV" , "P" , "SECTION" , "H1" , "H2" , "H3" , "H4" , "H5" , "H6" , "OL" , "UL" , "LI" , "BODY" ] ;
1499
+ var container = range . endContainer ;
1500
+ while ( container ) {
1501
+ if ( container . nodeType != 1 ) {
1502
+ container = container . parentNode ;
1503
+ continue ;
1504
+ }
1505
+
1506
+ if ( blockNodeNames . includes ( container . nodeName ) ) {
1507
+ break ;
1508
+ }
1509
+ container = container . parentNode ;
1510
+ }
1511
+ var contentEl = this . $parent . getContentElement ( ) ;
1512
+ if ( contentEl . contains ( container ) ) {
1513
+ container . style . lineHeight = lh ;
1514
+ } else {
1515
+ container = range . endContainer ;
1516
+ var div = document . createElement ( "div" ) ;
1517
+ div . innerText = container . innerText || container . textContent ;
1518
+ div . style . lineHeight = lh ;
1519
+ container . parentNode . replaceChild ( div , container ) ;
1520
+ }
1521
+ this . $parent . toggleDashboard ( "font" ) ;
1438
1522
}
1439
1523
}
1440
1524
} ;
@@ -1444,7 +1528,7 @@ return /******/ (function(modules) { // webpackBootstrap
1444
1528
/* 51 */
1445
1529
/***/ function ( module , exports ) {
1446
1530
1447
- module . exports = "\n<div class=\"dashboard-font\">\n <div>\n <label>{{$parent.locale[\"heading\"]}}:</label>\n <button v-for=\"h in 6\" type=\"button\" @click=\"setHeading(h+1)\">H{{h+1}}</button>\n </div>\n <div>\n <label>\n {{$parent.locale[\"font name\"]}}:\n </label>\n <button v-for=\"name in nameList\" type=\"button\" @click=\"setFontName(name)\">{{name}}</button>\n </div>\n <div>\n <label>\n {{$parent.locale[\"font size\"]}}:\n </label>\n <button v-for=\"size in 7\" type=\"button\" @click=\"setFontSize(size+1)\">{{size+1}}</button>\n </div>\n</div>\n" ;
1531
+ module . exports = "\n<div class=\"dashboard-font\">\n <div>\n <label>{{$parent.locale[\"heading\"]}}:</label>\n <button v-for=\"h in 6\" type=\"button\" @click=\"setHeading(h+1)\">H{{h+1}}</button>\n </div>\n <div>\n <label>\n {{$parent.locale[\"font name\"]}}:\n </label>\n <button v-for=\"name in nameList\" type=\"button\" @click=\"setFontName(name)\">{{name}}</button>\n </div>\n <div>\n <label>\n {{$parent.locale[\"font size\"]}}:\n </label>\n <button v-for=\"size in 7\" type=\"button\" @click=\"setFontSize(size+1)\">{{size+1}}</button>\n </div>\n <div>\n <label>\n {{$parent.locale[\"line height\"]}}:\n </label>\n <button v-for=\"lh in lineHeightList\" type=\"button\" @click=\"setLineHeight(lh)\">\n {{lh}}\n </button>\n </div>\n </div>\n" ;
1448
1532
1449
1533
/***/ } ,
1450
1534
/* 52 */
@@ -1987,7 +2071,15 @@ return /******/ (function(modules) { // webpackBootstrap
1987
2071
compress : true ,
1988
2072
width : 1600 ,
1989
2073
height : 1600 ,
1990
- quality : 80
2074
+ quality : 80 ,
2075
+ uploadHandler : function uploadHandler ( responseText ) {
2076
+ var json = JSON . parse ( responseText ) ;
2077
+ if ( ! json . ok ) {
2078
+ alert ( json . msg ) ;
2079
+ } else {
2080
+ return json . data ;
2081
+ }
2082
+ }
1991
2083
} ,
1992
2084
dashboard : _dashboard2 . default
1993
2085
} ;
@@ -2129,13 +2221,16 @@ return /******/ (function(modules) { // webpackBootstrap
2129
2221
return ;
2130
2222
}
2131
2223
component . upload . status = "success" ;
2132
- var json = JSON . parse ( xhr . responseText ) ;
2133
- if ( ! json . ok ) {
2134
- alert ( json . msg ) ;
2135
- } else {
2136
- component . $parent . execCommand ( "insertImage" , json . data ) ;
2224
+ try {
2225
+ var url = config . uploadHandler ( xhr . responseText ) ;
2226
+ if ( url ) {
2227
+ component . $parent . execCommand ( "insertImage" , url ) ;
2228
+ }
2229
+ } catch ( e ) {
2230
+ console . error ( e ) ;
2231
+ } finally {
2232
+ component . upload . status = "ready" ;
2137
2233
}
2138
- component . upload . status = "ready" ;
2139
2234
} ;
2140
2235
xhr . onerror = function ( e ) {
2141
2236
component . upload . status = "error" ;
@@ -3967,7 +4062,7 @@ return /******/ (function(modules) { // webpackBootstrap
3967
4062
exports . default = {
3968
4063
data : function data ( ) {
3969
4064
return {
3970
- version : ( "0.4.2 " )
4065
+ version : ( "0.5.0 " )
3971
4066
} ;
3972
4067
}
3973
4068
} ;
@@ -4030,7 +4125,8 @@ return /******/ (function(modules) { // webpackBootstrap
4030
4125
"abort" : "中断" ,
4031
4126
"reset" : "重置" ,
4032
4127
"hr" : "分隔线" ,
4033
- "undo" : "撤消"
4128
+ "undo" : "撤消" ,
4129
+ "line height" : "行高"
4034
4130
} ;
4035
4131
4036
4132
/***/ } ,
@@ -4084,7 +4180,55 @@ return /******/ (function(modules) { // webpackBootstrap
4084
4180
"abort" : "abort" ,
4085
4181
"reset" : "reset" ,
4086
4182
"hr" : "horizontal rule" ,
4087
- "undo" : "undo"
4183
+ "undo" : "undo" ,
4184
+ "line height" : "line height"
4185
+ } ;
4186
+
4187
+ /***/ } ,
4188
+ /* 126 */
4189
+ /***/ function ( module , exports ) {
4190
+
4191
+ 'use strict' ;
4192
+
4193
+ Object . defineProperty ( exports , "__esModule" , {
4194
+ value : true
4195
+ } ) ;
4196
+
4197
+ exports . default = function ( ) {
4198
+ if ( ! Array . prototype . includes ) {
4199
+ Array . prototype . includes = function ( searchElement /*, fromIndex*/ ) {
4200
+ 'use strict' ;
4201
+
4202
+ if ( this == null ) {
4203
+ throw new TypeError ( 'Array.prototype.includes called on null or undefined' ) ;
4204
+ }
4205
+
4206
+ var O = Object ( this ) ;
4207
+ var len = parseInt ( O . length , 10 ) || 0 ;
4208
+ if ( len === 0 ) {
4209
+ return false ;
4210
+ }
4211
+ var n = parseInt ( arguments [ 1 ] , 10 ) || 0 ;
4212
+ var k ;
4213
+ if ( n >= 0 ) {
4214
+ k = n ;
4215
+ } else {
4216
+ k = len + n ;
4217
+ if ( k < 0 ) {
4218
+ k = 0 ;
4219
+ }
4220
+ }
4221
+ var currentElement ;
4222
+ while ( k < len ) {
4223
+ currentElement = O [ k ] ;
4224
+ if ( searchElement === currentElement || searchElement !== searchElement && currentElement !== currentElement ) {
4225
+ return true ;
4226
+ }
4227
+ k ++ ;
4228
+ }
4229
+ return false ;
4230
+ } ;
4231
+ }
4088
4232
} ;
4089
4233
4090
4234
/***/ }
0 commit comments