diff options
| author | s-ol <s-ol@users.noreply.github.com> | 2018-11-06 02:08:42 +0000 |
|---|---|---|
| committer | s-ol <s-ol@users.noreply.github.com> | 2018-11-06 02:08:42 +0000 |
| commit | 31c0ab9bf5e666fb6ca10c5a72dce611c03909ab (patch) | |
| tree | 620afe9e891b3a40a482fb99d9271c37764db872 | |
| parent | rename "moon ->" to "fn ->" (diff) | |
| download | mmm-31c0ab9bf5e666fb6ca10c5a72dce611c03909ab.tar.gz mmm-31c0ab9bf5e666fb6ca10c5a72dce611c03909ab.zip | |
inspect mode wip
| -rw-r--r-- | mmm/mmmfs/browser.moon | 57 |
1 files changed, 41 insertions, 16 deletions
diff --git a/mmm/mmmfs/browser.moon b/mmm/mmmfs/browser.moon index 839438a..1e4302c 100644 --- a/mmm/mmmfs/browser.moon +++ b/mmm/mmmfs/browser.moon @@ -26,7 +26,9 @@ class Browser -- (re)set to default every time @active changes @prop = @active\map (fileder) -> return unless fileder - (fileder\find 'mmm/dom') or next fileder.props + last = @prop and @prop\get! + -- (fileder\find 'mmm/dom') or next fileder.props + Key if last then last.type else 'mmm/dom' -- retrieve or create the root @dom = get_or_create 'div', 'browser-root' @@ -59,17 +61,39 @@ class Browser \append '/' \append path_segment name, href - \append span 'view property: ', @active\map (fileder) -> - onchange = (_, e) -> - @prop\set Key e.target.value - - current = @prop\get! - current = current and current\tostring! - with select :onchange, disabled: not fileder - if fileder - for key, _ in pairs fileder.props - value = key\tostring! - \append option value, :value, selected: value == current + \append span { + 'view property: ', + @active\map (fileder) -> + onchange = (_, e) -> + { :type } = @prop\get! + @prop\set Key name: e.target.value, :type + + current = @prop\get! + current = current and current.name + with select :onchange, disabled: not fileder + if fileder + for key, _ in pairs {k,k for k in pairs fileder.props} + value = key.name + label = if value == '' then '(main)' else value + \append option label, :value, selected: value == current + + ' as ', + @active\map (fileder) -> + onchange = (_, e) -> + { :name } = @prop\get! + @prop\set Key :name, type: e.target.value + + current = @prop\get! + curent = current and current.type + with select :onchange + opt = (value) -> option value, :value, selected: value == current + \append opt 'mmm/dom' + \append opt 'text/plain' + -- if fileder + -- for key, _ in pairs fileder.props + -- value = key.type + -- \append option value, :value, selected: value == current + } -- append or patch #browser-content @dom\append with get_or_create 'div', 'browser-content' @@ -93,10 +117,11 @@ class Browser return disp_error "property not found!" unless prop convert = -> - conversions = get_conversions 'mmm/dom', prop.type - value = assert (active\get prop), "value went missing?" + value = active\get prop - return unless conversions + return unless value + + conversions = get_conversions 'mmm/dom', prop.type for i=#conversions,1,-1 { :inp, :out, :transform } = conversions[i] @@ -110,7 +135,7 @@ class Browser true, convert! if ok - res or disp_error "[no conversion path to mmm/dom]" + res or disp_error "[no conversion path to #{prop.type}]" else warn "error: ", res unless ok disp_error "[unknown error displaying]" |
