Sha256: 476b4b8bc4d8b7cb8d825a340b9bd38bfff7edb8ba9be5f20d51fe343207814d
Contents?: true
Size: 1.33 KB
Versions: 1
Compression:
Stored size: 1.33 KB
Contents
require 'glimmer/data_binding/observable_element' require 'glimmer/opal/event_listener_proxy' require 'glimmer/opal/element_proxy' module Glimmer module Opal class SelectProxy < ElementProxy include Glimmer::DataBinding::ObservableElement attr_reader :text, :items def initialize(parent, args) super(parent, args) @items = [] end def text=(value) @text = value redraw end def items=(the_items) @items = the_items redraw end def observation_request_to_event_mapping { 'on_widget_selected' => { event: 'change', event_handler: -> (event_listener) { -> (event) { @text = event.target.value event_listener.call(event) } } } } end def dom select_text = @text items = @items select_id = id @dom ||= DOM { select(id: select_id) { items.to_a.each do |item| option_hash = {value: item} option_hash[:selected] = 'selected' if select_text == item option(option_hash) { item } end } } end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
glimmer-dsl-opal-0.0.2 | lib/glimmer/opal/select_proxy.rb |