{"version":3,"file":"cocoon-dddeb166.js","sources":["../../../node_modules/@nathanvda/cocoon/cocoon.js"],"sourcesContent":["(function($) {\n\n var cocoon_element_counter = 0;\n\n var create_new_id = function() {\n return (new Date().getTime() + cocoon_element_counter++);\n }\n\n var newcontent_braced = function(id) {\n return '[' + id + ']$1';\n }\n\n var newcontent_underscord = function(id) {\n return '_' + id + '_$1';\n }\n\n var getInsertionNodeElem = function(insertionNode, insertionTraversal, $this){\n\n if (!insertionNode){\n return $this.parent();\n }\n\n if (typeof insertionNode == 'function'){\n if(insertionTraversal){\n console.warn('association-insertion-traversal is ignored, because association-insertion-node is given as a function.')\n }\n return insertionNode($this);\n }\n\n if(typeof insertionNode == 'string'){\n if (insertionTraversal){\n return $this[insertionTraversal](insertionNode);\n }else{\n return insertionNode == \"this\" ? $this : $(insertionNode);\n }\n }\n\n }\n\n $(document).on('click', '.add_fields', function(e) {\n e.preventDefault();\n e.stopPropagation();\n \n var $this = $(this),\n assoc = $this.data('association'),\n assocs = $this.data('associations'),\n content = $this.data('association-insertion-template'),\n insertionMethod = $this.data('association-insertion-method') || $this.data('association-insertion-position') || 'before',\n insertionNode = $this.data('association-insertion-node'),\n insertionTraversal = $this.data('association-insertion-traversal'),\n count = parseInt($this.data('count'), 10),\n regexp_braced = new RegExp('\\\\[new_' + assoc + '\\\\](.*?\\\\s)', 'g'),\n regexp_underscord = new RegExp('_new_' + assoc + '_(\\\\w*)', 'g'),\n new_id = create_new_id(),\n new_content = content.replace(regexp_braced, newcontent_braced(new_id)),\n new_contents = [],\n originalEvent = e;\n\n\n if (new_content == content) {\n regexp_braced = new RegExp('\\\\[new_' + assocs + '\\\\](.*?\\\\s)', 'g');\n regexp_underscord = new RegExp('_new_' + assocs + '_(\\\\w*)', 'g');\n new_content = content.replace(regexp_braced, newcontent_braced(new_id));\n }\n\n new_content = new_content.replace(regexp_underscord, newcontent_underscord(new_id));\n new_contents = [new_content];\n\n count = (isNaN(count) ? 1 : Math.max(count, 1));\n count -= 1;\n\n while (count) {\n new_id = create_new_id();\n new_content = content.replace(regexp_braced, newcontent_braced(new_id));\n new_content = new_content.replace(regexp_underscord, newcontent_underscord(new_id));\n new_contents.push(new_content);\n\n count -= 1;\n }\n\n var insertionNodeElem = getInsertionNodeElem(insertionNode, insertionTraversal, $this)\n\n if( !insertionNodeElem || (insertionNodeElem.length == 0) ){\n console.warn(\"Couldn't find the element to insert the template. Make sure your `data-association-insertion-*` on `link_to_add_association` is correct.\")\n }\n\n $.each(new_contents, function(i, node) {\n var contentNode = $(node);\n\n var before_insert = jQuery.Event('cocoon:before-insert');\n insertionNodeElem.trigger(before_insert, [contentNode, originalEvent]);\n\n if (!before_insert.isDefaultPrevented()) {\n // allow any of the jquery dom manipulation methods (after, before, append, prepend, etc)\n // to be called on the node. allows the insertion node to be the parent of the inserted\n // code and doesn't force it to be a sibling like after/before does. default: 'before'\n var addedContent = insertionNodeElem[insertionMethod](contentNode);\n\n insertionNodeElem.trigger('cocoon:after-insert', [contentNode,\n originalEvent]);\n }\n });\n });\n\n $(document).on('click', '.remove_fields.dynamic, .remove_fields.existing', function(e) {\n var $this = $(this),\n wrapper_class = $this.data('wrapper-class') || 'nested-fields',\n node_to_delete = $this.closest('.' + wrapper_class),\n trigger_node = node_to_delete.parent(),\n originalEvent = e;\n\n e.preventDefault();\n e.stopPropagation();\n\n var before_remove = jQuery.Event('cocoon:before-remove');\n trigger_node.trigger(before_remove, [node_to_delete, originalEvent]);\n\n if (!before_remove.isDefaultPrevented()) {\n var timeout = trigger_node.data('remove-timeout') || 0;\n\n setTimeout(function() {\n if ($this.hasClass('dynamic')) {\n node_to_delete.detach();\n } else {\n $this.prev(\"input[type=hidden]\").val(\"1\");\n node_to_delete.hide();\n }\n trigger_node.trigger('cocoon:after-remove', [node_to_delete,\n originalEvent]);\n }, timeout);\n }\n });\n\n\n $(document).on(\"ready page:load turbolinks:load\", function() {\n $('.remove_fields.existing.destroyed').each(function(i, obj) {\n var $this = $(this),\n wrapper_class = $this.data('wrapper-class') || 'nested-fields';\n\n $this.closest('.' + wrapper_class).hide();\n });\n });\n\n})(jQuery);\n\n\n"],"names":["$","cocoon_element_counter","create_new_id","newcontent_braced","id","newcontent_underscord","getInsertionNodeElem","insertionNode","insertionTraversal","$this","assoc","assocs","content","insertionMethod","count","regexp_braced","regexp_underscord","new_id","new_content","new_contents","originalEvent","insertionNodeElem","i","node","contentNode","before_insert","wrapper_class","node_to_delete","trigger_node","before_remove","timeout","obj"],"mappings":"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","x_google_ignoreList":[0]}