'use strict';

Admin.components.shared.dropdown.ui.container = {
  controller: function(data) {
    let self = this;

    self.isOpen = m.prop(false);
    self.isChanged = m.prop(false);
  },
  view: function(ctrl, data) {
    return m('div.dropdown.dropdown--bottom.dropdown--fill.fill-width', [
      m('a[href=#].btn-dropdown-' + (data.color ? data.color : 'gray-light') + '.text-left.fill-width', {
        onclick: function(event) {
          event.preventDefault();
          if (ctrl.isOpen()) {
            ctrl.isOpen(false);
          }
          else {
            ctrl.isOpen(true);
          }
        }
      }, data.selectedVal() ? data.selectedVal().label : data.label),
      data.input ? m('input[type=hidden]', {
        name: ctrl.isChanged() ? data.name : '',
        value: data.selectedVal() ? data.selectedVal().name : null
      }) : '',
      m('ul.dropdown-list.text-center.text-small.arrow-top-right.box-shadow' + (ctrl.isOpen() ? '.is-active' : ''), [
        data.items.map(function(item){
          return m('li', [
            m('a', { href: item.link ? item.link : '#', onclick: function(event) {
              event.preventDefault();
              data.selectedVal({
                name: item.name,
                label: item.label
              });
              ctrl.isChanged(true);
              ctrl.isOpen(false);
            } }, item.label)
          ]);
        })
      ])
    ]);
  }
};

@@ -111,16 +111,64 @@
  this;%0A%0A
+    self.selected = m.prop(data.selectedVal());%0A
     self
@@ -188,24 +188,24 @@
 rop(false);%0A
-
     self.isC
@@ -667,20 +667,20 @@
      %7D, 
-data
+ctrl
 .selecte
@@ -676,36 +676,33 @@
 trl.selected
-Val
 () ? 
-data
+ctrl
 .selectedVal
@@ -698,19 +698,16 @@
 selected
-Val
 ().label
@@ -831,20 +831,20 @@
  value: 
-data
+ctrl
 .selecte
@@ -848,20 +848,17 @@
 cted
-Val
 () ? 
-data
+ctrl
 .sel
@@ -862,19 +862,16 @@
 selected
-Val
 ().name 
@@ -1211,20 +1211,20 @@
         
-data
+ctrl
 .selecte
@@ -1224,19 +1224,16 @@
 selected
-Val
 (%7B%0A     
@@ -1340,32 +1340,32 @@
 sChanged(true);%0A
-
               ct
@@ -1374,32 +1374,78 @@
 .isOpen(false);%0A
+              data.onselect(ctrl.selected());%0A
             %7D %7D,

update dropdown component