decidim-decidim_awesome 0.7.2 → 0.8.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +181 -0
- data/README.md +61 -35
- data/Rakefile +11 -12
- data/app/cells/decidim/decidim_awesome/content_blocks/map/error.erb +11 -0
- data/app/cells/decidim/decidim_awesome/content_blocks/map/show.erb +1 -61
- data/app/cells/decidim/decidim_awesome/content_blocks/map_cell.rb +11 -0
- data/app/cells/decidim/decidim_awesome/content_blocks/map_form/show.erb +8 -4
- data/app/commands/decidim/decidim_awesome/admin/create_custom_redirect.rb +51 -0
- data/app/commands/decidim/decidim_awesome/admin/destroy_custom_redirect.rb +47 -0
- data/app/commands/decidim/decidim_awesome/admin/update_custom_redirect.rb +49 -0
- data/app/commands/decidim/decidim_awesome/create_editor_image.rb +12 -5
- data/app/controllers/concerns/decidim/decidim_awesome/not_found_redirect.rb +58 -0
- data/app/controllers/decidim/decidim_awesome/admin/checks_controller.rb +24 -24
- data/app/controllers/decidim/decidim_awesome/admin/config_controller.rb +9 -1
- data/app/controllers/decidim/decidim_awesome/admin/custom_redirects_controller.rb +91 -0
- data/app/controllers/decidim/decidim_awesome/admin/menu_hacks_controller.rb +5 -8
- data/app/controllers/decidim/decidim_awesome/blank_component_controller.rb +19 -0
- data/app/controllers/decidim/decidim_awesome/editor_images_controller.rb +2 -3
- data/app/controllers/decidim/decidim_awesome/iframe_component/iframe_controller.rb +1 -1
- data/app/controllers/decidim/decidim_awesome/map_component/map_controller.rb +2 -6
- data/app/forms/decidim/decidim_awesome/admin/config_form.rb +2 -0
- data/app/forms/decidim/decidim_awesome/admin/custom_redirect_form.rb +45 -0
- data/app/forms/decidim/decidim_awesome/editor_image_form.rb +3 -2
- data/app/forms/decidim/decidim_awesome/proposals/proposal_wizard_create_step_form_override.rb +38 -0
- data/app/helpers/decidim/decidim_awesome/admin/config_constraints_helpers.rb +22 -9
- data/app/helpers/decidim/decidim_awesome/admin/system_checker_helpers.rb +36 -0
- data/app/helpers/decidim/decidim_awesome/map_helper.rb +18 -12
- data/app/helpers/decidim/decidim_awesome/proposals/application_helper_override.rb +2 -2
- data/app/jobs/decidim/decidim_awesome/migrate_legacy_images_job.rb +106 -0
- data/app/models/decidim/decidim_awesome/editor_image.rb +4 -9
- data/app/packs/entrypoints/decidim_admin_decidim_awesome.js +5 -0
- data/app/packs/entrypoints/decidim_admin_decidim_awesome.scss +1 -0
- data/app/packs/entrypoints/decidim_admin_decidim_awesome_custom_fields.js +2 -0
- data/app/packs/entrypoints/decidim_decidim_awesome.js +9 -0
- data/app/packs/entrypoints/decidim_decidim_awesome.scss +1 -0
- data/app/packs/entrypoints/decidim_decidim_awesome_admin_form_exit_warn.js +1 -0
- data/app/packs/entrypoints/decidim_decidim_awesome_custom_fields.js +1 -0
- data/app/packs/entrypoints/decidim_decidim_awesome_iframe.scss +1 -0
- data/app/packs/entrypoints/decidim_decidim_awesome_map.js +5 -0
- data/app/packs/entrypoints/decidim_decidim_awesome_map.scss +1 -0
- data/app/{assets → packs}/images/decidim/decidim_awesome/platoniq-logo.png +0 -0
- data/app/{assets/javascripts/decidim/decidim_awesome/admin/auto_edit.js.es6 → packs/src/decidim/decidim_awesome/admin/auto_edit.js} +39 -34
- data/app/packs/src/decidim/decidim_awesome/admin/check_redirections.js +48 -0
- data/app/{assets/javascripts/decidim/decidim_awesome/admin/codemirror.js.es6 → packs/src/decidim/decidim_awesome/admin/codemirror.js} +4 -4
- data/app/packs/src/decidim/decidim_awesome/admin/constraints.js +55 -0
- data/app/{assets/javascripts/decidim/decidim_awesome/admin/form_builder.js.es6 → packs/src/decidim/decidim_awesome/admin/custom_fields_builder.js} +23 -26
- data/app/{assets/javascripts/decidim/decidim_awesome/admin/form_exit_warn.js.es6 → packs/src/decidim/decidim_awesome/admin/form_exit_warn.js} +0 -2
- data/app/{assets/javascripts/decidim/decidim_awesome/admin/user_picker.js.es6 → packs/src/decidim/decidim_awesome/admin/user_picker.js} +3 -3
- data/app/packs/src/decidim/decidim_awesome/awesome_admin.js +23 -0
- data/app/packs/src/decidim/decidim_awesome/awesome_application.js +17 -0
- data/app/{assets/javascripts/decidim/decidim_awesome/awesome_map/api_fetcher.js.es6 → packs/src/decidim/decidim_awesome/awesome_map/api/api_fetcher.js} +1 -15
- data/app/packs/src/decidim/decidim_awesome/awesome_map/api/fetcher.js +134 -0
- data/app/packs/src/decidim/decidim_awesome/awesome_map/api/meetings_fetcher.js +59 -0
- data/app/packs/src/decidim/decidim_awesome/awesome_map/api/proposals_fetcher.js +52 -0
- data/app/packs/src/decidim/decidim_awesome/awesome_map/awesome_map.js +129 -0
- data/app/packs/src/decidim/decidim_awesome/awesome_map/controllers/controller.js +130 -0
- data/app/packs/src/decidim/decidim_awesome/awesome_map/controllers/meetings_controller.js +31 -0
- data/app/packs/src/decidim/decidim_awesome/awesome_map/controllers/proposals_controller.js +88 -0
- data/app/packs/src/decidim/decidim_awesome/awesome_map/controls_ui.js +221 -0
- data/app/packs/src/decidim/decidim_awesome/awesome_map/load_map.js +51 -0
- data/app/packs/src/decidim/decidim_awesome/editors/editor.js +191 -0
- data/app/{assets/javascripts/decidim/decidim_awesome/editors/tabs_focus.js.es6 → packs/src/decidim/decidim_awesome/editors/tabs_focus.js} +4 -6
- data/app/{assets/javascripts/decidim/decidim_awesome/forms/autosave.js.es6 → packs/src/decidim/decidim_awesome/forms/autosave.js} +20 -17
- data/app/packs/src/decidim/decidim_awesome/forms/custom_fields_renderer.js +207 -0
- data/app/{assets/javascripts/decidim/decidim_awesome/forms/rich_text_plugin.js.es6 → packs/src/decidim/decidim_awesome/forms/rich_text_plugin.js} +23 -21
- data/app/packs/src/decidim/decidim_awesome/proposals/custom_fields.js +22 -0
- data/app/packs/src/decidim/decidim_awesome/proposals/images.js +25 -0
- data/{vendor/assets/javascripts → app/packs/src/vendor}/image-resize.min.js +0 -0
- data/{vendor/assets/javascripts → app/packs/src/vendor}/image-upload.min.js +0 -0
- data/{vendor/assets/javascripts → app/packs/src/vendor}/jquery.truncate.js +0 -0
- data/app/packs/src/vendor/leaflet.featuregroup.subgroup.js +184 -0
- data/app/{assets → packs}/stylesheets/decidim/decidim_awesome/admin/auto_edits.scss +2 -1
- data/app/packs/stylesheets/decidim/decidim_awesome/admin/check_redirections.scss +28 -0
- data/app/{assets → packs}/stylesheets/decidim/decidim_awesome/admin/codemirror.scss +8 -6
- data/app/{assets → packs}/stylesheets/decidim/decidim_awesome/admin/constraints.scss +13 -13
- data/app/{assets → packs}/stylesheets/decidim/decidim_awesome/admin/custom_fields.scss +37 -10
- data/app/packs/stylesheets/decidim/decidim_awesome/admin/user_picker.scss +41 -0
- data/app/packs/stylesheets/decidim/decidim_awesome/awesome_admin.scss +71 -0
- data/app/packs/stylesheets/decidim/decidim_awesome/awesome_application.scss +19 -0
- data/app/{assets → packs}/stylesheets/decidim/decidim_awesome/awesome_iframe/iframe.scss +3 -3
- data/app/packs/stylesheets/decidim/decidim_awesome/awesome_map/map.scss +176 -0
- data/app/{assets → packs}/stylesheets/decidim/decidim_awesome/editors/markdown_editor.scss +6 -4
- data/app/packs/stylesheets/decidim/decidim_awesome/editors/quill_editor.scss +58 -0
- data/app/{assets → packs}/stylesheets/decidim/decidim_awesome/forms/autosave.scss +2 -2
- data/app/packs/stylesheets/vendor/select2-foundation-theme.scss +348 -0
- data/app/presenters/decidim/decidim_awesome/menu_item_presenter_override.rb +25 -0
- data/app/presenters/decidim/decidim_awesome/menu_presenter_override.rb +23 -0
- data/app/uploaders/decidim/cw/decidim_awesome/image_uploader.rb +26 -0
- data/app/uploaders/decidim/decidim_awesome/image_uploader.rb +4 -16
- data/app/views/decidim/decidim_awesome/admin/checks/index.html.erb +28 -22
- data/app/views/decidim/decidim_awesome/admin/config/_constraints.html.erb +1 -1
- data/app/views/decidim/decidim_awesome/admin/config/_form_admins.html.erb +1 -1
- data/app/views/decidim/decidim_awesome/admin/config/_form_editors.html.erb +1 -0
- data/app/views/decidim/decidim_awesome/admin/config/_form_proposal_custom_fields.html.erb +1 -1
- data/app/views/decidim/decidim_awesome/admin/config/_form_styles.html.erb +7 -6
- data/app/views/decidim/decidim_awesome/admin/config/_modal.html.erb +1 -1
- data/app/views/decidim/decidim_awesome/admin/config/show.html.erb +3 -3
- data/app/views/decidim/decidim_awesome/admin/constraints/new.html.erb +1 -1
- data/app/views/decidim/decidim_awesome/admin/custom_redirects/_form.html.erb +6 -0
- data/app/views/decidim/decidim_awesome/admin/custom_redirects/edit.html.erb +13 -0
- data/app/views/decidim/decidim_awesome/admin/custom_redirects/index.html.erb +37 -0
- data/app/views/decidim/decidim_awesome/admin/custom_redirects/new.html.erb +13 -0
- data/app/views/decidim/decidim_awesome/admin/menu_hacks/edit.html.erb +1 -1
- data/app/views/decidim/decidim_awesome/admin/menu_hacks/new.html.erb +1 -1
- data/app/views/decidim/decidim_awesome/admin/proposals/_editor.html.erb +5 -3
- data/app/views/decidim/decidim_awesome/iframe_component/iframe/show.html.erb +1 -1
- data/app/views/decidim/decidim_awesome/map_component/map/_api_ready.html.erb +3 -0
- data/app/views/decidim/decidim_awesome/map_component/map/_map_template.html.erb +68 -0
- data/app/views/decidim/decidim_awesome/map_component/map/{error.erb → error.html.erb} +2 -0
- data/app/views/decidim/decidim_awesome/map_component/map/show.html.erb +3 -67
- data/app/views/decidim/proposals/admin/proposals/_form.html.erb +1 -1
- data/app/views/layouts/decidim/admin/decidim_awesome.html.erb +13 -9
- data/app/views/layouts/decidim/decidim_awesome/_awesome_config.html.erb +0 -2
- data/app/views/{v0.24 → v0.25}/decidim/proposals/collaborative_drafts/_show.html.erb +0 -0
- data/app/views/{v0.23 → v0.25}/layouts/decidim/_head.html.erb +12 -10
- data/app/views/v0.25/layouts/decidim/admin/_header.html.erb +11 -0
- data/app/views/{v0.23 → v0.26}/decidim/proposals/collaborative_drafts/_show.html.erb +1 -7
- data/app/views/{v0.24 → v0.26}/layouts/decidim/_head.html.erb +16 -10
- data/app/views/v0.26/layouts/decidim/admin/_header.html.erb +11 -0
- data/config/assets.rb +46 -0
- data/config/i18n-tasks.yml +6 -0
- data/config/locales/ca.yml +77 -13
- data/config/locales/cs.yml +65 -1
- data/config/locales/en.yml +69 -1
- data/config/locales/es.yml +65 -1
- data/config/locales/eu.yml +0 -232
- data/config/locales/fr.yml +117 -53
- data/config/locales/it.yml +65 -1
- data/config/locales/ja.yml +66 -3
- data/config/locales/nl.yml +5 -46
- data/config/locales/pt-BR.yml +348 -0
- data/config/locales/pt-PT.yml +7 -0
- data/config/locales/pt.yml +7 -0
- data/config/locales/sv.yml +67 -182
- data/lib/decidim/decidim_awesome/admin_engine.rb +10 -15
- data/lib/decidim/decidim_awesome/awesome.rb +214 -0
- data/lib/decidim/decidim_awesome/awesome_helpers.rb +0 -7
- data/lib/decidim/decidim_awesome/checksums.yml +13 -16
- data/lib/decidim/decidim_awesome/config.rb +1 -0
- data/lib/decidim/decidim_awesome/content_parsers/editor_images_parser.rb +39 -0
- data/lib/decidim/decidim_awesome/engine.rb +27 -55
- data/lib/decidim/decidim_awesome/iframe_component/admin_engine.rb +23 -0
- data/lib/decidim/decidim_awesome/iframe_component/component.rb +6 -6
- data/lib/decidim/decidim_awesome/map_component/admin_engine.rb +23 -0
- data/lib/decidim/decidim_awesome/map_component/component.rb +6 -5
- data/lib/decidim/decidim_awesome/map_component/engine.rb +34 -0
- data/lib/decidim/decidim_awesome/menu_hacker.rb +1 -0
- data/lib/decidim/decidim_awesome/test/factories.rb +2 -2
- data/lib/decidim/decidim_awesome/test/initializer.rb +25 -0
- data/lib/decidim/decidim_awesome/test/layouts/decidim/_head.html.erb +30 -2
- data/lib/decidim/decidim_awesome/test/layouts/decidim/admin/_header.html.erb +7 -2
- data/lib/decidim/decidim_awesome/test/shared_examples/config_examples.rb +18 -0
- data/lib/decidim/decidim_awesome/test/shared_examples/controller_examples.rb +13 -0
- data/lib/decidim/decidim_awesome/test/shared_examples/custom_redirects_contexts.rb +47 -0
- data/lib/decidim/decidim_awesome/test/shared_examples/menu_hack_contexts.rb +0 -17
- data/lib/decidim/decidim_awesome/test/shared_examples/scoped_admins_examples.rb +9 -17
- data/lib/decidim/decidim_awesome/test/shared_examples/summary_examples.rb +202 -0
- data/lib/decidim/decidim_awesome/version.rb +2 -2
- data/lib/decidim/decidim_awesome.rb +4 -152
- data/lib/tasks/decidim_awesome_active_storage_migrations_tasks.rake +37 -0
- data/lib/tasks/decidim_awesome_webpacker_tasks.rake +64 -0
- data/package.json +211 -0
- metadata +113 -113
- data/app/assets/config/decidim_admin_decidim_awesome_manifest.css +0 -3
- data/app/assets/config/decidim_admin_decidim_awesome_manifest.js +0 -2
- data/app/assets/config/decidim_decidim_awesome_manifest.css +0 -5
- data/app/assets/config/decidim_decidim_awesome_manifest.js +0 -4
- data/app/assets/config/legacy_decidim_admin_decidim_awesome_manifest.js +0 -2
- data/app/assets/config/legacy_decidim_decidim_awesome_manifest.js +0 -4
- data/app/assets/javascripts/decidim/decidim_awesome/admin/constraints.js.es6 +0 -54
- data/app/assets/javascripts/decidim/decidim_awesome/admin/legacy_form_builder.js.es6 +0 -80
- data/app/assets/javascripts/decidim/decidim_awesome/awesome_admin.js +0 -7
- data/app/assets/javascripts/decidim/decidim_awesome/awesome_application.js +0 -3
- data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/categories.js.es6 +0 -25
- data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/hashtags.js.es6 +0 -48
- data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/layers.js.es6 +0 -107
- data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/load_map.js.es6 +0 -15
- data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/map.js.es6 +0 -207
- data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/markers.js.es6 +0 -56
- data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/meetings.js.es6 +0 -132
- data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/proposals.js.es6 +0 -107
- data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/utilities.js.es6 +0 -57
- data/app/assets/javascripts/decidim/decidim_awesome/editors/legacy_quill_editor.js.es6 +0 -172
- data/app/assets/javascripts/decidim/decidim_awesome/editors/quill_editor.js.es6 +0 -185
- data/app/assets/javascripts/decidim/decidim_awesome/forms/custom_fields_builder.js.es6 +0 -211
- data/app/assets/javascripts/decidim/decidim_awesome/legacy_admin.js +0 -7
- data/app/assets/javascripts/decidim/decidim_awesome/legacy_application.js +0 -3
- data/app/assets/javascripts/decidim/decidim_awesome/proposals/custom_fields.js.es6 +0 -21
- data/app/assets/javascripts/decidim/decidim_awesome/proposals/images.js.es6 +0 -25
- data/app/assets/stylesheets/decidim/decidim_awesome/admin/user_picker.scss +0 -35
- data/app/assets/stylesheets/decidim/decidim_awesome/awesome_admin.scss +0 -64
- data/app/assets/stylesheets/decidim/decidim_awesome/awesome_application.scss +0 -22
- data/app/assets/stylesheets/decidim/decidim_awesome/awesome_map/leaflet.scss.erb +0 -18
- data/app/assets/stylesheets/decidim/decidim_awesome/awesome_map/map.scss +0 -160
- data/app/assets/stylesheets/decidim/decidim_awesome/editors/quill_editor.scss +0 -22
- data/app/awesome_overrides/forms/decidim/proposals/proposal_wizard_create_step_form_override.rb +0 -28
- data/app/awesome_overrides/presenters/decidim/menu_presenter_override.rb +0 -39
- data/app/controllers/concerns/decidim/decidim_awesome/admin_not_found_redirect.rb +0 -39
- data/app/controllers/decidim/decidim_awesome/iframe_component/application_controller.rb +0 -15
- data/app/controllers/decidim/decidim_awesome/map_component/application_controller.rb +0 -15
- data/app/views/v0.23/layouts/decidim/admin/_header.html.erb +0 -12
- data/app/views/v0.24/layouts/decidim/admin/_header.html.erb +0 -12
- data/lib/decidim/decidim_awesome/test/themes/css.lvh.me.css +0 -3
- data/lib/decidim/decidim_awesome/test/themes/erb.lvh.me.scss.erb +0 -2
- data/lib/decidim/decidim_awesome/test/themes/scss.lvh.me.scss +0 -1
- data/lib/decidim/decidim_awesome/test/themes/test-theme/body.scss +0 -4
- data/vendor/assets/images/layers-2x.png +0 -0
- data/vendor/assets/images/layers.png +0 -0
- data/vendor/assets/images/marker-icon.png +0 -0
- data/vendor/assets/javascripts/codemirror-4.inline-attachment.js +0 -89
- data/vendor/assets/javascripts/codemirror.js +0 -9801
- data/vendor/assets/javascripts/delta.min.js +0 -405
- data/vendor/assets/javascripts/delta.min.js.map +0 -1
- data/vendor/assets/javascripts/europa.min.js +0 -4
- data/vendor/assets/javascripts/form-builder.min.js +0 -19
- data/vendor/assets/javascripts/form-render.min.js +0 -19
- data/vendor/assets/javascripts/form-storage.js +0 -824
- data/vendor/assets/javascripts/highlight.min.js +0 -44
- data/vendor/assets/javascripts/inline-attachment.js +0 -399
- data/vendor/assets/javascripts/inscrybmde.min.js +0 -7
- data/vendor/assets/javascripts/jquery-ui.min.js +0 -13
- data/vendor/assets/javascripts/jquery.inline-attachment.js +0 -66
- data/vendor/assets/javascripts/jsrender.min.js +0 -4
- data/vendor/assets/javascripts/keymap/sublime.js +0 -720
- data/vendor/assets/javascripts/leaflet.featuregroup.subgroup.js +0 -6
- data/vendor/assets/javascripts/mode/css/css.js +0 -864
- data/vendor/assets/javascripts/select2.js +0 -6147
- data/vendor/assets/langs/en-US.lang +0 -110
- data/vendor/assets/stylesheets/codemirror.css +0 -350
- data/vendor/assets/stylesheets/default.min.css +0 -1
- data/vendor/assets/stylesheets/foundation.min.css +0 -1
- data/vendor/assets/stylesheets/github.min.css +0 -2
- data/vendor/assets/stylesheets/inscrybmde.min.scss +0 -194
- data/vendor/assets/stylesheets/jquery-ui.min.css +0 -7
- data/vendor/assets/stylesheets/select2-foundation-theme.css +0 -249
- data/vendor/assets/stylesheets/select2.css +0 -515
@@ -1,405 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
-
};
|
5
|
-
var fast_diff_1 = __importDefault(require("fast-diff"));
|
6
|
-
var lodash_clonedeep_1 = __importDefault(require("lodash.clonedeep"));
|
7
|
-
var lodash_isequal_1 = __importDefault(require("lodash.isequal"));
|
8
|
-
var AttributeMap_1 = __importDefault(require("./AttributeMap"));
|
9
|
-
var Op_1 = __importDefault(require("./Op"));
|
10
|
-
var NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()
|
11
|
-
var Delta = /** @class */ (function () {
|
12
|
-
function Delta(ops) {
|
13
|
-
// Assume we are given a well formed ops
|
14
|
-
if (Array.isArray(ops)) {
|
15
|
-
this.ops = ops;
|
16
|
-
}
|
17
|
-
else if (ops != null && Array.isArray(ops.ops)) {
|
18
|
-
this.ops = ops.ops;
|
19
|
-
}
|
20
|
-
else {
|
21
|
-
this.ops = [];
|
22
|
-
}
|
23
|
-
}
|
24
|
-
Delta.prototype.insert = function (arg, attributes) {
|
25
|
-
var newOp = {};
|
26
|
-
if (typeof arg === 'string' && arg.length === 0) {
|
27
|
-
return this;
|
28
|
-
}
|
29
|
-
newOp.insert = arg;
|
30
|
-
if (attributes != null &&
|
31
|
-
typeof attributes === 'object' &&
|
32
|
-
Object.keys(attributes).length > 0) {
|
33
|
-
newOp.attributes = attributes;
|
34
|
-
}
|
35
|
-
return this.push(newOp);
|
36
|
-
};
|
37
|
-
Delta.prototype.delete = function (length) {
|
38
|
-
if (length <= 0) {
|
39
|
-
return this;
|
40
|
-
}
|
41
|
-
return this.push({ delete: length });
|
42
|
-
};
|
43
|
-
Delta.prototype.retain = function (length, attributes) {
|
44
|
-
if (length <= 0) {
|
45
|
-
return this;
|
46
|
-
}
|
47
|
-
var newOp = { retain: length };
|
48
|
-
if (attributes != null &&
|
49
|
-
typeof attributes === 'object' &&
|
50
|
-
Object.keys(attributes).length > 0) {
|
51
|
-
newOp.attributes = attributes;
|
52
|
-
}
|
53
|
-
return this.push(newOp);
|
54
|
-
};
|
55
|
-
Delta.prototype.push = function (newOp) {
|
56
|
-
var index = this.ops.length;
|
57
|
-
var lastOp = this.ops[index - 1];
|
58
|
-
newOp = lodash_clonedeep_1.default(newOp);
|
59
|
-
if (typeof lastOp === 'object') {
|
60
|
-
if (typeof newOp.delete === 'number' &&
|
61
|
-
typeof lastOp.delete === 'number') {
|
62
|
-
this.ops[index - 1] = { delete: lastOp.delete + newOp.delete };
|
63
|
-
return this;
|
64
|
-
}
|
65
|
-
// Since it does not matter if we insert before or after deleting at the same index,
|
66
|
-
// always prefer to insert first
|
67
|
-
if (typeof lastOp.delete === 'number' && newOp.insert != null) {
|
68
|
-
index -= 1;
|
69
|
-
lastOp = this.ops[index - 1];
|
70
|
-
if (typeof lastOp !== 'object') {
|
71
|
-
this.ops.unshift(newOp);
|
72
|
-
return this;
|
73
|
-
}
|
74
|
-
}
|
75
|
-
if (lodash_isequal_1.default(newOp.attributes, lastOp.attributes)) {
|
76
|
-
if (typeof newOp.insert === 'string' &&
|
77
|
-
typeof lastOp.insert === 'string') {
|
78
|
-
this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };
|
79
|
-
if (typeof newOp.attributes === 'object') {
|
80
|
-
this.ops[index - 1].attributes = newOp.attributes;
|
81
|
-
}
|
82
|
-
return this;
|
83
|
-
}
|
84
|
-
else if (typeof newOp.retain === 'number' &&
|
85
|
-
typeof lastOp.retain === 'number') {
|
86
|
-
this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };
|
87
|
-
if (typeof newOp.attributes === 'object') {
|
88
|
-
this.ops[index - 1].attributes = newOp.attributes;
|
89
|
-
}
|
90
|
-
return this;
|
91
|
-
}
|
92
|
-
}
|
93
|
-
}
|
94
|
-
if (index === this.ops.length) {
|
95
|
-
this.ops.push(newOp);
|
96
|
-
}
|
97
|
-
else {
|
98
|
-
this.ops.splice(index, 0, newOp);
|
99
|
-
}
|
100
|
-
return this;
|
101
|
-
};
|
102
|
-
Delta.prototype.chop = function () {
|
103
|
-
var lastOp = this.ops[this.ops.length - 1];
|
104
|
-
if (lastOp && lastOp.retain && !lastOp.attributes) {
|
105
|
-
this.ops.pop();
|
106
|
-
}
|
107
|
-
return this;
|
108
|
-
};
|
109
|
-
Delta.prototype.filter = function (predicate) {
|
110
|
-
return this.ops.filter(predicate);
|
111
|
-
};
|
112
|
-
Delta.prototype.forEach = function (predicate) {
|
113
|
-
this.ops.forEach(predicate);
|
114
|
-
};
|
115
|
-
Delta.prototype.map = function (predicate) {
|
116
|
-
return this.ops.map(predicate);
|
117
|
-
};
|
118
|
-
Delta.prototype.partition = function (predicate) {
|
119
|
-
var passed = [];
|
120
|
-
var failed = [];
|
121
|
-
this.forEach(function (op) {
|
122
|
-
var target = predicate(op) ? passed : failed;
|
123
|
-
target.push(op);
|
124
|
-
});
|
125
|
-
return [passed, failed];
|
126
|
-
};
|
127
|
-
Delta.prototype.reduce = function (predicate, initialValue) {
|
128
|
-
return this.ops.reduce(predicate, initialValue);
|
129
|
-
};
|
130
|
-
Delta.prototype.changeLength = function () {
|
131
|
-
return this.reduce(function (length, elem) {
|
132
|
-
if (elem.insert) {
|
133
|
-
return length + Op_1.default.length(elem);
|
134
|
-
}
|
135
|
-
else if (elem.delete) {
|
136
|
-
return length - elem.delete;
|
137
|
-
}
|
138
|
-
return length;
|
139
|
-
}, 0);
|
140
|
-
};
|
141
|
-
Delta.prototype.length = function () {
|
142
|
-
return this.reduce(function (length, elem) {
|
143
|
-
return length + Op_1.default.length(elem);
|
144
|
-
}, 0);
|
145
|
-
};
|
146
|
-
Delta.prototype.slice = function (start, end) {
|
147
|
-
if (start === void 0) { start = 0; }
|
148
|
-
if (end === void 0) { end = Infinity; }
|
149
|
-
var ops = [];
|
150
|
-
var iter = Op_1.default.iterator(this.ops);
|
151
|
-
var index = 0;
|
152
|
-
while (index < end && iter.hasNext()) {
|
153
|
-
var nextOp = void 0;
|
154
|
-
if (index < start) {
|
155
|
-
nextOp = iter.next(start - index);
|
156
|
-
}
|
157
|
-
else {
|
158
|
-
nextOp = iter.next(end - index);
|
159
|
-
ops.push(nextOp);
|
160
|
-
}
|
161
|
-
index += Op_1.default.length(nextOp);
|
162
|
-
}
|
163
|
-
return new Delta(ops);
|
164
|
-
};
|
165
|
-
Delta.prototype.compose = function (other) {
|
166
|
-
var thisIter = Op_1.default.iterator(this.ops);
|
167
|
-
var otherIter = Op_1.default.iterator(other.ops);
|
168
|
-
var ops = [];
|
169
|
-
var firstOther = otherIter.peek();
|
170
|
-
if (firstOther != null &&
|
171
|
-
typeof firstOther.retain === 'number' &&
|
172
|
-
firstOther.attributes == null) {
|
173
|
-
var firstLeft = firstOther.retain;
|
174
|
-
while (thisIter.peekType() === 'insert' &&
|
175
|
-
thisIter.peekLength() <= firstLeft) {
|
176
|
-
firstLeft -= thisIter.peekLength();
|
177
|
-
ops.push(thisIter.next());
|
178
|
-
}
|
179
|
-
if (firstOther.retain - firstLeft > 0) {
|
180
|
-
otherIter.next(firstOther.retain - firstLeft);
|
181
|
-
}
|
182
|
-
}
|
183
|
-
var delta = new Delta(ops);
|
184
|
-
while (thisIter.hasNext() || otherIter.hasNext()) {
|
185
|
-
if (otherIter.peekType() === 'insert') {
|
186
|
-
delta.push(otherIter.next());
|
187
|
-
}
|
188
|
-
else if (thisIter.peekType() === 'delete') {
|
189
|
-
delta.push(thisIter.next());
|
190
|
-
}
|
191
|
-
else {
|
192
|
-
var length_1 = Math.min(thisIter.peekLength(), otherIter.peekLength());
|
193
|
-
var thisOp = thisIter.next(length_1);
|
194
|
-
var otherOp = otherIter.next(length_1);
|
195
|
-
if (typeof otherOp.retain === 'number') {
|
196
|
-
var newOp = {};
|
197
|
-
if (typeof thisOp.retain === 'number') {
|
198
|
-
newOp.retain = length_1;
|
199
|
-
}
|
200
|
-
else {
|
201
|
-
newOp.insert = thisOp.insert;
|
202
|
-
}
|
203
|
-
// Preserve null when composing with a retain, otherwise remove it for inserts
|
204
|
-
var attributes = AttributeMap_1.default.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');
|
205
|
-
if (attributes) {
|
206
|
-
newOp.attributes = attributes;
|
207
|
-
}
|
208
|
-
delta.push(newOp);
|
209
|
-
// Optimization if rest of other is just retain
|
210
|
-
if (!otherIter.hasNext() &&
|
211
|
-
lodash_isequal_1.default(delta.ops[delta.ops.length - 1], newOp)) {
|
212
|
-
var rest = new Delta(thisIter.rest());
|
213
|
-
return delta.concat(rest).chop();
|
214
|
-
}
|
215
|
-
// Other op should be delete, we could be an insert or retain
|
216
|
-
// Insert + delete cancels out
|
217
|
-
}
|
218
|
-
else if (typeof otherOp.delete === 'number' &&
|
219
|
-
typeof thisOp.retain === 'number') {
|
220
|
-
delta.push(otherOp);
|
221
|
-
}
|
222
|
-
}
|
223
|
-
}
|
224
|
-
return delta.chop();
|
225
|
-
};
|
226
|
-
Delta.prototype.concat = function (other) {
|
227
|
-
var delta = new Delta(this.ops.slice());
|
228
|
-
if (other.ops.length > 0) {
|
229
|
-
delta.push(other.ops[0]);
|
230
|
-
delta.ops = delta.ops.concat(other.ops.slice(1));
|
231
|
-
}
|
232
|
-
return delta;
|
233
|
-
};
|
234
|
-
Delta.prototype.diff = function (other, cursor) {
|
235
|
-
if (this.ops === other.ops) {
|
236
|
-
return new Delta();
|
237
|
-
}
|
238
|
-
var strings = [this, other].map(function (delta) {
|
239
|
-
return delta
|
240
|
-
.map(function (op) {
|
241
|
-
if (op.insert != null) {
|
242
|
-
return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;
|
243
|
-
}
|
244
|
-
var prep = delta === other ? 'on' : 'with';
|
245
|
-
throw new Error('diff() called ' + prep + ' non-document');
|
246
|
-
})
|
247
|
-
.join('');
|
248
|
-
});
|
249
|
-
var retDelta = new Delta();
|
250
|
-
var diffResult = fast_diff_1.default(strings[0], strings[1], cursor);
|
251
|
-
var thisIter = Op_1.default.iterator(this.ops);
|
252
|
-
var otherIter = Op_1.default.iterator(other.ops);
|
253
|
-
diffResult.forEach(function (component) {
|
254
|
-
var length = component[1].length;
|
255
|
-
while (length > 0) {
|
256
|
-
var opLength = 0;
|
257
|
-
switch (component[0]) {
|
258
|
-
case fast_diff_1.default.INSERT:
|
259
|
-
opLength = Math.min(otherIter.peekLength(), length);
|
260
|
-
retDelta.push(otherIter.next(opLength));
|
261
|
-
break;
|
262
|
-
case fast_diff_1.default.DELETE:
|
263
|
-
opLength = Math.min(length, thisIter.peekLength());
|
264
|
-
thisIter.next(opLength);
|
265
|
-
retDelta.delete(opLength);
|
266
|
-
break;
|
267
|
-
case fast_diff_1.default.EQUAL:
|
268
|
-
opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);
|
269
|
-
var thisOp = thisIter.next(opLength);
|
270
|
-
var otherOp = otherIter.next(opLength);
|
271
|
-
if (lodash_isequal_1.default(thisOp.insert, otherOp.insert)) {
|
272
|
-
retDelta.retain(opLength, AttributeMap_1.default.diff(thisOp.attributes, otherOp.attributes));
|
273
|
-
}
|
274
|
-
else {
|
275
|
-
retDelta.push(otherOp).delete(opLength);
|
276
|
-
}
|
277
|
-
break;
|
278
|
-
}
|
279
|
-
length -= opLength;
|
280
|
-
}
|
281
|
-
});
|
282
|
-
return retDelta.chop();
|
283
|
-
};
|
284
|
-
Delta.prototype.eachLine = function (predicate, newline) {
|
285
|
-
if (newline === void 0) { newline = '\n'; }
|
286
|
-
var iter = Op_1.default.iterator(this.ops);
|
287
|
-
var line = new Delta();
|
288
|
-
var i = 0;
|
289
|
-
while (iter.hasNext()) {
|
290
|
-
if (iter.peekType() !== 'insert') {
|
291
|
-
return;
|
292
|
-
}
|
293
|
-
var thisOp = iter.peek();
|
294
|
-
var start = Op_1.default.length(thisOp) - iter.peekLength();
|
295
|
-
var index = typeof thisOp.insert === 'string'
|
296
|
-
? thisOp.insert.indexOf(newline, start) - start
|
297
|
-
: -1;
|
298
|
-
if (index < 0) {
|
299
|
-
line.push(iter.next());
|
300
|
-
}
|
301
|
-
else if (index > 0) {
|
302
|
-
line.push(iter.next(index));
|
303
|
-
}
|
304
|
-
else {
|
305
|
-
if (predicate(line, iter.next(1).attributes || {}, i) === false) {
|
306
|
-
return;
|
307
|
-
}
|
308
|
-
i += 1;
|
309
|
-
line = new Delta();
|
310
|
-
}
|
311
|
-
}
|
312
|
-
if (line.length() > 0) {
|
313
|
-
predicate(line, {}, i);
|
314
|
-
}
|
315
|
-
};
|
316
|
-
Delta.prototype.invert = function (base) {
|
317
|
-
var inverted = new Delta();
|
318
|
-
this.reduce(function (baseIndex, op) {
|
319
|
-
if (op.insert) {
|
320
|
-
inverted.delete(Op_1.default.length(op));
|
321
|
-
}
|
322
|
-
else if (op.retain && op.attributes == null) {
|
323
|
-
inverted.retain(op.retain);
|
324
|
-
return baseIndex + op.retain;
|
325
|
-
}
|
326
|
-
else if (op.delete || (op.retain && op.attributes)) {
|
327
|
-
var length_2 = (op.delete || op.retain);
|
328
|
-
var slice = base.slice(baseIndex, baseIndex + length_2);
|
329
|
-
slice.forEach(function (baseOp) {
|
330
|
-
if (op.delete) {
|
331
|
-
inverted.push(baseOp);
|
332
|
-
}
|
333
|
-
else if (op.retain && op.attributes) {
|
334
|
-
inverted.retain(Op_1.default.length(baseOp), AttributeMap_1.default.invert(op.attributes, baseOp.attributes));
|
335
|
-
}
|
336
|
-
});
|
337
|
-
return baseIndex + length_2;
|
338
|
-
}
|
339
|
-
return baseIndex;
|
340
|
-
}, 0);
|
341
|
-
return inverted.chop();
|
342
|
-
};
|
343
|
-
Delta.prototype.transform = function (arg, priority) {
|
344
|
-
if (priority === void 0) { priority = false; }
|
345
|
-
priority = !!priority;
|
346
|
-
if (typeof arg === 'number') {
|
347
|
-
return this.transformPosition(arg, priority);
|
348
|
-
}
|
349
|
-
var other = arg;
|
350
|
-
var thisIter = Op_1.default.iterator(this.ops);
|
351
|
-
var otherIter = Op_1.default.iterator(other.ops);
|
352
|
-
var delta = new Delta();
|
353
|
-
while (thisIter.hasNext() || otherIter.hasNext()) {
|
354
|
-
if (thisIter.peekType() === 'insert' &&
|
355
|
-
(priority || otherIter.peekType() !== 'insert')) {
|
356
|
-
delta.retain(Op_1.default.length(thisIter.next()));
|
357
|
-
}
|
358
|
-
else if (otherIter.peekType() === 'insert') {
|
359
|
-
delta.push(otherIter.next());
|
360
|
-
}
|
361
|
-
else {
|
362
|
-
var length_3 = Math.min(thisIter.peekLength(), otherIter.peekLength());
|
363
|
-
var thisOp = thisIter.next(length_3);
|
364
|
-
var otherOp = otherIter.next(length_3);
|
365
|
-
if (thisOp.delete) {
|
366
|
-
// Our delete either makes their delete redundant or removes their retain
|
367
|
-
continue;
|
368
|
-
}
|
369
|
-
else if (otherOp.delete) {
|
370
|
-
delta.push(otherOp);
|
371
|
-
}
|
372
|
-
else {
|
373
|
-
// We retain either their retain or insert
|
374
|
-
delta.retain(length_3, AttributeMap_1.default.transform(thisOp.attributes, otherOp.attributes, priority));
|
375
|
-
}
|
376
|
-
}
|
377
|
-
}
|
378
|
-
return delta.chop();
|
379
|
-
};
|
380
|
-
Delta.prototype.transformPosition = function (index, priority) {
|
381
|
-
if (priority === void 0) { priority = false; }
|
382
|
-
priority = !!priority;
|
383
|
-
var thisIter = Op_1.default.iterator(this.ops);
|
384
|
-
var offset = 0;
|
385
|
-
while (thisIter.hasNext() && offset <= index) {
|
386
|
-
var length_4 = thisIter.peekLength();
|
387
|
-
var nextType = thisIter.peekType();
|
388
|
-
thisIter.next();
|
389
|
-
if (nextType === 'delete') {
|
390
|
-
index -= Math.min(length_4, index - offset);
|
391
|
-
continue;
|
392
|
-
}
|
393
|
-
else if (nextType === 'insert' && (offset < index || !priority)) {
|
394
|
-
index += length_4;
|
395
|
-
}
|
396
|
-
offset += length_4;
|
397
|
-
}
|
398
|
-
return index;
|
399
|
-
};
|
400
|
-
Delta.Op = Op_1.default;
|
401
|
-
Delta.AttributeMap = AttributeMap_1.default;
|
402
|
-
return Delta;
|
403
|
-
}());
|
404
|
-
module.exports = Delta;
|
405
|
-
//# sourceMappingURL=Delta.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"Delta.js","sourceRoot":"","sources":["../src/Delta.ts"],"names":[],"mappings":"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"}
|
@@ -1,4 +0,0 @@
|
|
1
|
-
/*! Europa v4.0.0 | (C) 2017 Alasdair Mercer, !ninja | MIT License */
|
2
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Europa=t()}(this,function(){"use strict";function e(e,t){var r;return"function"==typeof Object.create?r=Object.create(e):(i.prototype=e,r=new i,i.prototype=null),t&&n(!0,r,t),r}function t(t,r,i,o){var a=this;return"string"!=typeof t&&(o=i,i=r,r=t,t=null),"function"!=typeof r&&(o=i,i=r,r=function(){return a.apply(this,arguments)}),n(!1,r,a,o),r.prototype=e(a.prototype,i),r.prototype.constructor=r,r.class_=t||a.class_,r.super_=a,r}function n(e,t,n){for(var r,i,u=0,s=(n=a.call(arguments,2)).length;u<s;u++){i=n[u];for(r in i)e&&!o.call(i,r)||(t[r]=i[r])}}function r(){}var i=function(){},o=Object.prototype.hasOwnProperty,a=Array.prototype.slice,u=t;r.class_="Nevis",r.super_=Object,r.extend=u;var s=r,c=s.extend(null,{forOwn:function(e,t,n){if(e)for(var r in e)c.hasOwn(e,r)&&t.call(n,e[r],r,e)},hasOwn:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},leftPad:function(e,t,n){if(null==e&&(e=""),null==t&&(t=0),null==n&&(n=" "),!n)return e;for(var r=0;r<t;r++)e=n+e;return e}}),f=c,p=s.extend(function(e,t){this.europa=e,this.options=t,this.atLeft=!0,this.atNoWhiteSpace=!0,this.atParagraph=!0,this.buffer="",this.context={},this.inCodeBlock=!1,this.inOrderedList=!1,this.inPreformattedBlock=!1,this.last=null,this.left="\n",this.listDepth=0,this.listIndex=1,this._document=e.document,this._element=null,this._tagName=null,this._window=e.window},{append:function(e){return null!=this.last&&(this.buffer+=this.last),this.last=e,this},appendParagraph:function(){return this.atParagraph?this:(this.atLeft||(this.append(this.left),this.atLeft=!0),this.append(this.left),this.atNoWhiteSpace=!0,this.atParagraph=!0,this)},output:function(e,t){return e?(e=e.replace(/\r\n/g,"\n"),t&&(e=e.replace(/\n([ \t]*\n)+/g,"\n").replace(/\n[ \t]+/g,"\n").replace(/[ \t]+/g," "),f.forOwn(p.replacements,function(t,n){e=e.replace(p.replacementsRegExp[n],t)})),this.inPreformattedBlock||(e=this.atNoWhiteSpace?e.replace(/^[ \t\n]+/,""):/^[ \t]*\n/.test(e)?e.replace(/^[ \t\n]+/,"\n"):e.replace(/^[ \t]+/," ")),e?(this.atLeft=/\n$/.test(e),this.atNoWhiteSpace=/[ \t\n]$/.test(e),this.atParagraph=/\n{2}$/.test(e),this.append(e.replace(/\n/g,this.left))):this):this},replaceLeft:function(e){return this.atLeft?this.last&&(this.last=this.last.replace(/[ ]{2,4}$/,e)):(this.append(this.left.replace(/[ ]{2,4}$/,e)),this.atLeft=!0,this.atNoWhiteSpace=!0,this.atParagraph=!0),this}},{replacements:{"\\\\":"\\\\","\\[":"\\[","\\]":"\\]",">":"\\>",_:"\\_","\\*":"\\*","`":"\\`","#":"\\#","([0-9])\\.(\\s|$)":"$1\\.$2","©":"(c)","®":"(r)","™":"(tm)"," ":" ","·":"\\*"," ":" "," ":" "," ":" ","‘":"'","’":"'","“":'"',"”":'"',"…":"...","–":"--","—":"---"},replacementsRegExp:{}});Object.defineProperties(p.prototype,{document:{get:function(){return this._document}},element:{get:function(){return this._element},set:function(e){this._element=e,this._tagName=e&&e.tagName?e.tagName.toLowerCase():null}},tagName:{get:function(){return this._tagName}},window:{get:function(){return this._window},set:function(e){this._window=e,this._document=e?e.document:null}}}),f.forOwn(p.replacements,function(e,t){p.replacementsRegExp[t]=new RegExp(t,"g")});var l=p,d=s.extend(null,{isVisible:function(e,t){var n=t.getComputedStyle(e);return"none"!==n.getPropertyValue("display")&&"hidden"!==n.getPropertyValue("visibility")}}),h=s.extend(function(e,t){this.name=e,this._defaultValue=t});Object.defineProperty(h.prototype,"defaultValue",{get:function(){var e=this._defaultValue;return"function"==typeof e?e.call(this):e}});var g=h,v=s.extend(function(e){this.options=e},{exists:function(e){return this.options.some(function(t){return t.name===e})},parse:function(e){e||(e={});var t={};return this.options.forEach(function(n){var r=n.name,i=null!=e[r]?e[r]:n.defaultValue;t[r]=i}),t}}),m=s.extend({after:function(e,t){},afterAll:function(e){},before:function(e,t){},beforeAll:function(e){},convert:function(e,t){return!0},getTagNames:function(){return[]}}),w={},x=new(s.extend(function(){this._services={}},{getService:function(e){var t=this._services[e];if(!t)throw new Error("Service is not being managed with name: "+e);return t},setService:function(e,t){if(this._services[e])throw new Error("Service is already managed with name: "+e);t&&(this._services[e]=t)}})),b=s.extend(function(e){this._options=new v([new g("absolute",!1),new g("baseUri",function(){return x.getService("window").getDefaultBaseUri()}),new g("inline",!1)]).parse(e),this._window=null},{convert:function(e){if(!e)return"";var t,n=this.document;"string"==typeof e?(t=n.createElement("div")).innerHTML=e:t=e;var r,i=new l(this,this._options);n.contains(t)||((r=n.createElement("div")).style.display="none",r.appendChild(t),n.body.appendChild(r));try{f.forOwn(w,function(e){e.beforeAll(i)}),this.convertElement(t,i),f.forOwn(w,function(e){e.afterAll(i)})}finally{r&&(n.body.removeChild(r),r.removeChild(t))}return i.append("").buffer.trim()},convertElement:function(e,t){if(e){var n,r,i,o,a=!1,u=this.window;if(e.nodeType===u.Node.ELEMENT_NODE){if(!d.isVisible(e,u))return;if(t.element=e,n={},i=w[t.tagName],a=!0,i&&(i.before(t,n),a=i.convert(t,n)),a)for(r=0;r<e.childNodes.length;r++)this.convertElement(e.childNodes[r],t);i&&i.after(t,n)}else e.nodeType===u.Node.TEXT_NODE&&(o=e.nodeValue||"",t.inPreformattedBlock?t.output(o):t.inCodeBlock?t.output(o.replace(/`/g,"\\`")):t.output(o,!0))}},release:function(){return this._window&&(x.getService("window").closeWindow(this._window),this._window=null),this}},{Plugin:m,register:function(e){e.getTagNames().forEach(function(t){w[t]=e})},use:function(e){x.setService(e.getName(),e)}});Object.defineProperties(b.prototype,{document:{get:function(){return this.window.document}},window:{get:function(){return this._window||(this._window=x.getService("window").getWindow(this._options.baseUri)),this._window}}});var N=b,y=m.extend({after:function(e,t){null!=t.value&&e.output("]"+t.value)},afterAll:function(e){var t=e.context.anchors;if(t.length){e.append("\n\n");for(var n=0;n<t.length;n++)e.append("[anchor"+n+"]: "+t[n]+"\n")}},beforeAll:function(e){e.context.anchorMap={},e.context.anchors=[]},convert:function(e,t){var n=e.element,r=e.options,i=r.absolute?n.href:n.getAttribute("href");if(!i)return!0;var o,a=e.context.anchorMap,u=e.context.anchors,s=n.getAttribute("title"),c=s?i+' "'+s+'"':i;return r.inline?t.value="("+c+")":(null==(o=a[c])&&(o=u.push(c)-1,a[c]=o),t.value="[anchor"+o+"]"),e.output("["),e.atNoWhiteSpace=!0,!0},getTagNames:function(){return["a"]}});N.register(new y);var P=m.extend({after:function(e,t){e.atLeft=!1,e.atParagraph=!1,e.left=t.previousLeft,e.appendParagraph()},before:function(e,t){t.previousLeft=e.left},convert:function(e,t){return e.left+="> ",e.atParagraph?e.append("> "):e.appendParagraph(),!0},getTagNames:function(){return["blockquote","dd"]}});N.register(new P);var _=m.extend({convert:function(e,t){return e.append(" "+e.left),e.atLeft=!0,e.atNoWhiteSpace=!0,!1},getTagNames:function(){return["br"]}});N.register(new _);var L=m.extend({after:function(e,t){t.skipped||(e.inCodeBlock=t.previousInCodeBlock,e.output("`"))},before:function(e,t){t.previousInCodeBlock=e.inCodeBlock},convert:function(e,t){return e.inPreformattedBlock?t.skipped=!0:(e.output("`"),e.inCodeBlock=!0),!0},getTagNames:function(){return["code","kbd","samp"]}});N.register(new L);var O=m.extend({after:function(e,t){e.output("**")},convert:function(e,t){return e.appendParagraph(),e.output("**"),e.atNoWhiteSpace=!0,!0},getTagNames:function(){return["dt"]}});N.register(new O);var T=m.extend({convert:function(e,t){var n=e.element;if(e.appendParagraph(),n.hasAttribute("open"))return!0;var r=n.querySelector("summary");return e.europa.convertElement(r,e),!1},getTagNames:function(){return["details"]}});N.register(new T);var E=m.extend({after:function(e,t){e.output("_")},convert:function(e,t){return e.output("_"),e.atNoWhiteSpace=!0,!0},getTagNames:function(){return["cite","dfn","em","i","u","var"]}});N.register(new E);var I=m.extend({convert:function(e,t){return!1},getTagNames:function(){return["applet","area","audio","button","canvas","datalist","embed","head","input","map","menu","meter","noframes","noscript","object","optgroup","option","param","progress","rp","rt","ruby","script","select","style","textarea","title","video"]}});N.register(new I);var S=m.extend({after:function(e,t){e.window=t.previousWindow},before:function(e,t){t.previousWindow=e.window},convert:function(e,t){var n=e.element.contentWindow;return n&&(e.window=n,e.europa.convertElement(n.document.body,e)),!1},getTagNames:function(){return["frame","iframe"]}});N.register(new S);var W=m.extend({convert:function(e,t){var n=parseInt(e.tagName.match(/([1-6])$/)[1],10);e.appendParagraph();for(var r="",i=0;i<n;i++)r+="#";return e.output(r+" "),!0},getTagNames:function(){return["h1","h2","h3","h4","h5","h6"]}});N.register(new W);var k=m.extend({convert:function(e,t){return e.appendParagraph().output("---").appendParagraph(),!1},getTagNames:function(){return["hr"]}});N.register(new k);var B=m.extend({afterAll:function(e){var t=e.context.images;if(t.length){e.append("\n\n");for(var n=0;n<t.length;n++)e.append("[image"+n+"]: "+t[n]+"\n")}},beforeAll:function(e){e.context.imageMap={},e.context.images=[]},convert:function(e,t){var n=e.element,r=e.options,i=r.absolute?n.src:n.getAttribute("src");if(!i)return!1;var o,a=n.getAttribute("alt")||"",u=e.context.imageMap,s=e.context.images,c=n.getAttribute("title"),f=c?i+' "'+c+'"':i;return r.inline?f="("+f+")":(null==(o=u[f])&&(o=s.push(f)-1,u[f]=o),f="[image"+o+"]"),e.output("!["+a+"]"+f),!1},getTagNames:function(){return["img"]}});N.register(new B);var A=m.extend({convert:function(e,t){var n=e.inOrderedList?e.listIndex+++". ":"* ";return e.atLeft?e.last&&(e.last=e.last.replace(/[ ]{2,4}$/,"\n")):(e.append(e.left.replace(/[ ]{2,4}$/,"\n")),e.atLeft=!0,e.atNoWhiteSpace=!0,e.atParagraph=!0),e.append(f.leftPad(n,2*(e.listDepth-1))),!0},getTagNames:function(){return["li"]}});N.register(new A);var C=m.extend({after:function(e,t){e.inOrderedList=t.previousInOrderedList,e.listIndex=t.previousListIndex,e.listDepth--},before:function(e,t){t.previousInOrderedList=e.inOrderedList,t.previousListIndex=e.listIndex},convert:function(e,t){return 0===e.listDepth&&e.appendParagraph(),e.inOrderedList=!0,e.listIndex=1,e.listDepth++,!0},getTagNames:function(){return["ol"]}});N.register(new C);var D=m.extend({convert:function(e,t){return e.appendParagraph(),!0},getTagNames:function(){return["address","article","aside","div","fieldset","footer","header","nav","p","section"]}});N.register(new D);var $=m.extend({after:function(e,t){e.atLeft=!1,e.atParagraph=!1,e.inPreformattedBlock=t.previousInPreformattedBlock,e.left=t.previousLeft,e.appendParagraph()},before:function(e,t){t.previousInPreformattedBlock=e.inPreformattedBlock,t.previousLeft=e.left},convert:function(e,t){return e.left+=" ",e.atParagraph?e.append(" "):e.appendParagraph(),!0},getTagNames:function(){return["pre"]}});N.register(new $);var j=m.extend({after:function(e,t){e.output('"')},convert:function(e,t){return e.output('"'),e.atNoWhiteSpace=!0,!0},getTagNames:function(){return["q"]}});N.register(new j);var V=m.extend({after:function(e,t){e.output("**")},convert:function(e,t){return e.output("**"),e.atNoWhiteSpace=!0,!0},getTagNames:function(){return["b","strong"]}});N.register(new V);var M=m.extend({after:function(e,t){e.inOrderedList=t.previousInOrderedList,e.listIndex=t.previousListIndex,e.listDepth--},before:function(e,t){t.previousInOrderedList=e.inOrderedList,t.previousListIndex=e.listIndex},convert:function(e,t){return 0===e.listDepth&&e.appendParagraph(),e.inOrderedList=!1,e.listIndex=1,e.listDepth++,!0},getTagNames:function(){return["ul"]}});N.register(new M);var U=N,R=s.extend({getName:function(){}}).extend({closeWindow:function(e){this.isCloseable(e)&&e.close()},getDefaultBaseUri:function(){},getName:function(){return"window"},getWindow:function(e){},isCloseable:function(e){return!1}}).extend({getDefaultBaseUri:function(){return window.document.baseURI},getWindow:function(e){return window}});return U.use(new R),U});
|
3
|
-
|
4
|
-
//# sourceMappingURL=europa.min.js.map
|