Exemple #1
0
 run(() => {
   let args = this.getActionArgs();
   let payload = {
     args,
     target
   };
   if (typeof actionName[INVOKE] === 'function') {
     flaggedInstrument('interaction.ember-action', payload, () => {
       actionName[INVOKE].apply(actionName, args);
     });
     return;
   }
   if (typeof actionName === 'function') {
     flaggedInstrument('interaction.ember-action', payload, () => {
       actionName.apply(target, args);
     });
     return;
   }
   payload.name = actionName;
   if (target.send) {
     flaggedInstrument('interaction.ember-action', payload, () => {
       target.send.apply(target, [actionName, ...args]);
     });
   } else {
     assert(
       `The action '${actionName}' did not exist on ${target}`,
       typeof target[actionName] === 'function'
     );
     flaggedInstrument('interaction.ember-action', payload, () => {
       target[actionName].apply(target, args);
     });
   }
 });
    closureAction = function(...args) {
      if (valuePath && args.length > 0) {
        args[0] = get(args[0], valuePath);
      }

      let payload = { target, args, label: labelFor(stream) };
      return flaggedInstrument('interaction.ember-action', payload, () => {
        return run.join(target, action, ...args);
      });
    };
Exemple #3
0
    closureAction = function(...passedArguments) {
      let args = new Array(actionArgLength + passedArguments.length);

      for (let i = 0; i < actionArgLength; i++) {
        args[i] = actionArgs[i];
      }

      for (let i = 0; i < passedArguments.length; i++) {
        args[i + actionArgLength] = passedArguments[i];
      }

      if (valuePath && args.length > 0) {
        args[0] = get(args[0], valuePath);
      }

      let payload = { target, args, label: 'glimmer-closure-action' };
      return flaggedInstrument('interaction.ember-action', payload, () => {
        return run.join(target, action, ...args);
      });
    };
Exemple #4
0
  // once the view has been inserted into the DOM, rerendering is
  // deferred to allow bindings to synchronize.
  rerender(view) {
    view.renderer.ensureViewNotRendering(view);
    view.renderer.rerender(view);
  },

  destroyElement(view) {
    view.renderer.remove(view, false);
  },

  destroy(view) {
    view.renderer.remove(view, true);
  },

  // Handle events from `Ember.EventDispatcher`
  handleEvent(view, eventName, event) {
    if (view.has(eventName)) {
      // Handler should be able to re-dispatch events, so we don't
      // preventDefault or stopPropagation.
      return flaggedInstrument(`interaction.${eventName}`, { event, view }, () => {
        return run.join(view, view.trigger, eventName, event);
      });
    } else {
      return true; // continue event propagation
    }
  }
});

export default hasElement;