From f371c4f4bb2048471ed0c24e648a316563aa389c Mon Sep 17 00:00:00 2001 From: Patricia Stelling Date: Mon, 3 Feb 2020 09:15:36 +0100 Subject: [PATCH] DEV: changing switches --- application/models/QuestionBaseDataSet.php | 19 +- application/models/QuestionCreate.php | 1 + .../modal_subviews/_editParticipant.php | 4 + .../questions/answer/5pointchoice/config.xml | 8 +- .../answer/arrays/10point/config.xml | 8 +- .../questions/answer/arrays/5point/config.xml | 8 +- .../questions/answer/arrays/array/config.xml | 8 +- .../questions/answer/arrays/column/config.xml | 8 +- .../answer/arrays/dualscale/config.xml | 8 +- .../arrays/increasesamedecrease/config.xml | 8 +- .../answer/arrays/multiflexi/config.xml | 8 +- .../questions/answer/arrays/texts/config.xml | 8 +- .../answer/arrays/yesnouncertain/config.xml | 8 +- .../questions/answer/boilerplate/config.xml | 8 +- .../survey/questions/answer/date/config.xml | 8 +- .../survey/questions/answer/gender/config.xml | 9 +- .../questions/answer/hugefreetext/config.xml | 8 +- .../questions/answer/language/config.xml | 8 +- .../questions/answer/list_dropdown/config.xml | 8 +- .../answer/list_with_comment/config.xml | 8 +- .../questions/answer/listradio/config.xml | 8 +- .../questions/answer/longfreetext/config.xml | 8 +- .../answer/multiplechoice/config.xml | 16 +- .../multiplechoice_with_comments/config.xml | 16 +- .../answer/multiplenumeric/config.xml | 8 +- .../answer/multipleshorttext/config.xml | 8 +- .../questions/answer/numerical/config.xml | 8 +- .../questions/answer/ranking/config.xml | 8 +- .../questions/answer/shortfreetext/config.xml | 18 +- .../survey/questions/answer/yesno/config.xml | 8 +- assets/packages/filemanager/yarn.lock | 123 +- .../build.min/js/questionedit.js | 2 +- .../build.min/js/questionedit.js.map | 2 +- .../questioneditor/build/js/questionedit.js | 5166 ++++++++--------- .../build/js/questionedit.js.map | 2 +- .../src/components/_inputtypes/switch.vue | 8 +- 36 files changed, 2736 insertions(+), 2834 deletions(-) diff --git a/application/models/QuestionBaseDataSet.php b/application/models/QuestionBaseDataSet.php index 9d5f907836e..8720891503c 100644 --- a/application/models/QuestionBaseDataSet.php +++ b/application/models/QuestionBaseDataSet.php @@ -288,14 +288,15 @@ protected function getEncryptionSwitch() 'classes' => [], 'options' => [ 'option' => [ - [ - 'text' => gT("On"), - 'value' => 'Y' - ], [ 'text' => gT("Off"), 'value' => 'N' ], + [ + 'text' => gT("On"), + 'value' => 'Y' + ], + ] ], ], @@ -312,19 +313,19 @@ protected function getSaveAsDefaultSwitch() 'formElementName' => false, 'formElementHelp' => gT('All attribute values for this question type will be saved as default'), 'inputtype' => 'switch', - 'formElementValue' => '', + 'formElementValue' => ($this->oQuestion->same_default == 1) ? 'Y' : 'N', 'formElementOptions' => [ 'classes' => [], 'options' => [ 'option' => [ - [ - 'text' => gT("On"), - 'value' => 'Y' - ], [ 'text' => gT("Off"), 'value' => 'N' ], + [ + 'text' => gT("On"), + 'value' => 'Y' + ], ] ], ], diff --git a/application/models/QuestionCreate.php b/application/models/QuestionCreate.php index 5e856384bbf..5416dd96afb 100644 --- a/application/models/QuestionCreate.php +++ b/application/models/QuestionCreate.php @@ -22,6 +22,7 @@ public static function getInstance($iSurveyId, $type) 'type' => $questionType, 'other' => 'N', 'mandatory' => 'N', + 'same_default' => 1, 'relevance' => 1, 'group_name' => '', 'modulename' => '', diff --git a/application/views/admin/participants/modal_subviews/_editParticipant.php b/application/views/admin/participants/modal_subviews/_editParticipant.php index f7c784d4796..6972ff1e145 100644 --- a/application/views/admin/participants/modal_subviews/_editParticipant.php +++ b/application/views/admin/participants/modal_subviews/_editParticipant.php @@ -66,8 +66,12 @@ ), 'onLabel'=>gT('Yes'), 'offLabel'=>gT('No'), + /* 'onColor'=> 'warning', 'offColor'=> 'primary' + */ + 'onColor'=> 'primary', + 'offColor'=> 'warning' ) ); ?> diff --git a/application/views/survey/questions/answer/5pointchoice/config.xml b/application/views/survey/questions/answer/5pointchoice/config.xml index df02a7d527f..053837ff63f 100644 --- a/application/views/survey/questions/answer/5pointchoice/config.xml +++ b/application/views/survey/questions/answer/5pointchoice/config.xml @@ -282,14 +282,14 @@ switch 101 - + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/arrays/10point/config.xml b/application/views/survey/questions/answer/arrays/10point/config.xml index 133003ce611..bdc49e97023 100644 --- a/application/views/survey/questions/answer/arrays/10point/config.xml +++ b/application/views/survey/questions/answer/arrays/10point/config.xml @@ -350,14 +350,14 @@ switch 101 - + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/arrays/5point/config.xml b/application/views/survey/questions/answer/arrays/5point/config.xml index da90c0cd590..aeed8454983 100644 --- a/application/views/survey/questions/answer/arrays/5point/config.xml +++ b/application/views/survey/questions/answer/arrays/5point/config.xml @@ -350,14 +350,14 @@ switch 101 - + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/arrays/array/config.xml b/application/views/survey/questions/answer/arrays/array/config.xml index 581f871f0b0..9f0dd402e0b 100644 --- a/application/views/survey/questions/answer/arrays/array/config.xml +++ b/application/views/survey/questions/answer/arrays/array/config.xml @@ -417,14 +417,14 @@ switch 101 - + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/arrays/column/config.xml b/application/views/survey/questions/answer/arrays/column/config.xml index ca9055d65a1..b2a6c233cae 100644 --- a/application/views/survey/questions/answer/arrays/column/config.xml +++ b/application/views/survey/questions/answer/arrays/column/config.xml @@ -298,14 +298,14 @@ switch 101 - + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/arrays/dualscale/config.xml b/application/views/survey/questions/answer/arrays/dualscale/config.xml index ec42a4a1bb0..e3798aae44e 100644 --- a/application/views/survey/questions/answer/arrays/dualscale/config.xml +++ b/application/views/survey/questions/answer/arrays/dualscale/config.xml @@ -427,14 +427,14 @@ switch 101 - + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/arrays/increasesamedecrease/config.xml b/application/views/survey/questions/answer/arrays/increasesamedecrease/config.xml index 27ab1f88429..7268223c0b6 100644 --- a/application/views/survey/questions/answer/arrays/increasesamedecrease/config.xml +++ b/application/views/survey/questions/answer/arrays/increasesamedecrease/config.xml @@ -381,14 +381,14 @@ switch 101 - + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/arrays/multiflexi/config.xml b/application/views/survey/questions/answer/arrays/multiflexi/config.xml index 328cd8b9d0b..a54958a2204 100644 --- a/application/views/survey/questions/answer/arrays/multiflexi/config.xml +++ b/application/views/survey/questions/answer/arrays/multiflexi/config.xml @@ -524,14 +524,14 @@ switch 101 - + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/arrays/texts/config.xml b/application/views/survey/questions/answer/arrays/texts/config.xml index fe7042cded5..6b6b68510d2 100644 --- a/application/views/survey/questions/answer/arrays/texts/config.xml +++ b/application/views/survey/questions/answer/arrays/texts/config.xml @@ -441,14 +441,14 @@ switch 101 - + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/arrays/yesnouncertain/config.xml b/application/views/survey/questions/answer/arrays/yesnouncertain/config.xml index 3b01ae20e90..ed711ae12b6 100644 --- a/application/views/survey/questions/answer/arrays/yesnouncertain/config.xml +++ b/application/views/survey/questions/answer/arrays/yesnouncertain/config.xml @@ -381,14 +381,14 @@ switch 101 - + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/boilerplate/config.xml b/application/views/survey/questions/answer/boilerplate/config.xml index ffbce9a797f..c1167d0f507 100644 --- a/application/views/survey/questions/answer/boilerplate/config.xml +++ b/application/views/survey/questions/answer/boilerplate/config.xml @@ -166,14 +166,14 @@ switch 101 - + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/date/config.xml b/application/views/survey/questions/answer/date/config.xml index 80847b23f7f..85edf9f04a2 100644 --- a/application/views/survey/questions/answer/date/config.xml +++ b/application/views/survey/questions/answer/date/config.xml @@ -310,14 +310,14 @@ switch 101 - + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/gender/config.xml b/application/views/survey/questions/answer/gender/config.xml index 82b0727b593..7ffcf8bf461 100644 --- a/application/views/survey/questions/answer/gender/config.xml +++ b/application/views/survey/questions/answer/gender/config.xml @@ -258,14 +258,15 @@ switch 101 - + + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/hugefreetext/config.xml b/application/views/survey/questions/answer/hugefreetext/config.xml index f38431c90f7..cb4dae9fff2 100644 --- a/application/views/survey/questions/answer/hugefreetext/config.xml +++ b/application/views/survey/questions/answer/hugefreetext/config.xml @@ -342,14 +342,14 @@ switch 101 - + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/language/config.xml b/application/views/survey/questions/answer/language/config.xml index b8dff066b66..93299a754d7 100644 --- a/application/views/survey/questions/answer/language/config.xml +++ b/application/views/survey/questions/answer/language/config.xml @@ -143,14 +143,14 @@ switch 101 - + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/list_dropdown/config.xml b/application/views/survey/questions/answer/list_dropdown/config.xml index ee2b19caa57..aa7201e529b 100644 --- a/application/views/survey/questions/answer/list_dropdown/config.xml +++ b/application/views/survey/questions/answer/list_dropdown/config.xml @@ -392,14 +392,14 @@ switch 101 - + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/list_with_comment/config.xml b/application/views/survey/questions/answer/list_with_comment/config.xml index 525181e4264..d60c5fad1d5 100644 --- a/application/views/survey/questions/answer/list_with_comment/config.xml +++ b/application/views/survey/questions/answer/list_with_comment/config.xml @@ -330,14 +330,14 @@ switch 101 - + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/listradio/config.xml b/application/views/survey/questions/answer/listradio/config.xml index 11e2ae927c0..b8fd84a1a03 100644 --- a/application/views/survey/questions/answer/listradio/config.xml +++ b/application/views/survey/questions/answer/listradio/config.xml @@ -415,14 +415,14 @@ switch 101 - + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/longfreetext/config.xml b/application/views/survey/questions/answer/longfreetext/config.xml index ca0d7d8f648..73d5e182724 100644 --- a/application/views/survey/questions/answer/longfreetext/config.xml +++ b/application/views/survey/questions/answer/longfreetext/config.xml @@ -342,14 +342,14 @@ switch 101 - + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/multiplechoice/config.xml b/application/views/survey/questions/answer/multiplechoice/config.xml index f4ec9cd3a5b..fb0e6b9b2a3 100644 --- a/application/views/survey/questions/answer/multiplechoice/config.xml +++ b/application/views/survey/questions/answer/multiplechoice/config.xml @@ -334,14 +334,14 @@ 131 switch - + 0 If the participant marks all options, uncheck all and check the option set in the "Exclusive option" setting @@ -464,14 +464,14 @@ switch 101 - + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/multiplechoice_with_comments/config.xml b/application/views/survey/questions/answer/multiplechoice_with_comments/config.xml index 3e60b2e5d3d..7a05e643a15 100644 --- a/application/views/survey/questions/answer/multiplechoice_with_comments/config.xml +++ b/application/views/survey/questions/answer/multiplechoice_with_comments/config.xml @@ -492,14 +492,14 @@ 131 switch - + 0 If the participant marks all options, uncheck all and check the option set in the "Exclusive option" setting @@ -645,14 +645,14 @@ switch 101 - + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/multiplenumeric/config.xml b/application/views/survey/questions/answer/multiplenumeric/config.xml index 33f697f6bb9..664139a4e9c 100644 --- a/application/views/survey/questions/answer/multiplenumeric/config.xml +++ b/application/views/survey/questions/answer/multiplenumeric/config.xml @@ -183,14 +183,14 @@ switch 101 - + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/multipleshorttext/config.xml b/application/views/survey/questions/answer/multipleshorttext/config.xml index b35dd03ee8d..b3afeea0156 100644 --- a/application/views/survey/questions/answer/multipleshorttext/config.xml +++ b/application/views/survey/questions/answer/multipleshorttext/config.xml @@ -580,14 +580,14 @@ switch 101 - + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/numerical/config.xml b/application/views/survey/questions/answer/numerical/config.xml index a22ef9c015a..43a3422345d 100644 --- a/application/views/survey/questions/answer/numerical/config.xml +++ b/application/views/survey/questions/answer/numerical/config.xml @@ -366,14 +366,14 @@ switch 101 - + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/ranking/config.xml b/application/views/survey/questions/answer/ranking/config.xml index 55e7c284c85..fe7267de640 100644 --- a/application/views/survey/questions/answer/ranking/config.xml +++ b/application/views/survey/questions/answer/ranking/config.xml @@ -135,14 +135,14 @@ switch 101 - + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/shortfreetext/config.xml b/application/views/survey/questions/answer/shortfreetext/config.xml index 48a776370ae..a46d0fc66b7 100644 --- a/application/views/survey/questions/answer/shortfreetext/config.xml +++ b/application/views/survey/questions/answer/shortfreetext/config.xml @@ -335,14 +335,15 @@ switch 100 - + + Show a map in the statistics? Display map @@ -358,14 +359,15 @@ switch 101 - + + Display a chart in the statistics? Display chart diff --git a/application/views/survey/questions/answer/yesno/config.xml b/application/views/survey/questions/answer/yesno/config.xml index 07885a5c61a..9340b61bd6a 100644 --- a/application/views/survey/questions/answer/yesno/config.xml +++ b/application/views/survey/questions/answer/yesno/config.xml @@ -256,14 +256,14 @@ switch 101 - + Display a chart in the statistics? Display chart diff --git a/assets/packages/filemanager/yarn.lock b/assets/packages/filemanager/yarn.lock index 02047afe4d0..d4546f0dc12 100644 --- a/assets/packages/filemanager/yarn.lock +++ b/assets/packages/filemanager/yarn.lock @@ -3283,7 +3283,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8: dependencies: ms "2.0.0" -debug@^3.0.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: +debug@^3.0.0, debug@^3.1.1, debug@^3.2.5: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== @@ -3319,11 +3319,6 @@ deep-equal@^1.0.1: object-keys "^1.1.1" regexp.prototype.flags "^1.2.0" -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" @@ -3431,11 +3426,6 @@ destroy@~1.0.4: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - detect-newline@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" @@ -4351,13 +4341,6 @@ fs-extra@^7.0.1: jsonfile "^4.0.0" universalify "^0.1.0" -fs-minipass@^1.2.5: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - fs-minipass@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.0.0.tgz#a6415edab02fae4b9e9230bc87ee2e4472003cd1" @@ -4896,7 +4879,7 @@ human-signals@^1.1.1: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== -iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: +iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -4920,13 +4903,6 @@ iferr@^0.1.5: resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= -ignore-walk@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" - integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== - dependencies: - minimatch "^3.0.4" - ignore@^3.3.5: version "3.3.10" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" @@ -5030,7 +5006,7 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.3.4, ini@~1.3.0: +ini@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== @@ -6564,14 +6540,6 @@ minipass-pipeline@^1.2.2: dependencies: minipass "^3.0.0" -minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - minipass@^3.0.0, minipass@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.1.tgz#7607ce778472a185ad6d89082aa2070f79cedcd5" @@ -6579,13 +6547,6 @@ minipass@^3.0.0, minipass@^3.1.1: dependencies: yallist "^4.0.0" -minizlib@^1.2.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" - mississippi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" @@ -6698,15 +6659,6 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -needle@^2.2.1: - version "2.4.0" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" - integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - negotiator@0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" @@ -6819,22 +6771,6 @@ node-notifier@^5.4.2: shellwords "^0.1.1" which "^1.3.0" -node-pre-gyp@*: - version "0.14.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" - integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4.4.2" - node-releases@^1.1.44: version "1.1.46" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.46.tgz#6b262afef1bdc9a950a96df2e77e0d2290f484bf" @@ -6872,7 +6808,7 @@ node-sass@^4.13.1: dependencies: abbrev "1" -nopt@^4.0.1, nopt@~4.0.1: +nopt@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= @@ -6927,26 +6863,6 @@ normalize-url@^3.0.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== -npm-bundled@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" - integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== - dependencies: - npm-normalize-package-bin "^1.0.1" - -npm-normalize-package-bin@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" - integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== - -npm-packlist@^1.1.6: - version "1.4.7" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.7.tgz#9e954365a06b80b18111ea900945af4f88ed4848" - integrity sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -6961,7 +6877,7 @@ npm-run-path@^4.0.0: dependencies: path-key "^3.0.0" -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -8106,16 +8022,6 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -rc@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - react-is@^16.8.4: version "16.12.0" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.12.0.tgz#2cc0fe0fba742d97fd527c42a13bec4eeb06241c" @@ -8610,7 +8516,7 @@ selfsigned@^1.10.7: dependencies: node-forge "0.9.0" -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -9216,7 +9122,7 @@ strip-indent@^2.0.0: resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= -strip-json-comments@^2.0.0, strip-json-comments@~2.0.1: +strip-json-comments@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= @@ -9314,19 +9220,6 @@ tar@^2.0.0: fstream "^1.0.12" inherits "2" -tar@^4.4.2: - version "4.4.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" - integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== - dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.8.6" - minizlib "^1.2.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.3" - terser-webpack-plugin@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" @@ -10324,7 +10217,7 @@ yallist@^2.1.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= -yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: +yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== diff --git a/assets/packages/questioneditor/build.min/js/questionedit.js b/assets/packages/questioneditor/build.min/js/questionedit.js index 027ef01220e..56c838e0f00 100644 --- a/assets/packages/questioneditor/build.min/js/questionedit.js +++ b/assets/packages/questioneditor/build.min/js/questionedit.js @@ -1052,7 +1052,7 @@ var NE=function(e){function t(){return Object(de["a"])(this,t),Object(he["a"])(t /** * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license - */var oT=function(e){function t(){return Object(de["a"])(this,t),Object(he["a"])(this,Object(pe["a"])(t).apply(this,arguments))}return Object(ve["a"])(t,e),Object(me["a"])(t,null,[{key:"pluginName",get:function(){return"ImageUpload"}},{key:"requires",get:function(){return[nT,IE,BE]}}]),t}(jy),aT=function(e){function t(){return Object(de["a"])(this,t),Object(he["a"])(this,Object(pe["a"])(t).apply(this,arguments))}return Object(ve["a"])(t,e),Object(me["a"])(t,[{key:"execute",value:function(e){var t=e.name,n=e.type,r=this.editor;r.model.change((function(e){var i=e.createElement("expression",{name:t,type:n});r.model.insertContent(i),e.setSelection(i,"on")}))}},{key:"refresh",value:function(){this.isEnabled=this.editor.model.schema.checkChild(this.editor.model.document.selection.focus.parent,"expression")}}]),t}(By),sT=function(e){function t(){return Object(de["a"])(this,t),Object(he["a"])(this,Object(pe["a"])(t).apply(this,arguments))}return Object(ve["a"])(t,e),Object(me["a"])(t,[{key:"init",value:function(){console.log("LsReplacementEditing#init() got called"),this._defineSchema(),this._defineConverters(),this.editor.commands.add("expression",new aT(this.editor)),this.editor.editing.mapper.on("viewToModelPosition",RS(this.editor.model,(function(e){return e.is("x-xpr")})))}},{key:"_defineSchema",value:function(){var e=this.editor.model.schema;e.register("expression",{allowWhere:"$text",isInline:!0,isObject:!0,allowAttributes:["name","type"]})}},{key:"_defineConverters",value:function(){var e=this,t=this.editor.conversion;t.for("upcast").elementToElement({view:{name:"x-xpr"},model:function(e,t){var n=e.getChild(0).data.slice(1,-1),r=e.getAttribute("type");return t.createElement("expression",{name:n,type:r})}}),t.for("editingDowncast").elementToElement({model:"expression",view:function(t,n){var r=e._createExpressionView(t,n);return CS(r,n)}}),t.for("dataDowncast").elementToElement({model:"expression",view:this._createExpressionView})}},{key:"_createExpressionView",value:function(e,t){var n=e.getAttribute("name"),r=e.getAttribute("type"),i=t.createContainerElement("x-xpr",{type:r});return t.insert(t.createPositionAt(i,0),t.createText("{"+n+"}")),i}}],[{key:"requires",get:function(){return[YA]}}]),t}(jy),uT=n("787e"),lT=n.n(uT),cT=function(e){function t(e){var n;Object(de["a"])(this,t),n=Object(he["a"])(this,Object(pe["a"])(t).call(this,e));var r=n.bindTemplate;return n.setTemplate({tag:"img",attributes:{src:[r.to("imageSrc")],class:["img-responsive","lsimageSelect--dropdown-button-image",r.to("imageClass")],hash:[r.to("imageHash")]}}),n}return Object(ve["a"])(t,e),Object(me["a"])(t,[{key:"render",value:function(){xe(Object(pe["a"])(t.prototype),"render",this).call(this)}},{key:"focus",value:function(){this.element.focus()}}]),t}(qg),fT=function(e){function t(e){var n;return Object(de["a"])(this,t),n=Object(he["a"])(this,Object(pe["a"])(t).call(this,e)),n.set("imageSrc"),n.set("imageClass"),n.set("imageHash"),n.imageView=n._createImageView(),n}return Object(ve["a"])(t,e),Object(me["a"])(t,[{key:"render",value:function(){xe(Object(pe["a"])(t.prototype),"render",this).call(this),this.children.add(this.imageView)}},{key:"_createImageView",value:function(){var e=new cT;return e.bind("imageSrc").to(this,"imageSrc"),e.bind("imageClass").to(this,"imageClass"),e.bind("imageHash").to(this,"imageHash"),e}}]),t}(ay),dT=function(e){function t(e){var n;Object(de["a"])(this,t),n=Object(he["a"])(this,Object(pe["a"])(t).call(this,e));var r=Bs();return n.set("label"),n.children=n.createCollection(),n.labelView=n._createLabelView(r),n.setTemplate({tag:"li",attributes:{class:["ck","ck-listgroup__separator"]},children:n.children}),n.children.add(n.labelView),n}return Object(ve["a"])(t,e),Object(me["a"])(t,[{key:"_createLabelView",value:function(e){var t=new qg,n=this.bindTemplate;return t.setTemplate({tag:"span",attributes:{class:["ck","ck-groupseparator__label"],id:"ck-editor__aria-label_".concat(e)},children:[{text:n.to("label")}]}),t}}]),t}(fy);function hT(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",r=e.locale,i=e.listView=new ly(r);i.extendTemplate({attributes:{class:[n]}}),i.items.bindTo(t).using((function(e){var t=e.type,n=e.model;if("separator"===t)return new fy(r);if("groupseparator"===t){var i=new dT(r);return i.bind.apply(i,Es(Object.keys(n))).to(n),i}if("button"===t||"switchbutton"===t||"previewbutton"===t){var o,a,s=new cy(r);return a="button"===t?new ay(r):"previewbutton"===t?new fT(r):new dy(r),(o=a).bind.apply(o,Es(Object.keys(n))).to(n),a.delegate("execute").to(s),s.children.add(a),s}})),e.panelView.children.add(i),i.items.delegate("execute").to(e)}var pT='\n\n \n \n \n \n image/svg+xml\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n',vT=function(e){function t(){return Object(de["a"])(this,t),Object(he["a"])(this,Object(pe["a"])(t).apply(this,arguments))}return Object(ve["a"])(t,e),Object(me["a"])(t,[{key:"init",value:function(){var e=this;console.log("LsReplacementUI#init() got called");var t=this.editor,n=t.t;t.ui.componentFactory.add("expressions",(function(r){var i=py(r);return e.getReplacements().then((function(t){e._parseSelectables(t,i)}),(function(e){console.error(e)})),i.set({class:"ck-scrollbar",panelPosition:"sw"}),i.buttonView.set({label:n("LsExpressions"),icon:pT,tooltip:!0}),i.panelView.set("class","ck-scrollbar"),e.listenTo(i,"execute",(function(e){t.execute("expression",{name:e.source.commandParam,type:e.source.typeDef}),t.editing.view.focus()})),e.listenTo(t,"change:fieldtype",(function(t,n,r){i.panelView.children.clear(),e.getReplacements({fieldtype:r}).then((function(t){e._parseSelectables(t,i)}),(function(e){console.error(e)}))})),i}))}},{key:"refresh",value:function(){}},{key:"getReplacements",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.editor;return new Promise((function(n,r){$.ajax({url:LS.createUrl("admin/limereplacementfields"),data:LS.ld.merge({},{newtype:1,fieldtype:t.config.get("lsExtension:fieldtype")},t.config.get("lsExtension:ajaxOptions"),e),success:n,error:r})}))}},{key:"_parseSelectables",value:function(e,t){var n=new Sl;LS.ld.forEach(e,(function(e,t){var r={type:"groupseparator",model:new Kw({label:t,withText:!0})};n.add(r),LS.ld.forEach(e,(function(e,t){var r={type:"button",model:new Kw({commandParam:t,typeDef:e.type,label:lT.a.decode(e.value),class:"lsimageSelect--dropdown-button-inner",withText:!0})};n.add(r)}))})),hT(t,n,"lsimageSelect--dropdown-list")}}]),t}(jy),mT=function(e){function t(){return Object(de["a"])(this,t),Object(he["a"])(this,Object(pe["a"])(t).apply(this,arguments))}return Object(ve["a"])(t,e),Object(me["a"])(t,null,[{key:"requires",get:function(){return[sT,vT]}}]),t}(jy),gT=function(){function e(t,n){Object(de["a"])(this,e),this.loader=t,this.editor=n}return Object(me["a"])(e,[{key:"upload",value:function(){var e=this;return this.loader.file.then((function(t){return new Promise((function(n,r){var i=new FormData,o=e.editor.config.get("lsExtension:ajaxOptions"),a=LS.ld.merge(LS.data.csrfTokenData,o,{folder:e.editor.config.get("lsExtension:currentFolder")});i.append("file",t,t.name),LS.ld.forEach(a,(function(e,t){i.append(t,e)})),$.ajax({type:"POST",url:LS.createUrl("admin/filemanager/sa/uploadFile"),data:i,xhr:function(){var t=$.ajaxSettings.xhr();return t.upload&&t.upload.addEventListener("progress",e._progressHandling,!1),t},success:function(e){n({default:e.src})},error:function(e){r(e)},cache:!1,contentType:!1,processData:!1,timeout:6e4})}))}))}},{key:"_progressHandling",value:function(e){console.log(e)}}]),e}(),yT=function(e){function t(){return Object(de["a"])(this,t),Object(he["a"])(this,Object(pe["a"])(t).apply(this,arguments))}return Object(ve["a"])(t,e),Object(me["a"])(t,[{key:"init",value:function(){var e=this;this.editor.plugins.get("FileRepository").createUploadAdapter=function(t){return new gT(t,e.editor)}}}]),t}(jy),bT='\nimage/svg+xml\n\n',wT=function(e){function t(){return Object(de["a"])(this,t),Object(he["a"])(this,Object(pe["a"])(t).apply(this,arguments))}return Object(ve["a"])(t,e),Object(me["a"])(t,[{key:"init",value:function(){var e=this,t=this.editor,n=t.t;t.ui.componentFactory.add("selectImage",(function(r){var i=py(r);return e.getImages().then((function(t){e._parseSelectables(t,i)}),(function(e){console.error(e)})),i.set({class:"ck-scrollbar",panelPosition:"sw"}),i.buttonView.set({label:n("Select Image from server"),icon:bT,tooltip:!0}),e.listenTo(i,"execute",(function(e){t.execute("selectImage",{src:e.source.imageSrc,hash:e.source.imageHash}),t.editing.view.focus()})),i}))}},{key:"getImages",value:function(){var e=this.editor;return new Promise((function(t,n){$.ajax({url:LS.createUrl("admin/filemanager/sa/getFilesForSurvey"),data:LS.ld.merge({},e.config.get("lsExtension:ajaxOptions")),success:t,error:n})}))}},{key:"_parseSelectables",value:function(e,t){var n=new Sl;LS.ld.forEach(e,(function(e,t){var r={type:"groupseparator",model:new Kw({label:t,withText:!0})};n.add(r),LS.ld.forEach(e,(function(e,t){var r={type:"previewbutton",model:new Kw({imageSrc:e.src,imageHash:e.hash,label:e.shortName,class:"lsimageSelect--dropdown-button-inner",withText:!0})};n.add(r)}))})),hT(t,n,"lsimageSelect--dropdown-list")}}]),t}(jy),_T=function(e){function t(){return Object(de["a"])(this,t),Object(he["a"])(this,Object(pe["a"])(t).apply(this,arguments))}return Object(ve["a"])(t,e),Object(me["a"])(t,[{key:"refresh",value:function(){this.isEnabled=DC(this.editor.model)}},{key:"execute",value:function(e){var t=this.editor,n=t.model;n.change((function(t){PC(t,n,e)}))}}]),t}(By),kT=function(e){function t(){return Object(de["a"])(this,t),Object(he["a"])(this,Object(pe["a"])(t).apply(this,arguments))}return Object(ve["a"])(t,e),Object(me["a"])(t,[{key:"init",value:function(){var e=this.editor,t=(e.model.document,e.model.schema),n=e.conversion;t.extend("image",{allowAttributes:["src","folder","hash"]}),e.commands.add("selectImage",new _T(e)),n.for("upcast").attributeToAttribute({view:{name:"img",key:"hash"},model:"hash"})}}]),t}(jy),xT=function(e){function t(){return Object(de["a"])(this,t),Object(he["a"])(this,Object(pe["a"])(t).apply(this,arguments))}return Object(ve["a"])(t,e),Object(me["a"])(t,null,[{key:"pluginName",get:function(){return"ImageSelect"}},{key:"requires",get:function(){return[wT,kT]}}]),t}(jy);function OT(e){return function(e,t,n){if(n.consumable.consume(t.item,e.name)){var r=CT(t.attributeNewValue),i=CT(t.attributeOldValue),o=n.mapper.toViewElement(t.item);i&&n.writer.removeClass(i,o),r&&n.writer.addClass(r,o)}}}function ST(e){return function(t,n,r){if(n.modelRange){var i=n.viewItem,o=k_(n.modelRange.getItems());r.schema.checkAttribute(o,"imageSize")&&e.forEach((function(e){r.consumable.consume(i,{classes:CT(e)})&&r.writer.setAttribute("imageSize",e,o)}))}}}function AT(){return["10","25","50","75","100"]}function CT(e){return"lsImageSize--size--".concat(e)}var ET='\nimage/svg+xml\n\n\t\n\t\t\n\t\t\n\t\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n',TT=(n("0fc8"),function(e){function t(){return Object(de["a"])(this,t),Object(he["a"])(this,Object(pe["a"])(t).apply(this,arguments))}return Object(ve["a"])(t,e),Object(me["a"])(t,[{key:"init",value:function(){var e=this,t=this.editor,n=(t.config.get("image.sizes"),AT());t.ui.componentFactory.add("imageSize",(function(r){var i=py(r),o=new Sl;return n.forEach((function(e){var t={type:"button",model:new Kw({label:e,value:e,class:"lsImageSize--sizeselectorbutton",withText:!0})};o.add(t)})),my(i,o),i.buttonView.set({label:"Select width for image",icon:ET,tooltip:!0}),e.listenTo(i,"execute",(function(e){t.execute("imageSize",{value:e.source.value}),t.editing.view.focus()})),i}))}}],[{key:"pluginName",get:function(){return"LsImageSizeUI"}}]),t}(jy)),jT=function(e){function t(e,n){var r;return Object(de["a"])(this,t),r=Object(he["a"])(this,Object(pe["a"])(t).call(this,e)),r.defaultSize="100",r.sizes=n,r}return Object(ve["a"])(t,e),Object(me["a"])(t,[{key:"refresh",value:function(){var e=this.editor.model.document.selection.getSelectedElement();if(this.isEnabled=jC(e),e)if(e.hasAttribute("imageSize")){var t=e.getAttribute("imageSize");this.value=-1!==this.sizes.indexOf(t)?t:this.defaultSize}else this.value=this.defaultSize;else this.value=!1}},{key:"execute",value:function(e){var t=e.value;console.log("LsImageSize executed",e);var n=this.editor.model.document.selection.getSelectedElement();this.editor.model.change((function(e){e.setAttribute("imageSize",t,n)}))}}]),t}(By),PT=function(e){function t(){return Object(de["a"])(this,t),Object(he["a"])(this,Object(pe["a"])(t).apply(this,arguments))}return Object(ve["a"])(t,e),Object(me["a"])(t,[{key:"init",value:function(){var e=this.editor,t=e.model.schema,n=e.data,r=e.editing;e.config.define("image.sizes",["10","25","50","75","100"]);var i=AT();t.extend("image",{allowAttributes:"imageSize"});var o=OT();r.downcastDispatcher.on("attribute:imageSize:image",o),n.downcastDispatcher.on("attribute:imageSize:image",o),n.upcastDispatcher.on("element:figure",ST(i),{priority:"low"}),e.commands.add("imageSize",new jT(e,i))}}],[{key:"pluginName",get:function(){return"LsImageSizeEditing"}}]),t}(jy),DT=function(e){function t(){return Object(de["a"])(this,t),Object(he["a"])(this,Object(pe["a"])(t).apply(this,arguments))}return Object(ve["a"])(t,e),Object(me["a"])(t,null,[{key:"pluginName",get:function(){return"LsImageSize"}},{key:"requires",get:function(){return[TT,PT]}}]),t}(jy),RT=(n("0664"),function(e){function t(){return Object(de["a"])(this,t),Object(he["a"])(this,Object(pe["a"])(t).apply(this,arguments))}return Object(ve["a"])(t,e),t}(Ey));RT.builtinPlugins=[zb,__,xw,I_,M_,G_,X_,sk,dk,Tk,CO,cS,rC,S_,kC,WC,iE,wE,SE,oT,mT,yT,xT,DT],RT.defaultConfig={toolbar:{items:["heading","fontSize","fontColor","|","bold","italic","underline","link","alignment","|","bulletedList","numberedList","blockQuote","undo","redo","insertTable","|","mediaEmbed","|","imageUpload","selectImage","expressions"]},image:{toolbar:["imageStyle:full","imageStyle:side","|","imageTextAlternative","imageSize"]},language:LS.data.language};var IT,qT,LT,NT,VT=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"aceEditor--main"},[n("div",{staticClass:"aceEditor--topbar"},[e.showThemeToggle?n("div",{staticClass:"aceEditor--subcontainer"},[n("button",{staticClass:"btn btn-xs btn-default",on:{click:function(t){return t.preventDefault(),e.toggleDarkMode(t)}}},[e._v(" "+e._s(e._f("translate")("Toggle dark mode")))])]):e._e(),e.showLangSelector?n("div",{staticClass:"aceEditor--subcontainer"},[n("select",{directives:[{name:"model",rawName:"v-model",value:e.lang,expression:"lang"}],staticClass:"aceEditor--langselect",on:{change:function(t){var n=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){var t="_value"in e?e._value:e.value;return t}));e.lang=t.target.multiple?n:n[0]}}},[n("option",{attrs:{value:"html"}},[e._v("HTML")]),n("option",{attrs:{value:"javascript"}},[e._v("JavaScript")]),n("option",{attrs:{value:"css"}},[e._v("CSS")])])]):e._e()]),n("div",{staticClass:"aceEditor--editor",attrs:{id:e.thisId}})])},FT=[],BT={name:"AceEditor",props:{value:{required:!0},thisId:{type:String,default:function(){return"vue-ace-editor-".concat(Math.round(1e5*Math.random()))}},options:{type:Object,default:function(){return{autoScrollEditorIntoView:!0,wrap:!0,maxLines:80,minLines:10}}},showLangSelector:{type:Boolean,default:!0},showThemeToggle:{type:Boolean,default:!0},baseLang:{type:String,default:"html"}},data:function(){return{lang:"html",darkMode:!1,editor:null,contentBackup:""}},computed:{currentLanguage:function(){return this.$store.state.currentLanguage}},methods:{toggleDarkMode:function(){this.darkMode?this.editor.setTheme("ace/theme/solarized_light"):this.editor.setTheme("ace/theme/solarized_dark"),this.darkMode=!this.darkMode}},watch:{lang:function(e){null!=this.editor&&this.editor.getSession().setMode("ace/mode/"+e)},value:function(e,t){this.contentBackup!==e&&this.editor.setValue(e)}},beforeDestroy:function(){this.editor.destroy(),this.editor.container.remove()},created:function(){this.lang=this.baseLang},mounted:function(){var e=this;this.editor=ace.edit(this.thisId),this.$emit("init",this.editor),this.editor.setOption("enableEmmet",!0),this.editor.getSession().setMode("ace/mode/"+this.lang),this.editor.setTheme("ace/theme/solarized_light"),this.editor.setValue(this.value||"",1),this.contentBackup=this.value,this.editor.on("change",(function(){var t=e.editor.getValue();e.contentBackup=t,e.$emit("input",t)})),null!=this.options&&this.editor.setOptions(this.options),jQuery(".aceEditor--main").on("resize",(function(t){e.editor.resize(!0)})),jQuery("#"+this.thisId).on("contextmenu",(function(e){return e.preventDefault(),e.stopPropagation(),!1}))}},MT=BT,$T=(n("8aa4"),T(MT,VT,FT,!1,null,"f32b7c8a",null)),HT=$T.exports,zT=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"scope-iframe-fill",class:e.htmlClass,attrs:{border:"0",id:e.id}},[e.loading?n("div",{staticClass:"ls-flex align-content-center align-items-center scope-loader"},[e._m(0)]):e._e()])},UT=[function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"loader-previewframe text-center"},[n("div",{staticClass:"contain-pulse animate-pulse"},[n("div",{staticClass:"square"}),n("div",{staticClass:"square"}),n("div",{staticClass:"square"}),n("div",{staticClass:"square"})])])}],QT={name:"previewFrame",props:{rootUrl:{type:String,required:!0},id:{type:String,required:!0},content:{type:String,default:""},htmlClass:{type:String,default:""},loading:{type:Boolean,default:!0},firstStart:{type:Boolean,default:!1}},data:function(){return{src:"#",documentIframe:null,iframeId:"",iFrameContent:""}},methods:{getRandomId:function(){var e=Math.random(),t=(new Date).getTime();return this.id+"-"+Math.floor((1e13*e+t)/1e4)}},watch:{content:function(e){try{var t=this.documentIframe.contents();this.$log.log(this.$documentIframe),this.$log.log(t),this.documentIframe.contents().find("html").text(""),this.documentIframe.contents().find("html").html(e),this.documentIframe[0].contentWindow.jQuery(document).trigger("pjax:scriptcomplete")}catch(n){this.$log.error(n)}}},mounted:function(){var e=this;this.documentIframe=$(this.documentIframe),this.documentIframe.on("load",(function(){e.$emit("ready")})),this.documentIframe.attr("src",this.rootUrl),$("#"+this.id).append(this.documentIframe)},created:function(){var e=this,t=this.getRandomId();this.iframeId=t,this.documentIframe="' + '';\n }\n },\n {\n name: 'spotify',\n url: [\n /^open\\.spotify\\.com\\/(artist\\/\\w+)/,\n /^open\\.spotify\\.com\\/(album\\/\\w+)/,\n /^open\\.spotify\\.com\\/(track\\/\\w+)/\n ],\n html: function html(match) {\n var id = match[1];\n return '
' + '' + '
';\n }\n },\n {\n name: 'youtube',\n url: [\n /^(?:m\\.)?youtube\\.com\\/watch\\?v=([\\w-]+)/,\n /^(?:m\\.)?youtube\\.com\\/v\\/([\\w-]+)/,\n /^youtube\\.com\\/embed\\/([\\w-]+)/,\n /^youtu\\.be\\/([\\w-]+)/\n ],\n html: function html(match) {\n var id = match[1];\n return '
' + '' + '
';\n }\n },\n {\n name: 'vimeo',\n url: [\n /^vimeo\\.com\\/(\\d+)/,\n /^vimeo\\.com\\/[^/]+\\/[^/]+\\/video\\/(\\d+)/,\n /^vimeo\\.com\\/album\\/[^/]+\\/video\\/(\\d+)/,\n /^vimeo\\.com\\/channels\\/[^/]+\\/(\\d+)/,\n /^vimeo\\.com\\/groups\\/[^/]+\\/videos\\/(\\d+)/,\n /^vimeo\\.com\\/ondemand\\/[^/]+\\/(\\d+)/,\n /^player\\.vimeo\\.com\\/video\\/(\\d+)/\n ],\n html: function html(match) {\n var id = match[1];\n return '
' + '' + '
';\n }\n },\n {\n name: 'instagram',\n url: /^instagram\\.com\\/p\\/(\\w+)/\n },\n {\n name: 'twitter',\n url: /^twitter\\.com/\n },\n {\n name: 'googleMaps',\n url: /^google\\.com\\/maps/\n },\n {\n name: 'flickr',\n url: /^flickr\\.com/\n },\n {\n name: 'facebook',\n url: /^facebook\\.com/\n }\n ]\n });\n /**\n * The media registry managing the media providers in the editor.\n *\n * @member {module:media-embed/mediaregistry~MediaRegistry} #registry\n */\n _this.registry = new MediaRegistry(editor.locale, editor.config.get('mediaEmbed'));\n return _this;\n }\n /**\n * @inheritDoc\n */\n _createClass(MediaEmbedEditing, [{\n key: 'init',\n value: function init() {\n var editor = this.editor;\n var schema = editor.model.schema;\n var t = editor.t;\n var conversion = editor.conversion;\n var renderMediaPreview = editor.config.get('mediaEmbed.previewsInData');\n var registry = this.registry;\n editor.commands.add('mediaEmbed', new MediaEmbedCommand(editor));\n // Configure the schema.\n schema.register('media', {\n isObject: true,\n isBlock: true,\n allowWhere: '$block',\n allowAttributes: ['url']\n });\n // Model -> Data\n conversion.for('dataDowncast').elementToElement({\n model: 'media',\n view: function view(modelElement, viewWriter) {\n var url = modelElement.getAttribute('url');\n return createMediaFigureElement(viewWriter, registry, url, { renderMediaPreview: url && renderMediaPreview });\n }\n });\n // Model -> Data (url -> data-oembed-url)\n conversion.for('dataDowncast').add(modelToViewUrlAttributeConverter(registry, { renderMediaPreview: renderMediaPreview }));\n // Model -> View (element)\n conversion.for('editingDowncast').elementToElement({\n model: 'media',\n view: function view(modelElement, viewWriter) {\n var url = modelElement.getAttribute('url');\n var figure = createMediaFigureElement(viewWriter, registry, url, { renderForEditingView: true });\n return toMediaWidget(figure, viewWriter, t('media widget'));\n }\n });\n // Model -> View (url -> data-oembed-url)\n conversion.for('editingDowncast').add(modelToViewUrlAttributeConverter(registry, { renderForEditingView: true }));\n // View -> Model (data-oembed-url -> url)\n conversion.for('upcast') // Upcast semantic media.\n.elementToElement({\n view: {\n name: 'oembed',\n attributes: { url: true }\n },\n model: function model(viewMedia, modelWriter) {\n var url = viewMedia.getAttribute('url');\n if (registry.hasMedia(url)) {\n return modelWriter.createElement('media', { url: url });\n }\n }\n }) // Upcast non-semantic media.\n.elementToElement({\n view: {\n name: 'div',\n attributes: { 'data-oembed-url': true }\n },\n model: function model(viewMedia, modelWriter) {\n var url = viewMedia.getAttribute('data-oembed-url');\n if (registry.hasMedia(url)) {\n return modelWriter.createElement('media', { url: url });\n }\n }\n });\n }\n }]);\n return MediaEmbedEditing;\n}(Plugin);\nexport {\n MediaEmbedEditing as default\n};","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.regexp.match\";\nimport _classCallCheck from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _possibleConstructorReturn from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\nimport _createClass from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module media-embed/automediaembed\n */\nimport MediaEmbedEditing from \"./mediaembedediting\";\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport Clipboard from '@ckeditor/ckeditor5-clipboard/src/clipboard';\nimport LiveRange from '@ckeditor/ckeditor5-engine/src/model/liverange';\nimport LivePosition from '@ckeditor/ckeditor5-engine/src/model/liveposition';\nimport Undo from '@ckeditor/ckeditor5-undo/src/undo';\nimport global from '@ckeditor/ckeditor5-utils/src/dom/global';\nimport { insertMedia } from \"./utils\";\nvar URL_REGEXP = /^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w.-]+)+[\\w\\-._~:/?#[\\]@!$&'()*+,;=]+$/;\n/**\n * The auto-media embed plugin. It recognizes media links in the pasted content and embeds\n * them shortly after they are injected into the document.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar AutoMediaEmbed =\n/*#__PURE__*/\nfunction (_Plugin) {\n _inherits(AutoMediaEmbed, _Plugin);\n\n _createClass(AutoMediaEmbed, null, [{\n key: \"requires\",\n\n /**\n * @inheritDoc\n */\n get: function get() {\n return [Clipboard, Undo];\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"pluginName\",\n get: function get() {\n return 'AutoMediaEmbed';\n }\n /**\n * @inheritDoc\n */\n\n }]);\n\n function AutoMediaEmbed(editor) {\n var _this;\n\n _classCallCheck(this, AutoMediaEmbed);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AutoMediaEmbed).call(this, editor));\n /**\n * The paste–to–embed `setTimeout` ID. Stored as a property to allow\n * cleaning of the timeout.\n *\n * @private\n * @member {Number} #_timeoutId\n */\n\n _this._timeoutId = null;\n /**\n * The position where the `` element will be inserted after the timeout,\n * determined each time the new content is pasted into the document.\n *\n * @private\n * @member {module:engine/model/liveposition~LivePosition} #_positionToInsert\n */\n\n _this._positionToInsert = null;\n return _this;\n }\n /**\n * @inheritDoc\n */\n\n\n _createClass(AutoMediaEmbed, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var editor = this.editor;\n var modelDocument = editor.model.document; // We need to listen on `Clipboard#inputTransformation` because we need to save positions of selection.\n // After pasting, the content between those positions will be checked for a URL that could be transformed\n // into media.\n\n this.listenTo(editor.plugins.get(Clipboard), 'inputTransformation', function () {\n var firstRange = modelDocument.selection.getFirstRange();\n var leftLivePosition = LivePosition.fromPosition(firstRange.start);\n leftLivePosition.stickiness = 'toPrevious';\n var rightLivePosition = LivePosition.fromPosition(firstRange.end);\n rightLivePosition.stickiness = 'toNext';\n modelDocument.once('change:data', function () {\n _this2._embedMediaBetweenPositions(leftLivePosition, rightLivePosition);\n\n leftLivePosition.detach();\n rightLivePosition.detach();\n }, {\n priority: 'high'\n });\n });\n editor.commands.get('undo').on('execute', function () {\n if (_this2._timeoutId) {\n global.window.clearTimeout(_this2._timeoutId);\n\n _this2._positionToInsert.detach();\n\n _this2._timeoutId = null;\n _this2._positionToInsert = null;\n }\n }, {\n priority: 'high'\n });\n }\n /**\n * Analyzes the part of the document between provided positions in search for a URL representing media.\n * When the URL is found, it is automatically converted into media.\n *\n * @protected\n * @param {module:engine/model/liveposition~LivePosition} leftPosition Left position of the selection.\n * @param {module:engine/model/liveposition~LivePosition} rightPosition Right position of the selection.\n */\n\n }, {\n key: \"_embedMediaBetweenPositions\",\n value: function _embedMediaBetweenPositions(leftPosition, rightPosition) {\n var _this3 = this;\n\n var editor = this.editor;\n var mediaRegistry = editor.plugins.get(MediaEmbedEditing).registry; // TODO: Use marker instead of LiveRange & LivePositions.\n\n var urlRange = new LiveRange(leftPosition, rightPosition);\n var walker = urlRange.getWalker({\n ignoreElementEnd: true\n });\n var url = '';\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = walker[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var node = _step.value;\n\n if (node.item.is('textProxy')) {\n url += node.item.data;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n url = url.trim(); // If the URL does not match to universal URL regexp, let's skip that.\n\n if (!url.match(URL_REGEXP)) {\n return;\n } // If the URL represents a media, let's use it.\n\n\n if (!mediaRegistry.hasMedia(url)) {\n return;\n }\n\n var mediaEmbedCommand = editor.commands.get('mediaEmbed'); // Do not anything if media element cannot be inserted at the current position (#47).\n\n if (!mediaEmbedCommand.isEnabled) {\n return;\n } // Position won't be available in the `setTimeout` function so let's clone it.\n\n\n this._positionToInsert = LivePosition.fromPosition(leftPosition); // This action mustn't be executed if undo was called between pasting and auto-embedding.\n\n this._timeoutId = global.window.setTimeout(function () {\n editor.model.change(function (writer) {\n _this3._timeoutId = null;\n writer.remove(urlRange);\n var insertionPosition; // Check if position where the media element should be inserted is still valid.\n // Otherwise leave it as undefined to use document.selection - default behavior of model.insertContent().\n\n if (_this3._positionToInsert.root.rootName !== '$graveyard') {\n insertionPosition = _this3._positionToInsert;\n }\n\n insertMedia(editor.model, url, insertionPosition);\n\n _this3._positionToInsert.detach();\n\n _this3._positionToInsert = null;\n });\n }, 100);\n }\n }]);\n\n return AutoMediaEmbed;\n}(Plugin);\n\nexport { AutoMediaEmbed as default };","import 'core-js/modules/es7.symbol.async-iterator';\nimport 'core-js/modules/es6.symbol';\nimport 'core-js/modules/web.dom.iterable';\nimport _classCallCheck from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _possibleConstructorReturn from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nimport _get from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get';\nimport _inherits from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module media-embed/ui/mediaformview\n */\nimport View from '@ckeditor/ckeditor5-ui/src/view';\nimport ViewCollection from '@ckeditor/ckeditor5-ui/src/viewcollection';\nimport ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';\nimport LabeledInputView from '@ckeditor/ckeditor5-ui/src/labeledinput/labeledinputview';\nimport InputTextView from '@ckeditor/ckeditor5-ui/src/inputtext/inputtextview';\nimport submitHandler from '@ckeditor/ckeditor5-ui/src/bindings/submithandler';\nimport FocusTracker from '@ckeditor/ckeditor5-utils/src/focustracker';\nimport FocusCycler from '@ckeditor/ckeditor5-ui/src/focuscycler';\nimport KeystrokeHandler from '@ckeditor/ckeditor5-utils/src/keystrokehandler';\nimport checkIcon from '@ckeditor/ckeditor5-core/theme/icons/check.svg';\nimport cancelIcon from '@ckeditor/ckeditor5-core/theme/icons/cancel.svg';\nimport '../../theme/mediaform.css';\n/**\n * The media form view controller class.\n *\n * See {@link module:media-embed/ui/mediaformview~MediaFormView}.\n *\n * @extends module:ui/view~View\n */\nvar MediaFormView = /*#__PURE__*/\nfunction (_View) {\n _inherits(MediaFormView, _View);\n /**\n * @param {Array.} validators Form validators used by {@link #isValid}.\n * @param {module:utils/locale~Locale} [locale] The localization services instance.\n */\n function MediaFormView(validators, locale) {\n var _this;\n _classCallCheck(this, MediaFormView);\n _this = _possibleConstructorReturn(this, _getPrototypeOf(MediaFormView).call(this, locale));\n var t = locale.t;\n /**\n * Tracks information about DOM focus in the form.\n *\n * @readonly\n * @member {module:utils/focustracker~FocusTracker}\n */\n _this.focusTracker = new FocusTracker();\n /**\n * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n *\n * @readonly\n * @member {module:utils/keystrokehandler~KeystrokeHandler}\n */\n _this.keystrokes = new KeystrokeHandler();\n /**\n * The URL input view.\n *\n * @member {module:ui/labeledinput/labeledinputview~LabeledInputView}\n */\n _this.urlInputView = _this._createUrlInput();\n /**\n * The Save button view.\n *\n * @member {module:ui/button/buttonview~ButtonView}\n */\n _this.saveButtonView = _this._createButton(t('Save'), checkIcon, 'ck-button-save');\n _this.saveButtonView.type = 'submit';\n /**\n * The Cancel button view.\n *\n * @member {module:ui/button/buttonview~ButtonView}\n */\n _this.cancelButtonView = _this._createButton(t('Cancel'), cancelIcon, 'ck-button-cancel', 'cancel');\n /**\n * A collection of views that can be focused in the form.\n *\n * @readonly\n * @protected\n * @member {module:ui/viewcollection~ViewCollection}\n */\n _this._focusables = new ViewCollection();\n /**\n * Helps cycling over {@link #_focusables} in the form.\n *\n * @readonly\n * @protected\n * @member {module:ui/focuscycler~FocusCycler}\n */\n _this._focusCycler = new FocusCycler({\n focusables: _this._focusables,\n focusTracker: _this.focusTracker,\n keystrokeHandler: _this.keystrokes,\n actions: {\n // Navigate form fields backwards using the Shift + Tab keystroke.\n focusPrevious: 'shift + tab',\n // Navigate form fields forwards using the Tab key.\n focusNext: 'tab'\n }\n });\n /**\n * An array of form validators used by {@link #isValid}.\n *\n * @readonly\n * @protected\n * @member {Array.}\n */\n _this._validators = validators;\n _this.setTemplate({\n tag: 'form',\n attributes: {\n class: [\n 'ck',\n 'ck-media-form'\n ],\n tabindex: '-1'\n },\n children: [\n _this.urlInputView,\n _this.saveButtonView,\n _this.cancelButtonView\n ]\n });\n /**\n * The default info text for the {@link #urlInputView}.\n *\n * @private\n * @member {String} #_urlInputViewInfoDefault\n */\n /**\n * The info text with an additional tip for the {@link #urlInputView},\n * displayed when the input has some value.\n *\n * @private\n * @member {String} #_urlInputViewInfoTip\n */\n return _this;\n }\n /**\n * @inheritDoc\n */\n _createClass(MediaFormView, [\n {\n key: 'render',\n value: function render() {\n var _this2 = this;\n _get(_getPrototypeOf(MediaFormView.prototype), 'render', this).call(this);\n submitHandler({ view: this });\n var childViews = [\n this.urlInputView,\n this.saveButtonView,\n this.cancelButtonView\n ];\n childViews.forEach(function (v) {\n // Register the view as focusable.\n _this2._focusables.add(v);\n // Register the view in the focus tracker.\n _this2.focusTracker.add(v.element);\n });\n // Start listening for the keystrokes coming from #element.\n this.keystrokes.listenTo(this.element);\n var stopPropagation = function stopPropagation(data) {\n return data.stopPropagation();\n };\n // Since the form is in the dropdown panel which is a child of the toolbar, the toolbar's\n // keystroke handler would take over the key management in the URL input. We need to prevent\n // this ASAP. Otherwise, the basic caret movement using the arrow keys will be impossible.\n this.keystrokes.set('arrowright', stopPropagation);\n this.keystrokes.set('arrowleft', stopPropagation);\n this.keystrokes.set('arrowup', stopPropagation);\n this.keystrokes.set('arrowdown', stopPropagation);\n // Intercept the \"selectstart\" event, which is blocked by default because of the default behavior\n // of the DropdownView#panelView.\n // TODO: blocking \"selectstart\" in the #panelView should be configurable per–drop–down instance.\n this.listenTo(this.urlInputView.element, 'selectstart', function (evt, domEvt) {\n domEvt.stopPropagation();\n }, { priority: 'high' });\n } /**\n * Focuses the fist {@link #_focusables} in the form.\n */\n },\n {\n key: 'focus',\n value: function focus() {\n this._focusCycler.focusFirst();\n } /**\n * The native DOM `value` of the {@link #urlInputView} element.\n *\n * **Note**: Do not confuse it with the {@link module:ui/inputtext/inputtextview~InputTextView#value}\n * which works one way only and may not represent the actual state of the component in the DOM.\n *\n * @type {Number}\n */\n },\n {\n key: 'isValid',\n /**\n * Validates the form and returns `false` when some fields are invalid.\n *\n * @returns {Boolean}\n */\n value: function isValid() {\n this.resetFormStatus();\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n try {\n for (var _iterator = this._validators[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var validator = _step.value;\n var errorText = validator(this);\n // One error per field is enough.\n if (errorText) {\n // Apply updated error.\n this.urlInputView.errorText = errorText;\n return false;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return true;\n } /**\n * Cleans up the supplementary error and information text of the {@link #urlInputView}\n * bringing them back to the state when the form has been displayed for the first time.\n *\n * See {@link #isValid}.\n */\n },\n {\n key: 'resetFormStatus',\n value: function resetFormStatus() {\n this.urlInputView.errorText = null;\n this.urlInputView.infoText = this._urlInputViewInfoDefault;\n } /**\n * Creates a labeled input view.\n *\n * @private\n * @returns {module:ui/labeledinput/labeledinputview~LabeledInputView} Labeled input view instance.\n */\n },\n {\n key: '_createUrlInput',\n value: function _createUrlInput() {\n var _this3 = this;\n var t = this.locale.t;\n var labeledInput = new LabeledInputView(this.locale, InputTextView);\n var inputView = labeledInput.inputView;\n this._urlInputViewInfoDefault = t('Paste the media URL in the input.');\n this._urlInputViewInfoTip = t('Tip: Paste the URL into the content to embed faster.');\n labeledInput.label = t('Media URL');\n labeledInput.infoText = this._urlInputViewInfoDefault;\n inputView.placeholder = 'https://example.com';\n inputView.on('input', function () {\n // Display the tip text only when there's some value. Otherwise fall back to the default info text.\n labeledInput.infoText = inputView.element.value ? _this3._urlInputViewInfoTip : _this3._urlInputViewInfoDefault;\n });\n return labeledInput;\n } /**\n * Creates a button view.\n *\n * @private\n * @param {String} label The button label.\n * @param {String} icon The button icon.\n * @param {String} className The additional button CSS class name.\n * @param {String} [eventName] An event name that the `ButtonView#execute` event will be delegated to.\n * @returns {module:ui/button/buttonview~ButtonView} The button view instance.\n */\n },\n {\n key: '_createButton',\n value: function _createButton(label, icon, className, eventName) {\n var button = new ButtonView(this.locale);\n button.set({\n label: label,\n icon: icon,\n tooltip: true\n });\n button.extendTemplate({ attributes: { class: className } });\n if (eventName) {\n button.delegate('execute').to(this, eventName);\n }\n return button;\n }\n },\n {\n key: 'url',\n get: function get() {\n return this.urlInputView.inputView.element.value.trim();\n } /**\n * Sets the native DOM `value` of the {@link #urlInputView} element.\n *\n * **Note**: Do not confuse it with the {@link module:ui/inputtext/inputtextview~InputTextView#value}\n * which works one way only and may not represent the actual state of the component in the DOM.\n *\n * @param {String} url\n */,\n set: function set(url) {\n this.urlInputView.inputView.element.value = url.trim();\n }\n }\n ]);\n return MediaFormView;\n}(View);\n/**\n * Fired when the form view is submitted (when one of the children triggered the submit event),\n * e.g. click on {@link #saveButtonView}.\n *\n * @event submit\n */\n/**\n * Fired when the form view is canceled, e.g. click on {@link #cancelButtonView}.\n *\n * @event cancel\n */\nexport {\n MediaFormView as default\n};","export default \"\"","import _classCallCheck from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _possibleConstructorReturn from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nimport _inherits from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module media-embed/mediaembedui\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport { createDropdown } from '@ckeditor/ckeditor5-ui/src/dropdown/utils';\nimport MediaFormView from './ui/mediaformview';\nimport MediaEmbedEditing from './mediaembedediting';\nimport mediaIcon from '../theme/icons/media.svg';\n/**\n * The media embed UI plugin.\n *\n * @extends module:core/plugin~Plugin\n */\nvar MediaEmbedUI = /*#__PURE__*/\nfunction (_Plugin) {\n _inherits(MediaEmbedUI, _Plugin);\n function MediaEmbedUI() {\n _classCallCheck(this, MediaEmbedUI);\n return _possibleConstructorReturn(this, _getPrototypeOf(MediaEmbedUI).apply(this, arguments));\n }\n _createClass(MediaEmbedUI, [\n {\n key: 'init',\n /**\n * @inheritDoc\n */\n value: function init() {\n var _this = this;\n var editor = this.editor;\n var command = editor.commands.get('mediaEmbed');\n var registry = editor.plugins.get(MediaEmbedEditing).registry;\n /**\n * The form view displayed inside the drop-down.\n *\n * @member {module:media-embed/ui/mediaformview~MediaFormView}\n */\n this.form = new MediaFormView(getFormValidators(editor.t, registry), editor.locale);\n // Setup `imageUpload` button.\n editor.ui.componentFactory.add('mediaEmbed', function (locale) {\n var dropdown = createDropdown(locale);\n _this._setUpDropdown(dropdown, _this.form, command, editor);\n _this._setUpForm(_this.form, dropdown, command);\n return dropdown;\n });\n }\n },\n {\n key: '_setUpDropdown',\n value: function _setUpDropdown(dropdown, form, command) {\n var editor = this.editor;\n var t = editor.t;\n var button = dropdown.buttonView;\n dropdown.bind('isEnabled').to(command);\n dropdown.panelView.children.add(form);\n button.set({\n label: t('Insert media'),\n icon: mediaIcon,\n tooltip: true\n });\n // Note: Use the low priority to make sure the following listener starts working after the\n // default action of the drop-down is executed (i.e. the panel showed up). Otherwise, the\n // invisible form/input cannot be focused/selected.\n button.on('open', function () {\n // Make sure that each time the panel shows up, the URL field remains in sync with the value of\n // the command. If the user typed in the input, then canceled (`urlInputView#value` stays\n // unaltered) and re-opened it without changing the value of the media command (e.g. because they\n // didn't change the selection), they would see the old value instead of the actual value of the\n // command.\n form.url = command.value || '';\n form.urlInputView.select();\n form.focus();\n }, { priority: 'low' });\n dropdown.on('submit', function () {\n if (form.isValid()) {\n editor.execute('mediaEmbed', form.url);\n closeUI();\n }\n });\n dropdown.on('change:isOpen', function () {\n return form.resetFormStatus();\n });\n dropdown.on('cancel', function () {\n return closeUI();\n });\n function closeUI() {\n editor.editing.view.focus();\n dropdown.isOpen = false;\n }\n }\n },\n {\n key: '_setUpForm',\n value: function _setUpForm(form, dropdown, command) {\n form.delegate('submit', 'cancel').to(dropdown);\n form.urlInputView.bind('value').to(command, 'value');\n // Form elements should be read-only when corresponding commands are disabled.\n form.urlInputView.bind('isReadOnly').to(command, 'isEnabled', function (value) {\n return !value;\n });\n form.saveButtonView.bind('isEnabled').to(command);\n }\n }\n ], [\n {\n key: 'requires',\n /**\n * @inheritDoc\n */\n get: function get() {\n return [MediaEmbedEditing];\n } /**\n * @inheritDoc\n */\n },\n {\n key: 'pluginName',\n get: function get() {\n return 'MediaEmbedUI';\n }\n }\n ]);\n return MediaEmbedUI;\n}(Plugin);\nexport {\n MediaEmbedUI as default\n};\nfunction getFormValidators(t, registry) {\n return [\n function (form) {\n if (!form.url.length) {\n return t('The URL must not be empty.');\n }\n },\n function (form) {\n if (!registry.hasMedia(form.url)) {\n return t('This media URL is not supported.');\n }\n }\n ];\n}","import _classCallCheck from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _possibleConstructorReturn from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\nimport _inherits from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module media-embed/mediaembed\n */\nimport MediaEmbedEditing from \"./mediaembedediting\";\nimport AutoMediaEmbed from \"./automediaembed\";\nimport MediaEmbedUI from \"./mediaembedui\";\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport Widget from '@ckeditor/ckeditor5-widget/src/widget';\nimport \"../theme/mediaembed.css\";\n/**\n * The media embed plugin.\n *\n * For a detailed overview, check the {@glink features/media-embed Media Embed feature documentation}.\n *\n * This is a \"glue\" plugin which loads the following plugins:\n *\n * * The {@link module:media-embed/mediaembedediting~MediaEmbedEditing media embed editing feature},\n * * The {@link module:media-embed/mediaembedui~MediaEmbedUI media embed UI feature} and\n * * The {@link module:media-embed/automediaembed~AutoMediaEmbed auto-media embed feature}.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar MediaEmbed =\n/*#__PURE__*/\nfunction (_Plugin) {\n _inherits(MediaEmbed, _Plugin);\n\n function MediaEmbed() {\n _classCallCheck(this, MediaEmbed);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(MediaEmbed).apply(this, arguments));\n }\n\n _createClass(MediaEmbed, null, [{\n key: \"requires\",\n\n /**\n * @inheritDoc\n */\n get: function get() {\n return [MediaEmbedEditing, MediaEmbedUI, AutoMediaEmbed, Widget];\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"pluginName\",\n get: function get() {\n return 'MediaEmbed';\n }\n }]);\n\n return MediaEmbed;\n}(Plugin);\n/**\n * The media embed provider descriptor. Used in\n * {@link module:media-embed/mediaembed~MediaEmbedConfig#providers `config.mediaEmbed.providers`} and\n * {@link module:media-embed/mediaembed~MediaEmbedConfig#extraProviders `config.mediaEmbed.extraProviders`}.\n *\n * See {@link module:media-embed/mediaembed~MediaEmbedConfig} to learn more.\n *\n *\t\t{\n *\t\t\tname: 'example',\n *\n *\t\t\t// The following RegExp matches https://www.example.com/media/{media id},\n *\t\t\t// (either with \"http(s)://\" and \"www\" or without), so the valid URLs are:\n *\t\t\t//\n *\t\t\t// * https://www.example.com/media/{media id},\n *\t\t\t// * http://www.example.com/media/{media id},\n *\t\t\t// * www.example.com/media/{media id},\n *\t\t\t// * example.com/media/{media id}\n *\t\t\turl: /^example\\.com\\/media\\/(\\w+)/,\n *\n *\t\t\t// The rendering function of the provider.\n *\t\t\t// Used to represent the media when editing the content (i.e. in the view)\n *\t\t\t// and also in the data output of the editor if semantic data output is disabled.\n *\t\t\thtml: match => `The HTML representing the media with ID=${ match[ 1 ] }.`\n *\t\t}\n *\n * You can allow any sort of media in the editor using the \"allow–all\" `RegExp`.\n * But mind that, since URLs are processed in the order of configuration, if one of the previous\n * `RegExps` matches the URL, it will have a precedence over this one.\n *\n *\t\t{\n *\t\t\tname: 'allow-all',\n *\t\t\turl: /^.+/\n *\t\t}\n *\n * To implement responsive media, you can use the following HTML structure:\n *\n *\t\t{\n *\t\t\t...\n *\t\t\thtml: match =>\n *\t\t\t\t'
' +\n *\t\t\t\t\t'' +\n *\t\t\t\t'
'\n *\t\t}\n *\n * @typedef {Object} module:media-embed/mediaembed~MediaEmbedProvider\n * @property {String} name The name of the provider. Used e.g. when\n * {@link module:media-embed/mediaembed~MediaEmbedConfig#removeProviders removing providers}.\n * @property {RegExp|Array.} url The `RegExp` object (or array of objects) defining the URL of the media.\n * If any URL matches the `RegExp`, it becomes the media in the editor model, as defined by the provider. The result\n * of matching (output of `String.prototype.match()`) is passed to the `html` rendering function of the media.\n *\n * **Note:** You do not need to include the protocol (`http://`, `https://`) and `www` subdomain in your `RegExps`,\n * they are stripped from the URLs before matching anyway.\n * @property {Function} [html] (optional) The rendering function of the media. The function receives the entire matching\n * array from the corresponding `url` `RegExp` as an argument, allowing rendering a dedicated\n * preview of the media identified by a certain ID or a hash. When not defined, the media embed feature\n * will use a generic media representation in the view and output data.\n * Note that when\n * {@link module:media-embed/mediaembed~MediaEmbedConfig#previewsInData `config.mediaEmbed.previewsInData`}\n * is `true`, the rendering function **will always** be used for the media in the editor data output.\n */\n\n/**\n * The configuration of the {@link module:media-embed/mediaembed~MediaEmbed} feature.\n *\n * Read more in {@link module:media-embed/mediaembed~MediaEmbedConfig}.\n *\n * @member {module:media-embed/mediaembed~MediaEmbedConfig} module:core/editor/editorconfig~EditorConfig#mediaEmbed\n */\n\n/**\n * The configuration of the media embed features.\n *\n * Read more about {@glink features/media-embed#configuration configuring the media embed feature}.\n *\n *\t\tClassicEditor\n *\t\t\t.create( editorElement, {\n * \t\t\t\tmediaEmbed: ... // Media embed feature options.\n *\t\t\t} )\n *\t\t\t.then( ... )\n *\t\t\t.catch( ... );\n *\n * See {@link module:core/editor/editorconfig~EditorConfig all editor options}.\n *\n * @interface MediaEmbedConfig\n */\n\n/**\n * The default media providers supported by the editor.\n *\n * The names of providers with rendering functions (previews):\n *\n * * \"dailymotion\",\n * * \"spotify\",\n * * \"youtube\",\n * * \"vimeo\"\n *\n * The names of providers without rendering functions:\n *\n * * \"instagram\",\n * * \"twitter\",\n * * \"googleMaps\",\n * * \"flickr\",\n * * \"facebook\"\n *\n * See the {@link module:media-embed/mediaembed~MediaEmbedProvider provider syntax} to learn more about\n * different kinds of media and media providers.\n *\n * **Note**: The default media provider configuration may not support all possible media URLs,\n * only the most common are included.\n *\n * Media without rendering functions are always represented in the data using the \"semantic\" markup. See\n * {@link module:media-embed/mediaembed~MediaEmbedConfig#previewsInData `config.mediaEmbed.previewsInData`} to\n * learn more about possible data outputs.\n *\n * The priority of media providers corresponds to the order of configuration. The first provider\n * to match the URL is always used, even if there are other providers that support a particular URL.\n * The URL is never matched against the remaining providers.\n *\n * To discard **all** default media providers, simply override this configuration with your own\n * {@link module:media-embed/mediaembed~MediaEmbedProvider definitions}:\n *\n *\t\tClassicEditor\n *\t\t\t.create( editorElement, {\n *\t\t\t\tplugins: [ MediaEmbed, ... ],\n *\t\t\t\tmediaEmbed: {\n *\t\t\t\t\tproviders: [\n *\t\t\t\t\t\t{\n *\t\t\t\t\t\t\t name: 'myProvider',\n *\t\t\t\t\t\t\t url: /^example\\.com\\/media\\/(\\w+)/,\n *\t\t\t\t\t\t\t html: match => '...'\n *\t\t\t\t\t\t},\n *\t\t\t\t\t\t...\n * \t\t\t\t\t]\n *\t\t\t\t}\n *\t\t\t} )\n *\t\t\t.then( ... )\n *\t\t\t.catch( ... );\n *\n * You can take inspiration from the default configuration of this feature which you can find in:\n * https://github.com/ckeditor/ckeditor5-media-embed/blob/master/src/mediaembedediting.js\n *\n * To **extend** the list of default providers, use\n * {@link module:media-embed/mediaembed~MediaEmbedConfig#extraProviders `config.mediaEmbed.extraProviders`}.\n *\n * To **remove** certain providers, use\n * {@link module:media-embed/mediaembed~MediaEmbedConfig#removeProviders `config.mediaEmbed.removeProviders`}.\n *\n * @member {Array.} module:media-embed/mediaembed~MediaEmbedConfig#providers\n */\n\n/**\n * The additional media providers supported by the editor. This configuration helps extend the default\n * {@link module:media-embed/mediaembed~MediaEmbedConfig#providers}.\n *\n *\t\tClassicEditor\n *\t\t\t.create( editorElement, {\n *\t\t\t\tplugins: [ MediaEmbed, ... ],\n *\t\t\t\tmediaEmbed: {\n *\t\t\t\t\textraProviders: [\n *\t\t\t\t\t\t{\n *\t\t\t\t\t\t\t name: 'extraProvider',\n *\t\t\t\t\t\t\t url: /^example\\.com\\/media\\/(\\w+)/,\n *\t\t\t\t\t\t\t html: match => '...'\n *\t\t\t\t\t\t},\n *\t\t\t\t\t\t...\n * \t\t\t\t\t]\n *\t\t\t\t}\n *\t\t\t} )\n *\t\t\t.then( ... )\n *\t\t\t.catch( ... );\n *\n * See the {@link module:media-embed/mediaembed~MediaEmbedProvider provider syntax} to learn more.\n *\n * @member {Array.} module:media-embed/mediaembed~MediaEmbedConfig#extraProviders\n */\n\n/**\n * The list of media providers that should not be used despite being available in\n * {@link module:media-embed/mediaembed~MediaEmbedConfig#providers `config.mediaEmbed.providers`} and\n * {@link module:media-embed/mediaembed~MediaEmbedConfig#extraProviders `config.mediaEmbed.extraProviders`}\n *\n *\t\tmediaEmbed: {\n *\t\t\tremoveProviders: [ 'youtube', 'twitter' ]\n *\t\t}\n *\n * @member {Array.} module:media-embed/mediaembed~MediaEmbedConfig#removeProviders\n */\n\n/**\n * Controls the data format produced by the feature.\n *\n * When `false` (default), the feature produces \"semantic\" data, i.e. it does not include the preview of\n * the media, just the `` tag with the `url` attribute:\n *\n *\t\t
\n *\t\t\t\n *\t\t
\n *\n * When `true`, the media is represented in the output in the same way it looks in the editor,\n * i.e. the media preview is saved to the database:\n *\n *\t\t
\n *\t\t\t
\n *\t\t\t\t\n *\t\t\t
\n *\t\t
\n *\n * **Note:** Media without preview are always represented in the data using the \"semantic\" markup\n * regardless of the value of the `previewsInData`. Learn more about different kinds of media\n * in the {@link module:media-embed/mediaembed~MediaEmbedConfig#providers `config.mediaEmbed.providers`}\n * configuration description.\n *\n * @member {Boolean} [module:media-embed/mediaembed~MediaEmbedConfig#previewsInData=false]\n */\n\n\nexport { MediaEmbed as default };","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.set\";\nimport _classCallCheck from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _possibleConstructorReturn from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\nimport _get from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/image/imageloadobserver\n */\nimport Observer from '@ckeditor/ckeditor5-engine/src/view/observer/observer';\n/**\n * Observes all new images added to the {@link module:engine/view/document~Document},\n * fires {@link module:engine/view/document~Document#event:imageLoaded} and\n * {@link module:engine/view/document~Document#event:layoutChanged} event every time when the new image\n * has been loaded.\n *\n * **Note:** This event is not fired for images that has been added to the document and rendered as `complete` (already loaded).\n *\n * @extends module:engine/view/observer/observer~Observer\n */\n\nvar ImageLoadObserver =\n/*#__PURE__*/\nfunction (_Observer) {\n _inherits(ImageLoadObserver, _Observer);\n\n function ImageLoadObserver(view) {\n var _this;\n\n _classCallCheck(this, ImageLoadObserver);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ImageLoadObserver).call(this, view));\n /**\n * List of img DOM elements that are observed by this observer.\n *\n * @private\n * @type {Set.}\n */\n\n _this._observedElements = new Set();\n return _this;\n }\n /**\n * @inheritDoc\n */\n\n\n _createClass(ImageLoadObserver, [{\n key: \"observe\",\n value: function observe(domRoot, name) {\n var _this2 = this;\n\n var viewRoot = this.document.getRoot(name); // When there is a change in one of the view element\n // we need to check if there are any new `` elements to observe.\n\n viewRoot.on('change:children', function (evt, node) {\n // Wait for the render to be sure that `` elements are rendered in the DOM root.\n _this2.view.once('render', function () {\n return _this2._updateObservedElements(domRoot, node);\n });\n });\n }\n /**\n * Updates the list of observed `` elements.\n *\n * @private\n * @param {HTMLElement} domRoot DOM root element.\n * @param {module:engine/view/element~Element} viewNode View element where children have changed.\n */\n\n }, {\n key: \"_updateObservedElements\",\n value: function _updateObservedElements(domRoot, viewNode) {\n var _this3 = this;\n\n if (!viewNode.is('element') || viewNode.is('attributeElement')) {\n return;\n }\n\n var domNode = this.view.domConverter.mapViewToDom(viewNode); // If there is no `domNode` it means that it was removed from the DOM in the meanwhile.\n\n if (!domNode) {\n return;\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = domNode.querySelectorAll('img')[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var domElement = _step.value;\n\n if (!this._observedElements.has(domElement)) {\n this.listenTo(domElement, 'load', function (evt, domEvt) {\n return _this3._fireEvents(domEvt);\n });\n\n this._observedElements.add(domElement);\n }\n } // Clean up the list of observed elements from elements that has been removed from the root.\n\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = this._observedElements[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _domElement = _step2.value;\n\n if (!domRoot.contains(_domElement)) {\n this.stopListening(_domElement);\n\n this._observedElements.delete(_domElement);\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n /**\n * Fires {@link module:engine/view/document~Document#event:layoutChanged} and\n * {@link module:engine/view/document~Document#event:imageLoaded}\n * if observer {@link #isEnabled is enabled}.\n *\n * @protected\n * @param {Event} domEvent The DOM event.\n */\n\n }, {\n key: \"_fireEvents\",\n value: function _fireEvents(domEvent) {\n if (this.isEnabled) {\n this.document.fire('layoutChanged');\n this.document.fire('imageLoaded', domEvent);\n }\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this._observedElements.clear();\n\n _get(_getPrototypeOf(ImageLoadObserver.prototype), \"destroy\", this).call(this);\n }\n }]);\n\n return ImageLoadObserver;\n}(Observer);\n/**\n * Fired when an DOM element has been loaded in the DOM root.\n *\n * Introduced by {@link module:image/image/imageloadobserver~ImageLoadObserver}.\n *\n * @see module:image/image/imageloadobserver~ImageLoadObserver\n * @event module:engine/view/document~Document#event:imageLoaded\n * @param {module:engine/view/observer/domeventdata~DomEventData} data Event data.\n */\n\n\nexport { ImageLoadObserver as default };","import \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.array.find\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/image/converters\n */\nimport first from '@ckeditor/ckeditor5-utils/src/first';\n/**\n * Returns a function that converts the image view representation:\n *\n *\t\t
\"...\"
\n *\n * to the model representation:\n *\n *\t\t\"...\"\n *\n * The entire content of the `
` element except the first `` is being converted as children\n * of the `` model element.\n *\n * @returns {Function}\n */\n\nexport function viewFigureToModel() {\n return function (dispatcher) {\n dispatcher.on('element:figure', converter);\n };\n\n function converter(evt, data, conversionApi) {\n // Do not convert if this is not an \"image figure\".\n if (!conversionApi.consumable.test(data.viewItem, {\n name: true,\n classes: 'image'\n })) {\n return;\n } // Find an image element inside the figure element.\n\n\n var viewImage = Array.from(data.viewItem.getChildren()).find(function (viewChild) {\n return viewChild.is('img');\n }); // Do not convert if image element is absent, is missing src attribute or was already converted.\n\n if (!viewImage || !viewImage.hasAttribute('src') || !conversionApi.consumable.test(viewImage, {\n name: true\n })) {\n return;\n } // Convert view image to model image.\n\n\n var conversionResult = conversionApi.convertItem(viewImage, data.modelCursor); // Get image element from conversion result.\n\n var modelImage = first(conversionResult.modelRange.getItems()); // When image wasn't successfully converted then finish conversion.\n\n if (!modelImage) {\n return;\n } // Convert rest of the figure element's children as an image children.\n\n\n conversionApi.convertChildren(data.viewItem, conversionApi.writer.createPositionAt(modelImage, 0)); // Set image range as conversion result.\n\n data.modelRange = conversionResult.modelRange; // Continue conversion where image conversion ends.\n\n data.modelCursor = conversionResult.modelCursor;\n }\n}\n/**\n * Converter used to convert the `srcset` model image attribute to the `srcset`, `sizes` and `width` attributes in the view.\n *\n * @returns {Function}\n */\n\nexport function srcsetAttributeConverter() {\n return function (dispatcher) {\n dispatcher.on('attribute:srcset:image', converter);\n };\n\n function converter(evt, data, conversionApi) {\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n\n var writer = conversionApi.writer;\n var figure = conversionApi.mapper.toViewElement(data.item);\n var img = figure.getChild(0);\n\n if (data.attributeNewValue === null) {\n var srcset = data.attributeOldValue;\n\n if (srcset.data) {\n writer.removeAttribute('srcset', img);\n writer.removeAttribute('sizes', img);\n\n if (srcset.width) {\n writer.removeAttribute('width', img);\n }\n }\n } else {\n var _srcset = data.attributeNewValue;\n\n if (_srcset.data) {\n writer.setAttribute('srcset', _srcset.data, img); // Always outputting `100vw`. See https://github.com/ckeditor/ckeditor5-image/issues/2.\n\n writer.setAttribute('sizes', '100vw', img);\n\n if (_srcset.width) {\n writer.setAttribute('width', _srcset.width, img);\n }\n }\n }\n }\n}\nexport function modelToViewAttributeConverter(attributeKey) {\n return function (dispatcher) {\n dispatcher.on(\"attribute:\".concat(attributeKey, \":image\"), converter);\n };\n\n function converter(evt, data, conversionApi) {\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n\n var viewWriter = conversionApi.writer;\n var figure = conversionApi.mapper.toViewElement(data.item);\n var img = figure.getChild(0);\n\n if (data.attributeNewValue !== null) {\n viewWriter.setAttribute(data.attributeKey, data.attributeNewValue, img);\n } else {\n viewWriter.removeAttribute(data.attributeKey, img);\n }\n }\n}","import _toConsumableArray from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/image/utils\n */\nimport { findOptimalInsertionPosition, isWidget, toWidget } from '@ckeditor/ckeditor5-widget/src/utils';\n/**\n * Converts a given {@link module:engine/view/element~Element} to an image widget:\n * * Adds a {@link module:engine/view/element~Element#_setCustomProperty custom property} allowing to recognize the image widget element.\n * * Calls the {@link module:widget/utils~toWidget} function with the proper element's label creator.\n *\n * @param {module:engine/view/element~Element} viewElement\n * @param {module:engine/view/downcastwriter~DowncastWriter} writer An instance of the view writer.\n * @param {String} label The element's label. It will be concatenated with the image `alt` attribute if one is present.\n * @returns {module:engine/view/element~Element}\n */\n\nexport function toImageWidget(viewElement, writer, label) {\n writer.setCustomProperty('image', true, viewElement);\n return toWidget(viewElement, writer, {\n label: labelCreator\n });\n\n function labelCreator() {\n var imgElement = viewElement.getChild(0);\n var altText = imgElement.getAttribute('alt');\n return altText ? \"\".concat(altText, \" \").concat(label) : label;\n }\n}\n/**\n * Checks if a given view element is an image widget.\n *\n * @param {module:engine/view/element~Element} viewElement\n * @returns {Boolean}\n */\n\nexport function isImageWidget(viewElement) {\n return !!viewElement.getCustomProperty('image') && isWidget(viewElement);\n}\n/**\n * Returns an image widget editing view element if one is selected.\n *\n * @param {module:engine/view/selection~Selection|module:engine/view/documentselection~DocumentSelection} selection\n * @returns {module:engine/view/element~Element|null}\n */\n\nexport function getSelectedImageWidget(selection) {\n var viewElement = selection.getSelectedElement();\n\n if (viewElement && isImageWidget(viewElement)) {\n return viewElement;\n }\n\n return null;\n}\n/**\n * Checks if the provided model element is an `image`.\n *\n * @param {module:engine/model/element~Element} modelElement\n * @returns {Boolean}\n */\n\nexport function isImage(modelElement) {\n return !!modelElement && modelElement.is('image');\n}\n/**\n * Handles inserting single file. This method unifies image insertion using {@link module:widget/utils~findOptimalInsertionPosition} method.\n *\n *\t\tmodel.change( writer => {\n *\t\t\tinsertImage( writer, model, { src: 'path/to/image.jpg' } );\n *\t\t} );\n *\n * @param {module:engine/model/writer~Writer} writer\n * @param {module:engine/model/model~Model} model\n * @param {Object} [attributes={}] Attributes of inserted image\n */\n\nexport function insertImage(writer, model) {\n var attributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var imageElement = writer.createElement('image', attributes);\n var insertAtSelection = findOptimalInsertionPosition(model.document.selection, model);\n model.insertContent(imageElement, insertAtSelection); // Inserting an image might've failed due to schema regulations.\n\n if (imageElement.parent) {\n writer.setSelection(imageElement, 'on');\n }\n}\n/**\n * Checks if image can be inserted at current model selection.\n *\n * @param {module:engine/model/model~Model} model\n * @returns {Boolean}\n */\n\nexport function isImageAllowed(model) {\n var schema = model.schema;\n var selection = model.document.selection;\n return isImageAllowedInParent(selection, schema, model) && !checkSelectionOnObject(selection, schema) && isInOtherImage(selection);\n} // Checks if image is allowed by schema in optimal insertion parent.\n//\n// @returns {Boolean}\n\nfunction isImageAllowedInParent(selection, schema, model) {\n var parent = getInsertImageParent(selection, model);\n return schema.checkChild(parent, 'image');\n} // Check if selection is on object.\n//\n// @returns {Boolean}\n\n\nfunction checkSelectionOnObject(selection, schema) {\n var selectedElement = selection.getSelectedElement();\n return selectedElement && schema.isObject(selectedElement);\n} // Checks if selection is placed in other image (ie. in caption).\n\n\nfunction isInOtherImage(selection) {\n return _toConsumableArray(selection.focus.getAncestors()).every(function (ancestor) {\n return !ancestor.is('image');\n });\n} // Returns a node that will be used to insert image with `model.insertContent` to check if image can be placed there.\n\n\nfunction getInsertImageParent(selection, model) {\n var insertAt = findOptimalInsertionPosition(selection, model);\n var parent = insertAt.parent;\n\n if (parent.isEmpty && !parent.is('$root')) {\n return parent.parent;\n }\n\n return parent;\n}","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/web.dom.iterable\";\nimport _classCallCheck from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _possibleConstructorReturn from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\nimport _inherits from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport { insertImage, isImageAllowed } from \"./utils\";\n/**\n * @module image/image/imageinsertcommand\n */\n\n/**\n * Insert image command.\n *\n * The command is registered by the {@link module:image/image/imageediting~ImageEditing} plugin as `'imageInsert'`.\n *\n * In order to insert an image at the current selection position\n * (according to the {@link module:widget/utils~findOptimalInsertionPosition} algorithm),\n * execute the command and specify the image source:\n *\n *\t\teditor.execute( 'imageInsert', { source: 'http://url.to.the/image' } );\n *\n * It is also possible to insert multiple images at once:\n *\n *\t\teditor.execute( 'imageInsert', {\n *\t\t\tsource: [\n *\t\t\t\t'path/to/image.jpg',\n *\t\t\t\t'path/to/other-image.jpg'\n *\t\t\t]\n *\t\t} );\n *\n * @extends module:core/command~Command\n */\n\nvar ImageInsertCommand =\n/*#__PURE__*/\nfunction (_Command) {\n _inherits(ImageInsertCommand, _Command);\n\n function ImageInsertCommand() {\n _classCallCheck(this, ImageInsertCommand);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ImageInsertCommand).apply(this, arguments));\n }\n\n _createClass(ImageInsertCommand, [{\n key: \"refresh\",\n\n /**\n * @inheritDoc\n */\n value: function refresh() {\n this.isEnabled = isImageAllowed(this.editor.model);\n }\n /**\n * Executes the command.\n *\n * @fires execute\n * @param {Object} options Options for the executed command.\n * @param {String|Array.} options.source The image source or an array of image sources to insert.\n */\n\n }, {\n key: \"execute\",\n value: function execute(options) {\n var model = this.editor.model;\n model.change(function (writer) {\n var sources = Array.isArray(options.source) ? options.source : [options.source];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = sources[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var src = _step.value;\n insertImage(writer, model, {\n src: src\n });\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n });\n }\n }]);\n\n return ImageInsertCommand;\n}(Command);\n\nexport { ImageInsertCommand as default };","import _classCallCheck from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _possibleConstructorReturn from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nimport _inherits from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/image/imageediting\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ImageLoadObserver from './imageloadobserver';\nimport {\n viewFigureToModel,\n modelToViewAttributeConverter,\n srcsetAttributeConverter\n} from './converters';\nimport { toImageWidget } from './utils';\nimport ImageInsertCommand from './imageinsertcommand';\n/**\n * The image engine plugin.\n *\n * It registers:\n *\n * * `` as a block element in the document schema, and allows `alt`, `src` and `srcset` attributes.\n * * converters for editing and data pipelines.\n * * `'imageInsert'` command.\n *\n * @extends module:core/plugin~Plugin\n */\nvar ImageEditing = /*#__PURE__*/\nfunction (_Plugin) {\n _inherits(ImageEditing, _Plugin);\n function ImageEditing() {\n _classCallCheck(this, ImageEditing);\n return _possibleConstructorReturn(this, _getPrototypeOf(ImageEditing).apply(this, arguments));\n }\n _createClass(ImageEditing, [{\n key: 'init',\n /**\n * @inheritDoc\n */\n value: function init() {\n var editor = this.editor;\n var schema = editor.model.schema;\n var t = editor.t;\n var conversion = editor.conversion;\n // See https://github.com/ckeditor/ckeditor5-image/issues/142.\n editor.editing.view.addObserver(ImageLoadObserver);\n // Configure schema.\n schema.register('image', {\n isObject: true,\n isBlock: true,\n allowWhere: '$block',\n allowAttributes: [\n 'alt',\n 'src',\n 'srcset'\n ]\n });\n conversion.for('dataDowncast').elementToElement({\n model: 'image',\n view: function view(modelElement, viewWriter) {\n return createImageViewElement(viewWriter);\n }\n });\n conversion.for('editingDowncast').elementToElement({\n model: 'image',\n view: function view(modelElement, viewWriter) {\n return toImageWidget(createImageViewElement(viewWriter), viewWriter, t('image widget'));\n }\n });\n conversion.for('downcast').add(modelToViewAttributeConverter('src')).add(modelToViewAttributeConverter('alt')).add(srcsetAttributeConverter());\n conversion.for('upcast').elementToElement({\n view: {\n name: 'img',\n attributes: { src: true }\n },\n model: function model(viewImage, modelWriter) {\n return modelWriter.createElement('image', { src: viewImage.getAttribute('src') });\n }\n }).attributeToAttribute({\n view: {\n name: 'img',\n key: 'alt'\n },\n model: 'alt'\n }).attributeToAttribute({\n view: {\n name: 'img',\n key: 'srcset'\n },\n model: {\n key: 'srcset',\n value: function value(viewImage) {\n var value = { data: viewImage.getAttribute('srcset') };\n if (viewImage.hasAttribute('width')) {\n value.width = viewImage.getAttribute('width');\n }\n return value;\n }\n }\n }).add(viewFigureToModel());\n // Register imageUpload command.\n editor.commands.add('imageInsert', new ImageInsertCommand(editor));\n }\n }], [{\n key: 'pluginName',\n /**\n * @inheritDoc\n */\n get: function get() {\n return 'ImageEditing';\n }\n }]);\n return ImageEditing;\n}(Plugin);\n// Creates a view element representing the image.\n//\n//\t\t
\n//\n// Note that `alt` and `src` attributes are converted separately, so they are not included.\n//\n// @private\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n// @returns {module:engine/view/containerelement~ContainerElement}\nexport {\n ImageEditing as default\n};\nexport function createImageViewElement(writer) {\n var emptyElement = writer.createEmptyElement('img');\n var figure = writer.createContainerElement('figure', { class: 'image' });\n writer.insert(writer.createPositionAt(figure, 0), emptyElement);\n return figure;\n}","import _classCallCheck from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _possibleConstructorReturn from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\nimport _inherits from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagetextalternative/imagetextalternativecommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport { isImage } from \"../image/utils\";\n/**\n * The image text alternative command. It is used to change the `alt` attribute of `` elements.\n *\n * @extends module:core/command~Command\n */\n\nvar ImageTextAlternativeCommand =\n/*#__PURE__*/\nfunction (_Command) {\n _inherits(ImageTextAlternativeCommand, _Command);\n\n function ImageTextAlternativeCommand() {\n _classCallCheck(this, ImageTextAlternativeCommand);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ImageTextAlternativeCommand).apply(this, arguments));\n }\n\n _createClass(ImageTextAlternativeCommand, [{\n key: \"refresh\",\n\n /**\n * The command value: `false` if there is no `alt` attribute, otherwise the value of the `alt` attribute.\n *\n * @readonly\n * @observable\n * @member {String|Boolean} #value\n */\n\n /**\n * @inheritDoc\n */\n value: function refresh() {\n var element = this.editor.model.document.selection.getSelectedElement();\n this.isEnabled = isImage(element);\n\n if (isImage(element) && element.hasAttribute('alt')) {\n this.value = element.getAttribute('alt');\n } else {\n this.value = false;\n }\n }\n /**\n * Executes the command.\n *\n * @fires execute\n * @param {Object} options\n * @param {String} options.newValue The new value of the `alt` attribute to set.\n */\n\n }, {\n key: \"execute\",\n value: function execute(options) {\n var model = this.editor.model;\n var imageElement = model.document.selection.getSelectedElement();\n model.change(function (writer) {\n writer.setAttribute('alt', options.newValue, imageElement);\n });\n }\n }]);\n\n return ImageTextAlternativeCommand;\n}(Command);\n\nexport { ImageTextAlternativeCommand as default };","import _classCallCheck from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _possibleConstructorReturn from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\nimport _inherits from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagetextalternative/imagetextalternativeediting\n */\nimport ImageTextAlternativeCommand from \"./imagetextalternativecommand\";\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\n/**\n * The image text alternative editing plugin.\n *\n * Registers the `'imageTextAlternative'` command.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar ImageTextAlternativeEditing =\n/*#__PURE__*/\nfunction (_Plugin) {\n _inherits(ImageTextAlternativeEditing, _Plugin);\n\n function ImageTextAlternativeEditing() {\n _classCallCheck(this, ImageTextAlternativeEditing);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ImageTextAlternativeEditing).apply(this, arguments));\n }\n\n _createClass(ImageTextAlternativeEditing, [{\n key: \"init\",\n\n /**\n * @inheritDoc\n */\n value: function init() {\n this.editor.commands.add('imageTextAlternative', new ImageTextAlternativeCommand(this.editor));\n }\n }], [{\n key: \"pluginName\",\n\n /**\n * @inheritDoc\n */\n get: function get() {\n return 'ImageTextAlternativeEditing';\n }\n }]);\n\n return ImageTextAlternativeEditing;\n}(Plugin);\n\nexport { ImageTextAlternativeEditing as default };","import 'core-js/modules/web.dom.iterable';\nimport _classCallCheck from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _possibleConstructorReturn from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nimport _get from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get';\nimport _inherits from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagetextalternative/ui/textalternativeformview\n */\nimport View from '@ckeditor/ckeditor5-ui/src/view';\nimport ViewCollection from '@ckeditor/ckeditor5-ui/src/viewcollection';\nimport ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';\nimport LabeledInputView from '@ckeditor/ckeditor5-ui/src/labeledinput/labeledinputview';\nimport InputTextView from '@ckeditor/ckeditor5-ui/src/inputtext/inputtextview';\nimport submitHandler from '@ckeditor/ckeditor5-ui/src/bindings/submithandler';\nimport KeystrokeHandler from '@ckeditor/ckeditor5-utils/src/keystrokehandler';\nimport FocusTracker from '@ckeditor/ckeditor5-utils/src/focustracker';\nimport FocusCycler from '@ckeditor/ckeditor5-ui/src/focuscycler';\nimport checkIcon from '@ckeditor/ckeditor5-core/theme/icons/check.svg';\nimport cancelIcon from '@ckeditor/ckeditor5-core/theme/icons/cancel.svg';\nimport '../../../theme/textalternativeform.css';\n/**\n * The TextAlternativeFormView class.\n *\n * @extends module:ui/view~View\n */\nvar TextAlternativeFormView = /*#__PURE__*/\nfunction (_View) {\n _inherits(TextAlternativeFormView, _View);\n /**\n * @inheritDoc\n */\n function TextAlternativeFormView(locale) {\n var _this;\n _classCallCheck(this, TextAlternativeFormView);\n _this = _possibleConstructorReturn(this, _getPrototypeOf(TextAlternativeFormView).call(this, locale));\n var t = _this.locale.t;\n /**\n * Tracks information about the DOM focus in the form.\n *\n * @readonly\n * @member {module:utils/focustracker~FocusTracker}\n */\n _this.focusTracker = new FocusTracker();\n /**\n * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n *\n * @readonly\n * @member {module:utils/keystrokehandler~KeystrokeHandler}\n */\n _this.keystrokes = new KeystrokeHandler();\n /**\n * A textarea with a label.\n *\n * @member {module:ui/labeledinput/labeledinputview~LabeledInputView} #labeledTextarea\n */\n _this.labeledInput = _this._createLabeledInputView();\n /**\n * A button used to submit the form.\n *\n * @member {module:ui/button/buttonview~ButtonView} #saveButtonView\n */\n _this.saveButtonView = _this._createButton(t('Save'), checkIcon, 'ck-button-save');\n _this.saveButtonView.type = 'submit';\n /**\n * A button used to cancel the form.\n *\n * @member {module:ui/button/buttonview~ButtonView} #cancelButtonView\n */\n _this.cancelButtonView = _this._createButton(t('Cancel'), cancelIcon, 'ck-button-cancel', 'cancel');\n /**\n * A collection of views which can be focused in the form.\n *\n * @readonly\n * @protected\n * @member {module:ui/viewcollection~ViewCollection}\n */\n _this._focusables = new ViewCollection();\n /**\n * Helps cycling over {@link #_focusables} in the form.\n *\n * @readonly\n * @protected\n * @member {module:ui/focuscycler~FocusCycler}\n */\n _this._focusCycler = new FocusCycler({\n focusables: _this._focusables,\n focusTracker: _this.focusTracker,\n keystrokeHandler: _this.keystrokes,\n actions: {\n // Navigate form fields backwards using the Shift + Tab keystroke.\n focusPrevious: 'shift + tab',\n // Navigate form fields forwards using the Tab key.\n focusNext: 'tab'\n }\n });\n _this.setTemplate({\n tag: 'form',\n attributes: {\n class: [\n 'ck',\n 'ck-text-alternative-form'\n ],\n // https://github.com/ckeditor/ckeditor5-image/issues/40\n tabindex: '-1'\n },\n children: [\n _this.labeledInput,\n _this.saveButtonView,\n _this.cancelButtonView\n ]\n });\n return _this;\n }\n /**\n * @inheritDoc\n */\n _createClass(TextAlternativeFormView, [\n {\n key: 'render',\n value: function render() {\n var _this2 = this;\n _get(_getPrototypeOf(TextAlternativeFormView.prototype), 'render', this).call(this);\n this.keystrokes.listenTo(this.element);\n submitHandler({ view: this });\n [\n this.labeledInput,\n this.saveButtonView,\n this.cancelButtonView\n ].forEach(function (v) {\n // Register the view as focusable.\n _this2._focusables.add(v);\n // Register the view in the focus tracker.\n _this2.focusTracker.add(v.element);\n });\n } /**\n * Creates the button view.\n *\n * @private\n * @param {String} label The button label\n * @param {String} icon The button's icon.\n * @param {String} className The additional button CSS class name.\n * @param {String} [eventName] The event name that the ButtonView#execute event will be delegated to.\n * @returns {module:ui/button/buttonview~ButtonView} The button view instance.\n */\n },\n {\n key: '_createButton',\n value: function _createButton(label, icon, className, eventName) {\n var button = new ButtonView(this.locale);\n button.set({\n label: label,\n icon: icon,\n tooltip: true\n });\n button.extendTemplate({ attributes: { class: className } });\n if (eventName) {\n button.delegate('execute').to(this, eventName);\n }\n return button;\n } /**\n * Creates an input with a label.\n *\n * @private\n * @returns {module:ui/labeledinput/labeledinputview~LabeledInputView}\n */\n },\n {\n key: '_createLabeledInputView',\n value: function _createLabeledInputView() {\n var t = this.locale.t;\n var labeledInput = new LabeledInputView(this.locale, InputTextView);\n labeledInput.label = t('Text alternative');\n labeledInput.inputView.placeholder = t('Text alternative');\n return labeledInput;\n }\n }\n ]);\n return TextAlternativeFormView;\n}(View);\nexport {\n TextAlternativeFormView as default\n};","export default \"\"","/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/image/ui/utils\n */\nimport BalloonPanelView from '@ckeditor/ckeditor5-ui/src/panel/balloon/balloonpanelview';\nimport { getSelectedImageWidget } from \"../utils\";\n/**\n * A helper utility that positions the\n * {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon contextual balloon} instance\n * with respect to the image in the editor content, if one is selected.\n *\n * @param {module:core/editor/editor~Editor} editor The editor instance.\n */\n\nexport function repositionContextualBalloon(editor) {\n var balloon = editor.plugins.get('ContextualBalloon');\n\n if (getSelectedImageWidget(editor.editing.view.document.selection)) {\n var position = getBalloonPositionData(editor);\n balloon.updatePosition(position);\n }\n}\n/**\n * Returns the positioning options that control the geometry of the\n * {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon contextual balloon} with respect\n * to the selected element in the editor content.\n *\n * @param {module:core/editor/editor~Editor} editor The editor instance.\n * @returns {module:utils/dom/position~Options}\n */\n\nexport function getBalloonPositionData(editor) {\n var editingView = editor.editing.view;\n var defaultPositions = BalloonPanelView.defaultPositions;\n return {\n target: editingView.domConverter.viewToDom(editingView.document.selection.getSelectedElement()),\n positions: [defaultPositions.northArrowSouth, defaultPositions.northArrowSouthWest, defaultPositions.northArrowSouthEast, defaultPositions.southArrowNorth, defaultPositions.southArrowNorthWest, defaultPositions.southArrowNorthEast]\n };\n}","import _classCallCheck from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _possibleConstructorReturn from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nimport _get from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get';\nimport _inherits from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagetextalternative/imagetextalternativeui\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';\nimport clickOutsideHandler from '@ckeditor/ckeditor5-ui/src/bindings/clickoutsidehandler';\nimport TextAlternativeFormView from './ui/textalternativeformview';\nimport ContextualBalloon from '@ckeditor/ckeditor5-ui/src/panel/balloon/contextualballoon';\nimport textAlternativeIcon from '@ckeditor/ckeditor5-core/theme/icons/low-vision.svg';\nimport {\n repositionContextualBalloon,\n getBalloonPositionData\n} from '../image/ui/utils';\nimport { getSelectedImageWidget } from '../image/utils';\n/**\n * The image text alternative UI plugin.\n *\n * The plugin uses the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon}.\n *\n * @extends module:core/plugin~Plugin\n */\nvar ImageTextAlternativeUI = /*#__PURE__*/\nfunction (_Plugin) {\n _inherits(ImageTextAlternativeUI, _Plugin);\n function ImageTextAlternativeUI() {\n _classCallCheck(this, ImageTextAlternativeUI);\n return _possibleConstructorReturn(this, _getPrototypeOf(ImageTextAlternativeUI).apply(this, arguments));\n }\n _createClass(ImageTextAlternativeUI, [\n {\n key: 'init',\n /**\n * @inheritDoc\n */\n value: function init() {\n this._createButton();\n this._createForm();\n } /**\n * @inheritDoc\n */\n },\n {\n key: 'destroy',\n value: function destroy() {\n _get(_getPrototypeOf(ImageTextAlternativeUI.prototype), 'destroy', this).call(this);\n // Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341).\n this._form.destroy();\n } /**\n * Creates a button showing the balloon panel for changing the image text alternative and\n * registers it in the editor {@link module:ui/componentfactory~ComponentFactory ComponentFactory}.\n *\n * @private\n */\n },\n {\n key: '_createButton',\n value: function _createButton() {\n var _this = this;\n var editor = this.editor;\n var t = editor.t;\n editor.ui.componentFactory.add('imageTextAlternative', function (locale) {\n var command = editor.commands.get('imageTextAlternative');\n var view = new ButtonView(locale);\n view.set({\n label: t('Change image text alternative'),\n icon: textAlternativeIcon,\n tooltip: true\n });\n view.bind('isEnabled').to(command, 'isEnabled');\n _this.listenTo(view, 'execute', function () {\n return _this._showForm();\n });\n return view;\n });\n } /**\n * Creates the {@link module:image/imagetextalternative/ui/textalternativeformview~TextAlternativeFormView}\n * form.\n *\n * @private\n */\n },\n {\n key: '_createForm',\n value: function _createForm() {\n var _this2 = this;\n var editor = this.editor;\n var view = editor.editing.view;\n var viewDocument = view.document;\n /**\n * The contextual balloon plugin instance.\n *\n * @private\n * @member {module:ui/panel/balloon/contextualballoon~ContextualBalloon}\n */\n this._balloon = this.editor.plugins.get('ContextualBalloon');\n /**\n * A form containing a textarea and buttons, used to change the `alt` text value.\n *\n * @member {module:image/imagetextalternative/ui/textalternativeformview~TextAlternativeFormView}\n */\n this._form = new TextAlternativeFormView(editor.locale);\n // Render the form so its #element is available for clickOutsideHandler.\n this._form.render();\n this.listenTo(this._form, 'submit', function () {\n editor.execute('imageTextAlternative', { newValue: _this2._form.labeledInput.inputView.element.value });\n _this2._hideForm(true);\n });\n this.listenTo(this._form, 'cancel', function () {\n _this2._hideForm(true);\n });\n // Close the form on Esc key press.\n this._form.keystrokes.set('Esc', function (data, cancel) {\n _this2._hideForm(true);\n cancel();\n });\n // Reposition the balloon or hide the form if an image widget is no longer selected.\n this.listenTo(editor.ui, 'update', function () {\n if (!getSelectedImageWidget(viewDocument.selection)) {\n _this2._hideForm(true);\n } else if (_this2._isVisible) {\n repositionContextualBalloon(editor);\n }\n });\n // Close on click outside of balloon panel element.\n clickOutsideHandler({\n emitter: this._form,\n activator: function activator() {\n return _this2._isVisible;\n },\n contextElements: [this._balloon.view.element],\n callback: function callback() {\n return _this2._hideForm();\n }\n });\n } /**\n * Shows the {@link #_form} in the {@link #_balloon}.\n *\n * @private\n */\n },\n {\n key: '_showForm',\n value: function _showForm() {\n if (this._isVisible) {\n return;\n }\n var editor = this.editor;\n var command = editor.commands.get('imageTextAlternative');\n var labeledInput = this._form.labeledInput;\n if (!this._isInBalloon) {\n this._balloon.add({\n view: this._form,\n position: getBalloonPositionData(editor)\n });\n }\n // Make sure that each time the panel shows up, the field remains in sync with the value of\n // the command. If the user typed in the input, then canceled the balloon (`labeledInput#value`\n // stays unaltered) and re-opened it without changing the value of the command, they would see the\n // old value instead of the actual value of the command.\n // https://github.com/ckeditor/ckeditor5-image/issues/114\n labeledInput.value = labeledInput.inputView.element.value = command.value || '';\n this._form.labeledInput.select();\n } /**\n * Removes the {@link #_form} from the {@link #_balloon}.\n *\n * @param {Boolean} [focusEditable=false] Controls whether the editing view is focused afterwards.\n * @private\n */\n },\n {\n key: '_hideForm',\n value: function _hideForm(focusEditable) {\n if (!this._isInBalloon) {\n return;\n }\n // Blur the input element before removing it from DOM to prevent issues in some browsers.\n // See https://github.com/ckeditor/ckeditor5/issues/1501.\n if (this._form.focusTracker.isFocused) {\n this._form.saveButtonView.focus();\n }\n this._balloon.remove(this._form);\n if (focusEditable) {\n this.editor.editing.view.focus();\n }\n } /**\n * Returns `true` when the {@link #_form} is the visible view in the {@link #_balloon}.\n *\n * @private\n * @type {Boolean}\n */\n },\n {\n key: '_isVisible',\n get: function get() {\n return this._balloon.visibleView === this._form;\n } /**\n * Returns `true` when the {@link #_form} is in the {@link #_balloon}.\n *\n * @private\n * @type {Boolean}\n */\n },\n {\n key: '_isInBalloon',\n get: function get() {\n return this._balloon.hasView(this._form);\n }\n }\n ], [\n {\n key: 'requires',\n /**\n * @inheritDoc\n */\n get: function get() {\n return [ContextualBalloon];\n } /**\n * @inheritDoc\n */\n },\n {\n key: 'pluginName',\n get: function get() {\n return 'ImageTextAlternativeUI';\n }\n }\n ]);\n return ImageTextAlternativeUI;\n}(Plugin);\nexport {\n ImageTextAlternativeUI as default\n};","import _classCallCheck from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _possibleConstructorReturn from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\nimport _inherits from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagetextalternative\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ImageTextAlternativeEditing from \"./imagetextalternative/imagetextalternativeediting\";\nimport ImageTextAlternativeUI from \"./imagetextalternative/imagetextalternativeui\";\n/**\n * The image text alternative plugin.\n *\n * For a detailed overview, check the {@glink features/image#image-styles image styles} documentation.\n *\n * This is a \"glue\" plugin which loads the\n * {@link module:image/imagetextalternative/imagetextalternativeediting~ImageTextAlternativeEditing}\n * and {@link module:image/imagetextalternative/imagetextalternativeui~ImageTextAlternativeUI} plugins.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar ImageTextAlternative =\n/*#__PURE__*/\nfunction (_Plugin) {\n _inherits(ImageTextAlternative, _Plugin);\n\n function ImageTextAlternative() {\n _classCallCheck(this, ImageTextAlternative);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ImageTextAlternative).apply(this, arguments));\n }\n\n _createClass(ImageTextAlternative, null, [{\n key: \"requires\",\n\n /**\n * @inheritDoc\n */\n get: function get() {\n return [ImageTextAlternativeEditing, ImageTextAlternativeUI];\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"pluginName\",\n get: function get() {\n return 'ImageTextAlternative';\n }\n }]);\n\n return ImageTextAlternative;\n}(Plugin);\n\nexport { ImageTextAlternative as default };","import _classCallCheck from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _possibleConstructorReturn from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\nimport _inherits from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/image\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ImageEditing from \"../src/image/imageediting\";\nimport Widget from '@ckeditor/ckeditor5-widget/src/widget';\nimport ImageTextAlternative from \"./imagetextalternative\";\nimport \"../theme/image.css\";\n/**\n * The image plugin.\n *\n * For a detailed overview, check the {@glink features/image image feature} documentation.\n *\n * This is a \"glue\" plugin which loads the following plugins:\n *\n * * {@link module:image/image/imageediting~ImageEditing},\n * * {@link module:image/imagetextalternative~ImageTextAlternative}.\n *\n * Usually, it is used in conjuction with other plugins from this package. See the {@glink api/image package page}\n * for more information.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar Image =\n/*#__PURE__*/\nfunction (_Plugin) {\n _inherits(Image, _Plugin);\n\n function Image() {\n _classCallCheck(this, Image);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Image).apply(this, arguments));\n }\n\n _createClass(Image, null, [{\n key: \"requires\",\n\n /**\n * @inheritDoc\n */\n get: function get() {\n return [ImageEditing, Widget, ImageTextAlternative];\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"pluginName\",\n get: function get() {\n return 'Image';\n }\n }]);\n\n return Image;\n}(Plugin);\n/**\n * The configuration of the image features. Used by the image features in the `@ckeditor/ckeditor5-image` package.\n *\n * Read more in {@link module:image/image~ImageConfig}.\n *\n * @member {module:image/image~ImageConfig} module:core/editor/editorconfig~EditorConfig#image\n */\n\n/**\n * The configuration of the image features. Used by the image features in the `@ckeditor/ckeditor5-image` package.\n *\n *\t\tClassicEditor\n *\t\t\t.create( editorElement, {\n * \t\t\t\timage: ... // Image feature options.\n *\t\t\t} )\n *\t\t\t.then( ... )\n *\t\t\t.catch( ... );\n *\n * See {@link module:core/editor/editorconfig~EditorConfig all editor options}.\n *\n * @interface ImageConfig\n */\n\n\nexport { Image as default };","import \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/web.dom.iterable\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagecaption/utils\n */\nimport { enablePlaceholder } from '@ckeditor/ckeditor5-engine/src/view/placeholder';\nimport { toWidgetEditable } from '@ckeditor/ckeditor5-widget/src/utils';\n/**\n * Returns a function that creates a caption editable element for the given {@link module:engine/view/document~Document}.\n *\n * @param {module:engine/view/view~View} view\n * @param {String} placeholderText The text to be displayed when the caption is empty.\n * @returns {Function}\n */\n\nexport function captionElementCreator(view, placeholderText) {\n return function (writer) {\n var editable = writer.createEditableElement('figcaption');\n writer.setCustomProperty('imageCaption', true, editable);\n enablePlaceholder({\n view: view,\n element: editable,\n text: placeholderText\n });\n return toWidgetEditable(editable, writer);\n };\n}\n/**\n * Returns `true` if a given view element is the image caption editable.\n *\n * @param {module:engine/view/element~Element} viewElement\n * @returns {Boolean}\n */\n\nexport function isCaption(viewElement) {\n return !!viewElement.getCustomProperty('imageCaption');\n}\n/**\n * Returns the caption model element from a given image element. Returns `null` if no caption is found.\n *\n * @param {module:engine/model/element~Element} imageModelElement\n * @returns {module:engine/model/element~Element|null}\n */\n\nexport function getCaptionFromImage(imageModelElement) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = imageModelElement.getChildren()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var node = _step.value;\n\n if (!!node && node.is('caption')) {\n return node;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return null;\n}\n/**\n * {@link module:engine/view/matcher~Matcher} pattern. Checks if a given element is a `
` element that is placed\n * inside the image `
` element.\n *\n * @param {module:engine/view/element~Element} element\n * @returns {Object|null} Returns the object accepted by {@link module:engine/view/matcher~Matcher} or `null` if the element\n * cannot be matched.\n */\n\nexport function matchImageCaption(element) {\n var parent = element.parent; // Convert only captions for images.\n\n if (element.name == 'figcaption' && parent && parent.name == 'figure' && parent.hasClass('image')) {\n return {\n name: true\n };\n }\n\n return null;\n}","import 'core-js/modules/es6.array.find';\nimport 'core-js/modules/es6.function.name';\nimport 'core-js/modules/es7.symbol.async-iterator';\nimport 'core-js/modules/es6.symbol';\nimport 'core-js/modules/web.dom.iterable';\nimport _classCallCheck from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _possibleConstructorReturn from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nimport _inherits from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagecaption/imagecaptionediting\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport { isImage } from '../image/utils';\nimport {\n captionElementCreator,\n getCaptionFromImage,\n matchImageCaption\n} from './utils';\n/**\n * The image caption engine plugin.\n *\n * It registers proper converters. It takes care of adding a caption element if the image without it is inserted\n * to the model document.\n *\n * @extends module:core/plugin~Plugin\n */\nvar ImageCaptionEditing = /*#__PURE__*/\nfunction (_Plugin) {\n _inherits(ImageCaptionEditing, _Plugin);\n function ImageCaptionEditing() {\n _classCallCheck(this, ImageCaptionEditing);\n return _possibleConstructorReturn(this, _getPrototypeOf(ImageCaptionEditing).apply(this, arguments));\n }\n _createClass(ImageCaptionEditing, [\n {\n key: 'init',\n /**\n * @inheritDoc\n */\n value: function init() {\n var _this = this;\n var editor = this.editor;\n var view = editor.editing.view;\n var schema = editor.model.schema;\n var data = editor.data;\n var editing = editor.editing;\n var t = editor.t;\n /**\n * The last selected caption editable.\n * It is used for hiding the editable when it is empty and the image widget is no longer selected.\n *\n * @private\n * @member {module:engine/view/editableelement~EditableElement} #_lastSelectedCaption\n */\n // Schema configuration.\n schema.register('caption', {\n allowIn: 'image',\n allowContentOf: '$block',\n isLimit: true\n });\n // Add caption element to each image inserted without it.\n editor.model.document.registerPostFixer(function (writer) {\n return _this._insertMissingModelCaptionElement(writer);\n });\n // View to model converter for the data pipeline.\n editor.conversion.for('upcast').elementToElement({\n view: matchImageCaption,\n model: 'caption'\n });\n // Model to view converter for the data pipeline.\n var createCaptionForData = function createCaptionForData(writer) {\n return writer.createContainerElement('figcaption');\n };\n data.downcastDispatcher.on('insert:caption', captionModelToView(createCaptionForData, false));\n // Model to view converter for the editing pipeline.\n var createCaptionForEditing = captionElementCreator(view, t('Enter image caption'));\n editing.downcastDispatcher.on('insert:caption', captionModelToView(createCaptionForEditing));\n // Always show caption in view when something is inserted in model.\n editing.downcastDispatcher.on('insert', this._fixCaptionVisibility(function (data) {\n return data.item;\n }), { priority: 'high' });\n // Hide caption when everything is removed from it.\n editing.downcastDispatcher.on('remove', this._fixCaptionVisibility(function (data) {\n return data.position.parent;\n }), { priority: 'high' });\n // Update caption visibility on view in post fixer.\n view.document.registerPostFixer(function (writer) {\n return _this._updateCaptionVisibility(writer);\n });\n } /**\n * Updates the view before each rendering, making sure that empty captions (so unnecessary ones) are hidden\n * and then visible when the image is selected.\n *\n * @private\n * @param {module:engine/view/downcastwriter~DowncastWriter} viewWriter\n * @returns {Boolean} Returns `true` when the view is updated.\n */\n },\n {\n key: '_updateCaptionVisibility',\n value: function _updateCaptionVisibility(viewWriter) {\n var mapper = this.editor.editing.mapper;\n var lastCaption = this._lastSelectedCaption;\n var viewCaption;\n // If whole image is selected.\n var modelSelection = this.editor.model.document.selection;\n var selectedElement = modelSelection.getSelectedElement();\n if (selectedElement && selectedElement.is('image')) {\n var _modelCaption = getCaptionFromImage(selectedElement);\n viewCaption = mapper.toViewElement(_modelCaption);\n }\n // If selection is placed inside caption.\n var position = modelSelection.getFirstPosition();\n var modelCaption = getParentCaption(position.parent);\n if (modelCaption) {\n viewCaption = mapper.toViewElement(modelCaption);\n }\n // Is currently any caption selected?\n if (viewCaption) {\n // Was any caption selected before?\n if (lastCaption) {\n // Same caption as before?\n if (lastCaption === viewCaption) {\n return showCaption(viewCaption, viewWriter);\n } else {\n hideCaptionIfEmpty(lastCaption, viewWriter);\n this._lastSelectedCaption = viewCaption;\n return showCaption(viewCaption, viewWriter);\n }\n } else {\n this._lastSelectedCaption = viewCaption;\n return showCaption(viewCaption, viewWriter);\n }\n } else {\n // Was any caption selected before?\n if (lastCaption) {\n var viewModified = hideCaptionIfEmpty(lastCaption, viewWriter);\n this._lastSelectedCaption = null;\n return viewModified;\n } else {\n return false;\n }\n }\n } /**\n * Returns a converter that fixes caption visibility during the model-to-view conversion.\n * Checks if the changed node is placed inside the caption element and fixes its visibility in the view.\n *\n * @private\n * @param {Function} nodeFinder\n * @returns {Function}\n */\n },\n {\n key: '_fixCaptionVisibility',\n value: function _fixCaptionVisibility(nodeFinder) {\n var _this2 = this;\n return function (evt, data, conversionApi) {\n var node = nodeFinder(data);\n var modelCaption = getParentCaption(node);\n var mapper = _this2.editor.editing.mapper;\n var viewWriter = conversionApi.writer;\n if (modelCaption) {\n var viewCaption = mapper.toViewElement(modelCaption);\n if (viewCaption) {\n if (modelCaption.childCount) {\n viewWriter.removeClass('ck-hidden', viewCaption);\n } else {\n viewWriter.addClass('ck-hidden', viewCaption);\n }\n }\n }\n };\n } /**\n * Checks whether the data inserted to the model document have an image element that has no caption element inside it.\n * If there is none, it adds it to the image element.\n *\n * @private\n * @param {module:engine/model/writer~Writer} writer The writer to make changes with.\n * @returns {Boolean} `true` if any change was applied, `false` otherwise.\n */\n },\n {\n key: '_insertMissingModelCaptionElement',\n value: function _insertMissingModelCaptionElement(writer) {\n var model = this.editor.model;\n var changes = model.document.differ.getChanges();\n var imagesWithoutCaption = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n try {\n for (var _iterator = changes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var entry = _step.value;\n if (entry.type == 'insert' && entry.name != '$text') {\n var item = entry.position.nodeAfter;\n if (item.is('image') && !getCaptionFromImage(item)) {\n imagesWithoutCaption.push(item);\n }\n // Check elements with children for nested images.\n if (!item.is('image') && item.childCount) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n try {\n for (var _iterator2 = model.createRangeIn(item).getItems()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var nestedItem = _step2.value;\n if (nestedItem.is('image') && !getCaptionFromImage(nestedItem)) {\n imagesWithoutCaption.push(nestedItem);\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n for (var _i = 0, _imagesWithoutCaption = imagesWithoutCaption; _i < _imagesWithoutCaption.length; _i++) {\n var image = _imagesWithoutCaption[_i];\n writer.appendElement('caption', image);\n }\n return !!imagesWithoutCaption.length;\n }\n }\n ], [{\n key: 'pluginName',\n /**\n * @inheritDoc\n */\n get: function get() {\n return 'ImageCaptionEditing';\n }\n }]);\n return ImageCaptionEditing;\n}(Plugin);\n// Creates a converter that converts image caption model element to view element.\n//\n// @private\n// @param {Function} elementCreator\n// @param {Boolean} [hide=true] When set to `false` view element will not be inserted when it's empty.\n// @returns {Function}\nexport {\n ImageCaptionEditing as default\n};\nfunction captionModelToView(elementCreator) {\n var hide = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return function (evt, data, conversionApi) {\n var captionElement = data.item;\n // Return if element shouldn't be present when empty.\n if (!captionElement.childCount && !hide) {\n return;\n }\n if (isImage(captionElement.parent)) {\n if (!conversionApi.consumable.consume(data.item, 'insert')) {\n return;\n }\n var viewImage = conversionApi.mapper.toViewElement(data.range.start.parent);\n var viewCaption = elementCreator(conversionApi.writer);\n var viewWriter = conversionApi.writer;\n // Hide if empty.\n if (!captionElement.childCount) {\n viewWriter.addClass('ck-hidden', viewCaption);\n }\n insertViewCaptionAndBind(viewCaption, data.item, viewImage, conversionApi);\n }\n };\n}\n// Inserts `viewCaption` at the end of `viewImage` and binds it to `modelCaption`.\n//\n// @private\n// @param {module:engine/view/containerelement~ContainerElement} viewCaption\n// @param {module:engine/model/element~Element} modelCaption\n// @param {module:engine/view/containerelement~ContainerElement} viewImage\n// @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi\nfunction insertViewCaptionAndBind(viewCaption, modelCaption, viewImage, conversionApi) {\n var viewPosition = conversionApi.writer.createPositionAt(viewImage, 'end');\n conversionApi.writer.insert(viewPosition, viewCaption);\n conversionApi.mapper.bindElements(modelCaption, viewCaption);\n}\n// Checks if the provided node or one of its ancestors is a caption element, and returns it.\n//\n// @private\n// @param {module:engine/model/node~Node} node\n// @returns {module:engine/model/element~Element|null}\nfunction getParentCaption(node) {\n var ancestors = node.getAncestors({ includeSelf: true });\n var caption = ancestors.find(function (ancestor) {\n return ancestor.name == 'caption';\n });\n if (caption && caption.parent && caption.parent.name == 'image') {\n return caption;\n }\n return null;\n}\n// Hides a given caption in the view if it is empty.\n//\n// @private\n// @param {module:engine/view/containerelement~ContainerElement} caption\n// @param {module:engine/view/downcastwriter~DowncastWriter} viewWriter\n// @returns {Boolean} Returns `true` if the view was modified.\nfunction hideCaptionIfEmpty(caption, viewWriter) {\n if (!caption.childCount && !caption.hasClass('ck-hidden')) {\n viewWriter.addClass('ck-hidden', caption);\n return true;\n }\n return false;\n}\n// Shows the caption.\n//\n// @private\n// @param {module:engine/view/containerelement~ContainerElement} caption\n// @param {module:engine/view/downcastwriter~DowncastWriter} viewWriter\n// @returns {Boolean} Returns `true` if the view was modified.\nfunction showCaption(caption, viewWriter) {\n if (caption.hasClass('ck-hidden')) {\n viewWriter.removeClass('ck-hidden', caption);\n return true;\n }\n return false;\n}","import _classCallCheck from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _possibleConstructorReturn from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\nimport _inherits from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagecaption\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ImageCaptionEditing from \"./imagecaption/imagecaptionediting\";\nimport \"../theme/imagecaption.css\";\n/**\n * The image caption plugin.\n *\n * For a detailed overview, check the {@glink features/image#image-captions image caption} documentation.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar ImageCaption =\n/*#__PURE__*/\nfunction (_Plugin) {\n _inherits(ImageCaption, _Plugin);\n\n function ImageCaption() {\n _classCallCheck(this, ImageCaption);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ImageCaption).apply(this, arguments));\n }\n\n _createClass(ImageCaption, null, [{\n key: \"requires\",\n\n /**\n * @inheritDoc\n */\n get: function get() {\n return [ImageCaptionEditing];\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"pluginName\",\n get: function get() {\n return 'ImageCaption';\n }\n }]);\n\n return ImageCaption;\n}(Plugin);\n\nexport { ImageCaption as default };","import \"core-js/modules/es6.function.name\";\nimport _classCallCheck from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _possibleConstructorReturn from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\nimport _inherits from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagestyle/imagestylecommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport { isImage } from \"../image/utils\";\n/**\n * The image style command. It is used to apply different image styles.\n *\n * @extends module:core/command~Command\n */\n\nvar ImageStyleCommand =\n/*#__PURE__*/\nfunction (_Command) {\n _inherits(ImageStyleCommand, _Command);\n\n /**\n * Creates an instance of the image style command. Each command instance is handling one style.\n *\n * @param {module:core/editor/editor~Editor} editor The editor instance.\n * @param {Array.} styles The styles that this command supports.\n */\n function ImageStyleCommand(editor, styles) {\n var _this;\n\n _classCallCheck(this, ImageStyleCommand);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ImageStyleCommand).call(this, editor));\n /**\n * The name of the default style, if it is present. If there is no default style, it defaults to `false`.\n *\n * @readonly\n * @type {Boolean|String}\n */\n\n _this.defaultStyle = false;\n /**\n * A style handled by this command.\n *\n * @readonly\n * @member {Array.} #styles\n */\n\n _this.styles = styles.reduce(function (styles, style) {\n styles[style.name] = style;\n\n if (style.isDefault) {\n _this.defaultStyle = style.name;\n }\n\n return styles;\n }, {});\n return _this;\n }\n /**\n * @inheritDoc\n */\n\n\n _createClass(ImageStyleCommand, [{\n key: \"refresh\",\n value: function refresh() {\n var element = this.editor.model.document.selection.getSelectedElement();\n this.isEnabled = isImage(element);\n\n if (!element) {\n this.value = false;\n } else if (element.hasAttribute('imageStyle')) {\n var attributeValue = element.getAttribute('imageStyle');\n this.value = this.styles[attributeValue] ? attributeValue : false;\n } else {\n this.value = this.defaultStyle;\n }\n }\n /**\n * Executes the command.\n *\n *\t\teditor.execute( 'imageStyle', { value: 'side' } );\n *\n * @param {Object} options\n * @param {String} options.value The name of the style (based on the\n * {@link module:image/image~ImageConfig#styles `image.styles`} configuration option).\n * @fires execute\n */\n\n }, {\n key: \"execute\",\n value: function execute(options) {\n var _this2 = this;\n\n var styleName = options.value;\n var model = this.editor.model;\n var imageElement = model.document.selection.getSelectedElement();\n model.change(function (writer) {\n // Default style means that there is no `imageStyle` attribute in the model.\n // https://github.com/ckeditor/ckeditor5-image/issues/147\n if (_this2.styles[styleName].isDefault) {\n writer.removeAttribute('imageStyle', imageElement);\n } else {\n writer.setAttribute('imageStyle', styleName, imageElement);\n }\n });\n }\n }]);\n\n return ImageStyleCommand;\n}(Command);\n\nexport { ImageStyleCommand as default };","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.function.name\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport first from '@ckeditor/ckeditor5-utils/src/first';\n/**\n * @module image/imagestyle/converters\n */\n\n/**\n * Returns a converter for the `imageStyle` attribute. It can be used for adding, changing and removing the attribute.\n *\n * @param {Object} styles An object containing available styles. See {@link module:image/imagestyle/imagestyleediting~ImageStyleFormat}\n * for more details.\n * @returns {Function} A model-to-view attribute converter.\n */\n\nexport function modelToViewStyleAttribute(styles) {\n return function (evt, data, conversionApi) {\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n } // Check if there is class name associated with given value.\n\n\n var newStyle = getStyleByName(data.attributeNewValue, styles);\n var oldStyle = getStyleByName(data.attributeOldValue, styles);\n var viewElement = conversionApi.mapper.toViewElement(data.item);\n var viewWriter = conversionApi.writer;\n\n if (oldStyle) {\n viewWriter.removeClass(oldStyle.className, viewElement);\n }\n\n if (newStyle) {\n viewWriter.addClass(newStyle.className, viewElement);\n }\n };\n}\n/**\n * Returns a view-to-model converter converting image CSS classes to a proper value in the model.\n *\n * @param {Array.} styles The styles for which the converter is created.\n * @returns {Function} A view-to-model converter.\n */\n\nexport function viewToModelStyleAttribute(styles) {\n // Convert only non–default styles.\n var filteredStyles = styles.filter(function (style) {\n return !style.isDefault;\n });\n return function (evt, data, conversionApi) {\n if (!data.modelRange) {\n return;\n }\n\n var viewFigureElement = data.viewItem;\n var modelImageElement = first(data.modelRange.getItems()); // Check if `imageStyle` attribute is allowed for current element.\n\n if (!conversionApi.schema.checkAttribute(modelImageElement, 'imageStyle')) {\n return;\n } // Convert style one by one.\n\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = filteredStyles[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var style = _step.value;\n\n // Try to consume class corresponding with style.\n if (conversionApi.consumable.consume(viewFigureElement, {\n classes: style.className\n })) {\n // And convert this style to model attribute.\n conversionApi.writer.setAttribute('imageStyle', style.name, modelImageElement);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n} // Returns the style with a given `name` from an array of styles.\n//\n// @param {String} name\n// @param {Array. } styles\n// @returns {module:image/imagestyle/imagestyleediting~ImageStyleFormat|undefined}\n\nfunction getStyleByName(name, styles) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = styles[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var style = _step2.value;\n\n if (style.name === name) {\n return style;\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n}","export default \"\"","export default \"\"","export default \"\"","export default \"\"","import \"core-js/modules/es6.function.name\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagestyle/utils\n */\n\n/* globals console */\nimport fullWidthIcon from '@ckeditor/ckeditor5-core/theme/icons/object-full-width.svg';\nimport leftIcon from '@ckeditor/ckeditor5-core/theme/icons/object-left.svg';\nimport centerIcon from '@ckeditor/ckeditor5-core/theme/icons/object-center.svg';\nimport rightIcon from '@ckeditor/ckeditor5-core/theme/icons/object-right.svg';\nimport { attachLinkToDocumentation } from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * Default image styles provided by the plugin that can be referred in the\n * {@link module:image/image~ImageConfig#styles} configuration.\n *\n * Among them, 2 default semantic content styles are available:\n *\n * * `full` is a full–width image without any CSS class,\n * * `side` is a side image styled with the `image-style-side` CSS class.\n *\n * There are also 3 styles focused on formatting:\n *\n * * `alignLeft` aligns the image to the left using the `image-style-align-left` class,\n * * `alignCenter` centers the image using the `image-style-align-center` class,\n * * `alignRight` aligns the image to the right using the `image-style-align-right` class,\n *\n * @member {Object.}\n */\n\nvar defaultStyles = {\n // This option is equal to the situation when no style is applied.\n full: {\n name: 'full',\n title: 'Full size image',\n icon: fullWidthIcon,\n isDefault: true\n },\n // This represents a side image.\n side: {\n name: 'side',\n title: 'Side image',\n icon: rightIcon,\n className: 'image-style-side'\n },\n // This style represents an image aligned to the left.\n alignLeft: {\n name: 'alignLeft',\n title: 'Left aligned image',\n icon: leftIcon,\n className: 'image-style-align-left'\n },\n // This style represents a centered image.\n alignCenter: {\n name: 'alignCenter',\n title: 'Centered image',\n icon: centerIcon,\n className: 'image-style-align-center'\n },\n // This style represents an image aligned to the right.\n alignRight: {\n name: 'alignRight',\n title: 'Right aligned image',\n icon: rightIcon,\n className: 'image-style-align-right'\n }\n};\n/**\n * Default image style icons provided by the plugin that can be referred in the\n * {@link module:image/image~ImageConfig#styles} configuration.\n *\n * There are 4 icons available: `'full'`, `'left'`, `'center'` and `'right'`.\n *\n * @member {Object.}\n */\n\nvar defaultIcons = {\n full: fullWidthIcon,\n left: leftIcon,\n right: rightIcon,\n center: centerIcon\n};\n/**\n * Returns a {@link module:image/image~ImageConfig#styles} array with items normalized in the\n * {@link module:image/imagestyle/imagestyleediting~ImageStyleFormat} format and a complete `icon` markup for each style.\n *\n * @returns {Array.}\n */\n\nexport function normalizeImageStyles() {\n var configuredStyles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return configuredStyles.map(_normalizeStyle);\n} // Normalizes an image style provided in the {@link module:image/image~ImageConfig#styles}\n// and returns it in a {@link module:image/imagestyle/imagestyleediting~ImageStyleFormat}.\n//\n// @param {Object} style\n// @returns {@link module:image/imagestyle/imagestyleediting~ImageStyleFormat}\n\nfunction _normalizeStyle(style) {\n // Just the name of the style has been passed.\n if (typeof style == 'string') {\n var styleName = style; // If it's one of the defaults, just use it.\n\n if (defaultStyles[styleName]) {\n // Clone the style to avoid overriding defaults.\n style = Object.assign({}, defaultStyles[styleName]);\n } // If it's just a name but none of the defaults, warn because probably it's a mistake.\n else {\n console.warn(attachLinkToDocumentation('image-style-not-found: There is no such image style of given name.'), {\n name: styleName\n }); // Normalize the style anyway to prevent errors.\n\n style = {\n name: styleName\n };\n }\n } // If an object style has been passed and if the name matches one of the defaults,\n // extend it with defaults – the user wants to customize a default style.\n // Note: Don't override the user–defined style object, clone it instead.\n else if (defaultStyles[style.name]) {\n var defaultStyle = defaultStyles[style.name];\n var extendedStyle = Object.assign({}, style);\n\n for (var prop in defaultStyle) {\n if (!style.hasOwnProperty(prop)) {\n extendedStyle[prop] = defaultStyle[prop];\n }\n }\n\n style = extendedStyle;\n } // If an icon is defined as a string and correspond with a name\n // in default icons, use the default icon provided by the plugin.\n\n\n if (typeof style.icon == 'string' && defaultIcons[style.icon]) {\n style.icon = defaultIcons[style.icon];\n }\n\n return style;\n}","import _classCallCheck from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _possibleConstructorReturn from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\nimport _inherits from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagestyle/imagestyleediting\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ImageStyleCommand from \"./imagestylecommand\";\nimport { viewToModelStyleAttribute, modelToViewStyleAttribute } from \"./converters\";\nimport { normalizeImageStyles } from \"./utils\";\n/**\n * The image style engine plugin. It sets the default configuration, creates converters and registers\n * {@link module:image/imagestyle/imagestylecommand~ImageStyleCommand ImageStyleCommand}.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar ImageStyleEditing =\n/*#__PURE__*/\nfunction (_Plugin) {\n _inherits(ImageStyleEditing, _Plugin);\n\n function ImageStyleEditing() {\n _classCallCheck(this, ImageStyleEditing);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ImageStyleEditing).apply(this, arguments));\n }\n\n _createClass(ImageStyleEditing, [{\n key: \"init\",\n\n /**\n * @inheritDoc\n */\n value: function init() {\n var editor = this.editor;\n var schema = editor.model.schema;\n var data = editor.data;\n var editing = editor.editing; // Define default configuration.\n\n editor.config.define('image.styles', ['full', 'side']); // Get configuration.\n\n var styles = normalizeImageStyles(editor.config.get('image.styles')); // Allow imageStyle attribute in image.\n // We could call it 'style' but https://github.com/ckeditor/ckeditor5-engine/issues/559.\n\n schema.extend('image', {\n allowAttributes: 'imageStyle'\n }); // Converters for imageStyle attribute from model to view.\n\n var modelToViewConverter = modelToViewStyleAttribute(styles);\n editing.downcastDispatcher.on('attribute:imageStyle:image', modelToViewConverter);\n data.downcastDispatcher.on('attribute:imageStyle:image', modelToViewConverter); // Converter for figure element from view to model.\n\n data.upcastDispatcher.on('element:figure', viewToModelStyleAttribute(styles), {\n priority: 'low'\n }); // Register imageStyle command.\n\n editor.commands.add('imageStyle', new ImageStyleCommand(editor, styles));\n }\n }], [{\n key: \"pluginName\",\n\n /**\n * @inheritDoc\n */\n get: function get() {\n return 'ImageStyleEditing';\n }\n }]);\n\n return ImageStyleEditing;\n}(Plugin);\n/**\n * The image style format descriptor.\n *\n *\t\timport fullSizeIcon from 'path/to/icon.svg';\n *\n *\t\tconst imageStyleFormat = {\n *\t\t\tname: 'fullSize',\n *\t\t\ticon: fullSizeIcon,\n *\t\t\ttitle: 'Full size image',\n *\t\t\tclassName: 'image-full-size'\n *\t\t}\n *\n * @typedef {Object} module:image/imagestyle/imagestyleediting~ImageStyleFormat\n *\n * @property {String} name The unique name of the style. It will be used to:\n *\n * * Store the chosen style in the model by setting the `imageStyle` attribute of the `` element.\n * * As a value of the {@link module:image/imagestyle/imagestylecommand~ImageStyleCommand#execute `imageStyle` command},\n * * when registering a button for each of the styles (`'imageStyle:{name}'`) in the\n * {@link module:ui/componentfactory~ComponentFactory UI components factory} (this functionality is provided by the\n * {@link module:image/imagestyle/imagestyleui~ImageStyleUI} plugin).\n *\n * @property {Boolean} [isDefault] When set, the style will be used as the default one.\n * A default style does not apply any CSS class to the view element.\n *\n * @property {String} icon One of the following to be used when creating the style's button:\n *\n * * An SVG icon source (as an XML string).\n * * One of {@link module:image/imagestyle/utils~defaultIcons} to use a default icon provided by the plugin.\n *\n * @property {String} title The style's title.\n *\n * @property {String} className The CSS class used to represent the style in the view.\n */\n\n\nexport { ImageStyleEditing as default };","import 'core-js/modules/es6.function.name';\nimport 'core-js/modules/es7.symbol.async-iterator';\nimport 'core-js/modules/es6.symbol';\nimport 'core-js/modules/web.dom.iterable';\nimport _classCallCheck from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _possibleConstructorReturn from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nimport _inherits from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagestyle/imagestyleui\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';\nimport { normalizeImageStyles } from './utils';\nimport '../../theme/imagestyle.css';\n/**\n * The image style UI plugin.\n *\n * @extends module:core/plugin~Plugin\n */\nvar ImageStyleUI = /*#__PURE__*/\nfunction (_Plugin) {\n _inherits(ImageStyleUI, _Plugin);\n function ImageStyleUI() {\n _classCallCheck(this, ImageStyleUI);\n return _possibleConstructorReturn(this, _getPrototypeOf(ImageStyleUI).apply(this, arguments));\n }\n _createClass(ImageStyleUI, [\n {\n key: 'init',\n /**\n * @inheritDoc\n */\n value: function init() {\n var editor = this.editor;\n var configuredStyles = editor.config.get('image.styles');\n var translatedStyles = translateStyles(normalizeImageStyles(configuredStyles), this.localizedDefaultStylesTitles);\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n try {\n for (var _iterator = translatedStyles[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var style = _step.value;\n this._createButton(style);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n } /**\n * Creates a button for each style and stores it in the editor {@link module:ui/componentfactory~ComponentFactory ComponentFactory}.\n *\n * @private\n * @param {module:image/imagestyle/imagestyleediting~ImageStyleFormat} style\n */\n },\n {\n key: '_createButton',\n value: function _createButton(style) {\n var _this = this;\n var editor = this.editor;\n var componentName = 'imageStyle:'.concat(style.name);\n editor.ui.componentFactory.add(componentName, function (locale) {\n var command = editor.commands.get('imageStyle');\n var view = new ButtonView(locale);\n view.set({\n label: style.title,\n icon: style.icon,\n tooltip: true,\n isToggleable: true\n });\n view.bind('isEnabled').to(command, 'isEnabled');\n view.bind('isOn').to(command, 'value', function (value) {\n return value === style.name;\n });\n _this.listenTo(view, 'execute', function () {\n return editor.execute('imageStyle', { value: style.name });\n });\n return view;\n });\n }\n },\n {\n key: 'localizedDefaultStylesTitles',\n /**\n * Returns the default localized style titles provided by the plugin.\n *\n * The following localized titles corresponding with\n * {@link module:image/imagestyle/utils~defaultStyles} are available:\n *\n * * `'Full size image'`,\n * * `'Side image'`,\n * * `'Left aligned image'`,\n * * `'Centered image'`,\n * * `'Right aligned image'`\n *\n * @returns {Object.}\n */\n get: function get() {\n var t = this.editor.t;\n return {\n 'Full size image': t('Full size image'),\n 'Side image': t('Side image'),\n 'Left aligned image': t('Left aligned image'),\n 'Centered image': t('Centered image'),\n 'Right aligned image': t('Right aligned image')\n };\n }\n }\n ], [{\n key: 'pluginName',\n /**\n * @inheritDoc\n */\n get: function get() {\n return 'ImageStyleUI';\n }\n }]);\n return ImageStyleUI;\n}(Plugin);\n/**\n * Returns the translated `title` from the passed styles array.\n *\n * @param {Array.} styles\n * @param titles\n * @returns {Array.}\n */\nexport {\n ImageStyleUI as default\n};\nfunction translateStyles(styles, titles) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n try {\n for (var _iterator2 = styles[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var style = _step2.value;\n // Localize the titles of the styles, if a title corresponds with\n // a localized default provided by the plugin.\n if (titles[style.title]) {\n style.title = titles[style.title];\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n return styles;\n}","import _classCallCheck from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _possibleConstructorReturn from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\nimport _inherits from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagestyle\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ImageStyleEditing from \"./imagestyle/imagestyleediting\";\nimport ImageStyleUI from \"./imagestyle/imagestyleui\";\n/**\n * The image style plugin.\n *\n * For a detailed overview, check the {@glink features/image#image-styles image styles} documentation.\n *\n * This is a \"glue\" plugin which loads the {@link module:image/imagestyle/imagestyleediting~ImageStyleEditing}\n * and {@link module:image/imagestyle/imagestyleui~ImageStyleUI} plugins.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar ImageStyle =\n/*#__PURE__*/\nfunction (_Plugin) {\n _inherits(ImageStyle, _Plugin);\n\n function ImageStyle() {\n _classCallCheck(this, ImageStyle);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ImageStyle).apply(this, arguments));\n }\n\n _createClass(ImageStyle, null, [{\n key: \"requires\",\n\n /**\n * @inheritDoc\n */\n get: function get() {\n return [ImageStyleEditing, ImageStyleUI];\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"pluginName\",\n get: function get() {\n return 'ImageStyle';\n }\n }]);\n\n return ImageStyle;\n}(Plugin);\n/**\n * Available image styles.\n *\n * The default value is:\n *\n *\t\tconst imageConfig = {\n *\t\t\tstyles: [ 'full', 'side' ]\n *\t\t};\n *\n * which configures two default styles:\n *\n * * the \"full\" style which does not apply any class, e.g. for images styled to span 100% width of the content,\n * * the \"side\" style with the `.image-style-side` CSS class.\n *\n * See {@link module:image/imagestyle/utils~defaultStyles} to learn more about default\n * styles provided by the image feature.\n *\n * The {@link module:image/imagestyle/utils~defaultStyles default styles} can be customized,\n * e.g. to change the icon, title or CSS class of the style. The feature also provides several\n * {@link module:image/imagestyle/utils~defaultIcons default icons} to choose from.\n *\n *\t\timport customIcon from 'custom-icon.svg';\n *\n *\t\t// ...\n *\n *\t\tconst imageConfig = {\n *\t\t\tstyles: [\n *\t\t\t\t// This will only customize the icon of the \"full\" style.\n *\t\t\t\t// Note: 'right' is one of default icons provided by the feature.\n *\t\t\t\t{ name: 'full', icon: 'right' },\n *\n *\t\t\t\t// This will customize the icon, title and CSS class of the default \"side\" style.\n *\t\t\t\t{ name: 'side', icon: customIcon, title: 'My side style', className: 'custom-side-image' }\n *\t\t\t]\n *\t\t};\n *\n * If none of the default styles is good enough, it is possible to define independent custom styles, too:\n *\n *\t\timport fullSizeIcon from '@ckeditor/ckeditor5-core/theme/icons/object-center.svg';\n *\t\timport sideIcon from '@ckeditor/ckeditor5-core/theme/icons/object-right.svg';\n *\n *\t\t// ...\n *\n *\t\tconst imageConfig = {\n *\t\t\tstyles: [\n *\t\t\t\t// A completely custom full size style with no class, used as a default.\n *\t\t\t\t{ name: 'fullSize', title: 'Full size', icon: fullSizeIcon, isDefault: true },\n *\n *\t\t\t\t{ name: 'side', title: 'To the side', icon: sideIcon, className: 'side-image' }\n *\t\t\t]\n *\t\t};\n *\n * Note: Setting `title` to one of {@link module:image/imagestyle/imagestyleui~ImageStyleUI#localizedDefaultStylesTitles}\n * will automatically translate it to the language of the editor.\n *\n * Read more about styling images in the {@glink features/image#image-styles Image styles guide}.\n *\n * The feature creates commands based on defined styles, so you can change the style of a selected image by executing\n * the following command:\n *\n *\t\teditor.execute( 'imageStyle' { value: 'side' } );\n *\n * The feature also creates buttons that execute the commands. So, assuming that you use the\n * default image styles setting, you can {@link module:image/image~ImageConfig#toolbar configure the image toolbar}\n * (or any other toolbar) to contain these options:\n *\n *\t\tconst imageConfig = {\n *\t\t\ttoolbar: [ 'imageStyle:full', 'imageStyle:side' ]\n *\t\t};\n *\n * @member {Array.} module:image/image~ImageConfig#styles\n */\n\n\nexport { ImageStyle as default };","import 'core-js/modules/es7.symbol.async-iterator';\nimport 'core-js/modules/es6.symbol';\nimport 'core-js/modules/web.dom.iterable';\nimport 'core-js/modules/es6.string.iterator';\nimport 'core-js/modules/es6.map';\nimport _classCallCheck from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _possibleConstructorReturn from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nimport _get from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get';\nimport _inherits from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module widget/widgettoolbarrepository\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ContextualBalloon from '@ckeditor/ckeditor5-ui/src/panel/balloon/contextualballoon';\nimport ToolbarView from '@ckeditor/ckeditor5-ui/src/toolbar/toolbarview';\nimport BalloonPanelView from '@ckeditor/ckeditor5-ui/src/panel/balloon/balloonpanelview';\nimport { isWidget } from './utils';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * Widget toolbar repository plugin. A central point for registering widget toolbars. This plugin handles the whole\n * toolbar rendering process and exposes a concise API.\n *\n * To add a toolbar for your widget use the {@link ~WidgetToolbarRepository#register `WidgetToolbarRepository#register()`} method.\n *\n * The following example comes from the {@link module:image/imagetoolbar~ImageToolbar} plugin:\n *\n * \t\tclass ImageToolbar extends Plugin {\n *\t\t\tstatic get requires() {\n *\t\t\t\treturn [ WidgetToolbarRepository ];\n *\t\t\t}\n *\n *\t\t\tafterInit() {\n *\t\t\t\tconst editor = this.editor;\n *\t\t\t\tconst widgetToolbarRepository = editor.plugins.get( WidgetToolbarRepository );\n *\n *\t\t\t\twidgetToolbarRepository.register( 'image', {\n *\t\t\t\t\titems: editor.config.get( 'image.toolbar' ),\n *\t\t\t\t\tgetRelatedElement: getSelectedImageWidget\n *\t\t\t\t} );\n *\t\t\t}\n *\t\t}\n */\nvar WidgetToolbarRepository = /*#__PURE__*/\nfunction (_Plugin) {\n _inherits(WidgetToolbarRepository, _Plugin);\n function WidgetToolbarRepository() {\n _classCallCheck(this, WidgetToolbarRepository);\n return _possibleConstructorReturn(this, _getPrototypeOf(WidgetToolbarRepository).apply(this, arguments));\n }\n _createClass(WidgetToolbarRepository, [\n {\n key: 'init',\n /**\n * @inheritDoc\n */\n value: function init() {\n var _this = this;\n var editor = this.editor;\n // Disables the default balloon toolbar for all widgets.\n if (editor.plugins.has('BalloonToolbar')) {\n var balloonToolbar = editor.plugins.get('BalloonToolbar');\n this.listenTo(balloonToolbar, 'show', function (evt) {\n if (isWidgetSelected(editor.editing.view.document.selection)) {\n evt.stop();\n }\n }, { priority: 'high' });\n }\n /**\n * A map of toolbar definitions.\n *\n * @protected\n * @member {Map.} #_toolbarDefinitions\n */\n this._toolbarDefinitions = new Map();\n /**\n * @private\n */\n this._balloon = this.editor.plugins.get('ContextualBalloon');\n this.listenTo(editor.ui, 'update', function () {\n _this._updateToolbarsVisibility();\n });\n // UI#update is not fired after focus is back in editor, we need to check if balloon panel should be visible.\n this.listenTo(editor.ui.focusTracker, 'change:isFocused', function () {\n _this._updateToolbarsVisibility();\n }, { priority: 'low' });\n }\n },\n {\n key: 'destroy',\n value: function destroy() {\n _get(_getPrototypeOf(WidgetToolbarRepository.prototype), 'destroy', this).call(this);\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n try {\n for (var _iterator = this._toolbarDefinitions.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var toolbarConfig = _step.value;\n toolbarConfig.view.destroy();\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n } /**\n * Registers toolbar in the WidgetToolbarRepository. It renders it in the `ContextualBalloon` based on the value of the invoked\n * `getRelatedElement` function. Toolbar items are gathered from `items` array.\n * The balloon's CSS class is by default `ck-toolbar-container` and may be override with the `balloonClassName` option.\n *\n * Note: This method should be called in the {@link module:core/plugin~PluginInterface#afterInit `Plugin#afterInit()`}\n * callback (or later) to make sure that the given toolbar items were already registered by other plugins.\n *\n * @param {String} toolbarId An id for the toolbar. Used to\n * @param {Object} options\n * @param {String} [options.ariaLabel] Label used by assistive technologies to describe this toolbar element.\n * @param {Array.} options.items Array of toolbar items.\n * @param {Function} options.getRelatedElement Callback which returns an element the toolbar should be attached to.\n * @param {String} [options.balloonClassName='ck-toolbar-container'] CSS class for the widget balloon.\n */\n },\n {\n key: 'register',\n value: function register(toolbarId, _ref) {\n var ariaLabel = _ref.ariaLabel, items = _ref.items, getRelatedElement = _ref.getRelatedElement, _ref$balloonClassName = _ref.balloonClassName, balloonClassName = _ref$balloonClassName === void 0 ? 'ck-toolbar-container' : _ref$balloonClassName;\n var editor = this.editor;\n var t = editor.t;\n var toolbarView = new ToolbarView(editor.locale);\n toolbarView.ariaLabel = ariaLabel || t('Widget toolbar');\n if (this._toolbarDefinitions.has(toolbarId)) {\n /**\n * Toolbar with the given id was already added.\n *\n * @error widget-toolbar-duplicated\n * @param toolbarId Toolbar id.\n */\n throw new CKEditorError('widget-toolbar-duplicated: Toolbar with the given id was already added.', this, { toolbarId: toolbarId });\n }\n toolbarView.fillFromConfig(items, editor.ui.componentFactory);\n this._toolbarDefinitions.set(toolbarId, {\n view: toolbarView,\n getRelatedElement: getRelatedElement,\n balloonClassName: balloonClassName\n });\n } /**\n * Iterates over stored toolbars and makes them visible or hidden.\n *\n * @private\n */\n },\n {\n key: '_updateToolbarsVisibility',\n value: function _updateToolbarsVisibility() {\n var maxRelatedElementDepth = 0;\n var deepestRelatedElement = null;\n var deepestToolbarDefinition = null;\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n try {\n for (var _iterator2 = this._toolbarDefinitions.values()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var definition = _step2.value;\n var relatedElement = definition.getRelatedElement(this.editor.editing.view.document.selection);\n if (!this.editor.ui.focusTracker.isFocused) {\n if (this._isToolbarVisible(definition)) {\n this._hideToolbar(definition);\n }\n } else if (!relatedElement) {\n if (this._isToolbarInBalloon(definition)) {\n this._hideToolbar(definition);\n }\n } else {\n var relatedElementDepth = relatedElement.getAncestors().length;\n // Many toolbars can express willingness to be displayed but they do not know about\n // each other. Figure out which toolbar is deepest in the view tree to decide which\n // should be displayed. For instance, if a selected image is inside a table cell, display\n // the ImageToolbar rather than the TableToolbar (#60).\n if (relatedElementDepth > maxRelatedElementDepth) {\n maxRelatedElementDepth = relatedElementDepth;\n deepestRelatedElement = relatedElement;\n deepestToolbarDefinition = definition;\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n if (deepestToolbarDefinition) {\n this._showToolbar(deepestToolbarDefinition, deepestRelatedElement);\n }\n } /**\n * Hides the given toolbar.\n *\n * @private\n * @param {module:widget/widgettoolbarrepository~WidgetRepositoryToolbarDefinition} toolbarDefinition\n */\n },\n {\n key: '_hideToolbar',\n value: function _hideToolbar(toolbarDefinition) {\n this._balloon.remove(toolbarDefinition.view);\n this.stopListening(this._balloon, 'change:visibleView');\n } /**\n * Shows up the toolbar if the toolbar is not visible.\n * Otherwise, repositions the toolbar's balloon when toolbar's view is the most top view in balloon stack.\n *\n * It might happen here that the toolbar's view is under another view. Then do nothing as the other toolbar view\n * should be still visible after the {@link module:core/editor/editorui~EditorUI#event:update}.\n *\n * @private\n * @param {module:widget/widgettoolbarrepository~WidgetRepositoryToolbarDefinition} toolbarDefinition\n * @param {module:engine/view/element~Element} relatedElement\n */\n },\n {\n key: '_showToolbar',\n value: function _showToolbar(toolbarDefinition, relatedElement) {\n var _this2 = this;\n if (this._isToolbarVisible(toolbarDefinition)) {\n repositionContextualBalloon(this.editor, relatedElement);\n } else if (!this._isToolbarInBalloon(toolbarDefinition)) {\n this._balloon.add({\n view: toolbarDefinition.view,\n position: getBalloonPositionData(this.editor, relatedElement),\n balloonClassName: toolbarDefinition.balloonClassName\n });\n // Update toolbar position each time stack with toolbar view is switched to visible.\n // This is in a case target element has changed when toolbar was in invisible stack\n // e.g. target image was wrapped by a block quote.\n // See https://github.com/ckeditor/ckeditor5-widget/issues/92.\n this.listenTo(this._balloon, 'change:visibleView', function () {\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n try {\n for (var _iterator3 = _this2._toolbarDefinitions.values()[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var definition = _step3.value;\n if (_this2._isToolbarVisible(definition)) {\n var _relatedElement = definition.getRelatedElement(_this2.editor.editing.view.document.selection);\n repositionContextualBalloon(_this2.editor, _relatedElement);\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return != null) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n });\n }\n } /**\n * @private\n * @param {Object} toolbar\n * @returns {Boolean}\n */\n },\n {\n key: '_isToolbarVisible',\n value: function _isToolbarVisible(toolbar) {\n return this._balloon.visibleView === toolbar.view;\n } /**\n * @private\n * @param {Object} toolbar\n * @returns {Boolean}\n */\n },\n {\n key: '_isToolbarInBalloon',\n value: function _isToolbarInBalloon(toolbar) {\n return this._balloon.hasView(toolbar.view);\n }\n }\n ], [\n {\n key: 'requires',\n /**\n * @inheritDoc\n */\n get: function get() {\n return [ContextualBalloon];\n } /**\n * @inheritDoc\n */\n },\n {\n key: 'pluginName',\n get: function get() {\n return 'WidgetToolbarRepository';\n }\n }\n ]);\n return WidgetToolbarRepository;\n}(Plugin);\nexport {\n WidgetToolbarRepository as default\n};\nfunction repositionContextualBalloon(editor, relatedElement) {\n var balloon = editor.plugins.get('ContextualBalloon');\n var position = getBalloonPositionData(editor, relatedElement);\n balloon.updatePosition(position);\n}\nfunction getBalloonPositionData(editor, relatedElement) {\n var editingView = editor.editing.view;\n var defaultPositions = BalloonPanelView.defaultPositions;\n return {\n target: editingView.domConverter.mapViewToDom(relatedElement),\n positions: [\n defaultPositions.northArrowSouth,\n defaultPositions.northArrowSouthWest,\n defaultPositions.northArrowSouthEast,\n defaultPositions.southArrowNorth,\n defaultPositions.southArrowNorthWest,\n defaultPositions.southArrowNorthEast\n ]\n };\n}\nfunction isWidgetSelected(selection) {\n var viewElement = selection.getSelectedElement();\n return !!(viewElement && isWidget(viewElement));\n} /**\n * The toolbar definition object used by the toolbar repository to manage toolbars.\n * It contains information necessary to display the toolbar in the\n * {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon contextual balloon} and\n * update it during its life (display) cycle.\n *\n * @typedef {Object} module:widget/widgettoolbarrepository~WidgetRepositoryToolbarDefinition\n *\n * @property {module:ui/view~View} view The UI view of the toolbar.\n * @property {Function} getRelatedElement A function that returns an engine {@link module:engine/view/view~View}\n * element the toolbar is to be attached to. For instance, an image widget or a table widget (or `null` when\n * there is no such element). The function accepts an instance of {@link module:engine/view/selection~Selection}.\n * @property {String} balloonClassName CSS class for the widget balloon when a toolbar is displayed.\n */","import _classCallCheck from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _possibleConstructorReturn from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nimport _inherits from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagetoolbar\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport { getSelectedImageWidget } from './image/utils';\nimport WidgetToolbarRepository from '@ckeditor/ckeditor5-widget/src/widgettoolbarrepository';\n/**\n * The image toolbar plugin. It creates and manages the image toolbar (the toolbar displayed when an image is selected).\n *\n * For a detailed overview, check the {@glink features/image#image-contextual-toolbar image contextual toolbar} documentation.\n *\n * Instances of toolbar components (e.g. buttons) are created using the editor's\n * {@link module:ui/componentfactory~ComponentFactory component factory}\n * based on the {@link module:image/image~ImageConfig#toolbar `image.toolbar` configuration option}.\n *\n * The toolbar uses the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon}.\n *\n * @extends module:core/plugin~Plugin\n */\nvar ImageToolbar = /*#__PURE__*/\nfunction (_Plugin) {\n _inherits(ImageToolbar, _Plugin);\n function ImageToolbar() {\n _classCallCheck(this, ImageToolbar);\n return _possibleConstructorReturn(this, _getPrototypeOf(ImageToolbar).apply(this, arguments));\n }\n _createClass(ImageToolbar, [{\n key: 'afterInit',\n /**\n * @inheritDoc\n */\n value: function afterInit() {\n var editor = this.editor;\n var t = editor.t;\n var widgetToolbarRepository = editor.plugins.get(WidgetToolbarRepository);\n widgetToolbarRepository.register('image', {\n ariaLabel: t('Image toolbar'),\n items: editor.config.get('image.toolbar') || [],\n getRelatedElement: getSelectedImageWidget\n });\n }\n }], [\n {\n key: 'requires',\n /**\n * @inheritDoc\n */\n get: function get() {\n return [WidgetToolbarRepository];\n } /**\n * @inheritDoc\n */\n },\n {\n key: 'pluginName',\n get: function get() {\n return 'ImageToolbar';\n }\n }\n ]);\n return ImageToolbar;\n}(Plugin);\n/**\n * Items to be placed in the image toolbar.\n * This option is used by the {@link module:image/imagetoolbar~ImageToolbar} feature.\n *\n * Assuming that you use the following features:\n *\n * * {@link module:image/imagestyle~ImageStyle} (with a default configuration),\n * * {@link module:image/imagetextalternative~ImageTextAlternative},\n *\n * three toolbar items will be available in {@link module:ui/componentfactory~ComponentFactory}:\n * `'imageStyle:full'`, `'imageStyle:side'`, and `'imageTextAlternative'` so you can configure the toolbar like this:\n *\n *\t\tconst imageConfig = {\n *\t\t\ttoolbar: [ 'imageStyle:full', 'imageStyle:side', '|', 'imageTextAlternative' ]\n *\t\t};\n *\n * Of course, the same buttons can also be used in the\n * {@link module:core/editor/editorconfig~EditorConfig#toolbar main editor toolbar}.\n *\n * Read more about configuring toolbar in {@link module:core/editor/editorconfig~EditorConfig#toolbar}.\n *\n * @member {Array.} module:image/image~ImageConfig#toolbar\n */\nexport {\n ImageToolbar as default\n};","import _classCallCheck from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _possibleConstructorReturn from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\nimport _assertThisInitialized from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/assertThisInitialized\";\nimport _inherits from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module upload/ui/filedialogbuttonview\n */\nimport ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';\nimport View from '@ckeditor/ckeditor5-ui/src/view';\n/**\n * The file dialog button view.\n *\n * This component provides a button that opens the native file selection dialog.\n * It can be used to implement the UI of a file upload feature.\n *\n *\t\tconst view = new FileDialogButtonView( locale );\n *\n *\t\tview.set( {\n *\t\t\tacceptedType: 'image/*',\n *\t\t\tallowMultipleFiles: true\n *\t\t} );\n *\n *\t\tview.buttonView.set( {\n *\t\t\tlabel: t( 'Insert image' ),\n *\t\t\ticon: imageIcon,\n *\t\t\ttooltip: true\n *\t\t} );\n *\n *\t\tview.on( 'done', ( evt, files ) => {\n *\t\t\tfor ( const file of Array.from( files ) ) {\n *\t\t\t\tconsole.log( 'Selected file', file );\n *\t\t\t}\n *\t\t} );\n *\n * @extends module:ui/view~View\n */\n\nvar FileDialogButtonView =\n/*#__PURE__*/\nfunction (_View) {\n _inherits(FileDialogButtonView, _View);\n\n /**\n * @inheritDoc\n */\n function FileDialogButtonView(locale) {\n var _this;\n\n _classCallCheck(this, FileDialogButtonView);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(FileDialogButtonView).call(this, locale));\n /**\n * The button view of the component.\n *\n * @member {module:ui/button/buttonview~ButtonView}\n */\n\n _this.buttonView = new ButtonView(locale);\n /**\n * A hidden `` view used to execute file dialog.\n *\n * @protected\n * @member {module:upload/ui/filedialogbuttonview~FileInputView}\n */\n\n _this._fileInputView = new FileInputView(locale);\n /**\n * Accepted file types. Can be provided in form of file extensions, media type or one of:\n * * `audio/*`,\n * * `video/*`,\n * * `image/*`.\n *\n * @observable\n * @member {String} #acceptedType\n */\n\n _this._fileInputView.bind('acceptedType').to(_assertThisInitialized(_this));\n /**\n * Indicates if multiple files can be selected. Defaults to `true`.\n *\n * @observable\n * @member {Boolean} #allowMultipleFiles\n */\n\n\n _this._fileInputView.bind('allowMultipleFiles').to(_assertThisInitialized(_this));\n /**\n * Fired when file dialog is closed with file selected.\n *\n *\t\tview.on( 'done', ( evt, files ) => {\n *\t\t\tfor ( const file of files ) {\n *\t\t\t\tconsole.log( 'Selected file', file );\n *\t\t\t}\n *\t\t}\n *\n * @event done\n * @param {Array.} files Array of selected files.\n */\n\n\n _this._fileInputView.delegate('done').to(_assertThisInitialized(_this));\n\n _this.setTemplate({\n tag: 'span',\n attributes: {\n class: 'ck-file-dialog-button'\n },\n children: [_this.buttonView, _this._fileInputView]\n });\n\n _this.buttonView.on('execute', function () {\n _this._fileInputView.open();\n });\n\n return _this;\n }\n /**\n * Focuses the {@link #buttonView}.\n */\n\n\n _createClass(FileDialogButtonView, [{\n key: \"focus\",\n value: function focus() {\n this.buttonView.focus();\n }\n }]);\n\n return FileDialogButtonView;\n}(View);\n/**\n * The hidden file input view class.\n *\n * @private\n * @extends module:ui/view~View\n */\n\n\nexport { FileDialogButtonView as default };\n\nvar FileInputView =\n/*#__PURE__*/\nfunction (_View2) {\n _inherits(FileInputView, _View2);\n\n /**\n * @inheritDoc\n */\n function FileInputView(locale) {\n var _this2;\n\n _classCallCheck(this, FileInputView);\n\n _this2 = _possibleConstructorReturn(this, _getPrototypeOf(FileInputView).call(this, locale));\n /**\n * Accepted file types. Can be provided in form of file extensions, media type or one of:\n * * `audio/*`,\n * * `video/*`,\n * * `image/*`.\n *\n * @observable\n * @member {String} #acceptedType\n */\n\n _this2.set('acceptedType');\n /**\n * Indicates if multiple files can be selected. Defaults to `false`.\n *\n * @observable\n * @member {Boolean} #allowMultipleFiles\n */\n\n\n _this2.set('allowMultipleFiles', false);\n\n var bind = _this2.bindTemplate;\n\n _this2.setTemplate({\n tag: 'input',\n attributes: {\n class: ['ck-hidden'],\n type: 'file',\n tabindex: '-1',\n accept: bind.to('acceptedType'),\n multiple: bind.to('allowMultipleFiles')\n },\n on: {\n // Removing from code coverage since we cannot programmatically set input element files.\n change: bind.to(\n /* istanbul ignore next */\n function () {\n if (_this2.element && _this2.element.files && _this2.element.files.length) {\n _this2.fire('done', _this2.element.files);\n }\n\n _this2.element.value = '';\n })\n }\n });\n\n return _this2;\n }\n /**\n * Opens file dialog.\n */\n\n\n _createClass(FileInputView, [{\n key: \"open\",\n value: function open() {\n this.element.click();\n }\n }]);\n\n return FileInputView;\n}(View);","export default \"\"","import \"core-js/modules/es6.regexp.match\";\nimport \"core-js/modules/es6.regexp.constructor\";\nimport \"core-js/modules/es6.regexp.replace\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imageupload/utils\n */\n\n/* global fetch, File */\n\n/**\n * Creates a regular expression used to test for image files.\n *\n *\t\tconst imageType = createImageTypeRegExp( [ 'png', 'jpeg', 'svg+xml', 'vnd.microsoft.icon' ] );\n *\n *\t\tconsole.log( 'is supported image', imageType.test( file.type ) );\n *\n * @param {Array.} types\n * @returns {RegExp}\n */\nexport function createImageTypeRegExp(types) {\n // Sanitize the MIME type name which may include: \"+\", \"-\" or \".\".\n var regExpSafeNames = types.map(function (type) {\n return type.replace('+', '\\\\+');\n });\n return new RegExp(\"^image\\\\/(\".concat(regExpSafeNames.join('|'), \")$\"));\n}\n/**\n * Creates a promise that fetches the image local source (Base64 or blob) and resolves with a `File` object.\n *\n * @param {module:engine/view/element~Element} image Image whose source to fetch.\n * @returns {Promise.} A promise which resolves when an image source is fetched and converted to a `File` instance.\n * It resolves with a `File` object. If there were any errors during file processing, the promise will be rejected.\n */\n\nexport function fetchLocalImage(image) {\n return new Promise(function (resolve, reject) {\n var imageSrc = image.getAttribute('src'); // Fetch works asynchronously and so does not block browser UI when processing data.\n\n fetch(imageSrc).then(function (resource) {\n return resource.blob();\n }).then(function (blob) {\n var mimeType = getImageMimeType(blob, imageSrc);\n var ext = mimeType.replace('image/', '');\n var filename = \"image.\".concat(ext);\n var file = createFileFromBlob(blob, filename, mimeType);\n file ? resolve(file) : reject();\n }).catch(reject);\n });\n}\n/**\n * Checks whether a given node is an image element with a local source (Base64 or blob).\n *\n * @param {module:engine/view/node~Node} node The node to check.\n * @returns {Boolean}\n */\n\nexport function isLocalImage(node) {\n if (!node.is('element', 'img') || !node.getAttribute('src')) {\n return false;\n }\n\n return node.getAttribute('src').match(/^data:image\\/\\w+;base64,/g) || node.getAttribute('src').match(/^blob:/g);\n} // Extracts an image type based on its blob representation or its source.\n//\n// @param {String} src Image `src` attribute value.\n// @param {Blob} blob Image blob representation.\n// @returns {String}\n\nfunction getImageMimeType(blob, src) {\n if (blob.type) {\n return blob.type;\n } else if (src.match(/data:(image\\/\\w+);base64/)) {\n return src.match(/data:(image\\/\\w+);base64/)[1].toLowerCase();\n } else {\n // Fallback to 'jpeg' as common extension.\n return 'image/jpeg';\n }\n} // Creates a `File` instance from the given `Blob` instance using the specified file name.\n//\n// @param {Blob} blob The `Blob` instance from which the file will be created.\n// @param {String} filename The file name used during the file creation.\n// @param {String} mimeType The file MIME type.\n// @returns {File|null} The `File` instance created from the given blob or `null` if `File API` is not available.\n\n\nfunction createFileFromBlob(blob, filename, mimeType) {\n try {\n return new File([blob], filename, {\n type: mimeType\n });\n } catch (err) {\n // Edge does not support `File` constructor ATM, see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/9551546/.\n // However, the `File` function is present (so cannot be checked with `!window.File` or `typeof File === 'function'`), but\n // calling it with `new File( ... )` throws an error. This try-catch prevents that. Also when the function will\n // be implemented correctly in Edge the code will start working without any changes (see #247).\n return null;\n }\n}","import 'core-js/modules/es6.string.iterator';\nimport 'core-js/modules/es6.array.from';\nimport _classCallCheck from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _possibleConstructorReturn from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nimport _inherits from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageupload/imageuploadui\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport FileDialogButtonView from '@ckeditor/ckeditor5-upload/src/ui/filedialogbuttonview';\nimport imageIcon from '@ckeditor/ckeditor5-core/theme/icons/image.svg';\nimport { createImageTypeRegExp } from './utils';\n/**\n * The image upload button plugin.\n *\n * For a detailed overview, check the {@glink features/image-upload/image-upload Image upload feature} documentation.\n *\n * Adds the `'imageUpload'` button to the {@link module:ui/componentfactory~ComponentFactory UI component factory}.\n *\n * @extends module:core/plugin~Plugin\n */\nvar ImageUploadUI = /*#__PURE__*/\nfunction (_Plugin) {\n _inherits(ImageUploadUI, _Plugin);\n function ImageUploadUI() {\n _classCallCheck(this, ImageUploadUI);\n return _possibleConstructorReturn(this, _getPrototypeOf(ImageUploadUI).apply(this, arguments));\n }\n _createClass(ImageUploadUI, [{\n key: 'init',\n /**\n * @inheritDoc\n */\n value: function init() {\n var editor = this.editor;\n var t = editor.t;\n // Setup `imageUpload` button.\n editor.ui.componentFactory.add('imageUpload', function (locale) {\n var view = new FileDialogButtonView(locale);\n var command = editor.commands.get('imageUpload');\n var imageTypes = editor.config.get('image.upload.types');\n var imageTypesRegExp = createImageTypeRegExp(imageTypes);\n view.set({\n acceptedType: imageTypes.map(function (type) {\n return 'image/'.concat(type);\n }).join(','),\n allowMultipleFiles: true\n });\n view.buttonView.set({\n label: t('Insert image'),\n icon: imageIcon,\n tooltip: true\n });\n view.buttonView.bind('isEnabled').to(command);\n view.on('done', function (evt, files) {\n var imagesToUpload = Array.from(files).filter(function (file) {\n return imageTypesRegExp.test(file.type);\n });\n if (imagesToUpload.length) {\n editor.execute('imageUpload', { file: imagesToUpload });\n }\n });\n return view;\n });\n }\n }]);\n return ImageUploadUI;\n}(Plugin);\nexport {\n ImageUploadUI as default\n};","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport _classCallCheck from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _possibleConstructorReturn from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\nimport _inherits from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module core/pendingactions\n */\nimport Plugin from \"./plugin\";\nimport ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';\nimport Collection from '@ckeditor/ckeditor5-utils/src/collection';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * The list of pending editor actions.\n *\n * This plugin should be used to synchronise plugins that execute long-lasting actions\n * (e.g. file upload) with the editor integration. It gives the developer who integrates the editor\n * an easy way to check if there are any actions pending whenever such information is needed.\n * All plugins that register a pending action also provide a message about the action that is ongoing\n * which can be displayed to the user. This lets them decide if they want to interrupt the action or wait.\n *\n * Adding and updating a pending action:\n *\n * \t\tconst pendingActions = editor.plugins.get( 'PendingActions' );\n * \t\tconst action = pendingActions.add( 'Upload in progress: 0%.' );\n *\n *\t\t// You can update the message:\n * \t\taction.message = 'Upload in progress: 10%.';\n *\n * Removing a pending action:\n *\n * \t\tconst pendingActions = editor.plugins.get( 'PendingActions' );\n * \t\tconst action = pendingActions.add( 'Unsaved changes.' );\n *\n * \t\tpendingActions.remove( action );\n *\n * Getting pending actions:\n *\n * \t\tconst pendingActions = editor.plugins.get( 'PendingActions' );\n *\n * \t\tconst action1 = pendingActions.add( 'Action 1' );\n * \t\tconst action2 = pendingActions.add( 'Action 2' );\n *\n * \t\tpendingActions.first; // Returns action1\n * \t\tArray.from( pendingActions ); // Returns [ action1, action2 ]\n *\n * This plugin is used by features like {@link module:upload/filerepository~FileRepository} to register their ongoing actions\n * and by features like {@link module:autosave/autosave~Autosave} to detect whether there are any ongoing actions.\n * Read more about saving the data in the {@glink builds/guides/integration/saving-data Saving and getting data} guide.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar PendingActions =\n/*#__PURE__*/\nfunction (_Plugin) {\n _inherits(PendingActions, _Plugin);\n\n function PendingActions() {\n _classCallCheck(this, PendingActions);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(PendingActions).apply(this, arguments));\n }\n\n _createClass(PendingActions, [{\n key: \"init\",\n\n /**\n * @inheritDoc\n */\n value: function init() {\n /**\n * Defines whether there is any registered pending action.\n *\n * @readonly\n * @observable\n * @member {Boolean} #hasAny\n */\n this.set('hasAny', false);\n /**\n * A list of pending actions.\n *\n * @private\n * @type {module:utils/collection~Collection}\n */\n\n this._actions = new Collection({\n idProperty: '_id'\n });\n\n this._actions.delegate('add', 'remove').to(this);\n }\n /**\n * Adds an action to the list of pending actions.\n *\n * This method returns an action object with an observable message property.\n * The action object can be later used in the {@link #remove} method. It also allows you to change the message.\n *\n * @param {String} message The action message.\n * @returns {Object} An observable object that represents a pending action.\n */\n\n }, {\n key: \"add\",\n value: function add(message) {\n if (typeof message !== 'string') {\n /**\n * The message must be a string.\n *\n * @error pendingactions-add-invalid-message\n */\n throw new CKEditorError('pendingactions-add-invalid-message: The message must be a string.', this);\n }\n\n var action = Object.create(ObservableMixin);\n action.set('message', message);\n\n this._actions.add(action);\n\n this.hasAny = true;\n return action;\n }\n /**\n * Removes an action from the list of pending actions.\n *\n * @param {Object} action An action object.\n */\n\n }, {\n key: \"remove\",\n value: function remove(action) {\n this._actions.remove(action);\n\n this.hasAny = !!this._actions.length;\n }\n /**\n * Returns the first action from the list or null when list is empty\n *\n * returns {Object|null} The pending action object.\n */\n\n }, {\n key: Symbol.iterator,\n\n /**\n * Iterable interface.\n *\n * @returns {Iterable.<*>}\n */\n value: function value() {\n return this._actions[Symbol.iterator]();\n }\n /**\n * Fired when an action is added to the list.\n *\n * @event add\n * @param {Object} action The added action.\n */\n\n /**\n * Fired when an action is removed from the list.\n *\n * @event remove\n * @param {Object} action The removed action.\n */\n\n }, {\n key: \"first\",\n get: function get() {\n return this._actions.get(0);\n }\n }], [{\n key: \"pluginName\",\n\n /**\n * @inheritDoc\n */\n get: function get() {\n return 'PendingActions';\n }\n }]);\n\n return PendingActions;\n}(Plugin);\n\nexport { PendingActions as default };","import _classCallCheck from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module upload/filereader\n */\n\n/* globals window */\nimport ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\n/**\n * Wrapper over the native `FileReader`.\n */\n\nvar FileReader =\n/*#__PURE__*/\nfunction () {\n /**\n * Creates an instance of the FileReader.\n */\n function FileReader() {\n var _this = this;\n\n _classCallCheck(this, FileReader);\n\n var reader = new window.FileReader();\n /**\n * Instance of native FileReader.\n *\n * @private\n * @member {FileReader} #_reader\n */\n\n this._reader = reader;\n this._data = undefined;\n /**\n * Number of bytes loaded.\n *\n * @readonly\n * @observable\n * @member {Number} #loaded\n */\n\n this.set('loaded', 0);\n\n reader.onprogress = function (evt) {\n _this.loaded = evt.loaded;\n };\n }\n /**\n * Returns error that occurred during file reading.\n *\n * @returns {Error}\n */\n\n\n _createClass(FileReader, [{\n key: \"read\",\n\n /**\n * Reads the provided file.\n *\n * @param {File} file Native File object.\n * @returns {Promise.} Returns a promise that will be resolved with file's content.\n * The promise will be rejected in case of an error or when the reading process is aborted.\n */\n value: function read(file) {\n var _this2 = this;\n\n var reader = this._reader;\n this.total = file.size;\n return new Promise(function (resolve, reject) {\n reader.onload = function () {\n var result = reader.result;\n _this2._data = result;\n resolve(result);\n };\n\n reader.onerror = function () {\n reject('error');\n };\n\n reader.onabort = function () {\n reject('aborted');\n };\n\n _this2._reader.readAsDataURL(file);\n });\n }\n /**\n * Aborts file reader.\n */\n\n }, {\n key: \"abort\",\n value: function abort() {\n this._reader.abort();\n }\n }, {\n key: \"error\",\n get: function get() {\n return this._reader.error;\n }\n /**\n * Holds the data of an already loaded file. The file must be first loaded\n * by using {@link module:upload/filereader~FileReader#read `read()`}.\n *\n * @type {File|undefined}\n */\n\n }, {\n key: \"data\",\n get: function get() {\n return this._data;\n }\n }]);\n\n return FileReader;\n}();\n\nexport { FileReader as default };\nmix(FileReader, ObservableMixin);","import 'core-js/modules/es7.symbol.async-iterator';\nimport 'core-js/modules/es6.symbol';\nimport 'core-js/modules/web.dom.iterable';\nimport 'core-js/modules/es6.string.iterator';\nimport 'core-js/modules/es6.map';\nimport _classCallCheck from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _possibleConstructorReturn from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nimport _inherits from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module upload/filerepository\n */\n/* globals console */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport PendingActions from '@ckeditor/ckeditor5-core/src/pendingactions';\nimport CKEditorError, { attachLinkToDocumentation } from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';\nimport Collection from '@ckeditor/ckeditor5-utils/src/collection';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport FileReader from './filereader.js';\nimport uid from '@ckeditor/ckeditor5-utils/src/uid.js';\n/**\n * File repository plugin. A central point for managing file upload.\n *\n * To use it, first you need an upload adapter. Upload adapter's job is to handle communication with the server\n * (sending the file and handling server's response). You can use one of the existing plugins introducing upload adapters\n * (e.g. {@link module:easy-image/cloudservicesuploadadapter~CloudServicesUploadAdapter} or\n * {@link module:adapter-ckfinder/uploadadapter~CKFinderUploadAdapter}) or write your own one – see\n * the {@glink framework/guides/deep-dive/upload-adapter \"Custom image upload adapter\" deep dive guide}.\n *\n * Then, you can use {@link module:upload/filerepository~FileRepository#createLoader `createLoader()`} and the returned\n * {@link module:upload/filerepository~FileLoader} instance to load and upload files.\n *\n * @extends module:core/plugin~Plugin\n */\nvar FileRepository = /*#__PURE__*/\nfunction (_Plugin) {\n _inherits(FileRepository, _Plugin);\n function FileRepository() {\n _classCallCheck(this, FileRepository);\n return _possibleConstructorReturn(this, _getPrototypeOf(FileRepository).apply(this, arguments));\n }\n _createClass(FileRepository, [\n {\n key: 'init',\n /**\n * @inheritDoc\n */\n value: function init() {\n var _this = this;\n /**\n * Collection of loaders associated with this repository.\n *\n * @member {module:utils/collection~Collection} #loaders\n */\n this.loaders = new Collection();\n // Keeps upload in a sync with pending actions.\n this.loaders.on('add', function () {\n return _this._updatePendingAction();\n });\n this.loaders.on('remove', function () {\n return _this._updatePendingAction();\n });\n /**\n * Loaders mappings used to retrieve loaders references.\n *\n * @private\n * @member {Map} #_loadersMap\n */\n this._loadersMap = new Map();\n /**\n * Reference to a pending action registered in a {@link module:core/pendingactions~PendingActions} plugin\n * while upload is in progress. When there is no upload then value is `null`.\n *\n * @private\n * @member {Object} #_pendingAction\n */\n this._pendingAction = null;\n /**\n * A factory function which should be defined before using `FileRepository`.\n *\n * It should return a new instance of {@link module:upload/filerepository~UploadAdapter} that will be used to upload files.\n * {@link module:upload/filerepository~FileLoader} instance associated with the adapter\n * will be passed to that function.\n *\n * For more information and example see {@link module:upload/filerepository~UploadAdapter}.\n *\n * @member {Function} #createUploadAdapter\n */\n /**\n * Number of bytes uploaded.\n *\n * @readonly\n * @observable\n * @member {Number} #uploaded\n */\n this.set('uploaded', 0);\n /**\n * Number of total bytes to upload.\n *\n * It might be different than the file size because of headers and additional data.\n * It contains `null` if value is not available yet, so it's better to use {@link #uploadedPercent} to monitor\n * the progress.\n *\n * @readonly\n * @observable\n * @member {Number|null} #uploadTotal\n */\n this.set('uploadTotal', null);\n /**\n * Upload progress in percents.\n *\n * @readonly\n * @observable\n * @member {Number} #uploadedPercent\n */\n this.bind('uploadedPercent').to(this, 'uploaded', this, 'uploadTotal', function (uploaded, total) {\n return total ? uploaded / total * 100 : 0;\n });\n } /**\n * Returns the loader associated with specified file or promise.\n *\n * To get loader by id use `fileRepository.loaders.get( id )`.\n *\n * @param {File|Promise.} fileOrPromise Native file or promise handle.\n * @returns {module:upload/filerepository~FileLoader|null}\n */\n },\n {\n key: 'getLoader',\n value: function getLoader(fileOrPromise) {\n return this._loadersMap.get(fileOrPromise) || null;\n } /**\n * Creates a loader instance for the given file.\n *\n * Requires {@link #createUploadAdapter} factory to be defined.\n *\n * @param {File|Promise.} fileOrPromise Native File object or native Promise object which resolves to a File.\n * @returns {module:upload/filerepository~FileLoader|null}\n */\n },\n {\n key: 'createLoader',\n value: function createLoader(fileOrPromise) {\n var _this2 = this;\n if (!this.createUploadAdapter) {\n /**\n * You need to enable an upload adapter in order to be able to upload files.\n *\n * This warning shows up when {@link module:upload/filerepository~FileRepository} is being used\n * without {@link #createUploadAdapter definining an upload adapter}.\n *\n * **If you see this warning when using one of the {@glink builds/index CKEditor 5 Builds}**\n * it means that you did not configure any of the upload adapters available by default in those builds.\n *\n * See the {@glink features/image-upload/image-upload comprehensive \"Image upload overview\"} to learn which upload\n * adapters are available in the builds and how to configure them.\n *\n * **If you see this warning when using a custom build** there is a chance that you enabled\n * a feature like {@link module:image/imageupload~ImageUpload},\n * or {@link module:image/imageupload/imageuploadui~ImageUploadUI} but you did not enable any upload adapter.\n * You can choose one of the existing upload adapters listed in the\n * {@glink features/image-upload/image-upload \"Image upload overview\"}.\n *\n * You can also implement your {@glink framework/guides/deep-dive/upload-adapter own image upload adapter}.\n *\n * @error filerepository-no-upload-adapter\n */\n console.warn(attachLinkToDocumentation('filerepository-no-upload-adapter: Upload adapter is not defined.'));\n return null;\n }\n var loader = new FileLoader(Promise.resolve(fileOrPromise), this.createUploadAdapter);\n this.loaders.add(loader);\n this._loadersMap.set(fileOrPromise, loader);\n // Store also file => loader mapping so loader can be retrieved by file instance returned upon Promise resolution.\n if (fileOrPromise instanceof Promise) {\n loader.file.then(function (file) {\n _this2._loadersMap.set(file, loader);\n }) // Every then() must have a catch().\n // File loader state (and rejections) are handled in read() and upload().\n // Also, see the \"does not swallow the file promise rejection\" test.\n.catch(function () {\n });\n }\n loader.on('change:uploaded', function () {\n var aggregatedUploaded = 0;\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n try {\n for (var _iterator = _this2.loaders[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _loader = _step.value;\n aggregatedUploaded += _loader.uploaded;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n _this2.uploaded = aggregatedUploaded;\n });\n loader.on('change:uploadTotal', function () {\n var aggregatedTotal = 0;\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n try {\n for (var _iterator2 = _this2.loaders[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _loader2 = _step2.value;\n if (_loader2.uploadTotal) {\n aggregatedTotal += _loader2.uploadTotal;\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n _this2.uploadTotal = aggregatedTotal;\n });\n return loader;\n } /**\n * Destroys the given loader.\n *\n * @param {File|Promise|module:upload/filerepository~FileLoader} fileOrPromiseOrLoader File or Promise associated\n * with that loader or loader itself.\n */\n },\n {\n key: 'destroyLoader',\n value: function destroyLoader(fileOrPromiseOrLoader) {\n var _this3 = this;\n var loader = fileOrPromiseOrLoader instanceof FileLoader ? fileOrPromiseOrLoader : this.getLoader(fileOrPromiseOrLoader);\n loader._destroy();\n this.loaders.remove(loader);\n this._loadersMap.forEach(function (value, key) {\n if (value === loader) {\n _this3._loadersMap.delete(key);\n }\n });\n } /**\n * Registers or deregisters pending action bound with upload progress.\n *\n * @private\n */\n },\n {\n key: '_updatePendingAction',\n value: function _updatePendingAction() {\n var pendingActions = this.editor.plugins.get(PendingActions);\n if (this.loaders.length) {\n if (!this._pendingAction) {\n var t = this.editor.t;\n var getMessage = function getMessage(value) {\n return ''.concat(t('Upload in progress'), ' ').concat(parseInt(value), '%.');\n };\n this._pendingAction = pendingActions.add(getMessage(this.uploadedPercent));\n this._pendingAction.bind('message').to(this, 'uploadedPercent', getMessage);\n }\n } else {\n pendingActions.remove(this._pendingAction);\n this._pendingAction = null;\n }\n }\n }\n ], [\n {\n key: 'pluginName',\n /**\n * @inheritDoc\n */\n get: function get() {\n return 'FileRepository';\n } /**\n * @inheritDoc\n */\n },\n {\n key: 'requires',\n get: function get() {\n return [PendingActions];\n }\n }\n ]);\n return FileRepository;\n}(Plugin);\nexport {\n FileRepository as default\n};\nmix(FileRepository, ObservableMixin);\n/**\n * File loader class.\n *\n * It is used to control the process of reading the file and uploading it using the specified upload adapter.\n */\nvar FileLoader = /*#__PURE__*/\nfunction () {\n /**\n * Creates a new instance of `FileLoader`.\n *\n * @param {Promise.} filePromise A promise which resolves to a file instance.\n * @param {Function} uploadAdapterCreator The function which returns {@link module:upload/filerepository~UploadAdapter} instance.\n */\n function FileLoader(filePromise, uploadAdapterCreator) {\n _classCallCheck(this, FileLoader);\n /**\n * Unique id of FileLoader instance.\n *\n * @readonly\n * @member {Number}\n */\n this.id = uid();\n /**\n * Additional wrapper over the initial file promise passed to this loader.\n *\n * @protected\n * @member {module:upload/filerepository~FilePromiseWrapper}\n */\n this._filePromiseWrapper = this._createFilePromiseWrapper(filePromise);\n /**\n * Adapter instance associated with this file loader.\n *\n * @private\n * @member {module:upload/filerepository~UploadAdapter}\n */\n this._adapter = uploadAdapterCreator(this);\n /**\n * FileReader used by FileLoader.\n *\n * @protected\n * @member {module:upload/filereader~FileReader}\n */\n this._reader = new FileReader();\n /**\n * Current status of FileLoader. It can be one of the following:\n *\n * * 'idle',\n * * 'reading',\n * * 'uploading',\n * * 'aborted',\n * * 'error'.\n *\n * When reading status can change in a following way:\n *\n * `idle` -> `reading` -> `idle`\n * `idle` -> `reading -> `aborted`\n * `idle` -> `reading -> `error`\n *\n * When uploading status can change in a following way:\n *\n * `idle` -> `uploading` -> `idle`\n * `idle` -> `uploading` -> `aborted`\n * `idle` -> `uploading` -> `error`\n *\n * @readonly\n * @observable\n * @member {String} #status\n */\n this.set('status', 'idle');\n /**\n * Number of bytes uploaded.\n *\n * @readonly\n * @observable\n * @member {Number} #uploaded\n */\n this.set('uploaded', 0);\n /**\n * Number of total bytes to upload.\n *\n * @readonly\n * @observable\n * @member {Number|null} #uploadTotal\n */\n this.set('uploadTotal', null);\n /**\n * Upload progress in percents.\n *\n * @readonly\n * @observable\n * @member {Number} #uploadedPercent\n */\n this.bind('uploadedPercent').to(this, 'uploaded', this, 'uploadTotal', function (uploaded, total) {\n return total ? uploaded / total * 100 : 0;\n });\n /**\n * Response of the upload.\n *\n * @readonly\n * @observable\n * @member {Object|null} #uploadResponse\n */\n this.set('uploadResponse', null);\n }\n /**\n * A `Promise` which resolves to a `File` instance associated with this file loader.\n *\n * @type {Promise.}\n */\n _createClass(FileLoader, [\n {\n key: 'read',\n /**\n * Reads file using {@link module:upload/filereader~FileReader}.\n *\n * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `filerepository-read-wrong-status` when status\n * is different than `idle`.\n *\n * Example usage:\n *\n *\tfileLoader.read()\n *\t\t.then( data => { ... } )\n *\t\t.catch( err => {\n *\t\t\tif ( err === 'aborted' ) {\n *\t\t\t\tconsole.log( 'Reading aborted.' );\n *\t\t\t} else {\n *\t\t\t\tconsole.log( 'Reading error.', err );\n *\t\t\t}\n *\t\t} );\n *\n * @returns {Promise.} Returns promise that will be resolved with read data. Promise will be rejected if error\n * occurs or if read process is aborted.\n */\n value: function read() {\n var _this4 = this;\n if (this.status != 'idle') {\n throw new CKEditorError('filerepository-read-wrong-status: You cannot call read if the status is different than idle.', this);\n }\n this.status = 'reading';\n return this.file.then(function (file) {\n return _this4._reader.read(file);\n }).then(function (data) {\n // Edge case: reader was aborted after file was read - double check for proper status.\n if (_this4.status !== 'reading') {\n throw _this4.status;\n }\n _this4.status = 'idle';\n return data;\n }).catch(function (err) {\n if (err === 'aborted') {\n _this4.status = 'aborted';\n throw 'aborted';\n }\n _this4.status = 'error';\n throw _this4._reader.error ? _this4._reader.error : err;\n });\n } /**\n * Reads file using the provided {@link module:upload/filerepository~UploadAdapter}.\n *\n * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `filerepository-upload-wrong-status` when status\n * is different than `idle`.\n * Example usage:\n *\n *\tfileLoader.upload()\n *\t\t.then( data => { ... } )\n *\t\t.catch( e => {\n *\t\t\tif ( e === 'aborted' ) {\n *\t\t\t\tconsole.log( 'Uploading aborted.' );\n *\t\t\t} else {\n *\t\t\t\tconsole.log( 'Uploading error.', e );\n *\t\t\t}\n *\t\t} );\n *\n * @returns {Promise.} Returns promise that will be resolved with response data. Promise will be rejected if error\n * occurs or if read process is aborted.\n */\n },\n {\n key: 'upload',\n value: function upload() {\n var _this5 = this;\n if (this.status != 'idle') {\n throw new CKEditorError('filerepository-upload-wrong-status: You cannot call upload if the status is different than idle.', this);\n }\n this.status = 'uploading';\n return this.file.then(function () {\n return _this5._adapter.upload();\n }).then(function (data) {\n _this5.uploadResponse = data;\n _this5.status = 'idle';\n return data;\n }).catch(function (err) {\n if (_this5.status === 'aborted') {\n throw 'aborted';\n }\n _this5.status = 'error';\n throw err;\n });\n } /**\n * Aborts loading process.\n */\n },\n {\n key: 'abort',\n value: function abort() {\n var status = this.status;\n this.status = 'aborted';\n if (!this._filePromiseWrapper.isFulfilled) {\n // Edge case: file loader is aborted before read() is called\n // so it might happen that no one handled the rejection of this promise.\n // See https://github.com/ckeditor/ckeditor5-upload/pull/100\n this._filePromiseWrapper.promise.catch(function () {\n });\n this._filePromiseWrapper.rejecter('aborted');\n } else if (status == 'reading') {\n this._reader.abort();\n } else if (status == 'uploading' && this._adapter.abort) {\n this._adapter.abort();\n }\n this._destroy();\n } /**\n * Performs cleanup.\n *\n * @private\n */\n },\n {\n key: '_destroy',\n value: function _destroy() {\n this._filePromiseWrapper = undefined;\n this._reader = undefined;\n this._adapter = undefined;\n this.uploadResponse = undefined;\n } /**\n * Wraps a given file promise into another promise giving additional\n * control (resolving, rejecting, checking if fulfilled) over it.\n *\n * @private\n * @param filePromise The initial file promise to be wrapped.\n * @returns {module:upload/filerepository~FilePromiseWrapper}\n */\n },\n {\n key: '_createFilePromiseWrapper',\n value: function _createFilePromiseWrapper(filePromise) {\n var wrapper = {};\n wrapper.promise = new Promise(function (resolve, reject) {\n wrapper.rejecter = reject;\n wrapper.isFulfilled = false;\n filePromise.then(function (file) {\n wrapper.isFulfilled = true;\n resolve(file);\n }).catch(function (err) {\n wrapper.isFulfilled = true;\n reject(err);\n });\n });\n return wrapper;\n }\n },\n {\n key: 'file',\n get: function get() {\n var _this6 = this;\n if (!this._filePromiseWrapper) {\n // Loader was destroyed, return promise which resolves to null.\n return Promise.resolve(null);\n } else {\n // The `this._filePromiseWrapper.promise` is chained and not simply returned to handle a case when:\n //\n //\t\t* The `loader.file.then( ... )` is called by external code (returned promise is pending).\n //\t\t* Then `loader._destroy()` is called (call is synchronous) which destroys the `loader`.\n //\t\t* Promise returned by the first `loader.file.then( ... )` call is resolved.\n //\n // Returning `this._filePromiseWrapper.promise` will still resolve to a `File` instance so there\n // is an additional check needed in the chain to see if `loader` was destroyed in the meantime.\n return this._filePromiseWrapper.promise.then(function (file) {\n return _this6._filePromiseWrapper ? file : null;\n });\n }\n } /**\n * Returns the file data. To read its data, you need for first load the file\n * by using the {@link module:upload/filerepository~FileLoader#read `read()`} method.\n *\n * @type {File|undefined}\n */\n },\n {\n key: 'data',\n get: function get() {\n return this._reader.data;\n }\n }\n ]);\n return FileLoader;\n}();\nmix(FileLoader, ObservableMixin); /**\n * Upload adapter interface used by the {@link module:upload/filerepository~FileRepository file repository}\n * to handle file upload. An upload adapter is a bridge between the editor and server that handles file uploads.\n * It should contain a logic necessary to initiate an upload process and monitor its progress.\n *\n * Learn how to develop your own upload adapter for CKEditor 5 in the\n * {@glink framework/guides/deep-dive/upload-adapter \"Custom upload adapter\" guide}.\n *\n * @interface UploadAdapter\n */\n /**\n * Executes the upload process.\n * This method should return a promise that will resolve when data will be uploaded to server. Promise should be\n * resolved with an object containing information about uploaded file:\n *\n *\t\t{\n *\t\t\tdefault: 'http://server/default-size.image.png'\n *\t\t}\n *\n * Additionally, other image sizes can be provided:\n *\n *\t\t{\n *\t\t\tdefault: 'http://server/default-size.image.png',\n *\t\t\t'160': 'http://server/size-160.image.png',\n *\t\t\t'500': 'http://server/size-500.image.png',\n *\t\t\t'1000': 'http://server/size-1000.image.png',\n *\t\t\t'1052': 'http://server/default-size.image.png'\n *\t\t}\n *\n * NOTE: When returning multiple images, the widest returned one should equal the default one. It is essential to\n * correctly set `width` attribute of the image. See this discussion:\n * https://github.com/ckeditor/ckeditor5-easy-image/issues/4 for more information.\n *\n * Take a look at {@link module:upload/filerepository~UploadAdapter example Adapter implementation} and\n * {@link module:upload/filerepository~FileRepository#createUploadAdapter createUploadAdapter method}.\n *\n * @method module:upload/filerepository~UploadAdapter#upload\n * @returns {Promise.} Promise that should be resolved when data is uploaded.\n */\n /**\n * Aborts the upload process.\n * After aborting it should reject promise returned from {@link #upload upload()}.\n *\n * Take a look at {@link module:upload/filerepository~UploadAdapter example Adapter implementation} and\n * {@link module:upload/filerepository~FileRepository#createUploadAdapter createUploadAdapter method}.\n *\n * @method module:upload/filerepository~UploadAdapter#abort\n */\n /**\n * Object returned by {@link module:upload/filerepository~FileLoader#_createFilePromiseWrapper} method\n * to add more control over the initial file promise passed to {@link module:upload/filerepository~FileLoader}.\n *\n * @protected\n * @typedef {Object} module:upload/filerepository~FilePromiseWrapper\n * @property {Promise.} promise Wrapper promise which can be chained for further processing.\n * @property {Function} rejecter Rejects the promise when called.\n * @property {Boolean} isFulfilled Whether original promise is already fulfilled.\n */","export default \"\"","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.function.name\";\nimport _classCallCheck from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _possibleConstructorReturn from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\nimport _inherits from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imageupload/imageuploadprogress\n */\n\n/* globals setTimeout */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport FileRepository from '@ckeditor/ckeditor5-upload/src/filerepository';\nimport uploadingPlaceholder from \"../../theme/icons/image_placeholder.svg\";\nimport env from '@ckeditor/ckeditor5-utils/src/env';\nimport \"../../theme/imageuploadprogress.css\";\nimport \"../../theme/imageuploadicon.css\";\nimport \"../../theme/imageuploadloader.css\";\n/**\n * The image upload progress plugin.\n * It shows a placeholder when the image is read from the disk and a progress bar while the image is uploading.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar ImageUploadProgress =\n/*#__PURE__*/\nfunction (_Plugin) {\n _inherits(ImageUploadProgress, _Plugin);\n\n /**\n * @inheritDoc\n */\n function ImageUploadProgress(editor) {\n var _this;\n\n _classCallCheck(this, ImageUploadProgress);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ImageUploadProgress).call(this, editor));\n /**\n * The image placeholder that is displayed before real image data can be accessed.\n *\n * @protected\n * @member {String} #placeholder\n */\n\n _this.placeholder = 'data:image/svg+xml;utf8,' + encodeURIComponent(uploadingPlaceholder);\n return _this;\n }\n /**\n * @inheritDoc\n */\n\n\n _createClass(ImageUploadProgress, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var editor = this.editor; // Upload status change - update image's view according to that status.\n\n editor.editing.downcastDispatcher.on('attribute:uploadStatus:image', function () {\n return _this2.uploadStatusChange.apply(_this2, arguments);\n });\n }\n /**\n * This method is called each time the image `uploadStatus` attribute is changed.\n *\n * @param {module:utils/eventinfo~EventInfo} evt An object containing information about the fired event.\n * @param {Object} data Additional information about the change.\n * @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi\n */\n\n }, {\n key: \"uploadStatusChange\",\n value: function uploadStatusChange(evt, data, conversionApi) {\n var editor = this.editor;\n var modelImage = data.item;\n var uploadId = modelImage.getAttribute('uploadId');\n\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n\n var fileRepository = editor.plugins.get(FileRepository);\n var status = uploadId ? data.attributeNewValue : null;\n var placeholder = this.placeholder;\n var viewFigure = editor.editing.mapper.toViewElement(modelImage);\n var viewWriter = conversionApi.writer;\n\n if (status == 'reading') {\n // Start \"appearing\" effect and show placeholder with infinite progress bar on the top\n // while image is read from disk.\n _startAppearEffect(viewFigure, viewWriter);\n\n _showPlaceholder(placeholder, viewFigure, viewWriter);\n\n return;\n } // Show progress bar on the top of the image when image is uploading.\n\n\n if (status == 'uploading') {\n var loader = fileRepository.loaders.get(uploadId); // Start appear effect if needed - see https://github.com/ckeditor/ckeditor5-image/issues/191.\n\n _startAppearEffect(viewFigure, viewWriter);\n\n if (!loader) {\n // There is no loader associated with uploadId - this means that image came from external changes.\n // In such cases we still want to show the placeholder until image is fully uploaded.\n // Show placeholder if needed - see https://github.com/ckeditor/ckeditor5-image/issues/191.\n _showPlaceholder(placeholder, viewFigure, viewWriter);\n } else {\n // Hide placeholder and initialize progress bar showing upload progress.\n _hidePlaceholder(viewFigure, viewWriter);\n\n _showProgressBar(viewFigure, viewWriter, loader, editor.editing.view);\n\n _displayLocalImage(viewFigure, viewWriter, loader);\n }\n\n return;\n } // Because in Edge there is no way to show fancy animation of completeIcon we need to skip it.\n\n\n if (status == 'complete' && fileRepository.loaders.get(uploadId) && !env.isEdge) {\n _showCompleteIcon(viewFigure, viewWriter, editor.editing.view);\n } // Clean up.\n\n\n _hideProgressBar(viewFigure, viewWriter);\n\n _hidePlaceholder(viewFigure, viewWriter);\n\n _stopAppearEffect(viewFigure, viewWriter);\n }\n }]);\n\n return ImageUploadProgress;\n}(Plugin); // Adds ck-appear class to the image figure if one is not already applied.\n//\n// @param {module:engine/view/containerelement~ContainerElement} viewFigure\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n\n\nexport { ImageUploadProgress as default };\n\nfunction _startAppearEffect(viewFigure, writer) {\n if (!viewFigure.hasClass('ck-appear')) {\n writer.addClass('ck-appear', viewFigure);\n }\n} // Removes ck-appear class to the image figure if one is not already removed.\n//\n// @param {module:engine/view/containerelement~ContainerElement} viewFigure\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n\n\nfunction _stopAppearEffect(viewFigure, writer) {\n writer.removeClass('ck-appear', viewFigure);\n} // Shows placeholder together with infinite progress bar on given image figure.\n//\n// @param {String} Data-uri with a svg placeholder.\n// @param {module:engine/view/containerelement~ContainerElement} viewFigure\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n\n\nfunction _showPlaceholder(placeholder, viewFigure, writer) {\n if (!viewFigure.hasClass('ck-image-upload-placeholder')) {\n writer.addClass('ck-image-upload-placeholder', viewFigure);\n }\n\n var viewImg = viewFigure.getChild(0);\n\n if (viewImg.getAttribute('src') !== placeholder) {\n writer.setAttribute('src', placeholder, viewImg);\n }\n\n if (!_getUIElement(viewFigure, 'placeholder')) {\n writer.insert(writer.createPositionAfter(viewImg), _createPlaceholder(writer));\n }\n} // Removes placeholder together with infinite progress bar on given image figure.\n//\n// @param {module:engine/view/containerelement~ContainerElement} viewFigure\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n\n\nfunction _hidePlaceholder(viewFigure, writer) {\n if (viewFigure.hasClass('ck-image-upload-placeholder')) {\n writer.removeClass('ck-image-upload-placeholder', viewFigure);\n }\n\n _removeUIElement(viewFigure, writer, 'placeholder');\n} // Shows progress bar displaying upload progress.\n// Attaches it to the file loader to update when upload percentace is changed.\n//\n// @param {module:engine/view/containerelement~ContainerElement} viewFigure\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n// @param {module:upload/filerepository~FileLoader} loader\n// @param {module:engine/view/view~View} view\n\n\nfunction _showProgressBar(viewFigure, writer, loader, view) {\n var progressBar = _createProgressBar(writer);\n\n writer.insert(writer.createPositionAt(viewFigure, 'end'), progressBar); // Update progress bar width when uploadedPercent is changed.\n\n loader.on('change:uploadedPercent', function (evt, name, value) {\n view.change(function (writer) {\n writer.setStyle('width', value + '%', progressBar);\n });\n });\n} // Hides upload progress bar.\n//\n// @param {module:engine/view/containerelement~ContainerElement} viewFigure\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n\n\nfunction _hideProgressBar(viewFigure, writer) {\n _removeUIElement(viewFigure, writer, 'progressBar');\n} // Shows complete icon and hides after a certain amount of time.\n//\n// @param {module:engine/view/containerelement~ContainerElement} viewFigure\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n// @param {module:engine/view/view~View} view\n\n\nfunction _showCompleteIcon(viewFigure, writer, view) {\n var completeIcon = writer.createUIElement('div', {\n class: 'ck-image-upload-complete-icon'\n });\n writer.insert(writer.createPositionAt(viewFigure, 'end'), completeIcon);\n setTimeout(function () {\n view.change(function (writer) {\n return writer.remove(writer.createRangeOn(completeIcon));\n });\n }, 3000);\n} // Create progress bar element using {@link module:engine/view/uielement~UIElement}.\n//\n// @private\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n// @returns {module:engine/view/uielement~UIElement}\n\n\nfunction _createProgressBar(writer) {\n var progressBar = writer.createUIElement('div', {\n class: 'ck-progress-bar'\n });\n writer.setCustomProperty('progressBar', true, progressBar);\n return progressBar;\n} // Create placeholder element using {@link module:engine/view/uielement~UIElement}.\n//\n// @private\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n// @returns {module:engine/view/uielement~UIElement}\n\n\nfunction _createPlaceholder(writer) {\n var placeholder = writer.createUIElement('div', {\n class: 'ck-upload-placeholder-loader'\n });\n writer.setCustomProperty('placeholder', true, placeholder);\n return placeholder;\n} // Returns {@link module:engine/view/uielement~UIElement} of given unique property from image figure element.\n// Returns `undefined` if element is not found.\n//\n// @private\n// @param {module:engine/view/element~Element} imageFigure\n// @param {String} uniqueProperty\n// @returns {module:engine/view/uielement~UIElement|undefined}\n\n\nfunction _getUIElement(imageFigure, uniqueProperty) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = imageFigure.getChildren()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var child = _step.value;\n\n if (child.getCustomProperty(uniqueProperty)) {\n return child;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n} // Removes {@link module:engine/view/uielement~UIElement} of given unique property from image figure element.\n//\n// @private\n// @param {module:engine/view/element~Element} imageFigure\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n// @param {String} uniqueProperty\n\n\nfunction _removeUIElement(viewFigure, writer, uniqueProperty) {\n var element = _getUIElement(viewFigure, uniqueProperty);\n\n if (element) {\n writer.remove(writer.createRangeOn(element));\n }\n} // Displays local data from file loader.\n//\n// @param {module:engine/view/element~Element} imageFigure\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n// @param {module:upload/filerepository~FileLoader} loader\n\n\nfunction _displayLocalImage(viewFigure, writer, loader) {\n if (loader.data) {\n var viewImg = viewFigure.getChild(0);\n writer.setAttribute('src', loader.data, viewImg);\n }\n}","import _classCallCheck from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _possibleConstructorReturn from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\nimport _inherits from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/notification/notification\n */\n\n/* globals window */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\n/**\n * The Notification plugin.\n *\n * This plugin sends a few types of notifications: `success`, `info` and `warning`. The notifications need to be\n * handled and displayed by a plugin responsible for showing the UI of the notifications. Using this plugin for dispatching\n * notifications makes it possible to switch the notifications UI.\n *\n * Note that every unhandled and not stopped `warning` notification will be displayed as a system alert.\n * See {@link module:ui/notification/notification~Notification#showWarning}.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar Notification =\n/*#__PURE__*/\nfunction (_Plugin) {\n _inherits(Notification, _Plugin);\n\n function Notification() {\n _classCallCheck(this, Notification);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Notification).apply(this, arguments));\n }\n\n _createClass(Notification, [{\n key: \"init\",\n\n /**\n * @inheritDoc\n */\n value: function init() {\n // Each unhandled and not stopped `show:warning` event is displayed as a system alert.\n this.on('show:warning', function (evt, data) {\n window.alert(data.message); // eslint-disable-line no-alert\n }, {\n priority: 'lowest'\n });\n }\n /**\n * Shows a success notification.\n *\n * By default, it fires the {@link #event:show:success `show:success` event} with the given `data`. The event namespace can be extended\n * using the `data.namespace` option. For example:\n *\n * \t\tshowSuccess( 'Image is uploaded.', {\n * \t\t\tnamespace: 'upload:image'\n * \t\t} );\n *\n * will fire the `show:success:upload:image` event.\n *\n * You can provide the title of the notification:\n *\n *\t\tshowSuccess( 'Image is uploaded.', {\n *\t\t\ttitle: 'Image upload success'\n *\t\t} );\n *\n * @param {String} message The content of the notification.\n * @param {Object} [data={}] Additional data.\n * @param {String} [data.namespace] Additional event namespace.\n * @param {String} [data.title] The title of the notification.\n */\n\n }, {\n key: \"showSuccess\",\n value: function showSuccess(message) {\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n this._showNotification({\n message: message,\n type: 'success',\n namespace: data.namespace,\n title: data.title\n });\n }\n /**\n * Shows an information notification.\n *\n * By default, it fires the {@link #event:show:info `show:info` event} with the given `data`. The event namespace can be extended\n * using the `data.namespace` option. For example:\n *\n * \t\tshowInfo( 'Editor is offline.', {\n * \t\t\tnamespace: 'editor:status'\n * \t\t} );\n *\n * will fire the `show:info:editor:status` event.\n *\n * You can provide the title of the notification:\n *\n *\t\tshowInfo( 'Editor is offline.', {\n *\t\t\ttitle: 'Network information'\n *\t\t} );\n *\n * @param {String} message The content of the notification.\n * @param {Object} [data={}] Additional data.\n * @param {String} [data.namespace] Additional event namespace.\n * @param {String} [data.title] The title of the notification.\n */\n\n }, {\n key: \"showInfo\",\n value: function showInfo(message) {\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n this._showNotification({\n message: message,\n type: 'info',\n namespace: data.namespace,\n title: data.title\n });\n }\n /**\n * Shows a warning notification.\n *\n * By default, it fires the {@link #event:show:warning `show:warning` event}\n * with the given `data`. The event namespace can be extended using the `data.namespace` option. For example:\n *\n * \t\tshowWarning( 'Image upload error.', {\n * \t\t\tnamespace: 'upload:image'\n * \t\t} );\n *\n * will fire the `show:warning:upload:image` event.\n *\n * You can provide the title of the notification:\n *\n *\t\tshowWarning( 'Image upload error.', {\n *\t\t\ttitle: 'Upload failed'\n *\t\t} );\n *\n * Note that each unhandled and not stopped `warning` notification will be displayed as a system alert.\n * The plugin responsible for displaying warnings should `stop()` the event to prevent displaying it as an alert:\n *\n * \t\tnotifications.on( 'show:warning', ( evt, data ) => {\n * \t\t\t// Do something with the data.\n *\n * \t\t\t// Stop this event to prevent displaying it as an alert.\n * \t\t\tevt.stop();\n * \t\t} );\n *\n * You can attach many listeners to the same event and `stop()` this event in a listener with a low priority:\n *\n * \t\tnotifications.on( 'show:warning', ( evt, data ) => {\n * \t\t\t// Show the warning in the UI, but do not stop it.\n * \t\t} );\n *\n * \t\tnotifications.on( 'show:warning', ( evt, data ) => {\n * \t\t\t// Log the warning to some error tracker.\n *\n * \t\t\t// Stop this event to prevent displaying it as an alert.\n * \t\t\tevt.stop();\n * \t\t}, { priority: 'low' } );\n *\n * @param {String} message The content of the notification.\n * @param {Object} [data={}] Additional data.\n * @param {String} [data.namespace] Additional event namespace.\n * @param {String} [data.title] The title of the notification.\n */\n\n }, {\n key: \"showWarning\",\n value: function showWarning(message) {\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n this._showNotification({\n message: message,\n type: 'warning',\n namespace: data.namespace,\n title: data.title\n });\n }\n /**\n * Fires the `show` event with the specified type, namespace and message.\n *\n * @private\n * @param {Object} data The message data.\n * @param {String} data.message The content of the notification.\n * @param {'success'|'info'|'warning'} data.type The type of the message.\n * @param {String} [data.namespace] Additional event namespace.\n * @param {String} [data.title=''] The title of the notification.\n */\n\n }, {\n key: \"_showNotification\",\n value: function _showNotification(data) {\n var event = \"show:\".concat(data.type) + (data.namespace ? \":\".concat(data.namespace) : '');\n this.fire(event, {\n message: data.message,\n type: data.type,\n title: data.title || ''\n });\n }\n /**\n * Fired when one of the `showSuccess()`, `showInfo()`, `showWarning()` methods is called.\n *\n * @event show\n * @param {Object} data The notification data.\n * @param {String} data.message The content of the notification.\n * @param {String} data.title The title of the notification.\n * @param {'success'|'info'|'warning'} data.type The type of the notification.\n */\n\n /**\n * Fired when the `showSuccess()` method is called.\n *\n * @event show:success\n * @param {Object} data The notification data.\n * @param {String} data.message The content of the notification.\n * @param {String} data.title The title of the notification.\n * @param {'success'} data.type The type of the notification.\n */\n\n /**\n * Fired when the `showInfo()` method is called.\n *\n * @event show:info\n * @param {Object} data The notification data.\n * @param {String} data.message The content of the notification.\n * @param {String} data.title The title of the notification.\n * @param {'info'} data.type The type of the notification.\n */\n\n /**\n * Fired when the `showWarning()` method is called.\n *\n * When this event is not handled or stopped by `event.stop()`, the `data.message` of this event will\n * be automatically displayed as a system alert.\n *\n * @event show:warning\n * @param {Object} data The notification data.\n * @param {String} data.message The content of the notification.\n * @param {String} data.title The title of the notification.\n * @param {'warning'} data.type The type of the notification.\n */\n\n }], [{\n key: \"pluginName\",\n\n /**\n * @inheritDoc\n */\n get: function get() {\n return 'Notification';\n }\n }]);\n\n return Notification;\n}(Plugin);\n\nexport { Notification as default };","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/web.dom.iterable\";\nimport _classCallCheck from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _possibleConstructorReturn from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\nimport _inherits from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport FileRepository from '@ckeditor/ckeditor5-upload/src/filerepository';\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport { insertImage, isImageAllowed } from \"../image/utils\";\n/**\n * @module image/imageupload/imageuploadcommand\n */\n\n/**\n * The image upload command.\n *\n * The command is registered by the {@link module:image/imageupload/imageuploadediting~ImageUploadEditing} plugin as `'imageUpload'`.\n *\n * In order to upload an image at the current selection position\n * (according to the {@link module:widget/utils~findOptimalInsertionPosition} algorithm),\n * execute the command and pass the native image file instance:\n *\n *\t\tthis.listenTo( editor.editing.view.document, 'clipboardInput', ( evt, data ) => {\n *\t\t\t// Assuming that only images were pasted:\n *\t\t\tconst images = Array.from( data.dataTransfer.files );\n *\n *\t\t\t// Upload the first image:\n *\t\t\teditor.execute( 'imageUpload', { file: images[ 0 ] } );\n *\t\t} );\n *\n * It is also possible to insert multiple images at once:\n *\n *\t\teditor.execute( 'imageUpload', {\n *\t\t\tfile: [\n *\t\t\t\tfile1,\n *\t\t\t\tfile2\n *\t\t\t]\n *\t\t} );\n *\n * @extends module:core/command~Command\n */\n\nvar ImageUploadCommand =\n/*#__PURE__*/\nfunction (_Command) {\n _inherits(ImageUploadCommand, _Command);\n\n function ImageUploadCommand() {\n _classCallCheck(this, ImageUploadCommand);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ImageUploadCommand).apply(this, arguments));\n }\n\n _createClass(ImageUploadCommand, [{\n key: \"refresh\",\n\n /**\n * @inheritDoc\n */\n value: function refresh() {\n this.isEnabled = isImageAllowed(this.editor.model);\n }\n /**\n * Executes the command.\n *\n * @fires execute\n * @param {Object} options Options for the executed command.\n * @param {File|Array.} options.file The image file or an array of image files to upload.\n */\n\n }, {\n key: \"execute\",\n value: function execute(options) {\n var editor = this.editor;\n var model = editor.model;\n var fileRepository = editor.plugins.get(FileRepository);\n model.change(function (writer) {\n var filesToUpload = Array.isArray(options.file) ? options.file : [options.file];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = filesToUpload[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var file = _step.value;\n uploadImage(writer, model, fileRepository, file);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n });\n }\n }]);\n\n return ImageUploadCommand;\n}(Command); // Handles uploading single file.\n//\n// @param {module:engine/model/writer~writer} writer\n// @param {module:engine/model/model~Model} model\n// @param {File} file\n\n\nexport { ImageUploadCommand as default };\n\nfunction uploadImage(writer, model, fileRepository, file) {\n var loader = fileRepository.createLoader(file); // Do not throw when upload adapter is not set. FileRepository will log an error anyway.\n\n if (!loader) {\n return;\n }\n\n insertImage(writer, model, {\n uploadId: loader.id\n });\n}","import 'core-js/modules/es7.array.includes';\nimport 'core-js/modules/es6.string.includes';\nimport 'core-js/modules/es6.object.keys';\nimport 'core-js/modules/es6.function.name';\nimport 'core-js/modules/es7.symbol.async-iterator';\nimport 'core-js/modules/es6.symbol';\nimport 'core-js/modules/web.dom.iterable';\nimport 'core-js/modules/es6.string.iterator';\nimport 'core-js/modules/es6.array.from';\nimport _classCallCheck from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _possibleConstructorReturn from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nimport _createClass from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _inherits from '/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageupload/imageuploadediting\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport FileRepository from '@ckeditor/ckeditor5-upload/src/filerepository';\nimport Notification from '@ckeditor/ckeditor5-ui/src/notification/notification';\nimport Clipboard from '@ckeditor/ckeditor5-clipboard/src/clipboard';\nimport UpcastWriter from '@ckeditor/ckeditor5-engine/src/view/upcastwriter';\nimport env from '@ckeditor/ckeditor5-utils/src/env';\nimport ImageUploadCommand from '../../src/imageupload/imageuploadcommand';\nimport {\n fetchLocalImage,\n isLocalImage\n} from '../../src/imageupload/utils';\nimport { createImageTypeRegExp } from './utils';\n/**\n * The editing part of the image upload feature. It registers the `'imageUpload'` command.\n *\n * @extends module:core/plugin~Plugin\n */\nvar ImageUploadEditing = /*#__PURE__*/\nfunction (_Plugin) {\n _inherits(ImageUploadEditing, _Plugin);\n _createClass(ImageUploadEditing, null, [\n {\n key: 'requires',\n /**\n * @inheritDoc\n */\n get: function get() {\n return [\n FileRepository,\n Notification,\n Clipboard\n ];\n }\n },\n {\n key: 'pluginName',\n get: function get() {\n return 'ImageUploadEditing';\n } /**\n * @inheritDoc\n */\n }\n ]);\n function ImageUploadEditing(editor) {\n var _this;\n _classCallCheck(this, ImageUploadEditing);\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ImageUploadEditing).call(this, editor));\n editor.config.define('image', {\n upload: {\n types: [\n 'jpeg',\n 'png',\n 'gif',\n 'bmp',\n 'webp',\n 'tiff'\n ]\n }\n });\n return _this;\n }\n /**\n * @inheritDoc\n */\n _createClass(ImageUploadEditing, [\n {\n key: 'init',\n value: function init() {\n var _this2 = this;\n var editor = this.editor;\n var doc = editor.model.document;\n var schema = editor.model.schema;\n var conversion = editor.conversion;\n var fileRepository = editor.plugins.get(FileRepository);\n var imageTypes = createImageTypeRegExp(editor.config.get('image.upload.types'));\n // Setup schema to allow uploadId and uploadStatus for images.\n schema.extend('image', {\n allowAttributes: [\n 'uploadId',\n 'uploadStatus'\n ]\n });\n // Register imageUpload command.\n editor.commands.add('imageUpload', new ImageUploadCommand(editor));\n // Register upcast converter for uploadId.\n conversion.for('upcast').attributeToAttribute({\n view: {\n name: 'img',\n key: 'uploadId'\n },\n model: 'uploadId'\n });\n // Handle pasted images.\n // For every image file, a new file loader is created and a placeholder image is\n // inserted into the content. Then, those images are uploaded once they appear in the model\n // (see Document#change listener below).\n this.listenTo(editor.editing.view.document, 'clipboardInput', function (evt, data) {\n // Skip if non empty HTML data is included.\n // https://github.com/ckeditor/ckeditor5-upload/issues/68\n if (isHtmlIncluded(data.dataTransfer)) {\n return;\n }\n var images = Array.from(data.dataTransfer.files).filter(function (file) {\n // See https://github.com/ckeditor/ckeditor5-image/pull/254.\n if (!file) {\n return false;\n }\n return imageTypes.test(file.type);\n });\n var ranges = data.targetRanges.map(function (viewRange) {\n return editor.editing.mapper.toModelRange(viewRange);\n });\n editor.model.change(function (writer) {\n // Set selection to paste target.\n writer.setSelection(ranges);\n if (images.length) {\n evt.stop();\n // Upload images after the selection has changed in order to ensure the command's state is refreshed.\n editor.model.enqueueChange('default', function () {\n editor.execute('imageUpload', { file: images });\n });\n }\n });\n });\n // Handle HTML pasted with images with base64 or blob sources.\n // For every image file, a new file loader is created and a placeholder image is\n // inserted into the content. Then, those images are uploaded once they appear in the model\n // (see Document#change listener below).\n this.listenTo(editor.plugins.get(Clipboard), 'inputTransformation', function (evt, data) {\n var fetchableImages = Array.from(editor.editing.view.createRangeIn(data.content)).filter(function (value) {\n return isLocalImage(value.item) && !value.item.getAttribute('uploadProcessed');\n }).map(function (value) {\n return {\n promise: fetchLocalImage(value.item),\n imageElement: value.item\n };\n });\n if (!fetchableImages.length) {\n return;\n }\n var writer = new UpcastWriter();\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n try {\n for (var _iterator = fetchableImages[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var fetchableImage = _step.value;\n // Set attribute marking that the image was processed already.\n writer.setAttribute('uploadProcessed', true, fetchableImage.imageElement);\n var loader = fileRepository.createLoader(fetchableImage.promise);\n if (loader) {\n writer.setAttribute('src', '', fetchableImage.imageElement);\n writer.setAttribute('uploadId', loader.id, fetchableImage.imageElement);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n });\n // Prevents from the browser redirecting to the dropped image.\n editor.editing.view.document.on('dragover', function (evt, data) {\n data.preventDefault();\n });\n // Upload placeholder images that appeared in the model.\n doc.on('change', function () {\n var changes = doc.differ.getChanges({ includeChangesInGraveyard: true });\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n try {\n for (var _iterator2 = changes[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var entry = _step2.value;\n if (entry.type == 'insert' && entry.name != '$text') {\n var item = entry.position.nodeAfter;\n var isInGraveyard = entry.position.root.rootName == '$graveyard';\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n try {\n for (var _iterator3 = getImagesFromChangeItem(editor, item)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var image = _step3.value;\n // Check if the image element still has upload id.\n var uploadId = image.getAttribute('uploadId');\n if (!uploadId) {\n continue;\n }\n // Check if the image is loaded on this client.\n var loader = fileRepository.loaders.get(uploadId);\n if (!loader) {\n continue;\n }\n if (isInGraveyard) {\n // If the image was inserted to the graveyard - abort the loading process.\n loader.abort();\n } else if (loader.status == 'idle') {\n // If the image was inserted into content and has not been loaded yet, start loading it.\n _this2._readAndUpload(loader, image);\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return != null) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n });\n } /**\n * Reads and uploads an image.\n *\n * The image is read from the disk and as a Base64-encoded string it is set temporarily to\n * `image[src]`. When the image is successfully uploaded, the temporary data is replaced with the target\n * image's URL (the URL to the uploaded image on the server).\n *\n * @protected\n * @param {module:upload/filerepository~FileLoader} loader\n * @param {module:engine/model/element~Element} imageElement\n * @returns {Promise}\n */\n },\n {\n key: '_readAndUpload',\n value: function _readAndUpload(loader, imageElement) {\n var _this3 = this;\n var editor = this.editor;\n var model = editor.model;\n var t = editor.locale.t;\n var fileRepository = editor.plugins.get(FileRepository);\n var notification = editor.plugins.get(Notification);\n model.enqueueChange('transparent', function (writer) {\n writer.setAttribute('uploadStatus', 'reading', imageElement);\n });\n return loader.read().then(function () {\n var promise = loader.upload();\n // Force re–paint in Safari. Without it, the image will display with a wrong size.\n // https://github.com/ckeditor/ckeditor5/issues/1975\n /* istanbul ignore next */\n if (env.isSafari) {\n var viewFigure = editor.editing.mapper.toViewElement(imageElement);\n var viewImg = viewFigure.getChild(0);\n editor.editing.view.once('render', function () {\n // Early returns just to be safe. There might be some code ran\n // in between the outer scope and this callback.\n if (!viewImg.parent) {\n return;\n }\n var domFigure = editor.editing.view.domConverter.mapViewToDom(viewImg.parent);\n if (!domFigure) {\n return;\n }\n var originalDisplay = domFigure.style.display;\n domFigure.style.display = 'none';\n // Make sure this line will never be removed during minification for having \"no effect\".\n domFigure._ckHack = domFigure.offsetHeight;\n domFigure.style.display = originalDisplay;\n });\n }\n model.enqueueChange('transparent', function (writer) {\n writer.setAttribute('uploadStatus', 'uploading', imageElement);\n });\n return promise;\n }).then(function (data) {\n model.enqueueChange('transparent', function (writer) {\n writer.setAttributes({\n uploadStatus: 'complete',\n src: data.default\n }, imageElement);\n _this3._parseAndSetSrcsetAttributeOnImage(data, imageElement, writer);\n });\n clean();\n }).catch(function (error) {\n // If status is not 'error' nor 'aborted' - throw error because it means that something else went wrong,\n // it might be generic error and it would be real pain to find what is going on.\n if (loader.status !== 'error' && loader.status !== 'aborted') {\n throw error;\n }\n // Might be 'aborted'.\n if (loader.status == 'error' && error) {\n notification.showWarning(error, {\n title: t('Upload failed'),\n namespace: 'upload'\n });\n }\n clean();\n // Permanently remove image from insertion batch.\n model.enqueueChange('transparent', function (writer) {\n writer.remove(imageElement);\n });\n });\n function clean() {\n model.enqueueChange('transparent', function (writer) {\n writer.removeAttribute('uploadId', imageElement);\n writer.removeAttribute('uploadStatus', imageElement);\n });\n fileRepository.destroyLoader(loader);\n }\n } /**\n * Creates the `srcset` attribute based on a given file upload response and sets it as an attribute to a specific image element.\n *\n * @protected\n * @param {Object} data Data object from which `srcset` will be created.\n * @param {module:engine/model/element~Element} image The image element on which the `srcset` attribute will be set.\n * @param {module:engine/model/writer~Writer} writer\n */\n },\n {\n key: '_parseAndSetSrcsetAttributeOnImage',\n value: function _parseAndSetSrcsetAttributeOnImage(data, image, writer) {\n // Srcset attribute for responsive images support.\n var maxWidth = 0;\n var srcsetAttribute = Object.keys(data) // Filter out keys that are not integers.\n.filter(function (key) {\n var width = parseInt(key, 10);\n if (!isNaN(width)) {\n maxWidth = Math.max(maxWidth, width);\n return true;\n }\n }) // Convert each key to srcset entry.\n.map(function (key) {\n return ''.concat(data[key], ' ').concat(key, 'w');\n }) // Join all entries.\n.join(', ');\n if (srcsetAttribute != '') {\n writer.setAttribute('srcset', {\n data: srcsetAttribute,\n width: maxWidth\n }, image);\n }\n }\n }\n ]);\n return ImageUploadEditing;\n}(Plugin);\n// Returns `true` if non-empty `text/html` is included in the data transfer.\n//\n// @param {module:clipboard/datatransfer~DataTransfer} dataTransfer\n// @returns {Boolean}\nexport {\n ImageUploadEditing as default\n};\nexport function isHtmlIncluded(dataTransfer) {\n return Array.from(dataTransfer.types).includes('text/html') && dataTransfer.getData('text/html') !== '';\n}\nfunction getImagesFromChangeItem(editor, item) {\n return Array.from(editor.model.createRangeOn(item)).filter(function (value) {\n return value.item.is('image');\n }).map(function (value) {\n return value.item;\n });\n}","import _classCallCheck from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _possibleConstructorReturn from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\nimport _inherits from \"/home/m_fluer/public_html/limesurveygit/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imageupload\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ImageUploadUI from \"./imageupload/imageuploadui\";\nimport ImageUploadProgress from \"./imageupload/imageuploadprogress\";\nimport ImageUploadEditing from \"./imageupload/imageuploadediting\";\n/**\n * The image upload plugin.\n *\n * For a detailed overview, check the {@glink features/image-upload/image-upload image upload feature} documentation.\n *\n * This plugin does not do anything directly, but it loads a set of specific plugins to enable image uploading:\n *\n * * {@link module:image/imageupload/imageuploadediting~ImageUploadEditing},\n * * {@link module:image/imageupload/imageuploadui~ImageUploadUI},\n * * {@link module:image/imageupload/imageuploadprogress~ImageUploadProgress}.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar ImageUpload =\n/*#__PURE__*/\nfunction (_Plugin) {\n _inherits(ImageUpload, _Plugin);\n\n function ImageUpload() {\n _classCallCheck(this, ImageUpload);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ImageUpload).apply(this, arguments));\n }\n\n _createClass(ImageUpload, null, [{\n key: \"pluginName\",\n\n /**\n * @inheritDoc\n */\n get: function get() {\n return 'ImageUpload';\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"requires\",\n get: function get() {\n return [ImageUploadEditing, ImageUploadUI, ImageUploadProgress];\n }\n }]);\n\n return ImageUpload;\n}(Plugin);\n/**\n * Image upload configuration.\n *\n * @member {module:image/imageupload~ImageUploadConfig} module:image/image~ImageConfig#upload\n */\n\n/**\n * The configuration of the image upload feature. Used by the image upload feature in the `@ckeditor/ckeditor5-image` package.\n *\n *\t\tClassicEditor\n *\t\t\t.create( editorElement, {\n * \t\t\t\timage: {\n * \t\t\t\t\tupload: ... // Image upload feature options.\n * \t\t\t\t}\n *\t\t\t} )\n *\t\t\t.then( ... )\n *\t\t\t.catch( ... );\n *\n * See {@link module:core/editor/editorconfig~EditorConfig all editor options}.\n *\n * @interface module:image/imageupload~ImageUploadConfig\n */\n\n/**\n * The list of accepted image types.\n *\n * The accepted types of images can be customized to allow only certain types of images:\n *\n *\t\t// Allow only JPEG and PNG images:\n *\t\tconst imageUploadConfig = {\n *\t\t\ttypes: [ 'png', 'jpeg' ]\n *\t\t};\n *\n * The type string should match [one of the sub-types](https://www.iana.org/assignments/media-types/media-types.xhtml#image)\n * of the image MIME type. E.g. for the `image/jpeg` MIME type, add `'jpeg'` to your image upload configuration.\n *\n * **Note:** This setting only restricts some image types to be selected and uploaded through the CKEditor UI and commands. Image type\n * recognition and filtering should also be implemented on the server which accepts image uploads.\n *\n * @member {Array.} module:image/imageupload~ImageUploadConfig#types\n * @default [ 'jpeg', 'png', 'gif', 'bmp', 'webp', 'tiff' ]\n */\n\n\nexport { ImageUpload as default };","import Command from '@ckeditor/ckeditor5-core/src/command';\n\nexport default class LsReplacementsCommand extends Command {\n execute( { name, type } ) {\n const editor = this.editor;\n\n editor.model.change( writer => {\n const oExpression = writer.createElement('expression', { name, type });\n editor.model.insertContent(oExpression);\n writer.setSelection(oExpression, 'on');\n });\n }\n refresh() {\n this.isEnabled = this.editor.model.schema.checkChild(this.editor.model.document.selection.focus.parent, 'expression');\n }\n}","import Plugin from '@ckeditor/ckeditor5-core/src/plugin';\n\nimport { toWidget, viewToModelPositionOutsideModelElement } from '@ckeditor/ckeditor5-widget/src/utils';\nimport Widget from '@ckeditor/ckeditor5-widget/src/widget';\n\nimport LsReplacementsCommand from './LsReplacementsCommand';\n\nexport default class LsReplacementsEditing extends Plugin {\n \n static get requires() {\n return [ Widget ];\n }\n\n init() {\n console.log( 'LsReplacementEditing#init() got called' );\n this._defineSchema();\n this._defineConverters();\n\n this.editor.commands.add( 'expression', new LsReplacementsCommand( this.editor ) );\n this.editor.editing.mapper.on(\n 'viewToModelPosition',\n viewToModelPositionOutsideModelElement( this.editor.model, viewElement => viewElement.is( 'x-xpr' ) )\n );\n }\n\n _defineSchema() {\n const schema = this.editor.model.schema;\n schema.register( 'expression', {\n allowWhere: '$text',\n isInline: true,\n isObject: true,\n allowAttributes: ['name', 'type']\n });\n }\n\n _defineConverters() {\n const conversion = this.editor.conversion;\n\n conversion.for( 'upcast' ).elementToElement({\n view: {\n name: 'x-xpr',\n },\n model: ( viewElement, modelWriter ) => {\n const name = viewElement.getChild( 0 ).data.slice( 1, -1 );\n const type = viewElement.getAttribute('type');\n return modelWriter.createElement( 'expression', { name, type } );\n }\n });\n\n conversion.for( 'editingDowncast' ).elementToElement( {\n model: 'expression',\n view: ( modelItem, viewWriter ) => {\n const widgetElement = this._createExpressionView( modelItem, viewWriter );\n return toWidget( widgetElement, viewWriter );\n }\n } );\n\n conversion.for( 'dataDowncast' ).elementToElement( {\n model: 'expression',\n view: this._createExpressionView\n });\n }\n\n _createExpressionView( modelItem, viewWriter ) {\n const name = modelItem.getAttribute( 'name' );\n const type = modelItem.getAttribute( 'type' );\n const expressionView = viewWriter.createContainerElement( 'x-xpr', { type });\n viewWriter.insert( viewWriter.createPositionAt( expressionView, 0 ), viewWriter.createText('{' + name + '}'));\n return expressionView;\n }\n\n}","import ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';\nimport View from \"@ckeditor/ckeditor5-ui/src/view\";\n\n\nclass ImageView extends View {\n constructor( locale ) {\n super( locale );\n\n const bind = this.bindTemplate;\n\n this.setTemplate( {\n tag: 'img',\n attributes: {\n src: [\n bind.to( 'imageSrc' )\n ],\n class: [\n 'img-responsive',\n 'lsimageSelect--dropdown-button-image',\n bind.to( 'imageClass' )\n ],\n hash: [\n bind.to( 'imageHash' )\n ]\n },\n } );\n }\n\n render() {\n\t\tsuper.render();\n }\n \n focus() {\n\t\tthis.element.focus();\n }\n}\n\nexport default class PreviewButtonView extends ButtonView {\n /**\n\t * @inheritDoc\n\t */\n constructor( locale ) {\n super(locale);\n\n this.set( 'imageSrc' );\n this.set( 'imageClass' );\n this.set( 'imageHash' );\n \n this.imageView = this._createImageView();\n }\n\n /**\n\t * @inheritDoc\n\t */\n\trender() {\n super.render();\n this.children.add( this.imageView );\n }\n\n _createImageView() {\n const imageView = new ImageView();\n imageView.bind('imageSrc').to(this,'imageSrc');\n imageView.bind('imageClass').to(this,'imageClass');\n imageView.bind('imageHash').to(this,'imageHash');\n return imageView;\n }\n}\n","import ListSeparatorView from '@ckeditor/ckeditor5-ui/src/list/listseparatorview';\nimport View from \"@ckeditor/ckeditor5-ui/src/view\";\nimport uid from '@ckeditor/ckeditor5-utils/src/uid';\n\nexport default class ListGroupSeparatorView extends ListSeparatorView {\n constructor(locale) {\n super(locale);\n const ariaLabelUid = uid();\n\n this.set('label');\n this.children = this.createCollection();\n this.labelView = this._createLabelView(ariaLabelUid);\n\n this.setTemplate({\n tag: 'li',\n attributes: {\n class: [\n 'ck',\n 'ck-listgroup__separator'\n ]\n },\n children: this.children\n });\n \n this.children.add(this.labelView);\n }\n\n _createLabelView(ariaLabelUid) {\n const labelView = new View();\n const bind = this.bindTemplate;\n\n labelView.setTemplate({\n tag: 'span',\n\n attributes: {\n class: ['ck','ck-groupseparator__label'],\n id: `ck-editor__aria-label_${ ariaLabelUid }`,\n },\n\n children: [{\n text: bind.to('label')\n }]\n });\n\n return labelView;\n }\n}\n","import ListView from '@ckeditor/ckeditor5-ui/src/list/listview';\nimport ListItemView from '@ckeditor/ckeditor5-ui/src/list/listitemview';\nimport ListSeparatorView from '@ckeditor/ckeditor5-ui/src/list/listseparatorview';\nimport ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';\nimport SwitchButtonView from '@ckeditor/ckeditor5-ui/src/button/switchbuttonview';\nimport PreviewButtonView from './PreviewButtonView';\nimport ListGroupSeparatorView from './ListGroupSeparatorView';\n\nexport function addListToDropdown( dropdownView, items, extraClasses='') {\n\tconst locale = dropdownView.locale;\n\tconst listView = dropdownView.listView = new ListView( locale );\n\n\tlistView.extendTemplate({\n\t\tattributes: {\n\t\t\tclass: [\n\t\t\t\textraClasses\n\t\t\t]\n\t\t}\n\t});\n\n\tlistView.items.bindTo( items ).using( ( { type, model } ) => {\n\t\tif ( type === 'separator' ) {\n\t\t\treturn new ListSeparatorView( locale );\n\t\t\t\n\t\t} else if (type === 'groupseparator' ){\n\t\t\tconst listGroupSeperatorView = new ListGroupSeparatorView( locale );\n\t\t\tlistGroupSeperatorView.bind( ...Object.keys( model ) ).to( model );\n\t\t\treturn listGroupSeperatorView;\n\n\t\t} else if ( type === 'button' || type === 'switchbutton' || type === 'previewbutton' ) {\n\t\t\tconst listItemView = new ListItemView( locale );\n\t\t\tlet buttonView;\n\n\t\t\tif ( type === 'button' ) {\n\t\t\t\tbuttonView = new ButtonView( locale );\n\t\t\t} else if ( type === 'previewbutton' ){\n\t\t\t\tbuttonView = new PreviewButtonView( locale );\n\t\t\t} else {\n\t\t\t\tbuttonView = new SwitchButtonView( locale );\n\t\t\t}\n\n\t\t\t// Bind all model properties to the button view.\n\t\t\tbuttonView.bind( ...Object.keys( model ) ).to( model );\n\t\t\tbuttonView.delegate( 'execute' ).to( listItemView );\n\n\t\t\tlistItemView.children.add( buttonView );\n\n\t\t\treturn listItemView;\n\t\t}\n\t} );\n\n\tdropdownView.panelView.children.add( listView );\n\n\tlistView.items.delegate( 'execute' ).to( dropdownView );\n}\n","export default \"\\n\\n \\n \\n \\n \\n image/svg+xml\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n\"","import he from 'he';\n\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport Collection from '@ckeditor/ckeditor5-utils/src/collection';\nimport Model from '@ckeditor/ckeditor5-ui/src/model';\n\nimport { createDropdown } from '@ckeditor/ckeditor5-ui/src/dropdown/utils';\nimport { addListToDropdown } from '../CustomDropdown/utils';\n\n\nimport lsIcon from '../assets/LsIcon.svg';\n\nexport default class LsReplacementsUI extends Plugin {\n init() {\n console.log( 'LsReplacementUI#init() got called' );\n const editor = this.editor;\n const t = editor.t;\n\n editor.ui.componentFactory.add( 'expressions', locale => {\n const dropdownView = createDropdown( locale );\n this.getReplacements().then(\n (resolve) => { this._parseSelectables( resolve, dropdownView); },\n (reject) => { console.error(reject); }\n );\n\n dropdownView.set( {\n class: 'ck-scrollbar',\n panelPosition: 'sw',\n } );\n\n dropdownView.buttonView.set( {\n label: t( 'LsExpressions' ),\n icon: lsIcon,\n tooltip: true,\n } );\n\n dropdownView.panelView.set('class','ck-scrollbar');\n\n // Execute the command when the dropdown item is clicked (executed).\n this.listenTo( dropdownView, 'execute', evt => {\n editor.execute( 'expression', { name: evt.source.commandParam, type: evt.source.typeDef } );\n editor.editing.view.focus();\n } );\n\n this.listenTo( editor, 'change:fieldtype', (evt, name, value) => {\n dropdownView.panelView.children.clear();\n \n this.getReplacements({fieldtype: value}).then(\n (resolve) => { this._parseSelectables( resolve, dropdownView); },\n (reject) => { console.error(reject); }\n );\n });\n\n\n return dropdownView;\n } );\n }\n \n refresh() {\n \n }\n\n getReplacements(data = {}) {\n const editor = this.editor;\n return new Promise((resolve,reject) => {\n $.ajax({\n url: LS.createUrl('admin/limereplacementfields'),\n data: LS.ld.merge({},{'newtype': 1, 'fieldtype': editor.config.get('lsExtension:fieldtype')}, editor.config.get('lsExtension:ajaxOptions'), data),\n success: resolve,\n error: reject\n })\n });\n }\n\n _parseSelectables(resolve, dropdownView) {\n const itemDefinitions = new Collection();\n \n LS.ld.forEach( resolve, (content,grouptitle) => {\n const separatorDefinition = {\n type: 'groupseparator',\n model: new Model({\n label: grouptitle,\n withText: true\n })\n };\n itemDefinitions.add( separatorDefinition );\n LS.ld.forEach( content, (contentData,key) => {\n const definition = {\n type: 'button',\n model: new Model( {\n commandParam: key,\n typeDef: contentData.type,\n label: he.decode(contentData.value),\n class: 'lsimageSelect--dropdown-button-inner',\n withText: true\n })\n };\n itemDefinitions.add( definition );\n });\n });\n addListToDropdown(dropdownView, itemDefinitions, 'lsimageSelect--dropdown-list');\n }\n}\n","import Plugin from '@ckeditor/ckeditor5-core/src/plugin';\n\nimport LsReplacementsEditing from './LsReplacementsEditing.js';\nimport LsReplacementsUI from './LsReplacementsUI.js';\n\nexport default class LsReplacements extends Plugin {\n static get requires() {\n return [ LsReplacementsEditing, LsReplacementsUI ];\n }\n}","export default class LSFileUploadAdapter {\n constructor(loader, editor) {\n // The file loader instance to use during the upload.\n this.loader = loader;\n this.editor = editor;\n }\n\n // Starts the upload process.\n upload() {\n return this.loader.file\n .then(file => new Promise((resolve, reject) => {\n const formData = new FormData();\n const presetAjaxOptions = this.editor.config.get('lsExtension:ajaxOptions');\n const ajaxOptions = LS.ld.merge(\n LS.data.csrfTokenData, \n presetAjaxOptions,\n {\"folder\": this.editor.config.get('lsExtension:currentFolder')}\n );\n\n formData.append(\"file\", file, file.name);\n LS.ld.forEach(ajaxOptions, (option, key) => {\n formData.append(key,option);\n });\n\n $.ajax({\n type: \"POST\",\n url: LS.createUrl('admin/filemanager/sa/uploadFile'),\n data: formData,\n xhr: () => {\n var myXhr = $.ajaxSettings.xhr();\n if (myXhr.upload) {\n myXhr.upload.addEventListener('progress', this._progressHandling, false);\n }\n return myXhr;\n },\n success: (data) => {\n resolve({\n default: data.src\n });\n },\n error: (error) => {\n reject(error);\n },\n cache: false,\n contentType: false,\n processData: false,\n timeout: 60000\n });\n }));\n }\n\n _progressHandling(event) {\n console.log(event);\n }\n}\n","import Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport LSFileUploadAdapter from './LSFileUploadAdapter/LSFileUploadAdapter';\n\nexport default class LsFileUploadPlugin extends Plugin {\n\tinit() {\n\t\tthis.editor.plugins.get('FileRepository').createUploadAdapter = (loader) => {\n return new LSFileUploadAdapter(loader, this.editor);\n };\n\t}\n}\n","export default \"\\nimage/svg+xml\\n\\n\"","import Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport Collection from '@ckeditor/ckeditor5-utils/src/collection';\nimport Model from '@ckeditor/ckeditor5-ui/src/model';\n\nimport { createDropdown } from '@ckeditor/ckeditor5-ui/src/dropdown/utils';\nimport { addListToDropdown } from '../../CustomDropdown/utils';\n\nimport selectImageIcon from '../../assets/LsSelectFileIcon.svg';\n\n\nexport default class ImageSelectUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tinit() {\n\t\tconst editor = this.editor;\n\t\tconst t = editor.t;\n\n editor.ui.componentFactory.add( 'selectImage', locale => {\n const dropdownView = createDropdown( locale );\n this.getImages().then(\n (resolve) => { this._parseSelectables( resolve, dropdownView); },\n (reject) => { console.error(reject); }\n\t\t\t);\n\n dropdownView.set( {\n class: 'ck-scrollbar',\n panelPosition: 'sw',\n } );\n \t\t\t\n dropdownView.buttonView.set( {\n label: t( 'Select Image from server' ),\n icon: selectImageIcon,\n tooltip: true,\n } );\n\n // Execute the command when the dropdown item is clicked (executed).\n this.listenTo( dropdownView, 'execute', evt => {\n editor.execute( 'selectImage', { src: evt.source.imageSrc, hash: evt.source.imageHash } );\n editor.editing.view.focus();\n } );\n\n return dropdownView;\n\t\t});\n\t}\n\t\n\tgetImages() {\n \t\tconst editor = this.editor;\n return new Promise((resolve,reject) => {\n $.ajax({\n url: LS.createUrl('admin/filemanager/sa/getFilesForSurvey'),\n data: LS.ld.merge({},editor.config.get('lsExtension:ajaxOptions')),\n success: resolve,\n error: reject\n })\n });\n\t}\n\t\n\t_parseSelectables(resolve, dropdownView) {\n\t\tconst itemDefinitions = new Collection();\n \n LS.ld.forEach( resolve, (content,grouptitle) => {\n const separatorDefinition = {\n type: 'groupseparator',\n model: new Model({\n\t\t\t\t\tlabel: grouptitle, \n withText: true\n })\n\t\t\t};\n\t\t\t\n itemDefinitions.add( separatorDefinition );\n LS.ld.forEach( content, (object,key) => {\n const definition = {\n type: 'previewbutton',\n model: new Model( {\n\t\t\t\t\t\timageSrc: object.src,\n\t\t\t\t\t\timageHash: object.hash,\n label: object.shortName,\n class: 'lsimageSelect--dropdown-button-inner',\n withText: true\n })\n };\n itemDefinitions.add( definition );\n });\n });\n addListToDropdown(dropdownView, itemDefinitions, 'lsimageSelect--dropdown-list');\n\t}\n}\n","import Command from '@ckeditor/ckeditor5-core/src/command';\nimport { insertImage, isImageAllowed } from '@ckeditor/ckeditor5-image/src/image/utils';\n\n/**\n * LimeSurvey specific image select command.\n *\n * @extends module:core/command~Command\n */\nexport default class LsImageSelectCommand extends Command {\n\t/**\n\t * @inheritDoc\n\t */\n\trefresh() {\n\t\tthis.isEnabled = isImageAllowed( this.editor.model );\n\t}\n\texecute( eventData ) {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\n\t\tmodel.change( writer => {\n\t\t\tinsertImage( writer, model, eventData );\n\t\t});\n\t}\n}\n","\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\n\nimport LsImageSelectCommand from './lsimageselectcommand';\n\n\nexport default class LSImageSelectEditing extends Plugin {\n\n\t/**\n\t * @inheritDoc\n\t */\n\tinit() {\n\t\tconst editor = this.editor;\n\t\tconst doc = editor.model.document;\n\t\tconst schema = editor.model.schema;\n\t\tconst conversion = editor.conversion;\n\t\t\n\t\tschema.extend( 'image', {\n\t\t\tallowAttributes: [ 'src', 'folder', 'hash' ]\n\t\t} );\n\n\t\teditor.commands.add( 'selectImage', new LsImageSelectCommand( editor ) );\n\n\t\tconversion.for( 'upcast' )\n\t\t\t.attributeToAttribute( {\n\t\t\t\tview: {\n\t\t\t\t\tname: 'img',\n\t\t\t\t\tkey: 'hash'\n\t\t\t\t},\n\t\t\t\tmodel: 'hash'\n\t\t\t} );\n\t}\n}\n\n\t","import Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ImageSelectUI from './lsimageselect/lsimageselectui';\nimport ImageSelectEditing from './lsimageselect/lsimageselectediting';\n\nexport default class ImageSelect extends Plugin {\n\n\tstatic get pluginName() {\n\t\treturn 'ImageSelect';\n\t}\n\n\tstatic get requires() {\n\t\treturn [ ImageSelectUI, ImageSelectEditing ];\n\t}\n}\n","import first from '@ckeditor/ckeditor5-utils/src/first';\n\nexport function modelToViewSizeAttribute(sizes) {\n return (evt, data, conversionApi) => {\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n\n const newStyle = _parseClassName(data.attributeNewValue);\n const oldStyle = _parseClassName(data.attributeOldValue);\n\n const viewElement = conversionApi.mapper.toViewElement(data.item);\n\n if (oldStyle) {\n conversionApi.writer.removeClass(oldStyle, viewElement);\n }\n\n if (newStyle) {\n conversionApi.writer.addClass(newStyle, viewElement);\n }\n };\n}\n\nexport function viewToModelSizeAttribute(sizes) {\n return ( evt, data, conversionApi ) => {\n if ( !data.modelRange ) {\n return;\n }\n\n const viewFigureElement = data.viewItem;\n const modelImageElement = first( data.modelRange.getItems() );\n\n if ( !conversionApi.schema.checkAttribute( modelImageElement, 'imageSize' ) ) {\n return;\n }\n\n sizes.forEach(size => {\n if ( conversionApi.consumable.consume( viewFigureElement, { classes: _parseClassName(size) } ) ) {\n conversionApi.writer.setAttribute( 'imageSize', size, modelImageElement );\n }\n });\n \n };\n}\n\nexport function getImageSizes() {\n return [ '10','25','50','75', '100' ];\n}\n\nfunction _parseClassName(size) {\n return `lsImageSize--size--${size}`;\n}\n","export default \"\\nimage/svg+xml\\n\\n\\t\\n\\t\\t\\n\\t\\t\\n\\t\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\"","import Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport Collection from '@ckeditor/ckeditor5-utils/src/collection';\nimport Model from '@ckeditor/ckeditor5-ui/src/model';\n\nimport { createDropdown, addListToDropdown } from '@ckeditor/ckeditor5-ui/src/dropdown/utils';\nimport { getImageSizes } from './utils';\n\nimport imageSizeIcon from '../../assets/LsImageSizeIcon.svg';\n\nimport '../../assets/imageSizes.scss';\n\nexport default class LsImageSizeUI extends Plugin {\n\t\n\tstatic get pluginName() {\n\t\treturn 'LsImageSizeUI';\n\t}\n\n\n\tinit() {\n\t\tconst editor = this.editor;\n\t\tconst configuredSizes = editor.config.get( 'image.sizes' );\n\n const allSizes = getImageSizes( );\n \n editor.ui.componentFactory.add( 'imageSize', locale => {\n const dropdownView = createDropdown( locale );\n const itemDefinitions = new Collection();\n\n allSizes.forEach( size => {\n const definition = {\n type: 'button',\n model: new Model( {\n label: size,\n value: size,\n class: 'lsImageSize--sizeselectorbutton',\n withText: true\n })\n };\n itemDefinitions.add( definition );\n });\n \n addListToDropdown(dropdownView, itemDefinitions);\n\n\n dropdownView.buttonView.set( {\n label: 'Select width for image',\n icon: imageSizeIcon,\n tooltip: true,\n } );\n\n this.listenTo( dropdownView, 'execute', evt => {\n editor.execute( 'imageSize', { value: evt.source.value } );\n editor.editing.view.focus();\n });\n\n return dropdownView;\n });\n\t}\n}","import Command from '@ckeditor/ckeditor5-core/src/command';\nimport { isImage } from '@ckeditor/ckeditor5-image/src/image/utils';\n\nexport default class LsImageSizeCommand extends Command {\n\t\n\tconstructor( editor, sizes ) {\n\t\tsuper( editor );\n\t\tthis.defaultSize = '100';\n\t\tthis.sizes = sizes;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\trefresh() {\n\t\tconst element = this.editor.model.document.selection.getSelectedElement();\n\n\t\tthis.isEnabled = isImage( element );\n\n\t\tif ( !element ) {\n\t\t\tthis.value = false;\n\t\t} else if ( element.hasAttribute( 'imageSize' ) ) {\n\t\t\tconst attributeValue = element.getAttribute( 'imageSize' );\n\t\t\tthis.value = this.sizes.indexOf(attributeValue) !== -1 ? attributeValue : this.defaultSize;\n\t\t} else {\n\t\t\tthis.value = this.defaultSize;\n\t\t}\n\t}\n\n\texecute( options ) {\n\t\tconst size = options.value;\n\t\tconsole.log('LsImageSize executed', options);\n\t\t\n\t\tconst imageElement = this.editor.model.document.selection.getSelectedElement();\n\n\t\tthis.editor.model.change( writer => {\n writer.setAttribute( 'imageSize', size, imageElement );\n\t\t});\n\t}\n}","import Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport LsImageSizeCommand from './lsimagesizecommand';\nimport { modelToViewSizeAttribute, viewToModelSizeAttribute, getImageSizes } from './utils';\n\nexport default class LsImageSizeEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get pluginName() {\n\t\treturn 'LsImageSizeEditing';\n\t}\n\n\tinit() {\n\t\tconst editor = this.editor;\n\t\tconst schema = editor.model.schema;\n\t\tconst data = editor.data;\n\t\tconst editing = editor.editing;\n\n editor.config.define( 'image.sizes', [ '10','25','50','75', '100' ] );\n \n\t\tconst sizes = getImageSizes( );\n schema.extend( 'image', { allowAttributes: 'imageSize' } );\n \n\t\tconst modelToViewConverter = modelToViewSizeAttribute();\n\n\t\tediting.downcastDispatcher.on( 'attribute:imageSize:image', modelToViewConverter );\n\t\tdata.downcastDispatcher.on( 'attribute:imageSize:image', modelToViewConverter );\n\n\t\tdata.upcastDispatcher.on( 'element:figure', viewToModelSizeAttribute( sizes ), { priority: 'low' } );\n\n\t\teditor.commands.add( 'imageSize', new LsImageSizeCommand( editor, sizes ) );\n\t}\n}","import Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport LsImageSizeUI from './lsimagesize/lsimagesizeui';\nimport LsImageSizeEditing from './lsimagesize/lsimagesizeediting';\n\nexport default class LsImageSize extends Plugin {\n\n\tstatic get pluginName() {\n\t\treturn 'LsImageSize';\n\t}\n\n\tstatic get requires() {\n\t\treturn [ LsImageSizeUI, LsImageSizeEditing ];\n\t}\n}\n","import ClassicEditorBase from '@ckeditor/ckeditor5-editor-classic/src/classiceditor';\n\nimport EssentialsPlugin from '@ckeditor/ckeditor5-essentials/src/essentials';\nimport PasteFromOfficePlugin from '@ckeditor/ckeditor5-paste-from-office/src/pastefromoffice';\nimport FontPlugin from '@ckeditor/ckeditor5-font/src/font';\nimport ParagraphPlugin from '@ckeditor/ckeditor5-paragraph/src/paragraph';\nimport HeadingPlugin from '@ckeditor/ckeditor5-heading/src/heading';\nimport BoldPlugin from '@ckeditor/ckeditor5-basic-styles/src/bold';\nimport ItalicPlugin from '@ckeditor/ckeditor5-basic-styles/src/italic';\nimport UnderlinePlugin from '@ckeditor/ckeditor5-basic-styles/src/underline';\nimport BlockQuotePlugin from '@ckeditor/ckeditor5-block-quote/src/blockquote';\nimport AutoformatPlugin from '@ckeditor/ckeditor5-autoformat/src/autoformat';\nimport Alignment from '@ckeditor/ckeditor5-alignment/src/alignment';\nimport LinkPlugin from '@ckeditor/ckeditor5-link/src/link';\nimport ListPlugin from '@ckeditor/ckeditor5-list/src/list';\nimport TablePlugin from '@ckeditor/ckeditor5-table/src/table';\nimport MediaEmbed from '@ckeditor/ckeditor5-media-embed/src/mediaembed';\nimport ImagePlugin from '@ckeditor/ckeditor5-image/src/image';\nimport ImageCaptionPlugin from '@ckeditor/ckeditor5-image/src/imagecaption';\nimport ImageStylePlugin from '@ckeditor/ckeditor5-image/src/imagestyle';\nimport ImageToolbarPlugin from '@ckeditor/ckeditor5-image/src/imagetoolbar';\nimport ImageUploadPlugin from '@ckeditor/ckeditor5-image/src/imageupload';\n\nimport LsReplacements from './plugins/LsReplacements/LsReplacements';\nimport LsFileUploadPlugin from './plugins/LsImage/LsFileUploadPlugin';\nimport LsImageSelectPlugin from './plugins/LsImage/lsimageselect';\nimport LsImageSizePlugin from './plugins/LsImage/lsimagesize';\n\nimport './plugins/assets/styles.scss';\n\nexport default class LsCkEditor extends ClassicEditorBase {}\n\nLsCkEditor.builtinPlugins = [\n EssentialsPlugin,\n FontPlugin,\n PasteFromOfficePlugin,\n HeadingPlugin,\n BoldPlugin,\n ItalicPlugin,\n UnderlinePlugin,\n BlockQuotePlugin,\n AutoformatPlugin,\n Alignment,\n LinkPlugin,\n ListPlugin,\n TablePlugin,\n ParagraphPlugin,\n MediaEmbed,\n ImagePlugin,\n ImageCaptionPlugin,\n ImageStylePlugin,\n ImageToolbarPlugin,\n ImageUploadPlugin,\n LsReplacements,\n LsFileUploadPlugin,\n LsImageSelectPlugin,\n LsImageSizePlugin,\n];\n\nLsCkEditor.defaultConfig = {\n toolbar: {\n items: [\n 'heading',\n 'fontSize',\n 'fontColor',\n '|',\n 'bold',\n 'italic',\n 'underline',\n 'link',\n 'alignment',\n '|',\n 'bulletedList',\n 'numberedList',\n 'blockQuote',\n 'undo',\n 'redo',\n 'insertTable',\n '|',\n 'mediaEmbed',\n '|',\n 'imageUpload',\n 'selectImage',\n 'expressions'\n ]\n },\n image: {\n toolbar: [\n 'imageStyle:full',\n 'imageStyle:side',\n '|',\n 'imageTextAlternative',\n 'imageSize',\n ]\n },\n language: LS.data.language\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"aceEditor--main\"},[_c('div',{staticClass:\"aceEditor--topbar\"},[(_vm.showThemeToggle)?_c('div',{staticClass:\"aceEditor--subcontainer\"},[_c('button',{staticClass:\"btn btn-xs btn-default\",on:{\"click\":function($event){$event.preventDefault();return _vm.toggleDarkMode($event)}}},[_vm._v(\" \"+_vm._s(_vm._f(\"translate\")('Toggle dark mode')))])]):_vm._e(),(_vm.showLangSelector)?_c('div',{staticClass:\"aceEditor--subcontainer\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.lang),expression:\"lang\"}],staticClass:\"aceEditor--langselect\",on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.lang=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',{attrs:{\"value\":\"html\"}},[_vm._v(\"HTML\")]),_c('option',{attrs:{\"value\":\"javascript\"}},[_vm._v(\"JavaScript\")]),_c('option',{attrs:{\"value\":\"css\"}},[_vm._v(\"CSS\")])])]):_vm._e()]),_c('div',{staticClass:\"aceEditor--editor\",attrs:{\"id\":_vm.thisId}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render, staticRenderFns\nimport script from \"./_abstractInputType.vue?vue&type=script&lang=js&\"\nexport * from \"./_abstractInputType.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render, staticRenderFns\nimport script from \"./_abstractSubquestionAndAnswers.vue?vue&type=script&lang=js&\"\nexport * from \"./_abstractSubquestionAndAnswers.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AceEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AceEditor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AceEditor.vue?vue&type=template&id=f32b7c8a&scoped=true&\"\nimport script from \"./AceEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./AceEditor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AceEditor.vue?vue&type=style&index=0&id=f32b7c8a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f32b7c8a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"scope-iframe-fill\",class:_vm.htmlClass,attrs:{\"border\":\"0\",\"id\":_vm.id}},[(_vm.loading)?_c('div',{staticClass:\"ls-flex align-content-center align-items-center scope-loader\"},[_vm._m(0)]):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"loader-previewframe text-center\"},[_c('div',{staticClass:\"contain-pulse animate-pulse\"},[_c('div',{staticClass:\"square\"}),_c('div',{staticClass:\"square\"}),_c('div',{staticClass:\"square\"}),_c('div',{staticClass:\"square\"})])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./_previewFrame.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./_previewFrame.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./_previewFrame.vue?vue&type=template&id=131a812e&scoped=true&\"\nimport script from \"./_previewFrame.vue?vue&type=script&lang=js&\"\nexport * from \"./_previewFrame.vue?vue&type=script&lang=js&\"\nimport style0 from \"./_previewFrame.vue?vue&type=style&index=0&id=131a812e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"131a812e\",\n null\n \n)\n\nexport default component.exports","export default {\n methods: {\n __runAjax(uri, data = {}, method = 'get', dataType = 'json') {\n const csrfObject = LS.data.csrfTokenData;\n const sendData = LS.ld.merge(data,csrfObject);\n return new Promise((resolve, reject) => {\n if ($ == undefined) {\n reject('JQUERY NOT AVAILABLE!');\n }\n $.ajax({\n url: uri,\n method: method || 'get',\n data: sendData,\n dataType,\n success: (response, status, xhr) => {\n resolve({\n success: true,\n data: response,\n transferStatus: status,\n xhr: xhr\n });\n },\n error: (xhr, status, error) => {\n const responseData = xhr.responseJSON || xhr.responseText;\n reject({\n success: false,\n error: error,\n data: responseData,\n transferStatus: status,\n xhr: xhr\n });\n }\n });\n });\n },\n $_post(uri, data) {\n return this.__runAjax(uri, data, 'post');\n },\n $_get(uri, data) {\n return this.__runAjax(uri, data, 'get');\n },\n $_load(uri, data, method='get') {\n return this.__runAjax(uri, data, method, \"html\");\n },\n $_delete(uri, data) {\n return this.__runAjax(uri, data, 'delete');\n },\n $_put(uri, data) {\n return this.__runAjax(uri, data, 'put');\n }\n }\n};\n","\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./mainEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./mainEditor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./mainEditor.vue?vue&type=template&id=3e63d413&scoped=true&\"\nimport script from \"./mainEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./mainEditor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./mainEditor.vue?vue&type=style&index=0&id=3e63d413&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3e63d413\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"ls-flex scope-set-min-height scoped-general-settings\",class:_vm.collapsedMenu ? 'collapsed' : 'non-collapsed'},[_c('transition',{attrs:{\"name\":\"slide-fade\"}},[(!_vm.loading && !_vm.collapsedMenu)?_c('div',{staticClass:\"panel panel-default question-option-general-container col-12\",attrs:{\"id\":\"uncollapsed-general-settings\"}},[_c('div',{staticClass:\"panel-heading\"},[_vm._v(\" \\n \"+_vm._s(_vm._f(\"translate\")(\"General Settings\"))+\"\\n \"),_c('button',{staticClass:\"pull-right btn btn-default btn-xs\",on:{\"click\":function($event){_vm.collapsedMenu=true}}},[_c('i',{staticClass:\"fa fa-chevron-right\"})])]),_c('div',{staticClass:\"panel-body\"},[_c('div',{staticClass:\"list-group\"},_vm._l((_vm.generalSettingOptions),function(generalSetting){return _c('div',{key:generalSetting.name,staticClass:\"list-group-item question-option-general-setting-block\"},[_c(_vm.getComponentName(generalSetting.inputtype),{tag:\"component\",attrs:{\"elId\":generalSetting.formElementId,\"elName\":generalSetting.formElementName,\"elLabel\":generalSetting.title,\"elHelp\":generalSetting.formElementHelp,\"currentValue\":generalSetting.formElementValue,\"elOptions\":generalSetting.formElementOptions,\"debug\":generalSetting,\"readonly\":_vm.isReadonly(generalSetting)},on:{\"change\":function($event){return _vm.reactOnChange($event, generalSetting)}}})],1)}),0)])]):_vm._e()]),_c('transition',{attrs:{\"name\":\"slide-fade\"}},[(!_vm.loading && _vm.collapsedMenu)?_c('button',{staticClass:\"btn btn-default scoped--special-collapse\",attrs:{\"id\":\"collapsed-general-settings\"},on:{\"click\":function($event){_vm.collapsedMenu=false}}},[_c('i',{staticClass:\"fa fa-chevron-left\"}),_c('div',{staticClass:\"special-collapse-text\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"translate\")(\"General Settings\"))+\"\\n \")])]):_vm._e()]),_c('transition',{attrs:{\"name\":\"slide-fade\"}},[(_vm.loading)?_c('div',{staticClass:\"row\"},[_c('loader-widget',{attrs:{\"id\":\"generalSettingsLoader\"}})],1):_vm._e()])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-row\"},[((_vm.elHelp.length>0) && !_vm.readonly)?_c('i',{staticClass:\"fa fa-question pull-right\",attrs:{\"aria-expanded\":!_vm.triggerShowHelp,\"aria-controls\":'help-'+(_vm.elName || _vm.elId)},on:{\"click\":function($event){_vm.triggerShowHelp=!_vm.triggerShowHelp}}}):_vm._e(),_c('label',{staticClass:\"form-label\",attrs:{\"for\":_vm.elId}},[_vm._v(\" \"+_vm._s(_vm.elLabel)+\" \")]),_c('div',{staticClass:\"inputtype--toggle-container\",class:_vm.getClasses},[_c('bootstrap-toggle',{attrs:{\"options\":_vm.switchOptions,\"disabled\":_vm.disabled || _vm.readonly},model:{value:(_vm.curValue),callback:function ($$v) {_vm.curValue=$$v},expression:\"curValue\"}})],1),_c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showHelp),expression:\"showHelp\"}],staticClass:\"question-option-help well\",attrs:{\"id\":'help-'+(_vm.elName || _vm.elId)},domProps:{\"innerHTML\":_vm._s(_vm.elHelp)}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./_abstractInputType.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./_abstractInputType.vue?vue&type=script&lang=js&\"","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./switch.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./switch.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./switch.vue?vue&type=template&id=77e8bb4c&\"\nimport script from \"./switch.vue?vue&type=script&lang=js&\"\nexport * from \"./switch.vue?vue&type=script&lang=js&\"\nimport style0 from \"./switch.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-row\"},[((_vm.elHelp.length>0) && !_vm.readonly)?_c('i',{staticClass:\"fa fa-question pull-right\",attrs:{\"aria-expanded\":!_vm.triggerShowHelp,\"aria-controls\":'help-'+(_vm.elName || _vm.elId)},on:{\"click\":function($event){_vm.triggerShowHelp=!_vm.triggerShowHelp}}}):_vm._e(),_c('label',{staticClass:\"form-label\",attrs:{\"for\":_vm.elId}},[_vm._v(\" \"+_vm._s(_vm.elLabel)+\" \")]),_c('div',{staticClass:\"input-group col-12\"},[(_vm.hasPrefix)?_c('div',{staticClass:\"input-group-addon\"},[_vm._v(\" \"+_vm._s(_vm.elOptions.inputGroup.prefix)+\" \")]):_vm._e(),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.curValue),expression:\"curValue\"}],class:_vm.getClasses,attrs:{\"type\":\"text\",\"pattern\":_vm.elOptions.elInputPattern,\"name\":_vm.elName || _vm.elId,\"id\":_vm.elId,\"readonly\":_vm.readonly},domProps:{\"value\":(_vm.curValue)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.curValue=$event.target.value}}}),(_vm.hasSuffix)?_c('div',{staticClass:\"input-group-addon\"},[_vm._v(\" \"+_vm._s(_vm.elOptions.inputGroup.suffix)+\" \")]):_vm._e()]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showHelp),expression:\"showHelp\"}],staticClass:\"question-option-help well\",attrs:{\"id\":'help-'+(_vm.elName || _vm.elId)},domProps:{\"innerHTML\":_vm._s(_vm.elHelp)}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./text.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./text.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./text.vue?vue&type=template&id=3c4a0cd1&\"\nimport script from \"./text.vue?vue&type=script&lang=js&\"\nexport * from \"./text.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-row\"},[((_vm.elHelp.length>0) && !_vm.readonly)?_c('i',{staticClass:\"fa fa-question pull-right\",attrs:{\"aria-expanded\":!_vm.triggerShowHelp,\"aria-controls\":'help-'+(_vm.elName || _vm.elId)},on:{\"click\":function($event){_vm.triggerShowHelp=!_vm.triggerShowHelp}}}):_vm._e(),_c('label',{staticClass:\"form-label\",attrs:{\"for\":_vm.elId}},[_vm._v(\" \"+_vm._s(_vm.elLabel)+\" \")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.curValue),expression:\"curValue\"}],class:_vm.getClasses,attrs:{\"name\":_vm.elName || _vm.elId,\"id\":_vm.elId,\"disabled\":_vm.readonly},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.curValue=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.elOptions.options.option),function(optionObject,i){return _c('option',{key:i,domProps:{\"value\":_vm.simpleValue(optionObject.value)}},[_vm._v(\"\\n \"+_vm._s(optionObject.text)+\"\\n \")])}),0),_c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showHelp),expression:\"showHelp\"}],staticClass:\"question-option-help well\",attrs:{\"id\":'help-'+(_vm.elName || _vm.elId)},domProps:{\"innerHTML\":_vm._s(_vm.elHelp)}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./select.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./select.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./select.vue?vue&type=template&id=7cae36dd&\"\nimport script from \"./select.vue?vue&type=script&lang=js&\"\nexport * from \"./select.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-row\"},[((_vm.elHelp.length>0) && !_vm.readonly)?_c('i',{staticClass:\"fa fa-question pull-right\",attrs:{\"aria-expanded\":!_vm.triggerShowHelp,\"aria-controls\":'help-'+(_vm.elName || _vm.elId)},on:{\"click\":function($event){_vm.triggerShowHelp=!_vm.triggerShowHelp}}}):_vm._e(),_c('label',{staticClass:\"form-label\",attrs:{\"for\":_vm.elId}},[_vm._v(\" \"+_vm._s(_vm.elLabel)+\" \")]),_c('div',{class:_vm.getClasses,attrs:{\"name\":_vm.elName || _vm.elId,\"id\":_vm.elId},domProps:{\"innerHTML\":_vm._s(_vm.curValue)}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showHelp),expression:\"showHelp\"}],staticClass:\"question-option-help well\",attrs:{\"id\":'help-'+(_vm.elName || _vm.elId)},domProps:{\"innerHTML\":_vm._s(_vm.elHelp)}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./textdisplay.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./textdisplay.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./textdisplay.vue?vue&type=template&id=147e2447&\"\nimport script from \"./textdisplay.vue?vue&type=script&lang=js&\"\nexport * from \"./textdisplay.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-row\"},[((_vm.elHelp.length>0) && !_vm.readonly)?_c('i',{staticClass:\"fa fa-question pull-right\",attrs:{\"aria-expanded\":!_vm.triggerShowHelp,\"aria-controls\":'help-'+(_vm.elName || _vm.elId)},on:{\"click\":function($event){_vm.triggerShowHelp=!_vm.triggerShowHelp}}}):_vm._e(),_c('label',{staticClass:\"form-label\",attrs:{\"for\":_vm.elId}},[_vm._v(\" \"+_vm._s(_vm.elLabel)+\" \")]),_c('div',{staticClass:\"input-group col-12\"},[(_vm.hasPrefix)?_c('div',{staticClass:\"input-group-addon\"},[_vm._v(\" \"+_vm._s(_vm.elOptions.inputGroup.prefix)+\" \")]):_vm._e(),_c('textarea',_vm._b({directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.curValue),expression:\"curValue\"}],class:_vm.getClasses,attrs:{\"name\":_vm.elName || _vm.elId,\"id\":_vm.elId,\"readonly\":_vm.readonly},domProps:{\"value\":(_vm.curValue)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.curValue=$event.target.value}}},'textarea',_vm.elOptions.attributes,false)),(_vm.hasSuffix)?_c('div',{staticClass:\"input-group-addon\"},[_vm._v(\" \"+_vm._s(_vm.elOptions.inputGroup.suffix)+\" \")]):_vm._e()]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showHelp),expression:\"showHelp\"}],staticClass:\"question-option-help well\",attrs:{\"id\":'help-'+(_vm.elName || _vm.elId)},domProps:{\"innerHTML\":_vm._s(_vm.elHelp)}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./textarea.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./textarea.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./textarea.vue?vue&type=template&id=4ecf0454&\"\nimport script from \"./textarea.vue?vue&type=script&lang=js&\"\nexport * from \"./textarea.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-row\"},[((_vm.elHelp.length>0) && !_vm.readonly)?_c('i',{staticClass:\"fa fa-question pull-right\",attrs:{\"aria-expanded\":!_vm.triggerShowHelp,\"aria-controls\":'help-'+(_vm.elName || _vm.elId)},on:{\"click\":function($event){_vm.triggerShowHelp=!_vm.triggerShowHelp}}}):_vm._e(),_c('label',{staticClass:\"form-label\"},[_vm._v(\" \"+_vm._s(_vm.elLabel)+\" \")]),_c('div',{staticClass:\"btn-group col-12\"},_vm._l((_vm.cleanOptions),function(optionObject,i){return _c('label',{key:i,class:_vm.getHTMLClasses(optionObject.value),attrs:{\"type\":\"button\",\"for\":'input-'+(_vm.elName || _vm.elId)+'_'+i,\"disabled\":_vm.readonly}},[(!_vm.readonly)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.curValue),expression:\"curValue\"}],attrs:{\"type\":\"radio\",\"id\":'input-'+(_vm.elName || _vm.elId)+'_'+i,\"name\":_vm.elName || _vm.elId},domProps:{\"value\":_vm.simpleValue(optionObject.value),\"checked\":_vm._q(_vm.curValue,_vm.simpleValue(optionObject.value))},on:{\"change\":function($event){_vm.curValue=_vm.simpleValue(optionObject.value)}}}):_vm._e(),_vm._v(\"\\n \"+_vm._s(optionObject.text)+\"\\n \")])}),0),_c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showHelp),expression:\"showHelp\"}],staticClass:\"question-option-help well\",attrs:{\"id\":'help-'+(_vm.elName || _vm.elId)},domProps:{\"innerHTML\":_vm._s(_vm.elHelp)}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./buttongroup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./buttongroup.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./buttongroup.vue?vue&type=template&id=1d5928d0&\"\nimport script from \"./buttongroup.vue?vue&type=script&lang=js&\"\nexport * from \"./buttongroup.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-row\"},[((_vm.elHelp.length>0) && !_vm.readonly)?_c('i',{staticClass:\"fa fa-question pull-right\",attrs:{\"aria-expanded\":!_vm.triggerShowHelp,\"aria-controls\":'help-'+(_vm.elName || _vm.elId)},on:{\"click\":function($event){_vm.triggerShowHelp=!_vm.triggerShowHelp}}}):_vm._e(),_c('label',{staticClass:\"form-label\",attrs:{\"for\":_vm.elId}},[_vm._v(\" \"+_vm._s(_vm.elLabel)+\" \")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.curValue),expression:\"curValue\"}],class:_vm.getClasses,attrs:{\"name\":_vm.elName || _vm.elId,\"id\":_vm.elId,\"disabled\":_vm.readonly},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.curValue=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.elOptions.options),function(optionObject,i){return _c('option',{key:i,domProps:{\"value\":_vm.simpleValue(optionObject.value)}},[_vm._v(\"\\n \"+_vm._s(optionObject.text)+\"\\n \")])}),0),_c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showHelp),expression:\"showHelp\"}],staticClass:\"question-option-help well\",attrs:{\"id\":'help-'+(_vm.elName || _vm.elId)},domProps:{\"innerHTML\":_vm._s(_vm.elHelp)}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./questiontheme.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./questiontheme.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./questiontheme.vue?vue&type=template&id=2e0e563a&\"\nimport script from \"./questiontheme.vue?vue&type=script&lang=js&\"\nexport * from \"./questiontheme.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-row\"},[((_vm.elHelp.length>0) && !_vm.readonly)?_c('i',{staticClass:\"fa fa-question pull-right\",attrs:{\"aria-expanded\":!_vm.triggerShowHelp,\"aria-controls\":'help-'+(_vm.elName || _vm.elId)},on:{\"click\":function($event){_vm.triggerShowHelp=!_vm.triggerShowHelp}}}):_vm._e(),_c('label',{staticClass:\"form-label\",attrs:{\"for\":_vm.elId}},[_vm._v(\" \"+_vm._s(_vm.elLabel)+\" \")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.curValue),expression:\"curValue\"}],class:_vm.getClasses,attrs:{\"name\":_vm.elName || _vm.elId,\"id\":_vm.elId,\"disabled\":_vm.readonly},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.curValue=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.elOptions.options),function(optionObject,i){return _c('option',{key:i,domProps:{\"value\":_vm.simpleValue(optionObject.value)}},[_vm._v(\"\\n \"+_vm._s(optionObject.text)+\"\\n \")])}),0),_c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showHelp),expression:\"showHelp\"}],staticClass:\"question-option-help well\",attrs:{\"id\":'help-'+(_vm.elName || _vm.elId)},domProps:{\"innerHTML\":_vm._s(_vm.elHelp)}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./questiongroup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./questiongroup.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./questiongroup.vue?vue&type=template&id=7e8edcc0&\"\nimport script from \"./questiongroup.vue?vue&type=script&lang=js&\"\nexport * from \"./questiongroup.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-row\"},[((_vm.elHelp.length>0) && !_vm.readonly)?_c('i',{staticClass:\"fa fa-question pull-right\",attrs:{\"aria-expanded\":!_vm.triggerShowHelp,\"aria-controls\":'help-'+(_vm.elName || _vm.elId)},on:{\"click\":function($event){_vm.triggerShowHelp=!_vm.triggerShowHelp}}}):_vm._e(),_c('label',{staticClass:\"form-label\",attrs:{\"for\":_vm.elId}},[_vm._v(\" \"+_vm._s(_vm.elLabel)+\" \")]),_c('div',{staticClass:\"input-group col-12\"},[(_vm.hasPrefix)?_c('div',{staticClass:\"input-group-addon\"},[_vm._v(\" \"+_vm._s(_vm.elOptions.inputGroup.prefix)+\" \")]):_vm._e(),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.curValue),expression:\"curValue\"}],class:_vm.getClasses,attrs:{\"type\":\"number\",\"name\":_vm.elName || _vm.elId,\"id\":_vm.elId,\"max\":12,\"min\":1,\"readonly\":_vm.readonly},domProps:{\"value\":(_vm.curValue)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.curValue=$event.target.value}}}),(_vm.hasSuffix)?_c('div',{staticClass:\"input-group-addon\"},[_vm._v(\" \"+_vm._s(_vm.elOptions.inputGroup.suffix)+\" \")]):_vm._e()]),_c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showHelp),expression:\"showHelp\"}],staticClass:\"question-option-help well\",attrs:{\"id\":'help-'+(_vm.elName || _vm.elId)},domProps:{\"innerHTML\":_vm._s(_vm.elHelp)}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./columns.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./columns.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./columns.vue?vue&type=template&id=3217d336&\"\nimport script from \"./columns.vue?vue&type=script&lang=js&\"\nexport * from \"./columns.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"overflow\":\"scroll\",\"max-height\":\"4rem\"}},[_c('pre',[_vm._v(_vm._s(_vm.debug))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./stub.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./stub.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./stub.vue?vue&type=template&id=7a559a9d&\"\nimport script from \"./stub.vue?vue&type=script&lang=js&\"\nexport * from \"./stub.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./generalSettings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./generalSettings.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./generalSettings.vue?vue&type=template&id=3ba31b92&scoped=true&\"\nimport script from \"./generalSettings.vue?vue&type=script&lang=js&\"\nexport * from \"./generalSettings.vue?vue&type=script&lang=js&\"\nimport style0 from \"./generalSettings.vue?vue&type=style&index=0&id=3ba31b92&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3ba31b92\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-12 scope-apply-base-style scope-min-height\"},[_c('transition',{attrs:{\"name\":\"slide-fade\"}},[(!_vm.loading && _vm.showAdvancedOptions)?_c('div',{staticClass:\"container-fluid\",attrs:{\"id\":\"advanced-options-container\"}},[_c('div',{staticClass:\"row scoped-tablist-container\"},[(_vm.showSubquestionEdit || _vm.showAnswerOptionEdit)?[_c('ul',{staticClass:\"nav nav-tabs scoped-tablist-subquestionandanswers\",attrs:{\"role\":\"tablist\"}},[(_vm.showSubquestionEdit)?_c('li',{class:_vm.currentTabComponent == 'subquestions' ? 'active' : ''},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.selectCurrentTab('subquestions')}}},[_vm._v(_vm._s(_vm._f(\"translate\")(\"subquestions\")))])]):_vm._e(),(_vm.showAnswerOptionEdit)?_c('li',{class:_vm.currentTabComponent == 'answeroptions' ? 'active' : ''},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.selectCurrentTab('answeroptions')}}},[_vm._v(_vm._s(_vm._f(\"translate\")(\"answeroptions\")))])]):_vm._e()])]:_vm._e(),(!_vm.hideAdvancedOptions)?_c('ul',{staticClass:\"nav nav-tabs scoped-tablist-advanced-settings\",attrs:{\"role\":\"tablist\"}},_vm._l((_vm.tabs),function(advancedSettingCategory){return _c('li',{key:'tablist-'+advancedSettingCategory,class:_vm.$store.state.questionAdvancedSettingsCategory == advancedSettingCategory && _vm.currentTabComponent == 'settings-tab' ? 'active' : ''},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.selectCurrentTab('settings-tab', advancedSettingCategory)}}},[_vm._v(_vm._s(advancedSettingCategory))])])}),0):_vm._e()],2),_c('div',{staticClass:\"row scope-border-open-top\"},[_c(_vm.currentTabComponentComputed,{tag:\"component\",attrs:{\"event\":_vm.event,\"readonly\":_vm.readonly},on:{\"eventSet\":_vm.eventSet,\"triggerEvent\":_vm.triggerEvent}})],1)]):_vm._e()]),_c('transition',{attrs:{\"name\":\"slide-fade\"}},[(_vm.loading)?_c('div',{staticClass:\"container-fluid\"},[_c('div',{staticClass:\"row\"},[_c('loader-widget',{attrs:{\"id\":\"advanced-panel-loader\"}})],1)]):_vm._e()])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-sm-12\"},[_c('div',{staticClass:\"list-group scoped-custom-list-group\"},_vm._l((_vm.currentSettingsTab),function(advancedSetting){return _c('div',{key:advancedSetting.name,staticClass:\"list-group-item question-option-advanced-setting-block\"},[_c('pre',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$store.debugMode === true),expression:\"$store.debugMode === true\"}]},[_vm._v(_vm._s(advancedSetting))]),_c(_vm.getComponentName(advancedSetting.inputtype),{tag:\"component\",attrs:{\"elId\":advancedSetting.formElementId,\"elName\":advancedSetting.formElementName,\"elLabel\":advancedSetting.title,\"elHelp\":advancedSetting.formElementHelp,\"currentValue\":_vm.currentValue(advancedSetting),\"elOptions\":advancedSetting.aFormElementOptions,\"debug\":advancedSetting,\"readonly\":_vm.isReadonly(advancedSetting)},on:{\"change\":function($event){return _vm.reactOnChange($event, advancedSetting)}}})],1)}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-row\"},[((_vm.elHelp.length>0) && !_vm.readonly)?_c('i',{staticClass:\"fa fa-question pull-right\",attrs:{\"aria-expanded\":!_vm.triggerShowHelp,\"aria-controls\":'help-'+(_vm.elName || _vm.elId)},on:{\"click\":function($event){_vm.triggerShowHelp=!_vm.triggerShowHelp}}}):_vm._e(),_c('label',{staticClass:\"form-label\",attrs:{\"for\":_vm.elId}},[_vm._v(\" \"+_vm._s(_vm.elLabel)+\" \")]),_c('div',{staticClass:\"input-group col-12\"},[(_vm.hasPrefix)?_c('div',{staticClass:\"input-group-addon\"},[_vm._v(\" \"+_vm._s(_vm.elOptions.inputGroup.prefix)+\" \")]):_vm._e(),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.curValue),expression:\"curValue\"}],class:_vm.getClasses,attrs:{\"type\":\"number\",\"name\":_vm.elName || _vm.elId,\"id\":_vm.elId,\"max\":_vm.elOptions.max || '',\"min\":_vm.elOptions.min || 1,\"readonly\":_vm.readonly},domProps:{\"value\":(_vm.curValue)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.curValue=$event.target.value}}}),(_vm.hasSuffix)?_c('div',{staticClass:\"input-group-addon\"},[_vm._v(\" \"+_vm._s(_vm.elOptions.inputGroup.suffix)+\" \")]):_vm._e()]),_c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showHelp),expression:\"showHelp\"}],staticClass:\"question-option-help well\",attrs:{\"id\":'help-'+(_vm.elName || _vm.elId)},domProps:{\"innerHTML\":_vm._s(_vm.elHelp)}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./integer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./integer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./integer.vue?vue&type=template&id=c669229e&\"\nimport script from \"./integer.vue?vue&type=script&lang=js&\"\nexport * from \"./integer.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./_settingstab.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./_settingstab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./_settingstab.vue?vue&type=template&id=aff0885c&scoped=true&\"\nimport script from \"./_settingstab.vue?vue&type=script&lang=js&\"\nexport * from \"./_settingstab.vue?vue&type=script&lang=js&\"\nimport style0 from \"./_settingstab.vue?vue&type=style&index=0&id=aff0885c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"aff0885c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-sm-12\"},[_c('div',{staticClass:\"container-fluid scoped-main-subquestions-container\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.readonly),expression:\"!readonly\"}],staticClass:\"row\"},[(!_vm.isSurveyActive)?_c('div',{staticClass:\"col-sm-8\"},[_c('button',{staticClass:\"btn btn-default col-3\",on:{\"click\":function($event){$event.preventDefault();return _vm.openQuickAdd()}}},[_vm._v(_vm._s(_vm._f(\"translate\")(\"Quick add\")))])]):_vm._e(),(!_vm.isSurveyActive)?_c('div',{staticClass:\"col-sm-4 text-right\"},[_c('button',{staticClass:\"btn btn-danger col-5\",on:{\"click\":function($event){$event.preventDefault();return _vm.resetSubquestions()}}},[_vm._v(_vm._s(_vm._f(\"translate\")(\"Reset\")))])]):_vm._e()]),_vm._m(0),_vm._l((_vm.subquestionScales),function(subquestionscale){return [_c('div',{key:subquestionscale+'subquestions',staticClass:\"row list-group scoped-subquestion-row-container\",on:{\"dragover\":function($event){$event.preventDefault();return _vm.preventDisallowedCursor($event)}}},[_c('div',{staticClass:\"list-group-item scoped-subquestion-block header-block\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.readonly),expression:\"!readonly\"}],staticClass:\"scoped-move-block\"},[_c('div',[_vm._v(\" \")])]),_c('div',{staticClass:\"scoped-code-block\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"translate\")('Title'))+\"\\n \")]),_c('div',{staticClass:\"scoped-content-block\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"translate\")('Subquestion'))+\"\\n \")]),_c('div',{staticClass:\"scoped-relevance-block\"},[_vm._v(\"\\n \"+_vm._s('Condition')+\"\\n \")]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.readonly),expression:\"!readonly\"}],staticClass:\"scoped-actions-block\"},[_c('div',[_vm._v(\" \")])])]),_vm._l((_vm.currentDataSet[subquestionscale]),function(subquestion){return _c('div',{key:subquestion.qid,staticClass:\"list-group-item scoped-subquestion-block\",class:(_vm.subQuestionDragging ? 'movement-active'+ ((subquestion.qid == _vm.draggedSubQuestion.qid) ? ' in-movement' : '') : ''),on:{\"dragenter\":function($event){$event.preventDefault();return _vm.dragoverSubQuestion($event, subquestion, subquestionscale)}}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.readonly),expression:\"!readonly\"}],staticClass:\"scoped-move-block\"},[_c('i',{staticClass:\"fa fa-bars\",class:_vm.surveyActive ? ' disabled' : ' ',attrs:{\"draggable\":!_vm.surveyActive},on:{\"dragstart\":function($event){return _vm.startDraggingSubQuestion($event, subquestion, subquestionscale)},\"dragend\":function($event){return _vm.endDraggingSubQuestion($event, subquestion, subquestionscale)}}})]),_c('div',{staticClass:\"scoped-code-block \"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(subquestion.title),expression:\"subquestion.title\"}],staticClass:\"form-control\",class:_vm.surveyActive ? ' disabled' : ' ',attrs:{\"type\":\"text\",\"maxlength\":\"20\",\"size\":\"5\",\"disabled\":_vm.surveyActive,\"name\":'code_'+subquestion.question_order+'_'+subquestionscale,\"readonly\":_vm.readonly},domProps:{\"value\":(subquestion.title)},on:{\"dblclick\":_vm.toggleEditMode,\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.preventDefault();return _vm.switchinput(\"answer_\"+_vm.$store.state.activeLanguage+\"_\"+subquestion.qid+\"_\"+subquestionscale)},\"input\":function($event){if($event.target.composing){ return; }_vm.$set(subquestion, \"title\", $event.target.value)}}})]),_c('div',{staticClass:\"scoped-content-block \"},[_c('input',{staticClass:\"answer form-control input\",attrs:{\"type\":\"text\",\"size\":\"20\",\"id\":\"answer_\"+_vm.$store.state.activeLanguage+\"_\"+subquestion.qid+\"_\"+subquestionscale,\"name\":\"answer_\"+_vm.$store.state.activeLanguage+\"_\"+subquestion.qid+\"_\"+subquestionscale,\"placeholder\":_vm.translate(\"Some example subquestion\"),\"readonly\":_vm.readonly},domProps:{\"value\":_vm.getQuestionForCurrentLanguage(subquestion)},on:{\"change\":function($event){return _vm.setQuestionForCurrentLanguage(subquestion,$event, arguments)},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.preventDefault();return _vm.switchinput(\"relevance_\"+subquestion.qid+\"_\"+subquestionscale)},\"dblclick\":_vm.toggleEditMode}})]),_c('div',{staticClass:\"scoped-relevance-block \"},[_c('div',{staticClass:\"input-group\"},[_c('div',{staticClass:\"input-group-addon\"},[_vm._v(\"{\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(subquestion.relevance),expression:\"subquestion.relevance\"}],staticClass:\"relevance_input_field form-control input\",attrs:{\"type\":\"text\",\"id\":\"relevance_\"+subquestion.qid+\"_\"+subquestionscale,\"name\":\"relevance_\"+subquestion.qid+\"_\"+subquestionscale,\"readonly\":_vm.readonly},domProps:{\"value\":(subquestion.relevance)},on:{\"dblclick\":_vm.toggleEditMode,\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.preventDefault();return _vm.switchinput(false,$event)},\"focus\":_vm.triggerScale,\"blur\":_vm.untriggerScale,\"input\":function($event){if($event.target.composing){ return; }_vm.$set(subquestion, \"relevance\", $event.target.value)}}}),_c('div',{staticClass:\"input-group-addon\"},[_vm._v(\"}\")])])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.readonly),expression:\"!readonly\"}],staticClass:\"scoped-actions-block\"},[(!_vm.surveyActive)?_c('button',{staticClass:\"btn btn-default btn-small\",attrs:{\"data-toggle\":\"tooltip\",\"title\":_vm.translate(\"Delete\")},on:{\"click\":function($event){$event.preventDefault();return _vm.deleteThisDataSet(subquestion, subquestionscale)}}},[_c('i',{staticClass:\"fa fa-trash text-danger\"}),_c('span',{staticClass:\"sr-only\"},[_vm._v(_vm._s(_vm._f(\"translate\")(\"Delete\")))])]):_vm._e(),_c('button',{staticClass:\"btn btn-default btn-small\",attrs:{\"data-toggle\":\"tooltip\",\"title\":_vm.translate(\"Open editor\")},on:{\"click\":function($event){$event.preventDefault();return _vm.openPopUpEditor(subquestion, subquestionscale)}}},[_c('i',{staticClass:\"fa fa-edit\"}),_c('span',{staticClass:\"sr-only\"},[_vm._v(_vm._s(_vm._f(\"translate\")(\"Open editor\")))])]),(!_vm.surveyActive)?_c('button',{staticClass:\"btn btn-default btn-small\",attrs:{\"data-toggle\":\"tooltip\",\"title\":_vm.translate(\"Duplicate\")},on:{\"click\":function($event){$event.preventDefault();return _vm.duplicateThisDataSet(subquestion, subquestionscale)}}},[_c('i',{staticClass:\"fa fa-copy\"}),_c('span',{staticClass:\"sr-only\"},[_vm._v(_vm._s(_vm._f(\"translate\")(\"Duplicate\")))])]):_vm._e()])])})],2),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.readonly),expression:\"!readonly\"}],key:subquestionscale+'metaSettings',staticClass:\"row custom custom-margin bottom-15\"},[_c('div',{staticClass:\"col-sm-6 text-left\"},[(!_vm.isSurveyActive)?_c('button',{staticClass:\"btn btn-default\",on:{\"click\":function($event){$event.preventDefault();return _vm.openLabelSets(subquestionscale)}}},[_vm._v(_vm._s(_vm._f(\"translate\")(\"Predefined label sets\")))]):_vm._e(),_c('button',{staticClass:\"btn btn-default\",on:{\"click\":function($event){$event.preventDefault();return _vm.saveAsLabelSet(subquestionscale)}}},[_vm._v(_vm._s(_vm._f(\"translate\")(\"Save as label set\")))])]),_c('div',{staticClass:\"col-sm-6 text-right\"},[(!_vm.surveyActive)?_c('button',{staticClass:\"btn btn-primary\",on:{\"click\":function($event){$event.preventDefault();return _vm.addDataSet(subquestionscale)}}},[_c('i',{staticClass:\"fa fa-plus\"}),_vm._v(\"\\n \"+_vm._s(_vm._f(\"translate\")(\"Add subquestion\"))+\"\\n \")]):_vm._e()])])]})],2)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-sm-12\"},[_c('hr')])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"panel panel-default ls-flex-column fill\"},[_c('div',{staticClass:\"panel-heading\"},[_c('div',{staticClass:\"pagetitle h3\"},[_vm._v(_vm._s(_vm._f(\"translate\")('Quick edit')))]),_c('div',{},[_c('div',{staticClass:\"ls-flex-row align-content-space-between wrap\"},[_c('div',{staticClass:\"col-5\"},[_c('div',{staticClass:\"ls-flex-row\"},[_c('label',{staticClass:\"ls-flex col-6\",attrs:{\"for\":_vm.type+'--Select-Delimiter'}},[_vm._v(_vm._s(_vm._f(\"translate\")(\"Select delimiter\")))]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.delimiter),expression:\"delimiter\"}],staticClass:\"form-control ls-flex\",attrs:{\"id\":_vm.type+'--Select-Delimiter'},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.delimiter=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',{attrs:{\"value\":\";\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"translate\")('Semicolon'))+\" (;)\\n \")]),_c('option',{attrs:{\"value\":\",\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"translate\")('Comma'))+\" (,)\\n \")]),_c('option',{domProps:{\"value\":\"\\t\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"translate\")('Tab'))+\" (\\\\t)\\n \")])])])]),_c('div',{staticClass:\"col-5 text-right\"},[_c('label',{attrs:{\"for\":_vm.type+'--Toggle-Multilingual'}},[_vm._v(_vm._s(_vm._f(\"translate\")('Multilingual entry'))+\" \")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.multilanguage),expression:\"multilanguage\"}],attrs:{\"id\":_vm.type+'--Toggle-Multilingual',\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.multilanguage)?_vm._i(_vm.multilanguage,null)>-1:(_vm.multilanguage)},on:{\"change\":function($event){var $$a=_vm.multilanguage,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.multilanguage=$$a.concat([$$v]))}else{$$i>-1&&(_vm.multilanguage=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.multilanguage=$$c}}}})])])])]),_c('div',{staticClass:\"panel-body ls-flex-column grow-1 fill\"},_vm._l((_vm.scales),function(scale){return _c('div',{key:scale,staticClass:\"ls-flex-column ls-space margin top-5 bottom-5\",class:'scoped-fix-height-1-' + _vm.scales.length},[_c('div',{staticClass:\"ls-flex-row\"},[_c('h3',[_vm._v(_vm._s(_vm._f(\"translate\")('Scale'))+\" \"+_vm._s(scale))])]),_c('div',{staticClass:\"ls-flex-colum grow-1\"},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.unparsed[scale]),expression:\"unparsed[scale]\"}],staticClass:\"scoped-textarea-class\",domProps:{\"value\":(_vm.unparsed[scale])},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\")){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }return _vm.addTabAtCursor($event)},\"paste\":function($event){$event.preventDefault();return _vm.onPaste($event, scale)},\"blur\":function($event){return _vm.parseContent(scale)},\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.unparsed, scale, $event.target.value)}}})]),_c('div',{staticClass:\"ls-flex-row bg-info\"},[_c('div',{staticClass:\"text-left\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"translate\")('New rows'))+\": \"),_c('span',{staticClass:\"badge\"},[_vm._v(_vm._s(_vm.parsed.length))])])])])}),0),_c('div',{staticClass:\"panel-footer\"},[_c('div',{staticClass:\"ls-flex-row wrap\"},[_c('div',{staticClass:\"ls-flex-item\"},[_c('button',{staticClass:\"btn btn-primary ls-space margin left-5\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.replaceCurrent}},[_vm._v(_vm._s(_vm._f(\"translate\")('Replace')))]),_c('button',{staticClass:\"btn btn-primary ls-space margin left-5\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.addToCurrent}},[_vm._v(_vm._s(_vm._f(\"translate\")('Add')))])]),_c('div',{staticClass:\"ls-flex-item text-right\"},[_c('button',{staticClass:\"btn btn-danger ls-space margin right-5\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.resetContent}},[_vm._v(_vm._s(_vm._f(\"translate\")('Reset')))]),_c('button',{staticClass:\"btn btn-danger ls-space margin right-5\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm._f(\"translate\")('Cancel')))])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./textarea.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./textarea.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./textarea.vue?vue&type=template&id=4ecf0454&\"\nimport script from \"./textarea.vue?vue&type=script&lang=js&\"\nexport * from \"./textarea.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-row\"},[((_vm.elHelp.length>0) && !_vm.readonly)?_c('i',{staticClass:\"fa fa-question pull-right\",attrs:{\"aria-expanded\":!_vm.triggerShowHelp,\"aria-controls\":'help-'+(_vm.elName || _vm.elId)},on:{\"click\":function($event){_vm.triggerShowHelp=!_vm.triggerShowHelp}}}):_vm._e(),_c('label',{staticClass:\"form-label\"},[_vm._v(\" \"+_vm._s(_vm.elLabel)+\" \")]),_c('div',{staticClass:\"btn-group col-12\"},_vm._l((_vm.cleanOptions),function(optionObject,i){return _c('label',{key:i,class:_vm.getHTMLClasses(optionObject.value),attrs:{\"type\":\"button\",\"for\":'input-'+(_vm.elName || _vm.elId)+'_'+i,\"disabled\":_vm.readonly}},[(!_vm.readonly)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.curValue),expression:\"curValue\"}],attrs:{\"type\":\"radio\",\"id\":'input-'+(_vm.elName || _vm.elId)+'_'+i,\"name\":_vm.elName || _vm.elId},domProps:{\"value\":_vm.simpleValue(optionObject.value),\"checked\":_vm._q(_vm.curValue,_vm.simpleValue(optionObject.value))},on:{\"change\":function($event){_vm.curValue=_vm.simpleValue(optionObject.value)}}}):_vm._e(),_vm._v(\"\\n \"+_vm._s(optionObject.text)+\"\\n \")])}),0),_c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showHelp),expression:\"showHelp\"}],staticClass:\"question-option-help well\",attrs:{\"id\":'help-'+(_vm.elName || _vm.elId)},domProps:{\"innerHTML\":_vm._s(_vm.elHelp)}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./buttongroup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./buttongroup.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./buttongroup.vue?vue&type=template&id=1d5928d0&\"\nimport script from \"./buttongroup.vue?vue&type=script&lang=js&\"\nexport * from \"./buttongroup.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-row\"},[((_vm.elHelp.length>0) && !_vm.readonly)?_c('i',{staticClass:\"fa fa-question pull-right\",attrs:{\"aria-expanded\":!_vm.triggerShowHelp,\"aria-controls\":'help-'+(_vm.elName || _vm.elId)},on:{\"click\":function($event){_vm.triggerShowHelp=!_vm.triggerShowHelp}}}):_vm._e(),_c('label',{staticClass:\"form-label\",attrs:{\"for\":_vm.elId}},[_vm._v(\" \"+_vm._s(_vm.elLabel)+\" \")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.curValue),expression:\"curValue\"}],class:_vm.getClasses,attrs:{\"name\":_vm.elName || _vm.elId,\"id\":_vm.elId,\"disabled\":_vm.readonly},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.curValue=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.elOptions.options),function(optionObject,i){return _c('option',{key:i,domProps:{\"value\":_vm.simpleValue(optionObject.value)}},[_vm._v(\"\\n \"+_vm._s(optionObject.text)+\"\\n \")])}),0),_c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showHelp),expression:\"showHelp\"}],staticClass:\"question-option-help well\",attrs:{\"id\":'help-'+(_vm.elName || _vm.elId)},domProps:{\"innerHTML\":_vm._s(_vm.elHelp)}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./questiontheme.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./questiontheme.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./questiontheme.vue?vue&type=template&id=2e0e563a&\"\nimport script from \"./questiontheme.vue?vue&type=script&lang=js&\"\nexport * from \"./questiontheme.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-row\"},[((_vm.elHelp.length>0) && !_vm.readonly)?_c('i',{staticClass:\"fa fa-question pull-right\",attrs:{\"aria-expanded\":!_vm.triggerShowHelp,\"aria-controls\":'help-'+(_vm.elName || _vm.elId)},on:{\"click\":function($event){_vm.triggerShowHelp=!_vm.triggerShowHelp}}}):_vm._e(),_c('label',{staticClass:\"form-label\",attrs:{\"for\":_vm.elId}},[_vm._v(\" \"+_vm._s(_vm.elLabel)+\" \")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.curValue),expression:\"curValue\"}],class:_vm.getClasses,attrs:{\"name\":_vm.elName || _vm.elId,\"id\":_vm.elId,\"disabled\":_vm.readonly},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.curValue=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.elOptions.options),function(optionObject,i){return _c('option',{key:i,domProps:{\"value\":_vm.simpleValue(optionObject.value)}},[_vm._v(\"\\n \"+_vm._s(optionObject.text)+\"\\n \")])}),0),_c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showHelp),expression:\"showHelp\"}],staticClass:\"question-option-help well\",attrs:{\"id\":'help-'+(_vm.elName || _vm.elId)},domProps:{\"innerHTML\":_vm._s(_vm.elHelp)}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./questiongroup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./questiongroup.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./questiongroup.vue?vue&type=template&id=7e8edcc0&\"\nimport script from \"./questiongroup.vue?vue&type=script&lang=js&\"\nexport * from \"./questiongroup.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-row\"},[((_vm.elHelp.length>0) && !_vm.readonly)?_c('i',{staticClass:\"fa fa-question pull-right\",attrs:{\"aria-expanded\":!_vm.triggerShowHelp,\"aria-controls\":'help-'+(_vm.elName || _vm.elId)},on:{\"click\":function($event){_vm.triggerShowHelp=!_vm.triggerShowHelp}}}):_vm._e(),_c('label',{staticClass:\"form-label\",attrs:{\"for\":_vm.elId}},[_vm._v(\" \"+_vm._s(_vm.elLabel)+\" \")]),_c('div',{staticClass:\"input-group col-12\"},[(_vm.hasPrefix)?_c('div',{staticClass:\"input-group-addon\"},[_vm._v(\" \"+_vm._s(_vm.elOptions.inputGroup.prefix)+\" \")]):_vm._e(),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.curValue),expression:\"curValue\"}],class:_vm.getClasses,attrs:{\"type\":\"number\",\"name\":_vm.elName || _vm.elId,\"id\":_vm.elId,\"max\":12,\"min\":1,\"readonly\":_vm.readonly},domProps:{\"value\":(_vm.curValue)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.curValue=$event.target.value}}}),(_vm.hasSuffix)?_c('div',{staticClass:\"input-group-addon\"},[_vm._v(\" \"+_vm._s(_vm.elOptions.inputGroup.suffix)+\" \")]):_vm._e()]),_c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showHelp),expression:\"showHelp\"}],staticClass:\"question-option-help well\",attrs:{\"id\":'help-'+(_vm.elName || _vm.elId)},domProps:{\"innerHTML\":_vm._s(_vm.elHelp)}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./columns.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./columns.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./columns.vue?vue&type=template&id=3217d336&\"\nimport script from \"./columns.vue?vue&type=script&lang=js&\"\nexport * from \"./columns.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"overflow\":\"scroll\",\"max-height\":\"4rem\"}},[_c('pre',[_vm._v(_vm._s(_vm.debug))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./stub.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./stub.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./stub.vue?vue&type=template&id=7a559a9d&\"\nimport script from \"./stub.vue?vue&type=script&lang=js&\"\nexport * from \"./stub.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./generalSettings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./generalSettings.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./generalSettings.vue?vue&type=template&id=3ba31b92&scoped=true&\"\nimport script from \"./generalSettings.vue?vue&type=script&lang=js&\"\nexport * from \"./generalSettings.vue?vue&type=script&lang=js&\"\nimport style0 from \"./generalSettings.vue?vue&type=style&index=0&id=3ba31b92&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3ba31b92\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-12 scope-apply-base-style scope-min-height\"},[_c('transition',{attrs:{\"name\":\"slide-fade\"}},[(!_vm.loading && _vm.showAdvancedOptions)?_c('div',{staticClass:\"container-fluid\",attrs:{\"id\":\"advanced-options-container\"}},[_c('div',{staticClass:\"row scoped-tablist-container\"},[(_vm.showSubquestionEdit || _vm.showAnswerOptionEdit)?[_c('ul',{staticClass:\"nav nav-tabs scoped-tablist-subquestionandanswers\",attrs:{\"role\":\"tablist\"}},[(_vm.showSubquestionEdit)?_c('li',{class:_vm.currentTabComponent == 'subquestions' ? 'active' : ''},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.selectCurrentTab('subquestions')}}},[_vm._v(_vm._s(_vm._f(\"translate\")(\"subquestions\")))])]):_vm._e(),(_vm.showAnswerOptionEdit)?_c('li',{class:_vm.currentTabComponent == 'answeroptions' ? 'active' : ''},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.selectCurrentTab('answeroptions')}}},[_vm._v(_vm._s(_vm._f(\"translate\")(\"answeroptions\")))])]):_vm._e()])]:_vm._e(),(!_vm.hideAdvancedOptions)?_c('ul',{staticClass:\"nav nav-tabs scoped-tablist-advanced-settings\",attrs:{\"role\":\"tablist\"}},_vm._l((_vm.tabs),function(advancedSettingCategory){return _c('li',{key:'tablist-'+advancedSettingCategory,class:_vm.$store.state.questionAdvancedSettingsCategory == advancedSettingCategory && _vm.currentTabComponent == 'settings-tab' ? 'active' : ''},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.selectCurrentTab('settings-tab', advancedSettingCategory)}}},[_vm._v(_vm._s(advancedSettingCategory))])])}),0):_vm._e()],2),_c('div',{staticClass:\"row scope-border-open-top\"},[_c(_vm.currentTabComponentComputed,{tag:\"component\",attrs:{\"event\":_vm.event,\"readonly\":_vm.readonly},on:{\"eventSet\":_vm.eventSet,\"triggerEvent\":_vm.triggerEvent}})],1)]):_vm._e()]),_c('transition',{attrs:{\"name\":\"slide-fade\"}},[(_vm.loading)?_c('div',{staticClass:\"container-fluid\"},[_c('div',{staticClass:\"row\"},[_c('loader-widget',{attrs:{\"id\":\"advanced-panel-loader\"}})],1)]):_vm._e()])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-sm-12\"},[_c('div',{staticClass:\"list-group scoped-custom-list-group\"},_vm._l((_vm.currentSettingsTab),function(advancedSetting){return _c('div',{key:advancedSetting.name,staticClass:\"list-group-item question-option-advanced-setting-block\"},[_c('pre',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$store.debugMode === true),expression:\"$store.debugMode === true\"}]},[_vm._v(_vm._s(advancedSetting))]),_c(_vm.getComponentName(advancedSetting.inputtype),{tag:\"component\",attrs:{\"elId\":advancedSetting.formElementId,\"elName\":advancedSetting.formElementName,\"elLabel\":advancedSetting.title,\"elHelp\":advancedSetting.formElementHelp,\"currentValue\":_vm.currentValue(advancedSetting),\"elOptions\":advancedSetting.aFormElementOptions,\"debug\":advancedSetting,\"readonly\":_vm.isReadonly(advancedSetting)},on:{\"change\":function($event){return _vm.reactOnChange($event, advancedSetting)}}})],1)}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-row\"},[((_vm.elHelp.length>0) && !_vm.readonly)?_c('i',{staticClass:\"fa fa-question pull-right\",attrs:{\"aria-expanded\":!_vm.triggerShowHelp,\"aria-controls\":'help-'+(_vm.elName || _vm.elId)},on:{\"click\":function($event){_vm.triggerShowHelp=!_vm.triggerShowHelp}}}):_vm._e(),_c('label',{staticClass:\"form-label\",attrs:{\"for\":_vm.elId}},[_vm._v(\" \"+_vm._s(_vm.elLabel)+\" \")]),_c('div',{staticClass:\"input-group col-12\"},[(_vm.hasPrefix)?_c('div',{staticClass:\"input-group-addon\"},[_vm._v(\" \"+_vm._s(_vm.elOptions.inputGroup.prefix)+\" \")]):_vm._e(),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.curValue),expression:\"curValue\"}],class:_vm.getClasses,attrs:{\"type\":\"number\",\"name\":_vm.elName || _vm.elId,\"id\":_vm.elId,\"max\":_vm.elOptions.max || '',\"min\":_vm.elOptions.min || 1,\"readonly\":_vm.readonly},domProps:{\"value\":(_vm.curValue)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.curValue=$event.target.value}}}),(_vm.hasSuffix)?_c('div',{staticClass:\"input-group-addon\"},[_vm._v(\" \"+_vm._s(_vm.elOptions.inputGroup.suffix)+\" \")]):_vm._e()]),_c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showHelp),expression:\"showHelp\"}],staticClass:\"question-option-help well\",attrs:{\"id\":'help-'+(_vm.elName || _vm.elId)},domProps:{\"innerHTML\":_vm._s(_vm.elHelp)}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./integer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./integer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./integer.vue?vue&type=template&id=c669229e&\"\nimport script from \"./integer.vue?vue&type=script&lang=js&\"\nexport * from \"./integer.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./_settingstab.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./_settingstab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./_settingstab.vue?vue&type=template&id=aff0885c&scoped=true&\"\nimport script from \"./_settingstab.vue?vue&type=script&lang=js&\"\nexport * from \"./_settingstab.vue?vue&type=script&lang=js&\"\nimport style0 from \"./_settingstab.vue?vue&type=style&index=0&id=aff0885c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"aff0885c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-sm-12\"},[_c('div',{staticClass:\"container-fluid scoped-main-subquestions-container\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.readonly),expression:\"!readonly\"}],staticClass:\"row\"},[(!_vm.isSurveyActive)?_c('div',{staticClass:\"col-sm-8\"},[_c('button',{staticClass:\"btn btn-default col-3\",on:{\"click\":function($event){$event.preventDefault();return _vm.openQuickAdd()}}},[_vm._v(_vm._s(_vm._f(\"translate\")(\"Quick add\")))])]):_vm._e(),(!_vm.isSurveyActive)?_c('div',{staticClass:\"col-sm-4 text-right\"},[_c('button',{staticClass:\"btn btn-danger col-5\",on:{\"click\":function($event){$event.preventDefault();return _vm.resetSubquestions()}}},[_vm._v(_vm._s(_vm._f(\"translate\")(\"Reset\")))])]):_vm._e()]),_vm._m(0),_vm._l((_vm.subquestionScales),function(subquestionscale){return [_c('div',{key:subquestionscale+'subquestions',staticClass:\"row list-group scoped-subquestion-row-container\",on:{\"dragover\":function($event){$event.preventDefault();return _vm.preventDisallowedCursor($event)}}},[_c('div',{staticClass:\"list-group-item scoped-subquestion-block header-block\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.readonly),expression:\"!readonly\"}],staticClass:\"scoped-move-block\"},[_c('div',[_vm._v(\" \")])]),_c('div',{staticClass:\"scoped-code-block\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"translate\")('Title'))+\"\\n \")]),_c('div',{staticClass:\"scoped-content-block\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"translate\")('Subquestion'))+\"\\n \")]),_c('div',{staticClass:\"scoped-relevance-block\"},[_vm._v(\"\\n \"+_vm._s('Condition')+\"\\n \")]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.readonly),expression:\"!readonly\"}],staticClass:\"scoped-actions-block\"},[_c('div',[_vm._v(\" \")])])]),_vm._l((_vm.currentDataSet[subquestionscale]),function(subquestion){return _c('div',{key:subquestion.qid,staticClass:\"list-group-item scoped-subquestion-block\",class:(_vm.subQuestionDragging ? 'movement-active'+ ((subquestion.qid == _vm.draggedSubQuestion.qid) ? ' in-movement' : '') : ''),on:{\"dragenter\":function($event){$event.preventDefault();return _vm.dragoverSubQuestion($event, subquestion, subquestionscale)}}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.readonly),expression:\"!readonly\"}],staticClass:\"scoped-move-block\"},[_c('i',{staticClass:\"fa fa-bars\",class:_vm.surveyActive ? ' disabled' : ' ',attrs:{\"draggable\":!_vm.surveyActive},on:{\"dragstart\":function($event){return _vm.startDraggingSubQuestion($event, subquestion, subquestionscale)},\"dragend\":function($event){return _vm.endDraggingSubQuestion($event, subquestion, subquestionscale)}}})]),_c('div',{staticClass:\"scoped-code-block \"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(subquestion.title),expression:\"subquestion.title\"}],staticClass:\"form-control\",class:_vm.surveyActive ? ' disabled' : ' ',attrs:{\"type\":\"text\",\"maxlength\":\"20\",\"size\":\"5\",\"disabled\":_vm.surveyActive,\"name\":'code_'+subquestion.question_order+'_'+subquestionscale,\"readonly\":_vm.readonly},domProps:{\"value\":(subquestion.title)},on:{\"dblclick\":_vm.toggleEditMode,\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.preventDefault();return _vm.switchinput(\"answer_\"+_vm.$store.state.activeLanguage+\"_\"+subquestion.qid+\"_\"+subquestionscale)},\"input\":function($event){if($event.target.composing){ return; }_vm.$set(subquestion, \"title\", $event.target.value)}}})]),_c('div',{staticClass:\"scoped-content-block \"},[_c('input',{staticClass:\"answer form-control input\",attrs:{\"type\":\"text\",\"size\":\"20\",\"id\":\"answer_\"+_vm.$store.state.activeLanguage+\"_\"+subquestion.qid+\"_\"+subquestionscale,\"name\":\"answer_\"+_vm.$store.state.activeLanguage+\"_\"+subquestion.qid+\"_\"+subquestionscale,\"placeholder\":_vm.translate(\"Some example subquestion\"),\"readonly\":_vm.readonly},domProps:{\"value\":_vm.getQuestionForCurrentLanguage(subquestion)},on:{\"change\":function($event){return _vm.setQuestionForCurrentLanguage(subquestion,$event, arguments)},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.preventDefault();return _vm.switchinput(\"relevance_\"+subquestion.qid+\"_\"+subquestionscale)},\"dblclick\":_vm.toggleEditMode}})]),_c('div',{staticClass:\"scoped-relevance-block \"},[_c('div',{staticClass:\"input-group\"},[_c('div',{staticClass:\"input-group-addon\"},[_vm._v(\"{\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(subquestion.relevance),expression:\"subquestion.relevance\"}],staticClass:\"relevance_input_field form-control input\",attrs:{\"type\":\"text\",\"id\":\"relevance_\"+subquestion.qid+\"_\"+subquestionscale,\"name\":\"relevance_\"+subquestion.qid+\"_\"+subquestionscale,\"readonly\":_vm.readonly},domProps:{\"value\":(subquestion.relevance)},on:{\"dblclick\":_vm.toggleEditMode,\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.preventDefault();return _vm.switchinput(false,$event)},\"focus\":_vm.triggerScale,\"blur\":_vm.untriggerScale,\"input\":function($event){if($event.target.composing){ return; }_vm.$set(subquestion, \"relevance\", $event.target.value)}}}),_c('div',{staticClass:\"input-group-addon\"},[_vm._v(\"}\")])])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.readonly),expression:\"!readonly\"}],staticClass:\"scoped-actions-block\"},[(!_vm.surveyActive)?_c('button',{staticClass:\"btn btn-default btn-small\",attrs:{\"data-toggle\":\"tooltip\",\"title\":_vm.translate(\"Delete\")},on:{\"click\":function($event){$event.preventDefault();return _vm.deleteThisDataSet(subquestion, subquestionscale)}}},[_c('i',{staticClass:\"fa fa-trash text-danger\"}),_c('span',{staticClass:\"sr-only\"},[_vm._v(_vm._s(_vm._f(\"translate\")(\"Delete\")))])]):_vm._e(),_c('button',{staticClass:\"btn btn-default btn-small\",attrs:{\"data-toggle\":\"tooltip\",\"title\":_vm.translate(\"Open editor\")},on:{\"click\":function($event){$event.preventDefault();return _vm.openPopUpEditor(subquestion, subquestionscale)}}},[_c('i',{staticClass:\"fa fa-edit\"}),_c('span',{staticClass:\"sr-only\"},[_vm._v(_vm._s(_vm._f(\"translate\")(\"Open editor\")))])]),(!_vm.surveyActive)?_c('button',{staticClass:\"btn btn-default btn-small\",attrs:{\"data-toggle\":\"tooltip\",\"title\":_vm.translate(\"Duplicate\")},on:{\"click\":function($event){$event.preventDefault();return _vm.duplicateThisDataSet(subquestion, subquestionscale)}}},[_c('i',{staticClass:\"fa fa-copy\"}),_c('span',{staticClass:\"sr-only\"},[_vm._v(_vm._s(_vm._f(\"translate\")(\"Duplicate\")))])]):_vm._e()])])})],2),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.readonly),expression:\"!readonly\"}],key:subquestionscale+'metaSettings',staticClass:\"row custom custom-margin bottom-15\"},[_c('div',{staticClass:\"col-sm-6 text-left\"},[(!_vm.isSurveyActive)?_c('button',{staticClass:\"btn btn-default\",on:{\"click\":function($event){$event.preventDefault();return _vm.openLabelSets(subquestionscale)}}},[_vm._v(_vm._s(_vm._f(\"translate\")(\"Predefined label sets\")))]):_vm._e(),_c('button',{staticClass:\"btn btn-default\",on:{\"click\":function($event){$event.preventDefault();return _vm.saveAsLabelSet(subquestionscale)}}},[_vm._v(_vm._s(_vm._f(\"translate\")(\"Save as label set\")))])]),_c('div',{staticClass:\"col-sm-6 text-right\"},[(!_vm.surveyActive)?_c('button',{staticClass:\"btn btn-primary\",on:{\"click\":function($event){$event.preventDefault();return _vm.addDataSet(subquestionscale)}}},[_c('i',{staticClass:\"fa fa-plus\"}),_vm._v(\"\\n \"+_vm._s(_vm._f(\"translate\")(\"Add subquestion\"))+\"\\n \")]):_vm._e()])])]})],2)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-sm-12\"},[_c('hr')])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"panel panel-default ls-flex-column fill\"},[_c('div',{staticClass:\"panel-heading\"},[_c('div',{staticClass:\"pagetitle h3\"},[_vm._v(_vm._s(_vm._f(\"translate\")('Quick edit')))]),_c('div',{},[_c('div',{staticClass:\"ls-flex-row align-content-space-between wrap\"},[_c('div',{staticClass:\"col-5\"},[_c('div',{staticClass:\"ls-flex-row\"},[_c('label',{staticClass:\"ls-flex col-6\",attrs:{\"for\":_vm.type+'--Select-Delimiter'}},[_vm._v(_vm._s(_vm._f(\"translate\")(\"Select delimiter\")))]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.delimiter),expression:\"delimiter\"}],staticClass:\"form-control ls-flex\",attrs:{\"id\":_vm.type+'--Select-Delimiter'},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.delimiter=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',{attrs:{\"value\":\";\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"translate\")('Semicolon'))+\" (;)\\n \")]),_c('option',{attrs:{\"value\":\",\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"translate\")('Comma'))+\" (,)\\n \")]),_c('option',{domProps:{\"value\":\"\\t\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"translate\")('Tab'))+\" (\\\\t)\\n \")])])])]),_c('div',{staticClass:\"col-5 text-right\"},[_c('label',{attrs:{\"for\":_vm.type+'--Toggle-Multilingual'}},[_vm._v(_vm._s(_vm._f(\"translate\")('Multilingual entry'))+\" \")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.multilanguage),expression:\"multilanguage\"}],attrs:{\"id\":_vm.type+'--Toggle-Multilingual',\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.multilanguage)?_vm._i(_vm.multilanguage,null)>-1:(_vm.multilanguage)},on:{\"change\":function($event){var $$a=_vm.multilanguage,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.multilanguage=$$a.concat([$$v]))}else{$$i>-1&&(_vm.multilanguage=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.multilanguage=$$c}}}})])])])]),_c('div',{staticClass:\"panel-body ls-flex-column grow-1 fill\"},_vm._l((_vm.scales),function(scale){return _c('div',{key:scale,staticClass:\"ls-flex-column ls-space margin top-5 bottom-5\",class:'scoped-fix-height-1-' + _vm.scales.length},[_c('div',{staticClass:\"ls-flex-row\"},[_c('h3',[_vm._v(_vm._s(_vm._f(\"translate\")('Scale'))+\" \"+_vm._s(scale))])]),_c('div',{staticClass:\"ls-flex-colum grow-1\"},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.unparsed[scale]),expression:\"unparsed[scale]\"}],staticClass:\"scoped-textarea-class\",domProps:{\"value\":(_vm.unparsed[scale])},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\")){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }return _vm.addTabAtCursor($event)},\"paste\":function($event){$event.preventDefault();return _vm.onPaste($event, scale)},\"blur\":function($event){return _vm.parseContent(scale)},\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.unparsed, scale, $event.target.value)}}})]),_c('div',{staticClass:\"ls-flex-row bg-info\"},[_c('div',{staticClass:\"text-left\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"translate\")('New rows'))+\": \"),_c('span',{staticClass:\"badge\"},[_vm._v(_vm._s(_vm.parsed.length))])])])])}),0),_c('div',{staticClass:\"panel-footer\"},[_c('div',{staticClass:\"ls-flex-row wrap\"},[_c('div',{staticClass:\"ls-flex-item\"},[_c('button',{staticClass:\"btn btn-primary ls-space margin left-5\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.replaceCurrent}},[_vm._v(_vm._s(_vm._f(\"translate\")('Replace')))]),_c('button',{staticClass:\"btn btn-primary ls-space margin left-5\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.addToCurrent}},[_vm._v(_vm._s(_vm._f(\"translate\")('Add')))])]),_c('div',{staticClass:\"ls-flex-item text-right\"},[_c('button',{staticClass:\"btn btn-danger ls-space margin right-5\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.resetContent}},[_vm._v(_vm._s(_vm._f(\"translate\")('Reset')))]),_c('button',{staticClass:\"btn btn-danger ls-space margin right-5\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm._f(\"translate\")('Cancel')))])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n","\n\n","\n","","\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n","\n \n \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n","\n","\n\n","\n","","\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n","\n \n \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n","\n