message: Trim unused stuff out of dimStoreItem
diff: -import { queuedAction } from './action-queue';
  import { NewItemsService } from './store/new-items.service';
  import dialogTemplate from './dimStoreItem.directive.dialog.html';
  import template from './dimStoreItem.directive.html';
  import './dimStoreItem.scss';
  -import {
  - IComponentOptions,
  - IController,
  - IScope,
  - IRootElementService,
  - IRootScopeService
  -} from 'angular';
  +import { IComponentOptions, IController, IScope, IRootElementService } from 'angular';
  import { dimLoadoutService } from '../loadout/loadout.service';
  import { DimItem } from './item-types';
  import { CompareService } from '../compare/compare.service';
  -import { moveItemTo } from './dimItemMoveService.factory';
  import { itemTags } from './dim-item-info';
  export function tagIconFilter() {
  @@ -47,8 +39,8 @@ export const StoreItemComponent: IComponentOptions = {
  };
  let otherDialog: any = null;
  -let firstItemTimed = false;
  +// TODO: replace with a react component using react2angular?
  export function StoreItemCtrl(
  this: IController & {
  item: DimItem;
  @@ -56,45 +48,14 @@ export function StoreItemCtrl(
  },
  $scope: IScope,
  $element: IRootElementService,
  - ngDialog,
  - $rootScope: IRootScopeService & { dragItem: DimItem }
  + ngDialog
  ) {
  'ngInject';
  - if (!firstItemTimed) {
  - firstItemTimed = true;
  - }
  -
  const vm = this;
  let dialogResult: any = null;
  vm.$onInit = () => {
  - if (vm.item.maxStackSize > 1) {
  - const dragHelp = document.getElementById('drag-help')!;
  - $element.on('dragstart', (element) => {
  - $rootScope.$broadcast('drag-start-item', {
  - item: vm.item,
  - element
  - });
  - $rootScope.dragItem = vm.item; // Kind of a hack to communicate currently-dragged item
  - if (vm.item.amount > 1) {
  - dragHelp.classList.remove('drag-help-hidden');
  - }
  - });
  - $element.on('dragend', () => {
  - $rootScope.$broadcast('drag-stop-item');
  - dragHelp.classList.add('drag-help-hidden');
  - delete $rootScope.dragItem;
  - });
  - $element.on('drag', (e) => {
  - if (e.shiftKey) {
  - dragHelp.classList.add('drag-shift-activated');
  - } else {
  - dragHelp.classList.remove('drag-shift-activated');
  - }
  - });
  - }
  -
  // Perf hack: the item's "index" property is computed based on:
  // * its ID
  // * amount (and a unique-ifier) if it's a stackable
  @@ -133,18 +94,6 @@ export function StoreItemCtrl(
  : vm.item.equipment || vm.item.bucket.hasTransferDestination;
  };
  - vm.doubleClicked = queuedAction((item: DimItem, e: Event) => {
  - if (!dimLoadoutService.dialogOpen && !CompareService.dialogOpen) {
  - e.stopPropagation();
  - const active = item.getStoresService().getActiveStore()!;
  -
  - // Equip if it's not equipped or it's on another character
  - const equip = !item.equipped || item.owner !== active.id;
  -
  - moveItemTo(item, active, item.canBeEquippedBy(active) ? equip : false, item.amount);
  - }
  - });
  -
  vm.clicked = function clicked(item, e) {
  e.stopPropagation();
  