mirror of
https://github.com/penpot/penpot.git
synced 2025-07-25 21:47:22 +02:00
44 lines
1.3 KiB
Clojure
44 lines
1.3 KiB
Clojure
;; This Source Code Form is subject to the terms of the Mozilla Public
|
|
;; License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
;; file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
;;
|
|
;; Copyright (c) KALEIDOS INC
|
|
|
|
(ns app.util.strings
|
|
(:require
|
|
[cuerdas.core :as str]))
|
|
|
|
(def ^:const trail-zeros-regex-1 #"\.0+$")
|
|
(def ^:const trail-zeros-regex-2 #"(\.\d*[^0])0+$")
|
|
|
|
(defn format-precision
|
|
"Creates a number with predetermined precision and then removes the trailing 0.
|
|
Examples:
|
|
12.0123, 0 => 12
|
|
12.0123, 1 => 12
|
|
12.0123, 2 => 12.01"
|
|
[num precision]
|
|
|
|
(try
|
|
(if (number? num)
|
|
(let [num-str (.toFixed num precision)
|
|
|
|
;; Remove all trailing zeros after the comma 100.00000
|
|
num-str (str/replace num-str trail-zeros-regex-1 "")
|
|
|
|
;; Remove trailing zeros after a decimal number: 0.001|00|
|
|
num-str (if-let [m (re-find trail-zeros-regex-2 num-str)]
|
|
(str/replace num-str (first m) (second m))
|
|
num-str)]
|
|
num-str)
|
|
(str num))
|
|
(catch :default _
|
|
(str num))))
|
|
|
|
(defn matches-search
|
|
[name search-term]
|
|
(if (str/empty? search-term)
|
|
true
|
|
(let [st (str/trim (str/lower search-term))
|
|
nm (str/trim (str/lower name))]
|
|
(str/includes? nm st))))
|