Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

136 lines
18KB

  1. (self["webpackChunk"] = self["webpackChunk"] || []).push([["adminlte-field-collection"],{
  2. /***/ "../LaclicBundles/SovBundle/Resources/assets/app/adminlte/field/collection/app.collection.js":
  3. /*!***************************************************************************************************!*\
  4. !*** ../LaclicBundles/SovBundle/Resources/assets/app/adminlte/field/collection/app.collection.js ***!
  5. \***************************************************************************************************/
  6. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  7. "use strict";
  8. __webpack_require__.r(__webpack_exports__);
  9. /* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js");
  10. /* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__);
  11. /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
  12. /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_1__);
  13. /* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js");
  14. /* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_2__);
  15. /* harmony import */ var jquery_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! jquery-ui */ "./node_modules/jquery-ui-dist/jquery-ui.js");
  16. /* harmony import */ var jquery_ui__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(jquery_ui__WEBPACK_IMPORTED_MODULE_3__);
  17. /* harmony import */ var _form_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./form.scss */ "../LaclicBundles/SovBundle/Resources/assets/app/adminlte/field/collection/form.scss");
  18. $(document).ready(function () {
  19. initCollectionWidget();
  20. });
  21. function initCollectionWidget() {
  22. $('.field-collection[data-prototype]').each(function (i, collectionWidget) {
  23. setCollectionWidgetSortable($(collectionWidget));
  24. reindexKeyCollectionWidget($(collectionWidget));
  25. setCollectionWidgetAdd($(collectionWidget));
  26. setCollectionWidgetDelete($(collectionWidget));
  27. });
  28. }
  29. function setCollectionWidgetAdd($collectionWidget) {
  30. if ($collectionWidget.data('allow-add')) {
  31. $collectionWidget.find('.field-collection-add').on('click', function (e) {
  32. // grab the prototype template
  33. var newWidget = $collectionWidget.attr('data-prototype'); // replace the "__name__" used in the id and name of the prototype
  34. // with a number that's unique to your emails
  35. // end name attribute looks like name="contact[emails][2]"
  36. newWidget = newWidget.replace(/__name__/g, getNumItems($collectionWidget)); // create a new list element and add it to the list
  37. $collectionWidget.find('.form-widget-compound .field-collection-group').append(newWidget);
  38. $collectionWidget.find('.field-collection-item:last').find('.field-position').val(getNumItems($collectionWidget));
  39. reindexKeyCollectionWidget($collectionWidget);
  40. setCollectionWidgetDelete($collectionWidget);
  41. $collectionWidget.trigger('collection-add-item');
  42. $collectionWidget.data('num-items', $collectionWidget.data('num-items') + 1);
  43. $collectionWidget.find('.collection-empty').hide();
  44. });
  45. }
  46. }
  47. function setCollectionWidgetDelete($collectionWidget) {
  48. if ($collectionWidget.data('allow-delete')) {
  49. $collectionWidget.find('.field-collection-delete').off('click');
  50. $collectionWidget.find('.field-collection-delete').on('click', function () {
  51. $(this).parents('.form-group:first').remove();
  52. reindexKeyCollectionWidget($collectionWidget);
  53. if (getNumItems($collectionWidget) == 0) $collectionWidget.find('.collection-empty').show();
  54. });
  55. }
  56. }
  57. function getNumItems($collectionWidget) {
  58. if ($collectionWidget.data('reindex-key')) {
  59. return $collectionWidget.find('.field-collection-item').length;
  60. } else {
  61. return $collectionWidget.data('num-items');
  62. }
  63. }
  64. function reindexKeyCollectionWidget($collectionWidget) {
  65. if ($collectionWidget.data('reindex-key')) {
  66. $collectionWidget.find('.field-collection-item').each(function (i, item) {
  67. $(item).find('input,textarea').each(function (y, field) {
  68. var $field = $(field); //Chanegment ID
  69. var posId = Tools.indexOfLastDigit($field.prop('id'));
  70. var idPrefix = $field.prop('id').substr(0, posId);
  71. var idSuffix = $field.prop('id').substr(posId + 1);
  72. $field.prop('id', idPrefix + i + idSuffix); //Chanegment Name
  73. var posName = Tools.indexOfLastDigit($field.prop('name'));
  74. var namePrefix = $field.prop('name').substr(0, posName);
  75. var nameSuffix = $field.prop('name').substr(posName + 1);
  76. $field.prop('name', namePrefix + i + nameSuffix);
  77. });
  78. });
  79. }
  80. }
  81. function setCollectionWidgetSortable($collectionWidget) {
  82. if ($collectionWidget.data('sortable')) {
  83. $collectionWidget.find('.field-collection-group').sortable({
  84. "handle": '.lc-btn-sortable',
  85. cancel: ''
  86. });
  87. $collectionWidget.find('.field-collection-group').on("sortupdate", function (event, ui) {
  88. $collectionWidget.find('.field-collection-group>div').each(function (index, item) {
  89. $(item).find('.field-position').val(index);
  90. });
  91. });
  92. }
  93. }
  94. /***/ }),
  95. /***/ "../LaclicBundles/SovBundle/Resources/assets/app/adminlte/field/collection/form.scss":
  96. /*!*******************************************************************************************!*\
  97. !*** ../LaclicBundles/SovBundle/Resources/assets/app/adminlte/field/collection/form.scss ***!
  98. \*******************************************************************************************/
  99. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  100. "use strict";
  101. __webpack_require__.r(__webpack_exports__);
  102. // extracted by mini-css-extract-plugin
  103. /***/ })
  104. },
  105. /******/ __webpack_require__ => { // webpackRuntimeModules
  106. /******/ "use strict";
  107. /******/
  108. /******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
  109. /******/ __webpack_require__.O(0, ["vendors-node_modules_core-js_internals_a-function_js-node_modules_core-js_internals_export_js","vendors-node_modules_core-js_modules_es_array_find_js","vendors-node_modules_core-js_internals_advance-string-index_js-node_modules_core-js_internals-bed4a0","vendors-node_modules_jquery_src_jquery_js","vendors-node_modules_core-js_modules_es_string_replace_js-node_modules_jquery-ui-dist_jquery-ui_js"], () => (__webpack_exec__("../LaclicBundles/SovBundle/Resources/assets/app/adminlte/field/collection/app.collection.js")));
  110. /******/ var __webpack_exports__ = __webpack_require__.O();
  111. /******/ }
  112. ]);
  113. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vTGFjbGljQnVuZGxlcy9Tb3ZCdW5kbGUvUmVzb3VyY2VzL2Fzc2V0cy9hcHAvYWRtaW5sdGUvZmllbGQvY29sbGVjdGlvbi9hcHAuY29sbGVjdGlvbi5qcyIsIndlYnBhY2s6Ly8vLi4vTGFjbGljQnVuZGxlcy9Tb3ZCdW5kbGUvUmVzb3VyY2VzL2Fzc2V0cy9hcHAvYWRtaW5sdGUvZmllbGQvY29sbGVjdGlvbi9mb3JtLnNjc3MiXSwibmFtZXMiOlsiJCIsImRvY3VtZW50IiwicmVhZHkiLCJpbml0Q29sbGVjdGlvbldpZGdldCIsImVhY2giLCJpIiwiY29sbGVjdGlvbldpZGdldCIsInNldENvbGxlY3Rpb25XaWRnZXRTb3J0YWJsZSIsInJlaW5kZXhLZXlDb2xsZWN0aW9uV2lkZ2V0Iiwic2V0Q29sbGVjdGlvbldpZGdldEFkZCIsInNldENvbGxlY3Rpb25XaWRnZXREZWxldGUiLCIkY29sbGVjdGlvbldpZGdldCIsImRhdGEiLCJmaW5kIiwib24iLCJlIiwibmV3V2lkZ2V0IiwiYXR0ciIsInJlcGxhY2UiLCJnZXROdW1JdGVtcyIsImFwcGVuZCIsInZhbCIsInRyaWdnZXIiLCJoaWRlIiwib2ZmIiwicGFyZW50cyIsInJlbW92ZSIsInNob3ciLCJsZW5ndGgiLCJpdGVtIiwieSIsImZpZWxkIiwiJGZpZWxkIiwicG9zSWQiLCJUb29scyIsImluZGV4T2ZMYXN0RGlnaXQiLCJwcm9wIiwiaWRQcmVmaXgiLCJzdWJzdHIiLCJpZFN1ZmZpeCIsInBvc05hbWUiLCJuYW1lUHJlZml4IiwibmFtZVN1ZmZpeCIsInNvcnRhYmxlIiwiY2FuY2VsIiwiZXZlbnQiLCJ1aSIsImluZGV4Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0E7QUFDQTtBQUdBQSxDQUFDLENBQUNDLFFBQUQsQ0FBRCxDQUFZQyxLQUFaLENBQWtCLFlBQVk7QUFDMUJDLHNCQUFvQjtBQUN2QixDQUZEOztBQUtBLFNBQVNBLG9CQUFULEdB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LENBQUNJLElBQVAsQ0FBWSxNQUFaLEVBQW9CSyxVQUFVLEdBQUdwQyxDQUFiLEdBQWlCcUMsVUFBckM7QUFDSCxPQWJEO0FBY0gsS0FmRDtBQWdCSDtBQUNKOztBQUVELFNBQVNuQywyQkFBVCxDQUFxQ0ksaUJBQXJDLEVBQXdEO0FBQ3BELE1BQUlBLGlCQUFpQixDQUFDQyxJQUFsQixDQUF1QixVQUF2QixDQUFKLEVBQXdDO0FBQ3BDRCxxQkFBaUIsQ0FBQ0UsSUFBbEIsQ0FBdUIseUJBQXZCLEVBQWtEOEIsUUFBbEQsQ0FBMkQ7QUFDdkQsZ0JBQVcsa0JBRDRDO0FBRXZEQyxZQUFNLEVBQUU7QUFGK0MsS0FBM0Q7QUFJQWpDLHFCQUFpQixDQUFDRSxJQUFsQixDQUF1Qix5QkFBdkIsRUFBa0RDLEVBQWxELENBQXFELFlBQXJELEVBQW1FLFVBQVUrQixLQUFWLEVBQWlCQyxFQUFqQixFQUFxQjtBQUNwRm5DLHVCQUFpQixDQUFDRSxJQUFsQixDQUF1Qiw2QkFBdkIsRUFBc0RULElBQXRELENBQTJELFVBQVUyQyxLQUFWLEVBQWlCbEIsSUFBakIsRUFBdUI7QUFDOUU3QixTQUFDLENBQUM2QixJQUFELENBQUQsQ0FBUWhCLElBQVIsQ0FBYSxpQkFBYixFQUFnQ1EsR0FBaEMsQ0FBb0MwQixLQUFwQztBQUNILE9BRkQ7QUFHSCxLQUpEO0FBS0g7QUFDSixDOzs7Ozs7Ozs7Ozs7QUNsR0QiLCJmaWxlIjoiYWRtaW5sdGUtZmllbGQtY29sbGVjdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IFwianF1ZXJ5LXVpXCJcbmltcG9ydCBcIi4vZm9ybS5zY3NzXCJcblxuXG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XG4gICAgaW5pdENvbGxlY3Rpb25XaWRnZXQoKTtcbn0pO1xuXG5cbmZ1bmN0aW9uIGluaXRDb2xsZWN0aW9uV2lkZ2V0KCkge1xuXG4gICAgJCgnLmZpZWxkLWNvbGxlY3Rpb25bZGF0YS1wcm90b3R5cGVdJykuZWFjaChmdW5jdGlvbiAoaSwgY29sbGVjdGlvbldpZGdldCkge1xuICAgICAgICBzZXRDb2xsZWN0aW9uV2lkZ2V0U29ydGFibGUoJChjb2xsZWN0aW9uV2lkZ2V0KSk7XG4gICAgICAgIHJlaW5kZXhLZXlDb2xsZWN0aW9uV2lkZ2V0KCQoY29sbGVjdGlvbldpZGdldCkpO1xuXG4gICAgICAgIHNldENvbGxlY3Rpb25XaWRnZXRBZGQoJChjb2xsZWN0aW9uV2lkZ2V0KSk7XG4gICAgICAgIHNldENvbGxlY3Rpb25XaWRnZXREZWxldGUoJChjb2xsZWN0aW9uV2lkZ2V0KSk7XG4gICAgfSk7XG59XG5cbmZ1bmN0aW9uIHNldENvbGxlY3Rpb25XaWRnZXRBZGQoJGNvbGxlY3Rpb25XaWRnZXQpIHtcblxuICAgIGlmICgkY29sbGVjdGlvbldpZGdldC5kYXRhKCdhbGxvdy1hZGQnKSkge1xuICAgICAgICAkY29sbGVjdGlvbldpZGdldC5maW5kKCcuZmllbGQtY29sbGVjdGlvbi1hZGQnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgLy8gZ3JhYiB0aGUgcHJvdG90eXBlIHRlbXBsYXRlXG4gICAgICAgICAgICB2YXIgbmV3V2lkZ2V0ID0gJGNvbGxlY3Rpb25XaWRnZXQuYXR0cignZGF0YS1wcm90b3R5cGUnKTtcbiAgICAgICAgICAgIC8vIHJlcGxhY2UgdGhlIFwiX19uYW1lX19cIiB1c2VkIGluIHRoZSBpZCBhbmQgbmFtZSBvZiB0aGUgcHJvdG90eXBlXG4gICAgICAgICAgICAvLyB3aXRoIGEgbnVtYmVyIHRoYXQncyB1bmlxdWUgdG8geW91ciBlbWFpbHNcbiAgICAgICAgICAgIC8vIGVuZCBuYW1lIGF0dHJpYnV0ZSBsb29rcyBsaWtlIG5hbWU9XCJjb250YWN0W2VtYWlsc11bMl1cIlxuICAgICAgICAgICAgbmV3V2lkZ2V0ID0gbmV3V2lkZ2V0LnJlcGxhY2UoL19fbmFtZV9fL2csIGdldE51bUl0ZW1zKCRjb2xsZWN0aW9uV2lkZ2V0KSk7XG5cbiAgICAgICAgICAgIC8vIGNyZWF0ZSBhIG5ldyBsaXN0IGVsZW1lbnQgYW5kIGFkZCBpdCB0byB0aGUgbGlzdFxuICAgICAgICAgICAgJGNvbGxlY3Rpb25XaWRnZXQuZmluZCgnLmZvcm0td2lkZ2V0LWNvbXBvdW5kIC5maWVsZC1jb2xsZWN0aW9uLWdyb3VwJykuYXBwZW5kKG5ld1dpZGdldCk7XG4gICAgICAgICAgICAkY29sbGVjdGlvbldpZGdldC5maW5kKCcuZmllbGQtY29sbGVjdGlvbi1pdGVtOmxhc3QnKS5maW5kKCcuZmllbGQtcG9zaXRpb24nKS52YWwoZ2V0TnVtSXRlbXMoJGNvbGxlY3Rpb25XaWRnZXQpKTtcblxuICAgICAgICAgICAgcmVpbmRleEtleUNvbGxlY3Rpb25XaWRnZXQoJGNvbGxlY3Rpb25XaWRnZXQpO1xuICAgICAgICAgICAgc2V0Q29sbGVjdGlvbldpZGdldERlbGV0ZSgkY29sbGVjdGlvbldpZGdldCk7XG4gICAgICAgICAgICAkY29sbGVjdGlvbldpZGdldC50cmlnZ2VyKCdjb2xsZWN0aW9uLWFkZC1pdGVtJyk7XG5cbiAgICAgICAgICAgICRjb2xsZWN0aW9uV2lkZ2V0LmRhdGEoJ251bS1pdGVtcycsICRjb2xsZWN0aW9uV2lkZ2V0LmRhdGEoJ251bS1pdGVtcycpICsgMSk7XG4gICAgICAgICAgICAkY29sbGVjdGlvbldpZGdldC5maW5kKCcuY29sbGVjdGlvbi1lbXB0eScpLmhpZGUoKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBzZXRDb2xsZWN0aW9uV2lkZ2V0RGVsZXRlKCRjb2xsZWN0aW9uV2lkZ2V0KSB7XG4gICAgaWYgKCRjb2xsZWN0aW9uV2lkZ2V0LmRhdGEoJ2FsbG93LWRlbGV0ZScpKSB7XG4gICAgICAgICRjb2xsZWN0aW9uV2lkZ2V0LmZpbmQoJy5maWVsZC1jb2xsZWN0aW9uLWRlbGV0ZScpLm9mZignY2xpY2snKTtcbiAgICAgICAgJGNvbGxlY3Rpb25XaWRnZXQuZmluZCgnLmZpZWxkLWNvbGxlY3Rpb24tZGVsZXRlJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgJCh0aGlzKS5wYXJlbnRzKCcuZm9ybS1ncm91cDpmaXJzdCcpLnJlbW92ZSgpO1xuICAgICAgICAgICAgcmVpbmRleEtleUNvbGxlY3Rpb25XaWRnZXQoJGNvbGxlY3Rpb25XaWRnZXQpO1xuICAgICAgICAgICAgaWYoZ2V0TnVtSXRlbXMoJGNvbGxlY3Rpb25XaWRnZXQpPT0wKSRjb2xsZWN0aW9uV2lkZ2V0LmZpbmQoJy5jb2xsZWN0aW9uLWVtcHR5Jykuc2hvdygpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGdldE51bUl0ZW1zKCRjb2xsZWN0aW9uV2lkZ2V0KSB7XG4gICAgaWYgKCRjb2xsZWN0aW9uV2lkZ2V0LmRhdGEoJ3JlaW5kZXgta2V5JykpIHtcbiAgICAgICAgcmV0dXJuICRjb2xsZWN0aW9uV2lkZ2V0LmZpbmQoJy5maWVsZC1jb2xsZWN0aW9uLWl0ZW0nKS5sZW5ndGg7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuICRjb2xsZWN0aW9uV2lkZ2V0LmRhdGEoJ251bS1pdGVtcycpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gcmVpbmRleEtleUNvbGxlY3Rpb25XaWRnZXQoJGNvbGxlY3Rpb25XaWRnZXQpIHtcbiAgICBpZiAoJGNvbGxlY3Rpb25XaWRnZXQuZGF0YSgncmVpbmRleC1rZXknKSkge1xuICAgICAgICAkY29sbGVjdGlvbldpZGdldC5maW5kKCcuZmllbGQtY29sbGVjdGlvbi1pdGVtJykuZWFjaChmdW5jdGlvbiAoaSwgaXRlbSkge1xuICAgICAgICAgICAgJChpdGVtKS5maW5kKCdpbnB1dCx0ZXh0YXJlYScpLmVhY2goZnVuY3Rpb24gKHksIGZpZWxkKSB7XG4gICAgICAgICAgICAgICAgbGV0ICRmaWVsZCA9ICQoZmllbGQpO1xuICAgICAgICAgICAgICAgIC8vQ2hhbmVnbWVudCBJRFxuICAgICAgICAgICAgICAgIGxldCBwb3NJZCA9IFRvb2xzLmluZGV4T2ZMYXN0RGlnaXQoJGZpZWxkLnByb3AoJ2lkJykpO1xuICAgICAgICAgICAgICAgIGxldCBpZFByZWZpeCA9ICRmaWVsZC5wcm9wKCdpZCcpLnN1YnN0cigwLCBwb3NJZCk7XG4gICAgICAgICAgICAgICAgbGV0IGlkU3VmZml4ID0gJGZpZWxkLnByb3AoJ2lkJykuc3Vic3RyKHBvc0lkICsgMSk7XG4gICAgICAgICAgICAgICAgJGZpZWxkLnByb3AoJ2lkJywgaWRQcmVmaXggKyBpICsgaWRTdWZmaXgpO1xuXG4gICAgICAgICAgICAgICAgLy9DaGFuZWdtZW50IE5hbWVcbiAgICAgICAgICAgICAgICBsZXQgcG9zTmFtZSA9IFRvb2xzLmluZGV4T2ZMYXN0RGlnaXQoJGZpZWxkLnByb3AoJ25hbWUnKSk7XG4gICAgICAgICAgICAgICAgbGV0IG5hbWVQcmVmaXggPSAkZmllbGQucHJvcCgnbmFtZScpLnN1YnN0cigwLCBwb3NOYW1lKTtcbiAgICAgICAgICAgICAgICBsZXQgbmFtZVN1ZmZpeCA9ICRmaWVsZC5wcm9wKCduYW1lJykuc3Vic3RyKHBvc05hbWUgKyAxKTtcbiAgICAgICAgICAgICAgICAkZmllbGQucHJvcCgnbmFtZScsIG5hbWVQcmVmaXggKyBpICsgbmFtZVN1ZmZpeCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBzZXRDb2xsZWN0aW9uV2lkZ2V0U29ydGFibGUoJGNvbGxlY3Rpb25XaWRnZXQpIHtcbiAgICBpZiAoJGNvbGxlY3Rpb25XaWRnZXQuZGF0YSgnc29ydGFibGUnKSkge1xuICAgICAgICAkY29sbGVjdGlvbldpZGdldC5maW5kKCcuZmllbGQtY29sbGVjdGlvbi1ncm91cCcpLnNvcnRhYmxlKHtcbiAgICAgICAgICAgIFwiaGFuZGxlXCIgOiAnLmxjLWJ0bi1zb3J0YWJsZScsXG4gICAgICAgICAgICBjYW5jZWw6ICcnXG4gICAgICAgIH0pO1xuICAgICAgICAkY29sbGVjdGlvbldpZGdldC5maW5kKCcuZmllbGQtY29sbGVjdGlvbi1ncm91cCcpLm9uKFwic29ydHVwZGF0ZVwiLCBmdW5jdGlvbiAoZXZlbnQsIHVpKSB7XG4gICAgICAgICAgICAkY29sbGVjdGlvbldpZGdldC5maW5kKCcuZmllbGQtY29sbGVjdGlvbi1ncm91cD5kaXYnKS5lYWNoKGZ1bmN0aW9uIChpbmRleCwgaXRlbSkge1xuICAgICAgICAgICAgICAgICQoaXRlbSkuZmluZCgnLmZpZWxkLXBvc2l0aW9uJykudmFsKGluZGV4KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCB7fTsiXSwic291cmNlUm9vdCI6IiJ9