|
|
@@ -6,7 +6,6 @@
|
|
|
[cljs-bean.core :as bean]
|
|
|
[cljs.core.match :refer [match]]
|
|
|
[cljs.reader :as reader]
|
|
|
- [clojure.set :as set]
|
|
|
[clojure.string :as string]
|
|
|
[clojure.walk :as walk]
|
|
|
[datascript.core :as d]
|
|
|
@@ -67,7 +66,6 @@
|
|
|
[logseq.graph-parser.block :as gp-block]
|
|
|
[logseq.graph-parser.config :as gp-config]
|
|
|
[logseq.graph-parser.mldoc :as gp-mldoc]
|
|
|
- [logseq.graph-parser.property :as gp-property]
|
|
|
[logseq.graph-parser.text :as text]
|
|
|
[logseq.graph-parser.util :as gp-util]
|
|
|
[logseq.graph-parser.util.block-ref :as block-ref]
|
|
|
@@ -2047,66 +2045,25 @@
|
|
|
:else
|
|
|
(inline-text config (:block/format block) (str v)))]]))
|
|
|
|
|
|
-(def hidden-editable-page-properties
|
|
|
- "Properties that are hidden in the pre-block (page property)"
|
|
|
- #{:title :filters :icon})
|
|
|
-
|
|
|
-(assert (set/subset? hidden-editable-page-properties (gp-property/editable-built-in-properties))
|
|
|
- "Hidden editable page properties must be valid editable properties")
|
|
|
-
|
|
|
-(def hidden-editable-block-properties
|
|
|
- "Properties that are hidden in a block (block property)"
|
|
|
- (into #{:logseq.query/nlp-date}
|
|
|
- gp-property/editable-view-and-table-properties))
|
|
|
-
|
|
|
-(assert (set/subset? hidden-editable-block-properties (gp-property/editable-built-in-properties))
|
|
|
- "Hidden editable page properties must be valid editable properties")
|
|
|
-
|
|
|
-(defn- add-aliases-to-properties
|
|
|
- [properties block]
|
|
|
- (let [repo (state/get-current-repo)
|
|
|
- aliases (db/get-page-alias-names repo
|
|
|
- (:block/name (db/pull (:db/id (:block/page block)))))]
|
|
|
- (if (seq aliases)
|
|
|
- (if (:alias properties)
|
|
|
- (update properties :alias (fn [c]
|
|
|
- (util/distinct-by string/lower-case (concat c aliases))))
|
|
|
- (assoc properties :alias aliases))
|
|
|
- properties)))
|
|
|
-
|
|
|
(rum/defc properties-cp
|
|
|
[config {:block/keys [pre-block?] :as block}]
|
|
|
- (let [dissoc-keys (fn [m keys] (apply dissoc m keys))
|
|
|
- properties (cond-> (update-keys (:block/properties block) keyword)
|
|
|
- true
|
|
|
- (dissoc-keys (property/hidden-properties))
|
|
|
- pre-block?
|
|
|
- (dissoc-keys hidden-editable-page-properties)
|
|
|
- (not pre-block?)
|
|
|
- (dissoc-keys hidden-editable-block-properties)
|
|
|
- pre-block?
|
|
|
- (add-aliases-to-properties block))]
|
|
|
+ (let [ordered-properties
|
|
|
+ (property/get-visible-ordered-properties (:block/properties block)
|
|
|
+ (:block/properties-order block)
|
|
|
+ {:pre-block? pre-block?
|
|
|
+ :page-id (:db/id (:block/page block))})]
|
|
|
(cond
|
|
|
- (seq properties)
|
|
|
- (let [properties-order (cond->> (:block/properties-order block)
|
|
|
- true
|
|
|
- (remove (property/hidden-properties))
|
|
|
- pre-block?
|
|
|
- (remove hidden-editable-page-properties))
|
|
|
- properties-order (distinct properties-order)
|
|
|
- ordered-properties (if (seq properties-order)
|
|
|
- (map (fn [k] [k (get properties k)]) properties-order)
|
|
|
- properties)]
|
|
|
- [:div.block-properties
|
|
|
- {:class (when pre-block? "page-properties")
|
|
|
- :title (if pre-block?
|
|
|
- "Click to edit this page's properties"
|
|
|
- "Click to edit this block's properties")}
|
|
|
- (for [[k v] ordered-properties]
|
|
|
- (rum/with-key (property-cp config block k v)
|
|
|
- (str (:block/uuid block) "-" k)))])
|
|
|
-
|
|
|
- (and pre-block? properties)
|
|
|
+ (seq ordered-properties)
|
|
|
+ [:div.block-properties
|
|
|
+ {:class (when pre-block? "page-properties")
|
|
|
+ :title (if pre-block?
|
|
|
+ "Click to edit this page's properties"
|
|
|
+ "Click to edit this block's properties")}
|
|
|
+ (for [[k v] ordered-properties]
|
|
|
+ (rum/with-key (property-cp config block k v)
|
|
|
+ (str (:block/uuid block) "-" k)))]
|
|
|
+
|
|
|
+ (and pre-block? ordered-properties)
|
|
|
[:span.opacity-50 "Properties"]
|
|
|
|
|
|
:else
|