activeadmin_quill_editor 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/javascripts/activeadmin/quill_editor/quill.core.js +1034 -913
- data/app/assets/javascripts/activeadmin/quill_editor/quill.js +1221 -1012
- data/app/assets/javascripts/activeadmin/quill_editor/quill.min.js +2 -2
- data/app/assets/javascripts/activeadmin/quill_editor_input.js +12 -2
- data/app/assets/stylesheets/activeadmin/quill_editor/quill.bubble.css +1 -1
- data/app/assets/stylesheets/activeadmin/quill_editor/quill.core.css +1 -1
- data/app/assets/stylesheets/activeadmin/quill_editor/quill.snow.css +1 -1
- data/lib/activeadmin/quill_editor/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a8779e983b004bbbba08b5eaebeb8f24ecf6be88
|
4
|
+
data.tar.gz: 143fcced1a344c6c10e5b45b7d57c5e5d6c5ff5e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5ff21b3249db6c130af802028609b6fb6b4c6a95ac9ce28d1b711dc26cd9aa9531fb83981bc979d49ba9b89bfa98dbf328f6254db82e8f62bac6e070a9446dfc
|
7
|
+
data.tar.gz: c3511d083ac1212977d591c28ee073935e6a11988af17e5b13251557d9a42b049572d55e901caede299e22c123ab024952f062d53135f93b51369570f787cf43
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Quill Editor v1.3.
|
2
|
+
* Quill Editor v1.3.6
|
3
3
|
* https://quilljs.com/
|
4
4
|
* Copyright (c) 2014, Jason Chen
|
5
5
|
* Copyright (c) 2013, salesforce.com
|
@@ -13,7 +13,7 @@
|
|
13
13
|
exports["Quill"] = factory();
|
14
14
|
else
|
15
15
|
root["Quill"] = factory();
|
16
|
-
})(this, function() {
|
16
|
+
})(typeof self !== 'undefined' ? self : this, function() {
|
17
17
|
return /******/ (function(modules) { // webpackBootstrap
|
18
18
|
/******/ // The module cache
|
19
19
|
/******/ var installedModules = {};
|
@@ -117,8 +117,8 @@ var Parchment = {
|
|
117
117
|
Attribute: attributor_1.default,
|
118
118
|
Class: class_1.default,
|
119
119
|
Style: style_1.default,
|
120
|
-
Store: store_1.default
|
121
|
-
}
|
120
|
+
Store: store_1.default,
|
121
|
+
},
|
122
122
|
};
|
123
123
|
exports.default = Parchment;
|
124
124
|
|
@@ -172,16 +172,15 @@ var Scope;
|
|
172
172
|
Scope[Scope["INLINE_ATTRIBUTE"] = 5] = "INLINE_ATTRIBUTE";
|
173
173
|
Scope[Scope["ANY"] = 15] = "ANY";
|
174
174
|
})(Scope = exports.Scope || (exports.Scope = {}));
|
175
|
-
;
|
176
175
|
function create(input, value) {
|
177
176
|
var match = query(input);
|
178
177
|
if (match == null) {
|
179
178
|
throw new ParchmentError("Unable to create " + input + " blot");
|
180
179
|
}
|
181
180
|
var BlotClass = match;
|
182
|
-
var node =
|
183
|
-
|
184
|
-
|
181
|
+
var node =
|
182
|
+
// @ts-ignore
|
183
|
+
input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);
|
185
184
|
return new BlotClass(node, value);
|
186
185
|
}
|
187
186
|
exports.create = create;
|
@@ -189,6 +188,7 @@ function find(node, bubble) {
|
|
189
188
|
if (bubble === void 0) { bubble = false; }
|
190
189
|
if (node == null)
|
191
190
|
return null;
|
191
|
+
// @ts-ignore
|
192
192
|
if (node[exports.DATA_KEY] != null)
|
193
193
|
return node[exports.DATA_KEY].blot;
|
194
194
|
if (bubble)
|
@@ -201,6 +201,7 @@ function query(query, scope) {
|
|
201
201
|
var match;
|
202
202
|
if (typeof query === 'string') {
|
203
203
|
match = types[query] || attributes[query];
|
204
|
+
// @ts-ignore
|
204
205
|
}
|
205
206
|
else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {
|
206
207
|
match = types['text'];
|
@@ -224,7 +225,8 @@ function query(query, scope) {
|
|
224
225
|
}
|
225
226
|
if (match == null)
|
226
227
|
return null;
|
227
|
-
|
228
|
+
// @ts-ignore
|
229
|
+
if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)
|
228
230
|
return match;
|
229
231
|
return null;
|
230
232
|
}
|
@@ -1531,7 +1533,7 @@ Quill.DEFAULTS = {
|
|
1531
1533
|
Quill.events = _emitter4.default.events;
|
1532
1534
|
Quill.sources = _emitter4.default.sources;
|
1533
1535
|
// eslint-disable-next-line no-undef
|
1534
|
-
Quill.version = false ? 'dev' : "1.3.
|
1536
|
+
Quill.version = false ? 'dev' : "1.3.6";
|
1535
1537
|
|
1536
1538
|
Quill.imports = {
|
1537
1539
|
'delta': _quillDelta2.default,
|
@@ -1852,7 +1854,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
|
|
1852
1854
|
|
1853
1855
|
var debug = (0, _logger2.default)('quill:events');
|
1854
1856
|
|
1855
|
-
var EVENTS = ['selectionchange', 'mousedown', 'mouseup'];
|
1857
|
+
var EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];
|
1856
1858
|
|
1857
1859
|
EVENTS.forEach(function (eventName) {
|
1858
1860
|
document.addEventListener(eventName, function () {
|
@@ -2136,17 +2138,26 @@ var Attributor = /** @class */ (function () {
|
|
2136
2138
|
};
|
2137
2139
|
Attributor.prototype.canAdd = function (node, value) {
|
2138
2140
|
var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));
|
2139
|
-
if (match
|
2141
|
+
if (match == null)
|
2142
|
+
return false;
|
2143
|
+
if (this.whitelist == null)
|
2140
2144
|
return true;
|
2145
|
+
if (typeof value === 'string') {
|
2146
|
+
return this.whitelist.indexOf(value.replace(/["']/g, '')) > -1;
|
2147
|
+
}
|
2148
|
+
else {
|
2149
|
+
return this.whitelist.indexOf(value) > -1;
|
2141
2150
|
}
|
2142
|
-
return false;
|
2143
2151
|
};
|
2144
2152
|
Attributor.prototype.remove = function (node) {
|
2145
2153
|
node.removeAttribute(this.keyName);
|
2146
2154
|
};
|
2147
2155
|
Attributor.prototype.value = function (node) {
|
2148
2156
|
var value = node.getAttribute(this.keyName);
|
2149
|
-
|
2157
|
+
if (this.canAdd(node, value) && value) {
|
2158
|
+
return value;
|
2159
|
+
}
|
2160
|
+
return '';
|
2150
2161
|
};
|
2151
2162
|
return Attributor;
|
2152
2163
|
}());
|
@@ -2388,7 +2399,7 @@ var _code = __webpack_require__(13);
|
|
2388
2399
|
|
2389
2400
|
var _code2 = _interopRequireDefault(_code);
|
2390
2401
|
|
2391
|
-
var _cursor = __webpack_require__(
|
2402
|
+
var _cursor = __webpack_require__(24);
|
2392
2403
|
|
2393
2404
|
var _cursor2 = _interopRequireDefault(_cursor);
|
2394
2405
|
|
@@ -3304,21 +3315,31 @@ var shadow_1 = __webpack_require__(30);
|
|
3304
3315
|
var Registry = __webpack_require__(1);
|
3305
3316
|
var ContainerBlot = /** @class */ (function (_super) {
|
3306
3317
|
__extends(ContainerBlot, _super);
|
3307
|
-
function ContainerBlot() {
|
3308
|
-
|
3318
|
+
function ContainerBlot(domNode) {
|
3319
|
+
var _this = _super.call(this, domNode) || this;
|
3320
|
+
_this.build();
|
3321
|
+
return _this;
|
3309
3322
|
}
|
3310
3323
|
ContainerBlot.prototype.appendChild = function (other) {
|
3311
3324
|
this.insertBefore(other);
|
3312
3325
|
};
|
3313
3326
|
ContainerBlot.prototype.attach = function () {
|
3314
|
-
var _this = this;
|
3315
3327
|
_super.prototype.attach.call(this);
|
3328
|
+
this.children.forEach(function (child) {
|
3329
|
+
child.attach();
|
3330
|
+
});
|
3331
|
+
};
|
3332
|
+
ContainerBlot.prototype.build = function () {
|
3333
|
+
var _this = this;
|
3316
3334
|
this.children = new linked_list_1.default();
|
3317
3335
|
// Need to be reversed for if DOM nodes already in order
|
3318
|
-
[].slice
|
3336
|
+
[].slice
|
3337
|
+
.call(this.domNode.childNodes)
|
3338
|
+
.reverse()
|
3339
|
+
.forEach(function (node) {
|
3319
3340
|
try {
|
3320
3341
|
var child = makeBlot(node);
|
3321
|
-
_this.insertBefore(child, _this.children.head);
|
3342
|
+
_this.insertBefore(child, _this.children.head || undefined);
|
3322
3343
|
}
|
3323
3344
|
catch (err) {
|
3324
3345
|
if (err instanceof Registry.ParchmentError)
|
@@ -3352,7 +3373,8 @@ var ContainerBlot = /** @class */ (function (_super) {
|
|
3352
3373
|
ContainerBlot.prototype.descendants = function (criteria, index, length) {
|
3353
3374
|
if (index === void 0) { index = 0; }
|
3354
3375
|
if (length === void 0) { length = Number.MAX_VALUE; }
|
3355
|
-
var descendants = []
|
3376
|
+
var descendants = [];
|
3377
|
+
var lengthLeft = length;
|
3356
3378
|
this.children.forEachAt(index, length, function (child, index, length) {
|
3357
3379
|
if ((criteria.blotName == null && criteria(child)) ||
|
3358
3380
|
(criteria.blotName != null && child instanceof criteria)) {
|
@@ -3382,14 +3404,15 @@ var ContainerBlot = /** @class */ (function (_super) {
|
|
3382
3404
|
child.insertAt(offset, value, def);
|
3383
3405
|
}
|
3384
3406
|
else {
|
3385
|
-
var blot =
|
3407
|
+
var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);
|
3386
3408
|
this.appendChild(blot);
|
3387
3409
|
}
|
3388
3410
|
};
|
3389
3411
|
ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {
|
3390
|
-
if (this.statics.allowedChildren != null &&
|
3391
|
-
|
3392
|
-
|
3412
|
+
if (this.statics.allowedChildren != null &&
|
3413
|
+
!this.statics.allowedChildren.some(function (child) {
|
3414
|
+
return childBlot instanceof child;
|
3415
|
+
})) {
|
3393
3416
|
throw new Registry.ParchmentError("Cannot insert " + childBlot.statics.blotName + " into " + this.statics.blotName);
|
3394
3417
|
}
|
3395
3418
|
childBlot.insertInto(this, refBlot);
|
@@ -3460,7 +3483,8 @@ var ContainerBlot = /** @class */ (function (_super) {
|
|
3460
3483
|
};
|
3461
3484
|
ContainerBlot.prototype.update = function (mutations, context) {
|
3462
3485
|
var _this = this;
|
3463
|
-
var addedNodes = []
|
3486
|
+
var addedNodes = [];
|
3487
|
+
var removedNodes = [];
|
3464
3488
|
mutations.forEach(function (mutation) {
|
3465
3489
|
if (mutation.target === _this.domNode && mutation.type === 'childList') {
|
3466
3490
|
addedNodes.push.apply(addedNodes, mutation.addedNodes);
|
@@ -3471,8 +3495,10 @@ var ContainerBlot = /** @class */ (function (_super) {
|
|
3471
3495
|
// Check node has actually been removed
|
3472
3496
|
// One exception is Chrome does not immediately remove IFRAMEs
|
3473
3497
|
// from DOM but MutationRecord is correct in its reported removal
|
3474
|
-
if (node.parentNode != null &&
|
3475
|
-
|
3498
|
+
if (node.parentNode != null &&
|
3499
|
+
// @ts-ignore
|
3500
|
+
node.tagName !== 'IFRAME' &&
|
3501
|
+
document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {
|
3476
3502
|
return;
|
3477
3503
|
}
|
3478
3504
|
var blot = Registry.find(node);
|
@@ -3482,16 +3508,19 @@ var ContainerBlot = /** @class */ (function (_super) {
|
|
3482
3508
|
blot.detach();
|
3483
3509
|
}
|
3484
3510
|
});
|
3485
|
-
addedNodes
|
3511
|
+
addedNodes
|
3512
|
+
.filter(function (node) {
|
3486
3513
|
return node.parentNode == _this.domNode;
|
3487
|
-
})
|
3514
|
+
})
|
3515
|
+
.sort(function (a, b) {
|
3488
3516
|
if (a === b)
|
3489
3517
|
return 0;
|
3490
3518
|
if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {
|
3491
3519
|
return 1;
|
3492
3520
|
}
|
3493
3521
|
return -1;
|
3494
|
-
})
|
3522
|
+
})
|
3523
|
+
.forEach(function (node) {
|
3495
3524
|
var refBlot = null;
|
3496
3525
|
if (node.nextSibling != null) {
|
3497
3526
|
refBlot = Registry.find(node.nextSibling);
|
@@ -3501,7 +3530,7 @@ var ContainerBlot = /** @class */ (function (_super) {
|
|
3501
3530
|
if (blot.parent != null) {
|
3502
3531
|
blot.parent.removeChild(_this);
|
3503
3532
|
}
|
3504
|
-
_this.insertBefore(blot, refBlot);
|
3533
|
+
_this.insertBefore(blot, refBlot || undefined);
|
3505
3534
|
}
|
3506
3535
|
});
|
3507
3536
|
};
|
@@ -3516,9 +3545,12 @@ function makeBlot(node) {
|
|
3516
3545
|
catch (e) {
|
3517
3546
|
blot = Registry.create(Registry.Scope.INLINE);
|
3518
3547
|
[].slice.call(node.childNodes).forEach(function (child) {
|
3548
|
+
// @ts-ignore
|
3519
3549
|
blot.domNode.appendChild(child);
|
3520
3550
|
});
|
3521
|
-
node.parentNode
|
3551
|
+
if (node.parentNode) {
|
3552
|
+
node.parentNode.replaceChild(blot.domNode, node);
|
3553
|
+
}
|
3522
3554
|
blot.attach();
|
3523
3555
|
}
|
3524
3556
|
}
|
@@ -3550,8 +3582,10 @@ var container_1 = __webpack_require__(17);
|
|
3550
3582
|
var Registry = __webpack_require__(1);
|
3551
3583
|
var FormatBlot = /** @class */ (function (_super) {
|
3552
3584
|
__extends(FormatBlot, _super);
|
3553
|
-
function FormatBlot() {
|
3554
|
-
|
3585
|
+
function FormatBlot(domNode) {
|
3586
|
+
var _this = _super.call(this, domNode) || this;
|
3587
|
+
_this.attributes = new store_1.default(_this.domNode);
|
3588
|
+
return _this;
|
3555
3589
|
}
|
3556
3590
|
FormatBlot.formats = function (domNode) {
|
3557
3591
|
if (typeof this.tagName === 'string') {
|
@@ -3562,10 +3596,6 @@ var FormatBlot = /** @class */ (function (_super) {
|
|
3562
3596
|
}
|
3563
3597
|
return undefined;
|
3564
3598
|
};
|
3565
|
-
FormatBlot.prototype.attach = function () {
|
3566
|
-
_super.prototype.attach.call(this);
|
3567
|
-
this.attributes = new store_1.default(this.domNode);
|
3568
|
-
};
|
3569
3599
|
FormatBlot.prototype.format = function (name, value) {
|
3570
3600
|
var format = Registry.query(name);
|
3571
3601
|
if (format instanceof attributor_1.default) {
|
@@ -4100,7 +4130,7 @@ var _code = __webpack_require__(13);
|
|
4100
4130
|
|
4101
4131
|
var _code2 = _interopRequireDefault(_code);
|
4102
4132
|
|
4103
|
-
var _container = __webpack_require__(
|
4133
|
+
var _container = __webpack_require__(25);
|
4104
4134
|
|
4105
4135
|
var _container2 = _interopRequireDefault(_container);
|
4106
4136
|
|
@@ -4326,224 +4356,604 @@ exports.default = Scroll;
|
|
4326
4356
|
Object.defineProperty(exports, "__esModule", {
|
4327
4357
|
value: true
|
4328
4358
|
});
|
4359
|
+
exports.SHORTKEY = exports.default = undefined;
|
4329
4360
|
|
4330
|
-
var
|
4361
|
+
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
4331
4362
|
|
4332
|
-
var
|
4363
|
+
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
|
4333
4364
|
|
4334
4365
|
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
4335
4366
|
|
4367
|
+
var _clone = __webpack_require__(21);
|
4368
|
+
|
4369
|
+
var _clone2 = _interopRequireDefault(_clone);
|
4370
|
+
|
4371
|
+
var _deepEqual = __webpack_require__(11);
|
4372
|
+
|
4373
|
+
var _deepEqual2 = _interopRequireDefault(_deepEqual);
|
4374
|
+
|
4375
|
+
var _extend = __webpack_require__(3);
|
4376
|
+
|
4377
|
+
var _extend2 = _interopRequireDefault(_extend);
|
4378
|
+
|
4379
|
+
var _quillDelta = __webpack_require__(2);
|
4380
|
+
|
4381
|
+
var _quillDelta2 = _interopRequireDefault(_quillDelta);
|
4382
|
+
|
4383
|
+
var _op = __webpack_require__(20);
|
4384
|
+
|
4385
|
+
var _op2 = _interopRequireDefault(_op);
|
4386
|
+
|
4336
4387
|
var _parchment = __webpack_require__(0);
|
4337
4388
|
|
4338
4389
|
var _parchment2 = _interopRequireDefault(_parchment);
|
4339
4390
|
|
4340
|
-
var
|
4391
|
+
var _quill = __webpack_require__(5);
|
4341
4392
|
|
4342
|
-
var
|
4393
|
+
var _quill2 = _interopRequireDefault(_quill);
|
4394
|
+
|
4395
|
+
var _logger = __webpack_require__(10);
|
4396
|
+
|
4397
|
+
var _logger2 = _interopRequireDefault(_logger);
|
4398
|
+
|
4399
|
+
var _module = __webpack_require__(9);
|
4400
|
+
|
4401
|
+
var _module2 = _interopRequireDefault(_module);
|
4343
4402
|
|
4344
4403
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
4345
4404
|
|
4405
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
4406
|
+
|
4346
4407
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
4347
4408
|
|
4348
4409
|
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
4349
4410
|
|
4350
4411
|
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
4351
4412
|
|
4352
|
-
var
|
4353
|
-
_inherits(Cursor, _Parchment$Embed);
|
4413
|
+
var debug = (0, _logger2.default)('quill:keyboard');
|
4354
4414
|
|
4355
|
-
|
4356
|
-
|
4357
|
-
|
4358
|
-
|
4415
|
+
var SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';
|
4416
|
+
|
4417
|
+
var Keyboard = function (_Module) {
|
4418
|
+
_inherits(Keyboard, _Module);
|
4419
|
+
|
4420
|
+
_createClass(Keyboard, null, [{
|
4421
|
+
key: 'match',
|
4422
|
+
value: function match(evt, binding) {
|
4423
|
+
binding = normalize(binding);
|
4424
|
+
if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {
|
4425
|
+
return !!binding[key] !== evt[key] && binding[key] !== null;
|
4426
|
+
})) {
|
4427
|
+
return false;
|
4428
|
+
}
|
4429
|
+
return binding.key === (evt.which || evt.keyCode);
|
4359
4430
|
}
|
4360
4431
|
}]);
|
4361
4432
|
|
4362
|
-
function
|
4363
|
-
_classCallCheck(this,
|
4433
|
+
function Keyboard(quill, options) {
|
4434
|
+
_classCallCheck(this, Keyboard);
|
4364
4435
|
|
4365
|
-
var _this = _possibleConstructorReturn(this, (
|
4436
|
+
var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options));
|
4366
4437
|
|
4367
|
-
_this.
|
4368
|
-
_this.
|
4369
|
-
|
4370
|
-
|
4438
|
+
_this.bindings = {};
|
4439
|
+
Object.keys(_this.options.bindings).forEach(function (name) {
|
4440
|
+
if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) {
|
4441
|
+
return;
|
4442
|
+
}
|
4443
|
+
if (_this.options.bindings[name]) {
|
4444
|
+
_this.addBinding(_this.options.bindings[name]);
|
4445
|
+
}
|
4446
|
+
});
|
4447
|
+
_this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);
|
4448
|
+
_this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {});
|
4449
|
+
if (/Firefox/i.test(navigator.userAgent)) {
|
4450
|
+
// Need to handle delete and backspace for Firefox in the general case #1171
|
4451
|
+
_this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);
|
4452
|
+
_this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);
|
4453
|
+
} else {
|
4454
|
+
_this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);
|
4455
|
+
_this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);
|
4456
|
+
}
|
4457
|
+
_this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);
|
4458
|
+
_this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);
|
4459
|
+
_this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace);
|
4460
|
+
_this.listen();
|
4371
4461
|
return _this;
|
4372
4462
|
}
|
4373
4463
|
|
4374
|
-
_createClass(
|
4375
|
-
key: '
|
4376
|
-
value: function
|
4377
|
-
|
4378
|
-
|
4379
|
-
|
4380
|
-
|
4381
|
-
|
4382
|
-
|
4383
|
-
if (this._length !== 0) {
|
4384
|
-
return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value);
|
4464
|
+
_createClass(Keyboard, [{
|
4465
|
+
key: 'addBinding',
|
4466
|
+
value: function addBinding(key) {
|
4467
|
+
var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
4468
|
+
var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
4469
|
+
|
4470
|
+
var binding = normalize(key);
|
4471
|
+
if (binding == null || binding.key == null) {
|
4472
|
+
return debug.warn('Attempted to add invalid keyboard binding', binding);
|
4385
4473
|
}
|
4386
|
-
|
4387
|
-
|
4388
|
-
while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) {
|
4389
|
-
index += target.offset(target.parent);
|
4390
|
-
target = target.parent;
|
4474
|
+
if (typeof context === 'function') {
|
4475
|
+
context = { handler: context };
|
4391
4476
|
}
|
4392
|
-
if (
|
4393
|
-
|
4394
|
-
target.optimize();
|
4395
|
-
target.formatAt(index, Cursor.CONTENTS.length, name, value);
|
4396
|
-
this._length = 0;
|
4477
|
+
if (typeof handler === 'function') {
|
4478
|
+
handler = { handler: handler };
|
4397
4479
|
}
|
4480
|
+
binding = (0, _extend2.default)(binding, context, handler);
|
4481
|
+
this.bindings[binding.key] = this.bindings[binding.key] || [];
|
4482
|
+
this.bindings[binding.key].push(binding);
|
4398
4483
|
}
|
4399
4484
|
}, {
|
4400
|
-
key: '
|
4401
|
-
value: function
|
4402
|
-
|
4403
|
-
|
4404
|
-
|
4405
|
-
|
4406
|
-
|
4407
|
-
|
4408
|
-
|
4409
|
-
}
|
4410
|
-
}, {
|
4411
|
-
key: 'position',
|
4412
|
-
value: function position() {
|
4413
|
-
return [this.textNode, this.textNode.data.length];
|
4414
|
-
}
|
4415
|
-
}, {
|
4416
|
-
key: 'remove',
|
4417
|
-
value: function remove() {
|
4418
|
-
_get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this);
|
4419
|
-
this.parent = null;
|
4420
|
-
}
|
4421
|
-
}, {
|
4422
|
-
key: 'restore',
|
4423
|
-
value: function restore() {
|
4424
|
-
if (this.selection.composing || this.parent == null) return;
|
4425
|
-
var textNode = this.textNode;
|
4426
|
-
var range = this.selection.getNativeRange();
|
4427
|
-
var restoreText = void 0,
|
4428
|
-
start = void 0,
|
4429
|
-
end = void 0;
|
4430
|
-
if (range != null && range.start.node === textNode && range.end.node === textNode) {
|
4431
|
-
var _ref = [textNode, range.start.offset, range.end.offset];
|
4432
|
-
restoreText = _ref[0];
|
4433
|
-
start = _ref[1];
|
4434
|
-
end = _ref[2];
|
4435
|
-
}
|
4436
|
-
// Link format will insert text outside of anchor tag
|
4437
|
-
while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {
|
4438
|
-
this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);
|
4439
|
-
}
|
4440
|
-
if (this.textNode.data !== Cursor.CONTENTS) {
|
4441
|
-
var text = this.textNode.data.split(Cursor.CONTENTS).join('');
|
4442
|
-
if (this.next instanceof _text2.default) {
|
4443
|
-
restoreText = this.next.domNode;
|
4444
|
-
this.next.insertAt(0, text);
|
4445
|
-
this.textNode.data = Cursor.CONTENTS;
|
4446
|
-
} else {
|
4447
|
-
this.textNode.data = text;
|
4448
|
-
this.parent.insertBefore(_parchment2.default.create(this.textNode), this);
|
4449
|
-
this.textNode = document.createTextNode(Cursor.CONTENTS);
|
4450
|
-
this.domNode.appendChild(this.textNode);
|
4451
|
-
}
|
4452
|
-
}
|
4453
|
-
this.remove();
|
4454
|
-
if (start != null) {
|
4455
|
-
var _map = [start, end].map(function (offset) {
|
4456
|
-
return Math.max(0, Math.min(restoreText.data.length, offset - 1));
|
4485
|
+
key: 'listen',
|
4486
|
+
value: function listen() {
|
4487
|
+
var _this2 = this;
|
4488
|
+
|
4489
|
+
this.quill.root.addEventListener('keydown', function (evt) {
|
4490
|
+
if (evt.defaultPrevented) return;
|
4491
|
+
var which = evt.which || evt.keyCode;
|
4492
|
+
var bindings = (_this2.bindings[which] || []).filter(function (binding) {
|
4493
|
+
return Keyboard.match(evt, binding);
|
4457
4494
|
});
|
4495
|
+
if (bindings.length === 0) return;
|
4496
|
+
var range = _this2.quill.getSelection();
|
4497
|
+
if (range == null || !_this2.quill.hasFocus()) return;
|
4458
4498
|
|
4459
|
-
var
|
4499
|
+
var _quill$getLine = _this2.quill.getLine(range.index),
|
4500
|
+
_quill$getLine2 = _slicedToArray(_quill$getLine, 2),
|
4501
|
+
line = _quill$getLine2[0],
|
4502
|
+
offset = _quill$getLine2[1];
|
4460
4503
|
|
4461
|
-
|
4462
|
-
|
4504
|
+
var _quill$getLeaf = _this2.quill.getLeaf(range.index),
|
4505
|
+
_quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2),
|
4506
|
+
leafStart = _quill$getLeaf2[0],
|
4507
|
+
offsetStart = _quill$getLeaf2[1];
|
4463
4508
|
|
4464
|
-
|
4465
|
-
|
4466
|
-
|
4467
|
-
|
4468
|
-
endOffset: end
|
4469
|
-
};
|
4470
|
-
}
|
4471
|
-
}
|
4472
|
-
}, {
|
4473
|
-
key: 'update',
|
4474
|
-
value: function update(mutations, context) {
|
4475
|
-
var _this2 = this;
|
4509
|
+
var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.getLeaf(range.index + range.length),
|
4510
|
+
_ref2 = _slicedToArray(_ref, 2),
|
4511
|
+
leafEnd = _ref2[0],
|
4512
|
+
offsetEnd = _ref2[1];
|
4476
4513
|
|
4477
|
-
|
4478
|
-
|
4479
|
-
|
4480
|
-
|
4481
|
-
|
4482
|
-
|
4483
|
-
|
4484
|
-
|
4485
|
-
|
4486
|
-
|
4487
|
-
|
4514
|
+
var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : '';
|
4515
|
+
var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : '';
|
4516
|
+
var curContext = {
|
4517
|
+
collapsed: range.length === 0,
|
4518
|
+
empty: range.length === 0 && line.length() <= 1,
|
4519
|
+
format: _this2.quill.getFormat(range),
|
4520
|
+
offset: offset,
|
4521
|
+
prefix: prefixText,
|
4522
|
+
suffix: suffixText
|
4523
|
+
};
|
4524
|
+
var prevented = bindings.some(function (binding) {
|
4525
|
+
if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;
|
4526
|
+
if (binding.empty != null && binding.empty !== curContext.empty) return false;
|
4527
|
+
if (binding.offset != null && binding.offset !== curContext.offset) return false;
|
4528
|
+
if (Array.isArray(binding.format)) {
|
4529
|
+
// any format is present
|
4530
|
+
if (binding.format.every(function (name) {
|
4531
|
+
return curContext.format[name] == null;
|
4532
|
+
})) {
|
4533
|
+
return false;
|
4534
|
+
}
|
4535
|
+
} else if (_typeof(binding.format) === 'object') {
|
4536
|
+
// all formats must match
|
4537
|
+
if (!Object.keys(binding.format).every(function (name) {
|
4538
|
+
if (binding.format[name] === true) return curContext.format[name] != null;
|
4539
|
+
if (binding.format[name] === false) return curContext.format[name] == null;
|
4540
|
+
return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);
|
4541
|
+
})) {
|
4542
|
+
return false;
|
4543
|
+
}
|
4544
|
+
}
|
4545
|
+
if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;
|
4546
|
+
if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;
|
4547
|
+
return binding.handler.call(_this2, range, curContext) !== true;
|
4548
|
+
});
|
4549
|
+
if (prevented) {
|
4550
|
+
evt.preventDefault();
|
4551
|
+
}
|
4552
|
+
});
|
4488
4553
|
}
|
4489
4554
|
}]);
|
4490
4555
|
|
4491
|
-
return
|
4492
|
-
}(
|
4556
|
+
return Keyboard;
|
4557
|
+
}(_module2.default);
|
4493
4558
|
|
4494
|
-
|
4495
|
-
|
4496
|
-
|
4497
|
-
|
4559
|
+
Keyboard.keys = {
|
4560
|
+
BACKSPACE: 8,
|
4561
|
+
TAB: 9,
|
4562
|
+
ENTER: 13,
|
4563
|
+
ESCAPE: 27,
|
4564
|
+
LEFT: 37,
|
4565
|
+
UP: 38,
|
4566
|
+
RIGHT: 39,
|
4567
|
+
DOWN: 40,
|
4568
|
+
DELETE: 46
|
4569
|
+
};
|
4498
4570
|
|
4571
|
+
Keyboard.DEFAULTS = {
|
4572
|
+
bindings: {
|
4573
|
+
'bold': makeFormatHandler('bold'),
|
4574
|
+
'italic': makeFormatHandler('italic'),
|
4575
|
+
'underline': makeFormatHandler('underline'),
|
4576
|
+
'indent': {
|
4577
|
+
// highlight tab or tab at beginning of list, indent or blockquote
|
4578
|
+
key: Keyboard.keys.TAB,
|
4579
|
+
format: ['blockquote', 'indent', 'list'],
|
4580
|
+
handler: function handler(range, context) {
|
4581
|
+
if (context.collapsed && context.offset !== 0) return true;
|
4582
|
+
this.quill.format('indent', '+1', _quill2.default.sources.USER);
|
4583
|
+
}
|
4584
|
+
},
|
4585
|
+
'outdent': {
|
4586
|
+
key: Keyboard.keys.TAB,
|
4587
|
+
shiftKey: true,
|
4588
|
+
format: ['blockquote', 'indent', 'list'],
|
4589
|
+
// highlight tab or tab at beginning of list, indent or blockquote
|
4590
|
+
handler: function handler(range, context) {
|
4591
|
+
if (context.collapsed && context.offset !== 0) return true;
|
4592
|
+
this.quill.format('indent', '-1', _quill2.default.sources.USER);
|
4593
|
+
}
|
4594
|
+
},
|
4595
|
+
'outdent backspace': {
|
4596
|
+
key: Keyboard.keys.BACKSPACE,
|
4597
|
+
collapsed: true,
|
4598
|
+
shiftKey: null,
|
4599
|
+
metaKey: null,
|
4600
|
+
ctrlKey: null,
|
4601
|
+
altKey: null,
|
4602
|
+
format: ['indent', 'list'],
|
4603
|
+
offset: 0,
|
4604
|
+
handler: function handler(range, context) {
|
4605
|
+
if (context.format.indent != null) {
|
4606
|
+
this.quill.format('indent', '-1', _quill2.default.sources.USER);
|
4607
|
+
} else if (context.format.list != null) {
|
4608
|
+
this.quill.format('list', false, _quill2.default.sources.USER);
|
4609
|
+
}
|
4610
|
+
}
|
4611
|
+
},
|
4612
|
+
'indent code-block': makeCodeBlockHandler(true),
|
4613
|
+
'outdent code-block': makeCodeBlockHandler(false),
|
4614
|
+
'remove tab': {
|
4615
|
+
key: Keyboard.keys.TAB,
|
4616
|
+
shiftKey: true,
|
4617
|
+
collapsed: true,
|
4618
|
+
prefix: /\t$/,
|
4619
|
+
handler: function handler(range) {
|
4620
|
+
this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);
|
4621
|
+
}
|
4622
|
+
},
|
4623
|
+
'tab': {
|
4624
|
+
key: Keyboard.keys.TAB,
|
4625
|
+
handler: function handler(range) {
|
4626
|
+
this.quill.history.cutoff();
|
4627
|
+
var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\t');
|
4628
|
+
this.quill.updateContents(delta, _quill2.default.sources.USER);
|
4629
|
+
this.quill.history.cutoff();
|
4630
|
+
this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);
|
4631
|
+
}
|
4632
|
+
},
|
4633
|
+
'list empty enter': {
|
4634
|
+
key: Keyboard.keys.ENTER,
|
4635
|
+
collapsed: true,
|
4636
|
+
format: ['list'],
|
4637
|
+
empty: true,
|
4638
|
+
handler: function handler(range, context) {
|
4639
|
+
this.quill.format('list', false, _quill2.default.sources.USER);
|
4640
|
+
if (context.format.indent) {
|
4641
|
+
this.quill.format('indent', false, _quill2.default.sources.USER);
|
4642
|
+
}
|
4643
|
+
}
|
4644
|
+
},
|
4645
|
+
'checklist enter': {
|
4646
|
+
key: Keyboard.keys.ENTER,
|
4647
|
+
collapsed: true,
|
4648
|
+
format: { list: 'checked' },
|
4649
|
+
handler: function handler(range) {
|
4650
|
+
var _quill$getLine3 = this.quill.getLine(range.index),
|
4651
|
+
_quill$getLine4 = _slicedToArray(_quill$getLine3, 2),
|
4652
|
+
line = _quill$getLine4[0],
|
4653
|
+
offset = _quill$getLine4[1];
|
4499
4654
|
|
4500
|
-
|
4655
|
+
var formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' });
|
4656
|
+
var delta = new _quillDelta2.default().retain(range.index).insert('\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' });
|
4657
|
+
this.quill.updateContents(delta, _quill2.default.sources.USER);
|
4658
|
+
this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);
|
4659
|
+
this.quill.scrollIntoView();
|
4660
|
+
}
|
4661
|
+
},
|
4662
|
+
'header enter': {
|
4663
|
+
key: Keyboard.keys.ENTER,
|
4664
|
+
collapsed: true,
|
4665
|
+
format: ['header'],
|
4666
|
+
suffix: /^$/,
|
4667
|
+
handler: function handler(range, context) {
|
4668
|
+
var _quill$getLine5 = this.quill.getLine(range.index),
|
4669
|
+
_quill$getLine6 = _slicedToArray(_quill$getLine5, 2),
|
4670
|
+
line = _quill$getLine6[0],
|
4671
|
+
offset = _quill$getLine6[1];
|
4501
4672
|
|
4502
|
-
|
4503
|
-
|
4504
|
-
|
4673
|
+
var delta = new _quillDelta2.default().retain(range.index).insert('\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null });
|
4674
|
+
this.quill.updateContents(delta, _quill2.default.sources.USER);
|
4675
|
+
this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);
|
4676
|
+
this.quill.scrollIntoView();
|
4677
|
+
}
|
4678
|
+
},
|
4679
|
+
'list autofill': {
|
4680
|
+
key: ' ',
|
4681
|
+
collapsed: true,
|
4682
|
+
format: { list: false },
|
4683
|
+
prefix: /^\s*?(\d+\.|-|\*|\[ ?\]|\[x\])$/,
|
4684
|
+
handler: function handler(range, context) {
|
4685
|
+
var length = context.prefix.length;
|
4505
4686
|
|
4506
|
-
|
4687
|
+
var _quill$getLine7 = this.quill.getLine(range.index),
|
4688
|
+
_quill$getLine8 = _slicedToArray(_quill$getLine7, 2),
|
4689
|
+
line = _quill$getLine8[0],
|
4690
|
+
offset = _quill$getLine8[1];
|
4507
4691
|
|
4692
|
+
if (offset > length) return true;
|
4693
|
+
var value = void 0;
|
4694
|
+
switch (context.prefix.trim()) {
|
4695
|
+
case '[]':case '[ ]':
|
4696
|
+
value = 'unchecked';
|
4697
|
+
break;
|
4698
|
+
case '[x]':
|
4699
|
+
value = 'checked';
|
4700
|
+
break;
|
4701
|
+
case '-':case '*':
|
4702
|
+
value = 'bullet';
|
4703
|
+
break;
|
4704
|
+
default:
|
4705
|
+
value = 'ordered';
|
4706
|
+
}
|
4707
|
+
this.quill.insertText(range.index, ' ', _quill2.default.sources.USER);
|
4708
|
+
this.quill.history.cutoff();
|
4709
|
+
var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value });
|
4710
|
+
this.quill.updateContents(delta, _quill2.default.sources.USER);
|
4711
|
+
this.quill.history.cutoff();
|
4712
|
+
this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);
|
4713
|
+
}
|
4714
|
+
},
|
4715
|
+
'code exit': {
|
4716
|
+
key: Keyboard.keys.ENTER,
|
4717
|
+
collapsed: true,
|
4718
|
+
format: ['code-block'],
|
4719
|
+
prefix: /\n\n$/,
|
4720
|
+
suffix: /^\s+$/,
|
4721
|
+
handler: function handler(range) {
|
4722
|
+
var _quill$getLine9 = this.quill.getLine(range.index),
|
4723
|
+
_quill$getLine10 = _slicedToArray(_quill$getLine9, 2),
|
4724
|
+
line = _quill$getLine10[0],
|
4725
|
+
offset = _quill$getLine10[1];
|
4508
4726
|
|
4509
|
-
|
4510
|
-
|
4511
|
-
}
|
4727
|
+
var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1);
|
4728
|
+
this.quill.updateContents(delta, _quill2.default.sources.USER);
|
4729
|
+
}
|
4730
|
+
},
|
4731
|
+
'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),
|
4732
|
+
'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),
|
4733
|
+
'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),
|
4734
|
+
'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)
|
4735
|
+
}
|
4736
|
+
};
|
4512
4737
|
|
4513
|
-
|
4738
|
+
function makeEmbedArrowHandler(key, shiftKey) {
|
4739
|
+
var _ref3;
|
4514
4740
|
|
4515
|
-
var
|
4741
|
+
var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';
|
4742
|
+
return _ref3 = {
|
4743
|
+
key: key,
|
4744
|
+
shiftKey: shiftKey,
|
4745
|
+
altKey: null
|
4746
|
+
}, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) {
|
4747
|
+
var index = range.index;
|
4748
|
+
if (key === Keyboard.keys.RIGHT) {
|
4749
|
+
index += range.length + 1;
|
4750
|
+
}
|
4516
4751
|
|
4517
|
-
var
|
4752
|
+
var _quill$getLeaf3 = this.quill.getLeaf(index),
|
4753
|
+
_quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1),
|
4754
|
+
leaf = _quill$getLeaf4[0];
|
4518
4755
|
|
4519
|
-
|
4756
|
+
if (!(leaf instanceof _parchment2.default.Embed)) return true;
|
4757
|
+
if (key === Keyboard.keys.LEFT) {
|
4758
|
+
if (shiftKey) {
|
4759
|
+
this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER);
|
4760
|
+
} else {
|
4761
|
+
this.quill.setSelection(range.index - 1, _quill2.default.sources.USER);
|
4762
|
+
}
|
4763
|
+
} else {
|
4764
|
+
if (shiftKey) {
|
4765
|
+
this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER);
|
4766
|
+
} else {
|
4767
|
+
this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER);
|
4768
|
+
}
|
4769
|
+
}
|
4770
|
+
return false;
|
4771
|
+
}), _ref3;
|
4772
|
+
}
|
4520
4773
|
|
4521
|
-
function
|
4774
|
+
function handleBackspace(range, context) {
|
4775
|
+
if (range.index === 0 || this.quill.getLength() <= 1) return;
|
4522
4776
|
|
4523
|
-
|
4777
|
+
var _quill$getLine11 = this.quill.getLine(range.index),
|
4778
|
+
_quill$getLine12 = _slicedToArray(_quill$getLine11, 1),
|
4779
|
+
line = _quill$getLine12[0];
|
4524
4780
|
|
4525
|
-
|
4781
|
+
var formats = {};
|
4782
|
+
if (context.offset === 0) {
|
4783
|
+
var _quill$getLine13 = this.quill.getLine(range.index - 1),
|
4784
|
+
_quill$getLine14 = _slicedToArray(_quill$getLine13, 1),
|
4785
|
+
prev = _quill$getLine14[0];
|
4526
4786
|
|
4527
|
-
|
4787
|
+
if (prev != null && prev.length() > 1) {
|
4788
|
+
var curFormats = line.formats();
|
4789
|
+
var prevFormats = this.quill.getFormat(range.index - 1, 1);
|
4790
|
+
formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};
|
4791
|
+
}
|
4792
|
+
}
|
4793
|
+
// Check for astral symbols
|
4794
|
+
var length = /[\uD800-\uDBFF][\uDC00-\uDFFF]$/.test(context.prefix) ? 2 : 1;
|
4795
|
+
this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER);
|
4796
|
+
if (Object.keys(formats).length > 0) {
|
4797
|
+
this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER);
|
4798
|
+
}
|
4799
|
+
this.quill.focus();
|
4800
|
+
}
|
4528
4801
|
|
4529
|
-
|
4530
|
-
|
4802
|
+
function handleDelete(range, context) {
|
4803
|
+
// Check for astral symbols
|
4804
|
+
var length = /^[\uD800-\uDBFF][\uDC00-\uDFFF]/.test(context.suffix) ? 2 : 1;
|
4805
|
+
if (range.index >= this.quill.getLength() - length) return;
|
4806
|
+
var formats = {},
|
4807
|
+
nextLength = 0;
|
4531
4808
|
|
4532
|
-
|
4533
|
-
|
4809
|
+
var _quill$getLine15 = this.quill.getLine(range.index),
|
4810
|
+
_quill$getLine16 = _slicedToArray(_quill$getLine15, 1),
|
4811
|
+
line = _quill$getLine16[0];
|
4534
4812
|
|
4535
|
-
|
4813
|
+
if (context.offset >= line.length() - 1) {
|
4814
|
+
var _quill$getLine17 = this.quill.getLine(range.index + 1),
|
4815
|
+
_quill$getLine18 = _slicedToArray(_quill$getLine17, 1),
|
4816
|
+
next = _quill$getLine18[0];
|
4817
|
+
|
4818
|
+
if (next) {
|
4819
|
+
var curFormats = line.formats();
|
4820
|
+
var nextFormats = this.quill.getFormat(range.index, 1);
|
4821
|
+
formats = _op2.default.attributes.diff(curFormats, nextFormats) || {};
|
4822
|
+
nextLength = next.length();
|
4823
|
+
}
|
4824
|
+
}
|
4825
|
+
this.quill.deleteText(range.index, length, _quill2.default.sources.USER);
|
4826
|
+
if (Object.keys(formats).length > 0) {
|
4827
|
+
this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER);
|
4828
|
+
}
|
4829
|
+
}
|
4830
|
+
|
4831
|
+
function handleDeleteRange(range) {
|
4832
|
+
var lines = this.quill.getLines(range);
|
4833
|
+
var formats = {};
|
4834
|
+
if (lines.length > 1) {
|
4835
|
+
var firstFormats = lines[0].formats();
|
4836
|
+
var lastFormats = lines[lines.length - 1].formats();
|
4837
|
+
formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {};
|
4838
|
+
}
|
4839
|
+
this.quill.deleteText(range, _quill2.default.sources.USER);
|
4840
|
+
if (Object.keys(formats).length > 0) {
|
4841
|
+
this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER);
|
4842
|
+
}
|
4843
|
+
this.quill.setSelection(range.index, _quill2.default.sources.SILENT);
|
4844
|
+
this.quill.focus();
|
4845
|
+
}
|
4846
|
+
|
4847
|
+
function handleEnter(range, context) {
|
4848
|
+
var _this3 = this;
|
4849
|
+
|
4850
|
+
if (range.length > 0) {
|
4851
|
+
this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change
|
4852
|
+
}
|
4853
|
+
var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) {
|
4854
|
+
if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) {
|
4855
|
+
lineFormats[format] = context.format[format];
|
4856
|
+
}
|
4857
|
+
return lineFormats;
|
4858
|
+
}, {});
|
4859
|
+
this.quill.insertText(range.index, '\n', lineFormats, _quill2.default.sources.USER);
|
4860
|
+
// Earlier scroll.deleteAt might have messed up our selection,
|
4861
|
+
// so insertText's built in selection preservation is not reliable
|
4862
|
+
this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);
|
4863
|
+
this.quill.focus();
|
4864
|
+
Object.keys(context.format).forEach(function (name) {
|
4865
|
+
if (lineFormats[name] != null) return;
|
4866
|
+
if (Array.isArray(context.format[name])) return;
|
4867
|
+
if (name === 'link') return;
|
4868
|
+
_this3.quill.format(name, context.format[name], _quill2.default.sources.USER);
|
4869
|
+
});
|
4870
|
+
}
|
4871
|
+
|
4872
|
+
function makeCodeBlockHandler(indent) {
|
4873
|
+
return {
|
4874
|
+
key: Keyboard.keys.TAB,
|
4875
|
+
shiftKey: !indent,
|
4876
|
+
format: { 'code-block': true },
|
4877
|
+
handler: function handler(range) {
|
4878
|
+
var CodeBlock = _parchment2.default.query('code-block');
|
4879
|
+
var index = range.index,
|
4880
|
+
length = range.length;
|
4881
|
+
|
4882
|
+
var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index),
|
4883
|
+
_quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),
|
4884
|
+
block = _quill$scroll$descend2[0],
|
4885
|
+
offset = _quill$scroll$descend2[1];
|
4886
|
+
|
4887
|
+
if (block == null) return;
|
4888
|
+
var scrollIndex = this.quill.getIndex(block);
|
4889
|
+
var start = block.newlineIndex(offset, true) + 1;
|
4890
|
+
var end = block.newlineIndex(scrollIndex + offset + length);
|
4891
|
+
var lines = block.domNode.textContent.slice(start, end).split('\n');
|
4892
|
+
offset = 0;
|
4893
|
+
lines.forEach(function (line, i) {
|
4894
|
+
if (indent) {
|
4895
|
+
block.insertAt(start + offset, CodeBlock.TAB);
|
4896
|
+
offset += CodeBlock.TAB.length;
|
4897
|
+
if (i === 0) {
|
4898
|
+
index += CodeBlock.TAB.length;
|
4899
|
+
} else {
|
4900
|
+
length += CodeBlock.TAB.length;
|
4901
|
+
}
|
4902
|
+
} else if (line.startsWith(CodeBlock.TAB)) {
|
4903
|
+
block.deleteAt(start + offset, CodeBlock.TAB.length);
|
4904
|
+
offset -= CodeBlock.TAB.length;
|
4905
|
+
if (i === 0) {
|
4906
|
+
index -= CodeBlock.TAB.length;
|
4907
|
+
} else {
|
4908
|
+
length -= CodeBlock.TAB.length;
|
4909
|
+
}
|
4910
|
+
}
|
4911
|
+
offset += line.length + 1;
|
4912
|
+
});
|
4913
|
+
this.quill.update(_quill2.default.sources.USER);
|
4914
|
+
this.quill.setSelection(index, length, _quill2.default.sources.SILENT);
|
4915
|
+
}
|
4916
|
+
};
|
4917
|
+
}
|
4918
|
+
|
4919
|
+
function makeFormatHandler(format) {
|
4920
|
+
return {
|
4921
|
+
key: format[0].toUpperCase(),
|
4922
|
+
shortKey: true,
|
4923
|
+
handler: function handler(range, context) {
|
4924
|
+
this.quill.format(format, !context.format[format], _quill2.default.sources.USER);
|
4925
|
+
}
|
4926
|
+
};
|
4927
|
+
}
|
4928
|
+
|
4929
|
+
function normalize(binding) {
|
4930
|
+
if (typeof binding === 'string' || typeof binding === 'number') {
|
4931
|
+
return normalize({ key: binding });
|
4932
|
+
}
|
4933
|
+
if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {
|
4934
|
+
binding = (0, _clone2.default)(binding, false);
|
4935
|
+
}
|
4936
|
+
if (typeof binding.key === 'string') {
|
4937
|
+
if (Keyboard.keys[binding.key.toUpperCase()] != null) {
|
4938
|
+
binding.key = Keyboard.keys[binding.key.toUpperCase()];
|
4939
|
+
} else if (binding.key.length === 1) {
|
4940
|
+
binding.key = binding.key.toUpperCase().charCodeAt(0);
|
4941
|
+
} else {
|
4942
|
+
return null;
|
4943
|
+
}
|
4536
4944
|
}
|
4945
|
+
if (binding.shortKey) {
|
4946
|
+
binding[SHORTKEY] = binding.shortKey;
|
4947
|
+
delete binding.shortKey;
|
4948
|
+
}
|
4949
|
+
return binding;
|
4950
|
+
}
|
4537
4951
|
|
4538
|
-
|
4539
|
-
|
4540
|
-
|
4541
|
-
Container.allowedChildren = [_block2.default, _block.BlockEmbed, Container];
|
4542
|
-
|
4543
|
-
exports.default = Container;
|
4952
|
+
exports.default = Keyboard;
|
4953
|
+
exports.SHORTKEY = SHORTKEY;
|
4544
4954
|
|
4545
4955
|
/***/ }),
|
4546
|
-
/*
|
4956
|
+
/* 24 */
|
4547
4957
|
/***/ (function(module, exports, __webpack_require__) {
|
4548
4958
|
|
4549
4959
|
"use strict";
|
@@ -4553,10 +4963,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
4553
4963
|
value: true
|
4554
4964
|
});
|
4555
4965
|
|
4556
|
-
var
|
4966
|
+
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
|
4557
4967
|
|
4558
4968
|
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
|
4559
4969
|
|
4970
|
+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
4971
|
+
|
4560
4972
|
var _parchment = __webpack_require__(0);
|
4561
4973
|
|
4562
4974
|
var _parchment2 = _interopRequireDefault(_parchment);
|
@@ -4573,95 +4985,198 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen
|
|
4573
4985
|
|
4574
4986
|
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
4575
4987
|
|
4576
|
-
var
|
4988
|
+
var Cursor = function (_Parchment$Embed) {
|
4989
|
+
_inherits(Cursor, _Parchment$Embed);
|
4577
4990
|
|
4578
|
-
|
4579
|
-
|
4991
|
+
_createClass(Cursor, null, [{
|
4992
|
+
key: 'value',
|
4993
|
+
value: function value() {
|
4994
|
+
return undefined;
|
4995
|
+
}
|
4996
|
+
}]);
|
4580
4997
|
|
4581
|
-
function
|
4582
|
-
_classCallCheck(this,
|
4998
|
+
function Cursor(domNode, selection) {
|
4999
|
+
_classCallCheck(this, Cursor);
|
4583
5000
|
|
4584
|
-
var _this = _possibleConstructorReturn(this, (
|
5001
|
+
var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode));
|
4585
5002
|
|
4586
|
-
_this.
|
4587
|
-
_this.
|
4588
|
-
|
4589
|
-
|
4590
|
-
});
|
4591
|
-
_this.leftGuard = document.createTextNode(GUARD_TEXT);
|
4592
|
-
_this.rightGuard = document.createTextNode(GUARD_TEXT);
|
4593
|
-
_this.domNode.appendChild(_this.leftGuard);
|
4594
|
-
_this.domNode.appendChild(_this.contentNode);
|
4595
|
-
_this.domNode.appendChild(_this.rightGuard);
|
5003
|
+
_this.selection = selection;
|
5004
|
+
_this.textNode = document.createTextNode(Cursor.CONTENTS);
|
5005
|
+
_this.domNode.appendChild(_this.textNode);
|
5006
|
+
_this._length = 0;
|
4596
5007
|
return _this;
|
4597
5008
|
}
|
4598
5009
|
|
4599
|
-
_createClass(
|
5010
|
+
_createClass(Cursor, [{
|
5011
|
+
key: 'detach',
|
5012
|
+
value: function detach() {
|
5013
|
+
// super.detach() will also clear domNode.__blot
|
5014
|
+
if (this.parent != null) this.parent.removeChild(this);
|
5015
|
+
}
|
5016
|
+
}, {
|
5017
|
+
key: 'format',
|
5018
|
+
value: function format(name, value) {
|
5019
|
+
if (this._length !== 0) {
|
5020
|
+
return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value);
|
5021
|
+
}
|
5022
|
+
var target = this,
|
5023
|
+
index = 0;
|
5024
|
+
while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) {
|
5025
|
+
index += target.offset(target.parent);
|
5026
|
+
target = target.parent;
|
5027
|
+
}
|
5028
|
+
if (target != null) {
|
5029
|
+
this._length = Cursor.CONTENTS.length;
|
5030
|
+
target.optimize();
|
5031
|
+
target.formatAt(index, Cursor.CONTENTS.length, name, value);
|
5032
|
+
this._length = 0;
|
5033
|
+
}
|
5034
|
+
}
|
5035
|
+
}, {
|
4600
5036
|
key: 'index',
|
4601
5037
|
value: function index(node, offset) {
|
4602
|
-
if (node === this.
|
4603
|
-
|
4604
|
-
|
5038
|
+
if (node === this.textNode) return 0;
|
5039
|
+
return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset);
|
5040
|
+
}
|
5041
|
+
}, {
|
5042
|
+
key: 'length',
|
5043
|
+
value: function length() {
|
5044
|
+
return this._length;
|
5045
|
+
}
|
5046
|
+
}, {
|
5047
|
+
key: 'position',
|
5048
|
+
value: function position() {
|
5049
|
+
return [this.textNode, this.textNode.data.length];
|
5050
|
+
}
|
5051
|
+
}, {
|
5052
|
+
key: 'remove',
|
5053
|
+
value: function remove() {
|
5054
|
+
_get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this);
|
5055
|
+
this.parent = null;
|
4605
5056
|
}
|
4606
5057
|
}, {
|
4607
5058
|
key: 'restore',
|
4608
|
-
value: function restore(
|
4609
|
-
|
4610
|
-
|
4611
|
-
var
|
4612
|
-
|
4613
|
-
|
4614
|
-
|
4615
|
-
|
4616
|
-
|
4617
|
-
|
4618
|
-
|
4619
|
-
|
4620
|
-
|
4621
|
-
|
4622
|
-
|
4623
|
-
|
4624
|
-
|
4625
|
-
|
4626
|
-
|
4627
|
-
}
|
4628
|
-
} else if (node === this.rightGuard) {
|
5059
|
+
value: function restore() {
|
5060
|
+
if (this.selection.composing || this.parent == null) return;
|
5061
|
+
var textNode = this.textNode;
|
5062
|
+
var range = this.selection.getNativeRange();
|
5063
|
+
var restoreText = void 0,
|
5064
|
+
start = void 0,
|
5065
|
+
end = void 0;
|
5066
|
+
if (range != null && range.start.node === textNode && range.end.node === textNode) {
|
5067
|
+
var _ref = [textNode, range.start.offset, range.end.offset];
|
5068
|
+
restoreText = _ref[0];
|
5069
|
+
start = _ref[1];
|
5070
|
+
end = _ref[2];
|
5071
|
+
}
|
5072
|
+
// Link format will insert text outside of anchor tag
|
5073
|
+
while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {
|
5074
|
+
this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);
|
5075
|
+
}
|
5076
|
+
if (this.textNode.data !== Cursor.CONTENTS) {
|
5077
|
+
var text = this.textNode.data.split(Cursor.CONTENTS).join('');
|
4629
5078
|
if (this.next instanceof _text2.default) {
|
5079
|
+
restoreText = this.next.domNode;
|
4630
5080
|
this.next.insertAt(0, text);
|
4631
|
-
|
4632
|
-
startNode: this.next.domNode,
|
4633
|
-
startOffset: text.length
|
4634
|
-
};
|
5081
|
+
this.textNode.data = Cursor.CONTENTS;
|
4635
5082
|
} else {
|
4636
|
-
textNode =
|
4637
|
-
this.parent.insertBefore(_parchment2.default.create(textNode), this
|
4638
|
-
|
4639
|
-
|
4640
|
-
startOffset: text.length
|
4641
|
-
};
|
5083
|
+
this.textNode.data = text;
|
5084
|
+
this.parent.insertBefore(_parchment2.default.create(this.textNode), this);
|
5085
|
+
this.textNode = document.createTextNode(Cursor.CONTENTS);
|
5086
|
+
this.domNode.appendChild(this.textNode);
|
4642
5087
|
}
|
4643
5088
|
}
|
4644
|
-
|
4645
|
-
|
5089
|
+
this.remove();
|
5090
|
+
if (start != null) {
|
5091
|
+
var _map = [start, end].map(function (offset) {
|
5092
|
+
return Math.max(0, Math.min(restoreText.data.length, offset - 1));
|
5093
|
+
});
|
5094
|
+
|
5095
|
+
var _map2 = _slicedToArray(_map, 2);
|
5096
|
+
|
5097
|
+
start = _map2[0];
|
5098
|
+
end = _map2[1];
|
5099
|
+
|
5100
|
+
return {
|
5101
|
+
startNode: restoreText,
|
5102
|
+
startOffset: start,
|
5103
|
+
endNode: restoreText,
|
5104
|
+
endOffset: end
|
5105
|
+
};
|
5106
|
+
}
|
4646
5107
|
}
|
4647
5108
|
}, {
|
4648
5109
|
key: 'update',
|
4649
5110
|
value: function update(mutations, context) {
|
4650
5111
|
var _this2 = this;
|
4651
5112
|
|
4652
|
-
mutations.
|
4653
|
-
|
4654
|
-
|
4655
|
-
|
4656
|
-
|
4657
|
-
}
|
5113
|
+
if (mutations.some(function (mutation) {
|
5114
|
+
return mutation.type === 'characterData' && mutation.target === _this2.textNode;
|
5115
|
+
})) {
|
5116
|
+
var range = this.restore();
|
5117
|
+
if (range) context.range = range;
|
5118
|
+
}
|
5119
|
+
}
|
5120
|
+
}, {
|
5121
|
+
key: 'value',
|
5122
|
+
value: function value() {
|
5123
|
+
return '';
|
4658
5124
|
}
|
4659
5125
|
}]);
|
4660
5126
|
|
4661
|
-
return
|
5127
|
+
return Cursor;
|
4662
5128
|
}(_parchment2.default.Embed);
|
4663
5129
|
|
4664
|
-
|
5130
|
+
Cursor.blotName = 'cursor';
|
5131
|
+
Cursor.className = 'ql-cursor';
|
5132
|
+
Cursor.tagName = 'span';
|
5133
|
+
Cursor.CONTENTS = '\uFEFF'; // Zero width no break space
|
5134
|
+
|
5135
|
+
|
5136
|
+
exports.default = Cursor;
|
5137
|
+
|
5138
|
+
/***/ }),
|
5139
|
+
/* 25 */
|
5140
|
+
/***/ (function(module, exports, __webpack_require__) {
|
5141
|
+
|
5142
|
+
"use strict";
|
5143
|
+
|
5144
|
+
|
5145
|
+
Object.defineProperty(exports, "__esModule", {
|
5146
|
+
value: true
|
5147
|
+
});
|
5148
|
+
|
5149
|
+
var _parchment = __webpack_require__(0);
|
5150
|
+
|
5151
|
+
var _parchment2 = _interopRequireDefault(_parchment);
|
5152
|
+
|
5153
|
+
var _block = __webpack_require__(4);
|
5154
|
+
|
5155
|
+
var _block2 = _interopRequireDefault(_block);
|
5156
|
+
|
5157
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
5158
|
+
|
5159
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
5160
|
+
|
5161
|
+
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
5162
|
+
|
5163
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
5164
|
+
|
5165
|
+
var Container = function (_Parchment$Container) {
|
5166
|
+
_inherits(Container, _Parchment$Container);
|
5167
|
+
|
5168
|
+
function Container() {
|
5169
|
+
_classCallCheck(this, Container);
|
5170
|
+
|
5171
|
+
return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));
|
5172
|
+
}
|
5173
|
+
|
5174
|
+
return Container;
|
5175
|
+
}(_parchment2.default.Container);
|
5176
|
+
|
5177
|
+
Container.allowedChildren = [_block2.default, _block.BlockEmbed, Container];
|
5178
|
+
|
5179
|
+
exports.default = Container;
|
4665
5180
|
|
4666
5181
|
/***/ }),
|
4667
5182
|
/* 26 */
|
@@ -4735,6 +5250,10 @@ exports.ColorStyle = ColorStyle;
|
|
4735
5250
|
"use strict";
|
4736
5251
|
|
4737
5252
|
|
5253
|
+
Object.defineProperty(exports, "__esModule", {
|
5254
|
+
value: true
|
5255
|
+
});
|
5256
|
+
|
4738
5257
|
var _parchment = __webpack_require__(0);
|
4739
5258
|
|
4740
5259
|
var _parchment2 = _interopRequireDefault(_parchment);
|
@@ -4751,15 +5270,15 @@ var _break = __webpack_require__(16);
|
|
4751
5270
|
|
4752
5271
|
var _break2 = _interopRequireDefault(_break);
|
4753
5272
|
|
4754
|
-
var _container = __webpack_require__(
|
5273
|
+
var _container = __webpack_require__(25);
|
4755
5274
|
|
4756
5275
|
var _container2 = _interopRequireDefault(_container);
|
4757
5276
|
|
4758
|
-
var _cursor = __webpack_require__(
|
5277
|
+
var _cursor = __webpack_require__(24);
|
4759
5278
|
|
4760
5279
|
var _cursor2 = _interopRequireDefault(_cursor);
|
4761
5280
|
|
4762
|
-
var _embed = __webpack_require__(
|
5281
|
+
var _embed = __webpack_require__(35);
|
4763
5282
|
|
4764
5283
|
var _embed2 = _interopRequireDefault(_embed);
|
4765
5284
|
|
@@ -4783,7 +5302,7 @@ var _history = __webpack_require__(42);
|
|
4783
5302
|
|
4784
5303
|
var _history2 = _interopRequireDefault(_history);
|
4785
5304
|
|
4786
|
-
var _keyboard = __webpack_require__(
|
5305
|
+
var _keyboard = __webpack_require__(23);
|
4787
5306
|
|
4788
5307
|
var _keyboard2 = _interopRequireDefault(_keyboard);
|
4789
5308
|
|
@@ -4807,7 +5326,7 @@ _quill2.default.register({
|
|
4807
5326
|
|
4808
5327
|
_parchment2.default.register(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default);
|
4809
5328
|
|
4810
|
-
|
5329
|
+
exports.default = _quill2.default;
|
4811
5330
|
|
4812
5331
|
/***/ }),
|
4813
5332
|
/* 30 */
|
@@ -4820,7 +5339,8 @@ var Registry = __webpack_require__(1);
|
|
4820
5339
|
var ShadowBlot = /** @class */ (function () {
|
4821
5340
|
function ShadowBlot(domNode) {
|
4822
5341
|
this.domNode = domNode;
|
4823
|
-
|
5342
|
+
// @ts-ignore
|
5343
|
+
this.domNode[Registry.DATA_KEY] = { blot: this };
|
4824
5344
|
}
|
4825
5345
|
Object.defineProperty(ShadowBlot.prototype, "statics", {
|
4826
5346
|
// Hack for accessing inherited static methods
|
@@ -4861,7 +5381,9 @@ var ShadowBlot = /** @class */ (function () {
|
|
4861
5381
|
return node;
|
4862
5382
|
};
|
4863
5383
|
ShadowBlot.prototype.attach = function () {
|
4864
|
-
this.
|
5384
|
+
if (this.parent != null) {
|
5385
|
+
this.scroll = this.parent.scroll;
|
5386
|
+
}
|
4865
5387
|
};
|
4866
5388
|
ShadowBlot.prototype.clone = function () {
|
4867
5389
|
var domNode = this.domNode.cloneNode(false);
|
@@ -4870,6 +5392,7 @@ var ShadowBlot = /** @class */ (function () {
|
|
4870
5392
|
ShadowBlot.prototype.detach = function () {
|
4871
5393
|
if (this.parent != null)
|
4872
5394
|
this.parent.removeChild(this);
|
5395
|
+
// @ts-ignore
|
4873
5396
|
delete this.domNode[Registry.DATA_KEY];
|
4874
5397
|
};
|
4875
5398
|
ShadowBlot.prototype.deleteAt = function (index, length) {
|
@@ -4888,22 +5411,26 @@ var ShadowBlot = /** @class */ (function () {
|
|
4888
5411
|
}
|
4889
5412
|
};
|
4890
5413
|
ShadowBlot.prototype.insertAt = function (index, value, def) {
|
4891
|
-
var blot =
|
5414
|
+
var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);
|
4892
5415
|
var ref = this.split(index);
|
4893
5416
|
this.parent.insertBefore(blot, ref);
|
4894
5417
|
};
|
4895
5418
|
ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {
|
5419
|
+
if (refBlot === void 0) { refBlot = null; }
|
4896
5420
|
if (this.parent != null) {
|
4897
5421
|
this.parent.children.remove(this);
|
4898
5422
|
}
|
5423
|
+
var refDomNode = null;
|
4899
5424
|
parentBlot.children.insertBefore(this, refBlot);
|
4900
5425
|
if (refBlot != null) {
|
4901
|
-
|
5426
|
+
refDomNode = refBlot.domNode;
|
4902
5427
|
}
|
4903
|
-
if (this.
|
4904
|
-
|
5428
|
+
if (this.domNode.parentNode != parentBlot.domNode ||
|
5429
|
+
this.domNode.nextSibling != refDomNode) {
|
5430
|
+
parentBlot.domNode.insertBefore(this.domNode, refDomNode);
|
4905
5431
|
}
|
4906
5432
|
this.parent = parentBlot;
|
5433
|
+
this.attach();
|
4907
5434
|
};
|
4908
5435
|
ShadowBlot.prototype.isolate = function (index, length) {
|
4909
5436
|
var target = this.split(index);
|
@@ -4913,7 +5440,6 @@ var ShadowBlot = /** @class */ (function () {
|
|
4913
5440
|
ShadowBlot.prototype.length = function () {
|
4914
5441
|
return 1;
|
4915
5442
|
};
|
4916
|
-
;
|
4917
5443
|
ShadowBlot.prototype.offset = function (root) {
|
4918
5444
|
if (root === void 0) { root = this.parent; }
|
4919
5445
|
if (this.parent == null || this == root)
|
@@ -4922,7 +5448,9 @@ var ShadowBlot = /** @class */ (function () {
|
|
4922
5448
|
};
|
4923
5449
|
ShadowBlot.prototype.optimize = function (context) {
|
4924
5450
|
// TODO clean up once we use WeakMap
|
5451
|
+
// @ts-ignore
|
4925
5452
|
if (this.domNode[Registry.DATA_KEY] != null) {
|
5453
|
+
// @ts-ignore
|
4926
5454
|
delete this.domNode[Registry.DATA_KEY].mutations;
|
4927
5455
|
}
|
4928
5456
|
};
|
@@ -4981,6 +5509,7 @@ var AttributorStore = /** @class */ (function () {
|
|
4981
5509
|
this.build();
|
4982
5510
|
}
|
4983
5511
|
AttributorStore.prototype.attribute = function (attribute, value) {
|
5512
|
+
// verb
|
4984
5513
|
if (value) {
|
4985
5514
|
if (attribute.add(this.domNode, value)) {
|
4986
5515
|
if (attribute.value(this.domNode) != null) {
|
@@ -5002,7 +5531,10 @@ var AttributorStore = /** @class */ (function () {
|
|
5002
5531
|
var attributes = attributor_1.default.keys(this.domNode);
|
5003
5532
|
var classes = class_1.default.keys(this.domNode);
|
5004
5533
|
var styles = style_1.default.keys(this.domNode);
|
5005
|
-
attributes
|
5534
|
+
attributes
|
5535
|
+
.concat(classes)
|
5536
|
+
.concat(styles)
|
5537
|
+
.forEach(function (name) {
|
5006
5538
|
var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);
|
5007
5539
|
if (attr instanceof attributor_1.default) {
|
5008
5540
|
_this.attributes[attr.attrName] = attr;
|
@@ -5067,7 +5599,10 @@ var ClassAttributor = /** @class */ (function (_super) {
|
|
5067
5599
|
}
|
5068
5600
|
ClassAttributor.keys = function (node) {
|
5069
5601
|
return (node.getAttribute('class') || '').split(/\s+/).map(function (name) {
|
5070
|
-
return name
|
5602
|
+
return name
|
5603
|
+
.split('-')
|
5604
|
+
.slice(0, -1)
|
5605
|
+
.join('-');
|
5071
5606
|
});
|
5072
5607
|
};
|
5073
5608
|
ClassAttributor.prototype.add = function (node, value) {
|
@@ -5116,9 +5651,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
5116
5651
|
var attributor_1 = __webpack_require__(12);
|
5117
5652
|
function camelize(name) {
|
5118
5653
|
var parts = name.split('-');
|
5119
|
-
var rest = parts
|
5654
|
+
var rest = parts
|
5655
|
+
.slice(1)
|
5656
|
+
.map(function (part) {
|
5120
5657
|
return part[0].toUpperCase() + part.slice(1);
|
5121
|
-
})
|
5658
|
+
})
|
5659
|
+
.join('');
|
5122
5660
|
return parts[0] + rest;
|
5123
5661
|
}
|
5124
5662
|
var StyleAttributor = /** @class */ (function (_super) {
|
@@ -5135,16 +5673,19 @@ var StyleAttributor = /** @class */ (function (_super) {
|
|
5135
5673
|
StyleAttributor.prototype.add = function (node, value) {
|
5136
5674
|
if (!this.canAdd(node, value))
|
5137
5675
|
return false;
|
5676
|
+
// @ts-ignore
|
5138
5677
|
node.style[camelize(this.keyName)] = value;
|
5139
5678
|
return true;
|
5140
5679
|
};
|
5141
5680
|
StyleAttributor.prototype.remove = function (node) {
|
5681
|
+
// @ts-ignore
|
5142
5682
|
node.style[camelize(this.keyName)] = '';
|
5143
5683
|
if (!node.getAttribute('style')) {
|
5144
5684
|
node.removeAttribute('style');
|
5145
5685
|
}
|
5146
5686
|
};
|
5147
5687
|
StyleAttributor.prototype.value = function (node) {
|
5688
|
+
// @ts-ignore
|
5148
5689
|
var value = node.style[camelize(this.keyName)];
|
5149
5690
|
return this.canAdd(node, value) ? value : '';
|
5150
5691
|
};
|
@@ -5166,656 +5707,169 @@ Object.defineProperty(exports, "__esModule", {
|
|
5166
5707
|
|
5167
5708
|
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
5168
5709
|
|
5169
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
5170
|
-
|
5171
|
-
var Theme = function () {
|
5172
|
-
function Theme(quill, options) {
|
5173
|
-
_classCallCheck(this, Theme);
|
5174
|
-
|
5175
|
-
this.quill = quill;
|
5176
|
-
this.options = options;
|
5177
|
-
this.modules = {};
|
5178
|
-
}
|
5179
|
-
|
5180
|
-
_createClass(Theme, [{
|
5181
|
-
key: 'init',
|
5182
|
-
value: function init() {
|
5183
|
-
var _this = this;
|
5184
|
-
|
5185
|
-
Object.keys(this.options.modules).forEach(function (name) {
|
5186
|
-
if (_this.modules[name] == null) {
|
5187
|
-
_this.addModule(name);
|
5188
|
-
}
|
5189
|
-
});
|
5190
|
-
}
|
5191
|
-
}, {
|
5192
|
-
key: 'addModule',
|
5193
|
-
value: function addModule(name) {
|
5194
|
-
var moduleClass = this.quill.constructor.import('modules/' + name);
|
5195
|
-
this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});
|
5196
|
-
return this.modules[name];
|
5197
|
-
}
|
5198
|
-
}]);
|
5199
|
-
|
5200
|
-
return Theme;
|
5201
|
-
}();
|
5202
|
-
|
5203
|
-
Theme.DEFAULTS = {
|
5204
|
-
modules: {}
|
5205
|
-
};
|
5206
|
-
Theme.themes = {
|
5207
|
-
'default': Theme
|
5208
|
-
};
|
5209
|
-
|
5210
|
-
exports.default = Theme;
|
5211
|
-
|
5212
|
-
/***/ }),
|
5213
|
-
/* 35 */
|
5214
|
-
/***/ (function(module, exports, __webpack_require__) {
|
5215
|
-
|
5216
|
-
"use strict";
|
5217
|
-
|
5218
|
-
|
5219
|
-
Object.defineProperty(exports, "__esModule", {
|
5220
|
-
value: true
|
5221
|
-
});
|
5222
|
-
exports.SHORTKEY = exports.default = undefined;
|
5223
|
-
|
5224
|
-
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
5225
|
-
|
5226
|
-
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
|
5227
|
-
|
5228
|
-
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
5229
|
-
|
5230
|
-
var _clone = __webpack_require__(21);
|
5231
|
-
|
5232
|
-
var _clone2 = _interopRequireDefault(_clone);
|
5233
|
-
|
5234
|
-
var _deepEqual = __webpack_require__(11);
|
5235
|
-
|
5236
|
-
var _deepEqual2 = _interopRequireDefault(_deepEqual);
|
5237
|
-
|
5238
|
-
var _extend = __webpack_require__(3);
|
5239
|
-
|
5240
|
-
var _extend2 = _interopRequireDefault(_extend);
|
5241
|
-
|
5242
|
-
var _quillDelta = __webpack_require__(2);
|
5243
|
-
|
5244
|
-
var _quillDelta2 = _interopRequireDefault(_quillDelta);
|
5245
|
-
|
5246
|
-
var _op = __webpack_require__(20);
|
5247
|
-
|
5248
|
-
var _op2 = _interopRequireDefault(_op);
|
5249
|
-
|
5250
|
-
var _parchment = __webpack_require__(0);
|
5251
|
-
|
5252
|
-
var _parchment2 = _interopRequireDefault(_parchment);
|
5253
|
-
|
5254
|
-
var _embed = __webpack_require__(25);
|
5255
|
-
|
5256
|
-
var _embed2 = _interopRequireDefault(_embed);
|
5257
|
-
|
5258
|
-
var _quill = __webpack_require__(5);
|
5259
|
-
|
5260
|
-
var _quill2 = _interopRequireDefault(_quill);
|
5261
|
-
|
5262
|
-
var _logger = __webpack_require__(10);
|
5263
|
-
|
5264
|
-
var _logger2 = _interopRequireDefault(_logger);
|
5265
|
-
|
5266
|
-
var _module = __webpack_require__(9);
|
5267
|
-
|
5268
|
-
var _module2 = _interopRequireDefault(_module);
|
5269
|
-
|
5270
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
5271
|
-
|
5272
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
5273
|
-
|
5274
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
5275
|
-
|
5276
|
-
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
5277
|
-
|
5278
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
5279
|
-
|
5280
|
-
var debug = (0, _logger2.default)('quill:keyboard');
|
5281
|
-
|
5282
|
-
var SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';
|
5283
|
-
|
5284
|
-
var Keyboard = function (_Module) {
|
5285
|
-
_inherits(Keyboard, _Module);
|
5286
|
-
|
5287
|
-
_createClass(Keyboard, null, [{
|
5288
|
-
key: 'match',
|
5289
|
-
value: function match(evt, binding) {
|
5290
|
-
binding = normalize(binding);
|
5291
|
-
if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {
|
5292
|
-
return !!binding[key] !== evt[key] && binding[key] !== null;
|
5293
|
-
})) {
|
5294
|
-
return false;
|
5295
|
-
}
|
5296
|
-
return binding.key === (evt.which || evt.keyCode);
|
5297
|
-
}
|
5298
|
-
}]);
|
5299
|
-
|
5300
|
-
function Keyboard(quill, options) {
|
5301
|
-
_classCallCheck(this, Keyboard);
|
5302
|
-
|
5303
|
-
var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options));
|
5304
|
-
|
5305
|
-
_this.bindings = {};
|
5306
|
-
Object.keys(_this.options.bindings).forEach(function (name) {
|
5307
|
-
if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) {
|
5308
|
-
return;
|
5309
|
-
}
|
5310
|
-
if (_this.options.bindings[name]) {
|
5311
|
-
_this.addBinding(_this.options.bindings[name]);
|
5312
|
-
}
|
5313
|
-
});
|
5314
|
-
_this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);
|
5315
|
-
_this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {});
|
5316
|
-
if (/Firefox/i.test(navigator.userAgent)) {
|
5317
|
-
// Need to handle delete and backspace for Firefox in the general case #1171
|
5318
|
-
_this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);
|
5319
|
-
_this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);
|
5320
|
-
} else {
|
5321
|
-
_this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);
|
5322
|
-
_this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);
|
5323
|
-
}
|
5324
|
-
_this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);
|
5325
|
-
_this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);
|
5326
|
-
_this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace);
|
5327
|
-
_this.listen();
|
5328
|
-
return _this;
|
5329
|
-
}
|
5330
|
-
|
5331
|
-
_createClass(Keyboard, [{
|
5332
|
-
key: 'addBinding',
|
5333
|
-
value: function addBinding(key) {
|
5334
|
-
var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
5335
|
-
var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
5336
|
-
|
5337
|
-
var binding = normalize(key);
|
5338
|
-
if (binding == null || binding.key == null) {
|
5339
|
-
return debug.warn('Attempted to add invalid keyboard binding', binding);
|
5340
|
-
}
|
5341
|
-
if (typeof context === 'function') {
|
5342
|
-
context = { handler: context };
|
5343
|
-
}
|
5344
|
-
if (typeof handler === 'function') {
|
5345
|
-
handler = { handler: handler };
|
5346
|
-
}
|
5347
|
-
binding = (0, _extend2.default)(binding, context, handler);
|
5348
|
-
this.bindings[binding.key] = this.bindings[binding.key] || [];
|
5349
|
-
this.bindings[binding.key].push(binding);
|
5350
|
-
}
|
5351
|
-
}, {
|
5352
|
-
key: 'listen',
|
5353
|
-
value: function listen() {
|
5354
|
-
var _this2 = this;
|
5355
|
-
|
5356
|
-
this.quill.root.addEventListener('keydown', function (evt) {
|
5357
|
-
if (evt.defaultPrevented) return;
|
5358
|
-
var which = evt.which || evt.keyCode;
|
5359
|
-
var bindings = (_this2.bindings[which] || []).filter(function (binding) {
|
5360
|
-
return Keyboard.match(evt, binding);
|
5361
|
-
});
|
5362
|
-
if (bindings.length === 0) return;
|
5363
|
-
var range = _this2.quill.getSelection();
|
5364
|
-
if (range == null || !_this2.quill.hasFocus()) return;
|
5365
|
-
|
5366
|
-
var _quill$getLine = _this2.quill.getLine(range.index),
|
5367
|
-
_quill$getLine2 = _slicedToArray(_quill$getLine, 2),
|
5368
|
-
line = _quill$getLine2[0],
|
5369
|
-
offset = _quill$getLine2[1];
|
5370
|
-
|
5371
|
-
var _quill$getLeaf = _this2.quill.getLeaf(range.index),
|
5372
|
-
_quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2),
|
5373
|
-
leafStart = _quill$getLeaf2[0],
|
5374
|
-
offsetStart = _quill$getLeaf2[1];
|
5375
|
-
|
5376
|
-
var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.getLeaf(range.index + range.length),
|
5377
|
-
_ref2 = _slicedToArray(_ref, 2),
|
5378
|
-
leafEnd = _ref2[0],
|
5379
|
-
offsetEnd = _ref2[1];
|
5380
|
-
|
5381
|
-
var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : '';
|
5382
|
-
var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : '';
|
5383
|
-
var curContext = {
|
5384
|
-
collapsed: range.length === 0,
|
5385
|
-
empty: range.length === 0 && line.length() <= 1,
|
5386
|
-
format: _this2.quill.getFormat(range),
|
5387
|
-
offset: offset,
|
5388
|
-
prefix: prefixText,
|
5389
|
-
suffix: suffixText
|
5390
|
-
};
|
5391
|
-
var prevented = bindings.some(function (binding) {
|
5392
|
-
if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;
|
5393
|
-
if (binding.empty != null && binding.empty !== curContext.empty) return false;
|
5394
|
-
if (binding.offset != null && binding.offset !== curContext.offset) return false;
|
5395
|
-
if (Array.isArray(binding.format)) {
|
5396
|
-
// any format is present
|
5397
|
-
if (binding.format.every(function (name) {
|
5398
|
-
return curContext.format[name] == null;
|
5399
|
-
})) {
|
5400
|
-
return false;
|
5401
|
-
}
|
5402
|
-
} else if (_typeof(binding.format) === 'object') {
|
5403
|
-
// all formats must match
|
5404
|
-
if (!Object.keys(binding.format).every(function (name) {
|
5405
|
-
if (binding.format[name] === true) return curContext.format[name] != null;
|
5406
|
-
if (binding.format[name] === false) return curContext.format[name] == null;
|
5407
|
-
return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);
|
5408
|
-
})) {
|
5409
|
-
return false;
|
5410
|
-
}
|
5411
|
-
}
|
5412
|
-
if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;
|
5413
|
-
if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;
|
5414
|
-
return binding.handler.call(_this2, range, curContext) !== true;
|
5415
|
-
});
|
5416
|
-
if (prevented) {
|
5417
|
-
evt.preventDefault();
|
5710
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
5711
|
+
|
5712
|
+
var Theme = function () {
|
5713
|
+
function Theme(quill, options) {
|
5714
|
+
_classCallCheck(this, Theme);
|
5715
|
+
|
5716
|
+
this.quill = quill;
|
5717
|
+
this.options = options;
|
5718
|
+
this.modules = {};
|
5719
|
+
}
|
5720
|
+
|
5721
|
+
_createClass(Theme, [{
|
5722
|
+
key: 'init',
|
5723
|
+
value: function init() {
|
5724
|
+
var _this = this;
|
5725
|
+
|
5726
|
+
Object.keys(this.options.modules).forEach(function (name) {
|
5727
|
+
if (_this.modules[name] == null) {
|
5728
|
+
_this.addModule(name);
|
5418
5729
|
}
|
5419
5730
|
});
|
5420
5731
|
}
|
5732
|
+
}, {
|
5733
|
+
key: 'addModule',
|
5734
|
+
value: function addModule(name) {
|
5735
|
+
var moduleClass = this.quill.constructor.import('modules/' + name);
|
5736
|
+
this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});
|
5737
|
+
return this.modules[name];
|
5738
|
+
}
|
5421
5739
|
}]);
|
5422
5740
|
|
5423
|
-
return
|
5424
|
-
}(
|
5741
|
+
return Theme;
|
5742
|
+
}();
|
5425
5743
|
|
5426
|
-
|
5427
|
-
|
5428
|
-
|
5429
|
-
|
5430
|
-
|
5431
|
-
LEFT: 37,
|
5432
|
-
UP: 38,
|
5433
|
-
RIGHT: 39,
|
5434
|
-
DOWN: 40,
|
5435
|
-
DELETE: 46
|
5744
|
+
Theme.DEFAULTS = {
|
5745
|
+
modules: {}
|
5746
|
+
};
|
5747
|
+
Theme.themes = {
|
5748
|
+
'default': Theme
|
5436
5749
|
};
|
5437
5750
|
|
5438
|
-
|
5439
|
-
bindings: {
|
5440
|
-
'bold': makeFormatHandler('bold'),
|
5441
|
-
'italic': makeFormatHandler('italic'),
|
5442
|
-
'underline': makeFormatHandler('underline'),
|
5443
|
-
'indent': {
|
5444
|
-
// highlight tab or tab at beginning of list, indent or blockquote
|
5445
|
-
key: Keyboard.keys.TAB,
|
5446
|
-
format: ['blockquote', 'indent', 'list'],
|
5447
|
-
handler: function handler(range, context) {
|
5448
|
-
if (context.collapsed && context.offset !== 0) return true;
|
5449
|
-
this.quill.format('indent', '+1', _quill2.default.sources.USER);
|
5450
|
-
}
|
5451
|
-
},
|
5452
|
-
'outdent': {
|
5453
|
-
key: Keyboard.keys.TAB,
|
5454
|
-
shiftKey: true,
|
5455
|
-
format: ['blockquote', 'indent', 'list'],
|
5456
|
-
// highlight tab or tab at beginning of list, indent or blockquote
|
5457
|
-
handler: function handler(range, context) {
|
5458
|
-
if (context.collapsed && context.offset !== 0) return true;
|
5459
|
-
this.quill.format('indent', '-1', _quill2.default.sources.USER);
|
5460
|
-
}
|
5461
|
-
},
|
5462
|
-
'outdent backspace': {
|
5463
|
-
key: Keyboard.keys.BACKSPACE,
|
5464
|
-
collapsed: true,
|
5465
|
-
shiftKey: null,
|
5466
|
-
metaKey: null,
|
5467
|
-
ctrlKey: null,
|
5468
|
-
altKey: null,
|
5469
|
-
format: ['indent', 'list'],
|
5470
|
-
offset: 0,
|
5471
|
-
handler: function handler(range, context) {
|
5472
|
-
if (context.format.indent != null) {
|
5473
|
-
this.quill.format('indent', '-1', _quill2.default.sources.USER);
|
5474
|
-
} else if (context.format.list != null) {
|
5475
|
-
this.quill.format('list', false, _quill2.default.sources.USER);
|
5476
|
-
}
|
5477
|
-
}
|
5478
|
-
},
|
5479
|
-
'indent code-block': makeCodeBlockHandler(true),
|
5480
|
-
'outdent code-block': makeCodeBlockHandler(false),
|
5481
|
-
'remove tab': {
|
5482
|
-
key: Keyboard.keys.TAB,
|
5483
|
-
shiftKey: true,
|
5484
|
-
collapsed: true,
|
5485
|
-
prefix: /\t$/,
|
5486
|
-
handler: function handler(range) {
|
5487
|
-
this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);
|
5488
|
-
}
|
5489
|
-
},
|
5490
|
-
'tab': {
|
5491
|
-
key: Keyboard.keys.TAB,
|
5492
|
-
handler: function handler(range) {
|
5493
|
-
this.quill.history.cutoff();
|
5494
|
-
var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\t');
|
5495
|
-
this.quill.updateContents(delta, _quill2.default.sources.USER);
|
5496
|
-
this.quill.history.cutoff();
|
5497
|
-
this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);
|
5498
|
-
}
|
5499
|
-
},
|
5500
|
-
'list empty enter': {
|
5501
|
-
key: Keyboard.keys.ENTER,
|
5502
|
-
collapsed: true,
|
5503
|
-
format: ['list'],
|
5504
|
-
empty: true,
|
5505
|
-
handler: function handler(range, context) {
|
5506
|
-
this.quill.format('list', false, _quill2.default.sources.USER);
|
5507
|
-
if (context.format.indent) {
|
5508
|
-
this.quill.format('indent', false, _quill2.default.sources.USER);
|
5509
|
-
}
|
5510
|
-
}
|
5511
|
-
},
|
5512
|
-
'checklist enter': {
|
5513
|
-
key: Keyboard.keys.ENTER,
|
5514
|
-
collapsed: true,
|
5515
|
-
format: { list: 'checked' },
|
5516
|
-
handler: function handler(range) {
|
5517
|
-
var _quill$getLine3 = this.quill.getLine(range.index),
|
5518
|
-
_quill$getLine4 = _slicedToArray(_quill$getLine3, 2),
|
5519
|
-
line = _quill$getLine4[0],
|
5520
|
-
offset = _quill$getLine4[1];
|
5521
|
-
|
5522
|
-
var delta = new _quillDelta2.default().retain(range.index).insert('\n', { list: 'checked' }).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' });
|
5523
|
-
this.quill.updateContents(delta, _quill2.default.sources.USER);
|
5524
|
-
this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);
|
5525
|
-
this.quill.scrollIntoView();
|
5526
|
-
}
|
5527
|
-
},
|
5528
|
-
'header enter': {
|
5529
|
-
key: Keyboard.keys.ENTER,
|
5530
|
-
collapsed: true,
|
5531
|
-
format: ['header'],
|
5532
|
-
suffix: /^$/,
|
5533
|
-
handler: function handler(range, context) {
|
5534
|
-
var _quill$getLine5 = this.quill.getLine(range.index),
|
5535
|
-
_quill$getLine6 = _slicedToArray(_quill$getLine5, 2),
|
5536
|
-
line = _quill$getLine6[0],
|
5537
|
-
offset = _quill$getLine6[1];
|
5538
|
-
|
5539
|
-
var delta = new _quillDelta2.default().retain(range.index).insert('\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null });
|
5540
|
-
this.quill.updateContents(delta, _quill2.default.sources.USER);
|
5541
|
-
this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);
|
5542
|
-
this.quill.scrollIntoView();
|
5543
|
-
}
|
5544
|
-
},
|
5545
|
-
'list autofill': {
|
5546
|
-
key: ' ',
|
5547
|
-
collapsed: true,
|
5548
|
-
format: { list: false },
|
5549
|
-
prefix: /^\s*?(1\.|-|\[ ?\]|\[x\])$/,
|
5550
|
-
handler: function handler(range, context) {
|
5551
|
-
var length = context.prefix.length;
|
5552
|
-
|
5553
|
-
var _quill$getLine7 = this.quill.getLine(range.index),
|
5554
|
-
_quill$getLine8 = _slicedToArray(_quill$getLine7, 2),
|
5555
|
-
line = _quill$getLine8[0],
|
5556
|
-
offset = _quill$getLine8[1];
|
5751
|
+
exports.default = Theme;
|
5557
5752
|
|
5558
|
-
|
5559
|
-
|
5560
|
-
|
5561
|
-
case '[]':case '[ ]':
|
5562
|
-
value = 'unchecked';
|
5563
|
-
break;
|
5564
|
-
case '[x]':
|
5565
|
-
value = 'checked';
|
5566
|
-
break;
|
5567
|
-
case '-':
|
5568
|
-
value = 'bullet';
|
5569
|
-
break;
|
5570
|
-
default:
|
5571
|
-
value = 'ordered';
|
5572
|
-
}
|
5573
|
-
this.quill.insertText(range.index, ' ', _quill2.default.sources.USER);
|
5574
|
-
this.quill.history.cutoff();
|
5575
|
-
var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value });
|
5576
|
-
this.quill.updateContents(delta, _quill2.default.sources.USER);
|
5577
|
-
this.quill.history.cutoff();
|
5578
|
-
this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);
|
5579
|
-
}
|
5580
|
-
},
|
5581
|
-
'code exit': {
|
5582
|
-
key: Keyboard.keys.ENTER,
|
5583
|
-
collapsed: true,
|
5584
|
-
format: ['code-block'],
|
5585
|
-
prefix: /\n\n$/,
|
5586
|
-
suffix: /^\s+$/,
|
5587
|
-
handler: function handler(range) {
|
5588
|
-
var _quill$getLine9 = this.quill.getLine(range.index),
|
5589
|
-
_quill$getLine10 = _slicedToArray(_quill$getLine9, 2),
|
5590
|
-
line = _quill$getLine10[0],
|
5591
|
-
offset = _quill$getLine10[1];
|
5753
|
+
/***/ }),
|
5754
|
+
/* 35 */
|
5755
|
+
/***/ (function(module, exports, __webpack_require__) {
|
5592
5756
|
|
5593
|
-
|
5594
|
-
this.quill.updateContents(delta, _quill2.default.sources.USER);
|
5595
|
-
}
|
5596
|
-
},
|
5597
|
-
'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),
|
5598
|
-
'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),
|
5599
|
-
'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),
|
5600
|
-
'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)
|
5601
|
-
}
|
5602
|
-
};
|
5757
|
+
"use strict";
|
5603
5758
|
|
5604
|
-
function makeEmbedArrowHandler(key, shiftKey) {
|
5605
|
-
var _ref3;
|
5606
5759
|
|
5607
|
-
|
5608
|
-
|
5609
|
-
|
5610
|
-
shiftKey: shiftKey
|
5611
|
-
}, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) {
|
5612
|
-
var index = range.index;
|
5613
|
-
if (key === Keyboard.keys.RIGHT) {
|
5614
|
-
index += range.length + 1;
|
5615
|
-
}
|
5760
|
+
Object.defineProperty(exports, "__esModule", {
|
5761
|
+
value: true
|
5762
|
+
});
|
5616
5763
|
|
5617
|
-
|
5618
|
-
_quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1),
|
5619
|
-
leaf = _quill$getLeaf4[0];
|
5764
|
+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
5620
5765
|
|
5621
|
-
|
5622
|
-
if (key === Keyboard.keys.LEFT) {
|
5623
|
-
if (shiftKey) {
|
5624
|
-
this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER);
|
5625
|
-
} else {
|
5626
|
-
this.quill.setSelection(range.index - 1, _quill2.default.sources.USER);
|
5627
|
-
}
|
5628
|
-
} else {
|
5629
|
-
if (shiftKey) {
|
5630
|
-
this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER);
|
5631
|
-
} else {
|
5632
|
-
this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER);
|
5633
|
-
}
|
5634
|
-
}
|
5635
|
-
return false;
|
5636
|
-
}), _ref3;
|
5637
|
-
}
|
5766
|
+
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
|
5638
5767
|
|
5639
|
-
|
5640
|
-
if (range.index === 0 || this.quill.getLength() <= 1) return;
|
5768
|
+
var _parchment = __webpack_require__(0);
|
5641
5769
|
|
5642
|
-
|
5643
|
-
_quill$getLine12 = _slicedToArray(_quill$getLine11, 1),
|
5644
|
-
line = _quill$getLine12[0];
|
5770
|
+
var _parchment2 = _interopRequireDefault(_parchment);
|
5645
5771
|
|
5646
|
-
|
5647
|
-
if (context.offset === 0) {
|
5648
|
-
var _quill$getLine13 = this.quill.getLine(range.index - 1),
|
5649
|
-
_quill$getLine14 = _slicedToArray(_quill$getLine13, 1),
|
5650
|
-
prev = _quill$getLine14[0];
|
5772
|
+
var _text = __webpack_require__(7);
|
5651
5773
|
|
5652
|
-
|
5653
|
-
var curFormats = line.formats();
|
5654
|
-
var prevFormats = this.quill.getFormat(range.index - 1, 1);
|
5655
|
-
formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};
|
5656
|
-
}
|
5657
|
-
}
|
5658
|
-
// Check for astral symbols
|
5659
|
-
var length = /[\uD800-\uDBFF][\uDC00-\uDFFF]$/.test(context.prefix) ? 2 : 1;
|
5660
|
-
this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER);
|
5661
|
-
if (Object.keys(formats).length > 0) {
|
5662
|
-
this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER);
|
5663
|
-
}
|
5664
|
-
this.quill.focus();
|
5665
|
-
}
|
5774
|
+
var _text2 = _interopRequireDefault(_text);
|
5666
5775
|
|
5667
|
-
function
|
5668
|
-
// Check for astral symbols
|
5669
|
-
var length = /^[\uD800-\uDBFF][\uDC00-\uDFFF]/.test(context.suffix) ? 2 : 1;
|
5670
|
-
if (range.index >= this.quill.getLength() - length) return;
|
5671
|
-
var formats = {},
|
5672
|
-
nextLength = 0;
|
5776
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
5673
5777
|
|
5674
|
-
|
5675
|
-
_quill$getLine16 = _slicedToArray(_quill$getLine15, 1),
|
5676
|
-
line = _quill$getLine16[0];
|
5778
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
5677
5779
|
|
5678
|
-
|
5679
|
-
var _quill$getLine17 = this.quill.getLine(range.index + 1),
|
5680
|
-
_quill$getLine18 = _slicedToArray(_quill$getLine17, 1),
|
5681
|
-
next = _quill$getLine18[0];
|
5780
|
+
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
5682
5781
|
|
5683
|
-
|
5684
|
-
var curFormats = line.formats();
|
5685
|
-
var nextFormats = this.quill.getFormat(range.index, 1);
|
5686
|
-
formats = _op2.default.attributes.diff(curFormats, nextFormats) || {};
|
5687
|
-
nextLength = next.length();
|
5688
|
-
}
|
5689
|
-
}
|
5690
|
-
this.quill.deleteText(range.index, length, _quill2.default.sources.USER);
|
5691
|
-
if (Object.keys(formats).length > 0) {
|
5692
|
-
this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER);
|
5693
|
-
}
|
5694
|
-
}
|
5782
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
5695
5783
|
|
5696
|
-
|
5697
|
-
var lines = this.quill.getLines(range);
|
5698
|
-
var formats = {};
|
5699
|
-
if (lines.length > 1) {
|
5700
|
-
var firstFormats = lines[0].formats();
|
5701
|
-
var lastFormats = lines[lines.length - 1].formats();
|
5702
|
-
formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {};
|
5703
|
-
}
|
5704
|
-
this.quill.deleteText(range, _quill2.default.sources.USER);
|
5705
|
-
if (Object.keys(formats).length > 0) {
|
5706
|
-
this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER);
|
5707
|
-
}
|
5708
|
-
this.quill.setSelection(range.index, _quill2.default.sources.SILENT);
|
5709
|
-
this.quill.focus();
|
5710
|
-
}
|
5784
|
+
var GUARD_TEXT = '\uFEFF';
|
5711
5785
|
|
5712
|
-
function
|
5713
|
-
|
5786
|
+
var Embed = function (_Parchment$Embed) {
|
5787
|
+
_inherits(Embed, _Parchment$Embed);
|
5714
5788
|
|
5715
|
-
|
5716
|
-
this
|
5717
|
-
}
|
5718
|
-
var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) {
|
5719
|
-
if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) {
|
5720
|
-
lineFormats[format] = context.format[format];
|
5721
|
-
}
|
5722
|
-
return lineFormats;
|
5723
|
-
}, {});
|
5724
|
-
this.quill.insertText(range.index, '\n', lineFormats, _quill2.default.sources.USER);
|
5725
|
-
// Earlier scroll.deleteAt might have messed up our selection,
|
5726
|
-
// so insertText's built in selection preservation is not reliable
|
5727
|
-
this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);
|
5728
|
-
this.quill.focus();
|
5729
|
-
Object.keys(context.format).forEach(function (name) {
|
5730
|
-
if (lineFormats[name] != null) return;
|
5731
|
-
if (Array.isArray(context.format[name])) return;
|
5732
|
-
if (name === 'link') return;
|
5733
|
-
_this3.quill.format(name, context.format[name], _quill2.default.sources.USER);
|
5734
|
-
});
|
5735
|
-
}
|
5789
|
+
function Embed(node) {
|
5790
|
+
_classCallCheck(this, Embed);
|
5736
5791
|
|
5737
|
-
|
5738
|
-
return {
|
5739
|
-
key: Keyboard.keys.TAB,
|
5740
|
-
shiftKey: !indent,
|
5741
|
-
format: { 'code-block': true },
|
5742
|
-
handler: function handler(range) {
|
5743
|
-
var CodeBlock = _parchment2.default.query('code-block');
|
5744
|
-
var index = range.index,
|
5745
|
-
length = range.length;
|
5792
|
+
var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node));
|
5746
5793
|
|
5747
|
-
|
5748
|
-
|
5749
|
-
|
5750
|
-
|
5794
|
+
_this.contentNode = document.createElement('span');
|
5795
|
+
_this.contentNode.setAttribute('contenteditable', false);
|
5796
|
+
[].slice.call(_this.domNode.childNodes).forEach(function (childNode) {
|
5797
|
+
_this.contentNode.appendChild(childNode);
|
5798
|
+
});
|
5799
|
+
_this.leftGuard = document.createTextNode(GUARD_TEXT);
|
5800
|
+
_this.rightGuard = document.createTextNode(GUARD_TEXT);
|
5801
|
+
_this.domNode.appendChild(_this.leftGuard);
|
5802
|
+
_this.domNode.appendChild(_this.contentNode);
|
5803
|
+
_this.domNode.appendChild(_this.rightGuard);
|
5804
|
+
return _this;
|
5805
|
+
}
|
5751
5806
|
|
5752
|
-
|
5753
|
-
|
5754
|
-
|
5755
|
-
|
5756
|
-
|
5757
|
-
|
5758
|
-
|
5759
|
-
|
5760
|
-
|
5761
|
-
|
5762
|
-
|
5763
|
-
|
5764
|
-
|
5765
|
-
|
5766
|
-
|
5767
|
-
|
5768
|
-
|
5769
|
-
|
5770
|
-
|
5771
|
-
|
5772
|
-
}
|
5773
|
-
|
5774
|
-
|
5807
|
+
_createClass(Embed, [{
|
5808
|
+
key: 'index',
|
5809
|
+
value: function index(node, offset) {
|
5810
|
+
if (node === this.leftGuard) return 0;
|
5811
|
+
if (node === this.rightGuard) return 1;
|
5812
|
+
return _get(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset);
|
5813
|
+
}
|
5814
|
+
}, {
|
5815
|
+
key: 'restore',
|
5816
|
+
value: function restore(node) {
|
5817
|
+
var range = void 0,
|
5818
|
+
textNode = void 0;
|
5819
|
+
var text = node.data.split(GUARD_TEXT).join('');
|
5820
|
+
if (node === this.leftGuard) {
|
5821
|
+
if (this.prev instanceof _text2.default) {
|
5822
|
+
var prevLength = this.prev.length();
|
5823
|
+
this.prev.insertAt(prevLength, text);
|
5824
|
+
range = {
|
5825
|
+
startNode: this.prev.domNode,
|
5826
|
+
startOffset: prevLength + text.length
|
5827
|
+
};
|
5828
|
+
} else {
|
5829
|
+
textNode = document.createTextNode(text);
|
5830
|
+
this.parent.insertBefore(_parchment2.default.create(textNode), this);
|
5831
|
+
range = {
|
5832
|
+
startNode: textNode,
|
5833
|
+
startOffset: text.length
|
5834
|
+
};
|
5775
5835
|
}
|
5776
|
-
|
5777
|
-
|
5778
|
-
|
5779
|
-
|
5836
|
+
} else if (node === this.rightGuard) {
|
5837
|
+
if (this.next instanceof _text2.default) {
|
5838
|
+
this.next.insertAt(0, text);
|
5839
|
+
range = {
|
5840
|
+
startNode: this.next.domNode,
|
5841
|
+
startOffset: text.length
|
5842
|
+
};
|
5843
|
+
} else {
|
5844
|
+
textNode = document.createTextNode(text);
|
5845
|
+
this.parent.insertBefore(_parchment2.default.create(textNode), this.next);
|
5846
|
+
range = {
|
5847
|
+
startNode: textNode,
|
5848
|
+
startOffset: text.length
|
5849
|
+
};
|
5850
|
+
}
|
5851
|
+
}
|
5852
|
+
node.data = GUARD_TEXT;
|
5853
|
+
return range;
|
5780
5854
|
}
|
5781
|
-
}
|
5782
|
-
|
5855
|
+
}, {
|
5856
|
+
key: 'update',
|
5857
|
+
value: function update(mutations, context) {
|
5858
|
+
var _this2 = this;
|
5783
5859
|
|
5784
|
-
function
|
5785
|
-
|
5786
|
-
|
5787
|
-
|
5788
|
-
|
5789
|
-
|
5860
|
+
mutations.forEach(function (mutation) {
|
5861
|
+
if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {
|
5862
|
+
var range = _this2.restore(mutation.target);
|
5863
|
+
if (range) context.range = range;
|
5864
|
+
}
|
5865
|
+
});
|
5790
5866
|
}
|
5791
|
-
};
|
5792
|
-
}
|
5867
|
+
}]);
|
5793
5868
|
|
5794
|
-
|
5795
|
-
|
5796
|
-
return normalize({ key: binding });
|
5797
|
-
}
|
5798
|
-
if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {
|
5799
|
-
binding = (0, _clone2.default)(binding, false);
|
5800
|
-
}
|
5801
|
-
if (typeof binding.key === 'string') {
|
5802
|
-
if (Keyboard.keys[binding.key.toUpperCase()] != null) {
|
5803
|
-
binding.key = Keyboard.keys[binding.key.toUpperCase()];
|
5804
|
-
} else if (binding.key.length === 1) {
|
5805
|
-
binding.key = binding.key.toUpperCase().charCodeAt(0);
|
5806
|
-
} else {
|
5807
|
-
return null;
|
5808
|
-
}
|
5809
|
-
}
|
5810
|
-
if (binding.shortKey) {
|
5811
|
-
binding[SHORTKEY] = binding.shortKey;
|
5812
|
-
delete binding.shortKey;
|
5813
|
-
}
|
5814
|
-
return binding;
|
5815
|
-
}
|
5869
|
+
return Embed;
|
5870
|
+
}(_parchment2.default.Embed);
|
5816
5871
|
|
5817
|
-
exports.default =
|
5818
|
-
exports.SHORTKEY = SHORTKEY;
|
5872
|
+
exports.default = Embed;
|
5819
5873
|
|
5820
5874
|
/***/ }),
|
5821
5875
|
/* 36 */
|
@@ -6065,13 +6119,13 @@ var History = function (_Module) {
|
|
6065
6119
|
value: function change(source, dest) {
|
6066
6120
|
if (this.stack[source].length === 0) return;
|
6067
6121
|
var delta = this.stack[source].pop();
|
6122
|
+
this.stack[dest].push(delta);
|
6068
6123
|
this.lastRecorded = 0;
|
6069
6124
|
this.ignoreChange = true;
|
6070
6125
|
this.quill.updateContents(delta[source], _quill2.default.sources.USER);
|
6071
6126
|
this.ignoreChange = false;
|
6072
6127
|
var index = getLastChangeIndex(delta[source]);
|
6073
6128
|
this.quill.setSelection(index);
|
6074
|
-
this.stack[dest].push(delta);
|
6075
6129
|
}
|
6076
6130
|
}, {
|
6077
6131
|
key: 'clear',
|
@@ -6177,7 +6231,7 @@ exports.getLastChangeIndex = getLastChangeIndex;
|
|
6177
6231
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6178
6232
|
var LinkedList = /** @class */ (function () {
|
6179
6233
|
function LinkedList() {
|
6180
|
-
this.head = this.tail =
|
6234
|
+
this.head = this.tail = null;
|
6181
6235
|
this.length = 0;
|
6182
6236
|
}
|
6183
6237
|
LinkedList.prototype.append = function () {
|
@@ -6185,20 +6239,22 @@ var LinkedList = /** @class */ (function () {
|
|
6185
6239
|
for (var _i = 0; _i < arguments.length; _i++) {
|
6186
6240
|
nodes[_i] = arguments[_i];
|
6187
6241
|
}
|
6188
|
-
this.insertBefore(nodes[0],
|
6242
|
+
this.insertBefore(nodes[0], null);
|
6189
6243
|
if (nodes.length > 1) {
|
6190
6244
|
this.append.apply(this, nodes.slice(1));
|
6191
6245
|
}
|
6192
6246
|
};
|
6193
6247
|
LinkedList.prototype.contains = function (node) {
|
6194
6248
|
var cur, next = this.iterator();
|
6195
|
-
while (cur = next()) {
|
6249
|
+
while ((cur = next())) {
|
6196
6250
|
if (cur === node)
|
6197
6251
|
return true;
|
6198
6252
|
}
|
6199
6253
|
return false;
|
6200
6254
|
};
|
6201
6255
|
LinkedList.prototype.insertBefore = function (node, refNode) {
|
6256
|
+
if (!node)
|
6257
|
+
return;
|
6202
6258
|
node.next = refNode;
|
6203
6259
|
if (refNode != null) {
|
6204
6260
|
node.prev = refNode.prev;
|
@@ -6216,7 +6272,7 @@ var LinkedList = /** @class */ (function () {
|
|
6216
6272
|
this.tail = node;
|
6217
6273
|
}
|
6218
6274
|
else {
|
6219
|
-
node.prev =
|
6275
|
+
node.prev = null;
|
6220
6276
|
this.head = this.tail = node;
|
6221
6277
|
}
|
6222
6278
|
this.length += 1;
|
@@ -6257,9 +6313,10 @@ var LinkedList = /** @class */ (function () {
|
|
6257
6313
|
LinkedList.prototype.find = function (index, inclusive) {
|
6258
6314
|
if (inclusive === void 0) { inclusive = false; }
|
6259
6315
|
var cur, next = this.iterator();
|
6260
|
-
while (cur = next()) {
|
6316
|
+
while ((cur = next())) {
|
6261
6317
|
var length = cur.length();
|
6262
|
-
if (index < length ||
|
6318
|
+
if (index < length ||
|
6319
|
+
(inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) {
|
6263
6320
|
return [cur, index];
|
6264
6321
|
}
|
6265
6322
|
index -= length;
|
@@ -6268,7 +6325,7 @@ var LinkedList = /** @class */ (function () {
|
|
6268
6325
|
};
|
6269
6326
|
LinkedList.prototype.forEach = function (callback) {
|
6270
6327
|
var cur, next = this.iterator();
|
6271
|
-
while (cur = next()) {
|
6328
|
+
while ((cur = next())) {
|
6272
6329
|
callback(cur);
|
6273
6330
|
}
|
6274
6331
|
};
|
@@ -6296,7 +6353,7 @@ var LinkedList = /** @class */ (function () {
|
|
6296
6353
|
};
|
6297
6354
|
LinkedList.prototype.reduce = function (callback, memo) {
|
6298
6355
|
var cur, next = this.iterator();
|
6299
|
-
while (cur = next()) {
|
6356
|
+
while ((cur = next())) {
|
6300
6357
|
memo = callback(memo, cur);
|
6301
6358
|
}
|
6302
6359
|
return memo;
|
@@ -6330,18 +6387,19 @@ var OBSERVER_CONFIG = {
|
|
6330
6387
|
characterData: true,
|
6331
6388
|
characterDataOldValue: true,
|
6332
6389
|
childList: true,
|
6333
|
-
subtree: true
|
6390
|
+
subtree: true,
|
6334
6391
|
};
|
6335
6392
|
var MAX_OPTIMIZE_ITERATIONS = 100;
|
6336
6393
|
var ScrollBlot = /** @class */ (function (_super) {
|
6337
6394
|
__extends(ScrollBlot, _super);
|
6338
6395
|
function ScrollBlot(node) {
|
6339
6396
|
var _this = _super.call(this, node) || this;
|
6340
|
-
_this.
|
6397
|
+
_this.scroll = _this;
|
6341
6398
|
_this.observer = new MutationObserver(function (mutations) {
|
6342
6399
|
_this.update(mutations);
|
6343
6400
|
});
|
6344
6401
|
_this.observer.observe(_this.domNode, OBSERVER_CONFIG);
|
6402
|
+
_this.attach();
|
6345
6403
|
return _this;
|
6346
6404
|
}
|
6347
6405
|
ScrollBlot.prototype.detach = function () {
|
@@ -6385,14 +6443,21 @@ var ScrollBlot = /** @class */ (function (_super) {
|
|
6385
6443
|
return;
|
6386
6444
|
if (blot.domNode.parentNode == null)
|
6387
6445
|
return;
|
6446
|
+
// @ts-ignore
|
6388
6447
|
if (blot.domNode[Registry.DATA_KEY].mutations == null) {
|
6448
|
+
// @ts-ignore
|
6389
6449
|
blot.domNode[Registry.DATA_KEY].mutations = [];
|
6390
6450
|
}
|
6391
6451
|
if (markParent)
|
6392
6452
|
mark(blot.parent);
|
6393
6453
|
};
|
6394
6454
|
var optimize = function (blot) {
|
6395
|
-
|
6455
|
+
// Post-order traversal
|
6456
|
+
if (
|
6457
|
+
// @ts-ignore
|
6458
|
+
blot.domNode[Registry.DATA_KEY] == null ||
|
6459
|
+
// @ts-ignore
|
6460
|
+
blot.domNode[Registry.DATA_KEY].mutations == null) {
|
6396
6461
|
return;
|
6397
6462
|
}
|
6398
6463
|
if (blot instanceof container_1.default) {
|
@@ -6440,24 +6505,35 @@ var ScrollBlot = /** @class */ (function (_super) {
|
|
6440
6505
|
if (context === void 0) { context = {}; }
|
6441
6506
|
mutations = mutations || this.observer.takeRecords();
|
6442
6507
|
// TODO use WeakMap
|
6443
|
-
mutations
|
6508
|
+
mutations
|
6509
|
+
.map(function (mutation) {
|
6444
6510
|
var blot = Registry.find(mutation.target, true);
|
6445
6511
|
if (blot == null)
|
6446
|
-
return;
|
6512
|
+
return null;
|
6513
|
+
// @ts-ignore
|
6447
6514
|
if (blot.domNode[Registry.DATA_KEY].mutations == null) {
|
6515
|
+
// @ts-ignore
|
6448
6516
|
blot.domNode[Registry.DATA_KEY].mutations = [mutation];
|
6449
6517
|
return blot;
|
6450
6518
|
}
|
6451
6519
|
else {
|
6520
|
+
// @ts-ignore
|
6452
6521
|
blot.domNode[Registry.DATA_KEY].mutations.push(mutation);
|
6453
6522
|
return null;
|
6454
6523
|
}
|
6455
|
-
})
|
6456
|
-
|
6524
|
+
})
|
6525
|
+
.forEach(function (blot) {
|
6526
|
+
if (blot == null ||
|
6527
|
+
blot === _this ||
|
6528
|
+
//@ts-ignore
|
6529
|
+
blot.domNode[Registry.DATA_KEY] == null)
|
6457
6530
|
return;
|
6531
|
+
// @ts-ignore
|
6458
6532
|
blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);
|
6459
6533
|
});
|
6534
|
+
// @ts-ignore
|
6460
6535
|
if (this.domNode[Registry.DATA_KEY].mutations != null) {
|
6536
|
+
// @ts-ignore
|
6461
6537
|
_super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);
|
6462
6538
|
}
|
6463
6539
|
this.optimize(mutations, context);
|
@@ -6494,7 +6570,9 @@ var Registry = __webpack_require__(1);
|
|
6494
6570
|
function isEqual(obj1, obj2) {
|
6495
6571
|
if (Object.keys(obj1).length !== Object.keys(obj2).length)
|
6496
6572
|
return false;
|
6573
|
+
// @ts-ignore
|
6497
6574
|
for (var prop in obj1) {
|
6575
|
+
// @ts-ignore
|
6498
6576
|
if (obj1[prop] !== obj2[prop])
|
6499
6577
|
return false;
|
6500
6578
|
}
|
@@ -6616,7 +6694,7 @@ var BlockBlot = /** @class */ (function (_super) {
|
|
6616
6694
|
};
|
6617
6695
|
BlockBlot.prototype.update = function (mutations, context) {
|
6618
6696
|
if (navigator.userAgent.match(/Trident/)) {
|
6619
|
-
this.
|
6697
|
+
this.build();
|
6620
6698
|
}
|
6621
6699
|
else {
|
6622
6700
|
_super.prototype.update.call(this, mutations, context);
|
@@ -6709,8 +6787,9 @@ var TextBlot = /** @class */ (function (_super) {
|
|
6709
6787
|
};
|
6710
6788
|
TextBlot.value = function (domNode) {
|
6711
6789
|
var text = domNode.data;
|
6712
|
-
|
6713
|
-
|
6790
|
+
// @ts-ignore
|
6791
|
+
if (text['normalize'])
|
6792
|
+
text = text['normalize']();
|
6714
6793
|
return text;
|
6715
6794
|
};
|
6716
6795
|
TextBlot.prototype.deleteAt = function (index, length) {
|
@@ -6939,6 +7018,7 @@ function diff_main(text1, text2, cursor_pos) {
|
|
6939
7018
|
if (cursor_pos != null) {
|
6940
7019
|
diffs = fix_cursor(diffs, cursor_pos);
|
6941
7020
|
}
|
7021
|
+
diffs = fix_emoji(diffs);
|
6942
7022
|
return diffs;
|
6943
7023
|
};
|
6944
7024
|
|
@@ -7528,7 +7608,46 @@ function fix_cursor (diffs, cursor_pos) {
|
|
7528
7608
|
return diffs;
|
7529
7609
|
}
|
7530
7610
|
}
|
7611
|
+
}
|
7612
|
+
|
7613
|
+
/*
|
7614
|
+
* Check diff did not split surrogate pairs.
|
7615
|
+
* Ex. [0, '\uD83D'], [-1, '\uDC36'], [1, '\uDC2F'] -> [-1, '\uD83D\uDC36'], [1, '\uD83D\uDC2F']
|
7616
|
+
* '\uD83D\uDC36' === '🐶', '\uD83D\uDC2F' === '🐯'
|
7617
|
+
*
|
7618
|
+
* @param {Array} diffs Array of diff tuples
|
7619
|
+
* @return {Array} Array of diff tuples
|
7620
|
+
*/
|
7621
|
+
function fix_emoji (diffs) {
|
7622
|
+
var compact = false;
|
7623
|
+
var starts_with_pair_end = function(str) {
|
7624
|
+
return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;
|
7625
|
+
}
|
7626
|
+
var ends_with_pair_start = function(str) {
|
7627
|
+
return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;
|
7628
|
+
}
|
7629
|
+
for (var i = 2; i < diffs.length; i += 1) {
|
7630
|
+
if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&
|
7631
|
+
diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&
|
7632
|
+
diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {
|
7633
|
+
compact = true;
|
7634
|
+
|
7635
|
+
diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];
|
7636
|
+
diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];
|
7531
7637
|
|
7638
|
+
diffs[i-2][1] = diffs[i-2][1].slice(0, -1);
|
7639
|
+
}
|
7640
|
+
}
|
7641
|
+
if (!compact) {
|
7642
|
+
return diffs;
|
7643
|
+
}
|
7644
|
+
var fixed_diffs = [];
|
7645
|
+
for (var i = 0; i < diffs.length; i += 1) {
|
7646
|
+
if (diffs[i][1].length > 0) {
|
7647
|
+
fixed_diffs.push(diffs[i]);
|
7648
|
+
}
|
7649
|
+
}
|
7650
|
+
return fixed_diffs;
|
7532
7651
|
}
|
7533
7652
|
|
7534
7653
|
/*
|
@@ -8060,10 +8179,12 @@ var Clipboard = function (_Module) {
|
|
8060
8179
|
var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _quill2.default.sources.API;
|
8061
8180
|
|
8062
8181
|
if (typeof index === 'string') {
|
8063
|
-
|
8182
|
+
this.quill.setContents(this.convert(index), html);
|
8183
|
+
this.quill.setSelection(0, _quill2.default.sources.SILENT);
|
8064
8184
|
} else {
|
8065
8185
|
var paste = this.convert(html);
|
8066
|
-
|
8186
|
+
this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source);
|
8187
|
+
this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT);
|
8067
8188
|
}
|
8068
8189
|
}
|
8069
8190
|
}, {
|
@@ -8204,11 +8325,11 @@ function matchAttributor(node, delta) {
|
|
8204
8325
|
if (formats[attr.attrName]) return;
|
8205
8326
|
}
|
8206
8327
|
attr = ATTRIBUTE_ATTRIBUTORS[name];
|
8207
|
-
if (attr != null && attr.attrName === name) {
|
8328
|
+
if (attr != null && (attr.attrName === name || attr.keyName === name)) {
|
8208
8329
|
formats[attr.attrName] = attr.value(node) || undefined;
|
8209
8330
|
}
|
8210
8331
|
attr = STYLE_ATTRIBUTORS[name];
|
8211
|
-
if (attr != null && attr.attrName === name) {
|
8332
|
+
if (attr != null && (attr.attrName === name || attr.keyName === name)) {
|
8212
8333
|
attr = STYLE_ATTRIBUTORS[name];
|
8213
8334
|
formats[attr.attrName] = attr.value(node) || undefined;
|
8214
8335
|
}
|
@@ -8397,5 +8518,5 @@ module.exports = __webpack_require__(29);
|
|
8397
8518
|
|
8398
8519
|
|
8399
8520
|
/***/ })
|
8400
|
-
/******/ ]);
|
8521
|
+
/******/ ])["default"];
|
8401
8522
|
});
|