{"version":3,"file":"package-folders-nNkOTUtk.js","sources":["../../../node_modules/@notus.sh/cocooned/src/cocooned/events/emitter.js","../../../node_modules/@notus.sh/cocooned/src/cocooned/base.js","../../../node_modules/@notus.sh/cocooned/src/cocooned/trigger.js","../../../node_modules/@notus.sh/cocooned/src/cocooned/plugins/core/triggers/add/builder.js","../../../node_modules/@notus.sh/cocooned/src/cocooned/deprecation/traverser.js","../../../node_modules/@notus.sh/cocooned/src/cocooned/deprecation.js","../../../node_modules/@notus.sh/cocooned/src/cocooned/plugins/core/triggers/add/extractor.js","../../../node_modules/@notus.sh/cocooned/src/cocooned/plugins/core/triggers/add/validator.js","../../../node_modules/@notus.sh/cocooned/src/cocooned/plugins/core/triggers/add.js","../../../node_modules/@notus.sh/cocooned/src/cocooned/plugins/core/triggers/remove.js","../../../node_modules/@notus.sh/cocooned/src/cocooned/plugins/core/triggers/add/replacement.js","../../../node_modules/@notus.sh/cocooned/src/cocooned/events/handlers.js","../../../node_modules/@notus.sh/cocooned/src/cocooned/plugins/core.js","../../../node_modules/@notus.sh/cocooned/src/cocooned/cocooned.js","../../../node_modules/@notus.sh/cocooned/src/cocooned/plugins/limit.js","../../../node_modules/@notus.sh/cocooned/src/cocooned/plugins/reorderable/triggers.js","../../../node_modules/@notus.sh/cocooned/src/cocooned/plugins/reorderable/reindexer.js","../../../node_modules/@notus.sh/cocooned/src/cocooned/plugins/reorderable.js","../../../node_modules/@notus.sh/cocooned/src/integrations/cocoon.js","../../../node_modules/@notus.sh/cocooned/index.js","../../../assets/javascripts/common/components/package-folders.js"],"sourcesContent":["class Emitter {\n constructor (namespaces = ['cocooned']) {\n this.#namespaces = namespaces\n }\n\n emit (target, type, detail = {}) {\n return !this.#emitted(target, type, detail).some(e => e.defaultPrevented)\n }\n\n /* Protected and private attributes and methods */\n #namespaces\n\n #emitted (target, type, detail = {}) {\n const events = this.#events(type, detail)\n events.forEach(e => this.#dispatch(target, e))\n\n return events\n }\n\n #dispatch (target, event) {\n return target.dispatchEvent(event)\n }\n\n #events (type, detail) {\n return this.#namespaces.map(ns => this.#event(`${ns}:${type}`, detail))\n }\n\n #event (type, detail) {\n return new CustomEvent(type, { bubbles: true, cancelable: true, detail })\n }\n}\n\nexport {\n Emitter\n}\n","import { Emitter } from './events/emitter.js'\n\n// Borrowed from <https://stackoverflow.com/a/2117523>\nfunction uuidv4 () {\n return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>\n (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)\n )\n}\n\nfunction hideMarkedForDestruction (cocooned, items) {\n items.forEach(item => {\n const destroy = item.querySelector('input[type=hidden][name$=\"[_destroy]\"]')\n if (destroy === null) {\n return\n }\n if (destroy.getAttribute('value') !== 'true') {\n return\n }\n\n cocooned.hide(item, { animate: false })\n })\n}\n\nfunction defaultAnimator (item, fetch = false) {\n if (fetch) {\n item.dataset.cocoonedScrollHeight = item.scrollHeight\n }\n\n return [\n { height: `${item.dataset.cocoonedScrollHeight}px`, opacity: 1 },\n { height: `${item.dataset.cocoonedScrollHeight}px`, opacity: 0 },\n { height: 0, opacity: 0 }\n ]\n}\n\nconst instances = Object.create(null)\n\nclass Base {\n static get defaultOptions () {\n const element = document.createElement('div')\n return {\n animate: ('animate' in element && typeof element.animate === 'function'),\n animator: defaultAnimator,\n duration: 450\n }\n }\n\n static get eventNamespaces () {\n return ['cocooned']\n }\n\n static get selectors () {\n return {\n container: ['[data-cocooned-container]', '.cocooned-container'],\n item: ['[data-cocooned-item]', '.cocooned-item']\n }\n }\n\n static getInstance (uuid) {\n return instances[uuid]\n }\n\n constructor (container, options) {\n this._container = container\n this._uuid = uuidv4()\n this._options = this.constructor._normalizeOptions({\n ...this.constructor.defaultOptions,\n ...('cocoonedOptions' in container.dataset ? JSON.parse(container.dataset.cocoonedOptions) : {}),\n ...(options || {})\n })\n }\n\n get container () {\n return this._container\n }\n\n get options () {\n return this._options\n }\n\n start () {\n this.container.dataset.cocoonedContainer = true\n this.container.dataset.cocoonedUuid = this._uuid\n instances[this._uuid] = this\n\n const hideDestroyed = () => { hideMarkedForDestruction(this, this.items) }\n\n hideDestroyed()\n this.container.ownerDocument.addEventListener('page:load', hideDestroyed)\n this.container.ownerDocument.addEventListener('turbo:load', hideDestroyed)\n this.container.ownerDocument.addEventListener('turbolinks:load', hideDestroyed)\n }\n\n notify (node, eventType, eventData) {\n return this._emitter.emit(node, eventType, eventData)\n }\n\n /* Selections methods */\n get items () {\n return Array.from(this.container.querySelectorAll(this._selector('item')))\n .filter(item => this.toContainer(item) === this.container)\n .filter(item => !('display' in item.style && item.style.display === 'none'))\n }\n\n toContainer (node) {\n return node.closest(this._selector('container'))\n }\n\n toItem (node) {\n return node.closest(this._selector('item'))\n }\n\n contains (node) {\n return this.items.includes(this.toItem(node))\n }\n\n hide (item, options = {}) {\n const opts = this._animationOptions(options)\n const keyframes = opts.animator(item, true)\n const after = () => { item.style.display = 'none' }\n\n if (!opts.animate) {\n return Promise.resolve(after()).then(() => item)\n }\n return item.animate(keyframes, opts.duration).finished.then(after).then(() => item)\n }\n\n show (item, options = {}) {\n const opts = this._animationOptions(options)\n const keyframes = opts.animator(item, false).reverse()\n const before = () => { item.style.display = null }\n\n const promise = Promise.resolve(before())\n if (!opts.animate) {\n return promise.then(() => item)\n }\n return promise.then(() => item.animate(keyframes, opts.duration).finished).then(() => item)\n }\n\n /* Protected and private attributes and methods */\n static _normalizeOptions (options) {\n return options\n }\n\n _container\n _options\n __uuid\n __emitter\n\n get _emitter () {\n if (typeof this.__emitter === 'undefined') {\n this.__emitter = new Emitter(this.constructor.eventNamespaces)\n }\n\n return this.__emitter\n }\n\n _selectors (name) {\n return this.constructor.selectors[name]\n }\n\n _selector (name) {\n return this._selectors(name).join(', ')\n }\n\n _animationOptions (options) {\n const defaults = (({ animate, animator, duration }) => ({ animate, animator, duration }))(this._options)\n return { ...defaults, ...options }\n }\n}\n\nexport {\n Base\n}\n","class Trigger {\n constructor (trigger, cocooned) {\n this._trigger = trigger\n this._cocooned = cocooned\n }\n\n get trigger () {\n return this._trigger\n }\n\n handle (event) {\n throw new TypeError('handle() must be defined in subclasses')\n }\n\n /* Protected and private attributes and methods */\n _cocooned\n _trigger\n\n get _item () {\n return this._cocooned.toItem(this._trigger)\n }\n\n get _notified () {\n return this._item\n }\n\n _notify (eventName, originalEvent) {\n return this._cocooned.notify(this._notified, eventName, this._eventData(originalEvent))\n }\n\n _eventData (originalEvent) {\n return { link: this._trigger, node: this._item, cocooned: this._cocooned, originalEvent }\n }\n\n _hide (node, callback) {\n return this._cocooned.hide(node, callback)\n }\n\n _show (node, callback) {\n return this._cocooned.show(node, callback)\n }\n}\n\nexport {\n Trigger\n}\n","class Builder {\n constructor (documentFragment, replacements) {\n this.#documentFragment = documentFragment\n this.#replacements = replacements\n }\n\n build (id) {\n const node = this.#documentFragment.cloneNode(true)\n this.#applyReplacements(node, id)\n return node\n }\n\n /* Protected and private attributes and methods */\n #documentFragment\n #replacements\n\n #applyReplacements (node, id) {\n this.#replacements.forEach(replacement => {\n node.querySelectorAll(`${replacement.tag}[${replacement.attribute}]`).forEach(node => {\n return replacement.apply(node, id)\n })\n })\n\n node.querySelectorAll('template').forEach(template => {\n this.#applyReplacements(template.content, id)\n })\n }\n}\n\nexport {\n Builder\n}\n","class Traverser {\n constructor (origin, traversal) {\n this.#origin = origin\n this.#traversal = traversal\n }\n\n resolve (selector) {\n if (this.#traversal in this.#origin && typeof this.#origin[this.#traversal] === 'function') {\n return this._tryMethod(this.#traversal, selector)\n }\n\n if (this.#traversal in this.#origin) {\n return this._tryProperty(this.#traversal)\n }\n\n const method = `_${this.#traversal}`\n if (method in this) {\n return this[method](selector)\n }\n\n return null\n }\n\n /* Protected and private attributes and methods */\n #origin\n #traversal\n\n _tryMethod (method, selector) {\n try {\n const resolved = this.#origin[method](selector)\n if (resolved instanceof HTMLElement) {\n return resolved\n }\n } catch (e) {}\n\n return null\n }\n\n _tryProperty (property) {\n const resolved = this.#origin[property]\n if (resolved instanceof HTMLElement) {\n return resolved\n }\n\n return null\n }\n\n _parent (selector) {\n if (this.#origin.parentElement.matches(selector)) {\n return this.#origin.parentElement\n }\n return null\n }\n\n _prev (selector) {\n if (this.#origin.previousElementSibling.matches(selector)) {\n return this.#origin.previousElementSibling\n }\n return null\n }\n\n _next (selector) {\n if (this.#origin.nextElementSibling.matches(selector)) {\n return this.#origin.nextElementSibling\n }\n return null\n }\n\n _siblings (selector) {\n return this.#origin.parentElement.querySelector(selector)\n }\n}\n\nexport {\n Traverser\n}\n","import { Traverser } from './deprecation/traverser.js'\n\nclass Deprecator {\n logger\n package\n version\n\n constructor (version, packageName, logger) {\n this.version = version\n this.package = packageName\n this.logger = logger\n }\n\n warn (message, replacement = null) {\n if (message in this.#emitted) {\n return\n }\n\n const warning = `${message}. It will be removed from ${this.package} ${this.version}`\n const alternative = (replacement !== null ? `, use ${replacement} instead` : '')\n this.logger.warn(`DEPRECATION WARNING: ${warning}${alternative}.`)\n\n this.#emitted[message] = true\n }\n\n /* Protected and private attributes and methods */\n #emitted = Object.create(null)\n}\n\nconst deprecators = Object.create(null)\n\nfunction deprecator (version, packageName = 'Cocooned', logger = console) {\n const hash = [version, packageName].join('#')\n if (!(hash in deprecators)) {\n deprecators[hash] = new Deprecator(version, packageName, logger)\n }\n\n return deprecators[hash]\n}\n\nexport {\n deprecator,\n Traverser\n}\n","import { Builder } from './builder.js'\nimport { deprecator, Traverser } from '../../../../deprecation.js'\n\nclass Extractor {\n constructor (trigger, cocooned) {\n this.#trigger = trigger\n this.#cocooned = cocooned\n }\n\n extract () {\n return ['builder', 'count', 'node', 'method'].reduce((options, option) => {\n // Sadly, this does not seem to work with #privateMethods\n const method = `_extract${option.charAt(0).toUpperCase() + option.slice(1)}`\n const extracted = this[method]()\n if (extracted !== null) {\n options[option] = extracted\n }\n\n return options\n }, {})\n }\n\n /* Protected and private attributes and methods */\n #cocooned\n #trigger\n\n get #dataset () {\n return this.#trigger.dataset\n }\n\n _extractBuilder () {\n if (!('template' in this.#dataset && 'association' in this.#dataset)) {\n return null\n }\n\n const find = node => node?.querySelector(`template[data-name=\"${this.#dataset.template}\"]`)\n const template = find(this.#cocooned.toItem(this.#trigger)) || find(document)\n if (template === null) {\n return null\n }\n\n return new Builder(\n template.content,\n this.#cocooned.replacementsFor(`new_${this.#dataset.association}`)\n )\n }\n\n _extractCount () {\n if ('associationInsertionCount' in this.#dataset) {\n return parseInt(this.#dataset.associationInsertionCount, 10)\n }\n\n if ('count' in this.#dataset) {\n return parseInt(this.#dataset.count, 10)\n }\n\n return null\n }\n\n _extractMethod () {\n if ('associationInsertionMethod' in this.#dataset) {\n return this.#dataset.associationInsertionMethod\n }\n\n return 'before'\n }\n\n _extractNode () {\n if (!('associationInsertionNode' in this.#dataset)) {\n return this.#trigger.parentElement\n }\n\n const node = this.#dataset.associationInsertionNode\n if (node === 'this') {\n return this.#trigger\n }\n\n if (!('associationInsertionTraversal' in this.#dataset)) {\n return this.#trigger.ownerDocument.querySelector(node)\n }\n\n deprecator('3.0').warn('associationInsertionTraversal is deprecated')\n const traverser = new Traverser(this.#trigger, this.#dataset.associationInsertionTraversal)\n\n return traverser.resolve(node)\n }\n}\n\nexport {\n Extractor\n}\n","import { Builder } from './builder.js'\n\nclass Validator {\n static validates (options) {\n const validator = new Validator(options)\n return validator.validates()\n }\n\n constructor (options) {\n this.#options = options\n }\n\n validates () {\n const optionNames = new Set(Object.keys(this.#options))\n const expected = new Set(['builder', 'count', 'node', 'method'])\n const missing = new Set(Array.from(expected.values()).filter(key => !optionNames.has(key)))\n\n if (missing.size !== 0) {\n throw new TypeError(`Missing options: ${Array.from(missing.values()).join(', ')}`)\n }\n\n this._validateBuilder()\n this._validateMethod()\n }\n\n /* Protected and private attributes and methods */\n #options\n\n _validateBuilder () {\n const builder = this.#options.builder\n if (!(builder instanceof Builder)) {\n throw new TypeError(\n `Invalid builder option: instance of Builder expected, got ${builder.constructor.name}`\n )\n }\n }\n\n _validateMethod () {\n const method = this.#options.method\n const supported = ['after', 'before', 'append', 'prepend', 'replaceWith']\n\n if (!supported.includes(method)) {\n throw new TypeError(\n `Invalid method option: expected one of ${supported.join(', ')}, got ${method}`\n )\n }\n }\n}\n\nexport {\n Validator\n}\n","import { Trigger } from '../../../trigger.js'\nimport { Extractor } from './add/extractor.js'\nimport { Validator } from './add/validator.js'\n\nlet counter = 0\n\nfunction uniqueId () {\n return `${new Date().getTime()}${counter++}`\n}\n\nclass Add extends Trigger {\n static create (trigger, cocooned) {\n const extractor = new Extractor(trigger, cocooned)\n return new Add(trigger, cocooned, extractor.extract())\n }\n\n constructor (trigger, cocooned, options = {}) {\n super(trigger, cocooned)\n\n this.#options = { ...this.#options, ...options }\n Validator.validates(this.#options)\n }\n\n get insertionNode () {\n return this.#options.node\n }\n\n handle (event) {\n for (let i = 0; i < this.#options.count; i++) {\n this.#item = this._build()\n\n // Insert can be prevented through a 'cocooned:before-insert' event handler\n if (!this._notify('before-insert', event)) {\n return false\n }\n\n this._insert()\n this._notify('after-insert', event)\n }\n }\n\n /* Protected and private attributes and methods */\n #item\n #options = {\n count: 1\n // Other expected options:\n // builder: A Builder instance\n // method: Insertion method (one of: append, prepend, before, after, replaceWith)\n // node: Insertion Node as a DOM Element\n }\n\n get _item () {\n return this.#item\n }\n\n get _notified () {\n return this.#options.node\n }\n\n _insert () {\n this.#options.node[this.#options.method](this._item)\n }\n\n _build () {\n return this.#options.builder.build(uniqueId()).firstElementChild\n }\n}\n\nexport {\n Add\n}\n","import { Trigger } from '../../../trigger.js'\n\nclass Remove extends Trigger {\n handle (event) {\n // Removal can be prevented through a 'cocooned:before-remove' event handler\n if (!this._notify('before-remove', event)) {\n return false\n }\n\n this._hide(this._item).then(() => {\n this._remove()\n this._notify('after-remove', event)\n })\n }\n\n /* Protected and private attributes and methods */\n #notified\n\n // Dynamic nodes are plainly removed from document, so we need to trigger\n // events on their parent and memoize it so we still can find it after removal\n get _notified () {\n if (typeof this.#notified === 'undefined') {\n this.#notified = this._item.parentElement\n }\n\n return this.#notified\n }\n\n _remove () {\n this._removable() ? this._item.remove() : this._markForDestruction()\n }\n\n _removable () {\n return this._trigger.matches('.dynamic') ||\n ('cocoonedPersisted' in this._trigger.dataset && this._trigger.dataset.cocoonedPersisted === 'false')\n }\n\n _markForDestruction () {\n this._item.querySelector('input[type=hidden][name$=\"[_destroy]\"]').setAttribute('value', 'true')\n this._item.querySelectorAll('input[required], select[required]')\n .forEach(input => input.removeAttribute('required'))\n }\n}\n\nexport { Remove }\n","/**\n * Borrowed from Lodash\n * See https://lodash.com/docs/#escapeRegExp\n */\nconst reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g\nconst reHasRegExpChar = RegExp(reRegExpChar.source)\n\nclass Replacement {\n attribute\n tag\n\n constructor ({ tag = '*', attribute, association, delimiters }) {\n this.attribute = attribute\n this.tag = tag\n\n this.#association = association\n this.#startDelimiter = delimiters[0]\n this.#endDelimiter = delimiters[delimiters.length - 1]\n }\n\n apply (node, id) {\n const value = node.getAttribute(this.attribute)\n if (!this.#regexp.test(value)) {\n return\n }\n\n node.setAttribute(this.attribute, value.replace(this.#regexp, this.#replacement(id)))\n }\n\n /* Protected and private attributes and methods */\n #association\n #startDelimiter\n #endDelimiter\n\n #replacement (id) {\n return `${this.#startDelimiter}${id}${this.#endDelimiter}$1`\n }\n\n get #regexp () {\n const escaped = this.#escape(`${this.#startDelimiter}${this.#association}${this.#endDelimiter}`)\n return new RegExp(`${escaped}(.*?)`, 'g')\n }\n\n #escape (string) {\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : (string || '')\n }\n}\n\nexport {\n Replacement\n}\n","function clickHandler (callback) {\n return e => {\n e.preventDefault()\n callback(e)\n }\n}\n\nfunction delegatedClickHandler (selector, callback) {\n const handler = clickHandler(callback)\n\n return e => {\n const { target } = e\n if (target.closest(selector) === null) {\n return\n }\n\n handler(e)\n }\n}\n\nfunction itemDelegatedClickHandler (container, selector, callback) {\n const delegatedHandler = delegatedClickHandler(selector, callback)\n\n return e => {\n if (!container.contains(e.target)) {\n return\n }\n\n delegatedHandler(e)\n }\n}\n\nexport {\n clickHandler,\n delegatedClickHandler,\n itemDelegatedClickHandler\n}\n","import { Add } from './core/triggers/add.js'\nimport { Remove } from './core/triggers/remove.js'\nimport { Replacement } from './core/triggers/add/replacement.js'\nimport { clickHandler, itemDelegatedClickHandler } from '../events/handlers.js'\n\nconst coreMixin = (Base) => class extends Base {\n static registerReplacement ({ tag = '*', attribute, delimiters }) {\n this.__replacements.push({ tag, attribute, delimiters })\n }\n\n static get replacements () {\n return this.__replacements\n }\n\n static replacementsFor (association) {\n return this.replacements.map(r => new Replacement({ association, ...r }))\n }\n\n static get selectors () {\n return {\n ...super.selectors,\n 'triggers.add': ['[data-cocooned-trigger=\"add\"]', '.cocooned-add'],\n 'triggers.remove': ['[data-cocooned-trigger=\"remove\"]', '.cocooned-remove']\n }\n }\n\n start () {\n super.start()\n\n this.addTriggers = Array.from(this.container.ownerDocument.querySelectorAll(this._selector('triggers.add')))\n .map(element => Add.create(element, this))\n .filter(trigger => this.toContainer(trigger.insertionNode) === this.container)\n\n this.addTriggers.forEach(add => add.trigger.addEventListener(\n 'click',\n clickHandler((e) => add.handle(e))\n ))\n\n this.container.addEventListener(\n 'click',\n itemDelegatedClickHandler(this, this._selector('triggers.remove'), (e) => {\n const trigger = new Remove(e.target, this)\n trigger.handle(e)\n })\n )\n }\n\n replacementsFor (association) {\n return this.constructor.replacementsFor(association)\n }\n\n /* Protected and private attributes and methods */\n static __replacements = [\n // Default attributes\n { tag: 'label', attribute: 'for', delimiters: ['_'] },\n { tag: '*', attribute: 'id', delimiters: ['_'] },\n { tag: '*', attribute: 'name', delimiters: ['[', ']'] },\n\n // Compatibility with Trix. See #65 on Github.\n { tag: 'trix-editor', attribute: 'input', delimiters: ['_'] }\n ]\n}\n\nexport {\n coreMixin\n}\n","import { Base } from './base.js'\nimport { coreMixin } from './plugins/core.js'\n\nclass Cocooned extends coreMixin(Base) {\n static create (container, options) {\n if ('cocoonedUuid' in container.dataset) {\n return Cocooned.getInstance(container.dataset.cocoonedUuid)\n }\n\n const cocooned = new this.constructor(container, options)\n cocooned.start()\n\n return cocooned\n }\n\n static start () {\n document.querySelectorAll('[data-cocooned-container], [data-cocooned-options]')\n .forEach(element => this.constructor.create(element))\n }\n}\n\nexport default Cocooned\nexport {\n Cocooned\n}\n","const limitMixin = (Base) => class extends Base {\n static get defaultOptions () {\n return { ...super.defaultOptions, ...{ limit: false } }\n }\n\n start () {\n super.start()\n if (this.options.limit === false) {\n return\n }\n\n this.container.addEventListener('cocooned:before-insert', e => {\n if (this.items.length < this.options.limit) {\n return\n }\n\n e.preventDefault()\n this.notify(this.container, 'limit-reached', e.detail)\n })\n }\n}\n\nexport {\n limitMixin\n}\n","import { Trigger } from '../../trigger.js'\n\nclass Move extends Trigger {\n handle (event) {\n if (this._pivotItem === null) {\n return\n }\n\n // Moves can be prevented through a 'cocooned:before-move' event handler\n if (!this._notify('before-move', event)) {\n return false\n }\n\n this._hide(this._item).then(() => {\n this._move()\n this._show(this._item).then(() => this._notify('after-move', event))\n })\n }\n\n /* Protected and private attributes and methods */\n get _pivotItem () {\n throw new TypeError('_pivotItem() must be defined in subclasses')\n }\n\n _move () {\n throw new TypeError('_move() must be defined in subclasses')\n }\n\n _findPivotItem (origin, method) {\n let sibling = origin\n\n do {\n sibling = sibling[method]\n if (sibling !== null && this._cocooned.contains(sibling)) {\n break\n }\n } while (sibling !== null)\n\n return sibling\n }\n}\n\nclass Up extends Move {\n /* Protected and private attributes and methods */\n #pivotItem\n\n get _pivotItem () {\n if (typeof this.#pivotItem === 'undefined') {\n this.#pivotItem = this._findPivotItem(this._item, 'previousElementSibling')\n }\n\n return this.#pivotItem\n }\n\n _move () {\n this._pivotItem.before(this._item)\n }\n}\n\nclass Down extends Move {\n /* Protected and private attributes and methods */\n #pivotItem\n\n get _pivotItem () {\n if (typeof this.#pivotItem === 'undefined') {\n this.#pivotItem = this._findPivotItem(this._item, 'nextElementSibling')\n }\n\n return this.#pivotItem\n }\n\n _move () {\n this._pivotItem.after(this._item)\n }\n}\n\nexport {\n Up,\n Down\n}\n","class Reindexer {\n constructor (cocooned, startAt = 0) {\n this.#cocooned = cocooned\n this.#startAt = startAt\n }\n\n reindex (event) {\n // Reindex can be prevented through a 'cocooned:before-reindex' event handler\n if (!this.#notify('before-reindex', event)) {\n return false\n }\n\n this.#positionFields.forEach((field, i) => field.setAttribute('value', i + this.#startAt))\n this.#notify('after-reindex', event)\n }\n\n /* Protected and private attributes and methods */\n #cocooned\n #startAt\n\n get #positionFields () {\n return this.#nodes.map(node => node.querySelector('input[name$=\"[position]\"]'))\n }\n\n get #nodes () {\n return this.#cocooned.items\n }\n\n #notify (eventName, originalEvent) {\n return this.#cocooned.notify(this.#cocooned.container, eventName, this.#eventData(originalEvent))\n }\n\n #eventData (originalEvent) {\n return { nodes: this.#nodes, cocooned: this.#cocooned, originalEvent }\n }\n}\n\nexport {\n Reindexer\n}\n","import { Up, Down } from './reorderable/triggers.js'\nimport { Reindexer } from './reorderable/reindexer.js'\nimport { itemDelegatedClickHandler } from '../events/handlers.js'\n\nfunction clickHandler (cocooned, selector, TriggerClass) {\n return itemDelegatedClickHandler(cocooned, selector, (e) => {\n const trigger = new TriggerClass(e.target, cocooned)\n trigger.handle(e)\n })\n}\n\nconst reorderableMixin = (Base) => class extends Base {\n static get defaultOptions () {\n return { ...super.defaultOptions, ...{ reorderable: false } }\n }\n\n static get selectors () {\n return {\n ...super.selectors,\n 'triggers.up': ['[data-cocooned-trigger=\"up\"]', '.cocooned-move-up'],\n 'triggers.down': ['[data-cocooned-trigger=\"down\"]', '.cocooned-move-down']\n }\n }\n\n start () {\n super.start()\n if (this.options.reorderable === false) {\n return\n }\n\n this.container.addEventListener('cocooned:after-insert', e => this._reindexer.reindex(e))\n this.container.addEventListener('cocooned:after-remove', e => this._reindexer.reindex(e))\n this.container.addEventListener('cocooned:after-move', e => this._reindexer.reindex(e))\n const form = this.container.closest('form')\n if (form !== null) {\n form.addEventListener('submit', e => this._reindexer.reindex(e))\n }\n\n this.container.addEventListener('click', clickHandler(this, this._selector('triggers.up'), Up))\n this.container.addEventListener('click', clickHandler(this, this._selector('triggers.down'), Down))\n }\n\n /* Protected and private attributes and methods */\n static _normalizeOptions (options) {\n const normalized = super._normalizeOptions(options)\n if (typeof normalized.reorderable === 'boolean' && normalized.reorderable) {\n normalized.reorderable = { startAt: 1 }\n }\n\n return normalized\n }\n\n #reindexer\n\n get _reindexer () {\n if (typeof this.#reindexer === 'undefined') {\n this.#reindexer = new Reindexer(this, this.options.reorderable.startAt)\n }\n\n return this.#reindexer\n }\n}\n\nexport {\n reorderableMixin\n}\n","const cocoonSupportMixin = (Base) => class extends Base {\n static get eventNamespaces () {\n return [...super.eventNamespaces, 'cocoon']\n }\n\n static get selectors () {\n const selectors = super.selectors\n selectors.item.push('.nested-fields')\n selectors['triggers.add'].push('.add_fields')\n selectors['triggers.remove'].push('.remove_fields')\n\n return selectors\n }\n}\n\nconst findInsertionNode = function (trigger, $) {\n const insertionNode = trigger.data('association-insertion-node')\n const insertionTraversal = trigger.data('association-insertion-traversal')\n\n if (!insertionNode) return trigger.parent()\n if (typeof insertionNode === 'function') return insertionNode(trigger)\n if (insertionTraversal) return trigger[insertionTraversal](insertionNode)\n return insertionNode === 'this' ? trigger : $(insertionNode)\n}\n\nconst findContainer = function (trigger, $) {\n const $trigger = $(trigger)\n const insertionNode = findInsertionNode($trigger, $)\n const insertionMethod = $trigger.data('association-insertion-method') || 'before'\n\n if (['before', 'after', 'replaceWith'].includes(insertionMethod)) return insertionNode.parent()\n return insertionNode\n}\n\nconst cocoonAutoStart = function (jQuery) {\n jQuery('.add_fields')\n .map((_i, adder) => findContainer(adder, jQuery))\n .each((_i, container) => jQuery(container).cocooned())\n}\n\nexport {\n cocoonAutoStart,\n cocoonSupportMixin\n}\n","import { Cocooned as Base } from './src/cocooned/cocooned.js'\nimport { limitMixin } from './src/cocooned/plugins/limit.js'\nimport { reorderableMixin } from './src/cocooned/plugins/reorderable.js'\nimport { cocoonSupportMixin } from './src/integrations/cocoon.js'\n\nclass Cocooned extends reorderableMixin(limitMixin(cocoonSupportMixin(Base))) {\n static create (container, options = {}) {\n if ('cocoonedUuid' in container.dataset) {\n return Cocooned.getInstance(container.dataset.cocoonedUuid)\n }\n\n const cocooned = new Cocooned(container, options)\n cocooned.start()\n\n return cocooned\n }\n\n static start () {\n document.querySelectorAll('[data-cocooned-container], [data-cocooned-options]')\n .forEach(element => Cocooned.create(element))\n }\n}\n\nexport default Cocooned\n","import Choices from \"choices.js\";\nimport choicesOptions from \"../../common/base/choices-options\";\n\nimport { getElements } from \"js-utils/src/selector\";\nimport { addClass, removeClass } from \"js-utils/src/attribute\";\nimport { addEventListener } from \"js-utils/src/event\";\n\nimport init from \"../../common/base/init\";\n\ninit(() => {\n const inputPackage = getElements(\"#package_package\");\n const inputFolder = document.querySelector(\"#package_content_package_folder_id\");\n\n if (!inputPackage) return;\n\n addEventListener(\"#package_package\", \"change\", e => {\n const packageID =\n e.currentTarget.options[e.currentTarget.selectedIndex].value;\n\n addClass(inputFolder.parentElement.parentElement, \"is-disabled\");\n\n fetch(`/package_folders.json?package_id=${packageID}`)\n .then(resp => resp.json())\n .then(resp => {\n inputFolder.CHOICES_INSTANCE.clearStore();\n inputFolder.CHOICES_INSTANCE.setChoices(resp, \"id\", \"name_with_depth\", true);\n\n if (resp.length > 0) {\n removeClass(inputFolder.parentElement.parentElement, \"is-disabled\");\n }\n })\n .catch(() => {\n alert(\"Error. Please and try again.\");\n });\n });\n});\n"],"names":["Emitter","namespaces","__privateAdd","_Emitter_instances","_namespaces","__privateSet","target","type","detail","__privateMethod","emitted_fn","e","events","events_fn","dispatch_fn","event","__privateGet","ns","event_fn","uuidv4","c","hideMarkedForDestruction","cocooned","items","item","destroy","defaultAnimator","fetch","instances","Base","container","options","__publicField","element","uuid","hideDestroyed","node","eventType","eventData","opts","keyframes","after","before","promise","name","animate","animator","duration","Trigger","trigger","eventName","originalEvent","callback","Builder","documentFragment","replacements","_Builder_instances","_documentFragment","_replacements","id","applyReplacements_fn","replacement","template","Traverser","origin","traversal","_origin","_traversal","selector","method","resolved","property","Deprecator","version","packageName","logger","_emitted","message","warning","alternative","deprecators","deprecator","hash","Extractor","_Extractor_instances","_cocooned","_trigger","option","extracted","dataset_get","find","_Validator","_options","optionNames","expected","missing","key","builder","supported","Validator","counter","uniqueId","_Add","_item","extractor","i","Add","Remove","_notified","input","reRegExpChar","reHasRegExpChar","Replacement","tag","attribute","association","delimiters","_Replacement_instances","_association","_startDelimiter","_endDelimiter","value","regexp_get","replacement_fn","escaped","escape_fn","string","clickHandler","delegatedClickHandler","handler","itemDelegatedClickHandler","delegatedHandler","coreMixin","_a","add","Cocooned$1","Cocooned","limitMixin","Move","sibling","Up","_pivotItem","Down","Reindexer","startAt","_Reindexer_instances","_startAt","notify_fn","positionFields_get","field","nodes_get","eventData_fn","TriggerClass","reorderableMixin","_reindexer","form","normalized","cocoonSupportMixin","selectors","init","inputPackage","getElements","inputFolder","addEventListener","packageID","addClass","resp","removeClass"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]}