diff --git a/projects/behave/src/cljs/behave/components/results/matrices.cljs b/projects/behave/src/cljs/behave/components/results/matrices.cljs index 34795a6c..2ffcb3c6 100644 --- a/projects/behave/src/cljs/behave/components/results/matrices.cljs +++ b/projects/behave/src/cljs/behave/components/results/matrices.cljs @@ -2,7 +2,6 @@ (:require [behave.components.core :as c] [behave.translate :refer [ acc - (shade-cell-value? table-setting-filters output-gv-uuid value) + (shade-cell-value? table-setting-filters sig-digits output-gv-uuid value) (conj [row col]))) #{} matrix-data)))) @@ -116,7 +121,7 @@ output-entities)) (defn- compute-shade-set - [{:keys [ws-uuid multi-valued-inputs all-output-gv-uuids all-output-entities graph-settings table-setting-filters]}] + [{:keys [ws-uuid multi-valued-inputs all-output-gv-uuids all-output-entities graph-settings table-setting-filters sig-digits]}] (case (count multi-valued-inputs) 1 (let [[_ _ multi-var-gv-uuid multi-var-values] (first multi-valued-inputs) all-matrix-data-raw @(subscribe [:worksheet/matrix-table-data-single-multi-valued-input @@ -126,7 +131,7 @@ (vec all-output-gv-uuids)])] (reduce-kv (fn [acc [row col-uuid] v] (cond-> acc - (shade-cell-value? table-setting-filters col-uuid v) + (shade-cell-value? table-setting-filters sig-digits col-uuid v) (conj row))) #{} all-matrix-data-raw)) @@ -144,7 +149,8 @@ :col-gv-uuid col-gv-uuid :col-values col-values :output-entities all-output-entities - :table-setting-filters table-setting-filters})) + :table-setting-filters table-setting-filters + :sig-digits sig-digits})) 3 (let [z2-axis-uuid (:graph-settings/z2-axis-group-variable-uuid graph-settings) [_ _ z2-gv-uuid z2-values] (->> multi-valued-inputs (filter (fn [[_ _ gv-uuid]] (= gv-uuid z2-axis-uuid))) @@ -167,6 +173,7 @@ :col-values col-values :output-entities all-output-entities :table-setting-filters table-setting-filters + :sig-digits sig-digits :submatrix-gv-uuid z2-gv-uuid :submatrix-value value}))) {} @@ -540,12 +547,14 @@ color-output-state @(subscribe [:wizard/selected-output-cell-coloring]) cell-color-gv-uuid (when-not (= :none color-output-state) color-output-state) graph-settings @(subscribe [:worksheet/graph-settings ws-uuid]) + sig-digits @(subscribe [:worksheet/result-table-significant-digits all-output-gv-uuids]) shade-set (compute-shade-set {:ws-uuid ws-uuid :multi-valued-inputs multi-valued-inputs :all-output-gv-uuids all-output-gv-uuids :all-output-entities all-output-entities :graph-settings graph-settings - :table-setting-filters table-setting-filters}) + :table-setting-filters table-setting-filters + :sig-digits sig-digits}) any-filters-enabled? (boolean (some (fn [[_ _ _ enabled?]] enabled?) table-setting-filters))] (when (and (seq discrete-outputs-with-colors) (nil? color-output-state)) (dispatch-sync [:wizard/set-discrete-color-output (:bp/uuid (first discrete-outputs-with-colors))])) diff --git a/projects/behave/src/cljs/behave/worksheet/subs.cljs b/projects/behave/src/cljs/behave/worksheet/subs.cljs index e3a1765f..05feaaa1 100644 --- a/projects/behave/src/cljs/behave/worksheet/subs.cljs +++ b/projects/behave/src/cljs/behave/worksheet/subs.cljs @@ -795,6 +795,25 @@ [gv-uuid (create-formatter variable multi-discrete? is-output?)])) results))))) +(rf/reg-sub + :worksheet/result-table-significant-digits + (fn [_ [_ gv-uuids]] + (let [results (d/q '[:find ?gv-uuid (pull ?v [:variable/kind :variable/domain-uuid]) + :in $ % [?gv-uuid ...] + :where + (lookup ?gv-uuid ?gv) + (group-variable _ ?gv ?v)] + @@vms-conn rules gv-uuids)] + (into {} + (keep (fn [[gv-uuid variable]] + (when (= :continuous (:variable/kind variable)) + (let [domain-uuid (:variable/domain-uuid variable) + domain @(rf/subscribe [:vms/entity-from-uuid domain-uuid]) + *cached-decimals (rf/subscribe [:settings/cached-decimal domain-uuid]) + sig-digits (or @*cached-decimals (:domain/decimals domain))] + [gv-uuid sig-digits])))) + results)))) + (rp/reg-sub :worksheet/map-units-settings-eid (fn [_ [_ ws-uuid]]