/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import { setModifierManager, capabilities } from '@ember/modifier'; import { gte } from 'ember-compatibility-helpers'; const createEventLike = (state) => { return { target: state.element, currentTarget: state.element, }; }; export default setModifierManager( () => ({ capabilities: capabilities(gte('3.22.0') ? '3.22' : '3.13', { disableAutoTracking: true }), createModifier() { return { element: null }; }, installModifier(state, element, args) { state.element = element; if (gte('3.22.0')) { // Consume individual properties to entangle tracking. // https://github.com/emberjs/ember.js/issues/19277 // https://github.com/ember-modifier/ember-modifier/pull/63#issuecomment-815908201 args.positional.forEach(() => {}); args.named && Object.values(args.named); } const [fn, ...positional] = args.positional; fn(createEventLike(state), positional, args.named); }, updateModifier(state, args) { if (gte('3.22.0')) { // Consume individual properties to entangle tracking. // https://github.com/emberjs/ember.js/issues/19277 // https://github.com/ember-modifier/ember-modifier/pull/63#issuecomment-815908201 args.positional.forEach(() => {}); args.named && Object.values(args.named); } const [fn, ...positional] = args.positional; fn(createEventLike(state), positional, args.named); }, destroyModifier() {}, }), class DidUpsertModifier {} );