From 0f91f025082fe3f4986d6f1e4d8ba40aeb668043 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Sat, 24 Apr 2021 12:17:39 +0200 Subject: [PATCH 001/135] :paperclip: Prepare next development cycle. --- version.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.txt b/version.txt index 1433486b4..f721a9b5e 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.5.0-alpha +1.6.0-alpha From bb73ddc58fd133d039030cf449a33142f331f276 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Sun, 25 Apr 2021 19:43:09 +0200 Subject: [PATCH 002/135] :sparkles: Replace random session tokens with JWE tokens. We still maintain the http session state on the database for to prevent replay attacks to the main application. But internally, on less critical parts of the infraestructure, it usefull have access to the identified user without hit the main database for that information. --- backend/src/app/config.clj | 1 - backend/src/app/http/session.clj | 89 ++++++++++++++++---------------- backend/src/app/main.clj | 4 +- 3 files changed, 46 insertions(+), 48 deletions(-) diff --git a/backend/src/app/config.clj b/backend/src/app/config.clj index 260e00c5f..0e9d4ac5d 100644 --- a/backend/src/app/config.clj +++ b/backend/src/app/config.clj @@ -116,7 +116,6 @@ (s/def ::oidc-roles-attr ::us/keyword) (s/def ::host ::us/string) (s/def ::http-server-port ::us/integer) -(s/def ::http-session-cookie-name ::us/string) (s/def ::http-session-idle-max-age ::dt/duration) (s/def ::http-session-updater-batch-max-age ::dt/duration) (s/def ::http-session-updater-batch-max-size ::us/integer) diff --git a/backend/src/app/http/session.clj b/backend/src/app/http/session.clj index 2f071089d..c03f0995b 100644 --- a/backend/src/app/http/session.clj +++ b/backend/src/app/http/session.clj @@ -21,86 +21,85 @@ [clojure.spec.alpha :as s] [integrant.core :as ig])) +;; A default cookie name for storing the session. We don't allow +;; configure it. +(def cookie-name "session-id") + ;; --- IMPL -(defn- next-session-id - ([] (next-session-id 96)) - ([n] - (-> (bn/random-nonce n) - (bc/bytes->b64u) - (bc/bytes->str)))) +(defn- create-session + [{:keys [conn tokens] :as cfg} {:keys [profile-id headers] :as request}] + (let [token (tokens :generate {:iss "authentication" + :iat (dt/now) + :uid profile-id}) + params {:user-agent (get headers "user-agent") + :profile-id profile-id + :id token}] + (db/insert! conn :http-session params))) -(defn- create - [{:keys [conn] :as cfg} {:keys [profile-id user-agent]}] - (let [id (next-session-id)] - (db/insert! conn :http-session {:id id - :profile-id profile-id - :user-agent user-agent}) - id)) - -(defn- delete - [{:keys [conn cookie-name] :as cfg} {:keys [cookies] :as request}] +(defn- delete-session + [{:keys [conn] :as cfg} {:keys [cookies] :as request}] (when-let [token (get-in cookies [cookie-name :value])] (db/delete! conn :http-session {:id token})) nil) -(defn- retrieve - [{:keys [conn] :as cfg} token] - (when token - (db/exec-one! conn ["select id, profile_id from http_session where id = ?" token]))) +(defn- retrieve-session + [{:keys [conn] :as cfg} id] + (when id + (db/exec-one! conn ["select id, profile_id from http_session where id = ?" id]))) (defn- retrieve-from-request - [{:keys [cookie-name] :as cfg} {:keys [cookies] :as request}] + [cfg {:keys [cookies] :as request}] (->> (get-in cookies [cookie-name :value]) - (retrieve cfg))) + (retrieve-session cfg))) -(defn- cookies - [{:keys [cookie-name] :as cfg} vals] - {cookie-name (merge vals {:path "/" :http-only true})}) +(defn- add-cookies + [response {:keys [id] :as session}] + (assoc response :cookies {"session-id" {:path "/" :http-only true :value id}})) + +(defn- clear-cookies + [response] + (assoc response :cookies {"session-id" {:value "" :max-age -1}})) (defn- middleware [cfg handler] (fn [request] (if-let [{:keys [id profile-id] :as session} (retrieve-from-request cfg request)] - (let [events-ch (::events-ch cfg)] - (a/>!! events-ch id) + (do + (a/>!! (::events-ch cfg) id) (l/update-thread-context! {:profile-id profile-id}) (handler (assoc request :profile-id profile-id))) (handler request)))) ;; --- STATE INIT: SESSION -(s/def ::cookie-name ::cfg/http-session-cookie-name) - (defmethod ig/pre-init-spec ::session [_] - (s/keys :req-un [::db/pool] - :opt-un [::cookie-name])) + (s/keys :req-un [::db/pool])) (defmethod ig/prep-key ::session [_ cfg] - (merge {:cookie-name "auth-token" - :buffer-size 64} - (d/without-nils cfg))) + (d/merge {:buffer-size 64} + (d/without-nils cfg))) (defmethod ig/init-key ::session [_ {:keys [pool] :as cfg}] (let [events (a/chan (a/dropping-buffer (:buffer-size cfg))) - cfg (assoc cfg - :conn pool - ::events-ch events)] + cfg (-> cfg + (assoc :conn pool) + (assoc ::events-ch events))] (-> cfg (assoc :middleware #(middleware cfg %)) (assoc :create (fn [profile-id] (fn [request response] - (let [uagent (get-in request [:headers "user-agent"]) - value (create cfg {:profile-id profile-id :user-agent uagent})] - (assoc response :cookies (cookies cfg {:value value})))))) + (let [request (assoc request :profile-id profile-id) + session (create-session cfg request)] + (add-cookies response session))))) (assoc :delete (fn [request response] - (delete cfg request) - (assoc response - :status 204 - :body "" - :cookies (cookies cfg {:value "" :max-age -1}))))))) + (delete-session cfg request) + (-> response + (assoc :status 204) + (assoc :body "") + (clear-cookies))))))) (defmethod ig/halt-key! ::session [_ data] diff --git a/backend/src/app/main.clj b/backend/src/app/main.clj index e40946e14..ab8c96ebb 100644 --- a/backend/src/app/main.clj +++ b/backend/src/app/main.clj @@ -60,8 +60,8 @@ :storage (ig/ref :app.storage/storage)} :app.http.session/session - {:pool (ig/ref :app.db/pool) - :cookie-name (cf/get :http-session-cookie-name)} + {:pool (ig/ref :app.db/pool) + :tokens (ig/ref :app.tokens/tokens)} :app.http.session/gc-task {:pool (ig/ref :app.db/pool) From cbe54d0bbe067379b3aaff7cf20083c249d122e7 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 26 Apr 2021 12:39:59 +0200 Subject: [PATCH 003/135] :bug: Remove duplicate prop from shadow-cljs config file. --- frontend/shadow-cljs.edn | 2 -- 1 file changed, 2 deletions(-) diff --git a/frontend/shadow-cljs.edn b/frontend/shadow-cljs.edn index ab0d85c34..78887e521 100644 --- a/frontend/shadow-cljs.edn +++ b/frontend/shadow-cljs.edn @@ -5,8 +5,6 @@ :source-paths ["src", "vendor", "resources", "../common"] - :dev-http {8888 "classpath:public"} - :dependencies [[binaryage/devtools "RELEASE"] From 057b0e163c11c003a6f15e0e5a4d687e608e3d11 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 26 Apr 2021 14:15:04 +0200 Subject: [PATCH 004/135] :paperclip: Minor changes on CI configuration. --- .circleci/config.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index f54e162e6..0fc2473ce 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -57,7 +57,8 @@ jobs: yarn install npx shadow-cljs compile tests environment: - PATH: /usr/local/nodejs/bin/:/usr/local/bin:/bin:/usr/bin + JAVA_HOME: /usr/lib/jvm/openjdk16 + PATH: /usr/local/nodejs/bin/:/usr/local/bin:/bin:/usr/bin:/usr/lib/jvm/openjdk16/bin - save_cache: paths: From d8fb575d46b779eb50056cd72add787823e19124 Mon Sep 17 00:00:00 2001 From: elhombretecla Date: Fri, 16 Apr 2021 11:28:22 +0200 Subject: [PATCH 005/135] :tada: Add new title and th styles --- frontend/resources/styles/main/partials/dashboard-grid.scss | 5 ++++- .../resources/styles/main/partials/dashboard-header.scss | 1 + frontend/resources/styles/main/partials/dashboard.scss | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/frontend/resources/styles/main/partials/dashboard-grid.scss b/frontend/resources/styles/main/partials/dashboard-grid.scss index 659656ad2..a491f9c7e 100644 --- a/frontend/resources/styles/main/partials/dashboard-grid.scss +++ b/frontend/resources/styles/main/partials/dashboard-grid.scss @@ -33,7 +33,10 @@ position: relative; text-align: center; width: 18%; - box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.1); + + &:hover { + box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.1); + } .grid-item-th { text-align: initial; diff --git a/frontend/resources/styles/main/partials/dashboard-header.scss b/frontend/resources/styles/main/partials/dashboard-header.scss index 823e8806d..c3af04cb2 100644 --- a/frontend/resources/styles/main/partials/dashboard-header.scss +++ b/frontend/resources/styles/main/partials/dashboard-header.scss @@ -77,6 +77,7 @@ display: flex; flex-shrink: 0; font-size: $fs18; + font-weight: 600; z-index: 10; } diff --git a/frontend/resources/styles/main/partials/dashboard.scss b/frontend/resources/styles/main/partials/dashboard.scss index 5077defd4..f8423ce48 100644 --- a/frontend/resources/styles/main/partials/dashboard.scss +++ b/frontend/resources/styles/main/partials/dashboard.scss @@ -42,7 +42,7 @@ cursor: pointer; font-size: 15px; line-height: 1rem; - font-weight: unset; + font-weight: 500; color: $color-black; margin-right: $medium; } From d0af14c40fbe4eeace196991141ed74c5a70ec29 Mon Sep 17 00:00:00 2001 From: elhombretecla Date: Thu, 29 Apr 2021 14:47:26 +0200 Subject: [PATCH 006/135] :tada: Add new svg icons --- frontend/resources/images/icons/alignment.svg | 4 +++- frontend/resources/images/icons/arrow-down.svg | 4 +++- frontend/resources/images/icons/arrow-end.svg | 4 +++- frontend/resources/images/icons/arrow-slide.svg | 4 +++- frontend/resources/images/icons/artboard.svg | 4 ++-- frontend/resources/images/icons/box.svg | 4 +++- frontend/resources/images/icons/chain.svg | 4 +++- frontend/resources/images/icons/code.svg | 4 ++-- frontend/resources/images/icons/component.svg | 4 ++-- frontend/resources/images/icons/copy.svg | 5 ++--- frontend/resources/images/icons/exit.svg | 4 +++- frontend/resources/images/icons/file-html.svg | 4 +++- frontend/resources/images/icons/file-svg.svg | 4 +++- frontend/resources/images/icons/fill.svg | 4 +++- frontend/resources/images/icons/folder-zip.svg | 4 +++- frontend/resources/images/icons/folder.svg | 4 +++- frontend/resources/images/icons/grid-snap.svg | 4 +++- frontend/resources/images/icons/grid.svg | 4 +++- frontend/resources/images/icons/html.svg | 4 +++- frontend/resources/images/icons/image.svg | 4 +++- frontend/resources/images/icons/import.svg | 3 +++ frontend/resources/images/icons/interaction.svg | 6 ++---- frontend/resources/images/icons/layers.svg | 5 ++--- frontend/resources/images/icons/library.svg | 5 ++--- frontend/resources/images/icons/lock-open.svg | 1 - frontend/resources/images/icons/lock.svg | 4 +++- frontend/resources/images/icons/mail.svg | 4 +++- frontend/resources/images/icons/minus.svg | 4 +++- frontend/resources/images/icons/multi-canvas.svg | 4 +++- frontend/resources/images/icons/navigate.svg | 4 +++- frontend/resources/images/icons/palette.svg | 5 ++--- frontend/resources/images/icons/picker-harmony.svg | 3 ++- frontend/resources/images/icons/pin-fill.svg | 4 ++-- frontend/resources/images/icons/pin.svg | 4 +++- frontend/resources/images/icons/plus.svg | 4 +++- frontend/resources/images/icons/recent.svg | 4 ++-- frontend/resources/images/icons/ruler-tool.svg | 4 +++- frontend/resources/images/icons/size-horiz.svg | 4 ++-- frontend/resources/images/icons/size-vert.svg | 4 ++-- frontend/resources/images/icons/sort-ascending.svg | 4 ++-- frontend/resources/images/icons/sort-descending.svg | 4 ++-- frontend/resources/images/icons/tick.svg | 4 ++-- frontend/resources/images/icons/toggle.svg | 4 +++- frontend/resources/images/icons/tree.svg | 4 +++- frontend/resources/images/icons/unchain.svg | 8 ++------ frontend/resources/images/icons/undo-history.svg | 4 ---- frontend/resources/images/icons/ungroup.svg | 4 +++- frontend/resources/images/icons/unlock.svg | 4 +++- frontend/resources/images/icons/user.svg | 4 +++- frontend/src/app/main/ui/workspace/left_toolbar.cljs | 2 +- frontend/src/app/main/ui/workspace/sidebar/history.cljs | 2 +- frontend/src/app/main/ui/workspace/sidebar/layers.cljs | 2 +- .../main/ui/workspace/sidebar/options/menus/layer.cljs | 2 +- 53 files changed, 128 insertions(+), 81 deletions(-) create mode 100644 frontend/resources/images/icons/import.svg delete mode 100644 frontend/resources/images/icons/lock-open.svg delete mode 100644 frontend/resources/images/icons/undo-history.svg diff --git a/frontend/resources/images/icons/alignment.svg b/frontend/resources/images/icons/alignment.svg index aaacb23b1..65db1eb38 100644 --- a/frontend/resources/images/icons/alignment.svg +++ b/frontend/resources/images/icons/alignment.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/resources/images/icons/arrow-down.svg b/frontend/resources/images/icons/arrow-down.svg index a56f66d87..9402aff96 100644 --- a/frontend/resources/images/icons/arrow-down.svg +++ b/frontend/resources/images/icons/arrow-down.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/resources/images/icons/arrow-end.svg b/frontend/resources/images/icons/arrow-end.svg index fe82545d6..a025ca2c5 100644 --- a/frontend/resources/images/icons/arrow-end.svg +++ b/frontend/resources/images/icons/arrow-end.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/resources/images/icons/arrow-slide.svg b/frontend/resources/images/icons/arrow-slide.svg index 3f4c3f96c..754e3e97f 100644 --- a/frontend/resources/images/icons/arrow-slide.svg +++ b/frontend/resources/images/icons/arrow-slide.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/resources/images/icons/artboard.svg b/frontend/resources/images/icons/artboard.svg index c91397300..87f4543a3 100644 --- a/frontend/resources/images/icons/artboard.svg +++ b/frontend/resources/images/icons/artboard.svg @@ -1,3 +1,3 @@ - - + + diff --git a/frontend/resources/images/icons/box.svg b/frontend/resources/images/icons/box.svg index cbed171e6..d8ef1bffe 100644 --- a/frontend/resources/images/icons/box.svg +++ b/frontend/resources/images/icons/box.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/resources/images/icons/chain.svg b/frontend/resources/images/icons/chain.svg index a34db111e..661d8db6b 100644 --- a/frontend/resources/images/icons/chain.svg +++ b/frontend/resources/images/icons/chain.svg @@ -1 +1,3 @@ - + + + diff --git a/frontend/resources/images/icons/code.svg b/frontend/resources/images/icons/code.svg index d8ae15c9e..3c80441e3 100644 --- a/frontend/resources/images/icons/code.svg +++ b/frontend/resources/images/icons/code.svg @@ -1,3 +1,3 @@ - - + + diff --git a/frontend/resources/images/icons/component.svg b/frontend/resources/images/icons/component.svg index 2042881f9..2777568a4 100644 --- a/frontend/resources/images/icons/component.svg +++ b/frontend/resources/images/icons/component.svg @@ -1,3 +1,3 @@ - - + + diff --git a/frontend/resources/images/icons/copy.svg b/frontend/resources/images/icons/copy.svg index 8a65c91c7..d676e2227 100644 --- a/frontend/resources/images/icons/copy.svg +++ b/frontend/resources/images/icons/copy.svg @@ -1,4 +1,3 @@ - - - + + diff --git a/frontend/resources/images/icons/exit.svg b/frontend/resources/images/icons/exit.svg index 403b4c675..ce145a385 100644 --- a/frontend/resources/images/icons/exit.svg +++ b/frontend/resources/images/icons/exit.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/resources/images/icons/file-html.svg b/frontend/resources/images/icons/file-html.svg index 9427f31d2..91a9e6c42 100644 --- a/frontend/resources/images/icons/file-html.svg +++ b/frontend/resources/images/icons/file-html.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/resources/images/icons/file-svg.svg b/frontend/resources/images/icons/file-svg.svg index 5cab59e98..33e5830de 100644 --- a/frontend/resources/images/icons/file-svg.svg +++ b/frontend/resources/images/icons/file-svg.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/resources/images/icons/fill.svg b/frontend/resources/images/icons/fill.svg index 7593f603f..a509069cc 100644 --- a/frontend/resources/images/icons/fill.svg +++ b/frontend/resources/images/icons/fill.svg @@ -1 +1,3 @@ - + + + diff --git a/frontend/resources/images/icons/folder-zip.svg b/frontend/resources/images/icons/folder-zip.svg index 37e404e8b..a07dbcb80 100644 --- a/frontend/resources/images/icons/folder-zip.svg +++ b/frontend/resources/images/icons/folder-zip.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/resources/images/icons/folder.svg b/frontend/resources/images/icons/folder.svg index 64899804d..cd7c2a4ec 100644 --- a/frontend/resources/images/icons/folder.svg +++ b/frontend/resources/images/icons/folder.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/resources/images/icons/grid-snap.svg b/frontend/resources/images/icons/grid-snap.svg index 14fb513c3..2f03be05a 100644 --- a/frontend/resources/images/icons/grid-snap.svg +++ b/frontend/resources/images/icons/grid-snap.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/resources/images/icons/grid.svg b/frontend/resources/images/icons/grid.svg index a42d22149..be57664c1 100644 --- a/frontend/resources/images/icons/grid.svg +++ b/frontend/resources/images/icons/grid.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/resources/images/icons/html.svg b/frontend/resources/images/icons/html.svg index 09616a9ba..a2dd0494e 100644 --- a/frontend/resources/images/icons/html.svg +++ b/frontend/resources/images/icons/html.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/resources/images/icons/image.svg b/frontend/resources/images/icons/image.svg index dda84b545..1d3f13f09 100644 --- a/frontend/resources/images/icons/image.svg +++ b/frontend/resources/images/icons/image.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/resources/images/icons/import.svg b/frontend/resources/images/icons/import.svg new file mode 100644 index 000000000..4e0914b05 --- /dev/null +++ b/frontend/resources/images/icons/import.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/interaction.svg b/frontend/resources/images/icons/interaction.svg index afc359d84..d95baa8be 100644 --- a/frontend/resources/images/icons/interaction.svg +++ b/frontend/resources/images/icons/interaction.svg @@ -1,5 +1,3 @@ - - - - + + diff --git a/frontend/resources/images/icons/layers.svg b/frontend/resources/images/icons/layers.svg index 3968ee0db..703fd0cbe 100644 --- a/frontend/resources/images/icons/layers.svg +++ b/frontend/resources/images/icons/layers.svg @@ -1,4 +1,3 @@ - - - + + diff --git a/frontend/resources/images/icons/library.svg b/frontend/resources/images/icons/library.svg index 4b5457f7f..c4be0d41f 100644 --- a/frontend/resources/images/icons/library.svg +++ b/frontend/resources/images/icons/library.svg @@ -1,4 +1,3 @@ - - - + + diff --git a/frontend/resources/images/icons/lock-open.svg b/frontend/resources/images/icons/lock-open.svg deleted file mode 100644 index ed703a641..000000000 --- a/frontend/resources/images/icons/lock-open.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/frontend/resources/images/icons/lock.svg b/frontend/resources/images/icons/lock.svg index cbb4a4ec9..6477336ae 100644 --- a/frontend/resources/images/icons/lock.svg +++ b/frontend/resources/images/icons/lock.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/resources/images/icons/mail.svg b/frontend/resources/images/icons/mail.svg index e40e68ed3..0d03f891d 100644 --- a/frontend/resources/images/icons/mail.svg +++ b/frontend/resources/images/icons/mail.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/resources/images/icons/minus.svg b/frontend/resources/images/icons/minus.svg index c92d33dd5..d79c63c51 100644 --- a/frontend/resources/images/icons/minus.svg +++ b/frontend/resources/images/icons/minus.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/resources/images/icons/multi-canvas.svg b/frontend/resources/images/icons/multi-canvas.svg index 8545ec76a..94025eee1 100644 --- a/frontend/resources/images/icons/multi-canvas.svg +++ b/frontend/resources/images/icons/multi-canvas.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/resources/images/icons/navigate.svg b/frontend/resources/images/icons/navigate.svg index 154f70535..1b13012e4 100644 --- a/frontend/resources/images/icons/navigate.svg +++ b/frontend/resources/images/icons/navigate.svg @@ -1 +1,3 @@ - + + + diff --git a/frontend/resources/images/icons/palette.svg b/frontend/resources/images/icons/palette.svg index 80ab78401..4984a76b1 100644 --- a/frontend/resources/images/icons/palette.svg +++ b/frontend/resources/images/icons/palette.svg @@ -1,4 +1,3 @@ - - - + + diff --git a/frontend/resources/images/icons/picker-harmony.svg b/frontend/resources/images/icons/picker-harmony.svg index c108e2812..1f8de0d5c 100644 --- a/frontend/resources/images/icons/picker-harmony.svg +++ b/frontend/resources/images/icons/picker-harmony.svg @@ -1,2 +1,3 @@ - + + diff --git a/frontend/resources/images/icons/pin-fill.svg b/frontend/resources/images/icons/pin-fill.svg index 5119bbf6d..1e11c8c45 100644 --- a/frontend/resources/images/icons/pin-fill.svg +++ b/frontend/resources/images/icons/pin-fill.svg @@ -1,3 +1,3 @@ - - + + diff --git a/frontend/resources/images/icons/pin.svg b/frontend/resources/images/icons/pin.svg index 438791743..46d71436a 100644 --- a/frontend/resources/images/icons/pin.svg +++ b/frontend/resources/images/icons/pin.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/resources/images/icons/plus.svg b/frontend/resources/images/icons/plus.svg index 716813537..8368e0234 100644 --- a/frontend/resources/images/icons/plus.svg +++ b/frontend/resources/images/icons/plus.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/resources/images/icons/recent.svg b/frontend/resources/images/icons/recent.svg index 590de6517..696757240 100644 --- a/frontend/resources/images/icons/recent.svg +++ b/frontend/resources/images/icons/recent.svg @@ -1,3 +1,3 @@ - - + + diff --git a/frontend/resources/images/icons/ruler-tool.svg b/frontend/resources/images/icons/ruler-tool.svg index b0ae77a90..0d18c21a5 100644 --- a/frontend/resources/images/icons/ruler-tool.svg +++ b/frontend/resources/images/icons/ruler-tool.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/resources/images/icons/size-horiz.svg b/frontend/resources/images/icons/size-horiz.svg index ab9456580..553fbfea1 100644 --- a/frontend/resources/images/icons/size-horiz.svg +++ b/frontend/resources/images/icons/size-horiz.svg @@ -1,3 +1,3 @@ - - + + diff --git a/frontend/resources/images/icons/size-vert.svg b/frontend/resources/images/icons/size-vert.svg index f2e807c40..14bba276d 100644 --- a/frontend/resources/images/icons/size-vert.svg +++ b/frontend/resources/images/icons/size-vert.svg @@ -1,3 +1,3 @@ - - + + diff --git a/frontend/resources/images/icons/sort-ascending.svg b/frontend/resources/images/icons/sort-ascending.svg index a8907d170..48ed056f4 100644 --- a/frontend/resources/images/icons/sort-ascending.svg +++ b/frontend/resources/images/icons/sort-ascending.svg @@ -1,3 +1,3 @@ - - + + diff --git a/frontend/resources/images/icons/sort-descending.svg b/frontend/resources/images/icons/sort-descending.svg index 4ba6c45c0..3a5838b95 100644 --- a/frontend/resources/images/icons/sort-descending.svg +++ b/frontend/resources/images/icons/sort-descending.svg @@ -1,3 +1,3 @@ - - + + diff --git a/frontend/resources/images/icons/tick.svg b/frontend/resources/images/icons/tick.svg index f92e28e87..93e3f520b 100644 --- a/frontend/resources/images/icons/tick.svg +++ b/frontend/resources/images/icons/tick.svg @@ -1,3 +1,3 @@ - - + + diff --git a/frontend/resources/images/icons/toggle.svg b/frontend/resources/images/icons/toggle.svg index 992c33882..732c7042c 100644 --- a/frontend/resources/images/icons/toggle.svg +++ b/frontend/resources/images/icons/toggle.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/resources/images/icons/tree.svg b/frontend/resources/images/icons/tree.svg index cdb26bd89..ddfffe3e7 100644 --- a/frontend/resources/images/icons/tree.svg +++ b/frontend/resources/images/icons/tree.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/resources/images/icons/unchain.svg b/frontend/resources/images/icons/unchain.svg index 5727cc380..911560889 100644 --- a/frontend/resources/images/icons/unchain.svg +++ b/frontend/resources/images/icons/unchain.svg @@ -1,7 +1,3 @@ - - - - - - + + diff --git a/frontend/resources/images/icons/undo-history.svg b/frontend/resources/images/icons/undo-history.svg deleted file mode 100644 index 42a4cc1c7..000000000 --- a/frontend/resources/images/icons/undo-history.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/frontend/resources/images/icons/ungroup.svg b/frontend/resources/images/icons/ungroup.svg index 6017f0ecd..5afc3a40e 100644 --- a/frontend/resources/images/icons/ungroup.svg +++ b/frontend/resources/images/icons/ungroup.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/resources/images/icons/unlock.svg b/frontend/resources/images/icons/unlock.svg index dd2954b08..b9c1ffa83 100644 --- a/frontend/resources/images/icons/unlock.svg +++ b/frontend/resources/images/icons/unlock.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/resources/images/icons/user.svg b/frontend/resources/images/icons/user.svg index eac608035..228a69876 100644 --- a/frontend/resources/images/icons/user.svg +++ b/frontend/resources/images/icons/user.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/src/app/main/ui/workspace/left_toolbar.cljs b/frontend/src/app/main/ui/workspace/left_toolbar.cljs index fd7053d5e..f948e8237 100644 --- a/frontend/src/app/main/ui/workspace/left_toolbar.cljs +++ b/frontend/src/app/main/ui/workspace/left_toolbar.cljs @@ -127,7 +127,7 @@ {:alt (tr "workspace.sidebar.history" (sc/get-tooltip :toggle-history)) :class (when (contains? layout :document-history) "selected") :on-click (st/emitf (dw/go-to-layout :document-history))} - i/undo-history] + i/recent] [:li.tooltip.tooltip-right {:alt (tr "workspace.toolbar.color-palette" (sc/get-tooltip :toggle-palette)) :class (when (contains? layout :colorpalette) "selected") diff --git a/frontend/src/app/main/ui/workspace/sidebar/history.cljs b/frontend/src/app/main/ui/workspace/sidebar/history.cljs index d74a904c5..f188172a2 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/history.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/history.cljs @@ -286,7 +286,7 @@ [:div.history-toolbox-title (t locale "workspace.undo.title")] (if (empty? entries) [:div.history-entry-empty - [:div.history-entry-empty-icon i/undo-history] + [:div.history-entry-empty-icon i/recent] [:div.history-entry-empty-msg (t locale "workspace.undo.empty")]] [:ul.history-entries (for [[idx-entry entry] (->> entries (map-indexed vector) reverse)] #_[i (range 0 10)] diff --git a/frontend/src/app/main/ui/workspace/sidebar/layers.cljs b/frontend/src/app/main/ui/workspace/sidebar/layers.cljs index a4744b6a4..fa842aa4d 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/layers.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/layers.cljs @@ -233,7 +233,7 @@ (if (:hidden item) i/eye-closed i/eye)] [:div.block-element {:class (when (:blocked item) "selected") :on-click toggle-blocking} - (if (:blocked item) i/lock i/lock-open)]] + (if (:blocked item) i/lock i/unlock)]] (when (:shapes item) [:span.toggle-content diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layer.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layer.cljs index 46fa46660..c7be781cf 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layer.cljs @@ -133,7 +133,7 @@ (cond (or (= :multiple (:blocked values)) (not (:blocked values))) - [:div.element-set-actions-button {:on-click handle-set-blocked} i/lock-open] + [:div.element-set-actions-button {:on-click handle-set-blocked} i/unlock] :else [:div.element-set-actions-button {:on-click handle-set-unblocked} i/lock])]]]])) From f5ad7dc2dc21bf60a443b18b0eee55df3ba0eafe Mon Sep 17 00:00:00 2001 From: elhombretecla Date: Thu, 29 Apr 2021 15:13:46 +0200 Subject: [PATCH 007/135] :tada: Add viewer fixes --- frontend/resources/styles/main/layouts/viewer.scss | 2 +- .../resources/styles/main/partials/dashboard-sidebar.scss | 1 - frontend/resources/styles/main/partials/viewer-header.scss | 6 +++--- frontend/src/app/main/ui/icons.cljs | 2 -- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/frontend/resources/styles/main/layouts/viewer.scss b/frontend/resources/styles/main/layouts/viewer.scss index ea6bf998a..8f120296f 100644 --- a/frontend/resources/styles/main/layouts/viewer.scss +++ b/frontend/resources/styles/main/layouts/viewer.scss @@ -1,6 +1,6 @@ .viewer-layout { display: grid; - grid-template-rows: 40px auto; + grid-template-rows: 48px auto; grid-template-columns: 1fr; user-select: none; diff --git a/frontend/resources/styles/main/partials/dashboard-sidebar.scss b/frontend/resources/styles/main/partials/dashboard-sidebar.scss index cc2250e3f..2c4a0b8d1 100644 --- a/frontend/resources/styles/main/partials/dashboard-sidebar.scss +++ b/frontend/resources/styles/main/partials/dashboard-sidebar.scss @@ -167,7 +167,6 @@ padding: $size-2; svg { - border-radius: 3px; fill: $color-black; margin-right: 8px; height: $size-3; diff --git a/frontend/resources/styles/main/partials/viewer-header.scss b/frontend/resources/styles/main/partials/viewer-header.scss index 21c1e75c7..9e8449c46 100644 --- a/frontend/resources/styles/main/partials/viewer-header.scss +++ b/frontend/resources/styles/main/partials/viewer-header.scss @@ -3,7 +3,7 @@ background-color: $color-gray-50; border-bottom: 1px solid $color-gray-60; display: flex; - height: 40px; + height: 48px; padding: 0 $medium 0 55px; position: relative; z-index: 12; @@ -23,7 +23,7 @@ left: 0; position: absolute; top: 0; - width: 40px; + width: 48px; a { height: 30px; @@ -123,7 +123,7 @@ align-items: center; height: 100%; - width: 40px; + width: 48px; svg { fill: $color-gray-20; diff --git a/frontend/src/app/main/ui/icons.cljs b/frontend/src/app/main/ui/icons.cljs index d871be38b..42ce72844 100644 --- a/frontend/src/app/main/ui/icons.cljs +++ b/frontend/src/app/main/ui/icons.cljs @@ -65,7 +65,6 @@ (def line-height (icon-xref :line-height)) (def loader (icon-xref :loader)) (def lock (icon-xref :lock)) -(def lock-open (icon-xref :lock-open)) (def logo (icon-xref :uxbox-logo)) (def logo-icon (icon-xref :uxbox-logo-icon)) (def logout (icon-xref :logout)) @@ -140,7 +139,6 @@ (def unchain (icon-xref :unchain)) (def underline (icon-xref :underline)) (def undo (icon-xref :undo)) -(def undo-history (icon-xref :undo-history)) (def ungroup (icon-xref :ungroup)) (def unlock (icon-xref :unlock)) (def uppercase (icon-xref :uppercase)) From e3896da3c4e3b808569657632c43ab8ddb239a31 Mon Sep 17 00:00:00 2001 From: elhombretecla Date: Thu, 29 Apr 2021 15:19:04 +0200 Subject: [PATCH 008/135] :tada: Quick fixes --- frontend/resources/styles/main/partials/colorpicker.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/resources/styles/main/partials/colorpicker.scss b/frontend/resources/styles/main/partials/colorpicker.scss index 5f04d8990..410437ae6 100644 --- a/frontend/resources/styles/main/partials/colorpicker.scss +++ b/frontend/resources/styles/main/partials/colorpicker.scss @@ -342,8 +342,8 @@ .btn-primary { height: 1.5rem; - padding: 0 2.5rem; font-size: $fs12; + width: 100%; } } From 9adf0b361111cb01b742f27ad6f075ac58539899 Mon Sep 17 00:00:00 2001 From: elhombretecla Date: Fri, 30 Apr 2021 13:59:29 +0200 Subject: [PATCH 009/135] :lipstick: Change messages css --- frontend/resources/styles/common/framework.scss | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/frontend/resources/styles/common/framework.scss b/frontend/resources/styles/common/framework.scss index ce0ee94d9..629cee8d1 100644 --- a/frontend/resources/styles/common/framework.scss +++ b/frontend/resources/styles/common/framework.scss @@ -1129,22 +1129,25 @@ input[type=range]:focus::-ms-fill-upper { } &.fixed { - position: fixed; - top: 0; - left: 0px; - width: 100%; + border-radius: $br-small; + box-shadow: 0px 4px 4px rgba(0,0,0,0.2); height: 48px; + max-width: 1000px; + min-width: 500px; + position: fixed; + padding-left: 16px; + top: 16px; + right: 16px; z-index: 13; display: flex; - justify-content: center; align-items: center; .wrapper { display: flex; justify-content: center; align-items: center; - max-width: 60%; + padding-right: 64px; .icon { margin-right: $medium; From a6fb4a8271b36ac4f6aa05af3d4cc4398b3f6ddf Mon Sep 17 00:00:00 2001 From: elhombretecla Date: Tue, 4 May 2021 08:25:46 +0200 Subject: [PATCH 010/135] :lipstick: Review icons --- frontend/resources/images/icons/icon-grid.svg | 1 - frontend/resources/images/icons/move.svg | 3 --- frontend/resources/images/icons/options.svg | 1 - frontend/resources/images/icons/size-horiz.svg | 4 ++-- frontend/resources/images/icons/size-vert.svg | 4 ++-- frontend/resources/images/icons/sublevel.svg | 1 - frontend/src/app/main/ui/icons.cljs | 2 -- 7 files changed, 4 insertions(+), 12 deletions(-) delete mode 100644 frontend/resources/images/icons/icon-grid.svg delete mode 100644 frontend/resources/images/icons/move.svg delete mode 100644 frontend/resources/images/icons/options.svg delete mode 100644 frontend/resources/images/icons/sublevel.svg diff --git a/frontend/resources/images/icons/icon-grid.svg b/frontend/resources/images/icons/icon-grid.svg deleted file mode 100644 index 4c1eafbdf..000000000 --- a/frontend/resources/images/icons/icon-grid.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/frontend/resources/images/icons/move.svg b/frontend/resources/images/icons/move.svg deleted file mode 100644 index dcb4e329e..000000000 --- a/frontend/resources/images/icons/move.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/frontend/resources/images/icons/options.svg b/frontend/resources/images/icons/options.svg deleted file mode 100644 index 153440bde..000000000 --- a/frontend/resources/images/icons/options.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/frontend/resources/images/icons/size-horiz.svg b/frontend/resources/images/icons/size-horiz.svg index 553fbfea1..ab9456580 100644 --- a/frontend/resources/images/icons/size-horiz.svg +++ b/frontend/resources/images/icons/size-horiz.svg @@ -1,3 +1,3 @@ - - + + diff --git a/frontend/resources/images/icons/size-vert.svg b/frontend/resources/images/icons/size-vert.svg index 14bba276d..f2e807c40 100644 --- a/frontend/resources/images/icons/size-vert.svg +++ b/frontend/resources/images/icons/size-vert.svg @@ -1,3 +1,3 @@ - - + + diff --git a/frontend/resources/images/icons/sublevel.svg b/frontend/resources/images/icons/sublevel.svg deleted file mode 100644 index da078b499..000000000 --- a/frontend/resources/images/icons/sublevel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/frontend/src/app/main/ui/icons.cljs b/frontend/src/app/main/ui/icons.cljs index 42ce72844..598ba3b48 100644 --- a/frontend/src/app/main/ui/icons.cljs +++ b/frontend/src/app/main/ui/icons.cljs @@ -86,7 +86,6 @@ (def nodes-remove (icon-xref :nodes-remove)) (def nodes-separate (icon-xref :nodes-separate)) (def nodes-snap (icon-xref :nodes-snap)) -(def options (icon-xref :options)) (def organize (icon-xref :organize)) (def palette (icon-xref :palette)) (def pen (icon-xref :pen)) @@ -123,7 +122,6 @@ (def sort-descending (icon-xref :sort-descending)) (def strikethrough (icon-xref :strikethrough)) (def stroke (icon-xref :stroke)) -(def sublevel (icon-xref :sublevel)) (def text (icon-xref :text)) (def text-align-center (icon-xref :text-align-center)) (def text-align-justify (icon-xref :text-align-justify)) From 9d0877e985de81b21c0dab5045f4cc7454c31ac5 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 4 May 2021 11:03:02 +0200 Subject: [PATCH 011/135] :globe_with_meridians: Added translation for: Portuguese (Brazil). --- frontend/translations/pt_BR.po | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 frontend/translations/pt_BR.po diff --git a/frontend/translations/pt_BR.po b/frontend/translations/pt_BR.po new file mode 100644 index 000000000..4f8f6e6de --- /dev/null +++ b/frontend/translations/pt_BR.po @@ -0,0 +1,2 @@ +msgid "" +msgstr "X-Generator: Weblate\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit" \ No newline at end of file From 2582e87ffa5f7fcf68e36710e726d32c5fa99868 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 3 May 2021 11:04:19 +0200 Subject: [PATCH 012/135] :sparkles: Improve path editor --- .../src/app/main/data/workspace/path.cljs | 1 + .../app/main/data/workspace/path/drawing.cljs | 10 +++++++ .../main/data/workspace/path/shortcuts.cljs | 27 +++++++++++++++++-- .../main/ui/workspace/shapes/path/editor.cljs | 16 ++++++----- 4 files changed, 46 insertions(+), 8 deletions(-) diff --git a/frontend/src/app/main/data/workspace/path.cljs b/frontend/src/app/main/data/workspace/path.cljs index 33a5c2b52..57f2af43b 100644 --- a/frontend/src/app/main/data/workspace/path.cljs +++ b/frontend/src/app/main/data/workspace/path.cljs @@ -18,6 +18,7 @@ (d/export drawing/start-path-from-point) (d/export drawing/close-path-drag-start) (d/export drawing/change-edit-mode) +(d/export drawing/reset-last-handler) ;; Edition (d/export edition/start-move-handler) diff --git a/frontend/src/app/main/data/workspace/path/drawing.cljs b/frontend/src/app/main/data/workspace/path/drawing.cljs index 08fdad18e..e44cf9e92 100644 --- a/frontend/src/app/main/data/workspace/path/drawing.cljs +++ b/frontend/src/app/main/data/workspace/path/drawing.cljs @@ -359,3 +359,13 @@ (and id (= :move mode)) (rx/of (common/finish-path "change-edit-mode")) (and id (= :draw mode)) (rx/of (start-draw-mode)) :else (rx/empty)))))) + +(defn reset-last-handler + [] + (ptk/reify ::reset-last-handler + ptk/UpdateEvent + (update [_ state] + (let [id (st/get-path-id state)] + (-> state + (assoc-in [:workspace-local :edit-path id :prev-handler] nil)))))) + diff --git a/frontend/src/app/main/data/workspace/path/shortcuts.cljs b/frontend/src/app/main/data/workspace/path/shortcuts.cljs index 2470f2bb3..b88ee5268 100644 --- a/frontend/src/app/main/data/workspace/path/shortcuts.cljs +++ b/frontend/src/app/main/data/workspace/path/shortcuts.cljs @@ -40,8 +40,8 @@ :command "p" :fn #(st/emit! (drp/change-edit-mode :draw))} - :add-node {:tooltip "+" - :command "+" + :add-node {:tooltip (ds/shift "+") + :command "shift++" :fn #(st/emit! (drp/add-node))} :delete-node {:tooltip (ds/supr) @@ -88,7 +88,30 @@ :command [(ds/c-mod "shift+z") (ds/c-mod "y")] :fn #(st/emit! (drp/redo-path))} + ;; ZOOM + + :increase-zoom {:tooltip "+" + :command "+" + :fn #(st/emit! (dw/increase-zoom nil))} + + :decrease-zoom {:tooltip "-" + :command "-" + :fn #(st/emit! (dw/decrease-zoom nil))} + + :reset-zoom {:tooltip (ds/shift "0") + :command "shift+0" + :fn #(st/emit! dw/reset-zoom)} + + :fit-all {:tooltip (ds/shift "1") + :command "shift+1" + :fn #(st/emit! dw/zoom-to-fit-all)} + + :zoom-selected {:tooltip (ds/shift "2") + :command "shift+2" + :fn #(st/emit! dw/zoom-to-selected-shape)} + ;; Arrow movement + :move-fast-up {:tooltip (ds/shift ds/up-arrow) :command "shift+up" :fn #(st/emit! (drp/move-selected :up true))} diff --git a/frontend/src/app/main/ui/workspace/shapes/path/editor.cljs b/frontend/src/app/main/ui/workspace/shapes/path/editor.cljs index 16101feca..88cc10114 100644 --- a/frontend/src/app/main/ui/workspace/shapes/path/editor.cljs +++ b/frontend/src/app/main/ui/workspace/shapes/path/editor.cljs @@ -30,12 +30,14 @@ (let [{:keys [x y]} position on-enter - (fn [event] - (st/emit! (drp/path-pointer-enter position))) + (mf/use-callback + (fn [event] + (st/emit! (drp/path-pointer-enter position)))) on-leave - (fn [event] - (st/emit! (drp/path-pointer-leave position))) + (mf/use-callback + (fn [event] + (st/emit! (drp/path-pointer-leave position)))) on-mouse-down (fn [event] @@ -48,6 +50,9 @@ (let [shift? (kbd/shift? event) ctrl? (kbd/ctrl? event)] (cond + last-p? + (st/emit! (drp/reset-last-handler)) + (and (= edit-mode :move) ctrl? (not curve?)) (st/emit! (drp/make-curve position)) @@ -81,8 +86,7 @@ :on-mouse-down on-mouse-down :on-mouse-enter on-enter :on-mouse-leave on-leave - :style {:pointer-events (when last-p? "none") - :cursor (cond + :style {:cursor (cond (= edit-mode :draw) cur/pen-node (= edit-mode :move) cur/pointer-node) :fill "transparent"}}]])) From e15a212b14c837c4ecfa8b4628a99c6d3ad36359 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 29 Apr 2021 13:04:19 +0200 Subject: [PATCH 013/135] :tada: Add dashboard custom fonts management. --- .gitignore | 1 + backend/deps.edn | 2 +- backend/src/app/main.clj | 7 +- backend/src/app/media.clj | 137 +++++-- backend/src/app/migrations.clj | 3 + .../sql/0053-add-team-font-variant-table.sql | 20 + backend/src/app/rlimits.clj | 1 + backend/src/app/rpc.clj | 2 + backend/src/app/rpc/mutations/fonts.clj | 116 ++++++ backend/src/app/rpc/mutations/media.clj | 5 +- backend/src/app/rpc/mutations/profile.clj | 4 +- backend/src/app/rpc/mutations/teams.clj | 4 +- backend/src/app/rpc/queries/fonts.clj | 29 ++ backend/src/app/storage/impl.clj | 4 +- backend/src/app/tasks/delete_object.clj | 23 +- backend/src/app/tasks/file_media_gc.clj | 5 +- common/app/common/data.cljc | 13 + common/app/common/media.cljc | 43 ++- common/app/common/spec.cljc | 16 +- frontend/gulpfile.js | 27 +- frontend/package.json | 4 +- frontend/resources/styles/main-default.scss | 1 + .../styles/main/partials/dashboard-fonts.scss | 167 +++++++++ frontend/src/app/main/data/dashboard.cljs | 10 - .../src/app/main/data/dashboard/fonts.cljs | 94 +++++ frontend/src/app/main/data/media.cljs | 2 +- frontend/src/app/main/refs.cljs | 3 + frontend/src/app/main/snap.cljs | 4 +- frontend/src/app/main/ui.cljs | 9 +- .../app/main/ui/components/context_menu.cljs | 32 +- frontend/src/app/main/ui/dashboard.cljs | 33 +- frontend/src/app/main/ui/dashboard/fonts.cljs | 353 ++++++++++++++++++ .../src/app/main/ui/dashboard/sidebar.cljs | 120 +++--- frontend/src/app/main/ui/messages.cljs | 52 +-- .../app/main/ui/workspace/left_toolbar.cljs | 2 +- .../app/main/ui/workspace/sidebar/assets.cljs | 6 +- .../ui/workspace/viewport/snap_points.cljs | 1 - frontend/src/app/util/i18n.cljs | 8 + frontend/src/app/util/webapi.cljs | 4 + frontend/translations/en.po | 77 +++- frontend/translations/es.po | 62 +++ frontend/yarn.lock | 31 +- 42 files changed, 1329 insertions(+), 208 deletions(-) create mode 100644 backend/src/app/migrations/sql/0053-add-team-font-variant-table.sql create mode 100644 backend/src/app/rpc/mutations/fonts.clj create mode 100644 backend/src/app/rpc/queries/fonts.clj create mode 100644 frontend/resources/styles/main/partials/dashboard-fonts.scss create mode 100644 frontend/src/app/main/data/dashboard/fonts.cljs create mode 100644 frontend/src/app/main/ui/dashboard/fonts.cljs diff --git a/.gitignore b/.gitignore index 0bf57fa62..4695ea70a 100644 --- a/.gitignore +++ b/.gitignore @@ -26,6 +26,7 @@ node_modules /frontend/out/ /frontend/.shadow-cljs /frontend/resources/public/* +/frontend/resources/fonts/experiments /exporter/target /exporter/.shadow-cljs /docker/images/bundle* diff --git a/backend/deps.edn b/backend/deps.edn index 5659d1a62..316e1f981 100644 --- a/backend/deps.edn +++ b/backend/deps.edn @@ -47,7 +47,7 @@ org.postgresql/postgresql {:mvn/version "42.2.19"} com.zaxxer/HikariCP {:mvn/version "4.0.3"} - funcool/datoteka {:mvn/version "1.2.0"} + funcool/datoteka {:mvn/version "2.0.0"} funcool/promesa {:mvn/version "6.0.0"} funcool/cuerdas {:mvn/version "2020.03.26-3"} diff --git a/backend/src/app/main.clj b/backend/src/app/main.clj index ab8c96ebb..1dba68956 100644 --- a/backend/src/app/main.clj +++ b/backend/src/app/main.clj @@ -122,10 +122,15 @@ :app.rlimits/image (cf/get :rlimits-image) + ;; RLimit definition for font processing + :app.rlimits/font + (cf/get :rlimits-font 2) + ;; A collection of rlimits as hash-map. :app.rlimits/all {:password (ig/ref :app.rlimits/password) - :image (ig/ref :app.rlimits/image)} + :image (ig/ref :app.rlimits/image) + :font (ig/ref :app.rlimits/font)} :app.rpc/rpc {:pool (ig/ref :app.db/pool) diff --git a/backend/src/app/media.clj b/backend/src/app/media.clj index 6d035a9c8..a1253dc65 100644 --- a/backend/src/app/media.clj +++ b/backend/src/app/media.clj @@ -5,7 +5,7 @@ ;; Copyright (c) UXBOX Labs SL (ns app.media - "Media postprocessing." + "Media & Font postprocessing." (:require [app.common.data :as d] [app.common.exceptions :as ex] @@ -13,20 +13,29 @@ [app.common.spec :as us] [app.rlimits :as rlm] [app.rpc.queries.svg :as svg] + [clojure.java.io :as io] + [clojure.java.shell :as sh] [clojure.spec.alpha :as s] [cuerdas.core :as str] [datoteka.core :as fs]) (:import java.io.ByteArrayInputStream + java.io.OutputStream + org.apache.commons.io.IOUtils org.im4java.core.ConvertCmd org.im4java.core.IMOperation org.im4java.core.Info)) -;; --- Generic specs +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; --- Utility functions +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(s/def ::image-content-type cm/valid-image-types) +(s/def ::font-content-type cm/valid-font-types) (s/def :internal.http.upload/filename ::us/string) (s/def :internal.http.upload/size ::us/integer) -(s/def :internal.http.upload/content-type cm/valid-media-types) +(s/def :internal.http.upload/content-type ::us/string) (s/def :internal.http.upload/tempfile any?) (s/def ::upload @@ -35,8 +44,44 @@ :internal.http.upload/tempfile :internal.http.upload/content-type])) +(defn validate-media-type + ([mtype] (validate-media-type mtype cm/valid-image-types)) + ([mtype allowed] + (when-not (contains? allowed mtype) + (ex/raise :type :validation + :code :media-type-not-allowed + :hint "Seems like you are uploading an invalid media object")))) + +(defmulti process :cmd) +(defmulti process-error class) + +(defmethod process :default + [{:keys [cmd] :as params}] + (ex/raise :type :internal + :code :not-implemented + :hint (str/fmt "No impl found for process cmd: %s" cmd))) + +(defmethod process-error :default + [error] + (ex/raise :type :internal :cause error)) + +(defn run + [{:keys [rlimits] :as cfg} {:keys [rlimit] :or {rlimit :image} :as params}] + (us/assert map? rlimits) + (let [rlimit (get rlimits rlimit)] + (when-not rlimit + (ex/raise :type :internal + :code :rlimit-not-configured + :hint ":image rlimit not configured")) + (try + (rlm/execute rlimit (process params)) + (catch Throwable e + (process-error e))))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; --- Thumbnails Generation +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (s/def ::cmd keyword?) @@ -77,8 +122,6 @@ :size (alength ^bytes thumbnail-data) :data (ByteArrayInputStream. thumbnail-data))))) -(defmulti process :cmd) - (defmethod process :generic-thumbnail [{:keys [quality width height] :as params}] (us/assert ::thumbnail-params params) @@ -161,33 +204,63 @@ :height (.getPageHeight instance) :mtype mtype})))) -(defmethod process :default - [{:keys [cmd] :as params}] - (ex/raise :type :internal - :code :not-implemented - :hint (str "No impl found for process cmd:" cmd))) +(defmethod process-error org.im4java.core.InfoException + [error] + (ex/raise :type :validation + :code :invalid-image + :cause error)) -(defn run - [{:keys [rlimits]} params] - (us/assert map? rlimits) - (let [rlimit (get rlimits :image)] - (when-not rlimit - (ex/raise :type :internal - :code :rlimit-not-configured - :hint ":image rlimit not configured")) - (try - (rlm/execute rlimit (process params)) - (catch org.im4java.core.InfoException e - (ex/raise :type :validation - :code :invalid-image - :cause e))))) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; --- Fonts Generation +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; --- Utility functions +(def all-fotmats #{"font/woff2", "font/woff", "font/otf", "font/ttf"}) -(defn validate-media-type - ([mtype] (validate-media-type mtype cm/valid-media-types)) - ([mtype allowed] - (when-not (contains? allowed mtype) - (ex/raise :type :validation - :code :media-type-not-allowed - :hint "Seems like you are uploading an invalid media object")))) +(defmethod process :generate-fonts + [{:keys [input] :as params}] + (letfn [(ttf->otf [data] + (let [input-file (fs/create-tempfile :prefix "penpot") + output-file (fs/path (str input-file ".otf")) + _ (with-open [out (io/output-stream input-file)] + (IOUtils/writeChunked ^bytes data ^OutputStream out) + (.flush ^OutputStream out)) + res (sh/sh "fontforge" "-lang=ff" "-c" + (str/fmt "Open('%s'); Generate('%s')" + (str input-file) + (str output-file)))] + (when (zero? (:exit res)) + (fs/slurp-bytes output-file)))) + + + (ttf-or-otf->woff [data] + (let [input-file (fs/create-tempfile :prefix "penpot" :suffix "") + output-file (fs/path (str input-file ".woff")) + _ (with-open [out (io/output-stream input-file)] + (IOUtils/writeChunked ^bytes data ^OutputStream out) + (.flush ^OutputStream out)) + res (sh/sh "sfnt2woff" (str input-file))] + (when (zero? (:exit res)) + (fs/slurp-bytes output-file)))) + + (ttf-or-otf->woff2 [data] + (let [input-file (fs/create-tempfile :prefix "penpot" :suffix "") + output-file (fs/path (str input-file ".woff2")) + _ (with-open [out (io/output-stream input-file)] + (IOUtils/writeChunked ^bytes data ^OutputStream out) + (.flush ^OutputStream out)) + res (sh/sh "woff2_compress" (str input-file))] + (when (zero? (:exit res)) + (fs/slurp-bytes output-file))))] + + (let [current (into #{} (keys input))] + (if (contains? current "font/ttf") + (-> input + (assoc "font/otf" (ttf->otf (get input "font/ttf"))) + (assoc "font/woff" (ttf-or-otf->woff (get input "font/ttf"))) + (assoc "font/woff2" (ttf-or-otf->woff2 (get input "font/ttf")))) + + (-> input + ;; TODO: pending to implement + ;; (assoc "font/ttf" (otf->ttf (get input "font/ttf"))) + (assoc "font/woff" (ttf-or-otf->woff (get input "font/otf"))) + (assoc "font/woff2" (ttf-or-otf->woff2 (get input "font/otf")))))))) diff --git a/backend/src/app/migrations.clj b/backend/src/app/migrations.clj index 18a8917c4..4989dd109 100644 --- a/backend/src/app/migrations.clj +++ b/backend/src/app/migrations.clj @@ -166,6 +166,9 @@ {:name "0052-del-legacy-user-and-team" :fn (mg/resource "app/migrations/sql/0052-del-legacy-user-and-team.sql")} + + {:name "0053-add-team-font-variant-table" + :fn (mg/resource "app/migrations/sql/0053-add-team-font-variant-table.sql")} ]) diff --git a/backend/src/app/migrations/sql/0053-add-team-font-variant-table.sql b/backend/src/app/migrations/sql/0053-add-team-font-variant-table.sql new file mode 100644 index 000000000..423ed2556 --- /dev/null +++ b/backend/src/app/migrations/sql/0053-add-team-font-variant-table.sql @@ -0,0 +1,20 @@ +CREATE TABLE team_font_variant ( + id uuid PRIMARY KEY DEFAULT uuid_generate_v4(), + + team_id uuid NOT NULL REFERENCES team(id) ON DELETE CASCADE, + profile_id uuid NULL REFERENCES profile(id) ON DELETE SET NULL, + + created_at timestamptz NOT NULL DEFAULT now(), + modified_at timestamptz NOT NULL DEFAULT now(), + deleted_at timestamptz NULL DEFAULT NULL, + + font_id text NOT NULL, + font_family text NOT NULL, + font_weight smallint NOT NULL, + font_style text NOT NULL, + + otf_file_id uuid NULL REFERENCES storage_object(id) ON DELETE SET NULL, + ttf_file_id uuid NULL REFERENCES storage_object(id) ON DELETE SET NULL, + woff1_file_id uuid NULL REFERENCES storage_object(id) ON DELETE SET NULL, + woff2_file_id uuid NULL REFERENCES storage_object(id) ON DELETE SET NULL +); diff --git a/backend/src/app/rlimits.clj b/backend/src/app/rlimits.clj index 86a3903db..aaf813178 100644 --- a/backend/src/app/rlimits.clj +++ b/backend/src/app/rlimits.clj @@ -18,6 +18,7 @@ (derive ::password ::instance) (derive ::image ::instance) +(derive ::font ::instance) (defmethod ig/pre-init-spec ::instance [_] (s/spec int?)) diff --git a/backend/src/app/rpc.clj b/backend/src/app/rpc.clj index a0c1a4bda..2495d3227 100644 --- a/backend/src/app/rpc.clj +++ b/backend/src/app/rpc.clj @@ -120,6 +120,7 @@ 'app.rpc.queries.profile 'app.rpc.queries.recent-files 'app.rpc.queries.viewer + 'app.rpc.queries.fonts 'app.rpc.queries.svg) (map (partial process-method cfg)) (into {})))) @@ -143,6 +144,7 @@ 'app.rpc.mutations.teams 'app.rpc.mutations.management 'app.rpc.mutations.ldap + 'app.rpc.mutations.fonts 'app.rpc.mutations.verify-token) (map (partial process-method cfg)) (into {})))) diff --git a/backend/src/app/rpc/mutations/fonts.clj b/backend/src/app/rpc/mutations/fonts.clj new file mode 100644 index 000000000..e5194174f --- /dev/null +++ b/backend/src/app/rpc/mutations/fonts.clj @@ -0,0 +1,116 @@ +;; 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) UXBOX Labs SL + +(ns app.rpc.mutations.fonts + (:require + [app.common.spec :as us] + [app.common.uuid :as uuid] + [app.config :as cf] + [app.db :as db] + [app.media :as media] + [app.rpc.queries.teams :as teams] + [app.storage :as sto] + [app.util.services :as sv] + [app.util.time :as dt] + [app.worker :as wrk] + [clojure.spec.alpha :as s] + [cuerdas.core :as str])) + +(declare create-font-variant) + +(def valid-weight #{100 200 300 400 500 600 700 800 900 950}) +(def valid-style #{"normal" "italic"}) + +(s/def ::profile-id ::us/uuid) +(s/def ::team-id ::us/uuid) +(s/def ::name ::us/not-empty-string) +(s/def ::weight valid-weight) +(s/def ::style valid-style) +(s/def ::font-id (s/and ::us/string #(str/starts-with? % "custom-"))) +(s/def ::content-type ::media/font-content-type) +(s/def ::data (s/map-of ::us/string any?)) + +(s/def ::create-font-variant + (s/keys :req-un [::profile-id ::team-id ::data + ::font-id ::font-family ::font-weight ::font-style])) + +(sv/defmethod ::create-font-variant + [{:keys [pool] :as cfg} {:keys [team-id profile-id] :as params}] + (db/with-atomic [conn pool] + (let [cfg (assoc cfg :conn conn)] + (teams/check-edition-permissions! conn profile-id team-id) + (create-font-variant cfg params)))) + +(defn create-font-variant + [{:keys [conn storage] :as cfg} {:keys [data] :as params}] + (let [data (media/run cfg {:cmd :generate-fonts :input data :rlimit :font}) + storage (assoc storage :conn conn) + otf (when-let [fdata (get data "font/otf")] + (sto/put-object storage {:content (sto/content fdata) + :content-type "font/otf"})) + + ttf (when-let [fdata (get data "font/ttf")] + (sto/put-object storage {:content (sto/content fdata) + :content-type "font/ttf"})) + + woff1 (when-let [fdata (get data "font/woff")] + (sto/put-object storage {:content (sto/content fdata) + :content-type "font/woff"})) + + woff2 (when-let [fdata (get data "font/woff2")] + (sto/put-object storage {:content (sto/content fdata) + :content-type "font/woff2"}))] + + (db/insert! conn :team-font-variant + {:id (uuid/next) + :team-id (:team-id params) + :font-id (:font-id params) + :font-family (:font-family params) + :font-weight (:font-weight params) + :font-style (:font-style params) + :woff1-file-id (:id woff1) + :woff2-file-id (:id woff2) + :otf-file-id (:id otf) + :ttf-file-id (:id ttf)}))) + +;; --- UPDATE FONT VARIANT + +(s/def ::update-font-variant + (s/keys :req-un [::profile-id ::team-id ::id ::font-family ::font-id])) + +(sv/defmethod ::update-font-variant + [{:keys [pool] :as cfg} {:keys [id team-id profile-id font-family font-id] :as params}] + (db/with-atomic [conn pool] + (teams/check-edition-permissions! conn profile-id team-id) + (db/update! conn :team-font-variant + {:font-family font-family + :font-id font-id} + {:id id + :team-id team-id}) + nil)) + +;; --- DELETE FONT VARIANT + +(s/def ::delete-font-variant + (s/keys :req-un [::profile-id ::team-id ::id])) + +(sv/defmethod ::delete-font-variant + [{:keys [pool] :as cfg} {:keys [id team-id profile-id font-family font-id] :as params}] + (db/with-atomic [conn pool] + (teams/check-edition-permissions! conn profile-id team-id) + + ;; Schedule object deletion + (wrk/submit! {::wrk/task :delete-object + ::wrk/delay cf/deletion-delay + ::wrk/conn conn + :id id + :type :team-font-variant}) + + (db/update! conn :team-font-variant + {:deleted-at (dt/now)} + {:id id + :team-id team-id}) + nil)) diff --git a/backend/src/app/rpc/mutations/media.clj b/backend/src/app/rpc/mutations/media.clj index 26dbac324..62241a48b 100644 --- a/backend/src/app/rpc/mutations/media.clj +++ b/backend/src/app/rpc/mutations/media.clj @@ -32,12 +32,15 @@ (s/def ::file-id ::us/uuid) (s/def ::team-id ::us/uuid) + ;; --- Create File Media object (upload) (declare create-file-media-object) (declare select-file) -(s/def ::content ::media/upload) +(s/def ::content-type ::media/image-content-type) +(s/def ::content (s/and ::media/upload (s/keys :req-un [::content-type]))) + (s/def ::is-local ::us/boolean) (s/def ::upload-file-media-object diff --git a/backend/src/app/rpc/mutations/profile.clj b/backend/src/app/rpc/mutations/profile.clj index 7e719b6c2..01fdb5243 100644 --- a/backend/src/app/rpc/mutations/profile.clj +++ b/backend/src/app/rpc/mutations/profile.clj @@ -401,7 +401,9 @@ (declare update-profile-photo) -(s/def ::file ::media/upload) +(s/def ::content-type ::media/image-content-type) +(s/def ::file (s/and ::media/upload (s/keys :req-un [::content-type]))) + (s/def ::update-profile-photo (s/keys :req-un [::profile-id ::file])) diff --git a/backend/src/app/rpc/mutations/teams.clj b/backend/src/app/rpc/mutations/teams.clj index 701833162..c9adebfae 100644 --- a/backend/src/app/rpc/mutations/teams.clj +++ b/backend/src/app/rpc/mutations/teams.clj @@ -249,7 +249,9 @@ (declare upload-photo) -(s/def ::file ::media/upload) +(s/def ::content-type ::media/image-content-type) +(s/def ::file (s/and ::media/upload (s/keys :req-un [::content-type]))) + (s/def ::update-team-photo (s/keys :req-un [::profile-id ::team-id ::file])) diff --git a/backend/src/app/rpc/queries/fonts.clj b/backend/src/app/rpc/queries/fonts.clj new file mode 100644 index 000000000..b25c780f5 --- /dev/null +++ b/backend/src/app/rpc/queries/fonts.clj @@ -0,0 +1,29 @@ +;; 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) UXBOX Labs SL + +(ns app.rpc.queries.fonts + (:require + [app.common.spec :as us] + [app.db :as db] + [app.rpc.queries.teams :as teams] + [app.util.services :as sv] + [clojure.spec.alpha :as s])) + +;; --- Query: Team Font Variants + +(s/def ::team-id ::us/uuid) +(s/def ::profile-id ::us/uuid) +(s/def ::team-font-variants + (s/keys :req-un [::profile-id ::team-id])) + +(sv/defmethod ::team-font-variants + [{:keys [pool] :as cfg} {:keys [profile-id team-id] :as params}] + (with-open [conn (db/open pool)] + (teams/check-read-permissions! conn profile-id team-id) + (db/query conn :team-font-variant + {:team-id team-id + :deleted-at nil}))) + diff --git a/backend/src/app/storage/impl.clj b/backend/src/app/storage/impl.clj index 27a44cbed..a28184df5 100644 --- a/backend/src/app/storage/impl.clj +++ b/backend/src/app/storage/impl.clj @@ -145,8 +145,8 @@ (make-output-stream [_ opts] (throw (UnsupportedOperationException. "not implemented"))) - clojure.lang.Counted - (count [_] size))) + clojure.lang.Counted + (count [_] size))) (defn content ([data] (content data nil)) diff --git a/backend/src/app/tasks/delete_object.clj b/backend/src/app/tasks/delete_object.clj index bcd6e4a48..8a8335bcd 100644 --- a/backend/src/app/tasks/delete_object.clj +++ b/backend/src/app/tasks/delete_object.clj @@ -10,6 +10,7 @@ [app.common.data :as d] [app.common.spec :as us] [app.db :as db] + [app.storage :as sto] [app.util.logging :as l] [clojure.spec.alpha :as s] [integrant.core :as ig])) @@ -24,7 +25,8 @@ (fn [{:keys [props] :as task}] (us/verify ::props props) (db/with-atomic [conn pool] - (handle-deletion conn props)))) + (let [cfg (assoc cfg :conn conn)] + (handle-deletion cfg props))))) (s/def ::type ::us/keyword) (s/def ::id ::us/uuid) @@ -34,21 +36,32 @@ (fn [_ props] (:type props))) (defmethod handle-deletion :default - [_conn {:keys [type]}] + [_cfg {:keys [type]}] (l/warn :hint "no handler found" :type (d/name type))) (defmethod handle-deletion :file - [conn {:keys [id] :as props}] + [{:keys [conn]} {:keys [id] :as props}] (let [sql "delete from file where id=? and deleted_at is not null"] (db/exec-one! conn [sql id]))) (defmethod handle-deletion :project - [conn {:keys [id] :as props}] + [{:keys [conn]} {:keys [id] :as props}] (let [sql "delete from project where id=? and deleted_at is not null"] (db/exec-one! conn [sql id]))) (defmethod handle-deletion :team - [conn {:keys [id] :as props}] + [{:keys [conn]} {:keys [id] :as props}] (let [sql "delete from team where id=? and deleted_at is not null"] (db/exec-one! conn [sql id]))) + +(defmethod handle-deletion :team-font-variant + [{:keys [conn storage]} {:keys [id] :as props}] + (let [font (db/get-by-id conn :team-font-variant id {:uncheked true}) + storage (assoc storage :conn conn)] + (when (:deleted-at font) + (db/delete! conn :team-font-variant {:id id}) + (some->> (:woff1-file-id font) (sto/del-object storage)) + (some->> (:woff2-file-id font) (sto/del-object storage)) + (some->> (:otf-file-id font) (sto/del-object storage)) + (some->> (:ttf-file-id font) (sto/del-object storage))))) diff --git a/backend/src/app/tasks/file_media_gc.clj b/backend/src/app/tasks/file_media_gc.clj index d1bdc6751..8b8bc3d28 100644 --- a/backend/src/app/tasks/file_media_gc.clj +++ b/backend/src/app/tasks/file_media_gc.clj @@ -101,7 +101,10 @@ :media-id (:media-id mobj) :thumbnail-id (:thumbnail-id mobj)) ;; NOTE: deleting the file-media-object in the database - ;; automatically marks as toched the referenced storage objects. + ;; automatically marks as toched the referenced storage + ;; objects. The touch mechanism is needed because many files can + ;; point to the same storage objects and we can't just delete + ;; them. (db/delete! conn :file-media-object {:id (:id mobj)})) nil)) diff --git a/common/app/common/data.cljc b/common/app/common/data.cljc index a46b306f2..12b58d619 100644 --- a/common/app/common/data.cljc +++ b/common/app/common/data.cljc @@ -261,6 +261,19 @@ (recur (reduce-kv assoc! res (first maps)) (next maps))))) +(defn distinct-xf + [f] + (fn [rf] + (let [seen (volatile! #{})] + (fn + ([] (rf)) + ([result] (rf result)) + ([result input] + (let [input* (f input)] + (if (contains? @seen input*) + result + (do (vswap! seen conj input*) + (rf result input))))))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Data Parsing / Conversion diff --git a/common/app/common/media.cljc b/common/app/common/media.cljc index df3a556ca..108c21b10 100644 --- a/common/app/common/media.cljc +++ b/common/app/common/media.cljc @@ -9,10 +9,10 @@ [clojure.spec.alpha :as s] [cuerdas.core :as str])) -(def valid-media-types - #{"image/jpeg", "image/png", "image/webp", "image/gif", "image/svg+xml"}) - -(def str-media-types (str/join "," valid-media-types)) +(def valid-font-types #{"font/ttf" "font/woff", "font/otf"}) +(def valid-image-types #{"image/jpeg", "image/png", "image/webp", "image/gif", "image/svg+xml"}) +(def str-image-types (str/join "," valid-image-types)) +(def str-font-types (str/join "," valid-font-types)) (defn format->extension [format] @@ -65,3 +65,38 @@ ::modified-at ::uri])) + +(defn parse-font-weight + [variant] + (cond + (re-seq #"(?i)(?:hairline|thin)" variant) 100 + (re-seq #"(?i)(?:extra light|ultra light)" variant) 200 + (re-seq #"(?i)(?:light)" variant) 300 + (re-seq #"(?i)(?:normal|regular)" variant) 400 + (re-seq #"(?i)(?:medium)" variant) 500 + (re-seq #"(?i)(?:semi bold|demi bold)" variant) 600 + (re-seq #"(?i)(?:bold)" variant) 700 + (re-seq #"(?i)(?:extra bold|ultra bold)" variant) 800 + (re-seq #"(?i)(?:black|heavy)" variant) 900 + (re-seq #"(?i)(?:extra black|ultra black)" variant) 950 + :else 400)) + +(defn parse-font-style + [variant] + (if (re-seq #"(?i)(?:italic)" variant) + "italic" + "normal")) + +(defn font-weight->name + [weight] + (case weight + 100 "Hairline" + 200 "Extra Light" + 300 "Light" + 400 "Regular" + 500 "Medium" + 600 "Semi Bold" + 700 "Bold" + 800 "Extra Bold" + 900 "Black" + 950 "Extra Black")) diff --git a/common/app/common/spec.cljc b/common/app/common/spec.cljc index eabce91ff..00aebc82a 100644 --- a/common/app/common/spec.cljc +++ b/common/app/common/spec.cljc @@ -6,7 +6,7 @@ (ns app.common.spec "Data manipulation and query helper functions." - (:refer-clojure :exclude [assert]) + (:refer-clojure :exclude [assert bytes?]) #?(:cljs (:require-macros [app.common.spec :refer [assert]])) (:require #?(:clj [clojure.spec.alpha :as s] @@ -108,6 +108,20 @@ (s/def ::point gpt/point?) (s/def ::id ::uuid) +(defn bytes? + "Test if a first parameter is a byte + array or not." + [x] + (if (nil? x) + false + #?(:clj (= (Class/forName "[B") + (.getClass ^Object x)) + :cljs (or (instance? js/Uint8Array x) + (instance? js/ArrayBuffer x))))) + +(s/def ::bytes bytes?) + + (s/def ::safe-integer #(and (int? %) diff --git a/frontend/gulpfile.js b/frontend/gulpfile.js index 44596e08b..5a2068d1d 100644 --- a/frontend/gulpfile.js +++ b/frontend/gulpfile.js @@ -17,6 +17,7 @@ const mkdirp = require("mkdirp"); const rimraf = require("rimraf"); const sass = require("sass"); const gettext = require("gettext-parser"); +const marked = require("marked"); const mapStream = require("map-stream"); const paths = {}; @@ -45,17 +46,35 @@ function readLocales() { for (let key of Object.keys(trdata)) { if (key === "") continue; + const comments = trdata[key].comments || {}; if (l.isNil(result[key])) { result[key] = {}; } - const msgstr = trdata[key].msgstr; - if (msgstr.length === 1) { - result[key][lang] = msgstr[0]; + const isMarkdown = l.includes(comments.flag, "markdown"); + + const msgs = trdata[key].msgstr; + if (msgs.length === 1) { + let message = msgs[0]; + if (isMarkdown) { + message = marked.parseInline(message); + } + + result[key][lang] = message; } else { - result[key][lang] = msgstr; + result[key][lang] = msgs.map((item) => { + if (isMarkdown) { + return marked.parseInline(item); + } else { + return item; + } + }); } + // if (key === "modals.delete-font.title") { + // console.dir(trdata[key], {depth:10}); + // console.dir(result[key], {depth:10}); + // } } } diff --git a/frontend/package.json b/frontend/package.json index dbc09258c..5fb09dbf2 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -27,12 +27,13 @@ "gulp-sourcemaps": "^3.0.0", "gulp-svg-sprite": "^1.5.0", "map-stream": "0.0.7", + "marked": "^2.0.3", "mkdirp": "^1.0.4", "postcss": "^8.2.7", "postcss-clean": "^1.2.2", "rimraf": "^3.0.0", "sass": "^1.32.8", - "shadow-cljs": "^2.11.20" + "shadow-cljs": "2.12.5" }, "dependencies": { "date-fns": "^2.21.1", @@ -41,6 +42,7 @@ "js-beautify": "^1.13.5", "luxon": "^1.26.0", "mousetrap": "^1.6.5", + "opentype.js": "^1.3.3", "randomcolor": "^0.6.2", "react": "~17.0.1", "react-dom": "~17.0.1", diff --git a/frontend/resources/styles/main-default.scss b/frontend/resources/styles/main-default.scss index 0c9ee57b1..27c7c3610 100644 --- a/frontend/resources/styles/main-default.scss +++ b/frontend/resources/styles/main-default.scss @@ -63,6 +63,7 @@ @import "main/partials/dashboard-sidebar"; @import "main/partials/dashboard-team"; @import "main/partials/dashboard-settings"; +@import "main/partials/dashboard-fonts"; @import "main/partials/debug-icons-preview"; @import "main/partials/editable-label"; @import "main/partials/left-toolbar"; diff --git a/frontend/resources/styles/main/partials/dashboard-fonts.scss b/frontend/resources/styles/main/partials/dashboard-fonts.scss new file mode 100644 index 000000000..864f17e87 --- /dev/null +++ b/frontend/resources/styles/main/partials/dashboard-fonts.scss @@ -0,0 +1,167 @@ +.dashboard-fonts { + display: flex; + flex-direction: column; + align-items: center; + + .dashboard-installed-fonts { + max-width: 1000px; + width: 100%; + display: flex; + margin-top: $big; + flex-direction: column; + + h3 { + font-size: $fs14; + color: $color-gray-30; + margin: $x-small; + } + + .font-item { + color: $color-black; + } + } + + .installed-fonts-header { + color: $color-gray-40; + display: flex; + height: 40px; + font-size: $fs12; + background-color: $color-white; + align-items: center; + padding: 0px $big; + + > div { + width: 30%; + } + + .search-input { + display: flex; + flex-grow: 1; + justify-content: flex-end; + + input { + font-size: $fs12; + border: 1px solid $color-gray-30; + border-radius: $br-small; + width: 130px; + padding: $x-small; + margin: 0px; + } + } + } + + .fonts-group { + margin-top: $big; + } + + .font-item { + color: $color-gray-40; + font-size: $fs14; + background-color: $color-white; + display: flex; + min-width: 1000px; + width: 100%; + height: 97px; + align-items: center; + padding: $big; + + &:not(:first-child) { + border-top: 1px solid $color-gray-10; + } + + input { + border: 1px solid $color-gray-30; + border-radius: $br-small; + margin: 0px; + padding: $small; + font-size: $fs12; + } + + > div { + width: 30%; + } + + .variant { + font-size: $fs14; + } + + .filenames { + display: flex; + flex-direction: column; + font-size: $fs12; + } + + .options { + display: flex; + justify-content: flex-end; + + .icon { + width: $big; + cursor: pointer; + display: flex; + margin-left: 10px; + justify-content: center; + align-items: center; + svg { + width: 16px; + height: 16px; + } + + &.close { + svg { + transform: rotate(45deg); + } + } + + } + } + } + + + .dashboard-fonts-upload { + max-width: 1000px; + width: 100%; + display: flex; + flex-direction: column; + + + .upload-button { + width: 100px; + } + } + + .dashboard-fonts-hero { + font-size: $fs14; + + padding: $x-big; + background-color: $color-white; + margin-top: $x-big; + display: flex; + justify-content: space-between; + + .banner { + background-color: unset; + + display: flex; + + .icon { + display: flex; + align-items: center; + padding-left: 0px; + padding-right: 10px; + svg { + fill: $color-info; + } + } + } + + .desc { + h2 { + margin-bottom: $medium; + color: $color-black; + } + width: 80%; + color: $color-gray-40; + } + } +} diff --git a/frontend/src/app/main/data/dashboard.cljs b/frontend/src/app/main/data/dashboard.cljs index bb56ba551..a09a1f1d4 100644 --- a/frontend/src/app/main/data/dashboard.cljs +++ b/frontend/src/app/main/data/dashboard.cljs @@ -99,8 +99,6 @@ (->> (rp/query :team-stats {:team-id id}) (rx/map #(partial fetched %))))))) -;; --- Fetch Projects - (defn fetch-projects [{:keys [team-id] :as params}] (us/assert ::us/uuid team-id) @@ -123,8 +121,6 @@ (ptk/watch (fetch-projects {:team-id id}) state stream) (ptk/watch (du/fetch-users {:team-id id}) state stream)))))) -;; --- Search Files - (s/def :internal.event.search-files/team-id ::us/uuid) (s/def :internal.event.search-files/search-term (s/nilable ::us/string)) @@ -149,8 +145,6 @@ (->> (rp/query :search-files params) (rx/map #(partial fetched %))))))) -;; --- Fetch Files - (defn fetch-files [{:keys [project-id] :as params}] (us/assert ::us/uuid project-id) @@ -162,8 +156,6 @@ (->> (rp/query :files params) (rx/map #(partial fetched %))))))) -;; --- Fetch Shared Files - (defn fetch-shared-files [{:keys [team-id] :as params}] (us/assert ::us/uuid team-id) @@ -175,8 +167,6 @@ (->> (rp/query :shared-files {:team-id team-id}) (rx/map #(partial fetched %))))))) -;; --- Fetch recent files - (declare recent-files-fetched) (defn fetch-recent-files diff --git a/frontend/src/app/main/data/dashboard/fonts.cljs b/frontend/src/app/main/data/dashboard/fonts.cljs new file mode 100644 index 000000000..c1b76c6ab --- /dev/null +++ b/frontend/src/app/main/data/dashboard/fonts.cljs @@ -0,0 +1,94 @@ +;; 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) UXBOX Labs SL + +(ns app.main.data.dashboard.fonts + (:require + [app.common.exceptions :as ex] + [app.common.data :as d] + [app.common.media :as cm] + [app.common.spec :as us] + [app.common.uuid :as uuid] + [app.main.repo :as rp] + [app.util.time :as dt] + [app.util.timers :as ts] + [app.main.data.messages :as dm] + [app.util.webapi :as wa] + [app.util.object :as obj] + [app.util.transit :as t] + [beicon.core :as rx] + [cljs.spec.alpha :as s] + [cuerdas.core :as str] + [potok.core :as ptk])) + +(defn fetch-fonts + [{:keys [id] :as team}] + (ptk/reify ::fetch-fonts + ptk/WatchEvent + (watch [_ state stream] + (->> (rp/query! :team-font-variants {:team-id id}) + (rx/map (fn [items] + #(assoc % :dashboard-fonts (d/index-by :id items)))))))) + +(defn add-font + [font] + (ptk/reify ::add-font + ptk/UpdateEvent + (update [_ state] + (update state :dashboard-fonts assoc (:id font) font)))) + + +(defn update-font + [{:keys [id font-family] :as font}] + (ptk/reify ::update-font + ptk/UpdateEvent + (update [_ state] + (let [font (assoc font :font-id (str "custom-" (str/slug font-family)))] + (update state :dashboard-fonts assoc id font))) + + ptk/WatchEvent + (watch [_ state stream] + (let [font (get-in state [:dashboard-fonts id])] + (->> (rp/mutation! :update-font-variant font) + (rx/ignore)))))) + +(defn delete-font + [{:keys [id] :as font}] + (ptk/reify ::delete-font + ptk/UpdateEvent + (update [_ state] + (update state :dashboard-fonts dissoc id)) + + ptk/WatchEvent + (watch [_ state stream] + (let [params (select-keys font [:id :team-id])] + (->> (rp/mutation! :delete-font-variant params) + (rx/ignore)))))) + +;; (defn upload-font +;; [{:keys [id] :as font}] +;; (ptk/reify ::upload-font +;; ptk/WatchEvent +;; (watch [_ state stream] +;; (let [{:keys [on-success on-error] +;; :or {on-success identity +;; on-error rx/throw}} (meta params)] +;; (->> (rp/mutation! :create-font-variant font) +;; (rx/tap on-success) +;; (rx/catch on-error)))))) + +;; (defn add-font +;; "Add fonts to the state in a pending to upload state." +;; [font] +;; (ptk/reify ::add-font +;; ptk/UpdateEvent +;; (update [_ state] +;; (let [id (uuid/next) +;; font (-> font +;; (assoc :created-at (dt/now)) +;; (assoc :id id) +;; (assoc :status :draft))] +;; (js/console.log (clj->js font)) +;; (assoc-in state [:dashboard-fonts id] font))))) diff --git a/frontend/src/app/main/data/media.cljs b/frontend/src/app/main/data/media.cljs index 27794fd77..695807cc2 100644 --- a/frontend/src/app/main/data/media.cljs +++ b/frontend/src/app/main/data/media.cljs @@ -51,7 +51,7 @@ (ex/raise :type :validation :code :media-too-large :hint (str/fmt "media size is large than 5mb (size: %s)" (.-size file)))) - (when-not (contains? cm/valid-media-types (.-type file)) + (when-not (contains? cm/valid-image-types (.-type file)) (ex/raise :type :validation :code :media-type-not-allowed :hint (str/fmt "media type %s is not supported" (.-type file)))) diff --git a/frontend/src/app/main/refs.cljs b/frontend/src/app/main/refs.cljs index 7212dbc32..3b8554006 100644 --- a/frontend/src/app/main/refs.cljs +++ b/frontend/src/app/main/refs.cljs @@ -43,6 +43,9 @@ (def dashboard-local (l/derived :dashboard-local st/state)) +(def dashboard-fonts + (l/derived :dashboard-fonts st/state)) + (def dashboard-selected-project (l/derived (fn [state] (get-in state [:dashboard-local :selected-project])) diff --git a/frontend/src/app/main/snap.cljs b/frontend/src/app/main/snap.cljs index e73f4c777..021d2528a 100644 --- a/frontend/src/app/main/snap.cljs +++ b/frontend/src/app/main/snap.cljs @@ -284,7 +284,7 @@ ([matches other] (let [merge-coord (fn [matches other] - + (let [matches (into {} matches) other (into {} other) keys (set/union (keys matches) (keys other))] @@ -305,7 +305,7 @@ (if (< (mth/abs cur-val) (mth/abs other-val)) current other)) - + min-match-coord (fn [matches] (if (and (seq matches) (not (empty? matches))) diff --git a/frontend/src/app/main/ui.cljs b/frontend/src/app/main/ui.cljs index 5e0d543c3..020131834 100644 --- a/frontend/src/app/main/ui.cljs +++ b/frontend/src/app/main/ui.cljs @@ -90,6 +90,8 @@ ["/settings" :dashboard-team-settings] ["/projects" :dashboard-projects] ["/search" :dashboard-search] + ["/fonts" :dashboard-fonts] + ["/fonts/providers" :dashboard-font-providers] ["/libraries" :dashboard-libraries] ["/projects/:project-id" :dashboard-files]] @@ -135,12 +137,11 @@ :dashboard-projects :dashboard-files :dashboard-libraries + :dashboard-fonts + :dashboard-font-providers :dashboard-team-members :dashboard-team-settings) - [:* - #_[:div.modal-wrapper - [:& app.main.ui.onboarding/release-notes-modal {:version "1.4"}]] - [:& dashboard {:route route}]] + [:& dashboard {:route route}] :viewer (let [index (get-in route [:query-params :index]) diff --git a/frontend/src/app/main/ui/components/context_menu.cljs b/frontend/src/app/main/ui/components/context_menu.cljs index 50cfbfbde..075d99544 100644 --- a/frontend/src/app/main/ui/components/context_menu.cljs +++ b/frontend/src/app/main/ui/components/context_menu.cljs @@ -11,7 +11,6 @@ [app.main.ui.components.dropdown :refer [dropdown']] [app.main.ui.icons :as i] [app.common.uuid :as uuid] - [app.util.data :refer [classnames]] [app.util.dom :as dom] [app.util.object :as obj])) @@ -22,18 +21,18 @@ (assert (boolean? (gobj/get props "show")) "missing `show` prop") (assert (vector? (gobj/get props "options")) "missing `options` prop") - (let [open? (gobj/get props "show") - on-close (gobj/get props "on-close") - options (gobj/get props "options") + (let [open? (gobj/get props "show") + on-close (gobj/get props "on-close") + options (gobj/get props "options") is-selectable (gobj/get props "selectable") - selected (gobj/get props "selected") - top (gobj/get props "top" 0) - left (gobj/get props "left" 0) - fixed? (gobj/get props "fixed?" false) - min-width? (gobj/get props "min-width?" false) + selected (gobj/get props "selected") + top (gobj/get props "top" 0) + left (gobj/get props "left" 0) + fixed? (gobj/get props "fixed?" false) + min-width? (gobj/get props "min-width?" false) - local (mf/use-state {:offset 0 - :levels nil}) + local (mf/use-state {:offset 0 + :levels nil}) on-local-close (mf/use-callback @@ -81,13 +80,13 @@ (when (and open? (some? (:levels @local))) [:> dropdown' props - [:div.context-menu {:class (classnames :is-open open? - :fixed fixed? - :is-selectable is-selectable) + [:div.context-menu {:class (dom/classnames :is-open open? + :fixed fixed? + :is-selectable is-selectable) :style {:top (+ top (:offset @local)) :left left}} (let [level (-> @local :levels peek)] - [:ul.context-menu-items {:class (classnames :min-width min-width?) + [:ul.context-menu-items {:class (dom/classnames :min-width min-width?) :ref check-menu-offscreen} (when-let [parent-option (:parent-option level)] [:* @@ -103,8 +102,7 @@ (if (= option-name :separator) [:li.separator] [:li.context-menu-item - {:class (classnames :is-selected (and selected - (= option-name selected))) + {:class (dom/classnames :is-selected (and selected (= option-name selected))) :key option-name} (if-not sub-options [:a.context-menu-action {:on-click option-handler} diff --git a/frontend/src/app/main/ui/dashboard.cljs b/frontend/src/app/main/ui/dashboard.cljs index 105ec5663..83a148a72 100644 --- a/frontend/src/app/main/ui/dashboard.cljs +++ b/frontend/src/app/main/ui/dashboard.cljs @@ -18,6 +18,7 @@ [app.main.ui.dashboard.files :refer [files-section]] [app.main.ui.dashboard.libraries :refer [libraries-page]] [app.main.ui.dashboard.projects :refer [projects-section]] + [app.main.ui.dashboard.fonts :refer [fonts-page font-providers-page]] [app.main.ui.dashboard.search :refer [search-page]] [app.main.ui.dashboard.sidebar :refer [sidebar]] [app.main.ui.dashboard.team :refer [team-settings-page team-members-page]] @@ -65,6 +66,12 @@ :dashboard-projects [:& projects-section {:team team :projects projects}] + :dashboard-fonts + [:& fonts-page {:team team}] + + :dashboard-font-providers + [:& font-providers-page {:team team}] + :dashboard-files (when project [:& files-section {:team team :project project}]) @@ -121,17 +128,19 @@ [:& (mf/provider ctx/current-page-id) {:value nil} [:section.dashboard-layout - [:& sidebar {:team team - :projects projects - :project project - :profile profile - :section section - :search-term search-term}] + [:& sidebar + {:team team + :projects projects + :project project + :profile profile + :section section + :search-term search-term}] (when (and team (seq projects)) - [:& dashboard-content {:projects projects - :profile profile - :project project - :section section - :search-term search-term - :team team}])]]]]])) + [:& dashboard-content + {:projects projects + :profile profile + :project project + :section section + :search-term search-term + :team team}])]]]]])) diff --git a/frontend/src/app/main/ui/dashboard/fonts.cljs b/frontend/src/app/main/ui/dashboard/fonts.cljs new file mode 100644 index 000000000..73fe59a93 --- /dev/null +++ b/frontend/src/app/main/ui/dashboard/fonts.cljs @@ -0,0 +1,353 @@ +;; 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) UXBOX Labs SL + +(ns app.main.ui.dashboard.fonts + (:require + ["opentype.js" :as ot] + [app.common.media :as cm] + [app.common.uuid :as uuid] + [app.main.data.dashboard :as dd] + [app.main.data.dashboard.fonts :as df] + [app.main.data.modal :as modal] + [app.main.ui.components.file-uploader :refer [file-uploader]] + [app.main.ui.components.context-menu :refer [context-menu]] + [app.main.store :as st] + [app.main.repo :as rp] + [app.main.refs :as refs] + [app.main.ui.icons :as i] + [app.util.dom :as dom] + [app.util.i18n :as i18n :refer [tr]] + [app.util.logging :as log] + [app.util.keyboard :as kbd] + [app.util.router :as rt] + [app.util.webapi :as wa] + [cuerdas.core :as str] + [beicon.core :as rx] + [okulary.core :as l] + [rumext.alpha :as mf])) + +(log/set-level! :trace) + +(defn- use-set-page-title + [team section] + (mf/use-effect + (mf/deps team) + (fn [] + (when team + (let [tname (if (:is-default team) + (tr "dashboard.your-penpot") + (:name team))] + (case section + :fonts (dom/set-html-title (tr "title.dashboard.fonts" tname)) + :providers (dom/set-html-title (tr "title.dashboard.font-providers" tname)))))))) + +(mf/defc header + {::mf/wrap [mf/memo]} + [{:keys [section team] :as props}] + (let [go-fonts + (mf/use-callback + (mf/deps team) + (st/emitf (rt/nav :dashboard-fonts {:team-id (:id team)}))) + + go-providers + (mf/use-callback + (mf/deps team) + (st/emitf (rt/nav :dashboard-font-providers {:team-id (:id team)})))] + + (use-set-page-title team section) + + [:header.dashboard-header + [:div.dashboard-title + [:h1 (tr "labels.fonts")]] + [:nav + [:ul + [:li {:class (when (= section :fonts) "active")} + [:a {:on-click go-fonts} (tr "labels.custom-fonts")]] + [:li {:class (when (= section :providers) "active")} + [:a {:on-click go-providers} (tr "labels.font-providers")]]]] + + [:div]])) + +(defn- prepare-fonts + [blobs] + (letfn [(prepare [{:keys [font type name data] :as params}] + (let [family (or (.getEnglishName ^js font "preferredFamily") + (.getEnglishName ^js font "fontFamily")) + variant (or (.getEnglishName ^js font "preferredSubfamily") + (.getEnglishName ^js font "fontSubfamily"))] + {:content {:data (js/Uint8Array. data) + :name name + :type type} + :font-id (str "custom-" (str/slug family)) + :font-family family + :font-weight (cm/parse-font-weight variant) + :font-style (cm/parse-font-style variant)})) + + (parse-mtype [mtype] + (case mtype + "application/vnd.oasis.opendocument.formula-template" "font/otf" + mtype)) + + (parse-font [{:keys [data] :as params}] + (try + (assoc params :font (ot/parse data)) + (catch :default e + (log/warn :msg (str/fmt "skiping file %s, unsupported format" (:name params))) + nil))) + + (read-blob [blob] + (->> (wa/read-file-as-array-buffer blob) + (rx/map (fn [data] + {:data data + :name (.-name blob) + :type (parse-mtype (.-type blob))}))))] + + (->> (rx/from blobs) + (rx/mapcat read-blob) + (rx/map parse-font) + (rx/filter some?) + (rx/map prepare)))) + +(mf/defc fonts-upload + [{:keys [team] :as props}] + (let [fonts (mf/use-state {}) + input-ref (mf/use-ref) + + uploading (mf/use-state #{}) + + on-click + (mf/use-callback #(dom/click (mf/ref-val input-ref))) + + font-key-fn + (mf/use-callback (juxt :font-family :font-weight :font-style)) + + on-selected + (mf/use-callback + (mf/deps team) + (fn [blobs] + (->> (prepare-fonts blobs) + (rx/subs (fn [{:keys [content] :as font}] + (let [key (font-key-fn font)] + (swap! fonts update key + (fn [val] + (-> (or val font) + (assoc :team-id (:id team)) + (update :id #(or % (uuid/next))) + (update :data assoc (:type content) (:data content)) + (update :names (fnil conj #{}) (:name content)) + (dissoc :content)))))) + (fn [error] + (js/console.error "error" error)))))) + + on-upload + (mf/use-callback + (mf/deps team) + (fn [item] + (let [key (font-key-fn item)] + (swap! uploading conj (:id item)) + (->> (rp/mutation! :create-font-variant item) + (rx/delay-at-least 2000) + (rx/subs (fn [font] + (swap! fonts dissoc key) + (swap! uploading disj (:id item)) + (st/emit! (df/add-font font))) + (fn [error] + (js/console.log "error" error))))))) + + on-delete + (mf/use-callback + (mf/deps team) + (fn [item] + (swap! fonts dissoc (font-key-fn item))))] + + [:div.dashboard-fonts-upload + [:div.dashboard-fonts-hero + [:div.desc + [:h2 (tr "labels.upload-custom-fonts")] + [:& i18n/tr-html {:label "dashboard.fonts.hero-text1"}] + + [:div.banner + [:div.icon i/msg-info] + [:div.content + [:& i18n/tr-html {:tag-name "span" + :label "dashboard.fonts.hero-text2"}]]]] + + [:div.btn-primary + {:on-click on-click} + [:span "Add custom font"] + [:& file-uploader {:input-id "font-upload" + :accept cm/str-font-types + :multi true + :input-ref input-ref + :on-selected on-selected}]]] + + [:* + (for [item (sort-by :font-family (vals @fonts))] + (let [uploading? (contains? @uploading (:id item))] + [:div.font-item.table-row {:key (:id item)} + [:div.table-field.family + [:input {:type "text" + :default-value (:font-family item)}]] + [:div.table-field.variant + [:span (cm/font-weight->name (:font-weight item))] + (when (not= "normal" (:font-style item)) + [:span " " (str/capital (:font-style item))])] + [:div.table-field.filenames + (for [item (:names item)] + [:span item])] + + [:div.table-field.options + [:button.btn-primary.upload-button + {:on-click #(on-upload item) + :class (dom/classnames :disabled uploading?) + :disabled uploading?} + (if uploading? + (tr "labels.uploading") + (tr "labels.upload"))] + [:span.icon.close {:on-click #(on-delete item)} i/close]]]))]])) + +(mf/defc installed-font + [{:keys [font] :as props}] + (let [open-menu? (mf/use-state false) + edit? (mf/use-state false) + state (mf/use-var (:font-family font)) + + on-change + (mf/use-callback + (mf/deps font) + (fn [event] + (reset! state (dom/get-target-val event)))) + + on-save + (mf/use-callback + (mf/deps font) + (fn [event] + (let [font (assoc font :font-family @state)] + (st/emit! (df/update-font font)) + (reset! edit? false)))) + + on-key-down + (mf/use-callback + (mf/deps font) + (fn [event] + (when (kbd/enter? event) + (on-save event)))) + + on-cancel + (mf/use-callback + (mf/deps font) + (fn [event] + (reset! edit? false) + (reset! state (:font-family font)))) + + delete-fn + (mf/use-callback + (mf/deps font) + (st/emitf (df/delete-font font))) + + on-delete + (mf/use-callback + (mf/deps font) + (st/emitf (modal/show + {:type :confirm + :title (tr "modals.delete-font.title") + :message (tr "modals.delete-font.message") + :accept-label (tr "labels.delete") + :on-accept delete-fn})))] + + + [:div.font-item.table-row {:key (:id font)} + [:div.table-field.family + (if @edit? + [:input {:type "text" + :default-value @state + :on-key-down on-key-down + :on-change on-change}] + [:span (:font-family font)])] + + [:div.table-field.variant + [:span (cm/font-weight->name (:font-weight font))] + (when (not= "normal" (:font-style font)) + [:span " " (str/capital (:font-style font))])] + + [:div] + + (if @edit? + [:div.table-field.options + [:button.btn-primary + {:disabled (str/blank? @state) + :on-click on-save + :class (dom/classnames :btn-disabled (str/blank? @state))} + "Save"] + [:span.icon.close {:on-click on-cancel} i/close]] + + [:div.table-field.options + [:span.icon {:on-click #(reset! open-menu? true)} i/actions] + [:& context-menu + {:on-close #(reset! open-menu? false) + :show @open-menu? + :fixed? false + :top -15 + :left -115 + :options [[(tr "labels.edit") #(reset! edit? true)] + [(tr "labels.delete") on-delete]]}]])])) + + +(mf/defc installed-fonts + [{:keys [team fonts] :as props}] + (let [sterm (mf/use-state "") + + matches? + #(str/includes? (str/lower (:font-family %)) @sterm) + + on-change + (mf/use-callback + (fn [event] + (let [val (dom/get-target-val event)] + (reset! sterm val))))] + + [:div.dashboard-installed-fonts + [:h3 (tr "labels.installed-fonts")] + [:div.installed-fonts-header + [:div.table-field.family (tr "labels.font-family")] + [:div.table-field.variant (tr "labels.font-variant")] + [:div] + [:div.table-field.search-input + [:input {:placeholder (tr "labels.search-font") + :default-value "" + :on-change on-change + }]]] + (for [[font-id fonts] (->> fonts + (filter matches?) + (group-by :font-id))] + [:div.fonts-group + (for [font (sort-by (juxt :font-weight :font-style) fonts)] + [:& installed-font {:key (:id font) :font font}])])])) + + +(mf/defc fonts-page + [{:keys [team] :as props}] + (let [fonts-map (mf/deref refs/dashboard-fonts) + fonts (vals fonts-map)] + + (mf/use-effect + (mf/deps team) + (st/emitf (df/fetch-fonts team))) + + [:* + [:& header {:team team :section :fonts}] + [:section.dashboard-container.dashboard-fonts + [:& fonts-upload {:team team}] + + (when fonts + [:& installed-fonts {:team team + :fonts fonts}])]])) +(mf/defc font-providers-page + [{:keys [team] :as props}] + [:* + [:& header {:team team :section :providers}] + [:section.dashboard-container + [:span "hello world font providers"]]]) diff --git a/frontend/src/app/main/ui/dashboard/sidebar.cljs b/frontend/src/app/main/ui/dashboard/sidebar.cljs index f2b331a0e..459b7949d 100644 --- a/frontend/src/app/main/ui/dashboard/sidebar.cljs +++ b/frontend/src/app/main/ui/dashboard/sidebar.cljs @@ -28,7 +28,7 @@ [app.util.avatars :as avatars] [app.util.dom :as dom] [app.util.dom.dnd :as dnd] - [app.util.i18n :as i18n :refer [t tr]] + [app.util.i18n :as i18n :refer [tr]] [app.util.keyboard :as kbd] [app.util.object :as obj] [app.util.router :as rt] @@ -47,10 +47,11 @@ selected-project (:selected-project dstate) edit-id (:project-for-edit dstate) - local (mf/use-state {:menu-open false - :menu-pos nil - :edition? (= (:id item) edit-id) - :dragging? false}) + local (mf/use-state + {:menu-open false + :menu-pos nil + :edition? (= (:id item) edit-id) + :dragging? false}) on-click (mf/use-callback @@ -60,11 +61,13 @@ :project-id (:id item)})))) on-menu-click - (mf/use-callback (fn [event] - (let [position (dom/get-client-position event)] - (dom/prevent-default event) - (swap! local assoc :menu-open true - :menu-pos position)))) + (mf/use-callback + (fn [event] + (let [position (dom/get-client-position event)] + (dom/prevent-default event) + (swap! local assoc + :menu-open true + :menu-pos position)))) on-menu-close (mf/use-callback #(swap! local assoc :menu-open false)) @@ -139,7 +142,7 @@ :on-menu-close on-menu-close}]])) (mf/defc sidebar-search - [{:keys [search-term team-id locale] :as props}] + [{:keys [search-term team-id] :as props}] (let [search-term (or search-term "") focused? (mf/use-state false) emit! (mf/use-memo #(f/debounce st/emit! 500)) @@ -183,7 +186,7 @@ {:key :images-search-box :id "search-input" :type "text" - :placeholder (t locale "dashboard.search-placeholder") + :placeholder (tr "dashboard.search-placeholder") :default-value search-term :auto-complete "off" :on-focus on-search-focus @@ -201,7 +204,7 @@ i/search])])) (mf/defc teams-selector-dropdown - [{:keys [team profile locale] :as props}] + [{:keys [team profile] :as props}] (let [show-dropdown? (mf/use-state false) teams (mf/deref refs/teams) @@ -216,11 +219,11 @@ (st/emit! (rt/nav :dashboard-projects {:team-id team-id}))))] [:ul.dropdown.teams-dropdown - [:li.title (t locale "dashboard.switch-team")] + [:li.title (tr "dashboard.switch-team")] [:hr] [:li.team-name {:on-click (partial team-selected (:default-team-id profile))} [:span.team-icon i/logo-icon] - [:span.team-text (t locale "dashboard.your-penpot")]] + [:span.team-text (tr "dashboard.your-penpot")]] (for [team (remove :is-default (vals teams))] [:* {:key (:id team)} @@ -231,7 +234,7 @@ [:hr] [:li.action {:on-click on-create-clicked} - (t locale "dashboard.create-new-team")]])) + (tr "dashboard.create-new-team")]])) (s/def ::member-id ::us/uuid) (s/def ::leave-modal-form @@ -292,7 +295,7 @@ (mf/defc team-options-dropdown - [{:keys [team locale profile] :as props}] + [{:keys [team profile] :as props}] (let [members (mf/use-state []) go-members @@ -341,9 +344,9 @@ (mf/deps team) (st/emitf (modal/show {:type :confirm - :title (t locale "modals.leave-confirm.title") - :message (t locale "modals.leave-confirm.message") - :accept-label (t locale "modals.leave-confirm.accept") + :title (tr "modals.leave-confirm.title") + :message (tr "modals.leave-confirm.message") + :accept-label (tr "modals.leave-confirm.accept") :on-accept leave-fn}))) on-leave-as-owner-clicked @@ -366,9 +369,9 @@ (mf/deps team) (st/emitf (modal/show {:type :confirm - :title (t locale "modals.delete-team-confirm.title") - :message (t locale "modals.delete-team-confirm.message") - :accept-label (t locale "modals.delete-team-confirm.accept") + :title (tr "modals.delete-team-confirm.title") + :message (tr "modals.delete-team-confirm.message") + :accept-label (tr "modals.delete-team-confirm.accept") :on-accept delete-fn})))] (mf/use-layout-effect @@ -378,25 +381,25 @@ (rx/subs #(reset! members %))))) [:ul.dropdown.options-dropdown - [:li {:on-click go-members} (t locale "labels.members")] - [:li {:on-click go-settings} (t locale "labels.settings")] + [:li {:on-click go-members} (tr "labels.members")] + [:li {:on-click go-settings} (tr "labels.settings")] [:hr] - [:li {:on-click on-rename-clicked} (t locale "labels.rename")] + [:li {:on-click on-rename-clicked} (tr "labels.rename")] (cond (:is-owner team) - [:li {:on-click on-leave-as-owner-clicked} (t locale "dashboard.leave-team")] + [:li {:on-click on-leave-as-owner-clicked} (tr "dashboard.leave-team")] (> (count @members) 1) - [:li {:on-click on-leave-clicked} (t locale "dashboard.leave-team")]) + [:li {:on-click on-leave-clicked} (tr "dashboard.leave-team")]) (when (:is-owner team) - [:li {:on-click on-delete-clicked} (t locale "dashboard.delete-team")])])) + [:li {:on-click on-delete-clicked} (tr "dashboard.delete-team")])])) (mf/defc sidebar-team-switch - [{:keys [team profile locale] :as props}] + [{:keys [team profile] :as props}] (let [show-dropdown? (mf/use-state false) show-team-opts-ddwn? (mf/use-state false) @@ -408,7 +411,7 @@ (if (:is-default team) [:div.team-name [:span.team-icon i/logo-icon] - [:span.team-text (t locale "dashboard.default-team-name")]] + [:span.team-text (tr "dashboard.default-team-name")]] [:div.team-name [:span.team-icon [:img {:src (cfg/resolve-team-photo-url team)}]] @@ -425,23 +428,22 @@ [:& dropdown {:show @show-teams-ddwn? :on-close #(reset! show-teams-ddwn? false)} [:& teams-selector-dropdown {:team team - :profile profile - :locale locale}]] + :profile profile}]] [:& dropdown {:show @show-team-opts-ddwn? :on-close #(reset! show-team-opts-ddwn? false)} [:& team-options-dropdown {:team team - :profile profile - :locale locale}]]])) + :profile profile}]]])) (mf/defc sidebar-content - [{:keys [locale projects profile section team project search-term] :as props}] + [{:keys [projects profile section team project search-term] :as props}] (let [default-project-id (->> (vals projects) (d/seek :is-default) (:id)) projects? (= section :dashboard-projects) + fonts? (= section :dashboard-fonts) libs? (= section :dashboard-libraries) drafts? (and (= section :dashboard-files) (= (:id project) default-project-id)) @@ -451,6 +453,11 @@ (mf/deps team) (st/emitf (rt/nav :dashboard-projects {:team-id (:id team)}))) + go-fonts + (mf/use-callback + (mf/deps team) + (st/emitf (rt/nav :dashboard-fonts {:team-id (:id team)}))) + go-drafts (mf/use-callback (mf/deps team default-project-id) @@ -469,29 +476,36 @@ (filter :is-pinned))] [:div.sidebar-content - [:& sidebar-team-switch {:team team :profile profile :locale locale}] + [:& sidebar-team-switch {:team team :profile profile}] [:hr] [:& sidebar-search {:search-term search-term - :team-id (:id team) - :locale locale}] + :team-id (:id team)}] [:div.sidebar-content-section [:ul.sidebar-nav.no-overflow [:li.recent-projects {:on-click go-projects :class-name (when projects? "current")} - [:span.element-title (t locale "labels.projects")]] + [:span.element-title (tr "labels.projects")]] [:li {:on-click go-drafts :class-name (when drafts? "current")} - [:span.element-title (t locale "labels.drafts")]] + [:span.element-title (tr "labels.drafts")]] [:li {:on-click go-libs :class-name (when libs? "current")} - [:span.element-title (t locale "labels.shared-libraries")]]]] + [:span.element-title (tr "labels.shared-libraries")]]]] [:hr] + [:div.sidebar-content-section + [:ul.sidebar-nav.no-overflow + [:li.recent-projects + {:on-click go-fonts + :class-name (when fonts? "current")} + [:span.element-title (tr "labels.fonts")]]]] + + [:hr] [:div.sidebar-content-section (if (seq pinned-projects) [:ul.sidebar-nav @@ -504,11 +518,11 @@ :selected? (= (:id item) (:id project))}])] [:div.sidebar-empty-placeholder [:span.icon i/pin] - [:span.text (t locale "dashboard.no-projects-placeholder")]])]])) + [:span.text (tr "dashboard.no-projects-placeholder")]])]])) (mf/defc profile-section - [{:keys [profile locale team] :as props}] + [{:keys [profile team] :as props}] (let [show (mf/use-state false) photo (cfg/resolve-profile-photo-url profile) @@ -530,18 +544,18 @@ [:ul.dropdown [:li {:on-click (partial on-click :settings-profile)} [:span.icon i/user] - [:span.text (t locale "labels.profile")]] + [:span.text (tr "labels.profile")]] [:li {:on-click (partial on-click :settings-password)} [:span.icon i/lock] - [:span.text (t locale "labels.password")]] + [:span.text (tr "labels.password")]] [:li {:on-click (partial on-click (da/logout))} [:span.icon i/exit] - [:span.text (t locale "labels.logout")]] + [:span.text (tr "labels.logout")]] (when cfg/feedback-enabled [:li.feedback {:on-click (partial on-click :settings-feedback)} [:span.icon i/msg-info] - [:span.text (t locale "labels.give-feedback")] + [:span.text (tr "labels.give-feedback")] [:span.primary-badge "ALPHA"]])]]] (when (and team profile) @@ -552,15 +566,11 @@ {::mf/wrap-props false ::mf/wrap [mf/memo]} [props] - (let [locale (mf/deref i18n/locale) - team (obj/get props "team") - profile (obj/get props "profile") - props (-> (obj/clone props) - (obj/set! "locale" locale))] + (let [team (obj/get props "team") + profile (obj/get props "profile")] [:div.dashboard-sidebar [:div.sidebar-inside [:> sidebar-content props] [:& profile-section {:profile profile - :team team - :locale locale}]]])) + :team team}]]])) diff --git a/frontend/src/app/main/ui/messages.cljs b/frontend/src/app/main/ui/messages.cljs index e1848c969..70aecb9b2 100644 --- a/frontend/src/app/main/ui/messages.cljs +++ b/frontend/src/app/main/ui/messages.cljs @@ -18,33 +18,33 @@ (mf/defc banner [{:keys [type position status controls content actions on-close] :as props}] [:div.banner {:class (dom/classnames - :warning (= type :warning) - :error (= type :error) - :success (= type :success) - :info (= type :info) - :fixed (= position :fixed) - :floating (= position :floating) - :inline (= position :inline) - :hide (= status :hide))} + :warning (= type :warning) + :error (= type :error) + :success (= type :success) + :info (= type :info) + :fixed (= position :fixed) + :floating (= position :floating) + :inline (= position :inline) + :hide (= status :hide))} [:div.wrapper - [:div.icon (case type - :warning i/msg-warning - :error i/msg-error - :success i/msg-success - :info i/msg-info - i/msg-error)] - [:div.content {:class (dom/classnames - :inline-actions (= controls :inline-actions) - :bottom-actions (= controls :bottom-actions))} - content - (when (or (= controls :bottom-actions) (= controls :inline-actions)) - [:div.actions - (for [action actions] - [:div.btn-secondary.btn-small {:key (uuid/next) - :on-click (:callback action)} - (:label action)])])] - (when (= controls :close) - [:div.btn-close {:on-click on-close} i/close])]]) + [:div.icon (case type + :warning i/msg-warning + :error i/msg-error + :success i/msg-success + :info i/msg-info + i/msg-error)] + [:div.content {:class (dom/classnames + :inline-actions (= controls :inline-actions) + :bottom-actions (= controls :bottom-actions))} + content + (when (or (= controls :bottom-actions) (= controls :inline-actions)) + [:div.actions + (for [action actions] + [:div.btn-secondary.btn-small {:key (uuid/next) + :on-click (:callback action)} + (:label action)])])] + (when (= controls :close) + [:div.btn-close {:on-click on-close} i/close])]]) (mf/defc notifications [] diff --git a/frontend/src/app/main/ui/workspace/left_toolbar.cljs b/frontend/src/app/main/ui/workspace/left_toolbar.cljs index f948e8237..a2284e4ed 100644 --- a/frontend/src/app/main/ui/workspace/left_toolbar.cljs +++ b/frontend/src/app/main/ui/workspace/left_toolbar.cljs @@ -50,7 +50,7 @@ [:* i/image [:& file-uploader {:input-id "image-upload" - :accept cm/str-media-types + :accept cm/str-image-types :multi true :input-ref ref :on-selected on-files-selected}]]])) diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs index 059c816bb..c92773181 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs @@ -212,7 +212,7 @@ (fn [path] (fn [event] (dom/stop-propagation event) - (swap! state update :folded-groups + (swap! state update :folded-groups toggle-folded-group path)))) on-group @@ -400,7 +400,7 @@ (fn [path] (fn [event] (dom/stop-propagation event) - (swap! state update :folded-groups + (swap! state update :folded-groups toggle-folded-group path)))) on-group @@ -426,7 +426,7 @@ (when local? [:div.assets-button {:on-click add-graphic} i/plus - [:& file-uploader {:accept cm/str-media-types + [:& file-uploader {:accept cm/str-image-types :multi true :input-ref input-ref :on-selected on-file-selected}]])] diff --git a/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs b/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs index 9f7e24b27..f9c4f18ca 100644 --- a/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs @@ -116,7 +116,6 @@ snap-lines (->> (into (process-snap-lines @state :x) (process-snap-lines @state :y)) (into #{}))] - (mf/use-effect (fn [] (let [sub (->> subject diff --git a/frontend/src/app/util/i18n.cljs b/frontend/src/app/util/i18n.cljs index ac66402b0..88b7cc807 100644 --- a/frontend/src/app/util/i18n.cljs +++ b/frontend/src/app/util/i18n.cljs @@ -10,6 +10,7 @@ [app.config :as cfg] [app.util.globals :as globals] [app.util.storage :refer [storage]] + [app.util.object :as obj] [app.util.transit :as t] [beicon.core :as rx] [cuerdas.core :as str] @@ -136,6 +137,13 @@ ([code] (t @locale code)) ([code & args] (apply t @locale code args))) +(mf/defc tr-html + {::mf/wrap-props false} + [props] + (let [label (obj/get props "label") + tag-name (obj/get props "tag-name" "p")] + [:> tag-name {:dangerouslySetInnerHTML #js {:__html (tr label)}}])) + ;; DEPRECATED (defn use-locale [] diff --git a/frontend/src/app/util/webapi.cljs b/frontend/src/app/util/webapi.cljs index 9e289c83e..9664de3a8 100644 --- a/frontend/src/app/util/webapi.cljs +++ b/frontend/src/app/util/webapi.cljs @@ -29,6 +29,10 @@ [file] (file-reader #(.readAsText %1 file))) +(defn read-file-as-array-buffer + [file] + (file-reader #(.readAsArrayBuffer %1 file))) + (defn read-file-as-data-url [file] (file-reader #(.readAsDataURL ^js %1 file))) diff --git a/frontend/translations/en.po b/frontend/translations/en.po index eb0eee9d9..422b472e6 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -1,25 +1,68 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR , YEAR. -# -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"PO-Revision-Date: 2021-04-22 13:43+0200\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"PO-Revision-Date: 2021-04-14 13:44+0000\n" +"Last-Translator: Andrey Antukh \n" +"Language-Team: Spanish " +"\n" +"Language: es\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.6-dev\n" + +#: src/app/main/ui/dashboard/fonts.cljs +msgid "title.dashboard.fonts" +msgstr "Fonts - %s - Penpot" + +#: src/app/main/ui/dashboard/fonts.cljs +msgid "title.dashboard.font-providers" +msgstr "Font Providers - %s - Penpot" + +msgid "labels.upload" +msgstr "Upload" + +msgid "labels.uploading" +msgstr "Uploading..." + +msgid "modals.delete-font.title" +msgstr "Deleting font" + +msgid "modals.delete-font.message" +msgstr "Are you sure you want to delete this font? It will not load if is used in a file." + +msgid "labels.fonts" +msgstr "Fonts" + +msgid "labels.installed-fonts" +msgstr "Installed fonts" + +msgid "labels.font-family" +msgstr "Font Family" + +msgid "labels.font-variant" +msgstr "Style" + +msgid "labels.custom-fonts" +msgstr "Custom fonts" + +msgid "labels.search-font" +msgstr "Search font" + +msgid "labels.font-providers" +msgstr "Font providers" + +msgid "labels.upload-custom-fonts" +msgstr "Upload custom fonts" + +#, markdown +msgid "dashboard.fonts.hero-text1" +msgstr "Any web font you upload here will be added to the font family list available at the text properties of the files of this team. Fonts with the same font family name will be grouped as a **single font family**. You can upload fonts with the following formats: **TTF, OTF and WOFF** (only one will be needed)." + +#, markdown +msgid "dashboard.fonts.hero-text2" +msgstr "You should only upload fonts you own or have license to use in Penpot. Find out more in the Content rights section of [Penpot's Terms of Service](https://penpot.app/terms.html). You also might want to read about [font licensing](2)." -# ~ msgid "" -# ~ msgstr "" -# ~ "Language: en\n" -# ~ "MIME-Version: 1.0\n" -# ~ "Content-Type: text/plain; charset=utf-8\n" -# ~ "Content-Transfer-Encoding: 8bit\n" -# ~ "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Already have an account?" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 46bacd4eb..371fdd653 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -11,6 +11,68 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.6-dev\n" +#: src/app/main/ui/dashboard/fonts.cljs +msgid "title.dashboard.fonts" +msgstr "Fuentes - %s - Penpot" + +#: src/app/main/ui/dashboard/fonts.cljs +msgid "title.dashboard.font-providers" +msgstr "Proveedores de fuentes - %s - Penpot" + +msgid "labels.upload" +msgstr "Subir" + +msgid "labels.uploading" +msgstr "Subiendo..." + +msgid "modals.delete-font.title" +msgstr "Eliminando fuente" + +msgid "modals.delete-font.message" +msgstr "Are you sure you want to delete this font? It will not load if is used in a file." +msgstr "¿Estas seguro que quieres eliminar esta fuente? La fuente dejara de cargar si es usada en algun fichero." + +msgid "labels.fonts" +msgstr "Fuentes" + +msgid "labels.installed-fonts" +msgstr "Fuentes instaladas" + +msgid "labels.font-family" +msgstr "Familia de fuente" + +msgid "labels.font-variant" +msgstr "Estilo" + +msgid "labels.custom-fonts" +msgstr "Fuentes personalizadas" + +msgid "labels.search-font" +msgstr "Buscar fuente" + +msgid "labels.font-providers" +msgstr "Proveedores de fuentes" + +msgid "labels.upload-custom-fonts" +msgstr "Subir fuente" + +#, markdown +msgid "dashboard.fonts.hero-text1" +msgstr "Any web font you upload here will be added to the font family list available at the text properties of the files of this team. Fonts with the same font family name will be grouped as a **single font family**. You can upload fonts with the following formats: **TTF, OTF and WOFF** (only one will be needed)." + +#, markdown +msgid "dashboard.fonts.hero-text2" +msgstr "You should only upload fonts you own or have license to use in Penpot. Find out more in the Content rights section of [Penpot's Terms of Service](https://penpot.app/terms.html). You also might want to read about [font licensing](2)." + + + + + + + + + + #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "¿Tienes ya una cuenta?" diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 021d9aff6..43a22f305 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -3120,6 +3120,11 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" +marked@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/marked/-/marked-2.0.3.tgz#3551c4958c4da36897bda2a16812ef1399c8d6b0" + integrity sha512-5otztIIcJfPc2qGTN8cVtOJEjNJZ0jwa46INMagrYfk0EvqtRuEHLsEe0LrFS0/q+ZRKT0+kXK7P2T1AN5lWRA== + matchdep@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/matchdep/-/matchdep-2.0.0.tgz#c6f34834a0d8dbc3b37c27ee8bbcb27c7775582e" @@ -3644,6 +3649,14 @@ one-time@^1.0.0: dependencies: fn.name "1.x.x" +opentype.js@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/opentype.js/-/opentype.js-1.3.3.tgz#65b8645b090a1ad444065b784d442fa19d1061f6" + integrity sha512-/qIY/+WnKGlPIIPhbeNjynfD2PO15G9lA/xqlX2bDH+4lc3Xz5GCQ68mqxj3DdUv6AJqCeaPvuAoH8mVL0zcuA== + dependencies: + string.prototype.codepointat "^0.2.1" + tiny-inflate "^1.0.3" + ordered-read-streams@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" @@ -4364,9 +4377,9 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: inherits "^2.0.1" rxjs@~7.0.0-beta.12: - version "7.0.0-rc.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.0.0-rc.1.tgz#11f368e740e2b3cfe805891be127d07391673654" - integrity sha512-FVFOeT+eGdbcPe+uH+cWnEElrU4LiDMrlstNSUpI3MPErICLtVoUCbKrF+n+8DYemHDe7wPqYtuNEYTM3ur3xw== + version "7.0.0-rc.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.0.0-rc.2.tgz#bd5b18ff9b60ca28ea4b3a824419035007064fdf" + integrity sha512-81+TFxK8hUK3tmJ9TPon07bgun2ASgZ8OXumUuWSAnktSAzTvubw4NCJTr0Tc0lO9IfTThi5z3GDVlmjY3n5ug== dependencies: tslib "~2.1.0" @@ -4480,7 +4493,7 @@ shadow-cljs-jar@1.3.2: resolved "https://registry.yarnpkg.com/shadow-cljs-jar/-/shadow-cljs-jar-1.3.2.tgz#97273afe1747b6a2311917c1c88d9e243c81957b" integrity sha512-XmeffAZHv8z7451kzeq9oKh8fh278Ak+UIOGGrapyqrFBB773xN8vMQ3O7J7TYLnb9BUwcqadKkmgaq7q6fhZg== -shadow-cljs@^2.11.20: +shadow-cljs@2.12.5: version "2.12.5" resolved "https://registry.yarnpkg.com/shadow-cljs/-/shadow-cljs-2.12.5.tgz#d3cf29fc1f1e02dd875939549419979e0feadbf4" integrity sha512-o3xo3coRgnlkI/iI55ccHjj6AU3F1+ovk3hhK86e3P2JGGOpNTAwsGNxUpMC5JAwS9Nz0v6sSk73hWjEOnm6fQ== @@ -4796,6 +4809,11 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" +string.prototype.codepointat@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz#004ad44c8afc727527b108cd462b4d971cd469bc" + integrity sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg== + string.prototype.trimend@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" @@ -5021,6 +5039,11 @@ timers-ext@^0.1.7: es5-ext "~0.10.46" next-tick "1" +tiny-inflate@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.3.tgz#122715494913a1805166aaf7c93467933eea26c4" + integrity sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw== + to-absolute-glob@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" From 285a0d5f473ee751e29eaaeced6d6d5d8299d1b1 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 3 May 2021 10:32:32 +0200 Subject: [PATCH 014/135] :zap: Changes indices to update only necesary data --- common/app/common/data.cljc | 6 + common/app/common/pages.cljc | 10 +- common/app/common/pages/helpers.cljc | 54 ----- common/app/common/pages/indices.cljc | 83 ++++++++ .../app/main/data/workspace/transforms.cljs | 17 +- frontend/src/app/main/snap.cljs | 22 +- frontend/src/app/util/quadtree.js | 43 +++- frontend/src/app/util/range_tree.js | 22 +- frontend/src/app/worker/impl.cljs | 18 +- frontend/src/app/worker/selection.cljs | 195 ++++++++++-------- frontend/src/app/worker/snaps.cljs | 131 +++++++++--- 11 files changed, 382 insertions(+), 219 deletions(-) create mode 100644 common/app/common/pages/indices.cljc diff --git a/common/app/common/data.cljc b/common/app/common/data.cljc index 12b58d619..da478337a 100644 --- a/common/app/common/data.cljc +++ b/common/app/common/data.cljc @@ -461,3 +461,9 @@ kw (if (keyword? kw) (name kw) kw)] (keyword (str prefix kw)))) + +(defn tap + "Simpilar to the tap in rxjs but for plain collections" + [f coll] + (f coll) + coll) diff --git a/common/app/common/pages.cljc b/common/app/common/pages.cljc index 2776e8168..8282cf12c 100644 --- a/common/app/common/pages.cljc +++ b/common/app/common/pages.cljc @@ -11,6 +11,7 @@ [app.common.pages.changes :as changes] [app.common.pages.common :as common] [app.common.pages.helpers :as helpers] + [app.common.pages.indices :as indices] [app.common.pages.init :as init] [app.common.pages.spec :as spec] [clojure.spec.alpha :as s])) @@ -42,7 +43,6 @@ (d/export helpers/is-shape-grouped) (d/export helpers/get-parent) (d/export helpers/get-parents) -(d/export helpers/generate-child-parent-index) (d/export helpers/clean-loops) (d/export helpers/calculate-invalid-targets) (d/export helpers/valid-frame-target) @@ -60,13 +60,17 @@ (d/export helpers/get-base-shape) (d/export helpers/is-parent?) (d/export helpers/get-index-in-parent) -(d/export helpers/calculate-z-index) -(d/export helpers/generate-child-all-parents-index) (d/export helpers/parse-path-name) (d/export helpers/merge-path-item) (d/export helpers/compact-path) (d/export helpers/compact-name) +;; Indices +(d/export indices/calculate-z-index) +(d/export indices/generate-child-all-parents-index) +(d/export indices/generate-child-parent-index) +(d/export indices/create-mask-index) + ;; Process changes (d/export changes/process-changes) diff --git a/common/app/common/pages/helpers.cljc b/common/app/common/pages/helpers.cljc index 39597788d..f3a52cbc9 100644 --- a/common/app/common/pages/helpers.cljc +++ b/common/app/common/pages/helpers.cljc @@ -160,27 +160,6 @@ (when parent-id (lazy-seq (cons parent-id (get-parents parent-id objects)))))) -(defn generate-child-parent-index - [objects] - (reduce-kv - (fn [index id obj] - (assoc index id (:parent-id obj))) - {} objects)) - -(defn generate-child-all-parents-index - "Creates an index where the key is the shape id and the value is a set - with all the parents" - ([objects] - (generate-child-all-parents-index objects (vals objects))) - - ([objects shapes] - (let [shape->parents - (fn [shape] - (->> (get-parents (:id shape) objects) - (into [])))] - (->> shapes - (map #(vector (:id %) (shape->parents %))) - (into {}))))) (defn clean-loops "Clean a list of ids from circular references." @@ -347,40 +326,7 @@ (reduce red-fn cur-idx (reverse (:shapes object)))))] (into {} (rec-index '() uuid/zero)))) -(defn calculate-z-index - "Given a collection of shapes calculates their z-index. Greater index - means is displayed over other shapes with less index." - [objects] - (let [is-frame? (fn [id] (= :frame (get-in objects [id :type]))) - root-children (get-in objects [uuid/zero :shapes]) - num-frames (->> root-children (filter is-frame?) count)] - (when (seq root-children) - (loop [current (peek root-children) - pending (pop root-children) - current-idx (+ (count objects) num-frames -1) - z-index {}] - - (let [children (->> (get-in objects [current :shapes])) - children (cond - (and (is-frame? current) (contains? z-index current)) - [] - - (and (is-frame? current) - (not (contains? z-index current))) - (into [current] children) - - :else - children) - pending (into (vec pending) children)] - (if (empty? pending) - (assoc z-index current current-idx) - - (let [] - (recur (peek pending) - (pop pending) - (dec current-idx) - (assoc z-index current current-idx))))))))) (defn expand-region-selection "Given a selection selects all the shapes between the first and last in diff --git a/common/app/common/pages/indices.cljc b/common/app/common/pages/indices.cljc new file mode 100644 index 000000000..d58accd00 --- /dev/null +++ b/common/app/common/pages/indices.cljc @@ -0,0 +1,83 @@ +;; 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) UXBOX Labs SL + +(ns app.common.pages.indices + (:require + [app.common.data :as d] + [app.common.geom.shapes :as gsh] + [app.common.pages.helpers :as helpers] + [app.common.uuid :as uuid])) + +(defn calculate-z-index + "Given a collection of shapes calculates their z-index. Greater index + means is displayed over other shapes with less index." + [objects] + (let [is-frame? (fn [id] (= :frame (get-in objects [id :type]))) + root-children (or (get-in objects [uuid/zero :shapes]) []) + num-frames (->> root-children (filterv is-frame?) count)] + + (when-not (empty? root-children) + (loop [current (peek root-children) + pending (pop root-children) + current-idx (+ (count objects) num-frames -1) + z-index (transient {})] + + (let [children (get-in objects [current :shapes]) + assigned? (contains? z-index current) + is-frame? (is-frame? current) + + pending (cond + (not is-frame?) + (d/concat pending children) + + (not assigned?) + (d/concat pending [current] children) + + :else + pending)] + + (if (empty? pending) + (-> (assoc! z-index current current-idx) + (persistent!)) + (recur (peek pending) + (pop pending) + (dec current-idx) + (assoc! z-index current current-idx)))))))) + +(defn generate-child-parent-index + [objects] + (reduce-kv + (fn [index id obj] + (assoc index id (:parent-id obj))) + {} objects)) + +(defn generate-child-all-parents-index + "Creates an index where the key is the shape id and the value is a set + with all the parents" + ([objects] + (generate-child-all-parents-index objects (vals objects))) + + ([objects shapes] + (let [shape->parents + (fn [shape] + (->> (helpers/get-parents (:id shape) objects) + (into [])))] + (->> shapes + (map #(vector (:id %) (shape->parents %))) + (into {}))))) + +(defn create-mask-index + "Retrieves the mask information for an object" + [objects parents-index] + (let [retrieve-masks + (fn [id parents] + (->> parents + (map #(get objects %)) + (filter #(:masked-group? %)) + ;; Retrieve the masking element + (mapv #(get objects (->> % :shapes first)))))] + (->> parents-index + (d/mapm retrieve-masks)))) diff --git a/frontend/src/app/main/data/workspace/transforms.cljs b/frontend/src/app/main/data/workspace/transforms.cljs index 279682c2f..cd86cb48f 100644 --- a/frontend/src/app/main/data/workspace/transforms.cljs +++ b/frontend/src/app/main/data/workspace/transforms.cljs @@ -264,7 +264,7 @@ :index (cp/get-index-in-parent objects (:id shape)) :shapes [(:id shape)]})))] - (when-not (empty? rch) + (when-not (empty? uch) (rx/of dwu/pop-undo-into-transaction (dch/commit-changes rch uch {:commit-local? true}) (dwu/commit-undo-transaction) @@ -294,12 +294,15 @@ (rx/take-until stopper) (rx/map #(gpt/to-vec from-position %))) - snap-delta (->> position - (rx/throttle 20) - (rx/switch-map - (fn [pos] - (->> (snap/closest-snap-move page-id shapes objects layout zoom pos) - (rx/map #(vector pos %))))))] + snap-delta (rx/concat + ;; We send the nil first so the stream is not waiting for the first value + (rx/of nil) + (->> position + (rx/throttle 20) + (rx/switch-map + (fn [pos] + (->> (snap/closest-snap-move page-id shapes objects layout zoom pos) + (rx/map #(vector pos %)))))))] (if (empty? shapes) (rx/empty) (rx/concat diff --git a/frontend/src/app/main/snap.cljs b/frontend/src/app/main/snap.cljs index 021d2528a..b8e700b6b 100644 --- a/frontend/src/app/main/snap.cljs +++ b/frontend/src/app/main/snap.cljs @@ -19,7 +19,7 @@ [beicon.core :as rx] [clojure.set :as set])) -(defonce ^:private snap-accuracy 10) +(defonce ^:private snap-accuracy 5) (defonce ^:private snap-path-accuracy 10) (defonce ^:private snap-distance-accuracy 10) @@ -337,13 +337,15 @@ "Snaps a position given an old snap to a different position. We use this to provide a temporal snap while the new is being processed." [[position [snap-pos snap-delta]]] - (let [dx (if (not= 0 (:x snap-delta)) - (- (+ (:x snap-pos) (:x snap-delta)) (:x position)) - 0) - dy (if (not= 0 (:y snap-delta)) - (- (+ (:y snap-pos) (:y snap-delta)) (:y position)) - 0)] + (if (some? snap-delta) + (let [dx (if (not= 0 (:x snap-delta)) + (- (+ (:x snap-pos) (:x snap-delta)) (:x position)) + 0) + dy (if (not= 0 (:y snap-delta)) + (- (+ (:y snap-pos) (:y snap-delta)) (:y position)) + 0)] - (cond-> position - (<= (mth/abs dx) snap-accuracy) (update :x + dx) - (<= (mth/abs dy) snap-accuracy) (update :y + dy)))) + (cond-> position + (<= (mth/abs dx) snap-accuracy) (update :x + dx) + (<= (mth/abs dy) snap-accuracy) (update :y + dy))) + position)) diff --git a/frontend/src/app/util/quadtree.js b/frontend/src/app/util/quadtree.js index a6f904c10..000ae7c42 100644 --- a/frontend/src/app/util/quadtree.js +++ b/frontend/src/app/util/quadtree.js @@ -32,12 +32,16 @@ "use strict"; goog.provide("app.util.quadtree"); +goog.require("cljs.core"); goog.scope(function() { const self = app.util.quadtree; + const eq = cljs.core._EQ_; + const contains = cljs.core.contains_QMARK_; class Node { - constructor(bounds, data) { + constructor(id, bounds, data) { + this.id = id; this.bounds = bounds; this.data = data; } @@ -51,8 +55,8 @@ goog.scope(function() { this.level = level || 0; this.bounds = bounds; - this.objects = []; - this.indexes = []; + this.objects = []; + this.indexes = []; } split() { @@ -183,14 +187,18 @@ goog.scope(function() { this.objects = []; this.indexes = []; } + + getObjects() { + return this.objects; + } } self.create = function(rect) { return new Quadtree(rect, 10, 4, 0); }; - self.insert = function(index, bounds, data) { - const node = new Node(bounds, data); + self.insert = function(index, id, bounds, data) { + const node = new Node(id, bounds, data); index.insert(node); return index; }; @@ -210,4 +218,29 @@ goog.scope(function() { } }; + self.remove = function(index, id) { + const result = self.create(index.bounds); + + for (let node of index.objects) { + if (!eq(id, node.id)) { + self.insert(result, node.id, node.bounds, node.data); + } + } + + return result; + } + + // FIXME: Inefficient to recreate the index. Needs to be improved + self.remove_all = function(index, ids) { + const result = self.create(index.bounds); + + for (let node of self.search(index, index.bounds)) { + if (!contains(ids, node.id)) { + self.insert(result, node.id, node.bounds, node.data); + } + } + + return result; + } + }); diff --git a/frontend/src/app/util/range_tree.js b/frontend/src/app/util/range_tree.js index ed62a0200..64e3d3fdd 100644 --- a/frontend/src/app/util/range_tree.js +++ b/frontend/src/app/util/range_tree.js @@ -13,7 +13,7 @@ "use strict"; goog.provide("app.util.range_tree"); -goog.require("cljs.core") +goog.require("cljs.core"); goog.scope(function() { const eq = cljs.core._EQ_; @@ -92,7 +92,7 @@ goog.scope(function() { } isEmpty() { - return this.root === null; + return !this.root; } toString() { @@ -116,7 +116,7 @@ goog.scope(function() { // Insert recursively in the tree function recInsert (branch, value, data) { - if (branch === null) { + if (!branch) { const ret = new Node(value, data); ret.color = Color.RED; return ret; @@ -144,7 +144,7 @@ goog.scope(function() { // Search for the min node function searchMin(branch) { - if (branch.left === null) { + if (!branch.left) { return branch; } else { return searchMin(branch.left); @@ -153,7 +153,7 @@ goog.scope(function() { // Remove the lefmost node of the current branch function recRemoveMin(branch) { - if (branch.left === null) { + if (!branch.left) { return null; } @@ -167,7 +167,7 @@ goog.scope(function() { // Remove the data element for the value given // this will not remove the node, we have to remove the empty node afterwards function recRemoveData(branch, value, data) { - if (branch === null) { + if (!branch) { // Not found return branch; } else if (branch.value === value) { @@ -193,7 +193,7 @@ goog.scope(function() { if (isRed(branch.left)) { branch = rotateRight(branch); } - if (value === branch.value && branch.right === null) { + if (value === branch.value && !branch.right) { return null; } if (!isRed(branch.right) && !isRed(branch.right.left)) { @@ -214,7 +214,7 @@ goog.scope(function() { // Retrieve all the data related to value function recGet(branch, value) { - if (branch === null) { + if (!branch) { return null; } else if (branch.value === value) { return branch.data; @@ -226,7 +226,7 @@ goog.scope(function() { } function recUpdate(branch, value, oldData, newData) { - if (branch === null) { + if (!branch) { return branch; } else if (branch.value === value) { branch.data = branch.data.map((it) => (eq(it, oldData)) ? newData : it); @@ -239,7 +239,7 @@ goog.scope(function() { } function recRangeQuery(branch, fromValue, toValue, result) { - if (branch === null) { + if (!branch) { return result; } if (fromValue < branch.value) { @@ -329,7 +329,7 @@ goog.scope(function() { // This will return the string representation. We don't care about internal structure // only the data function recToString(branch, result) { - if (branch === null) { + if (!branch) { return; } diff --git a/frontend/src/app/worker/impl.cljs b/frontend/src/app/worker/impl.cljs index 107270387..77032133a 100644 --- a/frontend/src/app/worker/impl.cljs +++ b/frontend/src/app/worker/impl.cljs @@ -39,11 +39,15 @@ (defmethod handler :update-page-indices [{:keys [page-id changes] :as message}] - (swap! state ch/process-changes changes false) + (let [old-objects (get-in @state [:pages-index page-id :objects])] + (swap! state ch/process-changes changes false) - (let [objects (get-in @state [:pages-index page-id :objects]) - message (assoc message :objects objects)] - (handler (-> message - (assoc :cmd :selection/update-index))) - (handler (-> message - (assoc :cmd :snaps/update-index))))) + (let [new-objects (get-in @state [:pages-index page-id :objects]) + message (assoc message + :objects new-objects + :new-objects new-objects + :old-objects old-objects)] + (handler (-> message + (assoc :cmd :selection/update-index))) + (handler (-> message + (assoc :cmd :snaps/update-index)))))) diff --git a/frontend/src/app/worker/selection.cljs b/frontend/src/app/worker/selection.cljs index 2d0ac3a5d..b49c2fe93 100644 --- a/frontend/src/app/worker/selection.cljs +++ b/frontend/src/app/worker/selection.cljs @@ -15,12 +15,110 @@ [app.common.spec :as us] [app.common.uuid :as uuid] [app.util.quadtree :as qdt] - [app.worker.impl :as impl])) + [app.worker.impl :as impl] + [clojure.set :as set])) (defonce state (l/atom {})) -(declare index-object) -(declare create-index) +(defn- index-object + [objects z-index parents-index masks-index index obj] + (let [{:keys [x y width height]} (:selrect obj) + shape-bound #js {:x x :y y :width width :height height} + + parents (get parents-index (:id obj)) + masks (get masks-index (:id obj)) + z (get z-index (:id obj)) + + frame (when (and (not= :frame (:type obj)) + (not= (:frame-id obj) uuid/zero)) + (get objects (:frame-id obj)))] + (qdt/insert index + (:id obj) + shape-bound + (assoc obj :frame frame :masks masks :parents parents :z z)))) + +(defn- create-index + [objects] + (let [shapes (-> objects (dissoc uuid/zero) (vals)) + z-index (cp/calculate-z-index objects) + parents-index (cp/generate-child-all-parents-index objects) + masks-index (cp/create-mask-index objects parents-index) + bounds (gsh/selection-rect shapes) + bounds #js {:x (:x bounds) + :y (:y bounds) + :width (:width bounds) + :height (:height bounds)}] + + (reduce (partial index-object objects z-index parents-index masks-index) + (qdt/create bounds) + shapes))) + +(defn- update-index + [index old-objects new-objects] + + (let [changes? (fn [id] + (not= (get old-objects id) + (get new-objects id))) + + changed-ids (into #{} + (filter changes?) + (set/union (keys old-objects) + (keys new-objects))) + + shapes (->> changed-ids (mapv #(get new-objects %)) (filterv (comp not nil?))) + z-index (cp/calculate-z-index new-objects) + parents-index (cp/generate-child-all-parents-index new-objects shapes) + masks-index (cp/create-mask-index new-objects parents-index) + + new-index (qdt/remove-all index changed-ids)] + + (reduce (partial index-object new-objects z-index parents-index masks-index) + new-index + shapes))) + +(defn- query-index + [index rect frame-id include-frames? include-groups? disabled-masks reverse?] + (let [result (-> (qdt/search index (clj->js rect)) + (es6-iterator-seq)) + + ;; Check if the shape matches the filter criteria + match-criteria? + (fn [shape] + (and (not (:hidden shape)) + (not (:blocked shape)) + (or (not frame-id) (= frame-id (:frame-id shape))) + (case (:type shape) + :frame include-frames? + :group include-groups? + true))) + + overlaps? + (fn [shape] + (gsh/overlaps? shape rect)) + + overlaps-masks? + (fn [masks] + (->> masks + (some (comp not overlaps?)) + not)) + + ;; Shapes after filters of overlapping and criteria + matching-shapes + (into [] + (comp (map #(unchecked-get % "data")) + (filter match-criteria?) + (filter (comp overlaps? :frame)) + (filter (comp overlaps-masks? :masks)) + (filter overlaps?)) + result) + + keyfn (if reverse? (comp - :z) :z)] + + (into (d/ordered-set) + (->> matching-shapes + (sort-by keyfn) + (map :id))))) + (defmethod impl/handler :selection/initialize-index [{:keys [file-id data] :as message}] @@ -35,96 +133,13 @@ nil)) (defmethod impl/handler :selection/update-index - [{:keys [page-id objects] :as message}] - (let [index (create-index objects)] - (swap! state update page-id (constantly index)) - nil)) + [{:keys [page-id old-objects new-objects] :as message}] + (swap! state update page-id update-index old-objects new-objects) + nil) (defmethod impl/handler :selection/query [{:keys [page-id rect frame-id include-frames? include-groups? disabled-masks reverse?] :or {include-groups? true disabled-masks #{} reverse? false} :as message}] (when-let [index (get @state page-id)] - (let [result (-> (qdt/search index (clj->js rect)) - (es6-iterator-seq)) - - ;; Check if the shape matches the filter criteria - match-criteria? - (fn [shape] - (and (not (:hidden shape)) - (not (:blocked shape)) - (or (not frame-id) (= frame-id (:frame-id shape))) - (case (:type shape) - :frame include-frames? - :group include-groups? - true))) - - overlaps? - (fn [shape] - (gsh/overlaps? shape rect)) - - overlaps-masks? - (fn [masks] - (->> masks - (some (comp not overlaps?)) - not)) - - ;; Shapes after filters of overlapping and criteria - matching-shapes - (into [] - (comp (map #(unchecked-get % "data")) - (filter match-criteria?) - (filter (comp overlaps? :frame)) - (filter (comp overlaps-masks? :masks)) - (filter overlaps?)) - result) - - keyfn (if reverse? (comp - :z) :z)] - - (into (d/ordered-set) - (->> matching-shapes - (sort-by keyfn) - (map :id)))))) - -(defn create-mask-index - "Retrieves the mask information for an object" - [objects parents-index] - (let [retrieve-masks - (fn [id parents] - (->> parents - (map #(get objects %)) - (filter #(:masked-group? %)) - ;; Retrieve the masking element - (mapv #(get objects (->> % :shapes first)))))] - (->> parents-index - (d/mapm retrieve-masks)))) - -(defn- create-index - [objects] - (let [shapes (-> objects (dissoc uuid/zero) (vals)) - z-index (cp/calculate-z-index objects) - parents-index (cp/generate-child-all-parents-index objects) - masks-index (create-mask-index objects parents-index) - bounds (gsh/selection-rect shapes) - bounds #js {:x (:x bounds) - :y (:y bounds) - :width (:width bounds) - :height (:height bounds)}] - - (reduce (partial index-object objects z-index parents-index masks-index) - (qdt/create bounds) - shapes))) - -(defn- index-object - [objects z-index parents-index masks-index index obj] - (let [{:keys [x y width height]} (:selrect obj) - shape-bound #js {:x x :y y :width width :height height} - parents (get parents-index (:id obj)) - masks (get masks-index (:id obj)) - z (get z-index (:id obj)) - frame (when (and (not= :frame (:type obj)) - (not= (:frame-id obj) uuid/zero)) - (get objects (:frame-id obj)))] - (qdt/insert index - shape-bound - (assoc obj :frame frame :masks masks :parents parents :z z)))) + (query-index index rect frame-id include-frames? include-groups? disabled-masks reverse?))) diff --git a/frontend/src/app/worker/snaps.cljs b/frontend/src/app/worker/snaps.cljs index 9da49438b..9cd78cec0 100644 --- a/frontend/src/app/worker/snaps.cljs +++ b/frontend/src/app/worker/snaps.cljs @@ -6,48 +6,105 @@ (ns app.worker.snaps (:require - [okulary.core :as l] - [app.common.uuid :as uuid] - [app.common.pages :as cp] [app.common.data :as d] - [app.worker.impl :as impl] - [app.util.range-tree :as rt] + [app.common.pages :as cp] + [app.common.uuid :as uuid] + [app.util.geom.grid :as gg] [app.util.geom.snap-points :as snap] - [app.util.geom.grid :as gg])) + [app.util.range-tree :as rt] + [app.worker.impl :as impl] + [clojure.set :as set] + [okulary.core :as l])) (defonce state (l/atom {})) -(defn- create-coord-data - "Initializes the range tree given the shapes" - [frame-id shapes coord] - (let [process-shape (fn [coord] - (fn [shape] - (concat - (let [points (snap/shape-snap-points shape)] - (map #(vector % (:id shape)) points)) +(defn process-shape [frame-id coord] + (fn [shape] + (let [points (snap/shape-snap-points shape) + shape-data (->> points (mapv #(vector % (:id shape))))] + (if (= (:id shape) frame-id) + (d/concat + shape-data - ;; The grid points are only added by the "root" of the coord-dat - (when (= (:id shape) frame-id) - (let [points (gg/grid-snap-points shape coord)] - (map #(vector % :layout) points)))))) - into-tree (fn [tree [point _ :as data]] - (rt/insert tree (coord point) data))] + ;; The grid points are only added by the "root" of the coord-dat + (->> (gg/grid-snap-points shape coord) + (map #(vector % :layout)))) + + shape-data)))) + +(defn- add-coord-data + "Initializes the range tree given the shapes" + [data frame-id shapes coord] + (letfn [(into-tree [tree [point _ :as data]] + (rt/insert tree (coord point) data))] (->> shapes - (mapcat (process-shape coord)) - (reduce into-tree (rt/make-tree))))) + (mapcat (process-shape frame-id coord)) + (reduce into-tree data)))) + +(defn remove-coord-data + [data frame-id shapes coord] + + (letfn [(remove-tree [tree [point _ :as data]] + (rt/remove tree (coord point) data))] + (->> shapes + (mapcat (process-shape frame-id coord)) + (reduce remove-tree data)))) + +(defn aggregate-data + ([objects] + (aggregate-data objects (keys objects))) + + ([objects ids] + (->> ids + (filter #(contains? objects %)) + (map #(get objects %)) + (filter :frame-id) + (group-by :frame-id) + ;; Adds the frame + (d/mapm #(conj %2 (get objects %1)))))) (defn- initialize-snap-data "Initialize the snap information with the current workspace information" [objects] - (let [frame-shapes (->> (vals objects) - (filter :frame-id) - (group-by :frame-id)) - frame-shapes (->> (cp/select-frames objects) - (reduce #(update %1 (:id %2) conj %2) frame-shapes))] + (let [shapes-data (aggregate-data objects) - (d/mapm (fn [frame-id shapes] {:x (create-coord-data frame-id shapes :x) - :y (create-coord-data frame-id shapes :y)}) - frame-shapes))) + create-index + (fn [frame-id shapes] {:x (add-coord-data (rt/make-tree) frame-id shapes :x) + :y (add-coord-data (rt/make-tree) frame-id shapes :y)})] + + (d/mapm create-index shapes-data))) + +(defn- update-snap-data + [snap-data old-objects new-objects] + + (let [changed? #(not= (get old-objects %) (get new-objects %)) + + changed-ids (into #{} + (filter changed?) + (set/union (keys old-objects) (keys new-objects))) + + to-delete (aggregate-data old-objects changed-ids) + to-add (aggregate-data new-objects changed-ids) + + delete-data + (fn [snap-data [frame-id shapes]] + (-> snap-data + (update-in [frame-id :x] remove-coord-data frame-id shapes :x) + (update-in [frame-id :y] remove-coord-data frame-id shapes :y))) + + add-data + (fn [snap-data [frame-id shapes]] + (-> snap-data + (update-in [frame-id :x] add-coord-data frame-id shapes :x) + (update-in [frame-id :y] add-coord-data frame-id shapes :y))) + + snap-data (->> to-delete + (reduce delete-data snap-data)) + + snap-data (->> to-add + (reduce add-data snap-data))] + + snap-data)) (defn- log-state "Helper function to print a friendly version of the snap tree. Debugging purposes" @@ -60,6 +117,16 @@ (let [snap-data (initialize-snap-data objects)] (assoc state page-id snap-data))) +(defn- update-page [state page-id old-objects new-objects] + (let [changed? #(not= (get old-objects %) (get new-objects %)) + changed-ids (into #{} + (filter changed?) + (set/union (keys old-objects) (keys new-objects))) + + snap-data (get state page-id) + snap-data (update-snap-data snap-data old-objects new-objects)] + (assoc state page-id snap-data))) + ;; Public API (defmethod impl/handler :snaps/initialize-index [{:keys [file-id data] :as message}] @@ -74,9 +141,9 @@ nil)) (defmethod impl/handler :snaps/update-index - [{:keys [page-id objects] :as message}] + [{:keys [page-id old-objects new-objects] :as message}] ;; TODO: Check the difference and update the index acordingly - (swap! state index-page page-id objects) + (swap! state update-page page-id old-objects new-objects) ;; (log-state) nil) From 32b623e82bd8b709dc58a626456e24ce91e54e41 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 3 May 2021 14:20:19 +0200 Subject: [PATCH 015/135] :zap: Improve performance of z-index update --- common/app/common/pages.cljc | 1 + common/app/common/pages/indices.cljc | 79 +++++++++++++++++--------- frontend/src/app/util/range_tree.js | 2 +- frontend/src/app/worker/selection.cljs | 66 ++++++++++++--------- 4 files changed, 94 insertions(+), 54 deletions(-) diff --git a/common/app/common/pages.cljc b/common/app/common/pages.cljc index 8282cf12c..b0f311af3 100644 --- a/common/app/common/pages.cljc +++ b/common/app/common/pages.cljc @@ -67,6 +67,7 @@ ;; Indices (d/export indices/calculate-z-index) +(d/export indices/update-z-index) (d/export indices/generate-child-all-parents-index) (d/export indices/generate-child-parent-index) (d/export indices/create-mask-index) diff --git a/common/app/common/pages/indices.cljc b/common/app/common/pages/indices.cljc index d58accd00..fa3993799 100644 --- a/common/app/common/pages/indices.cljc +++ b/common/app/common/pages/indices.cljc @@ -9,43 +9,70 @@ [app.common.data :as d] [app.common.geom.shapes :as gsh] [app.common.pages.helpers :as helpers] - [app.common.uuid :as uuid])) + [app.common.uuid :as uuid] + [clojure.set :as set])) +(defn calculate-frame-z-index [z-index frame-id objects] + (let [is-frame? (fn [id] (= :frame (get-in objects [id :type]))) + frame-shapes (->> objects (vals) (filterv #(= (:frame-id %) frame-id))) + children (or (get-in objects [frame-id :shapes]) [])] + + (if (empty? children) + z-index + + (loop [current (peek children) + pending (pop children) + current-idx (count frame-shapes) + z-index z-index] + + (let [children (get-in objects [current :shapes]) + is-frame? (is-frame? current) + pending (if (not is-frame?) + (d/concat pending children) + pending)] + + (if (empty? pending) + (-> z-index + (assoc current current-idx)) + + (recur (peek pending) + (pop pending) + (dec current-idx) + (assoc z-index current current-idx)))))))) + +;; The z-index is really calculated per-frame. Every frame will have its own +;; internal z-index. To calculate the "final" z-index we add the shape z-index with +;; the z-index of its frame. This way we can update the z-index per frame without +;; the need of recalculate all the frames (defn calculate-z-index "Given a collection of shapes calculates their z-index. Greater index means is displayed over other shapes with less index." [objects] - (let [is-frame? (fn [id] (= :frame (get-in objects [id :type]))) - root-children (or (get-in objects [uuid/zero :shapes]) []) - num-frames (->> root-children (filterv is-frame?) count)] - (when-not (empty? root-children) - (loop [current (peek root-children) - pending (pop root-children) - current-idx (+ (count objects) num-frames -1) - z-index (transient {})] + (let [frames (helpers/select-frames objects) + z-index (calculate-frame-z-index {} uuid/zero objects)] + (->> frames + (map :id) + (reduce #(calculate-frame-z-index %1 %2 objects) z-index)))) - (let [children (get-in objects [current :shapes]) - assigned? (contains? z-index current) - is-frame? (is-frame? current) +(defn update-z-index + "Updates the z-index given a set of ids to change and the old and new objects + representations" + [z-index changed-ids old-objects new-objects] - pending (cond - (not is-frame?) - (d/concat pending children) + (let [old-frames (into #{} (map #(get-in old-objects [% :frame-id])) changed-ids) + new-frames (into #{} (map #(get-in new-objects [% :frame-id])) changed-ids) - (not assigned?) - (d/concat pending [current] children) + changed-frames (set/union old-frames new-frames) - :else - pending)] + frames (->> (helpers/select-frames new-objects) + (map :id) + (filter #(contains? changed-frames %))) - (if (empty? pending) - (-> (assoc! z-index current current-idx) - (persistent!)) - (recur (peek pending) - (pop pending) - (dec current-idx) - (assoc! z-index current current-idx)))))))) + z-index (calculate-frame-z-index z-index uuid/zero new-objects)] + + (->> frames + (reduce #(calculate-frame-z-index %1 %2 new-objects) z-index)))) (defn generate-child-parent-index [objects] diff --git a/frontend/src/app/util/range_tree.js b/frontend/src/app/util/range_tree.js index 64e3d3fdd..3f823a9f2 100644 --- a/frontend/src/app/util/range_tree.js +++ b/frontend/src/app/util/range_tree.js @@ -111,7 +111,7 @@ goog.scope(function() { // Tree implementation functions function isRed(branch) { - return branch !== null && branch.color === Color.RED; + return branch && branch.color === Color.RED; } // Insert recursively in the tree diff --git a/frontend/src/app/worker/selection.cljs b/frontend/src/app/worker/selection.cljs index b49c2fe93..ce62b3434 100644 --- a/frontend/src/app/worker/selection.cljs +++ b/frontend/src/app/worker/selection.cljs @@ -20,41 +20,44 @@ (defonce state (l/atom {})) -(defn- index-object - [objects z-index parents-index masks-index index obj] - (let [{:keys [x y width height]} (:selrect obj) - shape-bound #js {:x x :y y :width width :height height} +(defn index-shape + [objects parents-index masks-index] + (fn [index shape] + (let [{:keys [x y width height]} (:selrect shape) + shape-bound #js {:x x :y y :width width :height height} - parents (get parents-index (:id obj)) - masks (get masks-index (:id obj)) - z (get z-index (:id obj)) + parents (get parents-index (:id shape)) + masks (get masks-index (:id shape)) - frame (when (and (not= :frame (:type obj)) - (not= (:frame-id obj) uuid/zero)) - (get objects (:frame-id obj)))] - (qdt/insert index - (:id obj) - shape-bound - (assoc obj :frame frame :masks masks :parents parents :z z)))) + frame (when (and (not= :frame (:type shape)) + (not= (:frame-id shape) uuid/zero)) + (get objects (:frame-id shape)))] + (qdt/insert index + (:id shape) + shape-bound + (assoc shape :frame frame :masks masks :parents parents))))) (defn- create-index [objects] (let [shapes (-> objects (dissoc uuid/zero) (vals)) - z-index (cp/calculate-z-index objects) parents-index (cp/generate-child-all-parents-index objects) masks-index (cp/create-mask-index objects parents-index) bounds (gsh/selection-rect shapes) bounds #js {:x (:x bounds) :y (:y bounds) :width (:width bounds) - :height (:height bounds)}] + :height (:height bounds)} - (reduce (partial index-object objects z-index parents-index masks-index) - (qdt/create bounds) - shapes))) + index (reduce (index-shape objects parents-index masks-index) + (qdt/create bounds) + shapes) + + z-index (cp/calculate-z-index objects)] + + {:index index :z-index z-index})) (defn- update-index - [index old-objects new-objects] + [{index :index z-index :z-index} old-objects new-objects] (let [changes? (fn [id] (not= (get old-objects id) @@ -66,18 +69,21 @@ (keys new-objects))) shapes (->> changed-ids (mapv #(get new-objects %)) (filterv (comp not nil?))) - z-index (cp/calculate-z-index new-objects) parents-index (cp/generate-child-all-parents-index new-objects shapes) masks-index (cp/create-mask-index new-objects parents-index) - new-index (qdt/remove-all index changed-ids)] + new-index (qdt/remove-all index changed-ids) - (reduce (partial index-object new-objects z-index parents-index masks-index) - new-index - shapes))) + index (reduce (index-shape new-objects parents-index masks-index) + new-index + shapes) + + z-index (cp/update-z-index z-index changed-ids old-objects new-objects)] + + {:index index :z-index z-index})) (defn- query-index - [index rect frame-id include-frames? include-groups? disabled-masks reverse?] + [{index :index z-index :z-index} rect frame-id include-frames? include-groups? disabled-masks reverse?] (let [result (-> (qdt/search index (clj->js rect)) (es6-iterator-seq)) @@ -102,6 +108,11 @@ (some (comp not overlaps?)) not)) + add-z-index + (fn [{:keys [id frame-id] :as shape}] + (assoc shape :z (+ (get z-index id) + (get z-index frame-id 0)))) + ;; Shapes after filters of overlapping and criteria matching-shapes (into [] @@ -109,7 +120,8 @@ (filter match-criteria?) (filter (comp overlaps? :frame)) (filter (comp overlaps-masks? :masks)) - (filter overlaps?)) + (filter overlaps?) + (map add-z-index)) result) keyfn (if reverse? (comp - :z) :z)] From 6a62f4d3fb9ae3aeffa7c38d1c583ed095c4dc81 Mon Sep 17 00:00:00 2001 From: andy Date: Tue, 4 May 2021 14:39:55 +0000 Subject: [PATCH 016/135] :globe_with_meridians: Add translations for: Spanish. Currently translated at 96.7% (616 of 637 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/es/ --- frontend/translations/es.po | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 5685e0ce4..9192d2428 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -1,7 +1,7 @@ msgid "" msgstr "" -"PO-Revision-Date: 2021-04-14 13:44+0000\n" -"Last-Translator: Andrés Moya \n" +"PO-Revision-Date: 2021-05-05 09:32+0000\n" +"Last-Translator: andy \n" "Language-Team: Spanish \n" "Language: es\n" @@ -9,7 +9,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.6-dev\n" +"X-Generator: Weblate 4.7-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -2490,7 +2490,6 @@ msgid "workspace.viewport.click-to-close-path" msgstr "Pulsar para cerrar la ruta" #: src/app/main/ui/auth/register.cljs -#, fuzzy msgid "auth.check-your-email" msgstr "" "Comprueba tu email y haz click en el link de verificación para comenzar a " From af23d625686bb4719a2d940984048b23ba94ceb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Wed, 5 May 2021 17:04:02 +0200 Subject: [PATCH 017/135] :bug: Remove interactions when the destination artboard is deleted --- CHANGES.md | 3 ++ common/app/common/pages/common.cljc | 2 +- common/app/common/pages/migrations.cljc | 16 ++++++++++ .../src/app/main/data/workspace/common.cljs | 30 +++++++++++++++++-- 4 files changed, 47 insertions(+), 4 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index d45f28d5c..88fb94a9a 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -4,6 +4,9 @@ ### :sparkles: New features ### :bug: Bugs fixed + +- Remove interactions when the destination artboard is deleted [Taiga #1656](https://tree.taiga.io/project/penpot/issue/1656) + ### :arrow_up: Deps updates ### :boom: Breaking changes ### :heart: Community contributions by (Thank you!) diff --git a/common/app/common/pages/common.cljc b/common/app/common/pages/common.cljc index db1e9341c..f439b2cf4 100644 --- a/common/app/common/pages/common.cljc +++ b/common/app/common/pages/common.cljc @@ -8,7 +8,7 @@ (:require [app.common.uuid :as uuid])) -(def file-version 6) +(def file-version 7) (def default-color "#b1b2b5") ;; $color-gray-20 (def root uuid/zero) diff --git a/common/app/common/pages/migrations.cljc b/common/app/common/pages/migrations.cljc index 588da5d95..fd254d87b 100644 --- a/common/app/common/pages/migrations.cljc +++ b/common/app/common/pages/migrations.cljc @@ -163,3 +163,19 @@ (-> data (update :components #(d/mapm update-container %)) (update :pages-index #(d/mapm update-container %))))) + + +;; Remove interactions pointing to deleted frames +(defmethod migrate 7 + [data] + (letfn [(update-object [page _ object] + (d/update-when object :interactions + (fn [interactions] + (filterv #(get-in page [:objects (:destination %)]) + interactions)))) + + (update-page [_ page] + (update page :objects #(d/mapm (partial update-object page) %)))] + + (update data :pages-index #(d/mapm update-page %)))) + diff --git a/frontend/src/app/main/data/workspace/common.cljs b/frontend/src/app/main/data/workspace/common.cljs index c9f8bfcd8..d43229cdd 100644 --- a/frontend/src/app/main/data/workspace/common.cljs +++ b/frontend/src/app/main/data/workspace/common.cljs @@ -331,7 +331,6 @@ :shapes [shape-id]})))] (rx/of (dch/commit-changes rchanges uchanges {:commit-local? true})))))) - (defn delete-shapes [ids] (us/assert (s/coll-of ::us/uuid) ids) @@ -366,6 +365,12 @@ #{} ids) + interacting-shapes + (filter (fn [shape] + (let [interactions (:interactions shape)] + (some ids (map :destination interactions)))) + (vals objects)) + rchanges (d/concat (reduce (fn [res id] @@ -391,7 +396,18 @@ :operations [{:type :set :attr :masked-group? :val false}]) - groups-to-unmask)) + groups-to-unmask) + (map #(array-map + :type :mod-obj + :page-id page-id + :id (:id %) + :operations [{:type :set + :attr :interactions + :val (vec (remove (fn [interaction] + (contains? ids (:destination interaction))) + (:interactions %)))}]) + interacting-shapes)) + uchanges (d/concat @@ -430,7 +446,15 @@ :operations [{:type :set :attr :masked-group? :val true}]) - groups-to-unmask))] + groups-to-unmask) + (map #(array-map + :type :mod-obj + :page-id page-id + :id (:id %) + :operations [{:type :set + :attr :interactions + :val (:interactions %)}]) + interacting-shapes))] ;; (println "================ rchanges") ;; (cljs.pprint/pprint rchanges) From 8ad8196d70af73a7a2c31c175b991f15b9a58d86 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 4 May 2021 15:12:42 +0200 Subject: [PATCH 018/135] :sparkles: Allow overide the secret-key on setup module. Usefull when using a pre-shared secret key. --- backend/src/app/config.clj | 4 +++- backend/src/app/main.clj | 5 +++-- backend/src/app/setup.clj | 28 +++++++++++++++++++--------- backend/src/app/tokens.clj | 8 ++++---- 4 files changed, 29 insertions(+), 16 deletions(-) diff --git a/backend/src/app/config.clj b/backend/src/app/config.clj index 0e9d4ac5d..c8aeeae7e 100644 --- a/backend/src/app/config.clj +++ b/backend/src/app/config.clj @@ -87,6 +87,7 @@ :initial-project-skey "initial-project" }) +(s/def ::secret-key ::us/string) (s/def ::allow-demo-users ::us/boolean) (s/def ::asserts-enabled ::us/boolean) (s/def ::assets-path ::us/string) @@ -169,7 +170,8 @@ (s/def ::tenant ::us/string) (s/def ::config - (s/keys :opt-un [::allow-demo-users + (s/keys :opt-un [::secret-key + ::allow-demo-users ::asserts-enabled ::database-password ::database-uri diff --git a/backend/src/app/main.clj b/backend/src/app/main.clj index 1dba68956..f7fbde9b4 100644 --- a/backend/src/app/main.clj +++ b/backend/src/app/main.clj @@ -45,7 +45,7 @@ :redis-uri (cf/get :redis-uri)} :app.tokens/tokens - {:sprops (ig/ref :app.setup/props)} + {:props (ig/ref :app.setup/props)} :app.storage/gc-deleted-task {:pool (ig/ref :app.db/pool) @@ -257,7 +257,8 @@ :host (cf/get :srepl-host)} :app.setup/props - {:pool (ig/ref :app.db/pool)} + {:pool (ig/ref :app.db/pool) + :key (cf/get :secret-key)} :app.loggers.zmq/receiver {:endpoint (cf/get :loggers-zmq-uri)} diff --git a/backend/src/app/setup.clj b/backend/src/app/setup.clj index ec2c10a96..610e9e9ff 100644 --- a/backend/src/app/setup.clj +++ b/backend/src/app/setup.clj @@ -29,16 +29,26 @@ (initialize-instance-id! cfg) (retrieve-all cfg)))) +(def sql:upsert-secret-key + "insert into server_prop (id, preload, content) + values ('secret-key', true, ?::jsonb) + on conflict (id) do update set content = ?::jsonb") + +(def sql:insert-secret-key + "insert into server_prop (id, preload, content) + values ('secret-key', true, ?::jsonb) + on conflict (id) do nothing") + (defn- initialize-secret-key! - [{:keys [conn] :as cfg}] - (let [key (-> (bn/random-bytes 64) - (bc/bytes->b64u) - (bc/bytes->str))] - (db/insert! conn :server-prop - {:id "secret-key" - :preload true - :content (db/tjson key)} - {:on-conflict-do-nothing true}))) + [{:keys [conn key] :as cfg}] + (if key + (let [key (db/tjson key)] + (db/exec-one! conn [sql:upsert-secret-key key key])) + (let [key (-> (bn/random-bytes 64) + (bc/bytes->b64u) + (bc/bytes->str)) + key (db/tjson key)] + (db/exec-one! conn [sql:insert-secret-key key])))) (defn- initialize-instance-id! [{:keys [conn] :as cfg}] diff --git a/backend/src/app/tokens.clj b/backend/src/app/tokens.clj index ecf7c84a4..bfa682ea6 100644 --- a/backend/src/app/tokens.clj +++ b/backend/src/app/tokens.clj @@ -51,11 +51,11 @@ claims)) (s/def ::secret-key ::us/string) -(s/def ::sprops +(s/def ::props (s/keys :req-un [::secret-key])) (defmethod ig/pre-init-spec ::tokens [_] - (s/keys :req-un [::sprops])) + (s/keys :req-un [::props])) (defn- generate-predefined [cfg {:keys [iss profile-id] :as params}] @@ -71,8 +71,8 @@ :hint "no predefined token"))) (defmethod ig/init-key ::tokens - [_ {:keys [sprops] :as cfg}] - (let [secret (derive-tokens-secret (:secret-key sprops)) + [_ {:keys [props] :as cfg}] + (let [secret (derive-tokens-secret (:secret-key props)) cfg (assoc cfg ::secret secret)] (fn [action params] (case action From 77c2a98304ee49287437a45101049c0ae98d55a9 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 4 May 2021 15:13:44 +0200 Subject: [PATCH 019/135] :tada: Add insert-multi helper on db namespace. --- backend/src/app/db.clj | 7 +++++++ backend/src/app/db/sql.clj | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/backend/src/app/db.clj b/backend/src/app/db.clj index 32a91e8d6..75412606d 100644 --- a/backend/src/app/db.clj +++ b/backend/src/app/db.clj @@ -200,6 +200,13 @@ (sql/insert table params opts) (assoc opts :return-keys true)))) +(defn insert-multi! + ([ds table cols rows] (insert-multi! ds table cols rows nil)) + ([ds table cols rows opts] + (exec! ds + (sql/insert-multi table cols rows opts) + (assoc opts :return-keys true)))) + (defn update! ([ds table params where] (update! ds table params where nil)) ([ds table params where opts] diff --git a/backend/src/app/db/sql.clj b/backend/src/app/db/sql.clj index d2c92db38..6ee5d3073 100644 --- a/backend/src/app/db/sql.clj +++ b/backend/src/app/db/sql.clj @@ -32,6 +32,11 @@ (assoc :suffix "ON CONFLICT DO NOTHING"))] (sql/for-insert table key-map opts)))) +(defn insert-multi + [table cols rows opts] + (let [opts (merge default-opts opts)] + (sql/for-insert-multi table cols rows opts))) + (defn select ([table where-params] (select table where-params nil)) From 460c8241176d58dad9ed48f0ba9c050e889e2ec7 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 4 May 2021 15:14:22 +0200 Subject: [PATCH 020/135] :paperclip: Minor changes on migration files. Making them reusable. --- .../app/migrations/sql/0015-improve-tasks-tables.sql | 10 +++++++++- .../sql/0019-add-improved-scheduled-tasks.sql | 6 +++++- .../migrations/sql/0041-mod-pg-storage-options.sql | 11 ----------- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/backend/src/app/migrations/sql/0015-improve-tasks-tables.sql b/backend/src/app/migrations/sql/0015-improve-tasks-tables.sql index 5427757cf..1787c5a70 100644 --- a/backend/src/app/migrations/sql/0015-improve-tasks-tables.sql +++ b/backend/src/app/migrations/sql/0015-improve-tasks-tables.sql @@ -1,4 +1,4 @@ -DROP TABLE task; +DROP TABLE IF EXISTS task; CREATE TABLE task ( id uuid DEFAULT uuid_generate_v4(), @@ -27,3 +27,11 @@ CREATE TABLE task_default partition OF task default; CREATE INDEX task__scheduled_at__queue__idx ON task (scheduled_at, queue) WHERE status = 'new' or status = 'retry'; + +ALTER TABLE task + ALTER COLUMN queue SET STORAGE external, + ALTER COLUMN name SET STORAGE external, + ALTER COLUMN props SET STORAGE external, + ALTER COLUMN status SET STORAGE external, + ALTER COLUMN error SET STORAGE external; + diff --git a/backend/src/app/migrations/sql/0019-add-improved-scheduled-tasks.sql b/backend/src/app/migrations/sql/0019-add-improved-scheduled-tasks.sql index b36c2a205..caad9b33b 100644 --- a/backend/src/app/migrations/sql/0019-add-improved-scheduled-tasks.sql +++ b/backend/src/app/migrations/sql/0019-add-improved-scheduled-tasks.sql @@ -1,4 +1,4 @@ -DROP TABLE scheduled_task; +DROP TABLE IF EXISTS scheduled_task; CREATE TABLE scheduled_task ( id text PRIMARY KEY, @@ -22,3 +22,7 @@ CREATE TABLE scheduled_task_history ( CREATE INDEX scheduled_task_history__task_id__idx ON scheduled_task_history(task_id); + +ALTER TABLE scheduled_task + ALTER COLUMN id SET STORAGE external, + ALTER COLUMN cron_expr SET STORAGE external; diff --git a/backend/src/app/migrations/sql/0041-mod-pg-storage-options.sql b/backend/src/app/migrations/sql/0041-mod-pg-storage-options.sql index 5cd38a5f4..6a9e7c8c4 100644 --- a/backend/src/app/migrations/sql/0041-mod-pg-storage-options.sql +++ b/backend/src/app/migrations/sql/0041-mod-pg-storage-options.sql @@ -27,17 +27,6 @@ ALTER TABLE comment_thread ALTER COLUMN participants SET STORAGE external, ALTER COLUMN page_name SET STORAGE external; -ALTER TABLE task - ALTER COLUMN queue SET STORAGE external, - ALTER COLUMN name SET STORAGE external, - ALTER COLUMN props SET STORAGE external, - ALTER COLUMN status SET STORAGE external, - ALTER COLUMN error SET STORAGE external; - -ALTER TABLE scheduled_task - ALTER COLUMN id SET STORAGE external, - ALTER COLUMN cron_expr SET STORAGE external; - ALTER TABLE http_session ALTER COLUMN id SET STORAGE external, ALTER COLUMN user_agent SET STORAGE external; From 6250b457ad8cd5798f692092d9148879d1ca235b Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 4 May 2021 15:14:53 +0200 Subject: [PATCH 021/135] :sparkles: Allow raw logging messages. --- backend/src/app/util/logging.clj | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/backend/src/app/util/logging.clj b/backend/src/app/util/logging.clj index 5aaa409a8..9a08e66b3 100644 --- a/backend/src/app/util/logging.clj +++ b/backend/src/app/util/logging.clj @@ -60,8 +60,8 @@ ^Object msg))) (defmacro log - [& {:keys [level cause ::logger ::async] :as props}] - (let [props (dissoc props :level :cause ::logger ::async) + [& {:keys [level cause ::logger ::async ::raw] :as props}] + (let [props (dissoc props :level :cause ::logger ::async ::raw) logger (or logger (str *ns*)) logger-sym (gensym "log") level-sym (gensym "log")] @@ -69,8 +69,12 @@ ~level-sym (get-level ~level)] (if (enabled? ~logger-sym ~level-sym) ~(if async - `(send-off logging-agent (fn [_#] (write-log! ~logger-sym ~level-sym ~cause (build-map-message ~props)))) - `(write-log! ~logger-sym ~level-sym ~cause (build-map-message ~props))))))) + `(send-off logging-agent + (fn [_#] + (let [message# (or ~raw (build-map-message ~props))] + (write-log! ~logger-sym ~level-sym ~cause message#)))) + `(let [message# (or ~raw (build-map-message ~props))] + (write-log! ~logger-sym ~level-sym ~cause message#))))))) (defmacro info [& params] From 1bc210c9a90d345a9da77ebdaf639397ab3ae341 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 4 May 2021 15:15:42 +0200 Subject: [PATCH 022/135] :arrow_up: Update frontend dependencies. And add user agent parsing library dependency. --- frontend/package.json | 1 + frontend/shadow-cljs.edn | 14 +- .../cuerdas/{vendor => impl}/xregexp.cljs | 2 +- frontend/yarn.lock | 172 +++++++++--------- 4 files changed, 96 insertions(+), 93 deletions(-) rename frontend/vendor/cuerdas/{vendor => impl}/xregexp.cljs (74%) diff --git a/frontend/package.json b/frontend/package.json index 5fb09dbf2..e011a8043 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -49,6 +49,7 @@ "rxjs": "~7.0.0-beta.12", "source-map-support": "^0.5.16", "tdigest": "^0.1.1", + "ua-parser-js": "^0.7.28", "xregexp": "^5.0.1" } } diff --git a/frontend/shadow-cljs.edn b/frontend/shadow-cljs.edn index da046cd80..5651d8b4b 100644 --- a/frontend/shadow-cljs.edn +++ b/frontend/shadow-cljs.edn @@ -1,6 +1,6 @@ {:http {:port 3448} :nrepl {:port 3447} - :jvm-opts ["-Xmx500m" "-Xms50m" "-XX:+UseSerialGC"] + :jvm-opts ["-Xmx600m" "-Xms50m" "-XX:+UseSerialGC"] :dev-http {8888 "classpath:public"} :source-paths ["src", "vendor", "resources", "../common", "tests"] @@ -8,16 +8,16 @@ [[binaryage/devtools "RELEASE"] [environ/environ "1.2.0"] - [metosin/reitit-core "0.5.12"] + [metosin/reitit-core "0.5.13"] [expound/expound "0.8.9"] [danlentz/clj-uuid "0.1.9"] [frankiesardo/linked "1.3.0"] - [funcool/beicon "2021.04.27-2"] - [funcool/cuerdas "2020.03.26-3"] + [funcool/beicon "2021.04.29-0"] + [funcool/cuerdas "2021.05.02-0"] [funcool/okulary "2020.04.14-0"] - [funcool/potok "3.2.0"] + [funcool/potok "4.0.0"] [funcool/promesa "6.0.0"] [funcool/rumext "2021.01.26-0"] @@ -43,9 +43,11 @@ :worker {:entries [app.worker] :web-worker true :depends-on #{:shared}}} + :compiler-options {:output-feature-set :es8 - :output-wrapper false} + :output-wrapper false + :warnings {:fn-deprecated false}} :release {:compiler-options diff --git a/frontend/vendor/cuerdas/vendor/xregexp.cljs b/frontend/vendor/cuerdas/impl/xregexp.cljs similarity index 74% rename from frontend/vendor/cuerdas/vendor/xregexp.cljs rename to frontend/vendor/cuerdas/impl/xregexp.cljs index 2883be3d7..27a5e7f86 100644 --- a/frontend/vendor/cuerdas/vendor/xregexp.cljs +++ b/frontend/vendor/cuerdas/impl/xregexp.cljs @@ -1,4 +1,4 @@ -(ns cuerdas.vendor.xregexp +(ns cuerdas.impl.xregexp (:require ["xregexp" :as XRegExp])) (goog/exportSymbol "XRegExp" XRegExp) diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 43a22f305..0390385c1 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -3,9 +3,9 @@ "@babel/runtime-corejs3@^7.12.1": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.13.10.tgz#14c3f4c85de22ba88e8e86685d13e8861a82fe86" - integrity sha512-x/XYVQ1h684pp1mJwOV4CyvqZXqbc8CMsMGUnAbuc82ZCdv1U63w5RSUzgDSXQHG5Rps/kiksH6g2D5BuaKyXg== + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.14.0.tgz#6bf5fbc0b961f8e3202888cb2cd0fb7a0a9a3f66" + integrity sha512-0R0HTZWHLk6G8jIk0FtoX+AatCtKnswS98VhXwGImFc759PJRp4Tru0PQYZofyijTFUr+gT8Mu7sgXVJLQ0ceg== dependencies: core-js-pure "^3.0.0" regenerator-runtime "^0.13.4" @@ -548,15 +548,15 @@ browserify-zlib@^0.2.0: pako "~1.0.5" browserslist@^4.16.3: - version "4.16.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz#340aa46940d7db878748567c5dea24a48ddf3717" - integrity sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw== + version "4.16.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" + integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== dependencies: - caniuse-lite "^1.0.30001181" - colorette "^1.2.1" - electron-to-chromium "^1.3.649" + caniuse-lite "^1.0.30001219" + colorette "^1.2.2" + electron-to-chromium "^1.3.723" escalade "^3.1.1" - node-releases "^1.1.70" + node-releases "^1.1.71" buffer-crc32@~0.2.3: version "0.2.13" @@ -662,10 +662,10 @@ camelcase@^5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30001181, caniuse-lite@^1.0.30001196: - version "1.0.30001205" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001205.tgz#d79bf6a6fb13196b4bb46e5143a22ca0242e0ef8" - integrity sha512-TL1GrS5V6LElbitPazidkBMD9sa448bQDDLrumDqaggmKFcuU2JW1wTOHJPukAcOMtEmLcmDJEzfRrf+GjM0Og== +caniuse-lite@^1.0.30001196, caniuse-lite@^1.0.30001219: + version "1.0.30001221" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001221.tgz#b916721ddf59066cfbe96c5c9a77cf7ae5c52e65" + integrity sha512-b9TOZfND3uGSLjMOrLh8XxSQ41x8mX+9MLJYDM4AAHLfaZHttrLNPrScWjVnBITRZbY5sPpCt7X85n7VSLZ+/g== caseless@~0.12.0: version "0.12.0" @@ -871,7 +871,7 @@ color@3.0.x: color-convert "^1.9.1" color-string "^1.5.2" -colorette@^1.2.1, colorette@^1.2.2: +colorette@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== @@ -982,14 +982,14 @@ copy-props@^2.0.1: is-plain-object "^5.0.0" core-js-pure@^3.0.0: - version "3.10.2" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.10.2.tgz#065304f8547bf42008d4528dfff973c38bd6a332" - integrity sha512-uu18pVHQ21n4mzfuSlCXpucu5VKsck3j2m5fjrBOBqqdgWAxwdCgUuGWj6cDDPN1zLj/qtiqKvBMxWgDeeu49Q== + version "3.11.2" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.11.2.tgz#10e3b35788c00f431bc0d601d7551475ec3e792c" + integrity sha512-DQxdEKm+zFsnON7ZGOgUAQXBt1UJJ01tOzN/HgQ7cNf0oEHW1tcBLfCQQd1q6otdLu5gAdvKYxKHAoXGwE/kiQ== core-js@^3.6.4: - version "3.10.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.10.0.tgz#9a020547c8b6879f929306949e31496bbe2ae9b3" - integrity sha512-MQx/7TLgmmDVamSyfE+O+5BHvG1aUGj/gHhLn1wVtm2B5u1eVIPvh7vkfjwWKNCjrTJB8+He99IntSQ1qP+vYQ== + version "3.11.2" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.11.2.tgz#af087a43373fc6e72942917c4a4c3de43ed574d6" + integrity sha512-3tfrrO1JpJSYGKnd9LKTBPqgUES/UYiCzMKeqwR1+jF16q4kD1BY2NvqkfuzXwQ6+CIWm55V9cjD7PQd+hijdw== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -1038,9 +1038,9 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: sha.js "^2.4.8" cross-fetch@^3.0.4: - version "3.1.3" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.3.tgz#b8e7d5f19161c4a0ca916f707978848786043afb" - integrity sha512-2i6v88DTqVBNODyjD9U6Ycn/uSZNvyHe25cIbo2fFnAACAsaLTJsd23miRWiR5NuiGXR9wpJ9d40/9WAhjDIrw== + version "3.1.4" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.4.tgz#9723f3a3a247bf8b89039f3a380a9244e8fa2f39" + integrity sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ== dependencies: node-fetch "2.6.1" @@ -1109,9 +1109,9 @@ css-tree@1.0.0-alpha.37: source-map "^0.6.1" css-tree@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.2.tgz#9ae393b5dafd7dae8a622475caec78d3d8fbd7b5" - integrity sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ== + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== dependencies: mdn-data "2.0.14" source-map "^0.6.1" @@ -1321,9 +1321,9 @@ domelementtype@1: integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== domelementtype@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" - integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== + version "2.2.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== domutils@^1.7.0: version "1.7.0" @@ -1378,10 +1378,10 @@ editorconfig@^0.15.3: semver "^5.6.0" sigmund "^1.0.1" -electron-to-chromium@^1.3.649: - version "1.3.703" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.703.tgz#6d9b9a75c42a40775f5930329e642b22b227317f" - integrity sha512-SVBVhNB+4zPL+rvtWLw7PZQkw/Eqj1HQZs22xtcqW36+xoifzEOEEDEpkxSMfB6RFeSIOcG00w6z5mSqLr1Y6w== +electron-to-chromium@^1.3.723: + version "1.3.726" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.726.tgz#6d3c577e5f5a48904ba891464740896c05e3bdb1" + integrity sha512-dw7WmrSu/JwtACiBzth8cuKf62NKL1xVJuNvyOg0jvruN/n4NLtGYoTzciQquCPNaS2eR+BT5GrxHbslfc/w1w== elliptic@^6.5.3: version "6.5.4" @@ -1696,9 +1696,9 @@ fd-slicer@~1.1.0: pend "~1.2.0" fecha@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.0.tgz#3ffb6395453e3f3efff850404f0a59b6747f5f41" - integrity sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg== + version "4.2.1" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.1.tgz#0a83ad8f86ef62a091e22bb5a039cd03d23eecce" + integrity sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q== file-uri-to-path@1.0.0: version "1.0.0" @@ -2320,9 +2320,9 @@ homedir-polyfill@^1.0.1: parse-passwd "^1.0.0" hosted-git-info@^2.1.4: - version "2.8.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== http-signature@~1.2.0: version "1.2.0" @@ -2501,9 +2501,9 @@ is-callable@^1.1.4, is-callable@^1.2.3: integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== is-core-module@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" - integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + version "2.3.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.3.0.tgz#d341652e3408bca69c4671b79a0954a3d349f887" + integrity sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw== dependencies: has "^1.0.3" @@ -3220,17 +3220,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.46.0: - version "1.46.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee" - integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ== +mime-db@1.47.0: + version "1.47.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" + integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== mime-types@^2.1.12, mime-types@~2.1.19: - version "2.1.29" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2" - integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ== + version "2.1.30" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" + integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== dependencies: - mime-db "1.46.0" + mime-db "1.47.0" mimic-fn@^2.0.0: version "2.1.0" @@ -3432,7 +3432,7 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-releases@^1.1.70: +node-releases@^1.1.71: version "1.1.71" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== @@ -3557,9 +3557,9 @@ object-copy@^0.1.0: kind-of "^3.0.3" object-inspect@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" - integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== + version "1.10.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.2.tgz#b6385a3e2b7cae0b5eafcf90cddf85d128767f30" + integrity sha512-gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA== object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" @@ -3963,9 +3963,9 @@ postcss@^7.0.16: supports-color "^6.1.0" postcss@^8.2.7: - version "8.2.10" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.10.tgz#ca7a042aa8aff494b334d0ff3e9e77079f6f702b" - integrity sha512-b/h7CPV7QEdrqIxtAf2j31U5ef05uBDuvoXv6L51Q4rcS1jdlXAVKJv+atCFdUXYl9dyTHGyoMzIepwowRJjFw== + version "8.2.13" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.13.tgz#dbe043e26e3c068e45113b1ed6375d2d37e2129f" + integrity sha512-FCE5xLH+hjbzRdpbRb1IMCvPv9yZx2QnDarBEYSN0N0HYk+TcXsEhwdFcFb+SRWOKzKGErhIEbBK2ogyLdTtfQ== dependencies: colorette "^1.2.2" nanoid "^3.1.22" @@ -4238,9 +4238,9 @@ remove-trailing-separator@^1.0.1, remove-trailing-separator@^1.1.0: integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== repeat-string@^1.6.1: version "1.6.1" @@ -4377,9 +4377,9 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: inherits "^2.0.1" rxjs@~7.0.0-beta.12: - version "7.0.0-rc.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.0.0-rc.2.tgz#bd5b18ff9b60ca28ea4b3a824419035007064fdf" - integrity sha512-81+TFxK8hUK3tmJ9TPon07bgun2ASgZ8OXumUuWSAnktSAzTvubw4NCJTr0Tc0lO9IfTThi5z3GDVlmjY3n5ug== + version "7.0.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.0.0.tgz#c55d67c52aee8804d32ab60965e335bd41e2dc2d" + integrity sha512-I1V/ArAtGJg4kmCfms8fULm0SwYgEsAf2d5WPCBGzTYm2qTjO3Tx4EDFaGjbOox8CeEsC69jQK22mnmfyA26sw== dependencies: tslib "~2.1.0" @@ -4416,9 +4416,9 @@ sass-graph@2.2.5: yargs "^13.3.2" sass@^1.32.8: - version "1.32.11" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.11.tgz#b236b3ea55c76602c2ef2bd0445f0db581baa218" - integrity sha512-O9tRcob/fegUVSIV1ihLLZcftIOh0AF1VpKgusUfLqnb2jQ0GLDwI5ivv1FYWivGv8eZ/AwntTyTzjcHu0c/qw== + version "1.32.12" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.12.tgz#a2a47ad0f1c168222db5206444a30c12457abb9f" + integrity sha512-zmXn03k3hN0KaiVTjohgkg98C3UowhL1/VSGdj4/VAAiMKGQOE80PFPxFP2Kyq0OUskPKcY5lImkhBKEHlypJA== dependencies: chokidar ">=3.0.0 <4.0.0" @@ -5158,10 +5158,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -ua-parser-js@^0.7.18: - version "0.7.26" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.26.tgz#b3731860e241419abd5b542b1a0881070d92e0ce" - integrity sha512-VwIvGlFNmpKbjzRt51jpbbFTrKIEgGHxIwA8Y69K1Bqc6bTIV7TaGGABOkghSFQWsLmcRB4drGvpfv9z2szqoQ== +ua-parser-js@^0.7.18, ua-parser-js@^0.7.28: + version "0.7.28" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" + integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== ultron@~1.1.0: version "1.1.1" @@ -5505,23 +5505,15 @@ y18n@^3.2.1: integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== "y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" - integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= -yargs-parser@5.0.0-security.0: - version "5.0.0-security.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0-security.0.tgz#4ff7271d25f90ac15643b86076a2ab499ec9ee24" - integrity sha512-T69y4Ps64LNesYxeYGYPvfoMTt/7y1XtfpIslUeK4um+9Hu7hlGoRtaDLvdXb7+/tfq4opVa2HRY5xGip022rQ== - dependencies: - camelcase "^3.0.0" - object.assign "^4.1.0" - yargs-parser@^11.1.1: version "11.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" @@ -5538,6 +5530,14 @@ yargs-parser@^13.1.2: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.1.tgz#7ede329c1d8cdbbe209bd25cdb990e9b1ebbb394" + integrity sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA== + dependencies: + camelcase "^3.0.0" + object.assign "^4.1.0" + yargs@^12.0.2: version "12.0.5" resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" @@ -5573,9 +5573,9 @@ yargs@^13.3.2: yargs-parser "^13.1.2" yargs@^7.1.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.1.tgz#67f0ef52e228d4ee0d6311acede8850f53464df6" - integrity sha512-huO4Fr1f9PmiJJdll5kwoS2e4GqzGSsMT3PPMpOwoVkOK8ckqAewMTZyA6LXVQWflleb/Z8oPBEvNsMft0XE+g== + version "7.1.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.2.tgz#63a0a5d42143879fdbb30370741374e0641d55db" + integrity sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA== dependencies: camelcase "^3.0.0" cliui "^3.2.0" @@ -5589,7 +5589,7 @@ yargs@^7.1.0: string-width "^1.0.2" which-module "^1.0.0" y18n "^3.2.1" - yargs-parser "5.0.0-security.0" + yargs-parser "^5.0.1" yauzl@^2.10.0: version "2.10.0" From 04ab99c8adc97b2b3c0622689d9975e0fe51c3ea Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 4 May 2021 15:16:12 +0200 Subject: [PATCH 023/135] :sparkles: Minor improvement on try* helper on common/exceptions. --- common/app/common/exceptions.cljc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/app/common/exceptions.cljc b/common/app/common/exceptions.cljc index 4fe202efd..5818578a9 100644 --- a/common/app/common/exceptions.cljc +++ b/common/app/common/exceptions.cljc @@ -36,7 +36,7 @@ (defn try* [f on-error] - (try (f) (catch #?(:clj Exception :cljs :default) e (on-error e)))) + (try (f) (catch #?(:clj Throwable :cljs :default) e (on-error e)))) ;; http://clj-me.cgrand.net/2013/09/11/macros-closures-and-unexpected-object-retention/ ;; Explains the use of ^:once metadata From 8835216ca9b300bf54bf9fa848548f342fdb02a8 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 4 May 2021 15:17:07 +0200 Subject: [PATCH 024/135] :tada: Add analytics related event namespace. --- docker/images/files/config.js | 1 + docker/images/files/nginx-entrypoint.sh | 9 + frontend/src/app/config.cljs | 1 + frontend/src/app/main/data/events.cljs | 238 ++++++++++++++++++++++++ 4 files changed, 249 insertions(+) create mode 100644 frontend/src/app/main/data/events.cljs diff --git a/docker/images/files/config.js b/docker/images/files/config.js index aac4fb709..8af727193 100644 --- a/docker/images/files/config.js +++ b/docker/images/files/config.js @@ -9,3 +9,4 @@ //var penpotOIDCClientID = ""; //var penpotLoginWithLDAP = ; //var penpotRegistrationEnabled = ; +//var penpotAnalyticsEnabled = ; diff --git a/docker/images/files/nginx-entrypoint.sh b/docker/images/files/nginx-entrypoint.sh index b341649a7..51a118c5a 100644 --- a/docker/images/files/nginx-entrypoint.sh +++ b/docker/images/files/nginx-entrypoint.sh @@ -97,6 +97,14 @@ update_registration_enabled() { fi } +update_registration_enabled() { + if [ -n "$PENPOT_ANALYTICS_ENABLED" ]; then + sed -i \ + -e "s|^//var penpotAnalyticsEnabled = .*;|var penpotAnalyticsEnabled = $PENPOT_ANALYTICS_ENABLED;|g" \ + "$1" + fi +} + update_public_uri /var/www/app/js/config.js update_demo_warning /var/www/app/js/config.js update_allow_demo_users /var/www/app/js/config.js @@ -106,5 +114,6 @@ update_github_client_id /var/www/app/js/config.js update_oidc_client_id /var/www/app/js/config.js update_login_with_ldap /var/www/app/js/config.js update_registration_enabled /var/www/app/js/config.js +update_analytics_enabled /var/www/app/js/config.js exec "$@"; diff --git a/frontend/src/app/config.cljs b/frontend/src/app/config.cljs index 5f801d155..55e800fe5 100644 --- a/frontend/src/app/config.cljs +++ b/frontend/src/app/config.cljs @@ -76,6 +76,7 @@ (def worker-uri (obj/get global "penpotWorkerURI" "/js/worker.js")) (def translations (obj/get global "penpotTranslations")) (def themes (obj/get global "penpotThemes")) +(def analytics (obj/get global "penpotAnalyticsEnabled" false)) (def version (delay (parse-version global))) (def target (delay (parse-target global))) diff --git a/frontend/src/app/main/data/events.cljs b/frontend/src/app/main/data/events.cljs new file mode 100644 index 000000000..12ba31a59 --- /dev/null +++ b/frontend/src/app/main/data/events.cljs @@ -0,0 +1,238 @@ +;; 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) UXBOX Labs SL + +(ns app.main.data.events + (:require + ["ua-parser-js" :as UAParser] + [app.common.data :as d] + [app.main.repo :as rp] + [app.config :as cf] + [app.util.globals :as g] + [app.util.http :as http] + [app.util.object :as obj] + [app.util.storage :refer [storage]] + [app.util.time :as dt] + [app.util.i18n :as i18n] + [beicon.core :as rx] + [lambdaisland.uri :as u] + [potok.core :as ptk])) + +;; Defines the maximum buffer size, after events start discarding. +(def max-buffer-size 1024) + +;; Defines the maximum number of events that can go in a single batch. +(def max-chunk-size 100) + +;; Defines the time window within events belong to the same session. +(def session-timeout + (dt/duration {:minutes 30})) + +;; --- CONTEXT + +(defn- collect-context + [] + (let [uagent (UAParser.)] + (d/merge + {:app-version (:full @cf/version) + :locale @i18n/locale} + (let [browser (.getBrowser uagent)] + {:browser (obj/get browser "name") + :browser-version (obj/get browser "version")}) + (let [engine (.getEngine uagent)] + {:engine (obj/get engine "name") + :engine-version (obj/get engine "version")}) + (let [os (.getOS uagent) + name (obj/get os "name") + version (obj/get os "version")] + {:os (str name " " version) + :os-version version}) + (let [device (.getDevice uagent)] + (if-let [type (obj/get device "type")] + {:device-type type + :device-vendor (obj/get device "vendor") + :device-model (obj/get device "model")} + {:device-type "unknown"})) + (let [screen (obj/get g/window "screen") + orientation (obj/get screen "orientation")] + {:screen-width (obj/get screen "width") + :screen-height (obj/get screen "height") + :screen-color-depth (obj/get screen "colorDepth") + :screen-orientation (obj/get orientation "type")}) + (let [cpu (.getCPU uagent)] + {:device-arch (obj/get cpu "architecture")})))) + +(def context + (atom (d/without-nils (collect-context)))) + +(add-watch i18n/locale ::events #(swap! context assoc :locale %4)) + +;; --- EVENT TRANSLATION + +(defmulti ^:private process-event ptk/type) +(defmethod process-event :default [_] nil) + +(defmethod process-event ::event + [event] + (let [data (deref event)] + (when (::name data) + (d/without-nils + {:type (::type data "action") + :name (::name data) + :context (::context data) + :props (dissoc data ::name ::type ::context)})))) + +(defmethod process-event :app.util.router/navigated + [event] + (let [match (deref event) + route (get-in match [:data :name]) + props {:route (name route) + :team-id (get-in match [:path-params :team-id]) + :file-id (get-in match [:path-params :file-id]) + :project-id (get-in match [:path-params :project-id])}] + {:name "navigate" + :type "action" + :timestamp (dt/now) + :props (d/without-nils props)})) + +(defmethod process-event :app.main.data.users/logged-in + [event] + (let [data (deref event) + mdata (meta data) + props [:email + :auth-backend + :fullname + :is-muted + :default-team-id + :default-project-id]] + {:name "signin" + :type "identify" + :profile-id (:id data) + :props (-> (select-keys data props) + (assoc :signin-source (::source mdata)))})) + +(defmethod process-event :app.main.data.dashboard/project-created + [event] + (let [data (deref event)] + {:type "action" + :name "create-page" + :props {:id (:id data) + :team-id (:team-id data)}})) + +(defmethod process-event :app.main.data.dashboard/file-created + [event] + (let [data (deref event)] + {:type "action" + :name "create-file" + :props {:id (:id data) + :project-id (:project-id data)}})) + +(defmethod process-event :app.main.data.workspace/create-page + [event] + (let [data (deref event)] + {:type "action" + :name "create-page" + :props {:id (:id data) + :file-id (:file-id data) + :project-id (:project-id data)}})) + +(defn- event->generic-action + [event name] + {:type "action" + :name name + :props {}}) + +(defmethod process-event :app.main.data.users/logout + [event] + (event->generic-action event "logout")) + + +;; --- MAIN LOOP + +(defn- append-to-buffer + [buffer item] + (if (>= (count buffer) max-buffer-size) + buffer + (conj buffer item))) + +(defn- remove-from-buffer + [buffer items] + (into #queue [] (drop items) buffer)) + +(defn- persist-events + [events] + (let [uri (u/join cf/public-uri "events") + params {:events events}] + (->> (http/send! {:uri uri + :method :post + :body (http/transit-data params)}) + (rx/mapcat rp/handle-response)))) + +(defmethod ptk/resolve ::persistence + [_ {:keys [buffer] :as params}] + (ptk/reify ::persistence + ptk/EffectEvent + (effect [_ state stream] + (let [events (into [] (take max-chunk-size) @buffer)] + (when-not (empty? events) + (->> (persist-events events) + (rx/subs (fn [_] + (swap! buffer remove-from-buffer (count events)))))))))) + +(defn initialize + [] + (let [buffer (atom #queue [])] + (ptk/reify ::initialize + ptk/WatchEvent + (watch [_ state stream] + (->> (rx/from-atom buffer) + (rx/filter #(pos? (count %))) + (rx/debounce 2000) + (rx/map #(ptk/event ::persistence {:buffer buffer})))) + + ptk/EffectEvent + (effect [_ state stream] + (let [events (methods process-event) + session (atom nil) + + profile (->> (rx/from-atom storage {:emit-current-value? true}) + (rx/map :profile) + (rx/map :id) + (rx/dedupe)) + + source (->> stream + (rx/with-latest-from profile) + (rx/map (fn [result] + (let [event (aget result 0) + profile-id (aget result 1) + type (ptk/type event) + impl-fn (get events type)] + (when (fn? impl-fn) + (some-> (impl-fn event) + (update :profile-id #(or % profile-id))))))) + (rx/filter :profile-id) + (rx/map (fn [event] + (let [session* (or @session (dt/now)) + context (-> @context + (d/merge (:context event)) + (assoc :session session*))] + (swap! session (constantly session*)) + (-> event + (assoc :timestamp (dt/now)) + (assoc :context context))))) + (rx/share))] + (->> source + (rx/switch-map #(rx/timer (inst-ms session-timeout))) + (rx/subs #(reset! session nil))) + + (->> source + (rx/subs (fn [event] + (swap! buffer append-to-buffer event))))))))) + +(defmethod ptk/resolve ::initialize + [_ params] + (if cf/analytics + (initialize) + (ptk/data-event ::initialize params))) From 4018e4df7969cbf44d34c9641237d4eef5decfb3 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 4 May 2021 15:19:07 +0200 Subject: [PATCH 025/135] :recycle: Refactor storage namespace (frontend). --- frontend/src/app/util/storage.cljs | 81 +++++++++--------------------- 1 file changed, 25 insertions(+), 56 deletions(-) diff --git a/frontend/src/app/util/storage.cljs b/frontend/src/app/util/storage.cljs index e88dc656f..b03c7ea61 100644 --- a/frontend/src/app/util/storage.cljs +++ b/frontend/src/app/util/storage.cljs @@ -19,65 +19,34 @@ [v] (ex/ignoring (t/decode v))) -(def local - {:get #(decode (.getItem ^js js/localStorage (name %))) - :set #(.setItem ^js js/localStorage (name %1) (t/encode %2))}) - -(def session - {:get #(decode (.getItem ^js js/sessionStorage (name %))) - :set #(.setItem ^js js/sessionStorage (name %1) (t/encode %2))}) (defn- persist - [alias storage value] - (when-not (is-worker?) - (tm/schedule-on-idle - (fn [] ((:set storage) alias value))))) + [storage prev curr] + (run! (fn [key] + (let [prev* (get prev key) + curr* (get curr key)] + (when (not= curr* prev*) + (tm/schedule-on-idle + #(if (some? curr*) + (.setItem ^js storage (t/encode key) (t/encode curr*)) + (.removeItem ^js storage (t/encode key))))))) + + (into #{} (concat (keys curr) + (keys prev))))) (defn- load - [alias storage] - (when-not (is-worker?) - ((:get storage) alias))) - -(defn- make-storage - [alias storage] - (let [data (atom (load alias storage))] - (add-watch data :sub #(persist alias storage %4)) - (reify - Object - (toString [_] - (str "Storage" (pr-str @data))) - - ICounted - (-count [_] - (count @data)) - - ISeqable - (-seq [_] - (seq @data)) - - IReset - (-reset! [self newval] - (reset! data newval)) - - ISwap - (-swap! [self f] - (swap! data f)) - (-swap! [self f x] - (swap! data f x)) - (-swap! [self f x y] - (swap! data f x y)) - (-swap! [self f x y more] - (apply swap! data f x y more)) - - ILookup - (-lookup [_ key] - (get @data key nil)) - (-lookup [_ key not-found] - (get @data key not-found))))) + [storage] + (let [len (.-length ^js storage)] + (reduce (fn [res index] + (let [key (.key ^js storage index) + val (.getItem ^js storage key)] + (try + (assoc res (t/decode key) (t/decode val)) + (catch :default e + res)))) + {} + (range len)))) -(defonce storage - (make-storage "app" local)) - -(defonce cache - (make-storage "cache" session)) +(defonce storage (atom (load js/localStorage))) +(add-watch storage :persistence #(persist js/localStorage %3 %4)) From 6dbabf29354aa0707de66f7962e552d685f491ce Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 4 May 2021 15:18:59 +0200 Subject: [PATCH 026/135] :recycle: Refactor application initialization. --- frontend/src/app/main.cljs | 45 ++-- frontend/src/app/main/data/auth.cljs | 205 ---------------- frontend/src/app/main/data/dashboard.cljs | 61 +++-- frontend/src/app/main/data/users.cljs | 220 +++++++++++++++++- frontend/src/app/main/data/workspace.cljs | 33 +-- frontend/src/app/main/repo.cljs | 2 +- frontend/src/app/main/store.cljs | 29 +-- frontend/src/app/main/ui.cljs | 6 +- frontend/src/app/main/ui/auth.cljs | 2 - frontend/src/app/main/ui/auth/login.cljs | 33 ++- frontend/src/app/main/ui/auth/recovery.cljs | 14 +- .../app/main/ui/auth/recovery_request.cljs | 4 +- frontend/src/app/main/ui/auth/register.cljs | 5 +- .../src/app/main/ui/auth/verify_token.cljs | 6 +- .../src/app/main/ui/dashboard/comments.cljs | 1 - .../src/app/main/ui/dashboard/sidebar.cljs | 7 +- .../app/main/ui/settings/change_email.cljs | 1 - .../app/main/ui/settings/delete_account.cljs | 3 +- .../src/app/main/ui/settings/sidebar.cljs | 4 +- frontend/src/app/main/ui/static.cljs | 18 +- frontend/src/app/main/ui/viewer/header.cljs | 2 + .../main/ui/workspace/sidebar/sitemap.cljs | 8 +- frontend/src/app/util/i18n.cljs | 2 +- frontend/src/app/util/router.cljs | 47 ++-- frontend/src/app/util/theme.cljs | 2 +- 25 files changed, 392 insertions(+), 368 deletions(-) delete mode 100644 frontend/src/app/main/data/auth.cljs diff --git a/frontend/src/app/main.cljs b/frontend/src/app/main.cljs index e80e545f8..dc2a58f96 100644 --- a/frontend/src/app/main.cljs +++ b/frontend/src/app/main.cljs @@ -9,7 +9,7 @@ [app.common.spec :as us] [app.common.uuid :as uuid] [app.config :as cfg] - [app.main.data.auth :as da] + [app.main.data.events :as ev] [app.main.data.messages :as dm] [app.main.data.users :as du] [app.main.repo :as rp] @@ -28,6 +28,7 @@ [app.util.timers :as ts] [beicon.core :as rx] [cljs.spec.alpha :as s] + [potok.core :as ptk] [rumext.alpha :as mf])) (log/initialize!) @@ -52,18 +53,16 @@ (defn on-navigate [router path] (let [match (match-path router path) - profile (:profile storage) + profile (:profile @storage) nopath? (or (= path "") (= path "/")) authed? (and (not (nil? profile)) (not= (:id profile) uuid/zero))] (cond (and nopath? authed? (nil? match)) - (->> (rp/query! :profile) - (rx/subs (fn [profile] - (if (not= uuid/zero profile) - (st/emit! (rt/nav :dashboard-projects {:team-id (da/current-team-id profile)})) - (st/emit! (rt/nav :auth-login)))))) + (if (not= uuid/zero profile) + (st/emit! (rt/nav :dashboard-projects {:team-id (du/get-current-team-id profile)})) + (st/emit! (rt/nav :auth-login))) (and (not authed?) (nil? match)) (st/emit! (rt/nav :auth-login)) @@ -72,23 +71,42 @@ (st/emit! (dm/assign-exception {:type :not-found})) :else - (st/emit! #(assoc % :route match))))) + (st/emit! (rt/navigated match))))) (defn init-ui [] (mf/mount (mf/element ui/app) (dom/get-element "app")) (mf/mount (mf/element modal) (dom/get-element "modal"))) + +(defn initialize + [] + (letfn [(on-profile [profile] + (rx/of (rt/initialize-router ui/routes) + (rt/initialize-history on-navigate)))] + (ptk/reify ::initialize + ptk/UpdateEvent + (update [_ state] + (assoc state :session-id (uuid/next))) + + ptk/WatchEvent + (watch [_ state stream] + (rx/merge + (rx/of + (ptk/event ::ev/initialize) + (du/initialize-profile)) + (->> stream + (rx/filter (ptk/type? ::du/profile-fetched)) + (rx/take 1) + (rx/map deref) + (rx/mapcat on-profile))))))) + (defn ^:export init [] (i18n/init! cfg/translations) (theme/init! cfg/themes) - (st/init) (init-ui) - - (st/emit! (rt/initialize-router ui/routes) - (rt/initialize-history on-navigate) - (du/fetch-profile-and-teams))) + (st/emit! (initialize))) (defn reinit [] @@ -103,3 +121,4 @@ (defn ^:dev/after-load after-load [] (reinit)) + diff --git a/frontend/src/app/main/data/auth.cljs b/frontend/src/app/main/data/auth.cljs deleted file mode 100644 index 694ff93b9..000000000 --- a/frontend/src/app/main/data/auth.cljs +++ /dev/null @@ -1,205 +0,0 @@ -;; 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) UXBOX Labs SL - -(ns app.main.data.auth - (:require - [app.common.spec :as us] - [app.config :as cf] - [app.main.data.messages :as dm] - [app.main.data.modal :as modal] - [app.main.data.users :as du] - [app.main.repo :as rp] - [app.main.store :refer [initial-state]] - [app.util.i18n :as i18n :refer [tr]] - [app.util.router :as rt] - [app.util.storage :refer [storage]] - [beicon.core :as rx] - [cljs.spec.alpha :as s] - [potok.core :as ptk])) - -(s/def ::email ::us/email) -(s/def ::password string?) -(s/def ::fullname string?) - -;; --- Current team for a profile - -(defn current-team-id - [profile] - (let [team-id (:current-team-id storage)] - (or team-id (:default-team-id profile)))) - -(defn set-current-team! - [team-id] - (swap! storage assoc :current-team-id team-id)) - -;; --- Logged In - -(defn logged-in - [profile] - (ptk/reify ::logged-in - ptk/WatchEvent - (watch [this state stream] - (let [team-id (current-team-id profile) - props (:props profile)] - (rx/concat - (rx/of (du/profile-fetched profile)) - (rx/of (du/fetch-teams)) - (rx/of (rt/nav' :dashboard-projects {:team-id team-id})) - (when-not (:onboarding-viewed props) - (->> (rx/of (modal/show {:type :onboarding})) - (rx/delay 1000)))))))) - -;; --- Login - -(s/def ::login-params - (s/keys :req-un [::email ::password])) - -(defn login - [{:keys [email password] :as data}] - (us/verify ::login-params data) - (ptk/reify ::login - ptk/UpdateEvent - (update [_ state] - (merge state (dissoc initial-state :route :router))) - - ptk/WatchEvent - (watch [this state s] - (let [{:keys [on-error on-success] - :or {on-error identity - on-success identity}} (meta data) - params {:email email - :password password - :scope "webapp"}] - (->> (rx/timer 100) - (rx/mapcat #(rp/mutation :login params)) - (rx/tap on-success) - (rx/catch on-error) - (rx/map logged-in)))))) - -(defn login-from-token - [{:keys [profile] :as tdata}] - (ptk/reify ::login-from-token - ptk/UpdateEvent - (update [_ state] - (merge state (dissoc initial-state :route :router))) - - ptk/WatchEvent - (watch [this state s] - (rx/of (logged-in profile))))) - -;; --- Logout - -(def clear-user-data - (ptk/reify ::clear-user-data - ptk/UpdateEvent - (update [_ state] - (select-keys state [:route :router :session-id :history])) - - ptk/WatchEvent - (watch [_ state s] - (->> (rp/mutation :logout) - (rx/catch (constantly (rx/empty))) - (rx/ignore))) - - ptk/EffectEvent - (effect [_ state s] - (reset! storage {}) - (i18n/reset-locale)))) - -(defn logout - [] - (ptk/reify ::logout - ptk/WatchEvent - (watch [_ state stream] - (rx/of clear-user-data - (rt/nav :auth-login))))) - -;; --- Register - -(s/def ::invitation-token ::us/not-empty-string) - -(s/def ::register - (s/keys :req-un [::fullname ::password ::email] - :opt-un [::invitation-token])) - -(defn register - "Create a register event instance." - [data] - (s/assert ::register data) - (ptk/reify ::register - ptk/WatchEvent - (watch [_ state stream] - (let [{:keys [on-error on-success] - :or {on-error identity - on-success identity}} (meta data)] - (->> (rp/mutation :register-profile data) - (rx/tap on-success) - (rx/catch on-error)))))) - - -;; --- Request Account Deletion - -(defn request-account-deletion - [params] - (ptk/reify ::request-account-deletion - ptk/WatchEvent - (watch [_ state stream] - (let [{:keys [on-error on-success] - :or {on-error identity - on-success identity}} (meta params)] - (->> (rp/mutation :delete-profile {}) - (rx/tap on-success) - (rx/catch on-error)))))) - -;; --- Recovery Request - -(s/def ::recovery-request - (s/keys :req-un [::email])) - -(defn request-profile-recovery - [data] - (us/verify ::recovery-request data) - (ptk/reify ::request-profile-recovery - ptk/WatchEvent - (watch [_ state stream] - (let [{:keys [on-error on-success] - :or {on-error identity - on-success identity}} (meta data)] - - (->> (rp/mutation :request-profile-recovery data) - (rx/tap on-success) - (rx/catch on-error)))))) - -;; --- Recovery (Password) - -(s/def ::token string?) -(s/def ::recover-profile - (s/keys :req-un [::password ::token])) - -(defn recover-profile - [{:keys [token password] :as data}] - (us/verify ::recover-profile data) - (ptk/reify ::recover-profile - ptk/WatchEvent - (watch [_ state stream] - (let [{:keys [on-error on-success] - :or {on-error identity - on-success identity}} (meta data)] - (->> (rp/mutation :recover-profile data) - (rx/tap on-success) - (rx/catch (fn [err] - (on-error) - (rx/empty)))))))) - - -;; --- Create Demo Profile - -(def create-demo-profile - (ptk/reify ::create-demo-profile - ptk/WatchEvent - (watch [_ state stream] - (->> (rp/mutation :create-demo-profile {}) - (rx/map login))))) diff --git a/frontend/src/app/main/data/dashboard.cljs b/frontend/src/app/main/data/dashboard.cljs index a09a1f1d4..40f09051f 100644 --- a/frontend/src/app/main/data/dashboard.cljs +++ b/frontend/src/app/main/data/dashboard.cljs @@ -11,6 +11,7 @@ [app.common.spec :as us] [app.common.uuid :as uuid] [app.main.repo :as rp] + [app.main.data.events :as ev] [app.main.data.users :as du] [app.util.i18n :as i18n :refer [tr]] [app.util.router :as rt] @@ -242,10 +243,12 @@ (watch [_ state stream] (let [{:keys [on-success on-error] :or {on-success identity - on-error identity}} (meta params)] + on-error rx/throw}} (meta params)] (->> (rp/mutation! :create-team {:name name}) (rx/tap on-success) - (rx/catch on-error)))))) + (rx/catch on-error) + (rx/map (fn [team] + (ptk/event ::ev/event {::ev/name "create-team" :id (:id team)})))))))) (defn update-team [{:keys [id name] :as params}] @@ -316,7 +319,7 @@ (watch [_ state stream] (let [{:keys [on-success on-error] :or {on-success identity - on-error identity}} (meta params)] + on-error rx/throw}} (meta params)] (rx/concat (when (uuid? reassign-to) (->> (rp/mutation! :update-team-member-role {:team-id id @@ -337,7 +340,7 @@ (watch [_ state stream] (let [{:keys [on-success on-error] :or {on-success identity - on-error identity}} (meta params)] + on-error rx/throw}} (meta params)] (->> (rp/mutation! :invite-team-member params) (rx/tap on-success) (rx/catch on-error)))))) @@ -350,29 +353,38 @@ (watch [_ state stream] (let [{:keys [on-success on-error] :or {on-success identity - on-error identity}} (meta params)] + on-error rx/throw}} (meta params)] (->> (rp/mutation! :delete-team {:id id}) (rx/tap on-success) (rx/catch on-error)))))) + +(defn- project-created + [{:keys [id team-id] :as project}] + (ptk/reify ::project-created + IDeref + (-deref [_] project) + + ptk/UpdateEvent + (update [_ state] + (-> state + (assoc-in [:projects team-id id] project) + (assoc-in [:dashboard-local :project-for-edit] id))))) + (defn create-project [{:keys [team-id] :as params}] (us/assert ::us/uuid team-id) - (letfn [(created [project state] - (-> state - (assoc-in [:projects team-id (:id project)] project) - (assoc-in [:dashboard-local :project-for-edit] (:id project))))] - (ptk/reify ::create-project - ptk/WatchEvent - (watch [_ state stream] - (let [name (name (gensym "New Project ")) - {:keys [on-success on-error] - :or {on-success identity - on-error identity}} (meta params)] - (->> (rp/mutation! :create-project {:name name :team-id team-id}) - (rx/tap on-success) - (rx/map #(partial created %)) - (rx/catch on-error))))))) + (ptk/reify ::create-project + ptk/WatchEvent + (watch [_ state stream] + (let [name (name (gensym "New Project ")) + {:keys [on-success on-error] + :or {on-success identity + on-error rx/throw}} (meta params)] + (->> (rp/mutation! :create-project {:name name :team-id team-id}) + (rx/tap on-success) + (rx/catch on-error) + (rx/map project-created)))))) (defn duplicate-project [{:keys [id name] :as params}] @@ -532,20 +544,23 @@ (watch [_ state stream] (let [{:keys [on-success on-error] :or {on-success identity - on-error identity}} (meta params) + on-error rx/throw}} (meta params) name (name (gensym "New File ")) params (assoc params :name name)] (->> (rp/mutation! :create-file params) (rx/tap on-success) - (rx/map file-created) - (rx/catch on-error)))))) + (rx/catch on-error) + (rx/map file-created)))))) (defn file-created [{:keys [project-id id] :as file}] (us/verify ::file file) (ptk/reify ::file-created + IDeref + (-deref [_] file) + ptk/UpdateEvent (update [_ state] (-> state diff --git a/frontend/src/app/main/data/users.cljs b/frontend/src/app/main/data/users.cljs index 283a9bad9..d2f47b53b 100644 --- a/frontend/src/app/main/data/users.cljs +++ b/frontend/src/app/main/data/users.cljs @@ -10,7 +10,9 @@ [app.common.data :as d] [app.common.spec :as us] [app.common.uuid :as uuid] + [app.main.data.events :as ev] [app.main.data.media :as di] + [app.main.data.modal :as modal] [app.main.data.messages :as dm] [app.main.repo :as rp] [app.main.store :as st] @@ -24,7 +26,7 @@ [cuerdas.core :as str] [potok.core :as ptk])) -;; --- Common Specs +;; --- COMMON SPECS (s/def ::id ::us/uuid) (s/def ::fullname ::us/string) @@ -45,6 +47,20 @@ ::lang ::theme])) +;; --- HELPERS + +(defn get-current-team-id + [profile] + (let [team-id (::current-team-id @storage)] + (or team-id (:default-team-id profile)))) + +(defn set-current-team! + [team-id] + (swap! storage assoc ::current-team-id team-id)) + + +;; --- EVENT: fetch-teams + (defn fetch-teams [] (letfn [(on-fetched [state data] @@ -57,25 +73,26 @@ (rx/map (fn [data] #(on-fetched % data)))))))) (defn profile-fetched - [{:keys [fullname id] :as data}] - (us/verify ::profile data) + [{:keys [id] :as profile}] + (us/verify ::profile profile) (ptk/reify ::profile-fetched IDeref - (-deref [_] data) + (-deref [_] profile) ptk/UpdateEvent (update [_ state] (-> state (assoc :profile-id id) - (assoc :profile data))) + (assoc :profile profile))) ptk/EffectEvent (effect [_ state stream] (let [profile (:profile state)] - (swap! storage assoc :profile profile) - (i18n/set-locale! (:lang profile)) - (some-> (:theme profile) - (theme/set-current-theme!)))))) + (when (not= uuid/zero (:id profile)) + (swap! storage assoc :profile profile) + (i18n/set-locale! (:lang profile)) + (some-> (:theme profile) + (theme/set-current-theme!))))))) ;; --- Fetch Profile @@ -87,12 +104,14 @@ (->> (rp/query! :profile) (rx/map profile-fetched))))) -(defn fetch-profile-and-teams +;; --- EVENT: INITIALIZE PROFILE + +(defn initialize-profile "Event used mainly on application bootstrap; it fetches the profile and if and only if the fetched profile corresponds to an authenticated user; proceed to fetch teams." [] - (ptk/reify ::fetch-profile-and-teams + (ptk/reify ::initialize-profile ptk/WatchEvent (watch [_ state stream] (rx/merge @@ -104,7 +123,117 @@ (rx/mapcat (fn [profile] (if (= uuid/zero (:id profile)) (rx/empty) - (rx/of (fetch-teams)))))))))) + (rx/of + (fetch-teams) + (ptk/event ::ev/event + {::ev/type "identify" + ::ev/name "page-load"})))))))))) + + +;; --- EVENT: login + +(defn- logged-in + [profile] + (ptk/reify ::logged-in + IDeref + (-deref [_] profile) + + ptk/WatchEvent + (watch [this state stream] + (let [team-id (get-current-team-id profile) + profile (with-meta profile + {::ev/source "login"})] + (->> (rx/concat + (rx/of (profile-fetched profile) + (fetch-teams) + (rt/nav' :dashboard-projects {:team-id team-id})) + (when-not (get-in profile [:props :onboarding-viewed]) + (->> (rx/of (modal/show {:type :onboarding})) + (rx/delay 1000)))) + (rx/observe-on :async)))))) + +(s/def ::login-params + (s/keys :req-un [::email ::password])) + +(defn login + [{:keys [email password] :as data}] + (us/verify ::login-params data) + (ptk/reify ::login + ptk/WatchEvent + (watch [this state s] + (let [{:keys [on-error on-success] + :or {on-error rx/throw + on-success identity}} (meta data) + params {:email email + :password password + :scope "webapp"}] + (->> (rx/timer 100) + (rx/mapcat #(rp/mutation :login params)) + (rx/tap on-success) + (rx/catch on-error) + (rx/map (fn [profile] + (with-meta profile + {::ev/source "login"}))) + (rx/map logged-in)))))) + +(defn login-from-token + [{:keys [profile] :as tdata}] + (ptk/reify ::login-from-token + ptk/WatchEvent + (watch [this state s] + (rx/of (logged-in + (with-meta profile + {::ev/source "login-with-token"})))))) + +;; --- EVENT: logout + +(defn logged-out + [] + (ptk/reify ::logged-out + ptk/UpdateEvent + (update [_ state] + (select-keys state [:route :router :session-id :history])) + + ptk/WatchEvent + (watch [_ state s] + (rx/of (rt/nav :auth-login))) + + ptk/EffectEvent + (effect [_ state s] + (reset! storage {}) + (i18n/reset-locale)))) + +(defn logout + [] + (ptk/reify ::logout + ptk/WatchEvent + (watch [_ state s] + (->> (rp/mutation :logout) + (rx/delay-at-least 300) + (rx/catch (constantly (rx/of 1))) + (rx/map logged-out))))) + +;; --- EVENT: register + +(s/def ::invitation-token ::us/not-empty-string) + +(s/def ::register + (s/keys :req-un [::fullname ::password ::email] + :opt-un [::invitation-token])) + +(defn register + "Create a register event instance." + [data] + (s/assert ::register data) + (ptk/reify ::register + ptk/WatchEvent + (watch [_ state stream] + (let [{:keys [on-error on-success] + :or {on-error identity + on-success identity}} (meta data)] + (->> (rp/mutation :register-profile data) + (rx/tap on-success) + (rx/catch on-error)))))) ;; --- Update Profile @@ -231,3 +360,70 @@ (watch [_ state stream] (->> (rp/query :team-users {:team-id team-id}) (rx/map #(partial fetched %))))))) + +;; --- EVENT: request-account-deletion + +(defn request-account-deletion + [params] + (ptk/reify ::request-account-deletion + ptk/WatchEvent + (watch [_ state stream] + (let [{:keys [on-error on-success] + :or {on-error rx/throw + on-success identity}} (meta params)] + (->> (rp/mutation :delete-profile {}) + (rx/tap on-success) + (rx/catch on-error)))))) + + +;; --- EVENT: request-profile-recovery + +(s/def ::request-profile-recovery + (s/keys :req-un [::email])) + +(defn request-profile-recovery + [data] + (us/verify ::request-profile-recovery data) + (ptk/reify ::request-profile-recovery + ptk/WatchEvent + (watch [_ state stream] + (let [{:keys [on-error on-success] + :or {on-error rx/throw + on-success identity}} (meta data)] + + (->> (rp/mutation :request-profile-recovery data) + (rx/tap on-success) + (rx/catch on-error)))))) + +;; --- EVENT: recover-profile (Password) + +(s/def ::token string?) +(s/def ::recover-profile + (s/keys :req-un [::password ::token])) + +(defn recover-profile + [{:keys [token password] :as data}] + (us/verify ::recover-profile data) + (ptk/reify ::recover-profile + ptk/WatchEvent + (watch [_ state stream] + (let [{:keys [on-error on-success] + :or {on-error rx/throw + on-success identity}} (meta data)] + (->> (rp/mutation :recover-profile data) + (rx/tap on-success) + (rx/catch (fn [err] + (on-error) + (rx/empty)))))))) + +;; --- EVENT: crete-demo-profile + +(defn create-demo-profile + [] + (ptk/reify ::create-demo-profile + ptk/WatchEvent + (watch [_ state stream] + (->> (rp/mutation :create-demo-profile {}) + (rx/map login))))) + + diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index d87f453d6..ff774f748 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -249,21 +249,26 @@ ;; Workspace Page CRUD ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(def create-empty-page - (ptk/reify ::create-empty-page - ptk/WatchEvent - (watch [this state stream] - (let [id (uuid/next) - pages (get-in state [:workspace-data :pages-index]) - unames (dwc/retrieve-used-names pages) - name (dwc/generate-unique-name unames "Page") +(defn create-page + [{:keys [file-id]}] + (let [id (uuid/next)] + (ptk/reify ::create-page + IDeref + (-deref [_] + {:id id :file-id file-id}) - rchange {:type :add-page - :id id - :name name} - uchange {:type :del-page - :id id}] - (rx/of (dch/commit-changes [rchange] [uchange] {:commit-local? true})))))) + ptk/WatchEvent + (watch [this state stream] + (let [pages (get-in state [:workspace-data :pages-index]) + unames (dwc/retrieve-used-names pages) + name (dwc/generate-unique-name unames "Page") + + rchange {:type :add-page + :id id + :name name} + uchange {:type :del-page + :id id}] + (rx/of (dch/commit-changes [rchange] [uchange] {:commit-local? true}))))))) (defn duplicate-page [page-id] (ptk/reify ::duplicate-page diff --git a/frontend/src/app/main/repo.cljs b/frontend/src/app/main/repo.cljs index 2a35a53f1..8b5980ed5 100644 --- a/frontend/src/app/main/repo.cljs +++ b/frontend/src/app/main/repo.cljs @@ -15,7 +15,7 @@ [beicon.core :as rx] [cuerdas.core :as str])) -(defn- handle-response +(defn handle-response [{:keys [status body] :as response}] (cond (= 204 status) diff --git a/frontend/src/app/main/store.cljs b/frontend/src/app/main/store.cljs index db162221f..6a4ea6534 100644 --- a/frontend/src/app/main/store.cljs +++ b/frontend/src/app/main/store.cljs @@ -7,16 +7,13 @@ (ns app.main.store (:require-macros [app.main.store]) (:require - [beicon.core :as rx] - [okulary.core :as l] - [potok.core :as ptk] - [cuerdas.core :as str] [app.common.data :as d] [app.common.pages :as cp] - [app.common.pages.helpers :as helpers] - [app.common.uuid :as uuid] - [app.util.storage :refer [storage]] - [app.util.debug :refer [debug? debug-exclude-events logjs]])) + [app.util.debug :refer [debug? debug-exclude-events logjs]] + [beicon.core :as rx] + [cuerdas.core :as str] + [okulary.core :as l] + [potok.core :as ptk])) (enable-console-print!) @@ -26,12 +23,6 @@ (defonce state (ptk/store {:resolve ptk/resolve})) (defonce stream (ptk/input-stream state)) -(defn ^boolean is-logged? - [pdata] - (and (some? pdata) - (uuid? (:id pdata)) - (not= uuid/zero (:id pdata)))) - (when *assert* (defonce debug-subscription (->> stream @@ -53,16 +44,6 @@ [& events] #(apply ptk/emit! state events)) -(def initial-state - {:session-id (uuid/next) - :profile (:profile storage)}) - -(defn init - "Initialize the state materialization." - ([] (init {})) - ([props] - (emit! #(merge % initial-state props)))) - (defn ^:export dump-state [] (logjs "state" @state)) diff --git a/frontend/src/app/main/ui.cljs b/frontend/src/app/main/ui.cljs index 9c7d35f7e..9b2c772a5 100644 --- a/frontend/src/app/main/ui.cljs +++ b/frontend/src/app/main/ui.cljs @@ -12,8 +12,9 @@ [app.common.spec :as us] [app.common.uuid :as uuid] [app.config :as cfg] - [app.main.data.auth :refer [logout]] + [app.main.data.users :as du] [app.main.data.messages :as dm] + [app.main.data.events :as ev] [app.main.refs :as refs] [app.main.store :as st] [app.main.ui.auth :refer [auth]] @@ -106,6 +107,7 @@ (mf/defc main-page {::mf/wrap [#(mf/catch % {:fallback on-main-error})]} [{:keys [route] :as props}] + [:& (mf/provider ctx/current-route) {:value route} (case (get-in route [:data :name]) (:auth-login @@ -214,7 +216,7 @@ ;; all profile data and redirect the user to the login page. (defmethod ptk/handle-error :authentication [error] - (ts/schedule (st/emitf (logout)))) + (ts/schedule (st/emitf (du/logout)))) ;; Error that happens on an active bussines model validation does not ;; passes an validation (example: profile can't leave a team). From diff --git a/frontend/src/app/main/ui/auth.cljs b/frontend/src/app/main/ui/auth.cljs index f5c01f034..c5f9cf846 100644 --- a/frontend/src/app/main/ui/auth.cljs +++ b/frontend/src/app/main/ui/auth.cljs @@ -7,7 +7,6 @@ (ns app.main.ui.auth (:require [app.common.uuid :as uuid] - [app.main.data.auth :as da] [app.main.data.messages :as dm] [app.main.data.users :as du] [app.main.repo :as rp] @@ -19,7 +18,6 @@ [app.main.ui.icons :as i] [app.util.dom :as dom] [app.util.forms :as fm] - [app.util.storage :refer [cache]] [app.util.i18n :as i18n :refer [t]] [app.util.router :as rt] [app.util.timers :as ts] diff --git a/frontend/src/app/main/ui/auth/login.cljs b/frontend/src/app/main/ui/auth/login.cljs index 5dd40cecc..3b809e986 100644 --- a/frontend/src/app/main/ui/auth/login.cljs +++ b/frontend/src/app/main/ui/auth/login.cljs @@ -6,22 +6,22 @@ (ns app.main.ui.auth.login (:require - [cljs.spec.alpha :as s] - [beicon.core :as rx] - [rumext.alpha :as mf] - [app.config :as cfg] [app.common.spec :as us] - [app.main.ui.icons :as i] - [app.main.data.auth :as da] + [app.config :as cfg] + [app.main.data.messages :as dm] + [app.main.data.users :as du] [app.main.repo :as rp] [app.main.store :as st] - [app.main.ui.messages :as msgs] - [app.main.data.messages :as dm] [app.main.ui.components.forms :as fm] - [app.util.object :as obj] + [app.main.ui.icons :as i] + [app.main.ui.messages :as msgs] [app.util.dom :as dom] [app.util.i18n :refer [tr t]] - [app.util.router :as rt])) + [app.util.object :as obj] + [app.util.router :as rt] + [beicon.core :as rx] + [cljs.spec.alpha :as s] + [rumext.alpha :as mf])) (s/def ::email ::us/email) (s/def ::password ::us/not-empty-string) @@ -45,7 +45,7 @@ (rx/subs (fn [profile] (if-let [token (:invitation-token profile)] (st/emit! (rt/nav :auth-verify-token {} {:token token})) - (st/emit! (da/logged-in profile)))) + (st/emit! (du/login-from-token {:profile profile})))) (fn [{:keys [type code] :as error}] (cond (and (= type :restriction) @@ -72,7 +72,7 @@ (reset! error nil) (let [params (with-meta (:clean-data @form) {:on-error on-error})] - (st/emit! (da/login params))))) + (st/emit! (du/login params))))) on-submit-ldap (mf/use-callback @@ -149,15 +149,13 @@ [:div.links [:div.link-entry - [:a {:on-click #(st/emit! (rt/nav :auth-recovery-request)) - :tab-index "5"} + [:a {:on-click #(st/emit! (rt/nav :auth-recovery-request))} (tr "auth.forgot-password")]] (when cfg/registration-enabled [:div.link-entry [:span (tr "auth.register") " "] - [:a {:on-click #(st/emit! (rt/nav :auth-register {} params)) - :tab-index "6"} + [:a {:on-click #(st/emit! (rt/nav :auth-register {} params))} (tr "auth.register-submit")]])] [:& login-buttons {:params params}] @@ -166,6 +164,5 @@ [:div.links.demo [:div.link-entry [:span (tr "auth.create-demo-profile") " "] - [:a {:on-click (st/emitf da/create-demo-profile) - :tab-index "6"} + [:a {:on-click (st/emitf (du/create-demo-profile))} (tr "auth.create-demo-account")]]])]]) diff --git a/frontend/src/app/main/ui/auth/recovery.cljs b/frontend/src/app/main/ui/auth/recovery.cljs index f437b7fe5..704005986 100644 --- a/frontend/src/app/main/ui/auth/recovery.cljs +++ b/frontend/src/app/main/ui/auth/recovery.cljs @@ -6,18 +6,18 @@ (ns app.main.ui.auth.recovery (:require - [cljs.spec.alpha :as s] - [cuerdas.core :as str] - [rumext.alpha :as mf] - [app.main.ui.icons :as i] [app.common.spec :as us] - [app.main.data.auth :as uda] [app.main.data.messages :as dm] + [app.main.data.users :as du] [app.main.store :as st] [app.main.ui.components.forms :as fm] + [app.main.ui.icons :as i] [app.util.dom :as dom] [app.util.i18n :as i18n :refer [t tr]] - [app.util.router :as rt])) + [app.util.router :as rt] + [cljs.spec.alpha :as s] + [cuerdas.core :as str] + [rumext.alpha :as mf])) (s/def ::password-1 ::us/not-empty-string) (s/def ::password-2 ::us/not-empty-string) @@ -54,7 +54,7 @@ :on-success on-success} params {:token (get-in @form [:clean-data :token]) :password (get-in @form [:clean-data :password-2])}] - (st/emit! (uda/recover-profile (with-meta params mdata))))) + (st/emit! (du/recover-profile (with-meta params mdata))))) (mf/defc recovery-form [{:keys [locale params] :as props}] diff --git a/frontend/src/app/main/ui/auth/recovery_request.cljs b/frontend/src/app/main/ui/auth/recovery_request.cljs index 2d8ae58d1..637bbc852 100644 --- a/frontend/src/app/main/ui/auth/recovery_request.cljs +++ b/frontend/src/app/main/ui/auth/recovery_request.cljs @@ -7,8 +7,8 @@ (ns app.main.ui.auth.recovery-request (:require [app.common.spec :as us] - [app.main.data.auth :as uda] [app.main.data.messages :as dm] + [app.main.data.users :as du] [app.main.store :as st] [app.main.ui.components.forms :as fm] [app.main.ui.icons :as i] @@ -59,7 +59,7 @@ params (with-meta cdata {:on-success #(on-success cdata %) :on-error #(on-error cdata %)})] - (st/emit! (uda/request-profile-recovery params)))))] + (st/emit! (du/request-profile-recovery params)))))] [:& fm/form {:on-submit on-submit :form form} diff --git a/frontend/src/app/main/ui/auth/register.cljs b/frontend/src/app/main/ui/auth/register.cljs index a8321a6a0..97c1aec2e 100644 --- a/frontend/src/app/main/ui/auth/register.cljs +++ b/frontend/src/app/main/ui/auth/register.cljs @@ -8,7 +8,6 @@ (:require [app.common.spec :as us] [app.config :as cfg] - [app.main.data.auth :as da] [app.main.data.users :as du] [app.main.data.messages :as dm] [app.main.store :as st] @@ -93,7 +92,7 @@ (let [data (with-meta (:clean-data @form) {:on-error (partial on-error form) :on-success (partial on-success form)})] - (st/emit! (da/register data)))))] + (st/emit! (du/register data)))))] [:& fm/form {:on-submit on-submit @@ -158,7 +157,7 @@ (when cfg/allow-demo-users [:div.link-entry [:span (tr "auth.create-demo-profile") " "] - [:a {:on-click #(st/emit! da/create-demo-profile) + [:a {:on-click #(st/emit! (du/create-demo-profile)) :tab-index "5"} (tr "auth.create-demo-account")]]) diff --git a/frontend/src/app/main/ui/auth/verify_token.cljs b/frontend/src/app/main/ui/auth/verify_token.cljs index a926cf85b..bba45581a 100644 --- a/frontend/src/app/main/ui/auth/verify_token.cljs +++ b/frontend/src/app/main/ui/auth/verify_token.cljs @@ -7,7 +7,6 @@ (ns app.main.ui.auth.verify-token (:require [app.common.uuid :as uuid] - [app.main.data.auth :as da] [app.main.data.messages :as dm] [app.main.data.users :as du] [app.main.repo :as rp] @@ -21,7 +20,6 @@ [app.util.forms :as fm] [app.util.i18n :as i18n :refer [tr]] [app.util.router :as rt] - [app.util.storage :refer [cache]] [app.util.timers :as ts] [beicon.core :as rx] [cljs.spec.alpha :as s] @@ -33,7 +31,7 @@ [data] (let [msg (tr "dashboard.notifications.email-verified-successfully")] (ts/schedule 100 #(st/emit! (dm/success msg))) - (st/emit! (da/login-from-token data)))) + (st/emit! (du/login-from-token data)))) (defmethod handle-token :change-email [data] @@ -44,7 +42,7 @@ (defmethod handle-token :auth [tdata] - (st/emit! (da/login-from-token tdata))) + (st/emit! (du/login-from-token tdata))) (defmethod handle-token :team-invitation [tdata] diff --git a/frontend/src/app/main/ui/dashboard/comments.cljs b/frontend/src/app/main/ui/dashboard/comments.cljs index 6eec7fc75..48703fdf2 100644 --- a/frontend/src/app/main/ui/dashboard/comments.cljs +++ b/frontend/src/app/main/ui/dashboard/comments.cljs @@ -10,7 +10,6 @@ [app.common.data :as d] [app.common.spec :as us] [app.config :as cfg] - [app.main.data.auth :as da] [app.main.data.dashboard :as dd] [app.main.data.workspace :as dw] [app.main.data.workspace.comments :as dwcm] diff --git a/frontend/src/app/main/ui/dashboard/sidebar.cljs b/frontend/src/app/main/ui/dashboard/sidebar.cljs index 459b7949d..b9dc8446e 100644 --- a/frontend/src/app/main/ui/dashboard/sidebar.cljs +++ b/frontend/src/app/main/ui/dashboard/sidebar.cljs @@ -9,7 +9,6 @@ [app.common.data :as d] [app.common.spec :as us] [app.config :as cfg] - [app.main.data.auth :as da] [app.main.data.comments :as dcm] [app.main.data.dashboard :as dd] [app.main.data.messages :as dm] @@ -215,7 +214,7 @@ team-selected (mf/use-callback (fn [team-id] - (da/set-current-team! team-id) + (du/set-current-team! team-id) (st/emit! (rt/nav :dashboard-projects {:team-id team-id}))))] [:ul.dropdown.teams-dropdown @@ -322,7 +321,7 @@ (mf/deps team profile) (fn [] (let [team-id (:default-team-id profile)] - (da/set-current-team! team-id) + (du/set-current-team! team-id) (st/emit! (modal/hide) (du/fetch-teams) (rt/nav :dashboard-projects {:team-id team-id}))))) @@ -548,7 +547,7 @@ [:li {:on-click (partial on-click :settings-password)} [:span.icon i/lock] [:span.text (tr "labels.password")]] - [:li {:on-click (partial on-click (da/logout))} + [:li {:on-click (partial on-click (du/logout))} [:span.icon i/exit] [:span.text (tr "labels.logout")]] diff --git a/frontend/src/app/main/ui/settings/change_email.cljs b/frontend/src/app/main/ui/settings/change_email.cljs index 36402814e..46726c87f 100644 --- a/frontend/src/app/main/ui/settings/change_email.cljs +++ b/frontend/src/app/main/ui/settings/change_email.cljs @@ -7,7 +7,6 @@ (ns app.main.ui.settings.change-email (:require [app.common.spec :as us] - [app.main.data.auth :as da] [app.main.data.messages :as dm] [app.main.data.modal :as modal] [app.main.data.users :as du] diff --git a/frontend/src/app/main/ui/settings/delete_account.cljs b/frontend/src/app/main/ui/settings/delete_account.cljs index abf29ccc5..fe3ef3c59 100644 --- a/frontend/src/app/main/ui/settings/delete_account.cljs +++ b/frontend/src/app/main/ui/settings/delete_account.cljs @@ -6,7 +6,6 @@ (ns app.main.ui.settings.delete-account (:require - [app.main.data.auth :as da] [app.main.data.messages :as dm] [app.main.data.modal :as modal] [app.main.data.users :as du] @@ -41,7 +40,7 @@ on-accept (mf/use-callback (st/emitf (modal/hide) - (da/request-account-deletion + (du/request-account-deletion (with-meta {} {:on-error on-error :on-success on-success}))))] diff --git a/frontend/src/app/main/ui/settings/sidebar.cljs b/frontend/src/app/main/ui/settings/sidebar.cljs index 83d4993d5..ed5347091 100644 --- a/frontend/src/app/main/ui/settings/sidebar.cljs +++ b/frontend/src/app/main/ui/settings/sidebar.cljs @@ -7,8 +7,8 @@ (ns app.main.ui.settings.sidebar (:require [app.config :as cf] - [app.main.data.auth :as da] [app.main.data.modal :as modal] + [app.main.data.users :as du] [app.main.store :as st] [app.main.ui.dashboard.sidebar :refer [profile-section]] [app.main.ui.icons :as i] @@ -26,7 +26,7 @@ go-dashboard (mf/use-callback (mf/deps profile) - (st/emitf (rt/nav :dashboard-projects {:team-id (da/current-team-id profile)}))) + (st/emitf (rt/nav :dashboard-projects {:team-id (du/get-current-team-id profile)}))) go-settings-profile (mf/use-callback diff --git a/frontend/src/app/main/ui/static.cljs b/frontend/src/app/main/ui/static.cljs index 86f002d21..0cd9c0b5a 100644 --- a/frontend/src/app/main/ui/static.cljs +++ b/frontend/src/app/main/ui/static.cljs @@ -6,21 +6,21 @@ (ns app.main.ui.static (:require - [cljs.spec.alpha :as s] - [rumext.alpha :as mf] - [app.main.ui.context :as ctx] - [app.main.data.auth :as da] [app.main.data.messages :as dm] - [app.main.store :as st] + [app.main.data.users :as du] [app.main.refs :as refs] - [cuerdas.core :as str] + [app.main.store :as st] + [app.main.ui.context :as ctx] + [app.main.ui.icons :as i] [app.util.i18n :refer [tr]] [app.util.router :as rt] - [app.main.ui.icons :as i])) + [cljs.spec.alpha :as s] + [cuerdas.core :as str] + [rumext.alpha :as mf])) (defn- go-to-dashboard [profile] - (let [team-id (da/current-team-id profile)] + (let [team-id (du/get-current-team-id profile)] (st/emit! (rt/nav :dashboard-projects {:team-id team-id})))) (mf/defc not-found @@ -38,7 +38,7 @@ [:div.sign-info [:span (tr "labels.not-found.auth-info") " " [:b (:email profile)]] [:a.btn-primary.btn-small - {:on-click (st/emitf (da/logout))} + {:on-click (st/emitf (du/logout))} (tr "labels.sign-out")]]]]])) (mf/defc bad-gateway diff --git a/frontend/src/app/main/ui/viewer/header.cljs b/frontend/src/app/main/ui/viewer/header.cljs index 2644e620c..46a29b984 100644 --- a/frontend/src/app/main/ui/viewer/header.cljs +++ b/frontend/src/app/main/ui/viewer/header.cljs @@ -10,6 +10,7 @@ [app.common.uuid :as uuid] [app.config :as cfg] [app.main.data.comments :as dcm] + [app.main.data.events :as ev] [app.main.data.messages :as dm] [app.main.data.viewer :as dv] [app.main.data.viewer.shortcuts :as sc] @@ -23,6 +24,7 @@ [app.util.router :as rt] [app.util.webapi :as wapi] [cuerdas.core :as str] + [potok.core :as ptk] [rumext.alpha :as mf])) (mf/defc zoom-widget diff --git a/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs b/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs index eb430cbf2..2cf441813 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs @@ -198,11 +198,13 @@ (mf/defc sitemap [{:keys [layout] :as props}] - (let [create (mf/use-callback #(st/emit! dw/create-empty-page)) + (let [file (mf/deref refs/workspace-file) + create (mf/use-callback + (mf/deps file) + (st/emitf (dw/create-page {:file-id (:id file) + :project-id (:project-id file)}))) show-pages? (mf/use-state true) - file (mf/deref refs/workspace-file) - toggle-pages (mf/use-callback #(reset! show-pages? not))] diff --git a/frontend/src/app/util/i18n.cljs b/frontend/src/app/util/i18n.cljs index 88b7cc807..ebaf43b25 100644 --- a/frontend/src/app/util/i18n.cljs +++ b/frontend/src/app/util/i18n.cljs @@ -52,7 +52,7 @@ cfg/default-language)))) (defonce translations #js {}) -(defonce locale (l/atom (or (get storage ::locale) +(defonce locale (l/atom (or (get @storage ::locale) (autodetect)))) ;; The traslations `data` is a javascript object and should be treated diff --git a/frontend/src/app/util/router.cljs b/frontend/src/app/util/router.cljs index ab20b3d67..0fc55dc8f 100644 --- a/frontend/src/app/util/router.cljs +++ b/frontend/src/app/util/router.cljs @@ -58,29 +58,48 @@ ;; --- Navigate (Event) -(deftype Navigate [id params qparams replace] - ptk/UpdateEvent - (update [_ state] - (dissoc state :exception)) +(defn navigated + [match] + (ptk/reify ::navigated + IDeref + (-deref [_] match) - ptk/EffectEvent - (effect [_ state stream] - (let [router (:router state) - history (:history state) - path (resolve router id params qparams)] - (if ^boolean replace - (bhistory/replace-token! history path) - (bhistory/set-token! history path))))) + ptk/UpdateEvent + (update [_ state] + (assoc state :route match)))) + +(defn navigate* + [id params qparams replace] + (ptk/reify ::navigate + IDeref + (-deref [_] + {:id id + :path-params params + :query-params qparams + :replace replace}) + + ptk/UpdateEvent + (update [_ state] + (dissoc state :exception)) + + ptk/EffectEvent + (effect [_ state stream] + (let [router (:router state) + history (:history state) + path (resolve router id params qparams)] + (if ^boolean replace + (bhistory/replace-token! history path) + (bhistory/set-token! history path)))))) (defn nav ([id] (nav id nil nil)) ([id params] (nav id params nil)) - ([id params qparams] (Navigate. id params qparams false))) + ([id params qparams] (navigate* id params qparams false))) (defn nav' ([id] (nav id nil nil)) ([id params] (nav id params nil)) - ([id params qparams] (Navigate. id params qparams true))) + ([id params qparams] (navigate* id params qparams true))) (def navigate nav) diff --git a/frontend/src/app/util/theme.cljs b/frontend/src/app/util/theme.cljs index 93e76f8d5..deed7644a 100644 --- a/frontend/src/app/util/theme.cljs +++ b/frontend/src/app/util/theme.cljs @@ -17,7 +17,7 @@ [app.util.transit :as t] [app.util.storage :refer [storage]])) -(defonce theme (get storage ::theme cfg/default-theme)) +(defonce theme (get @storage ::theme cfg/default-theme)) (defonce theme-sub (rx/subject)) (defonce themes #js {}) From 9d288077965a32af18e61ecc907c2295c20a5756 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 4 May 2021 20:20:18 +0200 Subject: [PATCH 027/135] :fire: Remove unused config props. --- backend/src/app/config.clj | 4 ---- 1 file changed, 4 deletions(-) diff --git a/backend/src/app/config.clj b/backend/src/app/config.clj index c8aeeae7e..e50fd7cc9 100644 --- a/backend/src/app/config.clj +++ b/backend/src/app/config.clj @@ -163,8 +163,6 @@ (s/def ::storage-s3-bucket ::us/string) (s/def ::storage-s3-region ::us/keyword) (s/def ::telemetry-enabled ::us/boolean) -(s/def ::telemetry-server-enabled ::us/boolean) -(s/def ::telemetry-server-port ::us/integer) (s/def ::telemetry-uri ::us/string) (s/def ::telemetry-with-taiga ::us/boolean) (s/def ::tenant ::us/string) @@ -244,8 +242,6 @@ ::storage-s3-bucket ::storage-s3-region ::telemetry-enabled - ::telemetry-server-enabled - ::telemetry-server-port ::telemetry-uri ::telemetry-referer ::telemetry-with-taiga From 81c406bb60c5d70e03e2f7dc597cedfb5ec6a9ba Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 4 May 2021 20:20:39 +0200 Subject: [PATCH 028/135] :tada: Add db/inet type factory. --- backend/src/app/db.clj | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/backend/src/app/db.clj b/backend/src/app/db.clj index 75412606d..b9886ec7e 100644 --- a/backend/src/app/db.clj +++ b/backend/src/app/db.clj @@ -333,6 +333,12 @@ (t/decode-str val) val))) +(defn inet + [ip-addr] + (doto (org.postgresql.util.PGobject.) + (.setType "inet") + (.setValue (str ip-addr)))) + (defn tjson "Encode as transit json." [data] From 2195b8932e6ea111f8d7d103f93c148d6e863753 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 4 May 2021 20:21:23 +0200 Subject: [PATCH 029/135] :bug: Fix status code checking on telemetry client task. --- backend/src/app/tasks/telemetry.clj | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/backend/src/app/tasks/telemetry.clj b/backend/src/app/tasks/telemetry.clj index 564021c3e..44a232aeb 100644 --- a/backend/src/app/tasks/telemetry.clj +++ b/backend/src/app/tasks/telemetry.clj @@ -60,10 +60,9 @@ :uri (:uri cfg) :headers {"content-type" "application/json"} :body (json/encode-str data)})] - - (when (not= 200 (:status response)) + (when (> (:status response) 206) (ex/raise :type :internal - :code :invalid-response-from-google + :code :invalid-response :context {:status (:status response) :body (:body response)})))) From 4825efb5824d4997aa2d073cc339f0db32a54609 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 4 May 2021 20:31:32 +0200 Subject: [PATCH 030/135] :sparkles: Add default secret key env on devenv. --- docker/devenv/docker-compose.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/devenv/docker-compose.yaml b/docker/devenv/docker-compose.yaml index 9046c6dd8..b34f56b1c 100644 --- a/docker/devenv/docker-compose.yaml +++ b/docker/devenv/docker-compose.yaml @@ -38,6 +38,7 @@ services: environment: - EXTERNAL_UID=${CURRENT_USER_ID} + - PENPOT_SECRET_KEY=super-secret-devenv-key # STMP setup - PENPOT_SMTP_ENABLED=true - PENPOT_SMTP_DEFAULT_FROM=no-reply@example.com From abb244c9402e74d9d395aedc326a4c9747c11605 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 5 May 2021 09:28:12 +0200 Subject: [PATCH 031/135] :recycle: Refactor exporter state initialization. --- exporter/shadow-cljs.edn | 10 +- exporter/src/app/browser.cljs | 57 ++++++++---- exporter/src/app/config.cljs | 58 +++++++++--- exporter/src/app/core.cljs | 13 +-- exporter/src/app/http.cljs | 36 ++++---- exporter/src/app/http/export.cljs | 66 ++++++------- exporter/src/app/http/export_bitmap.cljs | 80 ---------------- exporter/src/app/http/impl.cljs | 47 ++++------ exporter/src/app/http/thumbnail.cljs | 43 --------- exporter/src/app/renderer/bitmap.cljs | 91 ++++++++++++++++++ .../export_svg.cljs => renderer/svg.cljs} | 92 ++++++++++--------- exporter/src/app/util/transit.cljs | 2 +- 12 files changed, 308 insertions(+), 287 deletions(-) delete mode 100644 exporter/src/app/http/export_bitmap.cljs delete mode 100644 exporter/src/app/http/thumbnail.cljs create mode 100644 exporter/src/app/renderer/bitmap.cljs rename exporter/src/app/{http/export_svg.cljs => renderer/svg.cljs} (83%) diff --git a/exporter/shadow-cljs.edn b/exporter/shadow-cljs.edn index 3a81cff0f..7a7ca5859 100644 --- a/exporter/shadow-cljs.edn +++ b/exporter/shadow-cljs.edn @@ -1,11 +1,13 @@ {:dependencies - [[funcool/promesa "6.0.0"] + [[com.cognitect/transit-cljs "0.8.269"] [danlentz/clj-uuid "0.1.9"] + [frankiesardo/linked "1.3.0"] [funcool/cuerdas "2021.05.02-0"] + [funcool/promesa "6.0.0"] + [integrant/integrant "0.8.0"] [lambdaisland/glogi "1.0.106"] - [metosin/reitit-core "0.5.13"] - [com.cognitect/transit-cljs "0.8.269"] - [frankiesardo/linked "1.3.0"]] + [lambdaisland/uri "1.4.54"] + [metosin/reitit-core "0.5.13"]] :source-paths ["src" "vendor" "../common"] :jvm-opts ["-Xmx512m" "-Xms50m" "-XX:+UseSerialGC"] diff --git a/exporter/src/app/browser.cljs b/exporter/src/app/browser.cljs index 374464420..6b487e9f3 100644 --- a/exporter/src/app/browser.cljs +++ b/exporter/src/app/browser.cljs @@ -6,10 +6,13 @@ (ns app.browser (:require + [app.config :as cf] [lambdaisland.glogi :as log] [promesa.core :as p] ["puppeteer-cluster" :as ppc])) +;; --- BROWSER API + (def USER-AGENT (str "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 " "(KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36")) @@ -74,24 +77,38 @@ :value value :domain domain})) -(defn start! - ([] (start! nil)) - ([{:keys [concurrency concurrency-strategy] - :or {concurrency 10 - concurrency-strategy :incognito}}] - (let [ccst (case concurrency-strategy - :browser (.-CONCURRENCY_BROWSER ^js ppc/Cluster) - :incognito (.-CONCURRENCY_CONTEXT ^js ppc/Cluster) - :page (.-CONCURRENCY_PAGE ^js ppc/Cluster)) - opts #js {:concurrency ccst - :maxConcurrency concurrency - :puppeteerOptions #js {:args #js ["--no-sandbox"]}}] - (.launch ^js ppc/Cluster opts)))) +;; --- BROWSER STATE -(defn stop! - [instance] - (p/do! - (.idle ^js instance) - (.close ^js instance) - (log/info :msg "shutdown headless browser") - nil)) +(def instance (atom nil)) + +(defn- create-browser + [concurrency strategy] + (let [strategy (case strategy + :browser (.-CONCURRENCY_BROWSER ^js ppc/Cluster) + :incognito (.-CONCURRENCY_CONTEXT ^js ppc/Cluster) + :page (.-CONCURRENCY_PAGE ^js ppc/Cluster)) + opts #js {:concurrency strategy + :maxConcurrency concurrency + :puppeteerOptions #js {:args #js ["--no-sandbox"]}}] + (.launch ^js ppc/Cluster opts))) + + +(defn init + [] + (let [concurrency (cf/get :browser-concurrency) + strategy (cf/get :browser-strategy)] + (-> (create-browser concurrency strategy) + (p/then #(reset! instance %)) + (p/catch (fn [error] + (log/error :msg "failed to initialize browser") + (js/console.error error)))))) + + +(defn stop + [] + (if-let [instance @instance] + (p/do! + (.idle ^js instance) + (.close ^js instance) + (log/info :msg "shutdown headless browser")) + (p/resolved nil))) diff --git a/exporter/src/app/config.cljs b/exporter/src/app/config.cljs index e9b83c23b..76da48a1c 100644 --- a/exporter/src/app/config.cljs +++ b/exporter/src/app/config.cljs @@ -5,22 +5,54 @@ ;; Copyright (c) UXBOX Labs SL (ns app.config + (:refer-clojure :exclude [get]) (:require ["process" :as process] [cljs.pprint] - [cuerdas.core :as str])) + [cuerdas.core :as str] + [app.common.spec :as us] + [cljs.spec.alpha :as s] + [cljs.core :as c] + [lambdaisland.uri :as u])) -(defn- keywordize - [s] - (-> (str/kebab s) - (str/keyword))) +(def defaults + {:public-uri "http://localhost:3449" + :http-server-port 6061 + :browser-concurrency 5 + :browser-strategy :incognito}) -(defonce env - (let [env (unchecked-get process "env")] - (persistent! - (reduce #(assoc! %1 (keywordize %2) (unchecked-get env %2)) - (transient {}) - (js/Object.keys env))))) +(s/def ::public-uri ::us/string) +(s/def ::http-server-port ::us/integer) +(s/def ::browser-concurrency ::us/integer) +(s/def ::browser-strategy ::us/keyword) -(defonce config - {:public-uri (:penpot-public-uri env "http://localhost:3449")}) +(s/def ::config + (s/keys :opt-un [::public-uri + ::http-server-port + ::browser-concurrency + ::browser-strategy])) +(defn- read-env + [prefix] + (let [env (unchecked-get process "env") + kwd (fn [s] (-> (str/kebab s) (str/keyword))) + prefix (str prefix "-") + len (count prefix)] + (reduce (fn [res key] + (cond-> res + (str/starts-with? key prefix) + (assoc (kwd (subs key len)) + (unchecked-get env key)))) + {} + (js/Object.keys env)))) + +(def config + (atom (->> (read-env "penpot") + (merge defaults) + (us/conform ::config)))) + +(defn get + "A configuration getter." + ([key] + (c/get @config key)) + ([key default] + (c/get @config key default))) diff --git a/exporter/src/app/core.cljs b/exporter/src/app/core.cljs index 6bc699476..7fafd8393 100644 --- a/exporter/src/app/core.cljs +++ b/exporter/src/app/core.cljs @@ -21,10 +21,9 @@ (defn start [& args] (log/info :msg "initializing") - (p/let [browser (bwr/start!) - server (http/start! {:browser browser})] - (reset! state {:http server - :browser browser}))) + (p/do! + (bwr/init) + (http/init))) (def main start) @@ -35,8 +34,6 @@ (log/info :msg "stoping") (p/do! - (when-let [instance (:browser @state)] - (bwr/stop! instance)) - (when-let [instance (:http @state)] - (http/stop! instance)) + (bwr/stop) + (http/stop) (done))) diff --git a/exporter/src/app/http.cljs b/exporter/src/app/http.cljs index d0d32ebf8..4dca3cac4 100644 --- a/exporter/src/app/http.cljs +++ b/exporter/src/app/http.cljs @@ -6,29 +6,33 @@ (ns app.http (:require + [app.config :as cf] [app.http.export :refer [export-handler]] - [app.http.thumbnail :refer [thumbnail-handler]] [app.http.impl :as impl] [lambdaisland.glogi :as log] [promesa.core :as p] [reitit.core :as r])) (def routes - [["/export/thumbnail" {:handler thumbnail-handler}] - ["/export" {:handler export-handler}]]) + [["/export" {:handler export-handler}]]) -(defn start! - [extra] - (log/info :msg "starting http server" :port 6061) +(def instance (atom nil)) + +(defn init + [] (let [router (r/router routes) - handler (impl/handler router extra) - server (impl/server handler)] - (.listen server 6061) - (p/resolved server))) + handler (impl/handler router) + server (impl/server handler) + port (cf/get :http-server-port 6061)] + (.listen server port) + (log/info :msg "starting http server" :port port) + (reset! instance server))) -(defn stop! - [server] - (p/create (fn [resolve] - (.close server (fn [] - (log/info :msg "shutdown http server") - (resolve)))))) +(defn stop + [] + (if-let [server @instance] + (p/create (fn [resolve] + (.close server (fn [] + (log/info :msg "shutdown http server") + (resolve))))) + (p/resolved nil))) diff --git a/exporter/src/app/http/export.cljs b/exporter/src/app/http/export.cljs index 15ac3e8ba..8be2f5470 100644 --- a/exporter/src/app/http/export.cljs +++ b/exporter/src/app/http/export.cljs @@ -6,15 +6,15 @@ (ns app.http.export (:require - [app.http.export-bitmap :as bitmap] - [app.http.export-svg :as svg] + [app.common.exceptions :as exc :include-macros true] + [app.common.spec :as us] + [app.renderer.bitmap :as rb] + [app.renderer.svg :as rs] [app.zipfile :as zip] [cljs.spec.alpha :as s] [cuerdas.core :as str] [lambdaisland.glogi :as log] - [promesa.core :as p] - [app.common.exceptions :as exc :include-macros true] - [app.common.spec :as us])) + [promesa.core :as p])) (s/def ::name ::us/string) (s/def ::page-id ::us/uuid) @@ -38,42 +38,44 @@ (declare attach-filename) (defn export-handler - [{:keys [params browser cookies] :as request}] + [{:keys [params cookies] :as request}] (let [{:keys [exports page-id file-id object-id name]} (us/conform ::handler-params params) token (.get ^js cookies "auth-token")] (case (count exports) - 0 (exc/raise :type :validation :code :missing-exports) - 1 (handle-single-export - request - (assoc (first exports) - :name name - :token token - :file-id file-id - :page-id page-id - :object-id object-id)) - (handle-multiple-export - request - (map (fn [item] - (assoc item - :name name - :token token - :file-id file-id - :page-id page-id - :object-id object-id)) exports))))) + 0 (exc/raise :type :validation + :code :missing-exports) + + 1 (-> (first exports) + (assoc :name name) + (assoc :token token) + (assoc :file-id file-id) + (assoc :page-id page-id) + (assoc :object-id object-id) + (handle-single-export)) + + (->> exports + (map (fn [item] + (-> item + (assoc :name name) + (assoc :token token) + (assoc :file-id file-id) + (assoc :page-id page-id) + (assoc :object-id object-id)))) + (handle-multiple-export))))) (defn- handle-single-export - [{:keys [browser]} params] - (p/let [result (perform-export browser params)] + [params] + (p/let [result (perform-export params)] {:status 200 :body (:content result) :headers {"content-type" (:mime-type result) "content-length" (:length result)}})) (defn- handle-multiple-export - [{:keys [browser]} exports] + [exports] (let [proms (->> exports (attach-filename) - (map (partial perform-export browser)))] + (map perform-export))] (-> (p/all proms) (p/then (fn [results] (reduce #(zip/add! %1 (:filename %2) (:content %2)) (zip/create) results))) @@ -83,11 +85,11 @@ :body (.generateNodeStream ^js fzip)}))))) (defn- perform-export - [browser params] + [params] (case (:type params) - :png (bitmap/export browser params) - :jpeg (bitmap/export browser params) - :svg (svg/export browser params))) + :png (rb/render params) + :jpeg (rb/render params) + :svg (rs/render params))) (defn- find-filename-candidate [params used] diff --git a/exporter/src/app/http/export_bitmap.cljs b/exporter/src/app/http/export_bitmap.cljs deleted file mode 100644 index cf17a5e6d..000000000 --- a/exporter/src/app/http/export_bitmap.cljs +++ /dev/null @@ -1,80 +0,0 @@ -;; 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) UXBOX Labs SL - -(ns app.http.export-bitmap - (:require - [cuerdas.core :as str] - [app.browser :as bwr] - [app.config :as cfg] - [lambdaisland.glogi :as log] - [cljs.spec.alpha :as s] - [promesa.core :as p] - [app.common.exceptions :as exc :include-macros true] - [app.common.data :as d] - [app.common.pages :as cp] - [app.common.spec :as us]) - (:import - goog.Uri)) - -(defn screenshot-object - [browser {:keys [file-id page-id object-id token scale type]}] - (letfn [(handle [page] - (let [path (str "/render-object/" file-id "/" page-id "/" object-id) - uri (doto (Uri. (:public-uri cfg/config)) - (.setPath "/") - (.setFragment path)) - cookie {:domain (str (.getDomain uri) - ":" - (.getPort uri)) - :key "auth-token" - :value token}] - (log/info :uri (.toString uri)) - (screenshot page (.toString uri) cookie))) - - (screenshot [page uri cookie] - (p/do! - (bwr/emulate! page {:viewport [1920 1080] - :scale scale}) - (bwr/set-cookie! page cookie) - (bwr/navigate! page uri) - (bwr/eval! page (js* "() => document.body.style.background = 'transparent'")) - (p/let [dom (bwr/select page "#screenshot")] - (case type - :png (bwr/screenshot dom {:omit-background? true :type type}) - :jpeg (bwr/screenshot dom {:omit-background? false :type type})))))] - - (bwr/exec! browser handle))) - -(s/def ::name ::us/string) -(s/def ::suffix ::us/string) -(s/def ::type #{:jpeg :png}) -(s/def ::page-id ::us/uuid) -(s/def ::file-id ::us/uuid) -(s/def ::object-id ::us/uuid) -(s/def ::scale ::us/number) -(s/def ::token ::us/string) -(s/def ::filename ::us/string) - -(s/def ::export-params - (s/keys :req-un [::name ::suffix ::type ::object-id ::page-id ::scale ::token ::file-id] - :opt-un [::filename])) - -(defn export - [browser params] - (us/assert ::export-params params) - (p/let [content (screenshot-object browser params)] - {:content content - :filename (or (:filename params) - (str (:name params) - (:suffix params "") - (case (:type params) - :png ".png" - :jpeg ".jpg"))) - :length (alength content) - :mime-type (case (:type params) - :png "image/png" - :jpeg "image/jpeg")})) - diff --git a/exporter/src/app/http/impl.cljs b/exporter/src/app/http/impl.cljs index 15f00ba5b..3401194d4 100644 --- a/exporter/src/app/http/impl.cljs +++ b/exporter/src/app/http/impl.cljs @@ -13,25 +13,15 @@ [app.util.transit :as t] [cuerdas.core :as str] [lambdaisland.glogi :as log] + [lambdaisland.uri :as u] [promesa.core :as p] - [reitit.core :as r]) - (:import - goog.Uri)) - -(defn- query-params - "Given goog.Uri, read query parameters into Clojure map." - [^Uri uri] - (let [^js q (.getQueryData uri)] - (->> q - (.getKeys) - (map (juxt keyword #(.get q %))) - (into {})))) + [reitit.core :as r])) (defn- match [router ctx] - (let [uri (.parse Uri (unchecked-get ctx "originalUrl"))] - (when-let [match (r/match-by-path router (.getPath ^js uri))] - (assoc match :query-params (query-params uri))))) + (let [uri (u/uri (unchecked-get ctx "originalUrl"))] + (when-let [match (r/match-by-path router (:path uri))] + (assoc match :query-params (u/query-string->map (:query uri)))))) (defn- handle-error [error request] @@ -48,17 +38,21 @@ :headers {"content-type" "text/html"} :body (str "
" (:explain data) "
\n")})) + (and (= :internal type) + (= :browser-not-ready code)) + {:status 503 + :headers {"x-error" (t/encode data)} + :body ""} + :else (do (log/error :msg "Unexpected error" :error error) (js/console.error error) {:status 500 - :headers {"x-metadata" (t/encode {:type :unexpected - :message (ex-message error)})} + :headers {"x-error" (t/encode data)} :body ""})))) - (defn- handle-response [ctx {:keys [body headers status] :or {headers {} status 200}}] (run! (fn [[k v]] (.set ^js ctx k v)) headers) @@ -89,17 +83,16 @@ (t/decode)))))))) (defn- wrap-handler - [f extra] + [f] (fn [ctx] (p/let [cookies (unchecked-get ctx "cookies") headers (parse-headers ctx) body (parse-body ctx) - request (assoc extra - :method (str/lower (unchecked-get ctx "method")) - :body body - :ctx ctx - :headers headers - :cookies cookies)] + request {:method (str/lower (unchecked-get ctx "method")) + :body body + :ctx ctx + :headers headers + :cookies cookies}] (-> (p/do! (f request)) (p/then (fn [rsp] (when (map? rsp) @@ -131,10 +124,10 @@ (.createServer http @handler)) (defn handler - [router extra] + [router] (let [instance (doto (new koa) (.use (-> (router-handler router) - (wrap-handler extra))))] + (wrap-handler))))] (specify! instance cljs.core/IDeref (-deref [_] diff --git a/exporter/src/app/http/thumbnail.cljs b/exporter/src/app/http/thumbnail.cljs deleted file mode 100644 index f351d67a4..000000000 --- a/exporter/src/app/http/thumbnail.cljs +++ /dev/null @@ -1,43 +0,0 @@ -;; 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) UXBOX Labs SL - -(ns app.http.thumbnail - (:require - [app.common.exceptions :as exc :include-macros true] - [app.common.spec :as us] - [app.http.export-bitmap :as bitmap] - [cljs.spec.alpha :as s] - [cuerdas.core :as str] - [lambdaisland.glogi :as log] - [promesa.core :as p])) - -(s/def ::page-id ::us/uuid) -(s/def ::file-id ::us/uuid) -(s/def ::object-id ::us/uuid) -(s/def ::scale ::us/number) - -(s/def ::handler-params - (s/keys :req-un [::page-id ::file-id ::object-id])) - -(declare handle-single-export) -(declare handle-multiple-export) -(declare perform-export) -(declare attach-filename) - -(defn thumbnail-handler - [{:keys [params browser cookies] :as request}] - (let [{:keys [page-id file-id object-id]} (us/conform ::handler-params params) - params {:token (.get ^js cookies "auth-token") - :file-id file-id - :page-id page-id - :object-id object-id - :scale 0.3 - :type :jpeg}] - (p/let [content (bitmap/screenshot-object browser params)] - {:status 200 - :body content - :headers {"content-type" "image/jpeg" - "content-length" (alength content)}}))) diff --git a/exporter/src/app/renderer/bitmap.cljs b/exporter/src/app/renderer/bitmap.cljs new file mode 100644 index 000000000..79610316f --- /dev/null +++ b/exporter/src/app/renderer/bitmap.cljs @@ -0,0 +1,91 @@ +;; 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) UXBOX Labs SL + +(ns app.renderer.bitmap + "A bitmap renderer." + (:require + [app.browser :as bw] + [app.common.data :as d] + [app.common.exceptions :as ex :include-macros true] + [app.common.pages :as cp] + [app.common.spec :as us] + [app.config :as cf] + [cljs.spec.alpha :as s] + [cuerdas.core :as str] + [lambdaisland.uri :as u] + [lambdaisland.glogi :as log] + [promesa.core :as p])) + +(defn create-cookie + [uri token] + (let [domain (str (:host uri) + (when (:port uri) + (str ":" (:port uri))))] + {:domain domain + :key "auth-token" + :value token})) + +(defn screenshot-object + [browser {:keys [file-id page-id object-id token scale type]}] + (letfn [(handle [page] + (let [path (str "/render-object/" file-id "/" page-id "/" object-id) + uri (-> (u/uri (cf/get :public-uri)) + (assoc :path "/") + (assoc :fragment path)) + cookie (create-cookie uri token)] + (screenshot page (str uri) cookie))) + + (screenshot [page uri cookie] + (log/info :uri uri) + (p/do! + (bw/emulate! page {:viewport [1920 1080] + :scale scale}) + (bw/set-cookie! page cookie) + (bw/navigate! page uri) + (bw/eval! page (js* "() => document.body.style.background = 'transparent'")) + (p/let [dom (bw/select page "#screenshot")] + (case type + :png (bw/screenshot dom {:omit-background? true :type type}) + :jpeg (bw/screenshot dom {:omit-background? false :type type})))))] + + (bw/exec! browser handle))) + +(s/def ::name ::us/string) +(s/def ::suffix ::us/string) +(s/def ::type #{:jpeg :png}) +(s/def ::page-id ::us/uuid) +(s/def ::file-id ::us/uuid) +(s/def ::object-id ::us/uuid) +(s/def ::scale ::us/number) +(s/def ::token ::us/string) +(s/def ::filename ::us/string) + +(s/def ::render-params + (s/keys :req-un [::name ::suffix ::type ::object-id ::page-id ::scale ::token ::file-id] + :opt-un [::filename])) + +(defn render + [params] + (us/assert ::render-params params) + (let [browser @bw/instance] + (when-not browser + (ex/raise :type :internal + :code :browser-not-ready + :hint "browser cluster is not initialized yet")) + + (p/let [content (screenshot-object browser params)] + {:content content + :filename (or (:filename params) + (str (:name params) + (:suffix params "") + (case (:type params) + :png ".png" + :jpeg ".jpg"))) + :length (alength content) + :mime-type (case (:type params) + :png "image/png" + :jpeg "image/jpeg")}))) + diff --git a/exporter/src/app/http/export_svg.cljs b/exporter/src/app/renderer/svg.cljs similarity index 83% rename from exporter/src/app/http/export_svg.cljs rename to exporter/src/app/renderer/svg.cljs index 13b6bf946..58458c275 100644 --- a/exporter/src/app/http/export_svg.cljs +++ b/exporter/src/app/renderer/svg.cljs @@ -4,24 +4,24 @@ ;; ;; Copyright (c) UXBOX Labs SL -(ns app.http.export-svg +(ns app.renderer.svg (:require ["path" :as path] ["xml-js" :as xml] - [app.browser :as bwr] + [app.browser :as bw] [app.common.data :as d] - [app.common.exceptions :as exc :include-macros true] + [app.common.exceptions :as ex :include-macros true] [app.common.pages :as cp] [app.common.spec :as us] - [app.config :as cfg] + [app.config :as cf] [app.util.shell :as sh] [cljs.spec.alpha :as s] [clojure.walk :as walk] [cuerdas.core :as str] [lambdaisland.glogi :as log] - [promesa.core :as p]) - (:import - goog.Uri)) + [lambdaisland.uri :as u] + [app.renderer.bitmap :refer [create-cookie]] + [promesa.core :as p])) (log/set-level "app.http.export-svg" :trace) @@ -67,7 +67,6 @@ (nil? d) (str/empty? d))))) - (defn flatten-toplevel-svg-elements "Flattens XML data structure if two nested top-side SVG elements found." [item] @@ -165,7 +164,9 @@ ;; objects. (let [vbox (-> (get-in result ["attributes" "viewBox"]) (parse-viewbox)) - transform (str/fmt "translate(%s, %s) scale(%s, %s)" x y (/ width (:width vbox)) (/ height (:height vbox)))] + transform (str/fmt "translate(%s, %s) scale(%s, %s)" x y + (/ width (:width vbox)) + (/ height (:height vbox)))] (-> result (assoc "name" "g") (assoc "attributes" {}) @@ -212,8 +213,8 @@ (extract-single-node [node] (log/trace :fn :extract-single-node) - (p/let [attrs (bwr/eval! node extract-element-attrs) - shot (bwr/screenshot node {:omit-background? true :type "png"})] + (p/let [attrs (bw/eval! node extract-element-attrs) + shot (bw/screenshot node {:omit-background? true :type "png"})] {:id (unchecked-get attrs "id") :x (unchecked-get attrs "x") :y (unchecked-get attrs "y") @@ -235,12 +236,12 @@ (process-text-nodes [page] (log/trace :fn :process-text-nodes) - (-> (bwr/select-all page "#screenshot foreignObject") + (-> (bw/select-all page "#screenshot foreignObject") (p/then (fn [nodes] (p/all (map process-text-node nodes)))))) (extract-svg [page] - (p/let [dom (bwr/select page "#screenshot") - xmldata (bwr/eval! dom (fn [elem] (.-outerHTML ^js elem))) + (p/let [dom (bw/select page "#screenshot") + xmldata (bw/eval! dom (fn [elem] (.-outerHTML ^js elem))) nodes (process-text-nodes page) nodes (d/index-by :id nodes) result (replace-text-nodes xmldata nodes)] @@ -253,30 +254,28 @@ (render-in-page [page {:keys [uri cookie] :as rctx}] (p/do! - (bwr/emulate! page {:viewport [1920 1080] + (bw/emulate! page {:viewport [1920 1080] :scale 4}) - (bwr/set-cookie! page cookie) - (bwr/navigate! page uri) - ;; (bwr/wait-for page "#screenshot foreignObject" {:visible true}) - (bwr/sleep page 2000) - ;; (bwr/eval! page (js* "() => document.body.style.background = 'transparent'")) + (bw/set-cookie! page cookie) + (bw/navigate! page uri) + ;; (bw/wait-for page "#screenshot foreignObject" {:visible true}) + (bw/sleep page 2000) + ;; (bw/eval! page (js* "() => document.body.style.background = 'transparent'")) page)) (handle [rctx page] (p/let [page (render-in-page page rctx)] (extract-svg page)))] - (let [path (str "/render-object/" file-id "/" page-id "/" object-id) - uri (doto (Uri. (:public-uri cfg/config)) - (.setPath "/") - (.setFragment path)) - rctx {:cookie {:domain (str (.getDomain uri) ":" (.getPort uri)) - :key "auth-token" - :value token} - :uri (.toString uri)}] - - (log/info :uri (.toString uri)) - (bwr/exec! browser (partial handle rctx))))) + (let [path (str "/render-object/" file-id "/" page-id "/" object-id) + uri (-> (u/uri (cf/get :public-uri)) + (assoc :path "/") + (assoc :fragment path)) + cookie (create-cookie uri token) + rctx {:cookie cookie + :uri (str uri)}] + (log/info :uri (:uri rctx)) + (bw/exec! browser (partial handle rctx))))) (s/def ::name ::us/string) (s/def ::suffix ::us/string) @@ -288,18 +287,25 @@ (s/def ::token ::us/string) (s/def ::filename ::us/string) -(s/def ::export-params +(s/def ::render-params (s/keys :req-un [::name ::suffix ::type ::object-id ::page-id ::file-id ::scale ::token] :opt-un [::filename])) -(defn export - [browser params] - (us/assert ::export-params params) - (p/let [content (render-object browser params)] - {:content content - :filename (or (:filename params) - (str (:name params) - (:suffix params "") - ".svg")) - :length (alength content) - :mime-type "image/svg+xml"})) +(defn render + [params] + (us/assert ::render-params params) + (let [browser @bw/instance] + (when-not browser + (ex/raise :type :internal + :code :browser-not-ready + :hint "browser cluster is not initialized yet")) + + + (p/let [content (render-object browser params)] + {:content content + :filename (or (:filename params) + (str (:name params) + (:suffix params "") + ".svg")) + :length (alength content) + :mime-type "image/svg+xml"}))) diff --git a/exporter/src/app/util/transit.cljs b/exporter/src/app/util/transit.cljs index 38fbe3d4b..6afaa015e 100644 --- a/exporter/src/app/util/transit.cljs +++ b/exporter/src/app/util/transit.cljs @@ -25,5 +25,5 @@ (defn encode [data] - (let [w (t/writer :json {:handlers +write-handlers+})] + (let [w (t/writer :json-verbose {:handlers +write-handlers+})] (t/write w data))) From 3ce4769e8d17b84a9bc1d188d995587e15114a2a Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 5 May 2021 15:22:04 +0200 Subject: [PATCH 032/135] :sparkles: Report errors on events. --- backend/src/app/http/errors.clj | 5 +- frontend/src/app/main/ui.cljs | 99 +++++++++++++++++++++------------ 2 files changed, 66 insertions(+), 38 deletions(-) diff --git a/backend/src/app/http/errors.clj b/backend/src/app/http/errors.clj index d2e45ed01..6f0d85cc0 100644 --- a/backend/src/app/http/errors.clj +++ b/backend/src/app/http/errors.clj @@ -76,6 +76,7 @@ {:status 500 :body {:type :server-error + :code :assertion :data (-> edata (assoc :explain (explain-error edata)) (dissoc :data))}})) @@ -103,6 +104,7 @@ :cause error) {:status 500 :body {:type :server-error + :code :unexpected :hint (ex-message error) :data edata}})))) @@ -132,7 +134,8 @@ :else {:status 500 - :body {:type :server-timeout + :body {:type :server-error + :code :psql-exception :hint (ex-message error) :state state}}))) diff --git a/frontend/src/app/main/ui.cljs b/frontend/src/app/main/ui.cljs index 9b2c772a5..95437edd4 100644 --- a/frontend/src/app/main/ui.cljs +++ b/frontend/src/app/main/ui.cljs @@ -226,8 +226,9 @@ [error] (ts/schedule (st/emitf - (dm/show {:content "Unexpected validation error (server side)." - :type :error}))) + (dm/show {:content "Unexpected validation error." + :type :error + :timeout 3000}))) ;; Print to the console some debug info. (js/console.group "Validation Error") @@ -243,58 +244,82 @@ ;; assertion (assertion that is preserved on production builds). From ;; the user perspective this should be treated as internal error. (defmethod ptk/handle-error :assertion - [{:keys [data stack message context] :as error}] - (ts/schedule - (st/emitf (dm/show {:content "Internal error: assertion." - :type :error}))) + [{:keys [data stack message hint context] :as error}] + (let [message (or message hint) + context (str/fmt "ns: '%s'\nname: '%s'\nfile: '%s:%s'" + (:ns context) + (:name context) + (str cfg/public-uri "/js/cljs-runtime/" (:file context)) + (:line context))] + (ts/schedule + (st/emitf + (dm/show {:content "Internal error: assertion." + :type :error + :timeout 3000}) + (ptk/event ::ev/event + {::ev/type "exception" + ::ev/name "assertion-error" + :message message + :context context + :trace stack}))) - ;; Print to the console some debugging info - (js/console.group message) - (js/console.info (str/format "ns: '%s'\nname: '%s'\nfile: '%s:%s'" - (:ns context) - (:name context) - (str cfg/public-uri "/js/cljs-runtime/" (:file context)) - (:line context))) - (js/console.groupCollapsed "Stack Trace") - (js/console.info stack) - (js/console.groupEnd "Stack Trace") - (js/console.error (with-out-str (expound/printer data))) - (js/console.groupEnd message)) + ;; Print to the console some debugging info + (js/console.group message) + (js/console.info context) + (js/console.groupCollapsed "Stack Trace") + (js/console.info stack) + (js/console.groupEnd "Stack Trace") + (js/console.error (with-out-str (expound/printer data))) + (js/console.groupEnd message))) ;; This happens when the backed server fails to process the ;; request. This can be caused by an internal assertion or any other ;; uncontrolled error. (defmethod ptk/handle-error :server-error - [{:keys [data] :as error}] - (ts/schedule - (st/emitf (dm/show - {:content "Something wrong has happened (on backend)." - :type :error}))) + [{:keys [data hint] :as error}] + (let [hint (or hint (:hint data) (:message data)) + info (with-out-str (pprint (dissoc data :explain))) + expl (:explain data)] + (ts/schedule + (st/emitf + (dm/show {:content "Something wrong has happened (on backend)." + :type :error + :timeout 3000}) + (ptk/event ::ev/event + {::ev/type "exception" + ::ev/name "server-error" + :hint hint + :info info + :explain expl}))) - (js/console.group "Internal Server Error:") - (js/console.error "hint:" (or (:hint data) (:message data))) - (js/console.info - (with-out-str - (pprint (dissoc data :explain)))) - (when-let [explain (:explain data)] - (js/console.error explain)) - (js/console.groupEnd "Internal Server Error:")) + (js/console.group "Internal Server Error:") + (js/console.error "hint:" hint) + (js/console.info info) + (when expl (js/console.error expl)) + (js/console.groupEnd "Internal Server Error:"))) (defmethod ptk/handle-error :default [error] (if (instance? ExceptionInfo error) (ptk/handle-error (ex-data error)) - (do + (let [stack (.-stack error) + hint (or (ex-message error) + (:hint error) + (:message error))] (ts/schedule - (st/emitf (dm/assign-exception error))) + (st/emitf + (dm/assign-exception error) + (ptk/event ::ev/event + {::ev/type "exception" + ::ev/name "unexpected-error" + :message hint + :trace (.-stack error)}))) (js/console.group "Internal error:") - (js/console.log "hint:" (or (ex-message error) - (:hint error) - (:message error))) + (js/console.log "hint:" hint) (ex/ignoring (js/console.error (clj->js error)) - (js/console.error "stack:" (.-stack error))) + (js/console.error "stack:" stack)) (js/console.groupEnd "Internal error:")))) (defonce uncaught-error-handler From 8ef49d2ec4922904777e86934c87b2eb3732c707 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 5 May 2021 23:25:42 +0200 Subject: [PATCH 033/135] :sparkles: Minor improvement on event ordering on signup. --- frontend/src/app/main/data/events.cljs | 54 +++++++++++++++----------- frontend/src/app/main/data/users.cljs | 15 ++++--- 2 files changed, 39 insertions(+), 30 deletions(-) diff --git a/frontend/src/app/main/data/events.cljs b/frontend/src/app/main/data/events.cljs index 12ba31a59..31d95674d 100644 --- a/frontend/src/app/main/data/events.cljs +++ b/frontend/src/app/main/data/events.cljs @@ -101,23 +101,23 @@ [event] (let [data (deref event) mdata (meta data) - props [:email - :auth-backend - :fullname - :is-muted - :default-team-id - :default-project-id]] + props {:signin-source (::source mdata) + :email (:email data) + :auth-backend (:auth-backend data) + :fullname (:fullname data) + :is-muted (:is-muted data) + :default-team-id (str (:default-team-id data)) + :default-project-id (str (:default-project-id data))}] {:name "signin" :type "identify" :profile-id (:id data) - :props (-> (select-keys data props) - (assoc :signin-source (::source mdata)))})) + :props (d/without-nils props)})) (defmethod process-event :app.main.data.dashboard/project-created [event] (let [data (deref event)] {:type "action" - :name "create-page" + :name "create-project" :props {:id (:id data) :team-id (:team-id data)}})) @@ -146,7 +146,7 @@ (defmethod process-event :app.main.data.users/logout [event] - (event->generic-action event "logout")) + (event->generic-action event "signout")) ;; --- MAIN LOOP @@ -163,21 +163,27 @@ (defn- persist-events [events] - (let [uri (u/join cf/public-uri "events") - params {:events events}] - (->> (http/send! {:uri uri - :method :post - :body (http/transit-data params)}) - (rx/mapcat rp/handle-response)))) + (if (seq events) + (let [uri (u/join cf/public-uri "events") + params {:events events}] + (->> (http/send! {:uri uri + :method :post + :body (http/transit-data params)}) + (rx/mapcat rp/handle-response))) + (rx/of nil))) (defmethod ptk/resolve ::persistence [_ {:keys [buffer] :as params}] (ptk/reify ::persistence ptk/EffectEvent (effect [_ state stream] - (let [events (into [] (take max-chunk-size) @buffer)] - (when-not (empty? events) - (->> (persist-events events) + (let [profile-id (:profile-id state) + events (into [] (take max-buffer-size) @buffer)] + (prn ::persistence (count events) profile-id) + (when (seq events) + (->> events + (filterv #(= profile-id (:profile-id %))) + (persist-events) (rx/subs (fn [_] (swap! buffer remove-from-buffer (count events)))))))))) @@ -187,9 +193,13 @@ (ptk/reify ::initialize ptk/WatchEvent (watch [_ state stream] - (->> (rx/from-atom buffer) - (rx/filter #(pos? (count %))) - (rx/debounce 2000) + (->> (rx/merge + (->> (rx/from-atom buffer) + (rx/filter #(pos? (count %))) + (rx/debounce 2000)) + (->> stream + (rx/filter (ptk/type? :app.main.data.users/logout)) + (rx/observe-on :async))) (rx/map #(ptk/event ::persistence {:buffer buffer})))) ptk/EffectEvent diff --git a/frontend/src/app/main/data/users.cljs b/frontend/src/app/main/data/users.cljs index d2f47b53b..3312f4c50 100644 --- a/frontend/src/app/main/data/users.cljs +++ b/frontend/src/app/main/data/users.cljs @@ -123,12 +123,7 @@ (rx/mapcat (fn [profile] (if (= uuid/zero (:id profile)) (rx/empty) - (rx/of - (fetch-teams) - (ptk/event ::ev/event - {::ev/type "identify" - ::ev/name "page-load"})))))))))) - + (rx/of (fetch-teams)))))))))) ;; --- EVENT: login @@ -145,11 +140,15 @@ {::ev/source "login"})] (->> (rx/concat (rx/of (profile-fetched profile) - (fetch-teams) - (rt/nav' :dashboard-projects {:team-id team-id})) + (fetch-teams)) + + (->> (rx/of (rt/nav' :dashboard-projects {:team-id team-id})) + (rx/delay 1000)) + (when-not (get-in profile [:props :onboarding-viewed]) (->> (rx/of (modal/show {:type :onboarding})) (rx/delay 1000)))) + (rx/observe-on :async)))))) (s/def ::login-params From e3171d9ee592370dc61bd084706d966a398ecee6 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 6 May 2021 14:08:42 +0200 Subject: [PATCH 034/135] :lipstick: Cosmetic fixes on events ns. --- frontend/src/app/main/data/events.cljs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/main/data/events.cljs b/frontend/src/app/main/data/events.cljs index 31d95674d..1e75b1d4a 100644 --- a/frontend/src/app/main/data/events.cljs +++ b/frontend/src/app/main/data/events.cljs @@ -228,7 +228,7 @@ context (-> @context (d/merge (:context event)) (assoc :session session*))] - (swap! session (constantly session*)) + (reset! session session*) (-> event (assoc :timestamp (dt/now)) (assoc :context context))))) From c5fa8f560c99b39db8e212f18254a6867fc8df7d Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Sun, 9 May 2021 12:28:38 +0200 Subject: [PATCH 035/135] :paperclip: Fix linter issues. --- backend/src/app/loggers/mattermost.clj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/app/loggers/mattermost.clj b/backend/src/app/loggers/mattermost.clj index 1366a7edf..e51c3d73b 100644 --- a/backend/src/app/loggers/mattermost.clj +++ b/backend/src/app/loggers/mattermost.clj @@ -58,7 +58,7 @@ (a/close! output)) (defn- send-mattermost-notification! - [cfg {:keys [host version id error] :as cdata}] + [cfg {:keys [host version id] :as cdata}] (try (let [uri (:uri cfg) text (str "Unhandled exception (@channel):\n" From 50bdcea81bff73e52b27ca7837544ac614d9ec32 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Sun, 9 May 2021 12:28:52 +0200 Subject: [PATCH 036/135] :arrow_up: Upgrade cuerdas version. --- frontend/shadow-cljs.edn | 2 +- frontend/vendor/cuerdas/impl/xregexp.cljs | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) delete mode 100644 frontend/vendor/cuerdas/impl/xregexp.cljs diff --git a/frontend/shadow-cljs.edn b/frontend/shadow-cljs.edn index 5651d8b4b..a845f442b 100644 --- a/frontend/shadow-cljs.edn +++ b/frontend/shadow-cljs.edn @@ -15,7 +15,7 @@ [frankiesardo/linked "1.3.0"] [funcool/beicon "2021.04.29-0"] - [funcool/cuerdas "2021.05.02-0"] + [funcool/cuerdas "2021.05.09-0"] [funcool/okulary "2020.04.14-0"] [funcool/potok "4.0.0"] [funcool/promesa "6.0.0"] diff --git a/frontend/vendor/cuerdas/impl/xregexp.cljs b/frontend/vendor/cuerdas/impl/xregexp.cljs deleted file mode 100644 index 27a5e7f86..000000000 --- a/frontend/vendor/cuerdas/impl/xregexp.cljs +++ /dev/null @@ -1,4 +0,0 @@ -(ns cuerdas.impl.xregexp - (:require ["xregexp" :as XRegExp])) - -(goog/exportSymbol "XRegExp" XRegExp) From c1278194ce17fb7d87736a281b24ea2020427523 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Fri, 7 May 2021 14:42:13 +0200 Subject: [PATCH 037/135] :bug: Fix snap index problem --- CHANGES.md | 1 + frontend/src/app/worker/snaps.cljs | 34 ++++++++++++++++++++++++------ 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 3c8d5d553..aecc5d190 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,6 +6,7 @@ ### :bug: Bugs fixed - Remove interactions when the destination artboard is deleted [Taiga #1656](https://tree.taiga.io/project/penpot/issue/1656) +- Fix snap index problem [Taiga #1661](https://tree.taiga.io/project/penpot/issue/1661) ### :arrow_up: Deps updates ### :boom: Breaking changes diff --git a/frontend/src/app/worker/snaps.cljs b/frontend/src/app/worker/snaps.cljs index 9cd78cec0..f67e64890 100644 --- a/frontend/src/app/worker/snaps.cljs +++ b/frontend/src/app/worker/snaps.cljs @@ -69,8 +69,9 @@ (let [shapes-data (aggregate-data objects) create-index - (fn [frame-id shapes] {:x (add-coord-data (rt/make-tree) frame-id shapes :x) - :y (add-coord-data (rt/make-tree) frame-id shapes :y)})] + (fn [frame-id shapes] + {:x (-> (rt/make-tree) (add-coord-data frame-id shapes :x)) + :y (-> (rt/make-tree) (add-coord-data frame-id shapes :y))})] (d/mapm create-index shapes-data))) @@ -78,6 +79,14 @@ [snap-data old-objects new-objects] (let [changed? #(not= (get old-objects %) (get new-objects %)) + is-deleted-frame? #(and (not= uuid/zero %) + (contains? old-objects %) + (not (contains? new-objects %)) + (= :frame (get-in old-objects [% :type]))) + is-new-frame? #(and (not= uuid/zero %) + (contains? new-objects %) + (not (contains? old-objects %)) + (= :frame (get-in new-objects [% :type]))) changed-ids (into #{} (filter changed?) @@ -86,6 +95,9 @@ to-delete (aggregate-data old-objects changed-ids) to-add (aggregate-data new-objects changed-ids) + frames-to-delete (->> changed-ids (filter is-deleted-frame?)) + frames-to-add (->> changed-ids (filter is-new-frame?)) + delete-data (fn [snap-data [frame-id shapes]] (-> snap-data @@ -98,11 +110,21 @@ (update-in [frame-id :x] add-coord-data frame-id shapes :x) (update-in [frame-id :y] add-coord-data frame-id shapes :y))) - snap-data (->> to-delete - (reduce delete-data snap-data)) + delete-frames + (fn [snap-data frame-id] + (dissoc snap-data frame-id)) - snap-data (->> to-add - (reduce add-data snap-data))] + add-frames + (fn [snap-data frame-id] + (assoc snap-data frame-id {:x (rt/make-tree) + :y (rt/make-tree)})) + + snap-data (as-> snap-data $ + (reduce add-frames $ frames-to-add) + (reduce add-data $ to-add) + (reduce delete-data $ to-delete) + (reduce delete-frames $ frames-to-delete)) + ] snap-data)) From 0cc600de6d8f85ce6bcc93e03eaac85e31a0c14a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Thu, 6 May 2021 16:46:51 +0200 Subject: [PATCH 038/135] :sparkles: Preserve layer order when copying shapes to the clipboard --- frontend/src/app/main/data/workspace.cljs | 24 ++++++++++++++++++++++- frontend/src/app/worker/selection.cljs | 5 +++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index a52d0f39c..eb04c8714 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -34,6 +34,7 @@ [app.main.data.workspace.undo :as dwu] [app.main.repo :as rp] [app.main.streams :as ms] + [app.main.worker :as uw] [app.util.http :as http] [app.util.i18n :as i18n] [app.util.logging :as log] @@ -1269,7 +1270,27 @@ (defn copy-selected [] - (letfn [;; Retrieve all ids of selected shapes with corresponding + (letfn [;; Sort objects so they have the same relative ordering + ;; when pasted later. + (sort-selected [state data] + (let [selected (:selected data) + page-id (:current-page-id state) + objects (get-in state [:workspace-data + :pages-index + page-id + :objects])] + (->> (uw/ask! {:cmd :selection/query-z-index + :page-id page-id + :objects objects + :ids selected}) + (rx/map (fn [z-indexes] + (assoc data :selected + (->> (d/zip selected z-indexes) + (sort-by second) + (map first) + (into (d/ordered-set))))))))) + + ;; Retrieve all ids of selected shapes with corresponding ;; children; this is needed because each shape should be ;; processed one by one because of async events (data url ;; fetching). @@ -1334,6 +1355,7 @@ (->> (rx/from (seq (vals pdata))) (rx/merge-map (partial prepare-object objects selected)) (rx/reduce collect-data initial) + (rx/mapcat (partial sort-selected state)) (rx/map t/encode) (rx/map wapi/write-to-clipboard) (rx/catch on-copy-error) diff --git a/frontend/src/app/worker/selection.cljs b/frontend/src/app/worker/selection.cljs index ce62b3434..d82daf51f 100644 --- a/frontend/src/app/worker/selection.cljs +++ b/frontend/src/app/worker/selection.cljs @@ -155,3 +155,8 @@ (when-let [index (get @state page-id)] (query-index index rect frame-id include-frames? include-groups? disabled-masks reverse?))) +(defmethod impl/handler :selection/query-z-index + [{:keys [page-id objects ids]}] + (when-let [{z-index :z-index} (get @state page-id)] + (->> ids (map #(+ (get z-index %) + (get z-index (get-in objects [% :frame-id]))))))) From 7033ae4f2e880bf652a1ae5dfffca0332fb2269b Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 10 May 2021 09:55:37 +0200 Subject: [PATCH 039/135] :bug: Fixes problem recreating indices --- frontend/src/app/worker/selection.cljs | 38 ++++++++++++++------------ frontend/src/app/worker/snaps.cljs | 20 ++++++-------- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/frontend/src/app/worker/selection.cljs b/frontend/src/app/worker/selection.cljs index d82daf51f..b78f3c7f1 100644 --- a/frontend/src/app/worker/selection.cljs +++ b/frontend/src/app/worker/selection.cljs @@ -57,30 +57,34 @@ {:index index :z-index z-index})) (defn- update-index - [{index :index z-index :z-index} old-objects new-objects] + [{index :index z-index :z-index :as data} old-objects new-objects] - (let [changes? (fn [id] - (not= (get old-objects id) - (get new-objects id))) + (if (some? data) + (let [changes? (fn [id] + (not= (get old-objects id) + (get new-objects id))) - changed-ids (into #{} - (filter changes?) - (set/union (keys old-objects) - (keys new-objects))) + changed-ids (into #{} + (filter changes?) + (set/union (keys old-objects) + (keys new-objects))) - shapes (->> changed-ids (mapv #(get new-objects %)) (filterv (comp not nil?))) - parents-index (cp/generate-child-all-parents-index new-objects shapes) - masks-index (cp/create-mask-index new-objects parents-index) + shapes (->> changed-ids (mapv #(get new-objects %)) (filterv (comp not nil?))) + parents-index (cp/generate-child-all-parents-index new-objects shapes) + masks-index (cp/create-mask-index new-objects parents-index) - new-index (qdt/remove-all index changed-ids) + new-index (qdt/remove-all index changed-ids) - index (reduce (index-shape new-objects parents-index masks-index) - new-index - shapes) + index (reduce (index-shape new-objects parents-index masks-index) + new-index + shapes) - z-index (cp/update-z-index z-index changed-ids old-objects new-objects)] + z-index (cp/update-z-index z-index changed-ids old-objects new-objects)] - {:index index :z-index z-index})) + {:index index :z-index z-index}) + + ;; If not previous data. We need to create from scratch + (create-index new-objects))) (defn- query-index [{index :index z-index :z-index} rect frame-id include-frames? include-groups? disabled-masks reverse?] diff --git a/frontend/src/app/worker/snaps.cljs b/frontend/src/app/worker/snaps.cljs index f67e64890..aa531dd4f 100644 --- a/frontend/src/app/worker/snaps.cljs +++ b/frontend/src/app/worker/snaps.cljs @@ -39,16 +39,15 @@ (rt/insert tree (coord point) data))] (->> shapes (mapcat (process-shape frame-id coord)) - (reduce into-tree data)))) + (reduce into-tree (or data (rt/make-tree)))))) (defn remove-coord-data [data frame-id shapes coord] - (letfn [(remove-tree [tree [point _ :as data]] (rt/remove tree (coord point) data))] (->> shapes (mapcat (process-shape frame-id coord)) - (reduce remove-tree data)))) + (reduce remove-tree (or data (rt/make-tree)))))) (defn aggregate-data ([objects] @@ -117,16 +116,13 @@ add-frames (fn [snap-data frame-id] (assoc snap-data frame-id {:x (rt/make-tree) - :y (rt/make-tree)})) + :y (rt/make-tree)}))] - snap-data (as-> snap-data $ - (reduce add-frames $ frames-to-add) - (reduce add-data $ to-add) - (reduce delete-data $ to-delete) - (reduce delete-frames $ frames-to-delete)) - ] - - snap-data)) + (as-> snap-data $ + (reduce add-frames $ frames-to-add) + (reduce add-data $ to-add) + (reduce delete-data $ to-delete) + (reduce delete-frames $ frames-to-delete)))) (defn- log-state "Helper function to print a friendly version of the snap tree. Debugging purposes" From ebb6df4696b4a0fdd59052b6e770b762590c02b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Fri, 7 May 2021 09:54:26 +0200 Subject: [PATCH 040/135] :recycle: Refactor shortcuts and change image shortcut --- .../src/app/main/data/workspace/shortcuts.cljs | 4 ++-- .../src/app/main/ui/workspace/left_toolbar.cljs | 2 +- frontend/translations/de.po | 14 +++++++------- frontend/translations/el.po | 14 +++++++------- frontend/translations/en.po | 14 +++++++------- frontend/translations/es.po | 12 ++++++------ frontend/translations/fr.po | 14 +++++++------- frontend/translations/ru.po | 12 ++++++------ frontend/translations/zh_cn.po | 14 +++++++------- 9 files changed, 50 insertions(+), 50 deletions(-) diff --git a/frontend/src/app/main/data/workspace/shortcuts.cljs b/frontend/src/app/main/data/workspace/shortcuts.cljs index 2ca3c32cc..56f1e0d26 100644 --- a/frontend/src/app/main/data/workspace/shortcuts.cljs +++ b/frontend/src/app/main/data/workspace/shortcuts.cljs @@ -155,8 +155,8 @@ :command "c" :fn #(st/emit! (dwd/select-for-drawing :comments))} - :insert-image {:tooltip "K" - :command "k" + :insert-image {:tooltip (ds/shift "K") + :command "shift+k" :fn #(-> "image-upload" dom/get-element dom/click)} :copy {:tooltip (ds/meta "C") diff --git a/frontend/src/app/main/ui/workspace/left_toolbar.cljs b/frontend/src/app/main/ui/workspace/left_toolbar.cljs index a2284e4ed..1692a392f 100644 --- a/frontend/src/app/main/ui/workspace/left_toolbar.cljs +++ b/frontend/src/app/main/ui/workspace/left_toolbar.cljs @@ -45,7 +45,7 @@ (st/emit! (dw/upload-media-workspace params)))))] [:li.tooltip.tooltip-right - {:alt (tr "workspace.toolbar.image") + {:alt (tr "workspace.toolbar.image" (sc/get-tooltip :insert-image)) :on-click on-click} [:* i/image diff --git a/frontend/translations/de.po b/frontend/translations/de.po index ee2c448b3..906647940 100644 --- a/frontend/translations/de.po +++ b/frontend/translations/de.po @@ -2250,15 +2250,15 @@ msgstr "Stift (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" -msgstr "Ellipse (E)" +msgstr "Ellipse (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" -msgstr "Zeichenfläche (A)" +msgstr "Zeichenfläche (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" -msgstr "Bild (K)" +msgstr "Bild (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" @@ -2266,15 +2266,15 @@ msgstr "Verschieben" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" -msgstr "Pfad (P)" +msgstr "Pfad (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" -msgstr "Rechteck (R)" +msgstr "Rechteck (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" -msgstr "Text (T)" +msgstr "Text (%s)" #: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" @@ -2404,4 +2404,4 @@ msgid "workspace.updates.update" msgstr "Aktualisieren" msgid "workspace.viewport.click-to-close-path" -msgstr "Klicken Sie, um den Pfad zu schließen" \ No newline at end of file +msgstr "Klicken Sie, um den Pfad zu schließen" diff --git a/frontend/translations/el.po b/frontend/translations/el.po index 2aa22d3f1..ad217b374 100644 --- a/frontend/translations/el.po +++ b/frontend/translations/el.po @@ -2204,15 +2204,15 @@ msgstr "Στροφή (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" -msgstr "Έλλειψη (Ε)" +msgstr "Έλλειψη (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" -msgstr "Artboard (Α)" +msgstr "Artboard (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" -msgstr "Εικόνα (Κ)" +msgstr "Εικόνα (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" @@ -2220,15 +2220,15 @@ msgstr "" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" -msgstr "Path (Ρ)" +msgstr "Path (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" -msgstr "Ορθογώνιο (R)" +msgstr "Ορθογώνιο (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" -msgstr "Κείμενο (Τ)" +msgstr "Κείμενο (%s)" #: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" @@ -2358,4 +2358,4 @@ msgid "workspace.updates.update" msgstr "Ενημέρωση" msgid "workspace.viewport.click-to-close-path" -msgstr "Κάντε κλικ για να κλείσετε τη διαδρομή" \ No newline at end of file +msgstr "Κάντε κλικ για να κλείσετε τη διαδρομή" diff --git a/frontend/translations/en.po b/frontend/translations/en.po index e8a386c23..ad640977e 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -2417,15 +2417,15 @@ msgstr "Curve (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" -msgstr "Ellipse (E)" +msgstr "Ellipse (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" -msgstr "Artboard (A)" +msgstr "Artboard (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" -msgstr "Image (K)" +msgstr "Image (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" @@ -2433,15 +2433,15 @@ msgstr "Move" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" -msgstr "Path (P)" +msgstr "Path (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" -msgstr "Rectangle (R)" +msgstr "Rectangle (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" -msgstr "Text (T)" +msgstr "Text (%s)" #: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" @@ -2571,4 +2571,4 @@ msgid "workspace.updates.update" msgstr "Update" msgid "workspace.viewport.click-to-close-path" -msgstr "Click to close the path" \ No newline at end of file +msgstr "Click to close the path" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 14c8bec4e..c299f9911 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -2422,15 +2422,15 @@ msgstr "Curva (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" -msgstr "Elipse (E)" +msgstr "Elipse (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" -msgstr "Tablero (A)" +msgstr "Tablero (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" -msgstr "Imagen (K)" +msgstr "Imagen (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" @@ -2438,15 +2438,15 @@ msgstr "Mover" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" -msgstr "Ruta (P)" +msgstr "Ruta (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" -msgstr "Rectángulo (R)" +msgstr "Rectángulo (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" -msgstr "Texto (T)" +msgstr "Texto (%s)" #: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" diff --git a/frontend/translations/fr.po b/frontend/translations/fr.po index 4f7151394..902bb7036 100644 --- a/frontend/translations/fr.po +++ b/frontend/translations/fr.po @@ -2036,15 +2036,15 @@ msgstr "Courbe (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" -msgstr "Ellipse (E)" +msgstr "Ellipse (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" -msgstr "Plan de travail (A)" +msgstr "Plan de travail (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" -msgstr "Image (K)" +msgstr "Image (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" @@ -2052,15 +2052,15 @@ msgstr "Déplacer" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" -msgstr "Chemin (P)" +msgstr "Chemin (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" -msgstr "Rectangle (R)" +msgstr "Rectangle (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" -msgstr "Texte (T)" +msgstr "Texte (%s)" #: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" @@ -2190,4 +2190,4 @@ msgid "workspace.updates.update" msgstr "Actualiser" msgid "workspace.viewport.click-to-close-path" -msgstr "Cliquez pour fermer le chemin" \ No newline at end of file +msgstr "Cliquez pour fermer le chemin" diff --git a/frontend/translations/ru.po b/frontend/translations/ru.po index 3cb0f1e42..055bd29d5 100644 --- a/frontend/translations/ru.po +++ b/frontend/translations/ru.po @@ -1146,11 +1146,11 @@ msgstr "" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" -msgstr "Рабочая область (A)" +msgstr "Рабочая область (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" -msgstr "Изображение (K)" +msgstr "Изображение (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" @@ -1158,15 +1158,15 @@ msgstr "Вытеснить" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" -msgstr "Линия (P)" +msgstr "Линия (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" -msgstr "Прямоугольник (R)" +msgstr "Прямоугольник (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" -msgstr "Текст (T)" +msgstr "Текст (%s)" #: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.dismiss" @@ -1181,4 +1181,4 @@ msgid "workspace.updates.update" msgstr "" msgid "workspace.viewport.click-to-close-path" -msgstr "Кликни чтобы закончить фигуру" \ No newline at end of file +msgstr "Кликни чтобы закончить фигуру" diff --git a/frontend/translations/zh_cn.po b/frontend/translations/zh_cn.po index 9ade5b982..636c10c8f 100644 --- a/frontend/translations/zh_cn.po +++ b/frontend/translations/zh_cn.po @@ -2066,15 +2066,15 @@ msgstr "曲线(%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" -msgstr "椭圆(E)" +msgstr "椭圆(%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" -msgstr "画板(A)" +msgstr "画板(%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" -msgstr "图片(K)" +msgstr "图片(%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" @@ -2082,15 +2082,15 @@ msgstr "移动" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" -msgstr "路径(P)" +msgstr "路径(%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" -msgstr "矩形(R)" +msgstr "矩形(%s)" #: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" -msgstr "文本(T)" +msgstr "文本(%s)" #: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" @@ -2220,4 +2220,4 @@ msgid "workspace.updates.update" msgstr "更新" msgid "workspace.viewport.click-to-close-path" -msgstr "单击以闭合路径" \ No newline at end of file +msgstr "单击以闭合路径" From 4c48f34d6163b4c055e479be4605bd575dedf7f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Tue, 4 May 2021 09:59:21 +0200 Subject: [PATCH 041/135] :tada: Add resize scale for texts --- CHANGES.md | 3 +++ common/app/common/geom/shapes/transforms.cljc | 22 ++++++++++++++++++- frontend/src/app/main/data/workspace.cljs | 1 + .../src/app/main/data/workspace/drawing.cljs | 7 +++++- .../app/main/data/workspace/shortcuts.cljs | 6 ++++- .../app/main/data/workspace/transforms.cljs | 10 +++++++-- .../src/app/main/ui/workspace/header.cljs | 7 ++++++ frontend/translations/en.po | 8 +++++++ frontend/translations/es.po | 8 +++++++ 9 files changed, 67 insertions(+), 5 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index aecc5d190..5df97e14f 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -3,6 +3,9 @@ ## :rocket: Next ### :sparkles: New features + +- Add option to interactively scale text [Taiga #1527](https://tree.taiga.io/project/penpot/us/1527) + ### :bug: Bugs fixed - Remove interactions when the destination artboard is deleted [Taiga #1656](https://tree.taiga.io/project/penpot/issue/1656) diff --git a/common/app/common/geom/shapes/transforms.cljc b/common/app/common/geom/shapes/transforms.cljc index cf9845741..dcfdd31fc 100644 --- a/common/app/common/geom/shapes/transforms.cljc +++ b/common/app/common/geom/shapes/transforms.cljc @@ -6,13 +6,15 @@ (ns app.common.geom.shapes.transforms (:require + [app.common.attrs :as attrs] [app.common.geom.matrix :as gmt] [app.common.geom.point :as gpt] [app.common.geom.shapes.common :as gco] [app.common.geom.shapes.path :as gpa] [app.common.geom.shapes.rect :as gpr] [app.common.math :as mth] - [app.common.data :as d])) + [app.common.data :as d] + [app.common.text :as txt])) ;; --- Relative Movement @@ -328,6 +330,23 @@ (dissoc :modifiers)))) shape))) +(defn apply-text-resize + [shape orig-shape modifiers] + (if (and (= (:type shape) :text) + (:resize-scale-text modifiers)) + (let [merge-attrs (fn [attrs] + (let [font-size (-> (get attrs :font-size 14) + (d/parse-double) + (* (-> modifiers :resize-vector :x)) + (str) + )] + (attrs/merge attrs {:font-size font-size})))] + (update shape :content #(txt/transform-nodes + txt/is-text-node? + merge-attrs + %))) + shape)) + (defn transform-shape [shape] (let [shape (apply-displacement shape) center (gco/center-shape shape) @@ -337,6 +356,7 @@ (-> shape (set-flip modifiers) (apply-transform transform) + (apply-text-resize shape modifiers) (dissoc :modifiers))) shape))) diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index eb04c8714..2308d2ca7 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -73,6 +73,7 @@ :rules :display-grid :snap-grid + :scale-text :dynamic-alignment}) (s/def ::layout-flags (s/coll-of ::layout-flag)) diff --git a/frontend/src/app/main/data/workspace/drawing.cljs b/frontend/src/app/main/data/workspace/drawing.cljs index 553b31038..503d6bee9 100644 --- a/frontend/src/app/main/data/workspace/drawing.cljs +++ b/frontend/src/app/main/data/workspace/drawing.cljs @@ -30,7 +30,12 @@ (ptk/reify ::select-for-drawing ptk/UpdateEvent (update [_ state] - (update state :workspace-drawing assoc :tool tool :object data)) + (-> state + (update :workspace-drawing assoc :tool tool :object data) + ;; When changing drawing tool disable "scale text" mode + ;; automatically, to help users that ignore how this + ;; mode works. + (update :workspace-layout disj :scale-text))) ptk/WatchEvent (watch [_ state stream] diff --git a/frontend/src/app/main/data/workspace/shortcuts.cljs b/frontend/src/app/main/data/workspace/shortcuts.cljs index 56f1e0d26..64b41594f 100644 --- a/frontend/src/app/main/data/workspace/shortcuts.cljs +++ b/frontend/src/app/main/data/workspace/shortcuts.cljs @@ -61,7 +61,11 @@ :toggle-alignment {:tooltip (ds/meta "\\") :command (ds/c-mod "\\") :fn #(st/emit! (dw/toggle-layout-flags :dynamic-alignment))} - + + :toggle-scale-text {:tooltip "K" + :command "k" + :fn #(st/emit! (dw/toggle-layout-flags :scale-text))} + :increase-zoom {:tooltip "+" :command "+" :fn #(st/emit! (dw/increase-zoom nil))} diff --git a/frontend/src/app/main/data/workspace/transforms.cljs b/frontend/src/app/main/data/workspace/transforms.cljs index e258af8c9..110f5c8c7 100644 --- a/frontend/src/app/main/data/workspace/transforms.cljs +++ b/frontend/src/app/main/data/workspace/transforms.cljs @@ -81,11 +81,16 @@ ;; -- RESIZE (defn start-resize [handler initial ids shape] - (letfn [(resize [shape initial resizing-shapes [point lock? point-snap]] + (letfn [(resize [shape initial resizing-shapes layout [point lock? point-snap]] (let [{:keys [width height]} (:selrect shape) {:keys [rotation]} shape shapev (-> (gpt/point width height)) + scale-text (:scale-text layout) + + ;; Force lock if the scale text mode is active + lock? (or lock? scale-text) + ;; Vector modifiers depending on the handler handler-modif (let [[x y] (handler-modifiers handler)] (gpt/point x y)) @@ -119,6 +124,7 @@ {:resize-vector scalev :resize-origin origin :resize-transform shape-transform + :resize-scale-text scale-text :resize-transform-inverse shape-transform-inverse} false)))) @@ -154,7 +160,7 @@ (rx/switch-map (fn [[point :as current]] (->> (snap/closest-snap-point page-id resizing-shapes layout zoom point) (rx/map #(conj current %))))) - (rx/mapcat (partial resize shape initial-position resizing-shapes)) + (rx/mapcat (partial resize shape initial-position resizing-shapes layout)) (rx/take-until stoper)) (rx/of (apply-modifiers ids) (finish-transform)))))))) diff --git a/frontend/src/app/main/ui/workspace/header.cljs b/frontend/src/app/main/ui/workspace/header.cljs index 77cd0f51a..309803e9e 100644 --- a/frontend/src/app/main/ui/workspace/header.cljs +++ b/frontend/src/app/main/ui/workspace/header.cljs @@ -218,6 +218,13 @@ (tr "workspace.header.menu.enable-dynamic-alignment"))] [:span.shortcut (sc/get-tooltip :toggle-alignment)]] + [:li {:on-click #(st/emit! (dw/toggle-layout-flags :scale-text))} + [:span + (if (contains? layout :scale-text) + (tr "workspace.header.menu.disable-scale-text") + (tr "workspace.header.menu.enable-scale-text"))] + [:span.shortcut (sc/get-tooltip :toggle-scale-text)]] + (if (:is-shared file) [:li {:on-click on-remove-shared} [:span (tr "dashboard.remove-shared")]] diff --git a/frontend/translations/en.po b/frontend/translations/en.po index ad640977e..f3bd4316e 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -1611,6 +1611,10 @@ msgstr "Radial gradient" msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Disable dynamic alignment" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.disable-scale-text" +msgstr "Disable scale text" + #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-grid" msgstr "Disable snap to grid" @@ -1619,6 +1623,10 @@ msgstr "Disable snap to grid" msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Enable dynamic aligment" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.enable-scale-text" +msgstr "Enable scale text" + #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-grid" msgstr "Snap to grid" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index c299f9911..f8f8e956f 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -1614,6 +1614,10 @@ msgstr "Degradado radial" msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Desactivar alineamiento dinámico" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.disable-scale-text" +msgstr "Desactivar escalar texto" + #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-grid" msgstr "Desactivar alinear a la rejilla" @@ -1622,6 +1626,10 @@ msgstr "Desactivar alinear a la rejilla" msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Activar alineamiento dinámico" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.enable-scale-text" +msgstr "Activar escalar texto" + #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-grid" msgstr "Alinear a la rejilla" From a03882de768a91e9b073c0ef44dc31cbb16c9283 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Sun, 9 May 2021 14:05:42 +0200 Subject: [PATCH 042/135] :paperclip: Minor changes on log4j2-devenv.xml file. --- backend/resources/log4j2-devenv.xml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/backend/resources/log4j2-devenv.xml b/backend/resources/log4j2-devenv.xml index eb38cb183..1b9dba567 100644 --- a/backend/resources/log4j2-devenv.xml +++ b/backend/resources/log4j2-devenv.xml @@ -12,6 +12,11 @@ + + + tcp://localhost:45556 + + @@ -30,10 +35,12 @@ + - - + + + From e7b3f12b71a891a1a3a8193dcbd3069afe436684 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 6 May 2021 20:45:55 +0200 Subject: [PATCH 043/135] :fire: Remove duplicated change apply operation. --- .../src/app/main/data/workspace/changes.cljs | 17 ++++++----------- .../app/main/data/workspace/persistence.cljs | 3 +-- frontend/src/app/main/refs.cljs | 8 ++++---- .../app/main/ui/workspace/sidebar/assets.cljs | 16 ++++++++-------- .../app/main/ui/workspace/sidebar/sitemap.cljs | 2 +- 5 files changed, 20 insertions(+), 26 deletions(-) diff --git a/frontend/src/app/main/data/workspace/changes.cljs b/frontend/src/app/main/data/workspace/changes.cljs index 37a95099a..dbb4830be 100644 --- a/frontend/src/app/main/data/workspace/changes.cljs +++ b/frontend/src/app/main/data/workspace/changes.cljs @@ -159,10 +159,8 @@ ([changes undo-changes] (commit-changes changes undo-changes {})) ([changes undo-changes {:keys [save-undo? - commit-local? file-id] - :or {save-undo? true - commit-local? false} + :or {save-undo? true} :as opts}] (us/assert ::cp/changes changes) (us/assert ::cp/changes undo-changes) @@ -173,23 +171,20 @@ (let [error (volatile! nil)] (ptk/reify ::commit-changes cljs.core/IDeref - (-deref [_] {:file-id file-id :changes changes}) + (-deref [_] + {:file-id file-id + :changes changes}) ptk/UpdateEvent (update [_ state] (let [current-file-id (get state :current-file-id) file-id (or file-id current-file-id) - path1 (if (= file-id current-file-id) - [:workspace-file :data] - [:workspace-libraries file-id :data]) - path2 (if (= file-id current-file-id) + path (if (= file-id current-file-id) [:workspace-data] [:workspace-libraries file-id :data])] (try (us/assert ::spec/changes changes) - (let [state (update-in state path1 cp/process-changes changes false)] - (cond-> state - commit-local? (update-in path2 cp/process-changes changes false))) + (update-in state path cp/process-changes changes false) (catch :default e (vreset! error e) state)))) diff --git a/frontend/src/app/main/data/workspace/persistence.cljs b/frontend/src/app/main/data/workspace/persistence.cljs index 7b5d4433b..627470a71 100644 --- a/frontend/src/app/main/data/workspace/persistence.cljs +++ b/frontend/src/app/main/data/workspace/persistence.cljs @@ -211,8 +211,7 @@ (if (= file-id (:current-file-id state)) (-> state (update-in [:workspace-file :revn] max revn) - (update :workspace-data cp/process-changes changes) - (update-in [:workspace-file :data] cp/process-changes changes)) + (update :workspace-data cp/process-changes changes)) (-> state (update-in [:workspace-libraries file-id :revn] max revn) (update-in [:workspace-libraries file-id :data] diff --git a/frontend/src/app/main/refs.cljs b/frontend/src/app/main/refs.cljs index 4159948d6..41eff4d51 100644 --- a/frontend/src/app/main/refs.cljs +++ b/frontend/src/app/main/refs.cljs @@ -138,8 +138,8 @@ (def workspace-file-colors (l/derived (fn [state] - (when-let [file (:workspace-file state)] - (->> (get-in file [:data :colors]) + (when-let [file (:workspace-data state)] + (->> (:colors file) (d/mapm #(assoc %2 :file-id (:id file)))))) st/state)) @@ -150,8 +150,8 @@ (def workspace-file-typography (l/derived (fn [state] - (when-let [file (:workspace-file state)] - (get-in file [:data :typographies]))) + (when-let [file (:workspace-data state)] + (:typographies file))) st/state)) (def workspace-project diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs index cac7375bf..fe111fa94 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs @@ -811,9 +811,9 @@ (defn file-colors-ref [id] (l/derived (fn [state] - (let [wfile (:workspace-file state)] + (let [wfile (:workspace-data state)] (if (= (:id wfile) id) - (vals (get-in wfile [:data :colors])) + (vals (get-in wfile [:colors])) (vals (get-in state [:workspace-libraries id :data :colors]))))) st/state =)) @@ -821,27 +821,27 @@ (defn file-media-ref [id] (l/derived (fn [state] - (let [wfile (:workspace-file state)] + (let [wfile (:workspace-data state)] (if (= (:id wfile) id) - (vals (get-in wfile [:data :media])) + (vals (get-in wfile [:media])) (vals (get-in state [:workspace-libraries id :data :media]))))) st/state =)) (defn file-components-ref [id] (l/derived (fn [state] - (let [wfile (:workspace-file state)] + (let [wfile (:workspace-data state)] (if (= (:id wfile) id) - (vals (get-in wfile [:data :components])) + (vals (get-in wfile [:components])) (vals (get-in state [:workspace-libraries id :data :components]))))) st/state =)) (defn file-typography-ref [id] (l/derived (fn [state] - (let [wfile (:workspace-file state)] + (let [wfile (:workspace-data state)] (if (= (:id wfile) id) - (vals (get-in wfile [:data :typographies])) + (vals (get-in wfile [:typographies])) (vals (get-in state [:workspace-libraries id :data :typographies]))))) st/state =)) diff --git a/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs b/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs index 2cf441813..ae5ac0ed8 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs @@ -164,7 +164,7 @@ (defn- make-page-ref [page-id] (l/derived (fn [state] - (let [page (get-in state [:workspace-file :data :pages-index page-id])] + (let [page (get-in state [:workspace-data :pages-index page-id])] (select-keys page [:id :name]))) st/state =)) From c70bc5baff6f5a4b9e0e110ebcc4edf3f4f2cf23 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 7 May 2021 11:36:34 +0200 Subject: [PATCH 044/135] :recycle: Refactor dashboard state management. Mainly for performance, also affects backend endpoints. --- backend/src/app/rpc/queries/files.clj | 151 +++-- backend/src/app/rpc/queries/recent_files.clj | 2 + .../tests/app/tests/test_services_files.clj | 16 +- frontend/src/app/main/data/dashboard.cljs | 571 +++++++++++------- frontend/src/app/main/data/users.cljs | 29 +- frontend/src/app/main/data/workspace.cljs | 79 +-- .../src/app/main/data/workspace/changes.cljs | 12 +- .../app/main/data/workspace/path/changes.cljs | 17 +- .../app/main/data/workspace/persistence.cljs | 4 +- .../src/app/main/data/workspace/undo.cljs | 4 +- frontend/src/app/main/refs.cljs | 48 +- frontend/src/app/main/ui.cljs | 146 ++--- frontend/src/app/main/ui/dashboard.cljs | 35 +- .../src/app/main/ui/dashboard/file_menu.cljs | 226 ++++--- frontend/src/app/main/ui/dashboard/files.cljs | 9 +- frontend/src/app/main/ui/dashboard/grid.cljs | 168 +++--- .../src/app/main/ui/dashboard/libraries.cljs | 16 +- .../app/main/ui/dashboard/project_menu.cljs | 85 ++- .../src/app/main/ui/dashboard/projects.cljs | 80 ++- .../src/app/main/ui/dashboard/search.cljs | 36 +- .../src/app/main/ui/dashboard/sidebar.cljs | 173 ++---- frontend/src/app/main/ui/dashboard/team.cljs | 200 +++--- frontend/src/app/main/ui/workspace.cljs | 10 +- 23 files changed, 1110 insertions(+), 1007 deletions(-) diff --git a/backend/src/app/rpc/queries/files.clj b/backend/src/app/rpc/queries/files.clj index 9f0a0b3ff..066ee7e10 100644 --- a/backend/src/app/rpc/queries/files.clj +++ b/backend/src/app/rpc/queries/files.clj @@ -12,6 +12,7 @@ [app.db :as db] [app.rpc.permissions :as perms] [app.rpc.queries.projects :as projects] + [app.rpc.queries.teams :as teams] [app.util.blob :as blob] [app.util.services :as sv] [clojure.spec.alpha :as s])) @@ -97,7 +98,13 @@ ppr.is_owner = true or ppr.can_edit = true) ) - select distinct f.* + select distinct + f.id, + f.project_id, + f.created_at, + f.modified_at, + f.name, + f.is_shared from file as f inner join projects as pr on (f.project_id = pr.id) where f.name ilike ('%' || ? || '%') @@ -109,14 +116,14 @@ (sv/defmethod ::search-files [{:keys [pool] :as cfg} {:keys [profile-id team-id search-term] :as params}] - (let [rows (db/exec! pool [sql:search-files - profile-id team-id - profile-id team-id - search-term])] - (into [] decode-row-xf rows))) + (db/exec! pool [sql:search-files + profile-id team-id + profile-id team-id + search-term])) +;; --- Query: Files -;; --- Query: Project Files +;; DEPRECATED: should be removed probably on 1.6.x (def ^:private sql:files "select f.* @@ -136,6 +143,29 @@ (into [] decode-row-xf (db/exec! conn [sql:files project-id])))) +;; --- Query: Project Files + +(def ^:private sql:project-files + "select f.id, + f.project_id, + f.created_at, + f.modified_at, + f.name, + f.is_shared + from file as f + where f.project_id = ? + and f.deleted_at is null + order by f.modified_at desc") + +(s/def ::project-files + (s/keys :req-un [::profile-id ::project-id])) + +(sv/defmethod ::project-files + [{:keys [pool] :as cfg} {:keys [profile-id project-id] :as params}] + (with-open [conn (db/open pool)] + (projects/check-read-permissions! conn profile-id project-id) + (db/exec! conn [sql:project-files project-id]))) + ;; --- Query: File (By ID) (defn retrieve-file @@ -154,17 +184,20 @@ (retrieve-file conn id))) (s/def ::page - (s/keys :req-un [::profile-id ::id ::file-id])) + (s/keys :req-un [::profile-id ::file-id])) (sv/defmethod ::page - [{:keys [pool] :as cfg} {:keys [profile-id file-id id]}] + [{:keys [pool] :as cfg} {:keys [profile-id file-id]}] (db/with-atomic [conn pool] (check-edition-permissions! conn profile-id file-id) - (let [file (retrieve-file conn file-id)] - (get-in file [:data :pages-index id])))) + (let [file (retrieve-file conn file-id) + page-id (get-in file [:data :pages 0])] + (get-in file [:data :pages-index page-id])))) ;; --- Query: Shared Library Files +;; DEPRECATED: and will be removed on 1.6.x + (def ^:private sql:shared-files "select f.* from file as f @@ -183,11 +216,35 @@ (into [] decode-row-xf (db/exec! pool [sql:shared-files team-id]))) +;; --- Query: Shared Library Files + +(def ^:private sql:team-shared-files + "select f.id, + f.project_id, + f.created_at, + f.modified_at, + f.name, + f.is_shared + from file as f + inner join project as p on (p.id = f.project_id) + where f.is_shared = true + and f.deleted_at is null + and p.deleted_at is null + and p.team_id = ? + order by f.modified_at desc") + +(s/def ::team-shared-files + (s/keys :req-un [::profile-id ::team-id])) + +(sv/defmethod ::team-shared-files + [{:keys [pool] :as cfg} {:keys [profile-id team-id] :as params}] + (db/exec! pool [sql:team-shared-files team-id])) + + ;; --- Query: File Libraries used by a File (def ^:private sql:file-libraries "select fl.*, - ? as is_indirect, flr.synced_at as synced_at from file as fl inner join file_library_rel as flr on (flr.library_file_id = fl.id) @@ -196,22 +253,12 @@ (defn retrieve-file-libraries [conn is-indirect file-id] - (let [direct-libraries - (into [] decode-row-xf (db/exec! conn [sql:file-libraries is-indirect file-id])) - - select-distinct - (fn [used-libraries new-libraries] - (remove (fn [new-library] - (some #(= (:id %) (:id new-library)) used-libraries)) - new-libraries))] - - (reduce (fn [used-libraries library] - (concat used-libraries - (select-distinct - used-libraries - (retrieve-file-libraries conn true (:id library))))) - direct-libraries - direct-libraries))) + (let [libraries (->> (db/exec! conn [sql:file-libraries file-id]) + (map #(assoc :is-indirect is-indirect)) + (into #{} decode-row-xf))] + (reduce #(into %1 (retrieve-file-libraries conn true %2)) + libraries + (map :id libraries)))) (s/def ::file-libraries (s/keys :req-un [::profile-id ::file-id])) @@ -222,31 +269,35 @@ (check-edition-permissions! conn profile-id file-id) (retrieve-file-libraries conn false file-id))) +;; --- QUERY: team-recent-files -;; --- Query: Single File Library +(def sql:team-recent-files + "with recent_files as ( + select f.id, + f.project_id, + f.created_at, + f.modified_at, + f.name, + f.is_shared, + row_number() over w as row_num + from file as f + join project as p on (p.id = f.project_id) + where p.team_id = ? + and p.deleted_at is null + and f.deleted_at is null + window w as (partition by f.project_id order by f.modified_at desc) + order by f.modified_at desc + ) + select * from recent_files where row_num <= 10;") -;; TODO: this looks like is duplicate of `::file` +(s/def ::team-recent-files + (s/keys :req-un [::profile-id ::team-id])) -(def ^:private sql:file-library - "select fl.* - from file as fl - where fl.id = ?") - -(defn retrieve-file-library - [conn file-id] - (let [rows (db/exec! conn [sql:file-library file-id])] - (when-not (seq rows) - (ex/raise :type :not-found)) - (first (sequence decode-row-xf rows)))) - -(s/def ::file-library - (s/keys :req-un [::profile-id ::file-id])) - -(sv/defmethod ::file-library - [{:keys [pool] :as cfg} {:keys [profile-id file-id] :as params}] - (db/with-atomic [conn pool] - (check-edition-permissions! conn profile-id file-id) ;; TODO: this should check read permissions - (retrieve-file-library conn file-id))) +(sv/defmethod ::team-recent-files + [{:keys [pool] :as cfg} {:keys [profile-id team-id]}] + (with-open [conn (db/open pool)] + (teams/check-read-permissions! conn profile-id team-id) + (db/exec! conn [sql:team-recent-files team-id]))) ;; --- Helpers diff --git a/backend/src/app/rpc/queries/recent_files.clj b/backend/src/app/rpc/queries/recent_files.clj index 51c1bbe3f..e878d34e6 100644 --- a/backend/src/app/rpc/queries/recent_files.clj +++ b/backend/src/app/rpc/queries/recent_files.clj @@ -13,6 +13,8 @@ [app.util.services :as sv] [clojure.spec.alpha :as s])) +;; DEPRECATED: should be removed on 1.6.x + (def sql:recent-files "with recent_files as ( select f.*, row_number() over w as row_num diff --git a/backend/tests/app/tests/test_services_files.clj b/backend/tests/app/tests/test_services_files.clj index 68f34eacb..248dc86f2 100644 --- a/backend/tests/app/tests/test_services_files.clj +++ b/backend/tests/app/tests/test_services_files.clj @@ -52,7 +52,7 @@ (t/is (= (:id data) (:id result))) (t/is (= (:name data) (:name result)))))) - (t/testing "query files" + (t/testing "query files (deprecated)" (let [data {::th/type :files :project-id proj-id :profile-id (:id prof)} @@ -67,6 +67,20 @@ (t/is (= "new name" (get-in result [0 :name]))) (t/is (= 1 (count (get-in result [0 :data :pages]))))))) + (t/testing "query files" + (let [data {::th/type :project-files + :project-id proj-id + :profile-id (:id prof)} + out (th/query! data)] + + ;; (th/print-result! out) + (t/is (nil? (:error out))) + + (let [result (:result out)] + (t/is (= 1 (count result))) + (t/is (= file-id (get-in result [0 :id]))) + (t/is (= "new name" (get-in result [0 :name])))))) + (t/testing "query single file without users" (let [data {::th/type :file :profile-id (:id prof) diff --git a/frontend/src/app/main/data/dashboard.cljs b/frontend/src/app/main/data/dashboard.cljs index 40f09051f..e69e39fe2 100644 --- a/frontend/src/app/main/data/dashboard.cljs +++ b/frontend/src/app/main/data/dashboard.cljs @@ -54,146 +54,194 @@ (s/def ::file (s/keys :req-un [::id ::name - ::created-at - ::modified-at - ::project-id])) + ::project-id] + :opt-un [::created-at + ::modified-at])) (s/def ::set-of-uuid (s/every ::us/uuid :kind set?)) - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Data Fetching +;; Initialization ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defn fetch-team +(declare fetch-projects) + +(defn initialize [{:keys [id] :as params}] - (letfn [(fetched [team state] - (update state :teams assoc id team))] - (ptk/reify ::fetch-team - ptk/WatchEvent - (watch [_ state stream] - (let [profile (:profile state)] - (->> (rp/query :team params) - (rx/map #(partial fetched %)))))))) + (us/assert ::us/uuid id) + (ptk/reify ::initialize + ptk/UpdateEvent + (update [_ state] + (let [prev-team-id (:current-team-id state)] + (cond-> state + (not= prev-team-id id) + (-> (assoc :current-team-id id) + (dissoc :dashboard-files) + (dissoc :dashboard-projects) + (dissoc :dashboard-recent-files) + (dissoc :dashboard-team-members) + (dissoc :dashboard-team-stats))))) + + ptk/WatchEvent + (watch [_ state stream] + (rx/merge + (ptk/watch (fetch-projects) state stream) + (ptk/watch (du/fetch-teams) state stream) + (ptk/watch (du/fetch-users {:team-id id}) state stream))))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Data Fetching (context aware: current team) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; --- EVENT: fetch-team-members + +(defn team-members-fetched + [members] + (ptk/reify ::team-members-fetched + ptk/UpdateEvent + (update [_ state] + (assoc state :dashboard-team-members (d/index-by :id members))))) (defn fetch-team-members - [{:keys [id] :as params}] - (us/assert ::us/uuid id) - (letfn [(fetched [members state] - (->> members - (d/index-by :id) - (assoc-in state [:team-members id])))] - (ptk/reify ::fetch-team-members - ptk/WatchEvent - (watch [_ state stream] - (->> (rp/query :team-members {:team-id id}) - (rx/map #(partial fetched %))))))) - -(defn fetch-team-stats - [{:keys [id] :as team}] - (us/assert ::us/uuid id) + [] (ptk/reify ::fetch-team-members ptk/WatchEvent (watch [_ state stream] - (let [fetched #(assoc-in %2 [:team-stats id] %1)] - (->> (rp/query :team-stats {:team-id id}) - (rx/map #(partial fetched %))))))) + (let [team-id (:current-team-id state)] + (->> (rp/query :team-members {:team-id team-id}) + (rx/map team-members-fetched)))))) -(defn fetch-projects - [{:keys [team-id] :as params}] - (us/assert ::us/uuid team-id) - (letfn [(fetched [projects state] - (assoc-in state [:projects team-id] (d/index-by :id projects)))] - (ptk/reify ::fetch-projects - ptk/WatchEvent - (watch [_ state stream] - (->> (rp/query :projects {:team-id team-id}) - (rx/map #(partial fetched %))))))) +;; --- EVENT: fetch-team-stats -(defn fetch-bundle - [{:keys [id] :as params}] - (us/assert ::us/uuid id) - (ptk/reify ::fetch-bundle +(defn team-stats-fetched + [stats] + (ptk/reify ::team-stats-fetched + ptk/UpdateEvent + (update [_ state] + (assoc state :dashboard-team-stats stats)))) + +(defn fetch-team-stats + [] + (ptk/reify ::fetch-team-stats ptk/WatchEvent (watch [_ state stream] - (let [profile (:profile state)] - (rx/merge (ptk/watch (fetch-team params) state stream) - (ptk/watch (fetch-projects {:team-id id}) state stream) - (ptk/watch (du/fetch-users {:team-id id}) state stream)))))) + (let [team-id (:current-team-id state)] + (->> (rp/query :team-stats {:team-id team-id}) + (rx/map team-stats-fetched)))))) -(s/def :internal.event.search-files/team-id ::us/uuid) -(s/def :internal.event.search-files/search-term (s/nilable ::us/string)) +;; --- EVENT: fetch-projects -(s/def :internal.event/search-files - (s/keys :req-un [:internal.event.search-files/search-term - :internal.event.search-files/team-id])) +(defn projects-fetched + [projects] + (ptk/reify ::projects-fetched + ptk/UpdateEvent + (update [_ state] + (let [projects (d/index-by :id projects)] + (assoc state :dashboard-projects projects))))) -(defn search-files +(defn fetch-projects + [] + (ptk/reify ::fetch-projects + ptk/WatchEvent + (watch [_ state stream] + (let [team-id (:current-team-id state)] + (->> (rp/query :projects {:team-id team-id}) + (rx/map projects-fetched)))))) + +;; --- EVENT: search + +(defn search-result-fetched + [result] + (ptk/reify ::search-result-fetched + ptk/UpdateEvent + (update [_ state] + (assoc state :dashboard-search-result result)))) + +(s/def ::search-term (s/nilable ::us/string)) +(s/def ::search + (s/keys :req-un [::search-term ])) + +(defn search [params] - (us/assert :internal.event/search-files params) - (letfn [(fetched [result state] - (update state :dashboard-local - assoc :search-result result))] - (ptk/reify ::search-files + (us/assert ::search params) + (ptk/reify ::search + ptk/UpdateEvent + (update [_ state] + (dissoc state :dashboard-search-result)) + + ptk/WatchEvent + (watch [_ state stream] + (let [team-id (:current-team-id state) + params (assoc params :team-id team-id)] + (->> (rp/query :search-files params) + (rx/map search-result-fetched)))))) + +;; --- EVENT: files + +(defn files-fetched + [project-id files] + (letfn [(remove-project-files [files] + (reduce-kv (fn [result id file] + (cond-> result + (= (:project-id file) project-id) (dissoc id))) + files + files))] + (ptk/reify ::files-fetched ptk/UpdateEvent (update [_ state] - (update state :dashboard-local - assoc :search-result nil)) - - ptk/WatchEvent - (watch [_ state stream] - (->> (rp/query :search-files params) - (rx/map #(partial fetched %))))))) + (update state :dashboard-files + (fn [state] + (let [state (remove-project-files state)] + (reduce #(assoc %1 (:id %2) %2) state files)))))))) (defn fetch-files [{:keys [project-id] :as params}] (us/assert ::us/uuid project-id) - (letfn [(fetched [files state] - (update state :files assoc project-id (d/index-by :id files)))] - (ptk/reify ::fetch-files - ptk/WatchEvent - (watch [_ state stream] - (->> (rp/query :files params) - (rx/map #(partial fetched %))))))) - -(defn fetch-shared-files - [{:keys [team-id] :as params}] - (us/assert ::us/uuid team-id) - (letfn [(fetched [files state] - (update state :shared-files assoc team-id (d/index-by :id files)))] - (ptk/reify ::fetch-shared-files - ptk/WatchEvent - (watch [_ state stream] - (->> (rp/query :shared-files {:team-id team-id}) - (rx/map #(partial fetched %))))))) - -(declare recent-files-fetched) - -(defn fetch-recent-files - [{:keys [team-id] :as params}] - (us/assert ::us/uuid team-id) - (ptk/reify ::fetch-recent-files + (ptk/reify ::fetch-files ptk/WatchEvent (watch [_ state stream] - (let [params {:team-id team-id}] - (->> (rp/query :recent-files params) - (rx/map #(recent-files-fetched team-id %))))))) + (->> (rp/query :project-files {:project-id project-id}) + (rx/map #(files-fetched project-id %)))))) + +;; --- EVENT: shared-files + +(defn shared-files-fetched + [files] + (ptk/reify ::shared-files-fetched + ptk/UpdateEvent + (update [_ state] + (assoc state :dashboard-shared-files (d/index-by :id files))))) + +(defn fetch-shared-files + [] + (ptk/reify ::fetch-shared-files + ptk/WatchEvent + (watch [_ state stream] + (let [team-id (:current-team-id state)] + (->> (rp/query :team-shared-files {:team-id team-id}) + (rx/map shared-files-fetched)))))) + +;; --- EVENT: recent-files (defn recent-files-fetched - [team-id files] + [files] (ptk/reify ::recent-files-fetched ptk/UpdateEvent (update [_ state] - (let [projects (keys (get-in state [:projects team-id]))] - (reduce (fn [state project-id] - (let [files (filter #(= project-id (:project-id %)) files)] - (-> state - (update-in [:files project-id] merge (d/index-by :id files)) - (assoc-in [:recent-files project-id] (into #{} (map :id) files))))) - state - projects))))) + (let [files (d/index-by :id files)] + (-> state + (assoc :dashboard-recent-files files) + (update :dashboard-files d/merge files)))))) +(defn fetch-recent-files + [] + (ptk/reify ::fetch-recent-files + ptk/WatchEvent + (watch [_ state stream] + (let [team-id (:current-team-id state)] + (->> (rp/query :team-recent-files {:team-id team-id}) + (rx/map recent-files-fetched)))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Data Selection @@ -209,31 +257,34 @@ :selected-project nil)))) (defn toggle-file-select - [{:keys [file] :as params}] + [{:keys [id project-id] :as file}] + (us/assert ::file file) (ptk/reify ::toggle-file-select ptk/UpdateEvent (update [_ state] - (let [file-id (:id file) - selected-project (get-in state [:dashboard-local - :selected-project])] - (if (or (nil? selected-project) - (= selected-project (:project-id file))) + (let [selected-project-id (get-in state [:dashboard-local :selected-project])] + (if (or (nil? selected-project-id) + (= selected-project-id project-id)) (update state :dashboard-local (fn [local] (-> local - (update :selected-files - #(if (contains? % file-id) - (disj % file-id) - (conj % file-id))) - (assoc :selected-project - (:project-id file))))) + (update :selected-files #(if (contains? % id) + (disj % id) + (conj % id))) + (assoc :selected-project project-id)))) state))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Data Modification ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; --- Create Project +;; --- EVENT: create-team + +(defn team-created + [team] + (ptk/reify ::team-created + IDeref + (-deref [_] team))) (defn create-team [{:keys [name] :as params}] @@ -246,9 +297,10 @@ on-error rx/throw}} (meta params)] (->> (rp/mutation! :create-team {:name name}) (rx/tap on-success) - (rx/catch on-error) - (rx/map (fn [team] - (ptk/event ::ev/event {::ev/name "create-team" :id (:id team)})))))))) + (rx/map team-created) + (rx/catch on-error)))))) + +;; --- EVENT: update-team (defn update-team [{:keys [id name] :as params}] @@ -264,75 +316,75 @@ (rx/ignore))))) (defn update-team-photo - [{:keys [file team-id] :as params}] + [{:keys [file] :as params}] (us/assert ::di/file file) - (us/assert ::us/uuid team-id) (ptk/reify ::update-team-photo ptk/WatchEvent (watch [_ state stream] (let [on-success di/notify-finished-loading - - on-error #(do (di/notify-finished-loading) - (di/process-error %)) - - prepare #(hash-map :file % :team-id team-id)] + on-error #(do (di/notify-finished-loading) + (di/process-error %)) + team-id (:current-team-id state) + prepare #(hash-map :file % :team-id team-id)] (di/notify-start-loading) - (->> (rx/of file) (rx/map di/validate-file) (rx/map prepare) (rx/mapcat #(rp/mutation :update-team-photo %)) (rx/do on-success) - (rx/map #(fetch-team %)) + (rx/map du/fetch-teams) (rx/catch on-error)))))) (defn update-team-member-role - [{:keys [team-id role member-id] :as params}] - (us/assert ::us/uuid team-id) + [{:keys [role member-id] :as params}] (us/assert ::us/uuid member-id) (us/assert ::us/keyword role) (ptk/reify ::update-team-member-role ptk/WatchEvent (watch [_ state stream] - (->> (rp/mutation! :update-team-member-role params) - (rx/mapcat #(rx/of (fetch-team-members {:id team-id}) - (fetch-team {:id team-id}))))))) + (let [team-id (:current-team-id state) + params (assoc params :team-id team-id)] + (->> (rp/mutation! :update-team-member-role params) + (rx/mapcat (fn [_] + (rx/of (fetch-team-members) + (du/fetch-teams))))))))) (defn delete-team-member - [{:keys [team-id member-id] :as params}] - (us/assert ::us/uuid team-id) + [{:keys [member-id] :as params}] (us/assert ::us/uuid member-id) (ptk/reify ::delete-team-member ptk/WatchEvent (watch [_ state stream] - (->> (rp/mutation! :delete-team-member params) - (rx/mapcat #(rx/of (fetch-team-members {:id team-id}) - (fetch-team {:id team-id}))))))) + (let [team-id (:current-team-id state) + params (assoc params :team-id team-id)] + (->> (rp/mutation! :delete-team-member params) + (rx/mapcat (fn [_] + (rx/of (fetch-team-members) + (du/fetch-teams))))))))) (defn leave-team - [{:keys [id reassign-to] :as params}] - (us/assert ::team params) + [{:keys [reassign-to] :as params}] (us/assert (s/nilable ::us/uuid) reassign-to) (ptk/reify ::leave-team ptk/WatchEvent (watch [_ state stream] (let [{:keys [on-success on-error] :or {on-success identity - on-error rx/throw}} (meta params)] + on-error rx/throw}} (meta params) + team-id (:current-team-id state)] (rx/concat (when (uuid? reassign-to) - (->> (rp/mutation! :update-team-member-role {:team-id id + (->> (rp/mutation! :update-team-member-role {:team-id team-id :role :owner :member-id reassign-to}) (rx/ignore))) - (->> (rp/mutation! :leave-team {:id id}) + (->> (rp/mutation! :leave-team {:id team-id}) (rx/tap on-success) (rx/catch on-error))))))) (defn invite-team-member - [{:keys [team-id email role] :as params}] - (us/assert ::us/uuid team-id) + [{:keys [email role] :as params}] (us/assert ::us/email email) (us/assert ::us/keyword role) (ptk/reify ::invite-team-member @@ -340,11 +392,15 @@ (watch [_ state stream] (let [{:keys [on-success on-error] :or {on-success identity - on-error rx/throw}} (meta params)] + on-error rx/throw}} (meta params) + team-id (:current-team-id state) + params (assoc params :team-id team-id)] (->> (rp/mutation! :invite-team-member params) (rx/tap on-success) (rx/catch on-error)))))) +;; --- EVENT: delete-team + (defn delete-team [{:keys [id] :as params}] (us/assert ::team params) @@ -358,9 +414,10 @@ (rx/tap on-success) (rx/catch on-error)))))) +;; --- EVENT: create-project (defn- project-created - [{:keys [id team-id] :as project}] + [{:keys [id] :as project}] (ptk/reify ::project-created IDeref (-deref [_] project) @@ -368,44 +425,52 @@ ptk/UpdateEvent (update [_ state] (-> state - (assoc-in [:projects team-id id] project) + (assoc-in [:dashboard-projects id] project) (assoc-in [:dashboard-local :project-for-edit] id))))) (defn create-project - [{:keys [team-id] :as params}] - (us/assert ::us/uuid team-id) + [] (ptk/reify ::create-project ptk/WatchEvent (watch [_ state stream] - (let [name (name (gensym "New Project ")) + (let [name (name (gensym "New Project ")) + team-id (:current-team-id state) + params {:name name + :team-id team-id} {:keys [on-success on-error] :or {on-success identity on-error rx/throw}} (meta params)] - (->> (rp/mutation! :create-project {:name name :team-id team-id}) + (->> (rp/mutation! :create-project params) (rx/tap on-success) - (rx/catch on-error) - (rx/map project-created)))))) + (rx/map project-created) + (rx/catch on-error)))))) + +;; --- EVENT: duplicate-project + +(defn project-duplicated + [{:keys [id] :as project}] + (ptk/reify ::project-duplicated + ptk/UpdateEvent + (update [_ state] + (assoc-in state [:dashboard-projects id] project)))) (defn duplicate-project [{:keys [id name] :as params}] (us/assert ::us/uuid id) - (letfn [(duplicated [project state] - (-> state - (assoc-in [:projects (:team-id project) (:id project)] project)))] - (ptk/reify ::duplicate-project - ptk/WatchEvent - (watch [_ state stream] - (let [{:keys [on-success on-error] - :or {on-success identity - on-error identity}} (meta params) + (ptk/reify ::duplicate-project + ptk/WatchEvent + (watch [_ state stream] + (let [{:keys [on-success on-error] + :or {on-success identity + on-error rx/throw}} (meta params) - new-name (str name " " (tr "dashboard.copy-suffix"))] + new-name (str name " " (tr "dashboard.copy-suffix"))] - (->> (rp/mutation! :duplicate-project {:project-id id - :name new-name}) - (rx/tap on-success) - (rx/map #(partial duplicated %)) - (rx/catch on-error))))))) + (->> (rp/mutation! :duplicate-project {:project-id id + :name new-name}) + (rx/tap on-success) + (rx/map project-duplicated) + (rx/catch on-error)))))) (defn move-project [{:keys [id team-id] :as params}] @@ -416,7 +481,7 @@ (watch [_ state stream] (let [{:keys [on-success on-error] :or {on-success identity - on-error identity}} (meta params)] + on-error rx/throw}} (meta params)] (->> (rp/mutation! :move-project {:project-id id :team-id team-id}) @@ -424,21 +489,21 @@ (rx/catch on-error)))))) (defn toggle-project-pin - [{:keys [id is-pinned team-id] :as params}] - (us/assert ::project params) + [{:keys [id is-pinned team-id] :as project}] + (us/assert ::project project) (ptk/reify ::toggle-project-pin ptk/UpdateEvent (update [_ state] - (assoc-in state [:projects team-id id :is-pinned] (not is-pinned))) + (assoc-in state [:dashboard-projects id :is-pinned] (not is-pinned))) ptk/WatchEvent (watch [_ state stream] - (let [project (get-in state [:projects team-id id]) + (let [project (get-in state [:dashboard-projects id]) params (select-keys project [:id :is-pinned :team-id])] (->> (rp/mutation :update-project-pin params) (rx/ignore)))))) -;; --- Rename Project +;; --- EVENT: rename-project (defn rename-project [{:keys [id name team-id] :as params}] @@ -447,7 +512,7 @@ ptk/UpdateEvent (update [_ state] (-> state - (assoc-in [:projects team-id id :name] name) + (update-in [:dashboard-projects id :name] (constantly name)) (update :dashboard-local dissoc :project-for-edit))) ptk/WatchEvent @@ -456,7 +521,7 @@ (->> (rp/mutation :rename-project params) (rx/ignore)))))) -;; --- Delete Project (by id) +;; --- EVENT: delete-project (defn delete-project [{:keys [id team-id] :as params}] @@ -464,16 +529,21 @@ (ptk/reify ::delete-project ptk/UpdateEvent (update [_ state] - (update-in state [:projects team-id] dissoc id)) + (update state :dashboard-projects dissoc id)) ptk/WatchEvent (watch [_ state s] (->> (rp/mutation :delete-project {:id id}) (rx/ignore))))) -;; --- Delete File (by id) +;; --- EVENT: delete-file -(declare delete-file-result) +(defn file-deleted + [team-id project-id] + (ptk/reify ::file-deleted + ptk/UpdateEvent + (update [_ state] + (update-in state [:dashboard-projects project-id :count] dec)))) (defn delete-file [{:keys [id project-id] :as params}] @@ -482,33 +552,26 @@ ptk/UpdateEvent (update [_ state] (-> state - (update-in [:files project-id] dissoc id) - (update-in [:recent-files project-id] (fnil disj #{}) id))) + (d/update-when :dashboard-files dissoc id) + (d/update-when :dashboard-recent-files dissoc id))) ptk/WatchEvent (watch [_ state s] (let [team-id (uuid/uuid (get-in state [:route :path-params :team-id]))] (->> (rp/mutation :delete-file {:id id}) - (rx/map #(delete-file-result team-id project-id))))))) - -(defn delete-file-result - [team-id project-id] - - (ptk/reify ::delete-file - ptk/UpdateEvent - (update [_ state] - (-> state - (update-in [:projects team-id project-id :count] dec))))) + (rx/map #(file-deleted team-id project-id))))))) ;; --- Rename File (defn rename-file - [{:keys [id name project-id] :as params}] + [{:keys [id name] :as params}] (us/assert ::file params) (ptk/reify ::rename-file ptk/UpdateEvent (update [_ state] - (assoc-in state [:files project-id id :name] name)) + (-> state + (d/update-in-when [:dashboard-files id :name] (constantly name)) + (d/update-in-when [:dashboard-recent-files id :name] (constantly name)))) ptk/WatchEvent (watch [_ state stream] @@ -519,12 +582,14 @@ ;; --- Set File shared (defn set-file-shared - [{:keys [id project-id is-shared] :as params}] + [{:keys [id is-shared] :as params}] (us/assert ::file params) (ptk/reify ::set-file-shared ptk/UpdateEvent (update [_ state] - (assoc-in state [:files project-id id :is-shared] is-shared)) + (-> state + (d/update-in-when [:dashboard-files id :is-shared] (constantly is-shared)) + (d/update-in-when [:dashboard-recent-files id :is-shared] (constantly is-shared)))) ptk/WatchEvent (watch [_ state stream] @@ -532,10 +597,23 @@ (->> (rp/mutation :set-file-shared params) (rx/ignore)))))) -;; --- Create File +;; --- EVENT: create-file (declare file-created) +(defn file-created + [{:keys [id] :as file}] + (us/verify ::file file) + (ptk/reify ::file-created + IDeref + (-deref [_] file) + + ptk/UpdateEvent + (update [_ state] + (-> state + (assoc-in [:dashboard-files id] file) + (assoc-in [:dashboard-recent-files id] file))))) + (defn create-file [{:keys [project-id] :as params}] (us/assert ::us/uuid project-id) @@ -551,23 +629,10 @@ (->> (rp/mutation! :create-file params) (rx/tap on-success) - (rx/catch on-error) - (rx/map file-created)))))) + (rx/map file-created) + (rx/catch on-error)))))) -(defn file-created - [{:keys [project-id id] :as file}] - (us/verify ::file file) - (ptk/reify ::file-created - IDeref - (-deref [_] file) - - ptk/UpdateEvent - (update [_ state] - (-> state - (assoc-in [:files project-id id] file) - (update-in [:recent-files project-id] (fnil conj #{}) id))))) - -;; --- Duplicate File +;; --- EVENT: duplicate-file (defn duplicate-file [{:keys [id name] :as params}] @@ -578,7 +643,7 @@ (watch [_ state stream] (let [{:keys [on-success on-error] :or {on-success identity - on-error identity}} (meta params) + on-error rx/throw}} (meta params) new-name (str name " " (tr "dashboard.copy-suffix"))] @@ -588,7 +653,7 @@ (rx/map file-created) (rx/catch on-error)))))) -;; --- Move File +;; --- EVENT: move-files (defn move-files [{:keys [ids project-id] :as params}] @@ -599,10 +664,76 @@ (watch [_ state stream] (let [{:keys [on-success on-error] :or {on-success identity - on-error identity}} (meta params)] + on-error rx/throw}} (meta params)] - (->> (rp/mutation! :move-files {:ids ids - :project-id project-id}) + (->> (rp/mutation! :move-files {:ids ids :project-id project-id}) (rx/tap on-success) (rx/catch on-error)))))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Navigation +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defn go-to-workspace + [{:keys [id project-id] :as file}] + (us/assert ::file file) + (ptk/reify ::go-to-workspace + ptk/WatchEvent + (watch [_ state stream] + (let [pparams {:project-id project-id :file-id id}] + (rx/of (rt/nav :workspace pparams)))))) + + +(defn go-to-files + [project-id] + (ptk/reify ::go-to-files + ptk/WatchEvent + (watch [_ state stream] + (let [team-id (:current-team-id state)] + (rx/of (rt/nav :dashboard-files {:team-id team-id + :project-id project-id})))))) + +(defn go-to-search + ([] (go-to-search nil)) + ([term] + (ptk/reify ::go-to-search + ptk/WatchEvent + (watch [_ state stream] + (let [team-id (:current-team-id state)] + (if (empty? term) + (rx/of (rt/nav :dashboard-search + {:team-id team-id})) + (rx/of (rt/nav :dashboard-search + {:team-id team-id} + {:search-term term})))))))) + +(defn go-to-projects + ([] + (ptk/reify ::go-to-projects + ptk/WatchEvent + (watch [_ state stream] + (let [team-id (:current-team-id state)] + (rx/of (rt/nav :dashboard-projects {:team-id team-id})))))) + ([team-id] + (ptk/reify ::go-to-projects + ptk/WatchEvent + (watch [_ state stream] + (du/set-current-team! team-id) + (rx/of (rt/nav :dashboard-projects {:team-id team-id})))))) + +(defn go-to-team-members + [] + (ptk/reify ::go-to-team-members + ptk/WatchEvent + (watch [_ state stream] + (let [team-id (:current-team-id state)] + (rx/of (rt/nav :dashboard-team-members {:team-id team-id})))))) + +(defn go-to-team-settings + [] + (ptk/reify ::go-to-team-settings + ptk/WatchEvent + (watch [_ state stream] + (let [team-id (:current-team-id state)] + (rx/of (rt/nav :dashboard-team-settings {:team-id team-id})))))) diff --git a/frontend/src/app/main/data/users.cljs b/frontend/src/app/main/data/users.cljs index 3312f4c50..73142e4ae 100644 --- a/frontend/src/app/main/data/users.cljs +++ b/frontend/src/app/main/data/users.cljs @@ -58,19 +58,28 @@ [team-id] (swap! storage assoc ::current-team-id team-id)) - ;; --- EVENT: fetch-teams +(defn teams-fetched + [teams] + (let [teams (d/index-by :id teams)] + (ptk/reify ::teams-fetched + IDeref + (-deref [_] teams) + + ptk/UpdateEvent + (update [_ state] + (assoc state :teams teams))))) + (defn fetch-teams [] - (letfn [(on-fetched [state data] - (let [teams (d/index-by :id data)] - (assoc state :teams teams)))] - (ptk/reify ::fetch-teams - ptk/WatchEvent - (watch [_ state s] - (->> (rp/query! :teams) - (rx/map (fn [data] #(on-fetched % data)))))))) + (ptk/reify ::fetch-teams + ptk/WatchEvent + (watch [_ state s] + (->> (rp/query! :teams) + (rx/map teams-fetched))))) + +;; --- EVENT: fetch-profile (defn profile-fetched [{:keys [id] :as profile}] @@ -94,8 +103,6 @@ (some-> (:theme profile) (theme/set-current-theme!))))))) -;; --- Fetch Profile - (defn fetch-profile [] (ptk/reify ::fetch-profile diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 2308d2ca7..69e19f32b 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -160,16 +160,12 @@ ;; Initialize notifications (websocket connection) and the file persistence (->> stream (rx/filter (ptk/type? ::dwp/bundle-fetched)) - (rx/first) - (rx/mapcat #(rx/of (dwn/initialize file-id) - (dwp/initialize-file-persistence file-id)))) - - ;; Initialize Indexes (webworker) - (->> stream - (rx/filter (ptk/type? ::dwp/bundle-fetched)) + (rx/take 1) (rx/map deref) - (rx/map dwc/initialize-indices) - (rx/first)) + (rx/mapcat (fn [bundle] + (rx/of (dwn/initialize file-id) + (dwp/initialize-file-persistence file-id) + (dwc/initialize-indices bundle))))) ;; Mark file initialized when indexes are ready (->> stream @@ -217,35 +213,39 @@ (rx/of (dwn/finalize file-id) ::dwp/finalize)))) +(declare go-to-page) (defn initialize-page [page-id] + (us/assert ::us/uuid page-id) (ptk/reify ::initialize-page ptk/UpdateEvent (update [_ state] (let [;; we maintain a cache of page state for user convenience ;; with the exception of the selection; when user abandon ;; the current page, the selection is lost - local (-> state - (get-in [:workspace-cache page-id] workspace-local-default) - (assoc :selected (d/ordered-set))) - page (-> (get-in state [:workspace-data :pages-index page-id]) - (select-keys [:id :name]))] - (assoc state - :current-page-id page-id ; mainly used by events - :trimmed-page page - :workspace-local local))))) + + page (get-in state [:workspace-data :pages-index page-id]) + local (-> state + (get-in [:workspace-cache page-id] workspace-local-default) + (assoc :selected (d/ordered-set)))] + (-> state + (assoc :current-page-id page-id) + (assoc :trimmed-page (select-keys page [:id :name])) + (assoc :workspace-local local) + (update-in [:route :params :query] assoc :page-id (str page-id))))))) (defn finalize-page [page-id] - (us/verify ::us/uuid page-id) + (us/assert ::us/uuid page-id) (ptk/reify ::finalize-page ptk/UpdateEvent (update [_ state] - (let [local (-> (:workspace-local state) - (dissoc :edition) - (dissoc :edit-path) - (dissoc :selected))] + (let [page-id (or page-id (get-in state [:workspace-data :pages 0])) + local (-> (:workspace-local state) + (dissoc :edition) + (dissoc :edit-path) + (dissoc :selected))] (-> state (assoc-in [:workspace-cache page-id] local) (dissoc :current-page-id :workspace-local :trimmed-page :workspace-drawing)))))) @@ -1043,7 +1043,7 @@ uchg {:type :mov-page :id id :index cidx}] - (rx/of (dch/commit-changes [rchg] [uchg] {:commit-local? true})))))) + (rx/of (dch/commit-changes [rchg] [uchg])))))) ;; --- Shape / Selection Alignment and Distribution @@ -1169,16 +1169,27 @@ (rx/of (rt/nav :workspace/page params)))))) (defn go-to-page - [page-id] - (us/verify ::us/uuid page-id) - (ptk/reify ::go-to-page - ptk/WatchEvent - (watch [_ state stream] - (let [project-id (get-in state [:workspace-project :id]) - file-id (get-in state [:workspace-file :id]) - pparams {:file-id file-id :project-id project-id} - qparams {:page-id page-id}] - (rx/of (rt/nav :workspace pparams qparams)))))) + ([] + (ptk/reify ::go-to-page + ptk/WatchEvent + (watch [_ state stream] + (let [project-id (:current-project-id state) + file-id (:current-file-id state) + page-id (get-in state [:workspace-data :pages 0]) + + pparams {:file-id file-id :project-id project-id} + qparams {:page-id page-id}] + (rx/of (rt/nav :workspace pparams qparams)))))) + ([page-id] + (us/verify ::us/uuid page-id) + (ptk/reify ::go-to-page + ptk/WatchEvent + (watch [_ state stream] + (let [project-id (:current-project-id state) + file-id (:current-file-id state) + pparams {:file-id file-id :project-id project-id} + qparams {:page-id page-id}] + (rx/of (rt/nav :workspace pparams qparams))))))) (defn go-to-layout [layout] diff --git a/frontend/src/app/main/data/workspace/changes.cljs b/frontend/src/app/main/data/workspace/changes.cljs index dbb4830be..b3a437835 100644 --- a/frontend/src/app/main/data/workspace/changes.cljs +++ b/frontend/src/app/main/data/workspace/changes.cljs @@ -162,8 +162,7 @@ file-id] :or {save-undo? true} :as opts}] - (us/assert ::cp/changes changes) - (us/assert ::cp/changes undo-changes) + (log/debug :msg "commit-changes" :js/changes changes :js/undo-changes undo-changes) @@ -178,12 +177,13 @@ ptk/UpdateEvent (update [_ state] (let [current-file-id (get state :current-file-id) - file-id (or file-id current-file-id) - path (if (= file-id current-file-id) - [:workspace-data] - [:workspace-libraries file-id :data])] + file-id (or file-id current-file-id) + path (if (= file-id current-file-id) + [:workspace-data] + [:workspace-libraries file-id :data])] (try (us/assert ::spec/changes changes) + (us/assert ::spec/changes undo-changes) (update-in state path cp/process-changes changes false) (catch :default e (vreset! error e) diff --git a/frontend/src/app/main/data/workspace/path/changes.cljs b/frontend/src/app/main/data/workspace/path/changes.cljs index 15c5c6c9b..08a86c2be 100644 --- a/frontend/src/app/main/data/workspace/path/changes.cljs +++ b/frontend/src/app/main/data/workspace/path/changes.cljs @@ -21,9 +21,9 @@ [objects page-id shape old-content new-content] (us/verify ::spec/content old-content) (us/verify ::spec/content new-content) - (let [shape-id (:id shape) - frame-id (:frame-id shape) - parent-id (:parent-id shape) + (let [shape-id (:id shape) + frame-id (:frame-id shape) + parent-id (:parent-id shape) parent-index (cp/position-on-parent shape-id objects) [old-points old-selrect] (helpers/content->points+selrect shape old-content) @@ -72,7 +72,6 @@ (defn save-path-content ([] (save-path-content {})) - ([{:keys [preserve-move-to] :or {preserve-move-to false}}] (ptk/reify ::save-path-content ptk/UpdateEvent @@ -86,14 +85,14 @@ ptk/WatchEvent (watch [_ state stream] - (let [objects (wsh/lookup-page-objects state) - id (get-in state [:workspace-local :edition]) + (let [objects (wsh/lookup-page-objects state) + page-id (:current-page-id state) + id (get-in state [:workspace-local :edition]) old-content (get-in state [:workspace-local :edit-path id :old-content])] (if (some? old-content) - (let [shape (get-in state (st/get-path state)) - page-id (:current-page-id state) + (let [shape (get-in state (st/get-path state)) [rch uch] (generate-path-changes objects page-id shape old-content (:content shape))] - (rx/of (dch/commit-changes rch uch {:commit-local? true}))) + (rx/of (dch/commit-changes rch uch))) (rx/empty))))))) diff --git a/frontend/src/app/main/data/workspace/persistence.cljs b/frontend/src/app/main/data/workspace/persistence.cljs index 627470a71..d48d681bd 100644 --- a/frontend/src/app/main/data/workspace/persistence.cljs +++ b/frontend/src/app/main/data/workspace/persistence.cljs @@ -310,8 +310,8 @@ (us/assert ::us/uuid team-id) (ptk/reify ::fetch-shared-files ptk/WatchEvent - (watch [_ state stream] - (->> (rp/query :shared-files params) + (watch [it state stream] + (->> (rp/query :team-shared-files {:team-id team-id}) (rx/map shared-files-fetched))))) (defn shared-files-fetched diff --git a/frontend/src/app/main/data/workspace/undo.cljs b/frontend/src/app/main/data/workspace/undo.cljs index f0e752556..a63225870 100644 --- a/frontend/src/app/main/data/workspace/undo.cljs +++ b/frontend/src/app/main/data/workspace/undo.cljs @@ -27,8 +27,8 @@ ;; Undo / Redo ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(s/def ::undo-changes ::cp/changes) -(s/def ::redo-changes ::cp/changes) +(s/def ::undo-changes ::spec/changes) +(s/def ::redo-changes ::spec/changes) (s/def ::undo-entry (s/keys :req-un [::undo-changes ::redo-changes])) diff --git a/frontend/src/app/main/refs.cljs b/frontend/src/app/main/refs.cljs index 41eff4d51..9b828903c 100644 --- a/frontend/src/app/main/refs.cljs +++ b/frontend/src/app/main/refs.cljs @@ -47,6 +47,30 @@ (def dashboard-fonts (l/derived :dashboard-fonts st/state)) +(def dashboard-projects + (l/derived :dashboard-projects st/state)) + +(def dashboard-files + (l/derived :dashboard-files st/state)) + +(def dashboard-shared-files + (l/derived :dashboard-shared-files st/state)) + +(def dashboard-search-result + (l/derived :dashboard-search-result st/state)) + +(def dashboard-team + (l/derived (fn [state] + (let [team-id (:current-team-id state)] + (get-in state [:teams team-id]))) + st/state)) + +(def dashboard-team-stats + (l/derived :dashboard-team-stats st/state)) + +(def dashboard-team-members + (l/derived :dashboard-team-members st/state)) + (def dashboard-selected-project (l/derived (fn [state] (get-in state [:dashboard-local :selected-project])) @@ -54,17 +78,14 @@ (def dashboard-selected-files (l/derived (fn [state] - (get-in state [:dashboard-local :selected-files] #{})) - st/state)) - -(def dashboard-selected-file-objs - (l/derived (fn [state] - (let [dashboard-local (get state :dashboard-local) - selected-project (get dashboard-local :selected-project) - selected-files (get dashboard-local :selected-files #{})] - (map #(get-in state [:files selected-project %]) - selected-files))) - st/state)) + (let [get-file #(get-in state [:dashboard-files %]) + sim-file #(select-keys % [:id :name :project-id]) + selected (get-in state [:dashboard-local :selected-files]) + xform (comp (map get-file) + (map sim-file))] + (->> (into #{} xform selected) + (d/index-by :id)))) + st/state =)) ;; ---- Workspace refs @@ -130,10 +151,11 @@ (def workspace-file (l/derived (fn [state] - (when-let [file (:workspace-file state)] + (let [file (:workspace-file state) + data (:workspace-data state)] (-> file (dissoc :data) - (assoc :pages (get-in file [:data :pages]))))) + (assoc :pages (:pages data))))) st/state =)) (def workspace-file-colors diff --git a/frontend/src/app/main/ui.cljs b/frontend/src/app/main/ui.cljs index 95437edd4..0bca30870 100644 --- a/frontend/src/app/main/ui.cljs +++ b/frontend/src/app/main/ui.cljs @@ -107,85 +107,85 @@ (mf/defc main-page {::mf/wrap [#(mf/catch % {:fallback on-main-error})]} [{:keys [route] :as props}] + (let [{:keys [data params]} route] + [:& (mf/provider ctx/current-route) {:value route} + (case (:name data) + (:auth-login + :auth-register + :auth-register-success + :auth-recovery-request + :auth-recovery) + [:& auth {:route route}] - [:& (mf/provider ctx/current-route) {:value route} - (case (get-in route [:data :name]) - (:auth-login - :auth-register - :auth-register-success - :auth-recovery-request - :auth-recovery) - [:& auth {:route route}] + :auth-verify-token + [:& verify-token {:route route}] - :auth-verify-token - [:& verify-token {:route route}] + (:settings-profile + :settings-password + :settings-options + :settings-feedback) + [:& settings/settings {:route route}] - (:settings-profile - :settings-password - :settings-options - :settings-feedback) - [:& settings/settings {:route route}] + :debug-icons-preview + (when *assert* + [:div.debug-preview + [:h1 "Cursors"] + [:& c/debug-preview] + [:h1 "Icons"] + [:& i/debug-icons-preview] + ]) - :debug-icons-preview - (when *assert* - [:div.debug-preview - [:h1 "Cursors"] - [:& c/debug-preview] - [:h1 "Icons"] - [:& i/debug-icons-preview] - ]) + (:dashboard-search + :dashboard-projects + :dashboard-files + :dashboard-libraries + :dashboard-fonts + :dashboard-font-providers + :dashboard-team-members + :dashboard-team-settings) + [:* + #_[:div.modal-wrapper + [:& app.main.ui.onboarding/release-notes-modal {:version "1.5"}]] + [:& dashboard {:route route}]] - (:dashboard-search - :dashboard-projects - :dashboard-files - :dashboard-libraries - :dashboard-fonts - :dashboard-font-providers - :dashboard-team-members - :dashboard-team-settings) - [:* - #_[:div.modal-wrapper - [:& app.main.ui.onboarding/release-notes-modal {:version "1.5"}]] - [:& dashboard {:route route}]] + :viewer + (let [index (get-in route [:query-params :index]) + token (get-in route [:query-params :token]) + section (get-in route [:query-params :section] :interactions) + file-id (get-in route [:path-params :file-id]) + page-id (get-in route [:path-params :page-id])] + [:& fs/fullscreen-wrapper {} + (if (= section :handoff) + [:& handoff {:page-id page-id + :file-id file-id + :index index + :token token}] + [:& viewer-page {:page-id page-id + :file-id file-id + :section section + :index index + :token token}])]) - :viewer - (let [index (get-in route [:query-params :index]) - token (get-in route [:query-params :token]) - section (get-in route [:query-params :section] :interactions) - file-id (get-in route [:path-params :file-id]) - page-id (get-in route [:path-params :page-id])] - [:& fs/fullscreen-wrapper {} - (if (= section :handoff) - [:& handoff {:page-id page-id - :file-id file-id - :index index - :token token}] - [:& viewer-page {:page-id page-id - :file-id file-id - :section section - :index index - :token token}])]) + :render-object + (do + (let [file-id (uuid (get-in route [:path-params :file-id])) + page-id (uuid (get-in route [:path-params :page-id])) + object-id (uuid (get-in route [:path-params :object-id]))] + [:& render/render-object {:file-id file-id + :page-id page-id + :object-id object-id}])) - :render-object - (do - (let [file-id (uuid (get-in route [:path-params :file-id])) - page-id (uuid (get-in route [:path-params :page-id])) - object-id (uuid (get-in route [:path-params :object-id]))] - [:& render/render-object {:file-id file-id - :page-id page-id - :object-id object-id}])) - - :workspace - (let [project-id (uuid (get-in route [:params :path :project-id])) - file-id (uuid (get-in route [:params :path :file-id])) - page-id (uuid (get-in route [:params :query :page-id])) - layout-name (get-in route [:params :query :layout])] - [:& workspace/workspace {:project-id project-id - :file-id file-id - :page-id page-id - :layout-name (keyword layout-name) - :key file-id}]) - nil)]) + :workspace + (let [project-id (some-> params :path :project-id uuid) + file-id (some-> params :path :file-id uuid) + page-id (some-> params :query :page-id uuid) + layout (some-> params :query :layout keyword)] + [:& workspace/workspace {:project-id project-id + :file-id file-id + :page-id page-id + :layout-name layout + :key file-id}]) + nil)])) (mf/defc app [] @@ -249,7 +249,7 @@ context (str/fmt "ns: '%s'\nname: '%s'\nfile: '%s:%s'" (:ns context) (:name context) - (str cfg/public-uri "/js/cljs-runtime/" (:file context)) + (str cfg/public-uri "js/cljs-runtime/" (:file context)) (:line context))] (ts/schedule (st/emitf diff --git a/frontend/src/app/main/ui/dashboard.cljs b/frontend/src/app/main/ui/dashboard.cljs index 83a148a72..dc14df9cd 100644 --- a/frontend/src/app/main/ui/dashboard.cljs +++ b/frontend/src/app/main/ui/dashboard.cljs @@ -51,14 +51,6 @@ (uuid-str? project-id) (assoc :project-id (uuid project-id))))) -(defn- team-ref - [id] - (l/derived (l/in [:teams id]) st/state)) - -(defn- projects-ref - [team-id] - (l/derived (l/in [:projects team-id]) st/state)) - (mf/defc dashboard-content [{:keys [team projects project section search-term profile] :as props}] [:div.dashboard-content {:on-click (st/emitf (dd/clear-selected-files))} @@ -101,16 +93,15 @@ team-id (:team-id params) search-term (:search-term params) - projects-ref (mf/use-memo (mf/deps team-id) #(projects-ref team-id)) - team-ref (mf/use-memo (mf/deps team-id) #(team-ref team-id)) + teams (mf/deref refs/teams) + team (get teams team-id) - team (mf/deref team-ref) - projects (mf/deref projects-ref) + projects (mf/deref refs/dashboard-projects) project (get projects project-id)] (mf/use-effect (mf/deps team-id) - (st/emitf (dd/fetch-bundle {:id team-id}))) + (st/emitf (dd/initialize {:id team-id}))) (mf/use-effect (mf/deps) @@ -122,12 +113,18 @@ (not= "0.0" (:main @cf/version))) (tm/schedule 1000 #(st/emit! (modal/show {:type :release-notes :version (:main @cf/version)}))))))) - [:& (mf/provider ctx/current-file-id) {:value nil} - [:& (mf/provider ctx/current-team-id) {:value team-id} - [:& (mf/provider ctx/current-project-id) {:value project-id} - [:& (mf/provider ctx/current-page-id) {:value nil} + [:& (mf/provider ctx/current-team-id) {:value team-id} + [:& (mf/provider ctx/current-project-id) {:value project-id} - [:section.dashboard-layout + ;; NOTE: dashboard events and other related functions assumes + ;; that the team is a implicit context variable that is + ;; available using react context or accessing + ;; the :current-team-id on the state. We set the key to the + ;; team-id becase we want to completly refresh all the + ;; components on team change. Many components assumess that the + ;; team is already set so don't put the team into mf/deps. + (when team + [:section.dashboard-layout {:key (:id team)} [:& sidebar {:team team :projects projects @@ -142,5 +139,5 @@ :project project :section section :search-term search-term - :team team}])]]]]])) + :team team}])])]])) diff --git a/frontend/src/app/main/ui/dashboard/file_menu.cljs b/frontend/src/app/main/ui/dashboard/file_menu.cljs index 5b8f80644..f24a8d412 100644 --- a/frontend/src/app/main/ui/dashboard/file_menu.cljs +++ b/frontend/src/app/main/ui/dashboard/file_menu.cljs @@ -19,6 +19,33 @@ [beicon.core :as rx] [rumext.alpha :as mf])) +(defn get-project-name + [project] + (if (:is-default project) + (tr "labels.drafts") + (:name project))) + +(defn get-team-name + [team] + (if (:is-default team) + (tr "dashboard.your-penpot") + (:name team))) + +(defn group-by-team + "Group projects by team." + [projects] + (reduce (fn [teams project] + (update teams + (:team-id project) + #(if (nil? %) + {:id (:team-id project) + :name (:team-name project) + :is-default (:is-default-team project) + :projects [project]} + (update % :projects conj project)))) + {} + projects)) + (mf/defc file-menu [{:keys [files show? on-edit on-menu-close top left navigate?] :as props}] (assert (seq files) "missing `files` prop") @@ -26,8 +53,8 @@ (assert (fn? on-edit) "missing `on-edit` prop") (assert (fn? on-menu-close) "missing `on-menu-close` prop") (assert (boolean? navigate?) "missing `navigate?` prop") - (let [top (or top 0) - left (or left 0) + (let [top (or top 0) + left (or left 0) file (first files) file-count (count files) @@ -35,157 +62,113 @@ current-team-id (mf/use-ctx ctx/current-team-id) teams (mf/use-state nil) + current-team (get @teams current-team-id) - other-teams (remove #(= (:id %) current-team-id) - (vals @teams)) + other-teams (remove #(= (:id %) current-team-id) (vals @teams)) + current-projects (remove #(= (:id %) (:project-id file)) (:projects current-team)) - project-name (fn [project] - (if (:is-default project) - (tr "labels.drafts") - (:name project))) - - team-name (fn [team] - (if (:is-default team) - (tr "dashboard.your-penpot") - (:name team))) - on-new-tab - (mf/use-callback - (mf/deps file) - (fn [event] - (let [pparams {:project-id (:project-id file) - :file-id (:id file)} - qparams {:page-id (first (get-in file [:data :pages]))}] - (st/emit! (rt/nav-new-window :workspace pparams qparams))))) + (fn [event] + (let [pparams {:project-id (:project-id file) + :file-id (:id file)} + qparams {:page-id (first (get-in file [:data :pages]))}] + (st/emit! (rt/nav-new-window :workspace pparams qparams)))) on-duplicate - (mf/use-callback - (mf/deps files) - (fn [event] - (apply st/emit! (map dd/duplicate-file files)) - (st/emit! (dm/success (tr "dashboard.success-duplicate-file"))))) + (fn [event] + (apply st/emit! (map dd/duplicate-file files)) + (st/emit! (dm/success (tr "dashboard.success-duplicate-file")))) delete-fn - (mf/use-callback - (mf/deps files) - (fn [event] - (apply st/emit! (map dd/delete-file files)) - (st/emit! (dm/success (tr "dashboard.success-delete-file"))))) + (fn [event] + (apply st/emit! (map dd/delete-file files)) + (st/emit! (dm/success (tr "dashboard.success-delete-file")))) on-delete - (mf/use-callback - (mf/deps files) - (fn [event] - (dom/stop-propagation event) - (if multi? - (st/emit! (modal/show - {:type :confirm - :title (tr "modals.delete-file-multi-confirm.title" file-count) - :message (tr "modals.delete-file-multi-confirm.message" file-count) - :accept-label (tr "modals.delete-file-multi-confirm.accept" file-count) + (fn [event] + (dom/stop-propagation event) + (if multi? + (st/emit! (modal/show + {:type :confirm + :title (tr "modals.delete-file-multi-confirm.title" file-count) + :message (tr "modals.delete-file-multi-confirm.message" file-count) + :accept-label (tr "modals.delete-file-multi-confirm.accept" file-count) :on-accept delete-fn})) - (st/emit! (modal/show - {:type :confirm - :title (tr "modals.delete-file-confirm.title") - :message (tr "modals.delete-file-confirm.message") - :accept-label (tr "modals.delete-file-confirm.accept") - :on-accept delete-fn}))))) + (st/emit! (modal/show + {:type :confirm + :title (tr "modals.delete-file-confirm.title") + :message (tr "modals.delete-file-confirm.message") + :accept-label (tr "modals.delete-file-confirm.accept") + :on-accept delete-fn})))) + + on-move-success + (fn [team-id project-id] + (if multi? + (st/emit! (dm/success (tr "dashboard.success-move-files"))) + (st/emit! (dm/success (tr "dashboard.success-move-file")))) + (if (or navigate? (not= team-id current-team-id)) + (st/emit! (dd/go-to-files project-id)) + (st/emit! (dd/fetch-recent-files) + (dd/clear-selected-files)))) on-move - (mf/use-callback - (mf/deps file) - (fn [team-id project-id] - (let [data {:ids (set (map :id files)) - :project-id project-id} - - mdata {:on-success - #(do - (if multi? - (st/emit! (dm/success (tr "dashboard.success-move-files"))) - (st/emit! (dm/success (tr "dashboard.success-move-file")))) - (if (or navigate? (not= team-id current-team-id)) - (st/emit! (rt/nav :dashboard-files - {:team-id team-id - :project-id project-id})) - (st/emit! (dd/fetch-recent-files {:team-id team-id}) - (dd/clear-selected-files))))}] - - (st/emitf (dd/move-files (with-meta data mdata)))))) + (fn [team-id project-id] + (let [data {:ids (set (map :id files)) + :project-id project-id} + mdata {:on-success #(on-move-success team-id project-id)}] + (st/emitf (dd/move-files (with-meta data mdata))))) add-shared - (mf/use-callback - (mf/deps file) - (st/emitf (dd/set-file-shared (assoc file :is-shared true)))) + (st/emitf (dd/set-file-shared (assoc file :is-shared true))) del-shared - (mf/use-callback - (mf/deps file) - (st/emitf (dd/set-file-shared (assoc file :is-shared false)))) + (st/emitf (dd/set-file-shared (assoc file :is-shared false))) on-add-shared - (mf/use-callback - (mf/deps file) - (fn [event] - (dom/stop-propagation event) - (st/emit! (modal/show - {:type :confirm - :message "" - :title (tr "modals.add-shared-confirm.message" (:name file)) - :hint (tr "modals.add-shared-confirm.hint") - :cancel-label :omit - :accept-label (tr "modals.add-shared-confirm.accept") - :accept-style :primary - :on-accept add-shared})))) + (fn [event] + (dom/stop-propagation event) + (st/emit! (modal/show + {:type :confirm + :message "" + :title (tr "modals.add-shared-confirm.message" (:name file)) + :hint (tr "modals.add-shared-confirm.hint") + :cancel-label :omit + :accept-label (tr "modals.add-shared-confirm.accept") + :accept-style :primary + :on-accept add-shared}))) on-del-shared - (mf/use-callback - (mf/deps file) - (fn [event] - (dom/prevent-default event) - (dom/stop-propagation event) - (st/emit! (modal/show - {:type :confirm - :message "" - :title (tr "modals.remove-shared-confirm.message" (:name file)) - :hint (tr "modals.remove-shared-confirm.hint") - :cancel-label :omit - :accept-label (tr "modals.remove-shared-confirm.accept") - :on-accept del-shared}))))] + (fn [event] + (dom/prevent-default event) + (dom/stop-propagation event) + (st/emit! (modal/show + {:type :confirm + :message "" + :title (tr "modals.remove-shared-confirm.message" (:name file)) + :hint (tr "modals.remove-shared-confirm.hint") + :cancel-label :omit + :accept-label (tr "modals.remove-shared-confirm.accept") + :on-accept del-shared})))] - (mf/use-layout-effect - (mf/deps show?) - (fn [] - (let [group-by-team (fn [projects] - (reduce - (fn [teams project] - (update teams (:team-id project) - #(if (nil? %) - {:id (:team-id project) - :name (:team-name project) - :is-default (:is-default-team project) - :projects [project]} - (update % :projects conj project)))) - {} - projects))] - (if show? - (->> (rp/query! :all-projects) - (rx/map group-by-team) - (rx/subs #(reset! teams %))) - (reset! teams []))))) + (mf/use-effect + (fn [] + (->> (rp/query! :all-projects) + (rx/map group-by-team) + (rx/subs #(reset! teams %))))) (when current-team (let [sub-options (conj (vec (for [project current-projects] - [(project-name project) + [(get-project-name project) (on-move (:id current-team) (:id project))])) (when (seq other-teams) [(tr "dashboard.move-to-other-team") nil (for [team other-teams] - [(team-name team) nil + [(get-team-name team) nil (for [sub-project (:projects team)] - [(project-name sub-project) + [(get-project-name sub-project) (on-move (:id team) (:id sub-project))])])])) @@ -214,4 +197,3 @@ :top top :left left :options options}])))) - diff --git a/frontend/src/app/main/ui/dashboard/files.cljs b/frontend/src/app/main/ui/dashboard/files.cljs index 4a5aca8d6..a43026964 100644 --- a/frontend/src/app/main/ui/dashboard/files.cljs +++ b/frontend/src/app/main/ui/dashboard/files.cljs @@ -8,6 +8,7 @@ (:require [app.main.data.dashboard :as dd] [app.main.data.modal :as modal] + [app.main.refs :as refs] [app.main.store :as st] [app.main.ui.dashboard.grid :refer [grid]] [app.main.ui.dashboard.inline-edition :refer [inline-edition]] @@ -77,15 +78,11 @@ [:a.btn-secondary.btn-small {:on-click on-create-clicked} (tr "dashboard.new-file")]])) -(defn files-ref - [project-id] - (l/derived (l/in [:files project-id]) st/state)) - (mf/defc files-section [{:keys [project team] :as props}] - (let [files-ref (mf/use-memo (mf/deps (:id project)) #(files-ref (:id project))) - files-map (mf/deref files-ref) + (let [files-map (mf/deref refs/dashboard-files) files (->> (vals files-map) + (filter #(= (:id project) (:project-id %))) (sort-by :modified-at) (reverse))] diff --git a/frontend/src/app/main/ui/dashboard/grid.cljs b/frontend/src/app/main/ui/dashboard/grid.cljs index d5822551c..df35fe7cf 100644 --- a/frontend/src/app/main/ui/dashboard/grid.cljs +++ b/frontend/src/app/main/ui/dashboard/grid.cljs @@ -21,7 +21,7 @@ [app.main.worker :as wrk] [app.util.dom :as dom] [app.util.dom.dnd :as dnd] - [app.util.i18n :as i18n :refer [t tr]] + [app.util.i18n :as i18n :refer [tr]] [app.util.keyboard :as kbd] [app.util.router :as rt] [app.util.time :as dt] @@ -55,76 +55,66 @@ [{:keys [modified-at]}] (let [locale (mf/deref i18n/locale) time (dt/timeago modified-at {:locale locale})] - (str (t locale "ds.updated-at" time)))) + (str (tr "ds.updated-at" time)))) + +(defn create-counter-element + [element file-count] + (let [counter-el (dom/create-element "div")] + (dom/set-property! counter-el "class" "drag-counter") + (dom/set-text! counter-el (str file-count)) + counter-el)) (mf/defc grid-item {:wrap [mf/memo]} - [{:keys [id file selected-files navigate?] :as props}] - (let [local (mf/use-state {:menu-open false - :menu-pos nil - :edition false}) - locale (mf/deref i18n/locale) - item-ref (mf/use-ref) - menu-ref (mf/use-ref) - selected? (contains? selected-files id) - - selected-file-objs - (deref refs/dashboard-selected-file-objs) - ;; not needed to subscribe and repaint if changed + [{:keys [file navigate?] :as props}] + (let [file-id (:id file) + local (mf/use-state {:menu-open false + :menu-pos nil + :edition false}) + selected-files (mf/deref refs/dashboard-selected-files) + item-ref (mf/use-ref) + menu-ref (mf/use-ref) + selected? (contains? selected-files file-id) on-menu-close (mf/use-callback #(swap! local assoc :menu-open false)) on-select - (mf/use-callback - (mf/deps id selected? selected-files @local) - (fn [event] - (when (and (or (not selected?) (> (count selected-files) 1)) - (not (:menu-open @local))) - (dom/stop-propagation event) - (let [shift? (kbd/shift? event)] - (when-not shift? - (st/emit! (dd/clear-selected-files))) - (st/emit! (dd/toggle-file-select {:file file})))))) + (fn [event] + (when (and (or (not selected?) (> (count selected-files) 1)) + (not (:menu-open @local))) + (dom/stop-propagation event) + (let [shift? (kbd/shift? event)] + (when-not shift? + (st/emit! (dd/clear-selected-files))) + (st/emit! (dd/toggle-file-select file))))) on-navigate (mf/use-callback - (mf/deps id) + (mf/deps file) (fn [event] (let [menu-icon (mf/ref-val menu-ref) target (dom/get-target event)] (when-not (dom/child? target menu-icon) - (let [pparams {:project-id (:project-id file) - :file-id (:id file)} - qparams {:page-id (first (get-in file [:data :pages]))}] - (st/emit! (rt/nav :workspace pparams qparams))))))) - - create-counter - (mf/use-callback - (fn [element file-count] - (let [counter-el (dom/create-element "div")] - (dom/set-property! counter-el "class" "drag-counter") - (dom/set-text! counter-el (str file-count)) - counter-el))) + (st/emit! (dd/go-to-workspace file)))))) on-drag-start (mf/use-callback (mf/deps selected-files) (fn [event] - (let [offset (dom/get-offset-position (.-nativeEvent event)) + (let [offset (dom/get-offset-position (.-nativeEvent event)) select-current? (not (contains? selected-files (:id file))) - item-el (mf/ref-val item-ref) - counter-el (create-counter item-el - (if select-current? - 1 - (count selected-files)))] - + item-el (mf/ref-val item-ref) + counter-el (create-counter-element item-el + (if select-current? + 1 + (count selected-files)))] (when select-current? (st/emit! (dd/clear-selected-files)) - (st/emit! (dd/toggle-file-select {:file file}))) + (st/emit! (dd/toggle-file-select file))) (dnd/set-data! event "penpot/files" "dummy") (dnd/set-allowed-effect! event "move") @@ -135,7 +125,7 @@ ;; afterwards, in the next render cycle. (dom/append-child! item-el counter-el) (dnd/set-drag-image! event item-el (:x offset) (:y offset)) - (ts/raf #(.removeChild item-el counter-el))))) + (ts/raf #(.removeChild ^js item-el counter-el))))) on-menu-click (mf/use-callback @@ -146,10 +136,11 @@ (let [shift? (kbd/shift? event)] (when-not shift? (st/emit! (dd/clear-selected-files))) - (st/emit! (dd/toggle-file-select {:file file})))) + (st/emit! (dd/toggle-file-select file)))) (let [position (dom/get-client-position event)] - (swap! local assoc :menu-open true - :menu-pos position)))) + (swap! local assoc + :menu-open true + :menu-pos position)))) edit (mf/use-callback @@ -168,19 +159,20 @@ :menu-open false)))] (mf/use-effect - (mf/deps selected? local) - (fn [] - (when (and (not selected?) (:menu-open @local)) - (swap! local assoc :menu-open false)))) + (mf/deps selected? local) + (fn [] + (when (and (not selected?) (:menu-open @local)) + (swap! local assoc :menu-open false)))) + + [:div.grid-item.project-th + {:class (dom/classnames :selected selected?) + :ref item-ref + :draggable true + :on-click on-select + :on-double-click on-navigate + :on-drag-start on-drag-start + :on-context-menu on-menu-click} - [:div.grid-item.project-th {:class (dom/classnames - :selected selected?) - :ref item-ref - :draggable true - :on-click on-select - :on-double-click on-navigate - :on-drag-start on-drag-start - :on-context-menu on-menu-click} [:div.overlay] [:& grid-item-thumbnail {:file file}] (when (:is-shared file) @@ -198,7 +190,7 @@ :on-click on-menu-click} i/actions (when selected? - [:& file-menu {:files selected-file-objs + [:& file-menu {:files (vals selected-files) :show? (:menu-open @local) :left (+ 24 (:x (:menu-pos @local))) :top (:y (:menu-pos @local)) @@ -223,28 +215,24 @@ (mf/defc grid [{:keys [id opts files] :as props}] - (let [locale (mf/deref i18n/locale) - selected-files (mf/deref refs/dashboard-selected-files)] - [:section.dashboard-grid - (cond - (nil? files) - [:& loading-placeholder] + [:section.dashboard-grid + (cond + (nil? files) + [:& loading-placeholder] - (seq files) - [:div.grid-row - (for [item files] - [:& grid-item - {:id (:id item) - :file item - :selected-files selected-files - :key (:id item) - :navigate? true}])] + (seq files) + [:div.grid-row + (for [item files] + [:& grid-item + {:file item + :key (:id item) + :navigate? true}])] - :else - [:& empty-placeholder])])) + :else + [:& empty-placeholder])]) (mf/defc line-grid-row - [{:keys [locale files team-id selected-files on-load-more dragging?] :as props}] + [{:keys [files team-id selected-files on-load-more dragging?] :as props}] (let [rowref (mf/use-ref) width (mf/use-state nil) @@ -294,12 +282,11 @@ [:div.grid-item.placeholder {:on-click on-load-more} [:div.placeholder-icon i/arrow-down] [:div.placeholder-label - (t locale "dashboard.show-all-files")]])])) + (tr "dashboard.show-all-files")]])])) (mf/defc line-grid [{:keys [project-id team-id opts files on-load-more] :as props}] - (let [locale (mf/deref i18n/locale) - dragging? (mf/use-state false) + (let [dragging? (mf/use-state false) selected-files (mf/deref refs/dashboard-selected-files) selected-project (mf/deref refs/dashboard-selected-project) @@ -327,6 +314,12 @@ (when-not (dnd/from-child? e) (reset! dragging? false)))) + on-drop-success + (fn [] + (st/emit! (dm/success (tr "dashboard.success-move-file")) + (dd/fetch-recent-files) + (dd/clear-selected-files))) + on-drop (mf/use-callback (mf/deps files selected-files) @@ -335,11 +328,7 @@ (when (not= selected-project project-id) (let [data {:ids selected-files :project-id project-id} - - mdata {:on-success - (st/emitf (dm/success (tr "dashboard.success-move-file")) - (dd/fetch-recent-files {:team-id team-id}) - (dd/clear-selected-files))}] + mdata {:on-success on-drop-success}] (st/emit! (dd/move-files (with-meta data mdata)))))))] [:section.dashboard-grid {:on-drag-enter on-drag-enter @@ -355,8 +344,7 @@ :team-id team-id :selected-files selected-files :on-load-more on-load-more - :dragging? @dragging? - :locale locale}] + :dragging? @dragging?}] :else [:& empty-placeholder {:dragging? @dragging?}])])) diff --git a/frontend/src/app/main/ui/dashboard/libraries.cljs b/frontend/src/app/main/ui/dashboard/libraries.cljs index 77db054de..e61d4bcd4 100644 --- a/frontend/src/app/main/ui/dashboard/libraries.cljs +++ b/frontend/src/app/main/ui/dashboard/libraries.cljs @@ -10,20 +10,16 @@ [app.main.store :as st] [app.main.ui.dashboard.grid :refer [grid]] [app.main.ui.icons :as i] + [app.main.refs :as refs] [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] [app.util.router :as rt] [okulary.core :as l] [rumext.alpha :as mf])) -(defn files-ref - [team-id] - (l/derived (l/in [:shared-files team-id]) st/state)) - (mf/defc libraries-page [{:keys [team] :as props}] - (let [files-ref (mf/use-memo (mf/deps (:id team)) #(files-ref (:id team))) - files-map (mf/deref files-ref) + (let [files-map (mf/deref refs/dashboard-shared-files) files (->> (vals files-map) (sort-by :modified-at) (reverse))] @@ -33,9 +29,11 @@ (dom/set-html-title (tr "title.dashboard.shared-libraries" (if (:is-default team) (tr "dashboard.your-penpot") - (:name team)))) - (st/emit! (dd/fetch-shared-files {:team-id (:id team)}) - (dd/clear-selected-files)))) + (:name team)))))) + + (mf/use-effect + (st/emitf (dd/fetch-shared-files) + (dd/clear-selected-files))) [:* [:header.dashboard-header diff --git a/frontend/src/app/main/ui/dashboard/project_menu.cljs b/frontend/src/app/main/ui/dashboard/project_menu.cljs index fc2ace6f0..73cf15978 100644 --- a/frontend/src/app/main/ui/dashboard/project_menu.cljs +++ b/frontend/src/app/main/ui/dashboard/project_menu.cljs @@ -11,8 +11,8 @@ [app.main.data.modal :as modal] [app.main.repo :as rp] [app.main.store :as st] - [app.main.ui.context :as ctx] [app.main.ui.components.context-menu :refer [context-menu]] + [app.main.ui.context :as ctx] [app.util.i18n :as i18n :refer [tr]] [app.util.router :as rt] [beicon.core :as rx] @@ -30,64 +30,53 @@ current-team-id (mf/use-ctx ctx/current-team-id) teams (mf/use-state nil) + on-duplicate-success + (fn [new-project] + (st/emit! (dm/success (tr "dashboard.success-duplicate-project")) + (rt/nav :dashboard-files + {:team-id (:team-id new-project) + :project-id (:id new-project)}))) + on-duplicate - (mf/use-callback - (mf/deps project) - #(let [on-success - (fn [new-project] - (st/emit! (dm/success (tr "dashboard.success-duplicate-project")) - (rt/nav :dashboard-files - {:team-id (:team-id new-project) - :project-id (:id new-project)})))] - (st/emit! (dd/duplicate-project - (with-meta project {:on-success on-success}))))) + (fn [] + (st/emit! (dd/duplicate-project + (with-meta project {:on-success on-duplicate-success})))) toggle-pin - (mf/use-callback - (mf/deps project) - (st/emitf (dd/toggle-project-pin project))) + (st/emitf (dd/toggle-project-pin project)) + + on-move-success + (fn [team-id] + (st/emit! (dd/go-to-projects team-id))) on-move - (mf/use-callback - (mf/deps project) - (fn [team-id] - (let [data {:id (:id project) - :team-id team-id} - - mdata {:on-success - (st/emitf (rt/nav :dashboard-projects - {:team-id team-id}))}] - + (fn [team-id] + (let [data {:id (:id project) :team-id team-id} + mdata {:on-success #(on-move-success team-id)}] (st/emitf (dm/success (tr "dashboard.success-move-project")) - (dd/move-project (with-meta data mdata)))))) + (dd/move-project (with-meta data mdata))))) delete-fn - (mf/use-callback - (mf/deps project) - (fn [event] - (st/emit! (dm/success (tr "dashboard.success-delete-project")) - (dd/delete-project project) - (rt/nav :dashboard-projects {:team-id (:team-id project)})))) + (fn [event] + (st/emit! (dm/success (tr "dashboard.success-delete-project")) + (dd/delete-project project) + (dd/go-to-projects (:team-id project)))) on-delete - (mf/use-callback - (mf/deps project) - (st/emitf (modal/show - {:type :confirm - :title (tr "modals.delete-project-confirm.title") - :message (tr "modals.delete-project-confirm.message") - :accept-label (tr "modals.delete-project-confirm.accept") - :on-accept delete-fn})))] + (st/emitf + (modal/show + {:type :confirm + :title (tr "modals.delete-project-confirm.title") + :message (tr "modals.delete-project-confirm.message") + :accept-label (tr "modals.delete-project-confirm.accept") + :on-accept delete-fn}))] - (mf/use-layout-effect - (mf/deps show?) - (fn [] - (if show? - (->> (rp/query! :teams) - (rx/map (fn [teams] - (remove #(= (:id %) current-team-id) teams))) - (rx/subs #(reset! teams %))) - (reset! teams [])))) + (mf/use-effect + (fn [] + (->> (rp/query! :teams) + (rx/map (fn [teams] + (into [] (remove #(= (:id %) current-team-id)) teams))) + (rx/subs #(reset! teams %))))) (when @teams [:& context-menu {:on-close on-menu-close diff --git a/frontend/src/app/main/ui/dashboard/projects.cljs b/frontend/src/app/main/ui/dashboard/projects.cljs index b75d0545c..41e5b895c 100644 --- a/frontend/src/app/main/ui/dashboard/projects.cljs +++ b/frontend/src/app/main/ui/dashboard/projects.cljs @@ -25,45 +25,29 @@ (mf/defc header {::mf/wrap [mf/memo]} - [{:keys [locale team] :as props}] - (let [create #(st/emit! (dd/create-project {:team-id (:id team)}))] + [] + (let [create (st/emitf (dd/create-project))] [:header.dashboard-header [:div.dashboard-title - [:h1 (t locale "dashboard.projects-title")]] + [:h1 (tr "dashboard.projects-title")]] [:a.btn-secondary.btn-small {:on-click create} - (t locale "dashboard.new-project")]])) - -(defn files-ref - [project-id] - (l/derived (l/in [:files project-id]) st/state)) - -(defn recent-ref - [project-id] - (l/derived (l/in [:recent-files project-id]) st/state)) + (tr "dashboard.new-project")]])) (mf/defc project-item - [{:keys [project first? locale] :as props}] - (let [files-ref (mf/use-memo (mf/deps project) #(files-ref (:id project))) - recent-ref (mf/use-memo (mf/deps project) #(recent-ref (:id project))) - - files-map (mf/deref files-ref) - recent-ids (mf/deref recent-ref) - - files (some->> recent-ids - (map #(get files-map %)) - (sort-by :modified-at) - (filter some?) - (reverse)) + [{:keys [project first? files] :as props}] + (let [locale (mf/deref i18n/locale) project-id (:id project) team-id (:team-id project) file-count (or (:count project) 0) - dstate (mf/deref refs/dashboard-local) - edit-id (:project-for-edit dstate) - local (mf/use-state {:menu-open false - :menu-pos nil - :edition? (= (:id project) edit-id)}) + dstate (mf/deref refs/dashboard-local) + edit-id (:project-for-edit dstate) + + local + (mf/use-state {:menu-open false + :menu-pos nil + :edition? (= (:id project) edit-id)}) on-nav (mf/use-callback @@ -145,20 +129,26 @@ [:a.btn-secondary.btn-small {:on-click create-file} - (t locale "dashboard.new-file")]] + (tr "dashboard.new-file")]] [:& line-grid {:project-id (:id project) + :project project :team-id team-id :on-load-more on-nav :files files}]])) + +(def recent-files-ref + (l/derived :dashboard-recent-files st/state)) + (mf/defc projects-section [{:keys [team projects] :as props}] - (let [projects (->> (vals projects) - (sort-by :modified-at) - (reverse)) - locale (mf/deref i18n/locale)] + (let [projects (->> (vals projects) + (sort-by :modified-at) + (reverse)) + recent-map (mf/deref recent-files-ref) + files (vals recent-map)] (mf/use-effect (mf/deps team) @@ -166,18 +156,20 @@ (dom/set-html-title (tr "title.dashboard.projects" (if (:is-default team) (tr "dashboard.your-penpot") - (:name team)))) - (st/emit! (dd/fetch-recent-files {:team-id (:id team)}) - (dd/clear-selected-files)))) + (:name team)))))) + + (mf/use-effect + (st/emitf (dd/fetch-recent-files) + (dd/clear-selected-files))) (when (seq projects) [:* - [:& header {:locale locale - :team team}] + [:& header] [:section.dashboard-container - (for [project projects] - [:& project-item {:project project - :locale locale - :first? (= project (first projects)) - :key (:id project)}])]]))) + (for [{:keys [id] :as project} projects] + (let [files (some->> files (filterv #(= id (:project-id %))))] + [:& project-item {:project project + :files files + :first? (= project (first projects)) + :key (:id project)}]))]]))) diff --git a/frontend/src/app/main/ui/dashboard/search.cljs b/frontend/src/app/main/ui/dashboard/search.cljs index 2f9568e14..d3c6ed9ed 100644 --- a/frontend/src/app/main/ui/dashboard/search.cljs +++ b/frontend/src/app/main/ui/dashboard/search.cljs @@ -7,56 +7,52 @@ (ns app.main.ui.dashboard.search (:require [app.main.data.dashboard :as dd] + [app.main.refs :as refs] [app.main.store :as st] [app.main.ui.dashboard.grid :refer [grid]] [app.main.ui.icons :as i] [app.util.dom :as dom] - [app.util.i18n :as i18n :refer [t]] + [app.util.i18n :as i18n :refer [tr]] [okulary.core :as l] [rumext.alpha :as mf])) - -(def result-ref - (l/derived (l/in [:dashboard-local :search-result]) st/state)) - (mf/defc search-page [{:keys [team search-term] :as props}] - (let [result (mf/deref result-ref) - locale (mf/deref i18n/locale)] - + (let [result (mf/deref refs/dashboard-search-result)] (mf/use-effect - (mf/deps team search-term) + (mf/deps team) (fn [] - (dom/set-html-title (t locale "title.dashboard.search" + (dom/set-html-title (tr "title.dashboard.search" (if (:is-default team) - (t locale "dashboard.your-penpot") - (:name team)))) - (when search-term - (st/emit! (dd/search-files {:team-id (:id team) - :search-term search-term}) - (dd/clear-selected-files))))) + (tr "dashboard.your-penpot") + (:name team)))))) + (mf/use-effect + (mf/deps search-term) + (fn [] + (st/emit! (dd/search {:search-term search-term}) + (dd/clear-selected-files)))) [:* [:header.dashboard-header [:div.dashboard-title - [:h1 (t locale "dashboard.title-search")]]] + [:h1 (tr "dashboard.title-search")]]] [:section.dashboard-container.search (cond (empty? search-term) [:div.grid-empty-placeholder [:div.icon i/search] - [:div.text (t locale "dashboard.type-something")]] + [:div.text (tr "dashboard.type-something")]] (nil? result) [:div.grid-empty-placeholder [:div.icon i/search] - [:div.text (t locale "dashboard.searching-for" search-term)]] + [:div.text (tr "dashboard.searching-for" search-term)]] (empty? result) [:div.grid-empty-placeholder [:div.icon i/search] - [:div.text (t locale "dashboard.no-matches-for" search-term)]] + [:div.text (tr "dashboard.no-matches-for" search-term)]] :else [:& grid {:files result diff --git a/frontend/src/app/main/ui/dashboard/sidebar.cljs b/frontend/src/app/main/ui/dashboard/sidebar.cljs index b9dc8446e..b35edc7e0 100644 --- a/frontend/src/app/main/ui/dashboard/sidebar.cljs +++ b/frontend/src/app/main/ui/dashboard/sidebar.cljs @@ -56,8 +56,7 @@ (mf/use-callback (mf/deps item) (fn [] - (st/emit! (rt/nav :dashboard-files {:team-id (:team-id item) - :project-id (:id item)})))) + (st/emit! (dd/go-to-files (:id item))))) on-menu-click (mf/use-callback @@ -103,21 +102,22 @@ (when-not (dnd/from-child? e) (swap! local assoc :dragging? false)))) + on-drop-success + (mf/use-callback + (mf/deps (:id item)) + (st/emitf (dm/success (tr "dashboard.success-move-file")) + (dd/go-to-files (:id item)))) + on-drop (mf/use-callback - (mf/deps item selected-files) - (fn [e] - (swap! local assoc :dragging? false) - (when (not= selected-project (:id item)) - (let [data {:ids selected-files - :project-id (:id item)} - - mdata {:on-success - (st/emitf (dm/success (tr "dashboard.success-move-file")) - (rt/nav :dashboard-files - {:team-id team-id - :project-id (:id item)}))}] - (st/emit! (dd/move-files (with-meta data mdata)))))))] + (mf/deps item selected-files) + (fn [e] + (swap! local assoc :dragging? false) + (when (not= selected-project (:id item)) + (let [data {:ids selected-files + :project-id (:id item)} + mdata {:on-success on-drop-success}] + (st/emit! (dd/move-files (with-meta data mdata)))))))] [:* [:li {:class (if selected? "current" @@ -151,12 +151,9 @@ (mf/deps team-id) (fn [event] (reset! focused? true) - (let [target (dom/get-target event) - value (dom/get-value target)] - (dom/select-text! target) - (if (empty? value) - (emit! (rt/nav :dashboard-search {:team-id team-id} {})) - (emit! (rt/nav :dashboard-search {:team-id team-id} {:search-term value})))))) + (let [value (dom/get-target-val event)] + (dom/select-text! (dom/get-target event)) + (emit! (dd/go-to-search value))))) on-search-blur (mf/use-callback @@ -167,9 +164,8 @@ (mf/use-callback (mf/deps team-id) (fn [event] - (let [value (-> (dom/get-target event) - (dom/get-value))] - (emit! (rt/nav :dashboard-search {:team-id team-id} {:search-term value}))))) + (let [value (dom/get-target-val event)] + (emit! (dd/go-to-search value))))) on-clear-click (mf/use-callback @@ -178,7 +174,7 @@ (let [search-input (dom/get-element "search-input")] (dom/clean-value! search-input) (dom/focus! search-input) - (emit! (rt/nav :dashboard-search {:team-id team-id} {})))))] + (emit! (dd/go-to-search)))))] [:form.sidebar-search [:input.input-text @@ -213,9 +209,8 @@ team-selected (mf/use-callback - (fn [team-id] - (du/set-current-team! team-id) - (st/emit! (rt/nav :dashboard-projects {:team-id team-id}))))] + (fn [team-id] + (st/emit! (dd/go-to-projects team-id))))] [:ul.dropdown.teams-dropdown [:li.title (tr "dashboard.switch-team")] @@ -243,21 +238,17 @@ {::mf/register modal/components ::mf/register-as ::leave-and-reassign} [{:keys [members profile team accept]}] - (let [form (fm/use-form :spec ::leave-modal-form :initial {}) - not-current-user? (fn [{:keys [id]}] (not= id (:id profile))) - members (->> members (filterv not-current-user?)) - options (into [{:value "" :label (tr "modals.leave-and-reassign.select-memeber-to-promote")}] - (map #(hash-map :label (:name %) :value (str (:id %))) members)) - - on-cancel - (mf/use-callback (st/emitf (modal/hide))) + (let [form (fm/use-form :spec ::leave-modal-form :initial {}) + members (some->> members (filterv #(not= (:id %) (:id profile)))) + options (into [{:value "" + :label (tr "modals.leave-and-reassign.select-memeber-to-promote")}] + (map #(hash-map :label (:name %) :value (str (:id %))) members)) + on-cancel (st/emitf (modal/hide)) on-accept - (mf/use-callback - (mf/deps form) - (fn [event] - (let [member-id (get-in @form [:clean-data :member-id])] - (accept member-id))))] + (fn [event] + (let [member-id (get-in @form [:clean-data :member-id])] + (accept member-id)))] [:div.modal-overlay [:div.modal-container.confirm-dialog @@ -292,92 +283,60 @@ :value (tr "modals.leave-and-reassign.promote-and-leave") :on-click on-accept}]]]]])) - (mf/defc team-options-dropdown [{:keys [team profile] :as props}] - (let [members (mf/use-state []) + (let [go-members (st/emitf (dd/go-to-team-members)) + go-settings (st/emitf (dd/go-to-team-settings)) - go-members - (mf/use-callback - (mf/deps team) - (st/emitf (rt/nav :dashboard-team-members {:team-id (:id team)}))) - - go-settings - (mf/use-callback - (mf/deps team) - (st/emitf (rt/nav :dashboard-team-settings {:team-id (:id team)}))) + members-map (mf/deref refs/dashboard-team-members) + members (vals members-map) on-create-clicked - (mf/use-callback - (st/emitf (modal/show :team-form {}))) + (st/emitf (modal/show :team-form {})) on-rename-clicked - (mf/use-callback - (mf/deps team) - (st/emitf (modal/show :team-form {:team team}))) + (st/emitf (modal/show :team-form {:team team})) on-leaved-success - (mf/use-callback - (mf/deps team profile) - (fn [] - (let [team-id (:default-team-id profile)] - (du/set-current-team! team-id) - (st/emit! (modal/hide) - (du/fetch-teams) - (rt/nav :dashboard-projects {:team-id team-id}))))) + (fn [] + (st/emit! (modal/hide) + (dd/go-to-projects (:default-team-id profile)))) leave-fn - (mf/use-callback - (mf/deps team) - (st/emitf (dd/leave-team (with-meta team {:on-success on-leaved-success})))) + (st/emitf (dd/leave-team (with-meta {} {:on-success on-leaved-success}))) leave-and-reassign-fn - (mf/use-callback - (mf/deps team) - (fn [member-id] - (let [team (assoc team :reassign-to member-id)] - (st/emit! (dd/leave-team (with-meta team {:on-success on-leaved-success})))))) + (fn [member-id] + (let [params {:reassign-to member-id}] + (st/emit! (dd/leave-team (with-meta params {:on-success on-leaved-success}))))) on-leave-clicked - (mf/use-callback - (mf/deps team) - (st/emitf (modal/show - {:type :confirm - :title (tr "modals.leave-confirm.title") - :message (tr "modals.leave-confirm.message") - :accept-label (tr "modals.leave-confirm.accept") - :on-accept leave-fn}))) + (st/emitf (modal/show + {:type :confirm + :title (tr "modals.leave-confirm.title") + :message (tr "modals.leave-confirm.message") + :accept-label (tr "modals.leave-confirm.accept") + :on-accept leave-fn})) on-leave-as-owner-clicked - (mf/use-callback - (mf/deps team @members) - (st/emitf (modal/show - {:type ::leave-and-reassign - :profile profile - :team team - :accept leave-and-reassign-fn - :members @members}))) + (st/emitf (modal/show + {:type ::leave-and-reassign + :profile profile + :team team + :members members + :accept leave-and-reassign-fn})) delete-fn - (mf/use-callback - (mf/deps team) - (st/emitf (dd/delete-team (with-meta team {:on-success on-leaved-success})))) + (st/emitf (dd/delete-team (with-meta team {:on-success on-leaved-success}))) on-delete-clicked - (mf/use-callback - (mf/deps team) - (st/emitf (modal/show - {:type :confirm - :title (tr "modals.delete-team-confirm.title") - :message (tr "modals.delete-team-confirm.message") - :accept-label (tr "modals.delete-team-confirm.accept") - :on-accept delete-fn})))] - - (mf/use-layout-effect - (mf/deps (:id team)) - (fn [] - (->> (rp/query! :team-members {:team-id (:id team)}) - (rx/subs #(reset! members %))))) + (st/emitf + (modal/show + {:type :confirm + :title (tr "modals.delete-team-confirm.title") + :message (tr "modals.delete-team-confirm.message") + :accept-label (tr "modals.delete-team-confirm.accept") + :on-accept delete-fn}))] [:ul.dropdown.options-dropdown [:li {:on-click go-members} (tr "labels.members")] @@ -389,7 +348,7 @@ (:is-owner team) [:li {:on-click on-leave-as-owner-clicked} (tr "dashboard.leave-team")] - (> (count @members) 1) + (> (count members) 1) [:li {:on-click on-leave-clicked} (tr "dashboard.leave-team")]) diff --git a/frontend/src/app/main/ui/dashboard/team.cljs b/frontend/src/app/main/ui/dashboard/team.cljs index 64eed4bee..168a944c2 100644 --- a/frontend/src/app/main/ui/dashboard/team.cljs +++ b/frontend/src/app/main/ui/dashboard/team.cljs @@ -32,22 +32,9 @@ (mf/defc header {::mf/wrap [mf/memo]} [{:keys [section team] :as props}] - (let [go-members - (mf/use-callback - (mf/deps team) - (st/emitf (rt/nav :dashboard-team-members {:team-id (:id team)}))) - - go-settings - (mf/use-callback - (mf/deps team) - (st/emitf (rt/nav :dashboard-team-settings {:team-id (:id team)}))) - - invite-member - (mf/use-callback - (mf/deps team) - (st/emitf (modal/show {:type ::invite-member - :team team}))) - + (let [go-members (st/emitf (dd/go-to-team-members)) + go-settings (st/emitf (dd/go-to-team-settings)) + invite-member (st/emitf (modal/show {:type ::invite-member})) members-section? (= section :dashboard-team-members) settings-section? (= section :dashboard-team-settings)] @@ -69,6 +56,16 @@ (tr "dashboard.invite-profile")] [:div])])) +(defn get-available-roles + [] + [{:value "" :label (tr "labels.role")} + {:value "admin" :label (tr "labels.admin")} + {:value "editor" :label (tr "labels.editor")} + ;; Temporarily disabled viewer role + ;; https://tree.taiga.io/project/uxboxproject/issue/1083 + ;; {:value "viewer" :label (tr "labels.viewer")} + ]) + (s/def ::email ::us/email) (s/def ::role ::us/keyword) (s/def ::invite-member-form @@ -77,53 +74,40 @@ (mf/defc invite-member-modal {::mf/register modal/components ::mf/register-as ::invite-member} - [{:keys [team] :as props}] - (let [roles [{:value "" :label (tr "labels.role")} - {:value "admin" :label (tr "labels.admin")} - {:value "editor" :label (tr "labels.editor")}] - ;; Temporarily disabled viewer role - ;; https://tree.taiga.io/project/uxboxproject/issue/1083 - ;; {:value "viewer" :label (tr "labels.viewer")}] - - initial (mf/use-memo (mf/deps team) (constantly {:team-id (:id team) - :role "editor"})) + [] + (let [roles (mf/use-memo get-available-roles) + initial (mf/use-memo (constantly {:role "editor"})) form (fm/use-form :spec ::invite-member-form :initial initial) on-success - (mf/use-callback - (mf/deps team) - (st/emitf (dm/success (tr "notifications.invitation-email-sent")) - (modal/hide))) + (st/emitf (dm/success (tr "notifications.invitation-email-sent")) + (modal/hide)) on-error - (mf/use-callback - (mf/deps team) - (fn [form {:keys [type code] :as error}] - (let [email (get @form [:data :email])] - (cond - (and (= :validation type) - (= :profile-is-muted code)) - (dm/error (tr "errors.profile-is-muted")) + (fn [form {:keys [type code] :as error}] + (let [email (get @form [:data :email])] + (cond + (and (= :validation type) + (= :profile-is-muted code)) + (dm/error (tr "errors.profile-is-muted")) - (and (= :validation type) - (= :member-is-muted code)) - (dm/error (tr "errors.member-is-muted")) + (and (= :validation type) + (= :member-is-muted code)) + (dm/error (tr "errors.member-is-muted")) - (and (= :validation type) - (= :email-has-permanent-bounces)) - (dm/error (tr "errors.email-has-permanent-bounces" email)) + (and (= :validation type) + (= :email-has-permanent-bounces)) + (dm/error (tr "errors.email-has-permanent-bounces" email)) - :else - (dm/error (tr "errors.generic")))))) + :else + (dm/error (tr "errors.generic"))))) on-submit - (mf/use-callback - (mf/deps team) - (fn [form] - (let [params (:clean-data @form) - mdata {:on-success (partial on-success form) - :on-error (partial on-error form)}] - (st/emit! (dd/invite-team-member (with-meta params mdata))))))] + (fn [form] + (let [params (:clean-data @form) + mdata {:on-success (partial on-success form) + :on-error (partial on-error form)}] + (st/emit! (dd/invite-team-member (with-meta params mdata)))))] [:div.modal.dashboard-invite-modal.form-container [:& fm/form {:on-submit on-submit :form form} @@ -139,50 +123,39 @@ [:div.action-buttons [:& fm/submit-button {:label (tr "modals.invite-member-confirm.accept")}]]]])) - (mf/defc team-member + {::mf/wrap [mf/memo]} [{:keys [team member profile] :as props}] (let [show? (mf/use-state false) set-role - #(st/emit! (dd/update-team-member-role {:team-id (:id team) - :member-id (:id member) - :role %})) - set-owner-fn - (partial set-role :owner) + (fn [role] + (let [params {:member-id (:id member) :role role}] + (st/emit! (dd/update-team-member-role params)))) - set-admin - (mf/use-callback (mf/deps team member) (partial set-role :admin)) - - set-editor - (mf/use-callback (mf/deps team member) (partial set-role :editor)) - - set-viewer - (mf/use-callback (mf/deps team member) (partial set-role :viewer)) + set-owner-fn (partial set-role :owner) + set-admin (partial set-role :admin) + set-editor (partial set-role :editor) + set-viewer (partial set-role :viewer) set-owner - (mf/use-callback - (mf/deps team member) - (st/emitf (modal/show - {:type :confirm - :title (tr "modals.promote-owner-confirm.title") - :message (tr "modals.promote-owner-confirm.message") - :accept-label (tr "modals.promote-owner-confirm.accept") - :on-accept set-owner-fn}))) + (st/emitf (modal/show + {:type :confirm + :title (tr "modals.promote-owner-confirm.title") + :message (tr "modals.promote-owner-confirm.message") + :accept-label (tr "modals.promote-owner-confirm.accept") + :on-accept set-owner-fn})) delete-fn - (st/emitf (dd/delete-team-member {:team-id (:id team) :member-id (:id member)})) + (st/emitf (dd/delete-team-member {:member-id (:id member)})) delete - (mf/use-callback - (mf/deps team member) - (st/emitf (modal/show - {:type :confirm - :title (tr "modals.delete-team-member-confirm.title") - :message (tr "modals.delete-team-member-confirm.message") - :accept-label (tr "modals.delete-team-member-confirm.accept") - :on-accept delete-fn})))] - + (st/emitf (modal/show + {:type :confirm + :title (tr "modals.delete-team-member-confirm.title") + :message (tr "modals.delete-team-member-confirm.message") + :accept-label (tr "modals.delete-team-member-confirm.accept") + :on-accept delete-fn}))] [:div.table-row [:div.table-field.name (:name member)] @@ -244,23 +217,21 @@ (for [item members] [:& team-member {:member item :team team :profile profile :key (:id item)}])]])) -(defn- members-ref - [{:keys [id] :as team}] - (l/derived (l/in [:team-members id]) st/state)) - (mf/defc team-members-page [{:keys [team profile] :as props}] - (let [members-ref (mf/use-memo (mf/deps team) #(members-ref team)) - members-map (mf/deref members-ref)] + (let [members-map (mf/deref refs/dashboard-team-members)] (mf/use-effect (mf/deps team) (fn [] - (dom/set-html-title (tr "title.team-members" - (if (:is-default team) - (tr "dashboard.your-penpot") - (:name team)))) - (st/emit! (dd/fetch-team-members team)))) + (dom/set-html-title + (tr "title.team-members" + (if (:is-default team) + (tr "dashboard.your-penpot") + (:name team)))))) + + (mf/use-effect + (st/emitf (dd/fetch-team-members))) [:* [:& header {:section :dashboard-team-members @@ -270,42 +241,35 @@ :team team :members-map members-map}]]])) -(defn- stats-ref - [{:keys [id] :as team}] - (l/derived (l/in [:team-stats id]) st/state)) - (mf/defc team-settings-page [{:keys [team profile] :as props}] (let [finput (mf/use-ref) - members-ref (mf/use-memo (mf/deps team) #(members-ref team)) - members-map (mf/deref members-ref) - + members-map (mf/deref refs/dashboard-team-members) owner (->> (vals members-map) (d/seek :is-owner)) - stats-ref (mf/use-memo (mf/deps team) #(stats-ref team)) - stats (mf/deref stats-ref) + stats (mf/deref refs/dashboard-team-stats) on-image-click (mf/use-callback #(dom/click (mf/ref-val finput))) on-file-selected - (mf/use-callback - (mf/deps team) - (fn [file] - (st/emit! (dd/update-team-photo {:file file - :team-id (:id team)}))))] + (fn [file] + (st/emit! (dd/update-team-photo {:file file})))] + (mf/use-effect - (mf/deps team) - (fn [] - (dom/set-html-title (tr "title.team-settings" - (if (:is-default team) - (tr "dashboard.your-penpot") - (:name team)))) - (st/emit! (dd/fetch-team-members team) - (dd/fetch-team-stats team)))) + (mf/deps team) + (fn [] + (dom/set-html-title (tr "title.team-settings" + (if (:is-default team) + (tr "dashboard.your-penpot") + (:name team)))))) + + (mf/use-effect + (st/emitf (dd/fetch-team-members) + (dd/fetch-team-stats))) [:* [:& header {:section :dashboard-team-settings diff --git a/frontend/src/app/main/ui/workspace.cljs b/frontend/src/app/main/ui/workspace.cljs index 6833c69d0..c21de7bea 100644 --- a/frontend/src/app/main/ui/workspace.cljs +++ b/frontend/src/app/main/ui/workspace.cljs @@ -100,8 +100,13 @@ (mf/use-layout-effect (mf/deps page-id) (fn [] - (st/emit! (dw/initialize-page page-id)) - (st/emitf (dw/finalize-page page-id)))) + (if (nil? page-id) + (st/emit! (dw/go-to-page)) + (st/emit! (dw/initialize-page page-id))) + + (fn [] + (when page-id + (st/emitf (dw/finalize-page page-id)))))) (when page [:& workspace-content {:key page-id @@ -116,7 +121,6 @@ (mf/defc workspace {::mf/wrap [mf/memo]} [{:keys [project-id file-id page-id layout-name] :as props}] - (let [file (mf/deref refs/workspace-file) project (mf/deref refs/workspace-project) layout (mf/deref refs/workspace-layout)] From 0f8e2a9b1be0e3c36cc4b1b2bb56b0cd299b7711 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Sat, 8 May 2021 14:59:58 +0200 Subject: [PATCH 045/135] :tada: Add experimental trazability to update-file. --- backend/src/app/rpc/mutations/files.clj | 59 +++++--- frontend/src/app/main/data/workspace.cljs | 141 ++++++++++-------- .../src/app/main/data/workspace/changes.cljs | 115 +++++++------- .../src/app/main/data/workspace/common.cljs | 43 ++++-- .../src/app/main/data/workspace/grid.cljs | 27 ++-- .../src/app/main/data/workspace/groups.cljs | 24 ++- .../app/main/data/workspace/libraries.cljs | 137 +++++++++++------ .../app/main/data/workspace/path/changes.cljs | 6 +- .../app/main/data/workspace/path/edition.cljs | 22 +-- .../app/main/data/workspace/path/tools.cljs | 6 +- .../app/main/data/workspace/persistence.cljs | 38 ++--- .../app/main/data/workspace/selection.cljs | 7 +- .../app/main/data/workspace/svg_upload.cljs | 8 +- .../app/main/data/workspace/transforms.cljs | 28 ++-- frontend/src/app/main/store.cljs | 18 +++ 15 files changed, 407 insertions(+), 272 deletions(-) diff --git a/backend/src/app/rpc/mutations/files.clj b/backend/src/app/rpc/mutations/files.clj index 493be817b..7ce732eca 100644 --- a/backend/src/app/rpc/mutations/files.clj +++ b/backend/src/app/rpc/mutations/files.clj @@ -228,16 +228,10 @@ {:id file-id})) +;; --- MUTATION: update-file + ;; A generic, Changes based (granular) file update method. -(s/def ::changes - (s/coll-of map? :kind vector?)) - -(s/def ::session-id ::us/uuid) -(s/def ::revn ::us/integer) -(s/def ::update-file - (s/keys :req-un [::id ::session-id ::profile-id ::revn ::changes])) - ;; File changes that affect to the library, and must be notified ;; to all clients using it. (defn library-change? @@ -256,6 +250,31 @@ (declare send-notifications) (declare update-file) +(s/def ::changes + (s/coll-of map? :kind vector?)) + +(s/def ::hint-origin ::us/keyword) +(s/def ::hint-events + (s/every ::us/keyword :kind vector?)) + +(s/def ::change-with-metadata + (s/keys :req-un [::changes] + :opt-un [::hint-origin + ::hint-events])) + +(s/def ::changes-with-metadata + (s/every ::change-with-metadata :kind vector?)) + +(s/def ::session-id ::us/uuid) +(s/def ::revn ::us/integer) +(s/def ::update-file + (s/and + (s/keys :req-un [::id ::session-id ::profile-id ::revn] + :opt-un [::changes ::changes-with-metadata]) + (fn [o] + (or (contains? o :changes) + (contains? o :changes-with-metadata))))) + (sv/defmethod ::update-file [{:keys [pool] :as cfg} {:keys [id profile-id] :as params}] (db/with-atomic [conn pool] @@ -265,7 +284,7 @@ (assoc params :file file))))) (defn- update-file - [{:keys [conn] :as cfg} {:keys [file changes session-id profile-id] :as params}] + [{:keys [conn] :as cfg} {:keys [file changes changes-with-metadata session-id profile-id] :as params}] (when (> (:revn params) (:revn file)) (ex/raise :type :validation @@ -274,15 +293,19 @@ :context {:incoming-revn (:revn params) :stored-revn (:revn file)})) - (let [file (-> file - (update :revn inc) - (update :data (fn [data] - (-> data - (blob/decode) - (assoc :id (:id file)) - (pmg/migrate-data) - (cp/process-changes changes) - (blob/encode)))))] + (let [changes (if changes-with-metadata + (mapcat :changes changes-with-metadata) + changes) + + file (-> file + (update :revn inc) + (update :data (fn [data] + (-> data + (blob/decode) + (assoc :id (:id file)) + (pmg/migrate-data) + (cp/process-changes changes) + (blob/encode)))))] ;; Insert change to the xlog (db/insert! conn :file-change {:id (uuid/next) diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 69e19f32b..18ad355a9 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -134,7 +134,7 @@ (or layout default-layout)))) ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (if (and layout-name (contains? layout-names layout-name)) (rx/of (ensure-layout layout-name)) (rx/of (ensure-layout :layers)))))) @@ -153,7 +153,7 @@ :workspace-presence {})) ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (rx/merge (rx/of (dwp/fetch-bundle project-id file-id)) @@ -188,7 +188,7 @@ file)))) ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [ignore-until (get-in state [:workspace-file :ignore-sync-until]) needs-update? (some #(and (> (:modified-at %) (:synced-at %)) (or (not ignore-until) @@ -209,7 +209,7 @@ :workspace-persistence)) ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (rx/of (dwn/finalize file-id) ::dwp/finalize)))) @@ -263,7 +263,7 @@ {:id id :file-id file-id}) ptk/WatchEvent - (watch [this state stream] + (watch [it state stream] (let [pages (get-in state [:workspace-data :pages-index]) unames (dwc/retrieve-used-names pages) name (dwc/generate-unique-name unames "Page") @@ -273,9 +273,12 @@ :name name} uchange {:type :del-page :id id}] - (rx/of (dch/commit-changes [rchange] [uchange] {:commit-local? true}))))))) + (rx/of (dch/commit-changes {:redo-changes [rchange] + :undo-changes [uchange] + :origin it}))))))) -(defn duplicate-page [page-id] +(defn duplicate-page + [page-id] (ptk/reify ::duplicate-page ptk/WatchEvent (watch [this state stream] @@ -291,7 +294,9 @@ :page page} uchange {:type :del-page :id id}] - (rx/of (dch/commit-changes [rchange] [uchange] {:commit-local? true})))))) + (rx/of (dch/commit-changes {:redo-changes [rchange] + :undo-changes [uchange] + :origin this})))))) (s/def ::rename-page (s/keys :req-un [::id ::name])) @@ -302,7 +307,7 @@ (us/verify string? name) (ptk/reify ::rename-page ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [page (get-in state [:workspace-data :pages-index id]) rchg {:type :mod-page :id id @@ -310,7 +315,9 @@ uchg {:type :mod-page :id id :name (:name page)}] - (rx/of (dch/commit-changes [rchg] [uchg] {:commit-local? true})))))) + (rx/of (dch/commit-changes {:redo-changes [rchg] + :undo-changes [uchg] + :origin it})))))) (declare purge-page) (declare go-to-file) @@ -321,13 +328,15 @@ [id] (ptk/reify ::delete-page ptk/WatchEvent - (watch [_ state s] + (watch [it state stream] (let [page (get-in state [:workspace-data :pages-index id]) rchg {:type :del-page :id id} uchg {:type :add-page :page page}] - (rx/of (dch/commit-changes [rchg] [uchg] {:commit-local? true}) + (rx/of (dch/commit-changes {:redo-changes [rchg] + :undo-changes [uchg] + :origin it}) (when (= id (:current-page-id state)) go-to-file)))))) @@ -345,7 +354,7 @@ (assoc-in state [:workspace-file :name] name)) ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [params {:id id :name name}] (->> (rp/mutation :rename-file params) (rx/ignore)))))) @@ -444,7 +453,7 @@ (defn start-panning [] (ptk/reify ::start-panning ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [stopper (->> stream (rx/filter (ptk/type? ::finish-panning))) zoom (-> (get-in state [:workspace-local :zoom]) gpt/point)] (when-not (get-in state [:workspace-local :panning]) @@ -607,7 +616,7 @@ (us/verify ::shape-attrs attrs) (ptk/reify ::update-shape ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (rx/of (dch/update-shapes [id] #(merge % attrs)))))) (defn start-rename-shape @@ -632,7 +641,7 @@ (us/verify ::shape-attrs attrs) (ptk/reify ::update-selected-shapes ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [selected (wsh/lookup-selected state)] (rx/from (map #(update-shape % attrs) selected)))))) @@ -670,7 +679,7 @@ "Deselect all and remove all selected shapes." (ptk/reify ::delete-selected ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [selected (wsh/lookup-selected state)] (rx/of (dwc/delete-shapes selected) (dws/deselect-all)))))) @@ -682,9 +691,9 @@ (defn vertical-order-selected [loc] (us/verify ::loc loc) - (ptk/reify ::vertical-order-selected-shpes + (ptk/reify ::vertical-order-selected ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) selected (wsh/lookup-selected state) @@ -716,7 +725,9 @@ :index (cp/position-on-parent id objects)})) selected)] ;; TODO: maybe missing the :reg-objects event? - (rx/of (dch/commit-changes rchanges uchanges {:commit-local? true})))))) + (rx/of (dch/commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it})))))) ;; --- Change Shape Order (D&D Ordering) @@ -891,7 +902,7 @@ (ptk/reify ::relocate-shapes ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) @@ -990,14 +1001,16 @@ shapes-to-detach shapes-to-reroot shapes-to-deroot)] - (rx/of (dch/commit-changes rchanges uchanges {:commit-local? true}) + (rx/of (dch/commit-changes {:redo-changes rchanges + :undo-chanes uchanges + :origin it}) (dwc/expand-collapse parent-id)))))) (defn relocate-selected-shapes [parent-id to-index] (ptk/reify ::relocate-selected-shapes ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [selected (wsh/lookup-selected state)] (rx/of (relocate-shapes selected parent-id to-index)))))) @@ -1006,7 +1019,7 @@ [] (ptk/reify ::start-editing-selected ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [selected (wsh/lookup-selected state)] (if-not (= 1 (count selected)) (rx/empty) @@ -1034,7 +1047,7 @@ [id index] (ptk/reify ::relocate-pages ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [cidx (-> (get-in state [:workspace-data :pages]) (d/index-of id)) rchg {:type :mov-page @@ -1043,7 +1056,9 @@ uchg {:type :mov-page :id id :index cidx}] - (rx/of (dch/commit-changes [rchg] [uchg])))))) + (rx/of (dch/commit-changes {:redo-changes [rchg] + :undo-chanes [uchg] + :origin it})))))) ;; --- Shape / Selection Alignment and Distribution @@ -1055,7 +1070,7 @@ (us/verify ::gal/align-axis axis) (ptk/reify :align-objects ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) selected (wsh/lookup-selected state) @@ -1086,7 +1101,7 @@ (us/verify ::gal/dist-axis axis) (ptk/reify :align-objects ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) selected (wsh/lookup-selected state) @@ -1104,7 +1119,7 @@ [id lock] (ptk/reify ::set-shape-proportion-lock ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (letfn [(assign-proportions [shape] (if-not lock (assoc shape :proportion-lock false) @@ -1125,7 +1140,7 @@ (us/verify ::position position) (ptk/reify ::update-position ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) shape (get objects id) @@ -1147,7 +1162,7 @@ (s/assert ::shape-attrs flags) (ptk/reify ::update-shape-flags ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (letfn [(update-fn [obj] (cond-> obj (boolean? blocked) (assoc :blocked blocked) @@ -1163,7 +1178,7 @@ [project-id] (ptk/reify ::navigate-to-project ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [page-ids (get-in state [:projects project-id :pages]) params {:project project-id :page (first page-ids)}] (rx/of (rt/nav :workspace/page params)))))) @@ -1172,7 +1187,7 @@ ([] (ptk/reify ::go-to-page ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [project-id (:current-project-id state) file-id (:current-file-id state) page-id (get-in state [:workspace-data :pages 0]) @@ -1184,7 +1199,7 @@ (us/verify ::us/uuid page-id) (ptk/reify ::go-to-page ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [project-id (:current-project-id state) file-id (:current-file-id state) pparams {:file-id file-id :project-id project-id} @@ -1196,7 +1211,7 @@ (us/verify ::layout-flag layout) (ptk/reify ::go-to-layout ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [project-id (get-in state [:workspace-project :id]) file-id (get-in state [:workspace-file :id]) page-id (get-in state [:current-page-id]) @@ -1207,7 +1222,7 @@ (def go-to-file (ptk/reify ::go-to-file ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [{:keys [id project-id data] :as file} (:workspace-file state) page-id (get-in data [:pages 0]) pparams {:project-id project-id :file-id id} @@ -1220,7 +1235,7 @@ ([{:keys [file-id page-id]}] (ptk/reify ::go-to-viewer ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [{:keys [current-file-id current-page-id]} state params {:file-id (or file-id current-file-id) :page-id (or page-id current-page-id)}] @@ -1232,7 +1247,7 @@ ([{:keys [team-id]}] (ptk/reify ::go-to-dashboard ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [team-id (or team-id (get-in state [:workspace-project :team-id]))] (rx/of ::dwp/force-persist (rt/nav :dashboard-projects {:team-id team-id}))))))) @@ -1262,7 +1277,7 @@ (us/verify ::cp/minimal-shape shape) (ptk/reify ::show-shape-context-menu ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [selected (wsh/lookup-selected state)] (rx/concat (when-not (selected (:id shape)) @@ -1354,7 +1369,7 @@ (ptk/reify ::copy-selected ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [objects (wsh/lookup-page-objects state) selected (->> (wsh/lookup-selected state) (cp/clean-loops objects)) @@ -1381,7 +1396,7 @@ (def paste (ptk/reify ::paste ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (try (let [clipboard-str (wapi/read-from-clipboard) @@ -1420,7 +1435,7 @@ [event in-viewport?] (ptk/reify ::paste-from-event ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (try (let [objects (wsh/lookup-page-objects state) paste-data (wapi/read-from-paste-event event) @@ -1538,7 +1553,7 @@ change))) ;; Procceed with the standard shape paste procediment. - (do-paste [state mouse-pos media] + (do-paste [it state mouse-pos media] (let [media-idx (d/index-by :prev-id media) page-id (:current-page-id state) @@ -1584,19 +1599,21 @@ (map #(get-in % [:obj :id])) (into (d/ordered-set)))] - (rx/of (dch/commit-changes rchanges uchanges {:commit-local? true}) + (rx/of (dch/commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it}) (dwc/select-shapes selected))))] (ptk/reify ::paste-shape ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [file-id (:current-file-id state) mouse-pos (deref ms/mouse-position)] (if (= file-id (:file-id data)) - (do-paste state mouse-pos []) + (do-paste it state mouse-pos []) (->> (rx/from images) (rx/merge-map (partial upload-media file-id)) (rx/reduce conj []) - (rx/mapcat (partial do-paste state mouse-pos))))))))) + (rx/mapcat (partial do-paste it state mouse-pos))))))))) (defn as-content [text] @@ -1612,7 +1629,7 @@ (s/assert string? text) (ptk/reify ::paste-text ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [id (uuid/next) {:keys [x y]} @ms/mouse-position width (max 8 (min (* 7 (count text)) 700)) @@ -1641,7 +1658,7 @@ (s/assert string? text) (ptk/reify ::paste-svg ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [position (deref ms/mouse-position) file-id (:current-file-id state)] (->> (dwp/parse-svg ["svg" text]) @@ -1651,7 +1668,7 @@ [image] (ptk/reify ::paste-bin-impl ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [file-id (get-in state [:workspace-file :id]) params {:file-id file-id :blobs [image] @@ -1676,7 +1693,7 @@ [] (ptk/reify ::start-create-interaction ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [initial-pos @ms/mouse-position selected (wsh/lookup-selected state) stopper (rx/filter ms/mouse-up? stream)] @@ -1713,7 +1730,7 @@ (assoc-in [:workspace-local :draw-interaction-to-frame] nil))) ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [position @ms/mouse-position page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) @@ -1741,20 +1758,20 @@ [color] (ptk/reify ::change-canvas-color ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [page-id (get state :current-page-id) options (wsh/lookup-page-options state page-id) previus-color (:background options)] (rx/of (dch/commit-changes - [{:type :set-option - :page-id page-id - :option :background - :value (:color color)}] - [{:type :set-option - :page-id page-id - :option :background - :value previus-color}] - {:commit-local? true})))))) + {:redo-changes [{:type :set-option + :page-id page-id + :option :background + :value (:color color)}] + :undo-changes [{:type :set-option + :page-id page-id + :option :background + :value previus-color}] + :origin it})))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/frontend/src/app/main/data/workspace/changes.cljs b/frontend/src/app/main/data/workspace/changes.cljs index b3a437835..53f5cd421 100644 --- a/frontend/src/app/main/data/workspace/changes.cljs +++ b/frontend/src/app/main/data/workspace/changes.cljs @@ -12,6 +12,7 @@ [app.common.spec :as us] [app.main.data.workspace.undo :as dwu] [app.main.worker :as uw] + [app.main.store :as st] [app.util.logging :as log] [beicon.core :as rx] [cljs.spec.alpha :as s] @@ -66,7 +67,7 @@ (us/assert fn? f) (ptk/reify ::update-shapes ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [page-id (:current-page-id state) objects (get-in state [:workspace-data :pages-index page-id :objects]) reg-objects {:type :reg-objects :page-id page-id :shapes (vec ids)}] @@ -79,7 +80,9 @@ rch (cond-> rch (and has-rch? reg-objects?) (conj reg-objects)) uch (cond-> uch (and has-rch? reg-objects?) (conj reg-objects))] (when (and has-rch? has-uch?) - (commit-changes rch uch {:commit-local? true})))) + (commit-changes {:redo-changes rch + :undo-changes uch + :origin it})))) (let [id (first ids) obj1 (get objects id) @@ -140,11 +143,13 @@ (conj uchanges uchg))))))] (ptk/reify ::update-shapes-recursive ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [page-id (:current-page-id state) objects (get-in state [:workspace-data :pages-index page-id :objects]) [rchanges uchanges] (impl-gen-changes objects page-id (seq ids))] - (rx/of (commit-changes rchanges uchanges {:commit-local? true}))))))) + (rx/of (commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it}))))))) (defn update-indices [page-id changes] @@ -156,62 +161,60 @@ :changes changes})))) (defn commit-changes - ([changes undo-changes] - (commit-changes changes undo-changes {})) - ([changes undo-changes {:keys [save-undo? - file-id] - :or {save-undo? true} - :as opts}] + [{:keys [redo-changes undo-changes origin save-undo? file-id] + :or {save-undo? true}}] - (log/debug :msg "commit-changes" - :js/changes changes - :js/undo-changes undo-changes) + (log/debug :msg "commit-changes" + :js/redo-changes redo-changes + :js/undo-changes undo-changes) - (let [error (volatile! nil)] - (ptk/reify ::commit-changes - cljs.core/IDeref - (-deref [_] - {:file-id file-id - :changes changes}) + (let [error (volatile! nil)] + (ptk/reify ::commit-changes + cljs.core/IDeref + (-deref [_] + {:file-id file-id + :hint-events @st/last-events + :hint-origin (ptk/type origin) + :changes redo-changes}) - ptk/UpdateEvent - (update [_ state] - (let [current-file-id (get state :current-file-id) - file-id (or file-id current-file-id) - path (if (= file-id current-file-id) - [:workspace-data] - [:workspace-libraries file-id :data])] - (try - (us/assert ::spec/changes changes) - (us/assert ::spec/changes undo-changes) - (update-in state path cp/process-changes changes false) - (catch :default e - (vreset! error e) - state)))) + ptk/UpdateEvent + (update [_ state] + (let [current-file-id (get state :current-file-id) + file-id (or file-id current-file-id) + path (if (= file-id current-file-id) + [:workspace-data] + [:workspace-libraries file-id :data])] + (try + (us/assert ::spec/changes redo-changes) + (us/assert ::spec/changes undo-changes) + (update-in state path cp/process-changes redo-changes false) + (catch :default e + (vreset! error e) + state)))) - ptk/WatchEvent - (watch [_ state stream] - (when-not @error - (let [;; adds page-id to page changes (that have the `id` field instead) - add-page-id - (fn [{:keys [id type page] :as change}] - (cond-> change - (page-change? type) - (assoc :page-id (or id (:id page))))) + ptk/WatchEvent + (watch [it state stream] + (when-not @error + (let [;; adds page-id to page changes (that have the `id` field instead) + add-page-id + (fn [{:keys [id type page] :as change}] + (cond-> change + (page-change? type) + (assoc :page-id (or id (:id page))))) - changes-by-pages - (->> changes - (map add-page-id) - (remove #(nil? (:page-id %))) - (group-by :page-id)) + changes-by-pages + (->> redo-changes + (map add-page-id) + (remove #(nil? (:page-id %))) + (group-by :page-id)) - process-page-changes - (fn [[page-id changes]] - (update-indices page-id changes))] - (rx/concat - (rx/from (map process-page-changes changes-by-pages)) + process-page-changes + (fn [[page-id changes]] + (update-indices page-id redo-changes))] + (rx/concat + (rx/from (map process-page-changes changes-by-pages)) - (when (and save-undo? (seq undo-changes)) - (let [entry {:undo-changes undo-changes - :redo-changes changes}] - (rx/of (dwu/append-undo entry)))))))))))) + (when (and save-undo? (seq undo-changes)) + (let [entry {:undo-changes undo-changes + :redo-changes redo-changes}] + (rx/of (dwu/append-undo entry))))))))))) diff --git a/frontend/src/app/main/data/workspace/common.cljs b/frontend/src/app/main/data/workspace/common.cljs index d43229cdd..3bffa6bdb 100644 --- a/frontend/src/app/main/data/workspace/common.cljs +++ b/frontend/src/app/main/data/workspace/common.cljs @@ -40,7 +40,7 @@ [{:keys [file] :as bundle}] (ptk/reify ::setup-selection-index ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [msg {:cmd :initialize-indices :file-id (:id file) :data (:data file)}] @@ -112,7 +112,7 @@ (def undo (ptk/reify ::undo ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [edition (get-in state [:workspace-local :edition]) drawing (get state :workspace-drawing)] ;; Editors handle their own undo's @@ -123,12 +123,15 @@ (when-not (or (empty? items) (= index -1)) (let [changes (get-in items [index :undo-changes])] (rx/of (dwu/materialize-undo changes (dec index)) - (dch/commit-changes changes [] {:save-undo? false})))))))))) + (dch/commit-changes {:redo-changes changes + :undo-changes [] + :save-undo? false + :origin it})))))))))) (def redo (ptk/reify ::redo ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [edition (get-in state [:workspace-local :edition]) drawing (get state :workspace-drawing)] (when-not (or (some? edition) (not-empty drawing)) @@ -138,7 +141,10 @@ (when-not (or (empty? items) (= index (dec (count items)))) (let [changes (get-in items [(inc index) :redo-changes])] (rx/of (dwu/materialize-undo changes (inc index)) - (dch/commit-changes changes [] {:save-undo? false})))))))))) + (dch/commit-changes {:redo-changes changes + :undo-changes [] + :origin it + :save-undo? false})))))))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Shapes @@ -174,7 +180,7 @@ (assoc-in state [:workspace-local :selected] ids)) ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id)] (rx/of (expand-all-parents ids objects)))))) @@ -196,7 +202,7 @@ state))) ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [objects (wsh/lookup-page-objects state)] (->> stream (rx/filter interrupt?) @@ -276,7 +282,7 @@ (us/verify ::shape-attrs attrs) (ptk/reify ::add-shape ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) @@ -296,7 +302,9 @@ (assoc :name name)))] (rx/concat - (rx/of (dch/commit-changes rchanges uchanges {:commit-local? true}) + (rx/of (dch/commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it}) (select-shapes (d/ordered-set id))) (when (= :text (:type attrs)) (->> (rx/of (start-edition-mode id)) @@ -305,7 +313,7 @@ (defn move-shapes-into-frame [frame-id shapes] (ptk/reify ::move-shapes-into-frame ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) to-move-shapes (->> (cp/select-toplevel-shapes objects {:include-frames? false}) @@ -329,14 +337,16 @@ :page-id page-id :index index :shapes [shape-id]})))] - (rx/of (dch/commit-changes rchanges uchanges {:commit-local? true})))))) + (rx/of (dch/commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it})))))) (defn delete-shapes [ids] (us/assert (s/coll-of ::us/uuid) ids) (ptk/reify ::delete-shapes ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) @@ -460,8 +470,9 @@ ;; (cljs.pprint/pprint rchanges) ;; (println "================ uchanges") ;; (cljs.pprint/pprint uchanges) - (rx/of (dch/commit-changes rchanges uchanges {:commit-local? true})))))) - + (rx/of (dch/commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it})))))) ;; --- Add shape to Workspace @@ -474,7 +485,7 @@ [type frame-x frame-y data] (ptk/reify ::create-and-add-shape ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [{:keys [width height]} data [vbc-x vbc-y] (viewport-center state) @@ -494,7 +505,7 @@ [image {:keys [x y]}] (ptk/reify ::image-uploaded ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [{:keys [name width height id mtype]} image shape {:name name :width width diff --git a/frontend/src/app/main/data/workspace/grid.cljs b/frontend/src/app/main/data/workspace/grid.cljs index 13a327103..e405c2364 100644 --- a/frontend/src/app/main/data/workspace/grid.cljs +++ b/frontend/src/app/main/data/workspace/grid.cljs @@ -40,7 +40,7 @@ (us/assert ::us/uuid frame-id) (ptk/reify ::add-frame-grid ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [page-id (:current-page-id state) data (get-in state [:workspace-data :pages-index page-id]) params (or (get-in data [:options :saved-grids :square]) @@ -56,29 +56,30 @@ [frame-id index] (ptk/reify ::set-frame-grid ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (rx/of (dch/update-shapes [frame-id] (fn [o] (update o :grids (fnil #(d/remove-at-index % index) [])))))))) (defn set-frame-grid [frame-id index data] (ptk/reify ::set-frame-grid ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (rx/of (dch/update-shapes [frame-id] #(assoc-in % [:grids index] data)))))) (defn set-default-grid [type params] (ptk/reify ::set-default-grid ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [pid (:current-page-id state) prev-value (get-in state [:workspace-data :pages-index pid :options :saved-grids type])] - (rx/of (dch/commit-changes [{:type :set-option - :page-id pid - :option [:saved-grids type] - :value params}] - [{:type :set-option - :page-id pid - :option [:saved-grids type] - :value prev-value}] - {:commit-local? true})))))) + (rx/of (dch/commit-changes + {:redo-changes [{:type :set-option + :page-id pid + :option [:saved-grids type] + :value params}] + :undo-changes [{:type :set-option + :page-id pid + :option [:saved-grids type] + :value prev-value}] + :origin it})))))) diff --git a/frontend/src/app/main/data/workspace/groups.cljs b/frontend/src/app/main/data/workspace/groups.cljs index f34e1475c..356be5153 100644 --- a/frontend/src/app/main/data/workspace/groups.cljs +++ b/frontend/src/app/main/data/workspace/groups.cljs @@ -100,7 +100,7 @@ (def group-selected (ptk/reify ::group-selected ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) selected (wsh/lookup-selected state) @@ -108,13 +108,15 @@ shapes (shapes-for-grouping objects selected)] (when-not (empty? shapes) (let [[group rchanges uchanges] (prepare-create-group page-id shapes "Group-" false)] - (rx/of (dch/commit-changes rchanges uchanges {:commit-local? true}) + (rx/of (dch/commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it}) (dwc/select-shapes (d/ordered-set (:id group)))))))))) (def ungroup-selected (ptk/reify ::ungroup-selected ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) selected (wsh/lookup-selected state) @@ -124,12 +126,14 @@ (= (:type group) :group)) (let [[rchanges uchanges] (prepare-remove-group page-id group objects)] - (rx/of (dch/commit-changes rchanges uchanges {:commit-local? true})))))))) + (rx/of (dch/commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it})))))))) (def mask-group (ptk/reify ::mask-group ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) selected (wsh/lookup-selected state) @@ -178,13 +182,15 @@ :page-id page-id :shapes [(:id group)]})] - (rx/of (dch/commit-changes rchanges uchanges {:commit-local? true}) + (rx/of (dch/commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it}) (dwc/select-shapes (d/ordered-set (:id group)))))))))) (def unmask-group (ptk/reify ::unmask-group ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) selected (wsh/lookup-selected state)] @@ -211,7 +217,9 @@ :page-id page-id :shapes [(:id group)]}]] - (rx/of (dch/commit-changes rchanges uchanges {:commit-local? true}) + (rx/of (dch/commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it}) (dwc/select-shapes (d/ordered-set (:id group)))))))))) diff --git a/frontend/src/app/main/data/workspace/libraries.cljs b/frontend/src/app/main/data/workspace/libraries.cljs index c0370fdb6..67baf4330 100644 --- a/frontend/src/app/main/data/workspace/libraries.cljs +++ b/frontend/src/app/main/data/workspace/libraries.cljs @@ -86,23 +86,26 @@ (us/assert ::cp/color color) (ptk/reify ::add-color ptk/WatchEvent - (watch [_ state s] + (watch [it state s] (let [rchg {:type :add-color :color color} uchg {:type :del-color :id id}] (rx/of #(assoc-in % [:workspace-local :color-for-rename] id) - (dch/commit-changes [rchg] [uchg] {:commit-local? true}))))))) - + (dch/commit-changes {:redo-changes [rchg] + :undo-chages [uchg] + :origin it}))))))) (defn add-recent-color [color] (us/assert ::cp/recent-color color) (ptk/reify ::add-recent-color ptk/WatchEvent - (watch [_ state s] + (watch [it state s] (let [rchg {:type :add-recent-color :color color}] - (rx/of (dch/commit-changes [rchg] [] {:commit-local? true})))))) + (rx/of (dch/commit-changes {:redo-changes [rchg] + :undo-chages [] + :origin it})))))) (def clear-color-for-rename (ptk/reify ::clear-color-for-rename @@ -116,13 +119,15 @@ (us/assert ::us/uuid file-id) (ptk/reify ::update-color ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [prev (get-in state [:workspace-data :colors id]) rchg {:type :mod-color :color color} uchg {:type :mod-color :color prev}] - (rx/of (dch/commit-changes [rchg] [uchg] {:commit-local? true}) + (rx/of (dch/commit-changes {:redo-changes [rchg] + :undo-chages [uchg] + :origin it}) (sync-file (:current-file-id state) file-id)))))) (defn delete-color @@ -130,26 +135,30 @@ (us/assert ::us/uuid id) (ptk/reify ::delete-color ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [prev (get-in state [:workspace-data :colors id]) rchg {:type :del-color :id id} uchg {:type :add-color :color prev}] - (rx/of (dch/commit-changes [rchg] [uchg] {:commit-local? true})))))) + (rx/of (dch/commit-changes {:redo-changes [rchg] + :undo-chages [uchg] + :origin it})))))) (defn add-media [{:keys [id] :as media}] (us/assert ::cp/media-object media) (ptk/reify ::add-media ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [obj (select-keys media [:id :name :width :height :mtype]) rchg {:type :add-media :object obj} uchg {:type :del-media :id id}] - (rx/of (dch/commit-changes [rchg] [uchg] {:commit-local? true})))))) + (rx/of (dch/commit-changes {:redo-changes [rchg] + :undo-changes [uchg] + :origin it})))))) (defn rename-media [id new-name] @@ -157,7 +166,7 @@ (us/assert ::us/string new-name) (ptk/reify ::rename-media ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [object (get-in state [:workspace-data :media id]) [path name] (cp/parse-path-name new-name) @@ -171,20 +180,24 @@ :name (:name object) :path (:path object)}}]] - (rx/of (dch/commit-changes rchanges uchanges {:commit-local? true})))))) + (rx/of (dch/commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it})))))) (defn delete-media [{:keys [id] :as params}] (us/assert ::us/uuid id) (ptk/reify ::delete-media ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [prev (get-in state [:workspace-data :media id]) rchg {:type :del-media :id id} uchg {:type :add-media :object prev}] - (rx/of (dch/commit-changes [rchg] [uchg] {:commit-local? true})))))) + (rx/of (dch/commit-changes {:redo-changes [rchg] + :undo-changes [uchg] + :origin it})))))) (defn add-typography ([typography] (add-typography typography true)) @@ -193,12 +206,14 @@ (us/assert ::cp/typography typography) (ptk/reify ::add-typography ptk/WatchEvent - (watch [_ state s] + (watch [it state s] (let [rchg {:type :add-typography :typography typography} uchg {:type :del-typography :id (:id typography)}] - (rx/of (dch/commit-changes [rchg] [uchg] {:commit-local? true}) + (rx/of (dch/commit-changes {:redo-changes [rchg] + :undo-changes [uchg] + :origin it}) #(cond-> % edit? (assoc-in [:workspace-local :rename-typography] (:id typography)))))))))) @@ -209,13 +224,15 @@ (us/assert ::us/uuid file-id) (ptk/reify ::update-typography ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [prev (get-in state [:workspace-data :typographies (:id typography)]) rchg {:type :mod-typography :typography typography} uchg {:type :mod-typography :typography prev}] - (rx/of (dch/commit-changes [rchg] [uchg] {:commit-local? true}) + (rx/of (dch/commit-changes {:redo-changes [rchg] + :undo-changes [uchg] + :origin it}) (sync-file (:current-file-id state) file-id)))))) (defn delete-typography @@ -223,19 +240,21 @@ (us/assert ::us/uuid id) (ptk/reify ::delete-typography ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [prev (get-in state [:workspace-data :typographies id]) rchg {:type :del-typography :id id} uchg {:type :add-typography :typography prev}] - (rx/of (dch/commit-changes [rchg] [uchg] {:commit-local? true})))))) + (rx/of (dch/commit-changes {:redo-changes [rchg] + :undo-changes [uchg] + :origin it})))))) (def add-component "Add a new component to current file library, from the currently selected shapes." (ptk/reify ::add-component ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [file-id (:current-file-id state) page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) @@ -244,7 +263,9 @@ (let [[group rchanges uchanges] (dwlh/generate-add-component selected objects page-id file-id)] (when-not (empty? rchanges) - (rx/of (dch/commit-changes rchanges uchanges {:commit-local? true}) + (rx/of (dch/commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it}) (dwc/select-shapes (d/ordered-set (:id group)))))))))) (defn rename-component @@ -254,7 +275,7 @@ (us/assert ::us/string new-name) (ptk/reify ::rename-component ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [[path name] (cp/parse-path-name new-name) component (get-in state [:workspace-data :components id]) objects (get component :objects) @@ -275,14 +296,16 @@ :path (:path component) :objects objects}]] - (rx/of (dch/commit-changes rchanges uchanges {:commit-local? true})))))) + (rx/of (dch/commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it})))))) (defn duplicate-component "Create a new component copied from the one with the given id." [{:keys [id] :as params}] (ptk/reify ::duplicate-component ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [component (cp/get-component id (:current-file-id state) (dwlh/get-local-file state) @@ -303,7 +326,9 @@ uchanges [{:type :del-component :id (:id new-shape)}]] - (rx/of (dch/commit-changes rchanges uchanges {:commit-local? true})))))) + (rx/of (dch/commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it})))))) (defn delete-component "Delete the component with the given id, from the current file library." @@ -311,7 +336,7 @@ (us/assert ::us/uuid id) (ptk/reify ::delete-component ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [component (get-in state [:workspace-data :components id]) rchanges [{:type :del-component @@ -323,7 +348,9 @@ :path (:path component) :shapes (vals (:objects component))}]] - (rx/of (dch/commit-changes rchanges uchanges {:commit-local? true})))))) + (rx/of (dch/commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it})))))) (defn instantiate-component "Create a new shape in the current page, from the component with the given id @@ -334,7 +361,7 @@ (us/assert ::us/point position) (ptk/reify ::instantiate-component ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [local-library (dwlh/get-local-file state) libraries (get state :workspace-libraries) component (cp/get-component component-id file-id local-library libraries) @@ -400,7 +427,9 @@ :ignore-touched true}) new-shapes)] - (rx/of (dch/commit-changes rchanges uchanges {:commit-local? true}) + (rx/of (dch/commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it}) (dwc/select-shapes (d/ordered-set (:id new-shape)))))))) (defn detach-component @@ -410,7 +439,7 @@ (us/assert ::us/uuid id) (ptk/reify ::detach-component ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) shapes (cp/get-object-with-children id objects) @@ -463,14 +492,16 @@ :val (:touched obj)}]}) shapes)] - (rx/of (dch/commit-changes rchanges uchanges {:commit-local? true})))))) + (rx/of (dch/commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it})))))) (defn nav-to-component-file [file-id] (us/assert ::us/uuid file-id) (ptk/reify ::nav-to-component-file ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [file (get-in state [:workspace-libraries file-id]) pparams {:project-id (:project-id file) :file-id (:id file)} @@ -499,7 +530,7 @@ (us/assert ::us/uuid id) (ptk/reify ::reset-component ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (log/info :msg "RESET-COMPONENT of shape" :id (str id)) (let [local-library (dwlh/get-local-file state) libraries (dwlh/get-libraries state) @@ -516,7 +547,9 @@ rchanges local-library)) - (rx/of (dch/commit-changes rchanges uchanges {:commit-local? true})))))) + (rx/of (dch/commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it})))))) (defn update-component "Modify the component linked to the shape with the given id, in the @@ -531,7 +564,7 @@ (us/assert ::us/uuid id) (ptk/reify ::update-component ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (log/info :msg "UPDATE-COMPONENT of shape" :id (str id)) (let [page-id (get state :current-page-id) local-library (dwlh/get-local-file state) @@ -571,12 +604,14 @@ file)) (rx/of (when (seq local-rchanges) - (dch/commit-changes local-rchanges local-uchanges - {:commit-local? true + (dch/commit-changes {:redo-changes local-rchanges + :undo-changes local-uchanges + :origin it :file-id (:id local-library)})) (when (seq rchanges) - (dch/commit-changes rchanges uchanges - {:commit-local? true + (dch/commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it :file-id file-id}))))))) (declare sync-file-2nd-stage) @@ -597,7 +632,7 @@ state)) ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (log/info :msg "SYNC-FILE" :file (dwlh/pretty-file file-id state) :library (dwlh/pretty-file library-id state)) @@ -625,8 +660,10 @@ (rx/concat (rx/of (dm/hide-tag :sync-dialog)) (when rchanges - (rx/of (dch/commit-changes rchanges uchanges {:commit-local? true - :file-id file-id}))) + (rx/of (dch/commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it + :file-id file-id}))) (when (not= file-id library-id) ;; When we have just updated the library file, give some time for the ;; update to finish, before marking this file as synced. @@ -655,7 +692,7 @@ (us/assert ::us/uuid library-id) (ptk/reify ::sync-file-2nd-stage ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (log/info :msg "SYNC-FILE (2nd stage)" :file (dwlh/pretty-file file-id state) :library (dwlh/pretty-file library-id state)) @@ -668,8 +705,10 @@ (log/debug :msg "SYNC-FILE (2nd stage) finished" :js/rchanges (log-changes rchanges file)) - (rx/of (dch/commit-changes rchanges uchanges {:commit-local? true - :file-id file-id}))))))) + (rx/of (dch/commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it + :file-id file-id}))))))) (def ignore-sync (ptk/reify ::ignore-sync @@ -678,7 +717,7 @@ (assoc-in state [:workspace-file :ignore-sync-until] (dt/now))) ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (rp/mutation :ignore-sync {:file-id (get-in state [:workspace-file :id]) :date (dt/now)})))) @@ -688,7 +727,7 @@ (us/assert ::us/uuid file-id) (ptk/reify ::notify-sync-file ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [libraries-need-sync (filter #(> (:modified-at %) (:synced-at %)) (vals (get state :workspace-libraries))) do-update #(do (apply st/emit! (map (fn [library] diff --git a/frontend/src/app/main/data/workspace/path/changes.cljs b/frontend/src/app/main/data/workspace/path/changes.cljs index 08a86c2be..8461b2e68 100644 --- a/frontend/src/app/main/data/workspace/path/changes.cljs +++ b/frontend/src/app/main/data/workspace/path/changes.cljs @@ -84,7 +84,7 @@ (assoc-in state (st/get-path state :content) content))) ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [objects (wsh/lookup-page-objects state) page-id (:current-page-id state) id (get-in state [:workspace-local :edition]) @@ -92,7 +92,9 @@ (if (some? old-content) (let [shape (get-in state (st/get-path state)) [rch uch] (generate-path-changes objects page-id shape old-content (:content shape))] - (rx/of (dch/commit-changes rch uch))) + (rx/of (dch/commit-changes {:redo-changes rch + :undo-changes uch + :origin it}))) (rx/empty))))))) diff --git a/frontend/src/app/main/data/workspace/path/edition.cljs b/frontend/src/app/main/data/workspace/path/edition.cljs index b2217ea5e..9f5b3b639 100644 --- a/frontend/src/app/main/data/workspace/path/edition.cljs +++ b/frontend/src/app/main/data/workspace/path/edition.cljs @@ -47,7 +47,7 @@ (defn apply-content-modifiers [] (ptk/reify ::apply-content-modifiers ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [objects (wsh/lookup-page-objects state) id (st/get-path-id state) @@ -65,9 +65,13 @@ [rch uch] (changes/generate-path-changes objects page-id shape (:content shape) new-content)] (if (empty? new-content) - (rx/of (dch/commit-changes rch uch {:commit-local? true}) + (rx/of (dch/commit-changes {:redo-changes rch + :undo-changes uch + :origin it}) dwc/clear-edition-mode) - (rx/of (dch/commit-changes rch uch {:commit-local? true}) + (rx/of (dch/commit-changes {:redo-changes rch + :undo-changes uch + :origin it}) (selection/update-selection point-change) (fn [state] (update-in state [:workspace-local :edit-path id] dissoc :content-modifiers :moving-nodes :moving-handler)))))))) @@ -133,7 +137,7 @@ [position shift?] (ptk/reify ::start-move-path-point ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [id (get-in state [:workspace-local :edition]) selected-points (get-in state [:workspace-local :edit-path id :selected-points] #{}) selected? (contains? selected-points position)] @@ -147,7 +151,7 @@ [start-position] (ptk/reify ::drag-selected-points ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [stopper (->> stream (rx/filter ms/mouse-up?)) id (get-in state [:workspace-local :edition]) snap-toggled (get-in state [:workspace-local :edit-path id :snap-toggled]) @@ -202,7 +206,7 @@ state))) ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [id (get-in state [:workspace-local :edition]) current-move (get-in state [:workspace-local :edit-path id :current-move])] (if (= same-event current-move) @@ -236,7 +240,7 @@ [index prefix] (ptk/reify ::start-move-handler ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [id (get-in state [:workspace-local :edition]) cx (d/prefix-keyword prefix :x) cy (d/prefix-keyword prefix :y) @@ -292,7 +296,7 @@ (assoc-in [:workspace-local :edit-path id :edit-mode] :draw)))) ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [mode (get-in state [:workspace-local :edit-path id :edit-mode])] (rx/concat (rx/of (undo/start-path-undo)) @@ -322,5 +326,5 @@ (update-in (st/get-path state :content) upt/split-segments #{from-p to-p} t)))) ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (rx/of (changes/save-path-content {:preserve-move-to true}))))) diff --git a/frontend/src/app/main/data/workspace/path/tools.cljs b/frontend/src/app/main/data/workspace/path/tools.cljs index a6771a54f..ddd2ed3f2 100644 --- a/frontend/src/app/main/data/workspace/path/tools.cljs +++ b/frontend/src/app/main/data/workspace/path/tools.cljs @@ -25,7 +25,7 @@ ([points tool-fn] (ptk/reify ::process-path-tool ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [objects (wsh/lookup-page-objects state) id (st/get-path-id state) page-id (:current-page-id state) @@ -37,7 +37,9 @@ (let [new-content (-> (tool-fn (:content shape) points) (ups/close-subpaths)) [rch uch] (changes/generate-path-changes objects page-id shape (:content shape) new-content)] - (rx/of (dch/commit-changes rch uch {:commit-local? true}) + (rx/of (dch/commit-changes {:redo-changes rch + :undo-changes uch + :origin it}) (when (empty? new-content) dwc/clear-edition-mode))))))))) diff --git a/frontend/src/app/main/data/workspace/persistence.cljs b/frontend/src/app/main/data/workspace/persistence.cljs index d48d681bd..665547944 100644 --- a/frontend/src/app/main/data/workspace/persistence.cljs +++ b/frontend/src/app/main/data/workspace/persistence.cljs @@ -86,9 +86,11 @@ (rx/tap on-dirty) (rx/buffer-until notifier) (rx/filter (complement empty?)) - (rx/map (fn [buf] {:file-id file-id - :changes (into [] (mapcat :changes) buf)})) - (rx/map persist-changes) + (rx/map (fn [buf] + (->> (into [] (comp (map #(assoc % :id (uuid/next))) + (map #(assoc % :file-id file-id))) + buf) + (persist-changes file-id)))) (rx/tap on-saving) (rx/take-until (rx/delay 100 stoper))) (->> stream @@ -109,27 +111,25 @@ (on-saved)))))))) (defn persist-changes - [{:keys [file-id changes]}] + [file-id changes] (us/verify ::us/uuid file-id) (ptk/reify ::persist-changes ptk/UpdateEvent (update [_ state] - (let [conj (fnil conj []) - chng {:id (uuid/next) - :changes changes}] - (update-in state [:workspace-persistence :queue] conj chng))) + (let [conj (fnil conj []) + into* (fnil into [])] + (update-in state [:workspace-persistence :queue] into* changes))) ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [sid (:session-id state) file (get state :workspace-file) queue (get-in state [:workspace-persistence :queue] []) - xf-cat (comp (mapcat :changes)) params {:id (:id file) :revn (:revn file) :session-id sid - :changes (into [] xf-cat queue)} + :changes-with-metadata (into [] queue)} ids (into #{} (map :id) queue) @@ -172,7 +172,7 @@ (us/verify ::us/uuid file-id) (ptk/reify ::persist-synchronous-changes ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [sid (:session-id state) file (get-in state [:workspace-libraries file-id]) @@ -255,7 +255,7 @@ [project-id file-id] (ptk/reify ::fetch-bundle ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (->> (rx/zip (rp/query :file {:id file-id}) (rp/query :team-users {:file-id file-id}) (rp/query :project {:id project-id}) @@ -295,7 +295,7 @@ (assoc-in state [:workspace-file :is-shared] is-shared)) ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [params {:id id :is-shared is-shared}] (->> (rp/mutation :set-file-shared params) (rx/ignore)))))) @@ -330,7 +330,7 @@ [file-id library-id] (ptk/reify ::link-file-to-library ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [fetched #(assoc-in %2 [:workspace-libraries (:id %1)] %1) params {:file-id file-id :library-id library-id}] @@ -342,7 +342,7 @@ [file-id library-id] (ptk/reify ::unlink-file-from-library ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [unlinked #(d/dissoc-in % [:workspace-libraries library-id]) params {:file-id file-id :library-id library-id}] @@ -358,7 +358,7 @@ (us/verify ::us/uuid page-id) (ptk/reify ::fetch-pages ptk/WatchEvent - (watch [_ state s] + (watch [it state s] (->> (rp/query :page {:id page-id}) (rx/map page-fetched))))) @@ -498,7 +498,7 @@ (us/assert ::process-media-objects params) (ptk/reify ::process-media-objects ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (rx/concat (rx/of (dm/show {:content (tr "media.loading") :type :info @@ -545,7 +545,7 @@ (us/assert ::clone-media-objects-params params) (ptk/reify ::clone-media-objects ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [{:keys [on-success on-error] :or {on-success identity on-error identity}} (meta params) diff --git a/frontend/src/app/main/data/workspace/selection.cljs b/frontend/src/app/main/data/workspace/selection.cljs index f73e22467..52d36ee35 100644 --- a/frontend/src/app/main/data/workspace/selection.cljs +++ b/frontend/src/app/main/data/workspace/selection.cljs @@ -378,11 +378,12 @@ (def duplicate-selected (ptk/reify ::duplicate-selected ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) selected (wsh/lookup-selected state) delta (gpt/point 0 0) + unames (dwc/retrieve-used-names objects) rchanges (->> (prepare-duplicate-changes objects page-id unames selected delta) @@ -396,7 +397,9 @@ (map #(get-in % [:obj :id])) (into (d/ordered-set)))] - (rx/of (dch/commit-changes rchanges uchanges {:commit-local? true}) + (rx/of (dch/commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it}) (select-shapes selected)))))) (defn change-hover-state diff --git a/frontend/src/app/main/data/workspace/svg_upload.cljs b/frontend/src/app/main/data/workspace/svg_upload.cljs index 6d34597f3..f2828eb3f 100644 --- a/frontend/src/app/main/data/workspace/svg_upload.cljs +++ b/frontend/src/app/main/data/workspace/svg_upload.cljs @@ -387,7 +387,7 @@ [svg-data file-id position] (ptk/reify ::svg-uploaded ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] ;; Once the SVG is uploaded, we need to extract all the bitmap ;; images and upload them separatelly, then proceed to create ;; all shapes. @@ -414,7 +414,7 @@ [svg-data {:keys [x y] :as position}] (ptk/reify ::create-svg-shapes ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (try (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) @@ -464,7 +464,9 @@ rchanges (conj rchanges reg-objects-action)] - (rx/of (dch/commit-changes rchanges uchanges {:commit-local? true}) + (rx/of (dch/commit-changes {:redo-changes rchanges + :undo-changes uchanges + :origin it}) (dwc/select-shapes (d/ordered-set root-id)))) (catch :default e diff --git a/frontend/src/app/main/data/workspace/transforms.cljs b/frontend/src/app/main/data/workspace/transforms.cljs index 110f5c8c7..5d431348a 100644 --- a/frontend/src/app/main/data/workspace/transforms.cljs +++ b/frontend/src/app/main/data/workspace/transforms.cljs @@ -141,7 +141,7 @@ (assoc-in [:workspace-local :transform] :resize))) ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [initial-position @ms/mouse-position stoper (rx/filter ms/mouse-up? stream) layout (:workspace-layout state) @@ -175,7 +175,7 @@ (assoc-in [:workspace-local :transform] :rotate))) ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [stoper (rx/filter ms/mouse-up? stream) group (gsh/selection-rect shapes) group-center (gsh/center-selrect group) @@ -214,7 +214,7 @@ [] (ptk/reify ::start-move-selected ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [initial (deref ms/mouse-position) selected (wsh/lookup-selected state) stopper (rx/filter ms/mouse-up? stream)] @@ -237,7 +237,7 @@ (defn start-move-duplicate [from-position] (ptk/reify ::start-move-selected ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (->> stream (rx/filter (ptk/type? ::dws/duplicate-selected)) (rx/first) @@ -246,7 +246,7 @@ (defn calculate-frame-for-move [ids] (ptk/reify ::calculate-frame-for-move ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [position @ms/mouse-position page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) @@ -273,7 +273,9 @@ (when-not (empty? uch) (rx/of dwu/pop-undo-into-transaction - (dch/commit-changes rch uch {:commit-local? true}) + (dch/commit-changes {:redo-changes rch + :undo-changes uch + :origin it}) (dwu/commit-undo-transaction) (dwc/expand-collapse frame-id))))))) @@ -287,7 +289,7 @@ (assoc-in [:workspace-local :transform] :move))) ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) ids (if (nil? ids) (wsh/lookup-selected state) ids) @@ -368,7 +370,7 @@ state)) ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (if (= same-event (get-in state [:workspace-local :current-move-selected])) (let [selected (wsh/lookup-selected state) move-events (->> stream @@ -455,7 +457,7 @@ (defn increase-rotation [ids rotation] (ptk/reify ::increase-rotation ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) @@ -471,7 +473,7 @@ (us/verify (s/coll-of uuid?) ids) (ptk/reify ::apply-modifiers ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [objects (wsh/lookup-page-objects state) children-ids (->> ids (mapcat #(cp/get-children % objects))) ids-with-children (d/concat [] children-ids ids)] @@ -517,7 +519,7 @@ #(reduce update-shape % ids)))) ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) ids (d/concat [] ids (mapcat #(cp/get-children % objects) ids))] @@ -526,7 +528,7 @@ (defn flip-horizontal-selected [] (ptk/reify ::flip-horizontal-selected ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [objects (wsh/lookup-page-objects state) selected (wsh/lookup-selected state) shapes (map #(get objects %) selected) @@ -543,7 +545,7 @@ (defn flip-vertical-selected [] (ptk/reify ::flip-vertical-selected ptk/WatchEvent - (watch [_ state stream] + (watch [it state stream] (let [objects (wsh/lookup-page-objects state) selected (wsh/lookup-selected state) shapes (map #(get objects %) selected) diff --git a/frontend/src/app/main/store.cljs b/frontend/src/app/main/store.cljs index 6a4ea6534..f4f15b941 100644 --- a/frontend/src/app/main/store.cljs +++ b/frontend/src/app/main/store.cljs @@ -23,6 +23,21 @@ (defonce state (ptk/store {:resolve ptk/resolve})) (defonce stream (ptk/input-stream state)) +(defonce last-events + (let [buffer (atom #queue []) + remove #{:potok.core/undefined + :app.main.data.workspace.notifications/handle-pointer-update}] + (->> stream + (rx/filter ptk/event?) + (rx/map ptk/type) + (rx/filter (complement remove)) + (rx/map str) + (rx/dedupe) + (rx/buffer 20 1) + (rx/subs #(reset! buffer %))) + + buffer)) + (when *assert* (defonce debug-subscription (->> stream @@ -47,6 +62,9 @@ (defn ^:export dump-state [] (logjs "state" @state)) +(defn ^:export dump-buffer [] + (logjs "state" @last-events)) + (defn ^:export get-state [str-path] (let [path (->> (str/split str-path " ") (map d/read-string))] From 7cf120e2e17bb5f704b2a869322d81946c9920db Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Sun, 9 May 2021 14:00:23 +0200 Subject: [PATCH 046/135] :sparkles: Move events batching to a util/async ns. --- backend/src/app/http/session.clj | 35 +++----------------------------- backend/src/app/util/async.clj | 31 ++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 32 deletions(-) diff --git a/backend/src/app/http/session.clj b/backend/src/app/http/session.clj index af0fd6d8f..d1b0170bb 100644 --- a/backend/src/app/http/session.clj +++ b/backend/src/app/http/session.clj @@ -106,7 +106,6 @@ ;; --- STATE INIT: SESSION UPDATER -(declare batch-events) (declare update-sessions) (s/def ::session map?) @@ -129,7 +128,9 @@ (l/info :action "initialize session updater" :max-batch-age (str (:max-batch-age cfg)) :max-batch-size (str (:max-batch-size cfg))) - (let [input (batch-events cfg (::events-ch session)) + (let [input (aa/batch (::events-ch session) + {:max-batch-size (:max-batch-size cfg) + :max-batch-age (inst-ms (:max-batch-age cfg))}) mcnt (mtx/create {:name "http_session_update_total" :help "A counter of session update batch events." @@ -149,36 +150,6 @@ :count result)) (recur)))))) -(defn- timeout-chan - [cfg] - (a/timeout (inst-ms (:max-batch-age cfg)))) - -(defn- batch-events - [cfg in] - (let [out (a/chan)] - (a/go-loop [tch (timeout-chan cfg) - buf #{}] - (let [[val port] (a/alts! [tch in])] - (cond - (identical? port tch) - (if (empty? buf) - (recur (timeout-chan cfg) buf) - (do - (a/>! out [:timeout buf]) - (recur (timeout-chan cfg) #{}))) - - (nil? val) - (a/close! out) - - (identical? port in) - (let [buf (conj buf val)] - (if (>= (count buf) (:max-batch-size cfg)) - (do - (a/>! out [:size buf]) - (recur (timeout-chan cfg) #{})) - (recur tch buf)))))) - out)) - (defn- update-sessions [{:keys [pool executor]} ids] (aa/with-thread executor diff --git a/backend/src/app/util/async.clj b/backend/src/app/util/async.clj index fb17e6a7e..a0492e086 100644 --- a/backend/src/app/util/async.clj +++ b/backend/src/app/util/async.clj @@ -60,3 +60,34 @@ (if (= executor ::default) `(a/thread-call (^:once fn* [] (try ~@body (catch Exception e# e#)))) `(thread-call ~executor (^:once fn* [] ~@body)))) + +(defn batch + [in {:keys [max-batch-size + max-batch-age + init] + :or {max-batch-size 200 + max-batch-age (* 30 1000) + init #{}} + :as opts}] + (let [out (a/chan)] + (a/go-loop [tch (a/timeout max-batch-age) buf init] + (let [[val port] (a/alts! [tch in])] + (cond + (identical? port tch) + (if (empty? buf) + (recur (a/timeout max-batch-age) buf) + (do + (a/>! out [:timeout buf]) + (recur (a/timeout max-batch-age) init))) + + (nil? val) + (a/close! out) + + (identical? port in) + (let [buf (conj buf val)] + (if (>= (count buf) max-batch-size) + (do + (a/>! out [:size buf]) + (recur (a/timeout max-batch-age) init)) + (recur tch buf)))))) + out)) From e94e202cefb05c068d6a6d3dab5cb8587297eb39 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Sun, 9 May 2021 16:42:42 +0200 Subject: [PATCH 047/135] :bug: Fix unexpected exception bug on exporter. Puppetter bug, fixed upgrading it. --- exporter/src/app/config.cljs | 24 ++++++++++++++++-------- exporter/yarn.lock | 30 +++++++++++++++--------------- 2 files changed, 31 insertions(+), 23 deletions(-) diff --git a/exporter/src/app/config.cljs b/exporter/src/app/config.cljs index 76da48a1c..eb65382a4 100644 --- a/exporter/src/app/config.cljs +++ b/exporter/src/app/config.cljs @@ -7,6 +7,7 @@ (ns app.config (:refer-clojure :exclude [get]) (:require + [app.common.data :as d] ["process" :as process] [cljs.pprint] [cuerdas.core :as str] @@ -35,20 +36,27 @@ [prefix] (let [env (unchecked-get process "env") kwd (fn [s] (-> (str/kebab s) (str/keyword))) - prefix (str prefix "-") + prefix (str prefix "_") len (count prefix)] (reduce (fn [res key] - (cond-> res - (str/starts-with? key prefix) - (assoc (kwd (subs key len)) - (unchecked-get env key)))) + (let [val (unchecked-get env key) + key (str/lower key)] + (cond-> res + (str/starts-with? key prefix) + (assoc (kwd (subs key len)) val)))) {} (js/Object.keys env)))) +(defn- prepare-config + [] + (let [env (read-env "penpot") + env (d/without-nils env) + data (merge defaults env)] + (us/conform ::config data))) + (def config - (atom (->> (read-env "penpot") - (merge defaults) - (us/conform ::config)))) + (atom (prepare-config))) + (defn get "A configuration getter." diff --git a/exporter/yarn.lock b/exporter/yarn.lock index a122fe7ac..43907db23 100644 --- a/exporter/yarn.lock +++ b/exporter/yarn.lock @@ -11,9 +11,9 @@ regenerator-runtime "^0.13.4" "@types/node@*": - version "15.0.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-15.0.1.tgz#ef34dea0881028d11398be5bf4e856743e3dc35a" - integrity sha512-TMkXt0Ck1y0KKsGr9gJtWGjttxlZnnvDtphxUOSd0bfaR6Q1jle+sPvrzNR1urqYTWMinoKvjKfXUGsumaO1PA== + version "15.0.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.0.2.tgz#51e9c0920d1b45936ea04341aa3e2e58d339fb67" + integrity sha512-p68+a+KoxpoB47015IeYZYRrdqMUcpbK8re/zpFB8Ld46LHC1lPEbp3EXgkEhAYEcPvjJF6ZO+869SQ0aH1dcA== "@types/yauzl@^2.9.1": version "2.9.1" @@ -272,9 +272,9 @@ cookies@~0.8.0: keygrip "~1.1.0" core-js-pure@^3.0.0: - version "3.11.2" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.11.2.tgz#10e3b35788c00f431bc0d601d7551475ec3e792c" - integrity sha512-DQxdEKm+zFsnON7ZGOgUAQXBt1UJJ01tOzN/HgQ7cNf0oEHW1tcBLfCQQd1q6otdLu5gAdvKYxKHAoXGwE/kiQ== + version "3.12.1" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.12.1.tgz#934da8b9b7221e2a2443dc71dfa5bd77a7ea00b8" + integrity sha512-1cch+qads4JnDSWsvc7d6nzlKAippwjUlf6vykkTLW53VSV+NkE6muGBToAjEA8pG90cSfcud3JgVmW2ds5TaQ== core-util-is@~1.0.0: version "1.0.2" @@ -492,9 +492,9 @@ get-stream@^5.1.0: pump "^3.0.0" glob@^7.1.3: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -618,9 +618,9 @@ inherits@2.0.3: integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= is-generator-function@^1.0.7: - version "1.0.8" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.8.tgz#dfb5c2b120e02b0a8d9d2c6806cd5621aa922f7b" - integrity sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ== + version "1.0.9" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.9.tgz#e5f82c2323673e7fcad3d12858c83c4039f6399c" + integrity sha512-ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A== isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" @@ -982,9 +982,9 @@ puppeteer-cluster@^0.22.0: debug "^4.1.1" puppeteer@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-9.1.0.tgz#0530ed1f595088eefd078c8f1f7618d00f216a56" - integrity sha512-+BWwEKYQ9oBTUcDYwfgnVPlHSEYqD4sXsMqQf70vSlTE6YIuXujc7zKgO3FyZNJYVrdrUppy/LLwGF1IRacQMQ== + version "9.1.1" + resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-9.1.1.tgz#f74b7facf86887efd6c6b9fabb7baae6fdce012c" + integrity sha512-W+nOulP2tYd/ZG99WuZC/I5ljjQQ7EUw/jQGcIb9eu8mDlZxNY2SgcJXTLG9h5gRvqA3uJOe4hZXYsd3EqioMw== dependencies: debug "^4.1.0" devtools-protocol "0.0.869402" From 334ac26f0d4ee1e2e8913cee420987b0ebf1fab9 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Sun, 9 May 2021 14:06:27 +0200 Subject: [PATCH 048/135] :sparkles: Add improved activity logging. --- backend/src/app/config.clj | 14 ++- backend/src/app/http/oauth.clj | 23 +++- backend/src/app/loggers/activity.clj | 127 ++++++++++++++++++++++ backend/src/app/loggers/loki.clj | 8 +- backend/src/app/main.clj | 16 ++- backend/src/app/rpc.clj | 30 +++-- backend/src/app/rpc/mutations/profile.clj | 14 ++- backend/src/app/rpc/queries/files.clj | 3 +- frontend/src/app/main/data/events.cljs | 1 - frontend/src/app/main/ui/auth.cljs | 3 +- 10 files changed, 204 insertions(+), 35 deletions(-) create mode 100644 backend/src/app/loggers/activity.clj diff --git a/backend/src/app/config.clj b/backend/src/app/config.clj index e50fd7cc9..fde08020d 100644 --- a/backend/src/app/config.clj +++ b/backend/src/app/config.clj @@ -8,6 +8,7 @@ "A configuration management." (:refer-clojure :exclude [get]) (:require + [app.common.data :as d] [app.common.spec :as us] [app.common.version :as v] [app.util.time :as dt] @@ -16,7 +17,8 @@ [clojure.pprint :as pprint] [clojure.spec.alpha :as s] [cuerdas.core :as str] - [environ.core :refer [env]])) + [environ.core :refer [env]] + [integrant.core :as ig])) (prefer-method print-method clojure.lang.IRecord @@ -26,6 +28,16 @@ clojure.lang.IPersistentMap clojure.lang.IDeref) +(defmethod ig/init-key :default + [_ data] + (d/without-nils data)) + +(defmethod ig/prep-key :default + [_ data] + (if (map? data) + (d/without-nils data) + data)) + (def defaults {:http-server-port 6060 :host "devenv" diff --git a/backend/src/app/http/oauth.clj b/backend/src/app/http/oauth.clj index 60e0a90c8..55c7a8a50 100644 --- a/backend/src/app/http/oauth.clj +++ b/backend/src/app/http/oauth.clj @@ -6,6 +6,7 @@ (ns app.http.oauth (:require + [app.common.data :as d] [app.common.exceptions :as ex] [app.common.spec :as us] [app.common.uri :as u] @@ -138,16 +139,32 @@ (cond-> info (some? (:invitation-token state)) - (assoc :invitation-token (:invitation-token state))))) + (assoc :invitation-token (:invitation-token state)) + + (map? (:props state)) + (d/merge (:props state))))) ;; --- HTTP HANDLERS +(defn extract-props + [params] + (reduce-kv (fn [params k v] + (let [sk (name k)] + (cond-> params + (or (str/starts-with? sk "pm_") + (str/starts-with? sk "pm-")) + (assoc (-> sk str/kebab keyword) v)))) + {} + params)) + (defn- auth-handler - [{:keys [tokens] :as cfg} request] - (let [invitation (get-in request [:params :invitation-token]) + [{:keys [tokens] :as cfg} {:keys [params] :as request}] + (let [invitation (:invitation-token params) + props (extract-props params) state (tokens :generate {:iss :oauth :invitation-token invitation + :props props :exp (dt/in-future "15m")}) uri (build-auth-uri cfg state)] {:status 200 diff --git a/backend/src/app/loggers/activity.clj b/backend/src/app/loggers/activity.clj new file mode 100644 index 000000000..4f02fb701 --- /dev/null +++ b/backend/src/app/loggers/activity.clj @@ -0,0 +1,127 @@ +;; 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) UXBOX Labs SL + +(ns app.loggers.activity + "Activity registry logger consumer." + (:require + [app.common.data :as d] + [app.common.spec :as us] + [app.config :as cf] + [app.util.async :as aa] + [app.util.http :as http] + [app.util.logging :as l] + [app.util.time :as dt] + [app.util.transit :as t] + [app.worker :as wrk] + [clojure.core.async :as a] + [clojure.spec.alpha :as s] + [integrant.core :as ig] + [lambdaisland.uri :as u])) + +(declare process-event) +(declare handle-event) + +(s/def ::uri ::us/string) + +(defmethod ig/pre-init-spec ::reporter [_] + (s/keys :req-un [::wrk/executor] + :opt-un [::uri])) + +(defmethod ig/init-key ::reporter + [_ {:keys [uri] :as cfg}] + (if (string? uri) + (do + (l/info :msg "intializing activity reporter" :uri uri) + (let [xform (comp (map process-event) + (filter map?)) + input (a/chan (a/sliding-buffer 1024) xform)] + (a/go-loop [] + (when-let [event (a/ params + (or (string? v) + (uuid? v) + (number? v)) + (assoc k v))) + {} + params))) + +(defn- process-event + [{:keys [type name params result] :as event}] + (let [profile-id (:profile-id params)] + (if (uuid? profile-id) + {:type (str "backend:" (d/name type)) + :name name + :timestamp (dt/now) + :profile-id profile-id + :props (clean-params params)} + (cond + (= "register-profile" name) + {:type (str "backend:" (d/name type)) + :name name + :timestamp (dt/now) + :profile-id (:id result) + :props (clean-params (:props result))} + + :else nil)))) + +(defn- send-activity + [{:keys [uri tokens]} event i] + (try + (let [token (tokens :generate {:iss "authentication" + :iat (dt/now) + :uid (:profile-id event)}) + body (t/encode {:events [event]}) + headers {"content-type" "application/transit+json" + "origin" (cf/get :public-uri) + "cookie" (u/map->query-string {:auth-token token})} + params {:uri uri + :timeout 6000 + :method :post + :headers headers + :body body} + response (http/send! params)] + (if (= (:status response) 204) + true + (do + (l/error :hint "error on sending activity" + :try i + :rsp (pr-str response)) + false))) + (catch Exception e + (l/error :hint "error on sending message to loki" + :cause e + :try i) + false))) + +(defn- handle-event + [{:keys [executor] :as cfg} event] + (aa/with-thread executor + (loop [i 1] + (when (and (not (send-activity cfg event i)) (< i 20)) + (Thread/sleep (* i 2000)) + (recur (inc i)))))) + diff --git a/backend/src/app/loggers/loki.clj b/backend/src/app/loggers/loki.clj index 607f06e3b..1bafb7c4f 100644 --- a/backend/src/app/loggers/loki.clj +++ b/backend/src/app/loggers/loki.clj @@ -31,16 +31,16 @@ [_ {:keys [receiver uri] :as cfg}] (when uri (l/info :msg "intializing loki reporter" :uri uri) - (let [output (a/chan (a/sliding-buffer 1024))] - (receiver :sub output) + (let [input (a/chan (a/sliding-buffer 1024))] + (receiver :sub input) (a/go-loop [] - (let [msg (a/> (sv/scan-ns 'app.rpc.mutations.demo 'app.rpc.mutations.media 'app.rpc.mutations.profile @@ -152,9 +164,11 @@ (s/def ::storage some?) (s/def ::session map?) (s/def ::tokens fn?) +(s/def ::activity some?) (defmethod ig/pre-init-spec ::rpc [_] - (s/keys :req-un [::db/pool ::storage ::session ::tokens ::mtx/metrics ::rlm/rlimits])) + (s/keys :req-un [::storage ::session ::tokens ::activity + ::mtx/metrics ::rlm/rlimits ::db/pool])) (defmethod ig/init-key ::rpc [_ cfg] diff --git a/backend/src/app/rpc/mutations/profile.clj b/backend/src/app/rpc/mutations/profile.clj index 01fdb5243..6e75017a5 100644 --- a/backend/src/app/rpc/mutations/profile.clj +++ b/backend/src/app/rpc/mutations/profile.clj @@ -13,6 +13,7 @@ [app.config :as cfg] [app.db :as db] [app.emails :as eml] + [app.http.oauth :refer [extract-props]] [app.media :as media] [app.rpc.mutations.projects :as projects] [app.rpc.mutations.teams :as teams] @@ -101,7 +102,8 @@ resp {:invitation-token token}] (with-meta resp {:transform-response ((:create session) (:id profile)) - :before-complete (annotate-profile-register metrics profile)})) + :before-complete (annotate-profile-register metrics profile) + :result profile})) ;; If no token is provided, send a verification email (let [vtoken (tokens :generate @@ -129,7 +131,8 @@ :extra-data ptoken}) (with-meta profile - {:before-complete (annotate-profile-register metrics profile)}))))) + {:before-complete (annotate-profile-register metrics profile) + :result profile}))))) (defn email-domain-in-whitelist? "Returns true if email's domain is in the given whitelist or if given @@ -174,11 +177,12 @@ (defn create-profile "Create the profile entry on the database with limited input filling all the other fields with defaults." - [conn {:keys [id fullname email password props is-active is-muted is-demo opts] - :or {is-active false is-muted false is-demo false}}] + [conn {:keys [id fullname email password is-active is-muted is-demo opts] + :or {is-active false is-muted false is-demo false} + :as params}] (let [id (or id (uuid/next)) is-active (if is-demo true is-active) - props (db/tjson (or props {})) + props (-> params extract-props db/tjson) password (derive-password password) params {:id id :fullname fullname diff --git a/backend/src/app/rpc/queries/files.clj b/backend/src/app/rpc/queries/files.clj index 066ee7e10..b781c783a 100644 --- a/backend/src/app/rpc/queries/files.clj +++ b/backend/src/app/rpc/queries/files.clj @@ -6,7 +6,6 @@ (ns app.rpc.queries.files (:require - [app.common.exceptions :as ex] [app.common.pages.migrations :as pmg] [app.common.spec :as us] [app.db :as db] @@ -254,7 +253,7 @@ (defn retrieve-file-libraries [conn is-indirect file-id] (let [libraries (->> (db/exec! conn [sql:file-libraries file-id]) - (map #(assoc :is-indirect is-indirect)) + (map #(assoc % :is-indirect is-indirect)) (into #{} decode-row-xf))] (reduce #(into %1 (retrieve-file-libraries conn true %2)) libraries diff --git a/frontend/src/app/main/data/events.cljs b/frontend/src/app/main/data/events.cljs index 1e75b1d4a..ca4b99a61 100644 --- a/frontend/src/app/main/data/events.cljs +++ b/frontend/src/app/main/data/events.cljs @@ -179,7 +179,6 @@ (effect [_ state stream] (let [profile-id (:profile-id state) events (into [] (take max-buffer-size) @buffer)] - (prn ::persistence (count events) profile-id) (when (seq events) (->> events (filterv #(= profile-id (:profile-id %))) diff --git a/frontend/src/app/main/ui/auth.cljs b/frontend/src/app/main/ui/auth.cljs index c5f9cf846..06b56dca4 100644 --- a/frontend/src/app/main/ui/auth.cljs +++ b/frontend/src/app/main/ui/auth.cljs @@ -54,8 +54,7 @@ [:& recovery-request-page {:locale locale}] :auth-recovery - [:& recovery-page {:locale locale - :params (:query-params route)}]) + [:& recovery-page {:locale locale :params params}]) [:div.terms-login [:a {:href "https://penpot.app/terms.html" :target "_blank"} "Terms of service"] [:span "and"] From ecacd47523563b42376f4a74efca2e71217395b9 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 10 May 2021 09:07:56 +0200 Subject: [PATCH 049/135] :arrow_up: Update babashka to 0.4.0 on devenv docker. --- backend/scripts/repl | 4 +++- docker/devenv/Dockerfile | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/scripts/repl b/backend/scripts/repl index 32fd12d42..3c8b1a6c6 100755 --- a/backend/scripts/repl +++ b/backend/scripts/repl @@ -2,7 +2,9 @@ export PENPOT_ASSERTS_ENABLED=true -export OPTIONS="-A:jmx-remote:dev -J-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager -J-Xms512m -J-Xmx512m -J-Dlog4j2.configurationFile=log4j2-devenv.xml" +export OPTIONS="-A:jmx-remote:dev -J-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager -J-Xms512m -J-Xmx512m -J-Dlog4j2.configurationFile=log4j2-devenv.xml"; +# export OPTIONS="$OPTIONS -J-XX:+UnlockDiagnosticVMOptions"; +# export OPTIONS="$OPTIONS -J-XX:-TieredCompilation -J-XX:CompileThreshold=10000"; export OPTIONS_EVAL="nil" # export OPTIONS_EVAL="(set! *warn-on-reflection* true)" diff --git a/docker/devenv/Dockerfile b/docker/devenv/Dockerfile index 9e90ed04d..f7e2eebdc 100644 --- a/docker/devenv/Dockerfile +++ b/docker/devenv/Dockerfile @@ -6,7 +6,7 @@ ARG DEBIAN_FRONTEND=noninteractive ENV NODE_VERSION=v14.16.1 \ CLOJURE_VERSION=1.10.3.822 \ CLJKONDO_VERSION=2021.04.23 \ - BABASHKA_VERSION=0.3.5 \ + BABASHKA_VERSION=0.4.0 \ LANG=en_US.UTF-8 \ LC_ALL=en_US.UTF-8 From 384b464f0fd109759229df7a87add78f7fdb2242 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Mon, 10 May 2021 15:39:02 +0200 Subject: [PATCH 050/135] :sparkles: Translate automatic names of new files and projects --- CHANGES.md | 1 + frontend/src/app/main/data/dashboard.cljs | 4 ++-- frontend/translations/en.po | 8 ++++++++ frontend/translations/es.po | 8 ++++++++ 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 5df97e14f..c43ccac1b 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -5,6 +5,7 @@ ### :sparkles: New features - Add option to interactively scale text [Taiga #1527](https://tree.taiga.io/project/penpot/us/1527) +- Translate automatic names of new files and projects. ### :bug: Bugs fixed diff --git a/frontend/src/app/main/data/dashboard.cljs b/frontend/src/app/main/data/dashboard.cljs index e69e39fe2..8f48fd498 100644 --- a/frontend/src/app/main/data/dashboard.cljs +++ b/frontend/src/app/main/data/dashboard.cljs @@ -433,7 +433,7 @@ (ptk/reify ::create-project ptk/WatchEvent (watch [_ state stream] - (let [name (name (gensym "New Project ")) + (let [name (name (gensym (str (tr "dashboard.new-project-prefix") " "))) team-id (:current-team-id state) params {:name name :team-id team-id} @@ -624,7 +624,7 @@ :or {on-success identity on-error rx/throw}} (meta params) - name (name (gensym "New File ")) + name (name (gensym (str (tr "dashboard.new-file-prefix") " "))) params (assoc params :name name)] (->> (rp/mutation! :create-file params) diff --git a/frontend/translations/en.po b/frontend/translations/en.po index f3bd4316e..a683b5504 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -290,10 +290,18 @@ msgstr "Move to other team" msgid "dashboard.new-file" msgstr "+ New File" +#: src/app/main/data/dashboard.cljs +msgid "dashboard.new-file-prefix" +msgstr "New File" + #: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ New project" +#: src/app/main/data/dashboard.cljs +msgid "dashboard.new-project-prefix" +msgstr "New Project" + #: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "No matches found for “%s“" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index f8f8e956f..197837509 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -305,10 +305,18 @@ msgstr "Mover a otro equipo" msgid "dashboard.new-file" msgstr "+ Nuevo Archivo" +#: src/app/main/data/dashboard.cljs +msgid "dashboard.new-file-prefix" +msgstr "Nuevo Archivo" + #: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Nuevo proyecto" +#: src/app/main/data/dashboard.cljs +msgid "dashboard.new-project-prefix" +msgstr "Nuevo Proyecto" + #: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "No se encuentra “%s“" From ae1e9a861b1f2e7389b4508578d38d7d92abe16a Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 10 May 2021 18:12:49 +0200 Subject: [PATCH 051/135] :sparkles: Improve handling of shape transform modifiers --- .../app/main/data/workspace/transforms.cljs | 13 ++++++--- frontend/src/app/main/refs.cljs | 27 ++++++++++++++----- frontend/src/app/main/ui/measurements.cljs | 2 +- .../app/main/ui/workspace/shapes/group.cljs | 2 +- .../src/app/main/ui/workspace/viewport.cljs | 9 ++++--- .../main/ui/workspace/viewport/selection.cljs | 9 ++----- 6 files changed, 38 insertions(+), 24 deletions(-) diff --git a/frontend/src/app/main/data/workspace/transforms.cljs b/frontend/src/app/main/data/workspace/transforms.cljs index 5d431348a..dd4171ab1 100644 --- a/frontend/src/app/main/data/workspace/transforms.cljs +++ b/frontend/src/app/main/data/workspace/transforms.cljs @@ -424,8 +424,8 @@ ids-with-children (concat ids (mapcat #(cp/get-children % objects) (filter not-frame-id? ids)))] - (d/update-in-when state [:workspace-data :pages-index page-id :objects] - #(reduce update-shape % ids-with-children))))))) + (update state :workspace-modifiers + #(reduce update-shape % ids-with-children))))))) ;; Set-rotation is custom because applies different modifiers to each @@ -476,9 +476,13 @@ (watch [it state stream] (let [objects (wsh/lookup-page-objects state) children-ids (->> ids (mapcat #(cp/get-children % objects))) - ids-with-children (d/concat [] children-ids ids)] + ids-with-children (d/concat [] children-ids ids) + object-modifiers (get state :workspace-modifiers)] (rx/of (dwu/start-undo-transaction) - (dch/update-shapes ids-with-children gsh/transform-shape {:reg-objects? true}) + (dch/update-shapes ids-with-children (fn [shape] + (-> shape + (merge (get object-modifiers (:id shape))) + (gsh/transform-shape))) {:reg-objects? true}) (clear-local-transform) (dwu/commit-undo-transaction)))))) @@ -572,4 +576,5 @@ ptk/UpdateEvent (update [_ state] (-> state + (dissoc :workspace-modifiers) (update :workspace-local dissoc :modifiers :current-move-selected))))) diff --git a/frontend/src/app/main/refs.cljs b/frontend/src/app/main/refs.cljs index 9b828903c..3a50f2a46 100644 --- a/frontend/src/app/main/refs.cljs +++ b/frontend/src/app/main/refs.cljs @@ -1,3 +1,4 @@ + ;; 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/. @@ -209,7 +210,10 @@ st/state)) (def workspace-page-objects - (l/derived :objects workspace-page)) + (l/derived wsh/lookup-page-objects st/state =)) + +(def workspace-modifiers + (l/derived :workspace-modifiers st/state)) (def workspace-page-options (l/derived :options workspace-page)) @@ -228,12 +232,21 @@ (l/derived #(get % id) workspace-page-objects)) (defn objects-by-id - [ids] - (l/derived (fn [objects] - (into [] (comp (map #(get objects %)) - (remove nil?)) - ids)) - workspace-page-objects =)) + ([ids] + (objects-by-id ids nil)) + + ([ids {:keys [with-modifiers?] + :or { with-modifiers? false }}] + (l/derived (fn [state] + (let [objects (wsh/lookup-page-objects state) + modifiers (:workspace-modifiers state) + objects (cond-> objects + with-modifiers? + (d/deep-merge modifiers)) + xform (comp (map #(get objects %)) + (remove nil?))] + (into [] xform ids))) + st/state =))) (def selected-data (l/derived #(let [selected (wsh/lookup-selected %) diff --git a/frontend/src/app/main/ui/measurements.cljs b/frontend/src/app/main/ui/measurements.cljs index 0d6fc0d8b..75dce1ac1 100644 --- a/frontend/src/app/main/ui/measurements.cljs +++ b/frontend/src/app/main/ui/measurements.cljs @@ -235,7 +235,7 @@ [{:keys [bounds frame selected-shapes hover-shape zoom]}] (let [selected-ids (into #{} (map :id) selected-shapes) selected-selrect (gsh/selection-rect selected-shapes) - hover-selrect (:selrect hover-shape) + hover-selrect (-> hover-shape :points gsh/points->selrect) bounds-selrect (bound->selrect bounds) hover-selected-shape? (not (contains? selected-ids (:id hover-shape)))] diff --git a/frontend/src/app/main/ui/workspace/shapes/group.cljs b/frontend/src/app/main/ui/workspace/shapes/group.cljs index d55215d1e..22ca26f1b 100644 --- a/frontend/src/app/main/ui/workspace/shapes/group.cljs +++ b/frontend/src/app/main/ui/workspace/shapes/group.cljs @@ -38,7 +38,7 @@ {:keys [id x y width height]} shape - childs-ref (mf/use-memo (mf/deps shape) #(refs/objects-by-id (:shapes shape))) + childs-ref (mf/use-memo (mf/deps shape) #(refs/objects-by-id (:shapes shape) {:with-modifiers? true})) childs (mf/deref childs-ref)] [:> shape-container {:shape shape} diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index 6e2363cb6..b2acf0e1a 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -59,6 +59,8 @@ drawing (mf/deref refs/workspace-drawing) options (mf/deref refs/workspace-page-options) objects (mf/deref refs/workspace-page-objects) + object-modifiers (mf/deref refs/workspace-modifiers) + objects (d/deep-merge objects object-modifiers) ;; STATE alt? (mf/use-state false) @@ -133,8 +135,7 @@ show-snap-distance? (and (contains? layout :dynamic-alignment) (= transform :move) (not (empty? selected))) show-snap-points? (and (contains? layout :dynamic-alignment) (or drawing-obj transform)) show-selrect? (and selrect (empty? drawing)) - show-measures? (and (not transform) (not path-editing?) show-distances?) - ] + show-measures? (and (not transform) (not path-editing?) show-distances?)] (hooks/setup-dom-events viewport-ref zoom disable-paste in-viewport?) (hooks/setup-viewport-size viewport-ref) @@ -205,8 +206,7 @@ :on-pointer-enter on-pointer-enter :on-pointer-leave on-pointer-leave :on-pointer-move on-pointer-move - :on-pointer-up on-pointer-up - } + :on-pointer-up on-pointer-up} [:g {:style {:pointer-events (if disable-events? "none" "auto")}} @@ -222,6 +222,7 @@ (when show-selection-handlers? [:& selection/selection-handlers {:selected selected + :shapes selected-shapes :zoom zoom :edition edition :disable-handlers (or drawing-tool edition) diff --git a/frontend/src/app/main/ui/workspace/viewport/selection.cljs b/frontend/src/app/main/ui/workspace/viewport/selection.cljs index 8cad2d8fc..fa23c720c 100644 --- a/frontend/src/app/main/ui/workspace/viewport/selection.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/selection.cljs @@ -355,13 +355,8 @@ (mf/defc selection-handlers {::mf/wrap [mf/memo]} - [{:keys [selected edition zoom disable-handlers on-move-selected] :as props}] - (let [;; We need remove posible nil values because on shape - ;; deletion many shape will reamin selected and deleted - ;; in the same time for small instant of time - shapes (->> (mf/deref (refs/objects-by-id selected)) - (remove nil?)) - num (count shapes) + [{:keys [shapes selected edition zoom disable-handlers on-move-selected] :as props}] + (let [num (count shapes) {:keys [id type] :as shape} (first shapes) color (if (or (> num 1) (nil? (:shape-ref shape))) From e1dfd91e245afe6df6a4c380e1d1eab3d1984e66 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 10 May 2021 12:02:54 +0200 Subject: [PATCH 052/135] :zap: Frame thumbnails --- backend/src/app/rpc/queries/files.clj | 36 ++++- common/app/common/data.cljc | 42 ++++++ common/app/common/pages/helpers.cljc | 2 +- frontend/src/app/main/data/workspace.cljs | 2 + .../src/app/main/data/workspace/changes.cljs | 11 +- .../app/main/data/workspace/persistence.cljs | 127 +++++++++++++---- frontend/src/app/main/exports.cljs | 24 +++- frontend/src/app/main/ui/shapes/frame.cljs | 2 +- frontend/src/app/main/ui/workspace.cljs | 7 +- .../src/app/main/ui/workspace/shapes.cljs | 6 +- .../app/main/ui/workspace/shapes/frame.cljs | 45 +++++- .../src/app/main/ui/workspace/viewport.cljs | 8 +- .../app/main/ui/workspace/viewport/hooks.cljs | 31 +++++ .../viewport/thumbnail_renderer.cljs | 130 ++++++++++++++++++ frontend/src/app/worker/thumbnails.cljs | 4 +- 15 files changed, 427 insertions(+), 50 deletions(-) create mode 100644 frontend/src/app/main/ui/workspace/viewport/thumbnail_renderer.cljs diff --git a/backend/src/app/rpc/queries/files.clj b/backend/src/app/rpc/queries/files.clj index b781c783a..3fa857892 100644 --- a/backend/src/app/rpc/queries/files.clj +++ b/backend/src/app/rpc/queries/files.clj @@ -8,6 +8,7 @@ (:require [app.common.pages.migrations :as pmg] [app.common.spec :as us] + [app.common.uuid :as uuid] [app.db :as db] [app.rpc.permissions :as perms] [app.rpc.queries.projects :as projects] @@ -120,6 +121,7 @@ profile-id team-id search-term])) + ;; --- Query: Files ;; DEPRECATED: should be removed probably on 1.6.x @@ -185,13 +187,43 @@ (s/def ::page (s/keys :req-un [::profile-id ::file-id])) +(defn remove-thumbnails-frames + "Removes from data the children for frames that have a thumbnail set up" + [data] + (let [filter-shape? + (fn [objects [id shape]] + (let [frame-id (:frame-id shape)] + (or (= id uuid/zero) + (= frame-id uuid/zero) + (not (some? (get-in objects [frame-id :thumbnail])))))) + + ;; We need to remove from the attribute :shapes its childrens because + ;; they will not be sent in the data + remove-frame-children + (fn [[id shape]] + [id (cond-> shape + (some? (:thumbnail shape)) + (assoc :shapes []))]) + + update-objects + (fn [objects] + (into {} + (comp (map remove-frame-children) + (filter (partial filter-shape? objects))) + objects))] + + (update data :objects update-objects))) + (sv/defmethod ::page + [{:keys [pool] :as cfg} {:keys [profile-id file-id id strip-thumbnails]}] [{:keys [pool] :as cfg} {:keys [profile-id file-id]}] (db/with-atomic [conn pool] (check-edition-permissions! conn profile-id file-id) (let [file (retrieve-file conn file-id) page-id (get-in file [:data :pages 0])] - (get-in file [:data :pages-index page-id])))) + (cond-> (get-in file [:data :pages-index page-id]) + strip-thumbnails + (remove-thumbnails-frames))))) ;; --- Query: Shared Library Files @@ -244,6 +276,7 @@ (def ^:private sql:file-libraries "select fl.*, + flr.synced_at as synced_at from file as fl inner join file_library_rel as flr on (flr.library_file_id = fl.id) @@ -259,6 +292,7 @@ libraries (map :id libraries)))) + (s/def ::file-libraries (s/keys :req-un [::profile-id ::file-id])) diff --git a/common/app/common/data.cljc b/common/app/common/data.cljc index da478337a..f1b5f1091 100644 --- a/common/app/common/data.cljc +++ b/common/app/common/data.cljc @@ -12,6 +12,7 @@ (:require [linked.set :as lks] [app.common.math :as mth] + [clojure.set :as set] #?(:clj [cljs.analyzer.api :as aapi]) #?(:cljs [cljs.reader :as r] :clj [clojure.edn :as r]) @@ -467,3 +468,44 @@ [f coll] (f coll) coll) + +(defn map-diff + "Given two maps returns the diff of its attributes in a map where + the keys will be the attributes that change and the values the previous + and current value. For attributes which value is a map this will be recursive. + + For example: + (map-diff {:a 1 :b 2 :c { :foo 1 :var 2} + {:a 2 :c { :foo 10 } :d 10) + + => { :a [1 2] + :b [2 nil] + :c { :foo [1 10] + :var [2 nil]} + :d [nil 10] } + + If both maps are identical the result will be an empty map + " + [m1 m2] + + (let [m1ks (keys m1) + m2ks (keys m2) + keys (set/union m1ks m2ks) + + diff-attr + (fn [diff key] + + (let [v1 (get m1 key) + v2 (get m2 key)] + (cond + (= v1 v2) + diff + + (and (map? v1) (map? v2)) + (assoc diff key (map-diff v1 v2)) + + :else + (assoc diff key [(get m1 key) (get m2 key)]))))] + + (->> keys + (reduce diff-attr {})))) diff --git a/common/app/common/pages/helpers.cljc b/common/app/common/pages/helpers.cljc index f3a52cbc9..6bc748419 100644 --- a/common/app/common/pages/helpers.cljc +++ b/common/app/common/pages/helpers.cljc @@ -10,6 +10,7 @@ [app.common.geom.shapes :as gsh] [app.common.spec :as us] [app.common.uuid :as uuid] + [clojure.set :as set] [cuerdas.core :as str])) (defn walk-pages @@ -456,4 +457,3 @@ [path name] (let [path-split (split-path path)] (merge-path-item (first path-split) name))) - diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 18ad355a9..085d3c427 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -161,6 +161,7 @@ (->> stream (rx/filter (ptk/type? ::dwp/bundle-fetched)) (rx/take 1) + (rx/map deref) (rx/mapcat (fn [bundle] (rx/of (dwn/initialize file-id) @@ -1185,6 +1186,7 @@ (defn go-to-page ([] + (ptk/reify ::go-to-page ptk/WatchEvent (watch [it state stream] diff --git a/frontend/src/app/main/data/workspace/changes.cljs b/frontend/src/app/main/data/workspace/changes.cljs index 53f5cd421..56c918f38 100644 --- a/frontend/src/app/main/data/workspace/changes.cljs +++ b/frontend/src/app/main/data/workspace/changes.cljs @@ -62,7 +62,8 @@ (defn update-shapes ([ids f] (update-shapes ids f nil)) - ([ids f {:keys [reg-objects?] :or {reg-objects? false}}] + ([ids f {:keys [reg-objects? save-undo?] + :or {reg-objects? false save-undo? true}}] (us/assert ::coll-of-uuid ids) (us/assert fn? f) (ptk/reify ::update-shapes @@ -82,7 +83,8 @@ (when (and has-rch? has-uch?) (commit-changes {:redo-changes rch :undo-changes uch - :origin it})))) + :origin it + :save-undo? save-undo?})))) (let [id (first ids) obj1 (get objects id) @@ -164,6 +166,7 @@ [{:keys [redo-changes undo-changes origin save-undo? file-id] :or {save-undo? true}}] + (log/debug :msg "commit-changes" :js/redo-changes redo-changes :js/undo-changes undo-changes) @@ -182,12 +185,14 @@ (let [current-file-id (get state :current-file-id) file-id (or file-id current-file-id) path (if (= file-id current-file-id) + [:workspace-data] [:workspace-libraries file-id :data])] (try (us/assert ::spec/changes redo-changes) (us/assert ::spec/changes undo-changes) (update-in state path cp/process-changes redo-changes false) + (catch :default e (vreset! error e) state)))) @@ -217,4 +222,4 @@ (when (and save-undo? (seq undo-changes)) (let [entry {:undo-changes undo-changes :redo-changes redo-changes}] - (rx/of (dwu/append-undo entry))))))))))) + (rx/of (dwu/append-undo entry))))))))))) \ No newline at end of file diff --git a/frontend/src/app/main/data/workspace/persistence.cljs b/frontend/src/app/main/data/workspace/persistence.cljs index 665547944..2c8f0d7fc 100644 --- a/frontend/src/app/main/data/workspace/persistence.cljs +++ b/frontend/src/app/main/data/workspace/persistence.cljs @@ -16,11 +16,13 @@ [app.main.data.dashboard :as dd] [app.main.data.media :as di] [app.main.data.messages :as dm] - [app.main.data.workspace.common :as dwc] [app.main.data.workspace.changes :as dch] + [app.main.data.workspace.common :as dwc] [app.main.data.workspace.libraries :as dwl] [app.main.data.workspace.selection :as dws] + [app.main.data.workspace.state-helpers :as wsh] [app.main.data.workspace.svg-upload :as svg] + [app.main.refs :as refs] [app.main.repo :as rp] [app.main.store :as st] [app.util.avatars :as avatars] @@ -33,6 +35,7 @@ [app.util.uri :as uu] [beicon.core :as rx] [cljs.spec.alpha :as s] + [clojure.set :as set] [cuerdas.core :as str] [potok.core :as ptk] [promesa.core :as p])) @@ -349,30 +352,6 @@ (->> (rp/mutation :unlink-file-from-library params) (rx/map (constantly unlinked))))))) -;; --- Fetch Pages - -(declare page-fetched) - -(defn fetch-page - [page-id] - (us/verify ::us/uuid page-id) - (ptk/reify ::fetch-pages - ptk/WatchEvent - (watch [it state s] - (->> (rp/query :page {:id page-id}) - (rx/map page-fetched))))) - -(defn page-fetched - [{:keys [id] :as page}] - (us/verify ::page page) - (ptk/reify ::page-fetched - IDeref - (-deref [_] page) - - ptk/UpdateEvent - (update [_ state] - (assoc-in state [:workspace-pages id] page)))) - ;; --- Upload File Media objects @@ -572,3 +551,101 @@ (update-in [:workspace-file :pages] #(filterv (partial not= id) %)) (update :workspace-pages dissoc id))) +(def update-frame-thumbnail? (ptk/type? ::update-frame-thumbnail)) + +(defn remove-thumbnails + [ids] + (ptk/reify ::remove-thumbnails + ptk/WatchEvent + (watch [_ state stream] + ;; Removes the thumbnail while it's regenerated + (rx/of (dch/update-shapes + ids + #(dissoc % :thumbnail) + {:save-undo? false}))))) + +(defn update-frame-thumbnail + [frame-id] + (ptk/event ::update-frame-thumbnail {:frame-id frame-id})) + +(defn- extract-frame-changes + "Process a changes set in a commit to extract the frames that are channging" + [[event objects]] + (let [changes (-> event deref :changes) + + extract-ids + (fn [{type :type :as change}] + (case type + :add-obj [(:id change)] + :mod-obj [(:id change)] + :del-obj [(:id change)] + :reg-objects (:shapes change) + :mov-objects (:shapes change) + [])) + + get-frame-id + (fn [id] + (or (and (= :frame (get-in objects [id :type])) id) + (get-in objects [id :frame-id]))) + + ;; Extracts the frames and then removes nils and the root frame + xform (comp (mapcat extract-ids) + (map get-frame-id) + (remove nil?) + (filter #(not= uuid/zero %)))] + + (into #{} xform changes))) + +(defn thumbnail-change? + "Checks if a event is only updating thumbnails to ignore in the thumbnail generation process" + [event] + (let [changes (-> event deref :changes) + + is-thumbnail-op? + (fn [{type :type attr :attr}] + (and (= type :set) + (= attr :thumbnail))) + + is-thumbnail-change? + (fn [change] + (and (= (:type change) :mod-obj) + (->> change :operations (every? is-thumbnail-op?))))] + + (->> changes (every? is-thumbnail-change?)))) + +(defn watch-state-changes [] + (ptk/reify ::watch-state-changes + ptk/WatchEvent + (watch [_ state stream] + (let [stopper (->> stream + (rx/filter #(or (= :app.main.data.workspace/finalize-page (ptk/type %)) + (= ::watch-state-changes (ptk/type %))))) + + objects-stream (rx/from-atom refs/workspace-page-objects {:emit-current-value? true}) + + frame-changes (->> stream + (rx/filter dch/commit-changes?) + (rx/filter (comp not thumbnail-change?)) + (rx/with-latest-from objects-stream) + (rx/map extract-frame-changes)) + + frames (-> state wsh/lookup-page-objects cp/select-frames) + no-thumb-frames (->> frames + (filter (comp nil? :thumbnail)) + (mapv :id))] + + (rx/concat + (->> (rx/from no-thumb-frames) + (rx/map #(update-frame-thumbnail %))) + + ;; We remove the thumbnails inmediately but defer their generation + (rx/merge + (->> frame-changes + (rx/take-until stopper) + (rx/map #(remove-thumbnails %))) + + (->> frame-changes + (rx/take-until stopper) + (rx/buffer-until (->> frame-changes (rx/debounce 1000))) + (rx/flat-map #(reduce set/union %)) + (rx/map #(update-frame-thumbnail %))))))))) diff --git a/frontend/src/app/main/exports.cljs b/frontend/src/app/main/exports.cljs index 1569144f3..aa5e08c21 100644 --- a/frontend/src/app/main/exports.cljs +++ b/frontend/src/app/main/exports.cljs @@ -121,7 +121,7 @@ (mf/defc page-svg {::mf/wrap [mf/memo]} - [{:keys [data width height] :as props}] + [{:keys [data width height thumbnails?] :as props}] (let [objects (:objects data) root (get objects uuid/zero) shapes (->> (:shapes root) @@ -146,11 +146,23 @@ :xmlns "http://www.w3.org/2000/svg"} [:& background {:vbox dim :color background-color}] (for [item shapes] - (if (= (:type item) :frame) - [:& frame-wrapper {:shape item - :key (:id item)}] - [:& shape-wrapper {:shape item - :key (:id item)}]))])) + (let [frame? (= (:type item) :frame)] + (cond + (and frame? thumbnails? (some? (:thumbnail item))) + [:image {:xlinkHref (:thumbnail item) + :x (:x item) + :y (:y item) + :width (:width item) + :height (:height item) + ;; DEBUG + ;; :style {:filter "sepia(1)"} + }] + frame? + [:& frame-wrapper {:shape item + :key (:id item)}] + :else + [:& shape-wrapper {:shape item + :key (:id item)}])))])) (mf/defc frame-svg {::mf/wrap [mf/memo]} diff --git a/frontend/src/app/main/ui/shapes/frame.cljs b/frontend/src/app/main/ui/shapes/frame.cljs index 22aa27c30..966619c67 100644 --- a/frontend/src/app/main/ui/shapes/frame.cljs +++ b/frontend/src/app/main/ui/shapes/frame.cljs @@ -21,7 +21,7 @@ [props] (let [childs (unchecked-get props "childs") shape (unchecked-get props "shape") - {:keys [id x y width height]} shape + {:keys [id width height]} shape props (-> (merge frame-default-props shape) (attrs/extract-style-attrs) diff --git a/frontend/src/app/main/ui/workspace.cljs b/frontend/src/app/main/ui/workspace.cljs index c21de7bea..bb7f69c92 100644 --- a/frontend/src/app/main/ui/workspace.cljs +++ b/frontend/src/app/main/ui/workspace.cljs @@ -106,7 +106,7 @@ (fn [] (when page-id - (st/emitf (dw/finalize-page page-id)))))) + (st/emit! (dw/finalize-page page-id)))))) (when page [:& workspace-content {:key page-id @@ -158,6 +158,9 @@ (if (and (and file project) (:initialized file)) - [:& workspace-page {:page-id page-id :file file :layout layout}] + [:& workspace-page {:key (str "page-" page-id) + :page-id page-id + :file file + :layout layout}] [:& workspace-loader])]]]]])) diff --git a/frontend/src/app/main/ui/workspace/shapes.cljs b/frontend/src/app/main/ui/workspace/shapes.cljs index 9faf50f85..9b30723fd 100644 --- a/frontend/src/app/main/ui/workspace/shapes.cljs +++ b/frontend/src/app/main/ui/workspace/shapes.cljs @@ -51,7 +51,8 @@ "Draws the root shape of the viewport and recursively all the shapes" {::mf/wrap-props false} [props] - (let [objects (obj/get props "objects") + (let [objects (obj/get props "objects") + active-frames (obj/get props "active-frames") root-shapes (get-in objects [uuid/zero :shapes]) shapes (->> root-shapes (mapv #(get objects %)))] @@ -59,7 +60,8 @@ (if (= (:type item) :frame) [:& frame-wrapper {:shape item :key (:id item) - :objects objects}] + :objects objects + :thumbnail? (not (get active-frames (:id item) false))}] [:& shape-wrapper {:shape item :key (:id item)}])))) diff --git a/frontend/src/app/main/ui/workspace/shapes/frame.cljs b/frontend/src/app/main/ui/workspace/shapes/frame.cljs index 91e31c6ed..8e8dd3186 100644 --- a/frontend/src/app/main/ui/workspace/shapes/frame.cljs +++ b/frontend/src/app/main/ui/workspace/shapes/frame.cljs @@ -9,6 +9,7 @@ [app.common.geom.point :as gpt] [app.common.geom.shapes :as gsh] [app.main.data.workspace :as dw] + [app.main.data.workspace.changes :as dch] [app.main.refs :as refs] [app.main.store :as st] [app.main.ui.context :as muc] @@ -17,11 +18,18 @@ [app.main.ui.shapes.text.embed :as ste] [app.util.dom :as dom] [app.util.keyboard :as kbd] + [app.util.object :as obj] [app.util.timers :as ts] [beicon.core :as rx] [okulary.core :as l] [rumext.alpha :as mf])) +(def obs-config + #js {:attributes true + :childList true + :subtree true + :characterData true}) + (defn make-is-moving-ref [id] (let [check-moving (fn [local] @@ -43,14 +51,32 @@ (let [new-shape (unchecked-get new-props "shape") old-shape (unchecked-get old-props "shape") + new-thumbnail? (unchecked-get new-props "thumbnail?") + old-thumbnail? (unchecked-get old-props "thumbnail?") + new-objects (unchecked-get new-props "objects") old-objects (unchecked-get old-props "objects") new-children (->> new-shape :shapes (mapv #(get new-objects %))) old-children (->> old-shape :shapes (mapv #(get old-objects %)))] (and (= new-shape old-shape) + (= new-thumbnail? old-thumbnail?) (= new-children old-children)))) +(mf/defc thumbnail + {::mf/wrap-props false} + [props] + (let [shape (obj/get props "shape")] + (when (:thumbnail shape) + [:image {:xlinkHref (:thumbnail shape) + :x (:x shape) + :y (:y shape) + :width (:width shape) + :height (:height shape) + ;; DEBUG + ;; :style {:filter "sepia(1)"} + }]))) + ;; This custom deffered don't deffer rendering when ghost rendering is ;; used. (defn custom-deferred @@ -76,6 +102,8 @@ [props] (let [shape (unchecked-get props "shape") objects (unchecked-get props "objects") + thumbnail? (unchecked-get props "thumbnail?") + edition (mf/deref refs/selected-edition) embed-fonts? (mf/use-ctx muc/embed-ctx) @@ -90,10 +118,15 @@ (when (and shape (not (:hidden shape))) [:g.frame-wrapper {:display (when (:hidden shape) "none")} - [:> shape-container {:shape shape} - (when embed-fonts? - [:& ste/embed-fontfaces-style {:shapes text-childs}]) - [:& frame-shape - {:shape shape - :childs children}]]]))))) + + (if (and thumbnail? (some? (:thumbnail shape))) + [:& thumbnail {:shape shape}] + + [:> shape-container {:shape shape } + + (when embed-fonts? + [:& ste/embed-fontfaces-style {:shapes text-childs}]) + + [:& frame-shape {:shape shape + :childs children}]])]))))) diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index b2acf0e1a..2adbe4189 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -27,6 +27,7 @@ [app.main.ui.workspace.viewport.selection :as selection] [app.main.ui.workspace.viewport.snap-distances :as snap-distances] [app.main.ui.workspace.viewport.snap-points :as snap-points] + [app.main.ui.workspace.viewport.thumbnail-renderer :as wtr] [app.main.ui.workspace.viewport.utils :as utils] [app.main.ui.workspace.viewport.widgets :as widgets] [beicon.core :as rx] @@ -69,6 +70,7 @@ hover-ids (mf/use-state nil) hover (mf/use-state nil) frame-hover (mf/use-state nil) + active-frames (mf/use-state {}) ;; REFS viewport-ref (mf/use-ref nil) @@ -145,9 +147,12 @@ (hooks/setup-hover-shapes page-id move-stream selected objects transform selected ctrl? hover hover-ids) (hooks/setup-viewport-modifiers modifiers selected objects render-ref) (hooks/setup-shortcuts path-editing? drawing-path?) + (hooks/setup-active-frames objects vbox hover active-frames) [:div.viewport [:div.viewport-overlays + [:& wtr/frame-renderer {:objects objects}] + (when show-comments? [:& comments/comments-layer {:vbox vbox :vport vport @@ -180,7 +185,8 @@ [:& (mf/provider muc/embed-ctx) {:value true} ;; Render root shape [:& shapes/root-shape {:key page-id - :objects objects}]]] + :objects objects + :active-frames @active-frames}]]] [:svg.viewport-controls {:xmlns "http://www.w3.org/2000/svg" diff --git a/frontend/src/app/main/ui/workspace/viewport/hooks.cljs b/frontend/src/app/main/ui/workspace/viewport/hooks.cljs index 1fe1c1685..d5837c2e4 100644 --- a/frontend/src/app/main/ui/workspace/viewport/hooks.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/hooks.cljs @@ -164,3 +164,34 @@ :else (dsc/bind-shortcuts wsc/shortcuts)) dsc/remove-shortcuts))) + +(defn inside-vbox [vbox objects frame-id] + (let [frame (get objects frame-id)] + + (and (some? frame) + (gsh/overlaps? frame vbox)))) + +(defn setup-active-frames + [objects vbox hover active-frames] + + (mf/use-effect + (mf/deps vbox) + + (fn [] + (swap! active-frames + (fn [active-frames] + (let [set-active-frames + (fn [active-frames id active?] + (cond-> active-frames + (and active? (inside-vbox vbox objects id)) + (assoc id true)))] + (reduce-kv set-active-frames {} active-frames)))))) + + (mf/use-effect + (mf/deps @hover @active-frames) + (fn [] + (let [frame-id (if (= :frame (:type @hover)) + (:id @hover) + (:frame-id @hover))] + (when (not (contains? @active-frames frame-id)) + (swap! active-frames assoc frame-id true)))))) diff --git a/frontend/src/app/main/ui/workspace/viewport/thumbnail_renderer.cljs b/frontend/src/app/main/ui/workspace/viewport/thumbnail_renderer.cljs new file mode 100644 index 000000000..92213c131 --- /dev/null +++ b/frontend/src/app/main/ui/workspace/viewport/thumbnail_renderer.cljs @@ -0,0 +1,130 @@ +;; 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) UXBOX Labs SL + +(ns app.main.ui.workspace.viewport.thumbnail-renderer + (:require + [app.main.data.workspace.changes :as dwc] + [app.main.data.workspace.persistence :as dwp] + [app.main.store :as st] + [app.util.dom :as dom] + [app.util.object :as obj] + [app.util.timers :as timers] + [beicon.core :as rx] + [rumext.alpha :as mf])) + +(mf/defc frame-thumbnail + "Renders the canvas and image for a frame thumbnail and stores its value into the shape" + [{:keys [shape on-thumbnail-data on-frame-not-found]}] + + (let [thumbnail-img (mf/use-ref nil) + thumbnail-canvas (mf/use-ref nil) + + on-dom-rendered + (mf/use-callback + (mf/deps (:id shape)) + (fn [node] + (when node + (let [img-node (mf/ref-val thumbnail-img)] + (timers/schedule-on-idle + #(if-let [frame-node (dom/get-element (str "shape-" (:id shape)))] + (let [xml (-> (js/XMLSerializer.) + (.serializeToString frame-node) + js/encodeURIComponent + js/unescape + js/btoa) + img-src (str "data:image/svg+xml;base64," xml)] + (obj/set! img-node "src" img-src)) + + (on-frame-not-found (:id shape)))))))) + + on-image-load + (mf/use-callback + (mf/deps on-thumbnail-data) + (fn [] + (let [canvas-node (mf/ref-val thumbnail-canvas) + img-node (mf/ref-val thumbnail-img) + canvas-context (.getContext canvas-node "2d") + _ (.drawImage canvas-context img-node 0 0) + data (.toDataURL canvas-node "image/jpeg" 0.8)] + (on-thumbnail-data data))))] + + [:div.frame-renderer {:ref on-dom-rendered + :style {:display "none"}} + [:img.thumbnail-img + {:ref thumbnail-img + :width (:width shape) + :height (:height shape) + :on-load on-image-load}] + + [:canvas.thumbnail-canvas + {:ref thumbnail-canvas + :width (:width shape) + :height (:height shape)}]])) + +(mf/defc frame-renderer + "Component in charge of creating thumbnails and storing them" + {::mf/wrap-props false} + [props] + (let [objects (obj/get props "objects") + + ;; Id of the current frame being rendered + shape-id (mf/use-state nil) + + ;; This subject will emit a value every time there is a free "slot" to render + ;; a thumbnail + next (mf/use-memo #(rx/behavior-subject :next)) + + render-frame + (mf/use-callback + (fn [frame-id] + (reset! shape-id frame-id))) + + updates-stream + (mf/use-memo + (fn [] + (let [update-events + (->> st/stream + (rx/filter dwp/update-frame-thumbnail?))] + (->> (rx/zip update-events next) + (rx/map first))))) + + on-thumbnail-data + (mf/use-callback + (mf/deps @shape-id) + (fn [data] + (reset! shape-id nil) + (timers/schedule + (fn [] + (st/emit! (dwc/update-shapes [@shape-id] + #(assoc % :thumbnail data))) + (rx/push! next :next))))) + + on-frame-not-found + (mf/use-callback + (fn [frame-id] + ;; If we couldn't find the frame maybe is still rendering. We push the event again + ;; after a time + (timers/schedule-on-idle #(dwp/update-frame-thumbnail frame-id)) + (rx/push! next :next)))] + + (mf/use-effect + (mf/deps render-frame) + (fn [] + (let [sub (->> updates-stream + (rx/subs #(render-frame (-> (deref %) :frame-id))))] + + #(rx/dispose! sub)))) + + (mf/use-layout-effect + (fn [] + (timers/schedule-on-idle + #(st/emit! (dwp/watch-state-changes))))) + + (when (and (some? @shape-id) (contains? objects @shape-id)) + [:& frame-thumbnail {:key (str "thumbnail-" @shape-id) + :shape (get objects @shape-id) + :on-thumbnail-data on-thumbnail-data + :on-frame-not-found on-frame-not-found}]))) diff --git a/frontend/src/app/worker/thumbnails.cljs b/frontend/src/app/worker/thumbnails.cljs index f8db65343..ddf65c6b1 100644 --- a/frontend/src/app/worker/thumbnails.cljs +++ b/frontend/src/app/worker/thumbnails.cljs @@ -34,7 +34,7 @@ (p/create (fn [resolve reject] (->> (http/send! {:uri uri - :query {:file-id file-id :id page-id} + :query {:file-id file-id :id page-id :strip-thumbnails true} :method :get}) (rx/map http/conditional-decode-transit) (rx/mapcat handle-response) @@ -50,7 +50,7 @@ (let [prev (get @cache ckey)] (if (= (:data prev) data) (:result prev) - (let [elem (mf/element exports/page-svg #js {:data data :width "290" :height "150"}) + (let [elem (mf/element exports/page-svg #js {:data data :width "290" :height "150" :thumbnails? true}) result (rds/renderToStaticMarkup elem)] (swap! cache assoc ckey {:data data :result result}) result)))) From c858707c39bc1b31cf1fe83a61d1adad58812e21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Tue, 11 May 2021 13:44:49 +0200 Subject: [PATCH 053/135] :tada: Group color assets --- common/app/common/pages/spec.cljc | 3 +- .../styles/main/partials/sidebar-assets.scss | 4 - .../app/main/data/workspace/libraries.cljs | 12 +- .../app/main/ui/workspace/sidebar/assets.cljs | 104 ++++++++++++++---- 4 files changed, 89 insertions(+), 34 deletions(-) diff --git a/common/app/common/pages/spec.cljc b/common/app/common/pages/spec.cljc index ffea43331..74e2dd383 100644 --- a/common/app/common/pages/spec.cljc +++ b/common/app/common/pages/spec.cljc @@ -90,6 +90,7 @@ ;;; COLORS (s/def :internal.color/name ::string) +(s/def :internal.color/path (s/nilable ::string)) (s/def :internal.color/value (s/nilable ::string)) (s/def :internal.color/color (s/nilable ::string)) (s/def :internal.color/opacity (s/nilable ::safe-number)) @@ -98,13 +99,13 @@ (s/def ::color (s/keys :opt-un [::id :internal.color/name + :internal.color/path :internal.color/value :internal.color/color :internal.color/opacity :internal.color/gradient])) - ;;; SHADOW EFFECT (s/def :internal.shadow/id uuid?) diff --git a/frontend/resources/styles/main/partials/sidebar-assets.scss b/frontend/resources/styles/main/partials/sidebar-assets.scss index bcae65e66..48a96138f 100644 --- a/frontend/resources/styles/main/partials/sidebar-assets.scss +++ b/frontend/resources/styles/main/partials/sidebar-assets.scss @@ -371,10 +371,6 @@ // overflow-y: scroll; // } - .asset-list { - margin-top: $medium; - } - .asset-list-item { display: flex; align-items: center; diff --git a/frontend/src/app/main/data/workspace/libraries.cljs b/frontend/src/app/main/data/workspace/libraries.cljs index 67baf4330..f8d8c4726 100644 --- a/frontend/src/app/main/data/workspace/libraries.cljs +++ b/frontend/src/app/main/data/workspace/libraries.cljs @@ -93,7 +93,7 @@ :id id}] (rx/of #(assoc-in % [:workspace-local :color-for-rename] id) (dch/commit-changes {:redo-changes [rchg] - :undo-chages [uchg] + :undo-changes [uchg] :origin it}))))))) (defn add-recent-color [color] @@ -104,7 +104,7 @@ (let [rchg {:type :add-recent-color :color color}] (rx/of (dch/commit-changes {:redo-changes [rchg] - :undo-chages [] + :undo-changes [] :origin it})))))) (def clear-color-for-rename @@ -120,13 +120,15 @@ (ptk/reify ::update-color ptk/WatchEvent (watch [it state stream] - (let [prev (get-in state [:workspace-data :colors id]) + (let [[path name] (cp/parse-path-name (:name color)) + color (assoc color :path path :name name) + prev (get-in state [:workspace-data :colors id]) rchg {:type :mod-color :color color} uchg {:type :mod-color :color prev}] (rx/of (dch/commit-changes {:redo-changes [rchg] - :undo-chages [uchg] + :undo-changes [uchg] :origin it}) (sync-file (:current-file-id state) file-id)))))) @@ -142,7 +144,7 @@ uchg {:type :add-color :color prev}] (rx/of (dch/commit-changes {:redo-changes [rchg] - :undo-chages [uchg] + :undo-changes [uchg] :origin it})))))) (defn add-media diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs index fe111fa94..885025b1d 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs @@ -499,7 +499,8 @@ (mf/defc color-item [{:keys [color local? file-id selected-colors multi-colors? multi-assets? - on-asset-click on-assets-delete on-clear-selection colors locale] :as props}] + on-asset-click on-assets-delete on-clear-selection on-group + colors locale] :as props}] (let [rename? (= (:color-for-rename @refs/workspace-local) (:id color)) id (:id color) input-ref (mf/use-ref) @@ -623,17 +624,24 @@ [(t locale "workspace.assets.rename") rename-color-clicked]) (when-not (or multi-colors? multi-assets?) [(t locale "workspace.assets.edit") edit-color-clicked]) - [(t locale "workspace.assets.delete") delete-color]]}])])) + [(t locale "workspace.assets.delete") delete-color] + (when-not multi-assets? + [(tr "workspace.assets.group") on-group])]}])])) (mf/defc colors-box [{:keys [file-id local? colors locale open? selected-assets on-asset-click on-assets-delete on-clear-selection] :as props}] - (let [selected-colors (:colors selected-assets) + (let [state (mf/use-state {:folded-groups empty-folded-groups}) + + selected-colors (:colors selected-assets) multi-colors? (> (count selected-colors) 1) multi-assets? (or (not (empty? (:components selected-assets))) (not (empty? (:graphics selected-assets))) (not (empty? (:typographies selected-assets)))) + groups (group-assets colors) + folded-groups (:folded-groups @state) + add-color (mf/use-callback (mf/deps file-id) @@ -651,7 +659,39 @@ :on-accept add-color :data {:color "#406280" :opacity 1} - :position :right})))] + :position :right}))) + + create-group + (mf/use-callback + (mf/deps colors selected-colors on-clear-selection file-id) + (fn [name] + (on-clear-selection) + (st/emit! (dwu/start-undo-transaction)) + (apply st/emit! + (->> colors + (filter #(contains? selected-colors (:id %))) + (map #(dwl/update-color + (assoc % :name + (str name " / " + (cp/merge-path-item (:path %) (:name %)))) + file-id)))) + (st/emit! (dwu/commit-undo-transaction)))) + + on-fold-group + (mf/use-callback + (mf/deps groups folded-groups) + (fn [path] + (fn [event] + (dom/stop-propagation event) + (swap! state update :folded-groups + toggle-folded-group path)))) + + on-group + (mf/use-callback + (mf/deps colors selected-colors) + (fn [event] + (dom/stop-propagation event) + (modal/show! :create-group-dialog {:create create-group})))] [:div.asset-section [:div.asset-title {:class (when (not open?) "closed")} @@ -661,24 +701,41 @@ (when local? [:div.assets-button {:on-click add-color-clicked} i/plus])] (when open? - [:div.asset-list - (for [color colors] - (let [color (cond-> color - (:value color) (assoc :color (:value color) :opacity 1) - (:value color) (dissoc :value) - true (assoc :file-id file-id))] - [:& color-item {:key (:id color) - :color color - :file-id file-id - :local? local? - :selected-colors selected-colors - :multi-colors? multi-colors? - :multi-assets? multi-assets? - :on-asset-click on-asset-click - :on-assets-delete on-assets-delete - :on-clear-selection on-clear-selection - :colors colors - :locale locale}]))])])) + (for [group groups] + (let [path (first group) + colors (second group) + group-open? (not (contains? folded-groups path))] + [:* + (when-not (empty? path) + (let [[other-path last-path truncated] (cp/compact-path path 35)] + [:div.group-title {:class (when-not group-open? "closed") + :on-click (on-fold-group path)} + [:span i/arrow-slide] + (when-not (empty? other-path) + [:span.dim {:title (when truncated path)} + other-path "\u00A0/\u00A0"]) + [:span {:title (when truncated path)} + last-path]])) + (when group-open? + [:div.asset-list + (for [color colors] + (let [color (cond-> color + (:value color) (assoc :color (:value color) :opacity 1) + (:value color) (dissoc :value) + true (assoc :file-id file-id))] + [:& color-item {:key (:id color) + :color color + :file-id file-id + :local? local? + :selected-colors selected-colors + :multi-colors? multi-colors? + :multi-assets? multi-assets? + :on-asset-click on-asset-click + :on-assets-delete on-assets-delete + :on-clear-selection on-clear-selection + :on-group on-group + :colors colors + :locale locale}]))])])))])) ;; ---- Typography box ---- @@ -817,7 +874,6 @@ (vals (get-in state [:workspace-libraries id :data :colors]))))) st/state =)) - (defn file-media-ref [id] (l/derived (fn [state] @@ -860,7 +916,7 @@ (sort-by #(str/lower (:name %)) comp-fn)))) (mf/defc file-library - [{:keys [file local? default-open? filters locale] :as props}] + [{:keys [file local? default-open? filters locale] :as props}] (let [open-file (mf/deref (open-file-ref (:id file))) open? (-> open-file :library From ddbaee228a0bb8cc57a77708bc79cf40a3de06cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Tue, 11 May 2021 16:22:42 +0200 Subject: [PATCH 054/135] :tada: Group typographies --- common/app/common/pages/spec.cljc | 4 +- .../app/main/data/workspace/libraries.cljs | 4 +- .../app/main/ui/workspace/sidebar/assets.cljs | 92 +++++++++++++++---- .../sidebar/options/menus/typography.cljs | 12 ++- 4 files changed, 89 insertions(+), 23 deletions(-) diff --git a/common/app/common/pages/spec.cljc b/common/app/common/pages/spec.cljc index 74e2dd383..24c523fd0 100644 --- a/common/app/common/pages/spec.cljc +++ b/common/app/common/pages/spec.cljc @@ -381,6 +381,7 @@ (s/def :internal.typography/id ::id) (s/def :internal.typography/name ::string) +(s/def :internal.typography/path (s/nilable ::string)) (s/def :internal.typography/font-id ::string) (s/def :internal.typography/font-family ::string) (s/def :internal.typography/font-variant-id ::string) @@ -402,7 +403,8 @@ :internal.typography/font-style :internal.typography/line-height :internal.typography/letter-spacing - :internal.typography/text-transform])) + :internal.typography/text-transform] + :opt-un [:internal.typography/path])) (s/def :internal.file/pages (s/coll-of ::uuid :kind vector?)) diff --git a/frontend/src/app/main/data/workspace/libraries.cljs b/frontend/src/app/main/data/workspace/libraries.cljs index f8d8c4726..5e076b766 100644 --- a/frontend/src/app/main/data/workspace/libraries.cljs +++ b/frontend/src/app/main/data/workspace/libraries.cljs @@ -227,7 +227,9 @@ (ptk/reify ::update-typography ptk/WatchEvent (watch [it state stream] - (let [prev (get-in state [:workspace-data :typographies (:id typography)]) + (let [[path name] (cp/parse-path-name (:name typography)) + typography (assoc typography :path path :name name) + prev (get-in state [:workspace-data :typographies (:id typography)]) rchg {:type :mod-typography :typography typography} uchg {:type :mod-typography diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs index 885025b1d..de210b422 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs @@ -747,15 +747,19 @@ :menu-open? false :top nil :left nil - :id nil}) + :id nil + :folded-groups empty-folded-groups}) local (deref refs/workspace-local) + groups (group-assets typographies) + folded-groups (:folded-groups @state) + selected-typographies (:typographies selected-assets) multi-typographies? (> (count selected-typographies) 1) - multi-assets? (or (not (empty? (:graphics selected-assets))) - (not (empty? (:colors selected-assets))) - (not (empty? (:typographies selected-assets)))) + multi-assets? (or (not (empty? (:components selected-assets))) + (not (empty? (:graphics selected-assets))) + (not (empty? (:colors selected-assets)))) add-typography (mf/use-callback @@ -779,6 +783,38 @@ (run! #(st/emit! (dwt/update-text-attrs {:id % :editor (get-in local [:editors %]) :attrs attrs})) ids))) + create-group + (mf/use-callback + (mf/deps typographies selected-typographies on-clear-selection file-id) + (fn [name] + (on-clear-selection) + (st/emit! (dwu/start-undo-transaction)) + (apply st/emit! + (->> typographies + (filter #(contains? selected-typographies (:id %))) + (map #(dwl/update-typography + (assoc % :name + (str name " / " + (cp/merge-path-item (:path %) (:name %)))) + file-id)))) + (st/emit! (dwu/commit-undo-transaction)))) + + on-fold-group + (mf/use-callback + (mf/deps groups folded-groups) + (fn [path] + (fn [event] + (dom/stop-propagation event) + (swap! state update :folded-groups + toggle-folded-group path)))) + + on-group + (mf/use-callback + (mf/deps typographies selected-typographies) + (fn [event] + (dom/stop-propagation event) + (modal/show! :create-group-dialog {:create create-group}))) + on-context-menu (mf/use-callback (mf/deps selected-typographies on-clear-selection) @@ -845,22 +881,40 @@ [(t locale "workspace.assets.rename") handle-rename-typography-clicked]) (when-not (or multi-typographies? multi-assets?) [(t locale "workspace.assets.edit") handle-edit-typography-clicked]) - [(t locale "workspace.assets.delete") handle-delete-typography]]}] + [(t locale "workspace.assets.delete") handle-delete-typography] + (when-not multi-assets? + [(tr "workspace.assets.group") on-group])]}] (when open? - [:div.asset-list - (for [typography typographies] - [:& typography-entry - {:key (:id typography) - :typography typography - :file file - :read-only? (not local?) - :on-context-menu #(on-context-menu (:id typography) %) - :on-change #(handle-change typography %) - :selected? (contains? selected-typographies (:id typography)) - :on-click #(on-asset-click % (:id typography) {"" typographies} - (partial apply-typography typography)) - :editting? (= editting-id (:id typography)) - :focus-name? (= (:rename-typography local) (:id typography))}])])])) + (for [group groups] + (let [path (first group) + typographies (second group) + group-open? (not (contains? folded-groups path))] + [:* + (when-not (empty? path) + (let [[other-path last-path truncated] (cp/compact-path path 35)] + [:div.group-title {:class (when-not group-open? "closed") + :on-click (on-fold-group path)} + [:span i/arrow-slide] + (when-not (empty? other-path) + [:span.dim {:title (when truncated path)} + other-path "\u00A0/\u00A0"]) + [:span {:title (when truncated path)} + last-path]])) + (when group-open? + [:div.asset-list + (for [typography typographies] + [:& typography-entry + {:key (:id typography) + :typography typography + :file file + :read-only? (not local?) + :on-context-menu #(on-context-menu (:id typography) %) + :on-change #(handle-change typography %) + :selected? (contains? selected-typographies (:id typography)) + :on-click #(on-asset-click % (:id typography) {"" typographies} + (partial apply-typography typography)) + :editting? (= editting-id (:id typography)) + :focus-name? (= (:rename-typography local) (:id typography))}])])])))])) ;; --- Assets toolbox ---- diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs index 14e715e87..a34d102fe 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs @@ -7,6 +7,7 @@ (ns app.main.ui.workspace.sidebar.options.menus.typography (:require [app.common.data :as d] + [app.common.pages :as cp] [app.common.text :as txt] [app.main.data.workspace.texts :as dwt] [app.main.fonts :as fonts] @@ -212,11 +213,17 @@ open? (mf/use-state editting?) hover-detach (mf/use-state false) name-input-ref (mf/use-ref nil) + value (mf/use-state (cp/merge-path-item (:path typography) (:name typography))) #_(rt/resolve router :workspace {:project-id (:project-id file) :file-id (:id file)} {:page-id (get-in file [:data :pages 0])}) + + handle-change + (fn [event] + (reset! value (dom/get-target-val event))) + handle-go-to-edit (fn [] (st/emit! (rt/nav :workspace {:project-id (:project-id file) :file-id (:id file)} @@ -303,7 +310,8 @@ [:input.element-name.adv-typography-name {:type "text" :ref name-input-ref - :value (:name typography) - :on-change #(on-change {:name (dom/get-target-val %)})}]]] + :value @value + :on-change handle-change + :on-blur #(on-change {:name @value})}]]] [:& typography-options {:values typography :on-change on-change}]])]])) From 5c0bc1cf8438174240eecc5564b87c1c1e2f114e Mon Sep 17 00:00:00 2001 From: elhombretecla Date: Wed, 12 May 2021 13:25:55 +0200 Subject: [PATCH 055/135] :lipstick: Add new color assets styles and titles --- frontend/resources/styles/main/partials/sidebar-assets.scss | 3 +++ 1 file changed, 3 insertions(+) diff --git a/frontend/resources/styles/main/partials/sidebar-assets.scss b/frontend/resources/styles/main/partials/sidebar-assets.scss index 48a96138f..4389cf8b6 100644 --- a/frontend/resources/styles/main/partials/sidebar-assets.scss +++ b/frontend/resources/styles/main/partials/sidebar-assets.scss @@ -164,6 +164,8 @@ .asset-title { display: flex; cursor: pointer; + font-size: $fs11; + text-transform: uppercase; & .num-assets { color: $color-gray-30; @@ -375,6 +377,7 @@ display: flex; align-items: center; border: 1px solid transparent; + border-radius: $br-small; margin-top: $x-small; padding: 2px; font-size: $fs12; From b84222e17197bf0b5fc779b5ba115ee554921ac5 Mon Sep 17 00:00:00 2001 From: "Jan C. Borchardt" Date: Thu, 6 May 2021 06:21:10 +0000 Subject: [PATCH 056/135] :globe_with_meridians: Add translations for: English. Currently translated at 100.0% (656 of 656 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/en/ --- frontend/translations/en.po | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/frontend/translations/en.po b/frontend/translations/en.po index a683b5504..6ec5ec1ee 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2021-04-14 13:44+0000\n" -"Last-Translator: Andrey Antukh \n" -"Language-Team: Spanish " -"\n" -"Language: es\n" +"PO-Revision-Date: 2021-05-07 08:30+0000\n" +"Last-Translator: Jan C. Borchardt \n" +"Language-Team: English \n" +"Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.6-dev\n" +"X-Generator: Weblate 4.7-dev\n" #: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" @@ -396,7 +396,7 @@ msgstr "Your file has been moved successfully" #: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" -msgstr "Your files has been moved successfully" +msgstr "Your files have been moved successfully" #: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" @@ -1564,7 +1564,7 @@ msgstr "Search assets" #: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" -msgstr[0] "%s items selected" +msgstr[0] "%s item selected" msgstr[1] "%s items selected" #: src/app/main/ui/workspace/sidebar/assets.cljs From d6e7dfc64889720fe06ae40718bf933bdb1d3ea6 Mon Sep 17 00:00:00 2001 From: Eranot Date: Fri, 7 May 2021 08:30:14 +0000 Subject: [PATCH 057/135] :globe_with_meridians: Add translations for: Portuguese (Brazil). Currently translated at 3.3% (22 of 656 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/pt_BR/ --- frontend/translations/pt_BR.po | 47 +++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/frontend/translations/pt_BR.po b/frontend/translations/pt_BR.po index 4f8f6e6de..f9a8be54a 100644 --- a/frontend/translations/pt_BR.po +++ b/frontend/translations/pt_BR.po @@ -1,2 +1,47 @@ msgid "" -msgstr "X-Generator: Weblate\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit" \ No newline at end of file +msgstr "" +"PO-Revision-Date: 2021-05-07 08:30+0000\n" +"Last-Translator: Eranot \n" +"Language-Team: Portuguese (Brazil) \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.7-dev\n" + +#, markdown +msgid "dashboard.fonts.hero-text2" +msgstr "" +"Você deve carregar apenas fontes que possui ou tem licença para usar na " +"Penpot. Descubra mais na seção de Direitos de conteúdo nos [Termos de " +"Serviço da Penpot](https://penpot.app/terms.html). Você pode também querer " +"ler sobre [licenciamento de fontes](2)." + +msgid "labels.upload-custom-fonts" +msgstr "Carregar fontes personalizadas" + +msgid "labels.font-providers" +msgstr "Provedores de fonte" + +msgid "labels.search-font" +msgstr "Buscar fonte" + +msgid "labels.custom-fonts" +msgstr "Fontes personalizadas" + +msgid "labels.font-variant" +msgstr "Estilo" + +msgid "labels.font-family" +msgstr "Família da fonte" + +msgid "labels.installed-fonts" +msgstr "Fontes instaladas" + +msgid "labels.uploading" +msgstr "Carregando..." + +msgid "labels.upload" +msgstr "Carregar" From 5614aceaa80a2a783347c9c9677379e8153f7d1a Mon Sep 17 00:00:00 2001 From: Guilherme Dimas Date: Fri, 7 May 2021 00:32:38 +0000 Subject: [PATCH 058/135] :globe_with_meridians: Add translations for: Portuguese (Brazil). Currently translated at 3.3% (22 of 656 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/pt_BR/ --- frontend/translations/pt_BR.po | 51 +++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/frontend/translations/pt_BR.po b/frontend/translations/pt_BR.po index f9a8be54a..04e74c71f 100644 --- a/frontend/translations/pt_BR.po +++ b/frontend/translations/pt_BR.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "PO-Revision-Date: 2021-05-07 08:30+0000\n" -"Last-Translator: Eranot \n" +"Last-Translator: Guilherme Dimas \n" "Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\n" @@ -45,3 +45,52 @@ msgstr "Carregando..." msgid "labels.upload" msgstr "Carregar" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.go-back-to-login" +msgstr "Voltar!" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.fullname" +msgstr "Nome completo" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.forgot-password" +msgstr "Esqueceu a senha?" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.email" +msgstr "E-mail" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.confirm-password" +msgstr "Confirmar senha" + +msgid "modals.delete-font.message" +msgstr "" +"Tem certeza que deseja excluir essa fonte? Ela não será carregada se for " +"utilizada em um arquivo." + +msgid "labels.fonts" +msgstr "Fontes" + +#: src/app/main/ui/dashboard/fonts.cljs +msgid "title.dashboard.font-providers" +msgstr "Provedores de fonte - %s - Penpot" + +#: src/app/main/ui/dashboard/fonts.cljs +msgid "title.dashboard.fonts" +msgstr "Fontes - %s - Penpot" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.check-your-email" +msgstr "" +"Verifique seu e-mail e clique no link de verificação para começar a usar o " +"Penpot." + +#: src/app/main/ui/auth/register.cljs +msgid "auth.already-have-account" +msgstr "Já tem uma conta?" + +msgid "modals.delete-font.title" +msgstr "Excluindo fonte" From c449492a33d7a5d9f6b0c211a5ddc9ae34eb6fef Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 7 May 2021 22:41:16 +0200 Subject: [PATCH 059/135] =?UTF-8?q?:globe=5Fwith=5Fmeridians:=20=20Added?= =?UTF-8?q?=20translation=20for:=20Norwegian=20Bokm=C3=A5l.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/translations/nb_NO.po | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 frontend/translations/nb_NO.po diff --git a/frontend/translations/nb_NO.po b/frontend/translations/nb_NO.po new file mode 100644 index 000000000..4f8f6e6de --- /dev/null +++ b/frontend/translations/nb_NO.po @@ -0,0 +1,2 @@ +msgid "" +msgstr "X-Generator: Weblate\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit" \ No newline at end of file From ec2f88ebc0ee1dbbeac99a467b4528af249c9892 Mon Sep 17 00:00:00 2001 From: Eranot Date: Fri, 7 May 2021 23:38:01 +0000 Subject: [PATCH 060/135] :globe_with_meridians: Add translations for: Portuguese (Brazil). Currently translated at 5.7% (38 of 656 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/pt_BR/ --- frontend/translations/pt_BR.po | 71 +++++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 2 deletions(-) diff --git a/frontend/translations/pt_BR.po b/frontend/translations/pt_BR.po index 04e74c71f..dec6eb66d 100644 --- a/frontend/translations/pt_BR.po +++ b/frontend/translations/pt_BR.po @@ -1,7 +1,7 @@ msgid "" msgstr "" -"PO-Revision-Date: 2021-05-07 08:30+0000\n" -"Last-Translator: Guilherme Dimas \n" +"PO-Revision-Date: 2021-05-09 00:37+0000\n" +"Last-Translator: Eranot \n" "Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\n" @@ -94,3 +94,70 @@ msgstr "Já tem uma conta?" msgid "modals.delete-font.title" msgstr "Excluindo fonte" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.notifications.recovery-token-sent" +msgstr "Link de recuperação de senha foi enviado para sua caixa de entrada." + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.notifications.profile-not-verified" +msgstr "" +"Perfil não verificado. Por favor, verifique o perfil antes de continuar." + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.notifications.password-changed-succesfully" +msgstr "Senha alterada com sucesso" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.notifications.invalid-token-error" +msgstr "O token de recuperação é inválido." + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.new-password" +msgstr "Digite uma nova senha" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-oidc-submit" +msgstr "Entrar com OpenID (SSO)" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-ldap-submit" +msgstr "Entrar com LDAP" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-google-submit" +msgstr "Entrar com o Google" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-gitlab-submit" +msgstr "Entrar com o Gitlab" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-github-submit" +msgstr "Entrar com o Github" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-title" +msgstr "Bom te ver de novo!" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-subtitle" +msgstr "Insira seus dados abaixo" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-submit" +msgstr "Entrar" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.demo-warning" +msgstr "" +"Este é um serviço DEMONSTRATIVO, NÃO USE para trabalho real, os projetos " +"serão apagados periodicamente." + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.create-demo-profile" +msgstr "Só quer experimentar?" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.create-demo-account" +msgstr "Criar conta de demonstração" From a12f369bda1dc644cc9f4e5c4758bad24f21bdb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 7 May 2021 23:31:48 +0000 Subject: [PATCH 061/135] =?UTF-8?q?:globe=5Fwith=5Fmeridians:=20Add=20tran?= =?UTF-8?q?slations=20for:=20Norwegian=20Bokm=C3=A5l.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 26.5% (174 of 656 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/nb_NO/ --- frontend/translations/nb_NO.po | 796 ++++++++++++++++++++++++++++++++- 1 file changed, 795 insertions(+), 1 deletion(-) diff --git a/frontend/translations/nb_NO.po b/frontend/translations/nb_NO.po index 4f8f6e6de..da98ce65f 100644 --- a/frontend/translations/nb_NO.po +++ b/frontend/translations/nb_NO.po @@ -1,2 +1,796 @@ msgid "" -msgstr "X-Generator: Weblate\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit" \ No newline at end of file +msgstr "" +"PO-Revision-Date: 2021-05-09 00:37+0000\n" +"Last-Translator: Allan Nordhøy \n" +"Language-Team: Norwegian Bokmål \n" +"Language: nb_NO\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.7-dev\n" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +msgid "workspace.options.radius.all-corners" +msgstr "Alle hjørner" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.screen" +msgstr "Skjerm" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.lighten" +msgstr "Lysne" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.row" +msgstr "Rader" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.width" +msgstr "Bredde" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.use-default" +msgstr "Bruk forvalg" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.type" +msgstr "Type" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.size" +msgstr "Størrelse" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.set-default" +msgstr "Sett som forvalg" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.rows" +msgstr "Rader" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.columns" +msgstr "Kolonner" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.height" +msgstr "Høyde" + +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs +msgid "workspace.options.exporting-object" +msgstr "Eksporterer …" + +#: src/app/main/ui/workspace/sidebar/options.cljs +msgid "workspace.options.design" +msgstr "Design" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs +msgid "workspace.options.component" +msgstr "Komponent" + +msgid "workspace.options.blur-options.layer-blur" +msgstr "Lag" + +msgid "workspace.options.blur-options.background-blur" +msgstr "Bakgrunn" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.file-library" +msgstr "Filbibliotek" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.components" +msgstr "%s komponenter" + +#: src/app/main/ui/workspace/colorpalette.cljs +msgid "workspace.libraries.colors.small-thumbnails" +msgstr "Små miniatyrbilder" + +#: src/app/main/ui/workspace/colorpicker.cljs +msgid "workspace.libraries.colors.save-color" +msgstr "Lagre fargestil" + +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs +msgid "workspace.libraries.colors.recent-colors" +msgstr "Nylige farger" + +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs +msgid "workspace.libraries.colors.file-library" +msgstr "Filbibliotek" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.colors" +msgstr "%s farger" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.add" +msgstr "Legg til" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-rules" +msgstr "Vis regler" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-layers" +msgstr "Vis lag" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-grid" +msgstr "Vis rutenett" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.enable-snap-grid" +msgstr "Fest til rutenett" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.assets.typography.font-variant-id" +msgstr "Variant" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.assets.typography.font-size" +msgstr "Størrelse" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.assets.typography.font-id" +msgstr "Skrift" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.rename" +msgstr "Gi nytt navn" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.libraries" +msgstr "Bibliotek" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.group-name" +msgstr "Gruppenavn" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.group" +msgstr "Gruppe" + +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.graphics" +msgstr "Grafikk" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.file-library" +msgstr "Filbibliotek" + +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.edit" +msgstr "Rediger" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.delete" +msgstr "Slett" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.create-group" +msgstr "Opprett en gruppe" + +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.components" +msgstr "Komponenter" + +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.colors" +msgstr "Farger" + +msgid "workspace.assets.box-filter-graphics" +msgstr "Grafikk" + +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.share.remove-link" +msgstr "Fjern lenke" + +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.share.create-link" +msgstr "Opprett lenke" + +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.edit-page" +msgstr "Rediger side" + +#: src/app/main/ui/workspace.cljs +#, fuzzy +msgid "title.workspace" +msgstr "%s - Penpot" + +#: src/app/main/ui/dashboard/team.cljs +#, fuzzy +msgid "title.team-settings" +msgstr "Innstillinger - %s - Penpot" + +#: src/app/main/ui/settings/profile.cljs +#, fuzzy +msgid "title.settings.profile" +msgstr "Profil - Penpot" + +#: src/app/main/ui/settings/password.cljs +#, fuzzy +msgid "title.settings.password" +msgstr "Passord - Penpot" + +#: src/app/main/ui/settings/options.cljs +#, fuzzy +msgid "title.settings.options" +msgstr "Innstillinger - Penpot" + +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#, fuzzy +msgid "notifications.profile-saved" +msgstr "Profil lagret" + +#: src/app/main/ui/dashboard/team.cljs +#, fuzzy +msgid "notifications.invitation-email-sent" +msgstr "Invitasjon sendt" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "modals.update-remote-component.cancel" +msgstr "Avbryt" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-confirm.accept" +msgstr "Forlat lag" + +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.delete-team-member-confirm.accept" +msgstr "Slett medlem" + +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.delete-team-member-confirm.title" +msgstr "Slett lagmedlem" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "modals.delete-project-confirm.accept" +msgstr "Slett prosjekt" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs +msgid "modals.delete-page.title" +msgstr "Slett side" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.delete-file-multi-confirm.accept" +msgstr "Slett filer" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.delete-file-confirm.accept" +msgstr "Slett fil" + +#: src/app/main/ui/comments.cljs +msgid "modals.delete-comment-thread.title" +msgstr "Slett samtale" + +#: src/app/main/ui/comments.cljs +msgid "modals.delete-comment-thread.accept" +msgstr "Slett samtale" + +#: src/app/main/ui/settings/delete_account.cljs +msgid "modals.delete-account.confirm" +msgstr "Ja, slett kontoen min" + +#: src/app/main/ui/settings/change_email.cljs +#, fuzzy +msgid "modals.change-email.confirm-email" +msgstr "Bekreft ny e-postadresse" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, fuzzy +msgid "modals.add-shared-confirm.accept" +msgstr "Legg til som delt bibliotek" + +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +msgid "media.loading" +msgstr "Laster inn bilde …" + +#: src/app/main/ui/comments.cljs +msgid "labels.write-new-comment" +msgstr "Skriv ny kommentar" + +#: src/app/main/ui/static.cljs +msgid "labels.sign-out" +msgstr "Logg ut" + +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +msgid "labels.show-all-comments" +msgstr "Vis alle kommentarer" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.shared-libraries" +msgstr "Delte bibliotek" + +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.settings" +msgstr "Innstillinger" + +#: src/app/main/ui/settings/feedback.cljs +#, fuzzy +msgid "labels.sending" +msgstr "Sender …" + +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.send" +msgstr "Send" + +msgid "labels.save" +msgstr "Lagre" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.role" +msgstr "Rolle" + +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +msgid "labels.retry" +msgstr "Prøv igjen" + +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.rename" +msgstr "Gi nytt navn" + +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.remove" +msgstr "Fjern" + +#, fuzzy +msgid "labels.recent" +msgstr "Nylige" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.projects" +msgstr "Prosjekter" + +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.profile" +msgstr "Profil" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.permissions" +msgstr "Tilganger" + +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.password" +msgstr "Passord" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.owner" +msgstr "Eier" + +#: src/app/main/ui/settings/password.cljs +msgid "labels.old-password" +msgstr "Gammelt passord" + +#: src/app/main/ui/static.cljs +msgid "labels.not-found.auth-info" +msgstr "Du er innlogget som" + +#: src/app/main/ui/settings/password.cljs +msgid "labels.new-password" +msgstr "Nytt passord" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.name" +msgstr "Navn" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.members" +msgstr "Medlemmer" + +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#, fuzzy +msgid "labels.logout" +msgstr "Logg ut" + +#: src/app/main/ui/settings/options.cljs +msgid "labels.language" +msgstr "Språk" + +msgid "labels.images" +msgstr "Bilder" + +msgid "labels.icons" +msgstr "Ikoner" + +#: src/app/main/ui/comments.cljs +msgid "labels.edit" +msgstr "Rediger" + +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.drafts" +msgstr "Kladder" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.delete-multi-files" +msgstr "Slett %s filer" + +#: src/app/main/ui/comments.cljs +msgid "labels.delete-comment-thread" +msgstr "Slett tråd" + +#: src/app/main/ui/comments.cljs +msgid "labels.delete-comment" +msgstr "Slett kommentar" + +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.delete" +msgstr "Slett" + +#: src/app/main/ui/settings/sidebar.cljs +msgid "labels.dashboard" +msgstr "Oversikt" + +#: src/app/main/ui/dashboard/team_form.cljs +msgid "labels.create-team.placeholder" +msgstr "Skriv inn nytt lagnavn" + +#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs +msgid "labels.create-team" +msgstr "Opprett nytt lag" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "labels.create" +msgstr "Opprett" + +msgid "labels.content" +msgstr "Innhold" + +#: src/app/main/ui/settings/password.cljs +msgid "labels.confirm-password" +msgstr "Bekreft passord" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.cancel" +msgstr "Avbryt" + +msgid "labels.accept" +msgstr "Godta" + +#: src/app/main/ui/handoff/right_sidebar.cljs +msgid "handoff.tabs.info" +msgstr "Info" + +msgid "handoff.tabs.code.selected.text" +msgstr "Tekst" + +msgid "handoff.tabs.code.selected.svg-raw" +msgstr "SVG" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography.font-family" +msgstr "Skriftfamilie" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography" +msgstr "Typografi" + +#: src/app/main/ui/handoff/attributes/blur.cljs +msgid "handoff.attributes.blur.value" +msgstr "Verdi" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.discussions-title" +msgstr "Lagdiskusjoner" + +#, fuzzy +msgid "errors.media-format-unsupported" +msgstr "Bildeformatet støttes ikke (må være SVG, JPG, eller PNG)." + +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +msgid "ds.confirm-title" +msgstr "Er du sikker?" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, fuzzy +msgid "dashboard.remove-shared" +msgstr "Fjern som delt bibliotek" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.promote-to-owner" +msgstr "Promoter til eier" + +#: src/app/main/ui/dashboard/projects.cljs +msgid "dashboard.new-project" +msgstr "+ Nytt prosjekt" + +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs +#, fuzzy +msgid "dashboard.new-file" +msgstr "+ Ny fil" + +#: src/app/main/ui/dashboard/file_menu.cljs +#, fuzzy +msgid "dashboard.move-to-other-team" +msgstr "Flytt til annet lag" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.add-shared" +msgstr "Legg til som delt bibliotek" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.register" +msgstr "Ingen konto enda?" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-submit" +msgstr "Gjenopprett passord" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.notifications.invalid-token-error" +msgstr "Gjenopprettelsessymbolet er ugyldig." + +msgid "handoff.tabs.code.selected.path" +msgstr "Sti" + +msgid "handoff.tabs.code.selected.image" +msgstr "Bilde" + +msgid "handoff.tabs.code.selected.group" +msgstr "Gruppe" + +msgid "handoff.tabs.code.selected.circle" +msgstr "Sirkel" + +#: src/app/main/ui/handoff/right_sidebar.cljs +msgid "handoff.tabs.code" +msgstr "Kode" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography.font-style" +msgstr "Skriftstil" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography.font-size" +msgstr "Skriftstørrelse" + +#: src/app/main/ui/handoff/attributes/stroke.cljs +msgid "handoff.attributes.stroke.width" +msgstr "Bredde" + +#: src/app/main/ui/handoff/attributes/shadow.cljs +msgid "handoff.attributes.shadow" +msgstr "Skygge" + +#: src/app/main/ui/handoff/attributes/layout.cljs +msgid "handoff.attributes.layout.width" +msgstr "Bredde" + +#: src/app/main/ui/handoff/attributes/layout.cljs +msgid "handoff.attributes.layout.left" +msgstr "Venstre" + +#: src/app/main/ui/handoff/attributes/layout.cljs +msgid "handoff.attributes.layout.height" +msgstr "Høyde" + +#: src/app/main/ui/handoff/attributes/image.cljs +msgid "handoff.attributes.image.width" +msgstr "Bredde" + +#: src/app/main/ui/handoff/attributes/image.cljs +msgid "handoff.attributes.image.height" +msgstr "Høyde" + +#: src/app/main/ui/handoff/attributes/image.cljs +msgid "handoff.attributes.image.download" +msgstr "Last ned kildebilde" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.subject" +msgstr "Emne" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.discussions-go-to" +msgstr "Gå til diskusjoner" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.description" +msgstr "Beskrivelse" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.chat-start" +msgstr "Ta del i sludringen" + +#: src/app/main/ui/auth/verify_token.cljs +msgid "errors.unexpected-token" +msgstr "Ukjent symbol" + +#: src/app/main/ui/components/color_input.cljs +msgid "errors.invalid-color" +msgstr "Ugyldig farge" + +#: src/app/main/ui/confirm.cljs +#, fuzzy +msgid "ds.confirm-ok" +msgstr "OK" + +#: src/app/main/ui/confirm.cljs +msgid "ds.confirm-cancel" +msgstr "Avbryt" + +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.your-penpot" +msgstr "Din Penpot" + +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.your-name" +msgstr "Ditt navn" + +#: src/app/main/ui/settings.cljs +msgid "dashboard.your-account-title" +msgstr "Din konto" + +#: src/app/main/ui/settings/options.cljs +msgid "dashboard.theme-change" +msgstr "Grensesnittsdrakt" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.team-projects" +msgstr "Lagprosjekter" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.team-members" +msgstr "Lagmedlemmer" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.team-info" +msgstr "Laginfo" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.switch-team" +msgstr "Bytt lag" + +#: src/app/main/ui/dashboard/grid.cljs +msgid "dashboard.show-all-files" +msgstr "Vis alle filer" + +#: src/app/main/ui/settings/options.cljs +msgid "dashboard.select-ui-theme" +msgstr "Velg drakt" + +#: src/app/main/ui/settings/options.cljs +#, fuzzy +msgid "dashboard.select-ui-language" +msgstr "Velg grensesnittsspråk" + +#: src/app/main/ui/dashboard/search.cljs +#, fuzzy +msgid "dashboard.searching-for" +msgstr "Şøker etter «%s» …" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.search-placeholder" +msgstr "Søk …" + +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.remove-account" +msgstr "Ønsker du å fjerne kontoen din?" + +#: src/app/main/ui/dashboard/projects.cljs +msgid "dashboard.projects-title" +msgstr "Prosjekter" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "dashboard.pin-unpin" +msgstr "Fest/løsne" + +#: src/app/main/ui/settings/password.cljs +msgid "dashboard.password-change" +msgstr "Endre passord" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.open-in-new-tab" +msgstr "Åpne fil i ny fane" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.num-of-members" +msgstr "%s medlemmer" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.move-to-multi" +msgstr "Flytt %s filer til" + +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.move-to" +msgstr "Flytt til" + +#: src/app/main/ui/dashboard/libraries.cljs +msgid "dashboard.libraries-title" +msgstr "Delte biblioteker" + +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.leave-team" +msgstr "Forlat lag" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.invite-profile" +msgstr "Inviter til lag" + +msgid "dashboard.draft-title" +msgstr "Kladd" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.delete-team" +msgstr "Slett lag" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.default-team-name" +msgstr "Din Penpot" + +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +msgid "dashboard.copy-suffix" +msgstr "(kopi)" + +#: src/app/main/ui/auth/register.cljs +#, fuzzy +msgid "auth.register-title" +msgstr "Opprett konto" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, fuzzy +msgid "auth.register-submit" +msgstr "Opprett konto" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.recovery-submit" +msgstr "Endre passordet ditt" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.password" +msgstr "Passord" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.new-password" +msgstr "Skriv inn et nytt passord" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.fullname" +msgstr "Fullt navn" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.forgot-password" +msgstr "Glemt passordet?" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs +#, fuzzy +msgid "auth.email" +msgstr "E-post" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.confirm-password" +msgstr "Bekreft passord" + +msgid "labels.upload-custom-fonts" +msgstr "Last opp egendefinerte skrifter" + +msgid "labels.font-providers" +msgstr "Skrifttilbydere" + +#, fuzzy +msgid "labels.search-font" +msgstr "Søk etter skrift" + +msgid "labels.custom-fonts" +msgstr "Egendefinerte skrifter" + +msgid "labels.font-variant" +msgstr "Stil" + +msgid "labels.font-family" +msgstr "Skriftfamilie" + +msgid "labels.installed-fonts" +msgstr "Installerte skrifter" + +msgid "labels.fonts" +msgstr "Skrifter" + +msgid "labels.uploading" +msgstr "Laster opp …" + +msgid "labels.upload" +msgstr "Last opp" From 81e5a8c925e3a168dc639267eea902b356818276 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 10 May 2021 13:04:10 +0200 Subject: [PATCH 062/135] :globe_with_meridians: Added translation for: Danish. --- frontend/translations/da.po | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 frontend/translations/da.po diff --git a/frontend/translations/da.po b/frontend/translations/da.po new file mode 100644 index 000000000..4f8f6e6de --- /dev/null +++ b/frontend/translations/da.po @@ -0,0 +1,2 @@ +msgid "" +msgstr "X-Generator: Weblate\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit" \ No newline at end of file From a11cec9fdcf60d9c571a5cf19f48e6726b6dfcc0 Mon Sep 17 00:00:00 2001 From: Eranot Date: Wed, 12 May 2021 01:06:14 +0000 Subject: [PATCH 063/135] :globe_with_meridians: Add translations for: Portuguese (Brazil). Currently translated at 34.6% (227 of 656 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/pt_BR/ --- frontend/translations/pt_BR.po | 743 ++++++++++++++++++++++++++++++++- 1 file changed, 742 insertions(+), 1 deletion(-) diff --git a/frontend/translations/pt_BR.po b/frontend/translations/pt_BR.po index dec6eb66d..4c62a9e83 100644 --- a/frontend/translations/pt_BR.po +++ b/frontend/translations/pt_BR.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"PO-Revision-Date: 2021-05-09 00:37+0000\n" +"PO-Revision-Date: 2021-05-13 01:35+0000\n" "Last-Translator: Eranot \n" "Language-Team: Portuguese (Brazil) \n" @@ -161,3 +161,744 @@ msgstr "Só quer experimentar?" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Criar conta de demonstração" + +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.promote-owner-confirm.title" +msgstr "Promover a proprietário" + +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.promote-owner-confirm.message" +msgstr "Tem certeza de que deseja promover este usuário a proprietário?" + +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.promote-owner-confirm.accept" +msgstr "Promover" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-confirm.title" +msgstr "Saindo da equipe" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-confirm.message" +msgstr "Tem certeza de que deseja sair deste equipe?" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-confirm.accept" +msgstr "Sair da equipe" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-and-reassign.title" +msgstr "Selecione um membro para promover" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-and-reassign.select-memeber-to-promote" +msgstr "Selecione um membro para promover" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-and-reassign.promote-and-leave" +msgstr "Promover e sair" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-and-reassign.hint2" +msgstr "Selecione outro membro para promover antes de sair" + +msgid "modals.leave-and-reassign.forbiden" +msgstr "" +"Você não pode deixar a equipe se não houver outro membro para promover a " +"proprietário. Você pode excluir a equipe." + +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.invite-member.title" +msgstr "Convidar para se juntar à equipe" + +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.invite-member-confirm.accept" +msgstr "Enviar convite" + +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.sending" +msgstr "Enviando..." + +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.send" +msgstr "Enviar" + +msgid "labels.save" +msgstr "Salvar" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.role" +msgstr "Cargo" + +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +msgid "labels.retry" +msgstr "Tentar novamente" + +#: src/app/main/ui/dashboard/team_form.cljs +msgid "labels.rename-team" +msgstr "Renomear equipe" + +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.rename" +msgstr "Renomear" + +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.remove" +msgstr "Excluir" + +#: src/app/main/ui/settings/sidebar.cljs +msgid "labels.release-notes" +msgstr "Notas de lançamento" + +msgid "labels.recent" +msgstr "Recente" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.projects" +msgstr "Projetos" + +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.profile" +msgstr "Perfil" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.permissions" +msgstr "Permissões" + +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.password" +msgstr "Senha" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.owner" +msgstr "Proprietário" + +#: src/app/main/ui/workspace/comments.cljs +msgid "labels.only-yours" +msgstr "Apenas seu" + +#: src/app/main/ui/settings/password.cljs +msgid "labels.old-password" +msgstr "Senha antiga" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.num-of-projects" +msgid_plural "labels.num-of-projects" +msgstr[0] "1 projeto" +msgstr[1] "% projetos" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.num-of-files" +msgid_plural "labels.num-of-files" +msgstr[0] "1 arquivo" +msgstr[1] "%s arquivos" + +#: src/app/main/ui/static.cljs +msgid "labels.not-found.main-message" +msgstr "Oops!" + +#: src/app/main/ui/static.cljs +msgid "labels.not-found.desc-message" +msgstr "Esta página não existe ou você não tem permissão para acessá-la." + +#: src/app/main/ui/static.cljs +msgid "labels.not-found.auth-info" +msgstr "Você está conectado como" + +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs +msgid "labels.no-comments-available" +msgstr "Você não tem notificações de comentários pendentes" + +#: src/app/main/ui/settings/password.cljs +msgid "labels.new-password" +msgstr "Nova senha" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.name" +msgstr "Nome" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.members" +msgstr "Membros" + +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.logout" +msgstr "Sair" + +#: src/app/main/ui/settings/options.cljs +msgid "labels.language" +msgstr "Linguagem" + +#: src/app/main/ui/static.cljs +msgid "labels.internal-error.main-message" +msgstr "Erro interno" + +#: src/app/main/ui/static.cljs +msgid "labels.internal-error.desc-message" +msgstr "" +"Algo errado aconteceu. Repita a operação e se o problema persistir, entre em " +"contato com o suporte." + +msgid "labels.images" +msgstr "Imagens" + +msgid "labels.icons" +msgstr "Ícones" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.give-feedback" +msgstr "Enviar feedback" + +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.feedback-sent" +msgstr "Feedback enviado" + +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.feedback-disabled" +msgstr "Feedback desativado" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.email" +msgstr "E-mail" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.editor" +msgstr "Editor" + +#: src/app/main/ui/comments.cljs +msgid "labels.edit" +msgstr "Editar" + +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.drafts" +msgstr "Rascunhos" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.delete-multi-files" +msgstr "Excluir %s arquivos" + +#: src/app/main/ui/comments.cljs +msgid "labels.delete-comment-thread" +msgstr "Excluir tópico" + +#: src/app/main/ui/comments.cljs +msgid "labels.delete-comment" +msgstr "Excluir comentário" + +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.delete" +msgstr "Excluir" + +#: src/app/main/ui/settings/sidebar.cljs +msgid "labels.dashboard" +msgstr "Painel" + +#: src/app/main/ui/dashboard/team_form.cljs +msgid "labels.create-team.placeholder" +msgstr "Insira o nome da nova equipe" + +#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs +msgid "labels.create-team" +msgstr "Criar nova equipe" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "labels.create" +msgstr "Criar" + +msgid "labels.content" +msgstr "Conteúdo" + +#: src/app/main/ui/settings/password.cljs +msgid "labels.confirm-password" +msgstr "Confirmar senha" + +#: src/app/main/ui/dashboard/comments.cljs +msgid "labels.comments" +msgstr "Comentários" + +msgid "labels.centered" +msgstr "Centro" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.cancel" +msgstr "Cancelar" + +#: src/app/main/ui/static.cljs +msgid "labels.bad-gateway.main-message" +msgstr "Bad Gateway" + +#: src/app/main/ui/static.cljs +msgid "labels.bad-gateway.desc-message" +msgstr "" +"Parece que você precisa esperar um pouco e tentar novamente; estamos " +"realizando pequenas manutenções em nossos servidores." + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.admin" +msgstr "Administrador" + +msgid "labels.accept" +msgstr "Aceitar" + +msgid "history.alert-message" +msgstr "Você está vendo a versão %s" + +#: src/app/main/ui/handoff/right_sidebar.cljs +msgid "handoff.tabs.info" +msgstr "Informação" + +msgid "handoff.tabs.code.selected.text" +msgstr "Texto" + +msgid "handoff.tabs.code.selected.svg-raw" +msgstr "SVG" + +msgid "handoff.tabs.code.selected.rect" +msgstr "Retângulo" + +#: src/app/main/ui/handoff/right_sidebar.cljs +msgid "handoff.tabs.code.selected.multiple" +msgstr "%s selecionados" + +msgid "handoff.tabs.code.selected.image" +msgstr "Imagem" + +msgid "handoff.tabs.code.selected.group" +msgstr "Grupo" + +msgid "handoff.tabs.code.selected.frame" +msgstr "Prancheta" + +msgid "handoff.tabs.code.selected.curve" +msgstr "Curva" + +msgid "handoff.tabs.code.selected.circle" +msgstr "Círculo" + +#: src/app/main/ui/handoff/right_sidebar.cljs +msgid "handoff.tabs.code" +msgstr "Código" + +msgid "handoff.attributes.typography.text-transform.uppercase" +msgstr "Maiúsculo" + +msgid "handoff.attributes.typography.text-transform.none" +msgstr "Nenhum" + +msgid "handoff.attributes.typography.text-transform.lowercase" +msgstr "Minúsculo" + +msgid "handoff.attributes.typography.text-decoration.underline" +msgstr "Sublinhado" + +msgid "handoff.attributes.typography.text-decoration.strikethrough" +msgstr "Riscado" + +msgid "handoff.attributes.typography.text-decoration.none" +msgstr "Nenhum" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography.line-height" +msgstr "Altura da linha" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.discussions-go-to" +msgstr "Ir para discussões" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.description" +msgstr "Descrição" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.chat-subtitle" +msgstr "Com vontade de falar? Converse conosco no Gitter" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.chat-start" +msgstr "Junte-se ao chat" + +#: src/app/main/ui/settings/password.cljs +msgid "errors.wrong-old-password" +msgstr "A senha antiga está incorreta" + +#: src/app/main/ui/auth/login.cljs +msgid "errors.wrong-credentials" +msgstr "O nome de usuário ou a senha parecem estar errados." + +#: src/app/main/ui/auth/verify_token.cljs +msgid "errors.unexpected-token" +msgstr "Token desconhecido" + +#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs +msgid "errors.unexpected-error" +msgstr "Um erro inesperado ocorreu." + +msgid "errors.terms-privacy-agreement-invalid" +msgstr "Você deve aceitar nossos termos de serviço e política de privacidade." + +#: src/app/main/ui/settings/password.cljs +msgid "errors.password-too-short" +msgstr "A senha deve ter pelo menos 8 caracteres" + +#: src/app/main/ui/settings/password.cljs +msgid "errors.password-invalid-confirmation" +msgstr "A senha de confirmação deve ser a mesma" + +msgid "errors.network" +msgstr "Não foi possível conectar ao servidor backend." + +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +msgid "errors.media-type-not-allowed" +msgstr "Parece que esta não é uma imagem válida." + +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +msgid "errors.media-type-mismatch" +msgstr "Parece que o conteúdo da imagem não corresponde à extensão do arquivo." + +#: src/app/main/data/workspace/persistence.cljs +msgid "errors.media-too-large" +msgstr "A imagem é muito grande para ser inserida (deve ter menos de 5mb)." + +msgid "errors.media-format-unsupported" +msgstr "O formato da imagem não é compatível (deve ser svg, jpg ou png)." + +#: src/app/main/ui/auth/login.cljs +msgid "errors.ldap-disabled" +msgstr "Autenticação por LDAP está desativada." + +#: src/app/main/ui/components/color_input.cljs +msgid "errors.invalid-color" +msgstr "Cor inválida" + +#: src/app/main/ui/auth/login.cljs +msgid "errors.google-auth-not-enabled" +msgstr "Autenticação com google desativada no backend" + +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +msgid "errors.generic" +msgstr "Algo errado aconteceu." + +#: src/app/main/ui/settings/change_email.cljs +msgid "errors.email-invalid-confirmation" +msgstr "E-mail de confirmação deve ser o mesmo" + +#: src/app/main/ui/auth/verify_token.cljs +msgid "errors.email-already-validated" +msgstr "E-mail já validado." + +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs +msgid "errors.email-already-exists" +msgstr "E-mail já utilizado" + +#: src/app/main/data/workspace.cljs +msgid "errors.clipboard-not-implemented" +msgstr "Seu navegador não pode fazer esta operação" + +#: src/app/main/ui/dashboard/grid.cljs +msgid "ds.updated-at" +msgstr "Atualizado: %s" + +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +msgid "ds.confirm-title" +msgstr "Tem certeza?" + +#: src/app/main/ui/confirm.cljs +msgid "ds.confirm-ok" +msgstr "Ok" + +#: src/app/main/ui/confirm.cljs +msgid "ds.confirm-cancel" +msgstr "Cancelar" + +#: src/app/main/ui/settings/options.cljs +msgid "dashboard.theme-change" +msgstr "Tema da UI" + +#: src/app/main/ui/settings/options.cljs +msgid "dashboard.select-ui-language" +msgstr "Selecionar idioma da UI" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.login-here" +msgstr "Entrar aqui" + +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.your-name" +msgstr "Seu nome" + +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.your-email" +msgstr "E-mail" + +#: src/app/main/ui/settings.cljs +msgid "dashboard.your-account-title" +msgstr "Sua conta" + +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs +msgid "dashboard.update-settings" +msgstr "Atualizar configurações" + +#: src/app/main/ui/dashboard/search.cljs +msgid "dashboard.type-something" +msgstr "Digite para pesquisar resultados" + +#: src/app/main/ui/dashboard/search.cljs +msgid "dashboard.title-search" +msgstr "Resultados da pesquisa" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.team-projects" +msgstr "Projetos da equipe" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.team-members" +msgstr "Membros da equipe" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.team-info" +msgstr "Informação da equipe" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.switch-team" +msgstr "Trocar de equipe" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "dashboard.success-move-project" +msgstr "Seu projeto foi movido com sucesso" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.success-move-files" +msgstr "Seus arquivos foram movidos com sucesso" + +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.success-move-file" +msgstr "Seu arquivo foi movido com sucesso" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "dashboard.success-duplicate-project" +msgstr "Seu projeto foi duplicado com sucesso" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.success-duplicate-file" +msgstr "Seu arquivo foi duplicado com sucesso" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "dashboard.success-delete-project" +msgstr "Seu projeto foi excluído com sucesso" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.success-delete-file" +msgstr "Seu arquivo foi excluído com sucesso" + +#: src/app/main/ui/dashboard/grid.cljs +msgid "dashboard.show-all-files" +msgstr "Mostrar todos os arquivos" + +#: src/app/main/ui/settings/options.cljs +msgid "dashboard.select-ui-theme" +msgstr "Selecionar tema" + +#: src/app/main/ui/dashboard/search.cljs +msgid "dashboard.searching-for" +msgstr "Pesquisando por “%s“…" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.search-placeholder" +msgstr "Pesquisar…" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.remove-shared" +msgstr "Remover como Biblioteca Compartilhada" + +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.remove-account" +msgstr "Quer remover sua conta?" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.promote-to-owner" +msgstr "Promover a proprietário" + +#: src/app/main/ui/dashboard/projects.cljs +msgid "dashboard.projects-title" +msgstr "Projetos" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "dashboard.pin-unpin" +msgstr "Fixar/Desafixar" + +#: src/app/main/ui/settings/password.cljs +msgid "dashboard.password-change" +msgstr "Alterar senha" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.open-in-new-tab" +msgstr "Abrir arquivo em uma nova guia" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.num-of-members" +msgstr "%s membros" + +#: src/app/main/ui/settings/password.cljs +msgid "dashboard.notifications.password-saved" +msgstr "Senha salva com sucesso!" + +#: src/app/main/ui/auth/verify_token.cljs +msgid "dashboard.notifications.email-verified-successfully" +msgstr "Seu endereço de e-mail foi verificado com sucesso" + +#: src/app/main/ui/auth/verify_token.cljs +msgid "dashboard.notifications.email-changed-successfully" +msgstr "Seu endereço de e-mail foi atualizado com sucesso" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.no-projects-placeholder" +msgstr "Projetos fixados aparecerão aqui" + +#: src/app/main/ui/dashboard/search.cljs +msgid "dashboard.no-matches-for" +msgstr "Nenhuma correspondência encontrada para “%s“" + +#: src/app/main/ui/dashboard/projects.cljs +msgid "dashboard.new-project" +msgstr "+ Novo projeto" + +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs +msgid "dashboard.new-file" +msgstr "+ Novo arquivo" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.move-to-other-team" +msgstr "Mover para outra equipe" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.move-to-multi" +msgstr "Mover %s arquivos para" + +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.move-to" +msgstr "Mover para" + +#: src/app/main/ui/dashboard/grid.cljs +msgid "dashboard.loading-files" +msgstr "carregando seus arquivos…" + +#: src/app/main/ui/dashboard/libraries.cljs +msgid "dashboard.libraries-title" +msgstr "Bibliotecas Compartilhadas" + +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.leave-team" +msgstr "Sair da equipe" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.create-new-team" +msgstr "+ Criar nova equipe" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.delete-team" +msgstr "Deletar equipe" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.invite-profile" +msgstr "Convidar para a equipe" + +#: src/app/main/ui/dashboard/grid.cljs +msgid "dashboard.empty-files" +msgstr "Você ainda não tem arquivos aqui" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.duplicate-multi" +msgstr "Duplicar %s arquivos" + +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.duplicate" +msgstr "Duplicar" + +msgid "dashboard.draft-title" +msgstr "Rascunho" + +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +msgid "dashboard.copy-suffix" +msgstr "(copiar)" + +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.change-email" +msgstr "Alterar e-mail" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.add-shared" +msgstr "Adicionar como Biblioteca Compartilhada" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.verification-email-sent" +msgstr "Enviamos um e-mail de verificação para" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.terms-privacy-agreement" +msgstr "" +"Ao criar uma nova conta, você concorda com nossos termos de serviço e " +"política de privacidade." + +#: src/app/main/ui/auth/register.cljs +msgid "auth.register-subtitle" +msgstr "É de graça, é código aberto" + +#: src/app/main/ui/auth.cljs +msgid "auth.sidebar-tagline" +msgstr "A solução de código aberto para design e prototipagem." + +#: src/app/main/ui/auth/register.cljs +msgid "auth.register-title" +msgstr "Criar uma conta" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.register-submit" +msgstr "Criar uma conta" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.register" +msgstr "Ainda não tem uma conta?" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.recovery-submit" +msgstr "Mudar sua senha" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-title" +msgstr "Esqueceu a senha?" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-subtitle" +msgstr "Enviaremos para você um e-mail com instruções" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-submit" +msgstr "Recuperar senha" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.password-length-hint" +msgstr "Pelo menos 8 caracteres" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.password" +msgstr "Senha" + +#: src/app/main/ui/auth/verify_token.cljs +msgid "auth.notifications.team-invitation-accepted" +msgstr "Entrou para a equipe com sucesso" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "modals.update-remote-component.cancel" +msgstr "Cancelar" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "modals.update-remote-component.accept" +msgstr "Atualizar componente" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.remove-shared-confirm.message" +msgstr "Remover “%s” como Biblioteca Compartilhada" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.remove-shared-confirm.accept" +msgstr "Remover como Biblioteca Compartilhada" From 512b66cb04ffeeba9053b04b32182d466a32e46a Mon Sep 17 00:00:00 2001 From: Simon Bechmann Date: Tue, 11 May 2021 19:58:26 +0000 Subject: [PATCH 064/135] :globe_with_meridians: Add translations for: Danish. Currently translated at 8.2% (54 of 656 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/da/ --- frontend/translations/da.po | 234 +++++++++++++++++++++++++++++++++++- 1 file changed, 233 insertions(+), 1 deletion(-) diff --git a/frontend/translations/da.po b/frontend/translations/da.po index 4f8f6e6de..f55ceb4cf 100644 --- a/frontend/translations/da.po +++ b/frontend/translations/da.po @@ -1,2 +1,234 @@ msgid "" -msgstr "X-Generator: Weblate\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit" \ No newline at end of file +msgstr "" +"PO-Revision-Date: 2021-05-13 01:35+0000\n" +"Last-Translator: Simon Bechmann \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.7-dev\n" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.verification-email-sent" +msgstr "Vi har sendt en bekræftelsesmail til" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.terms-privacy-agreement" +msgstr "" +"Når du opretter en ny konto, accepterer du vores servicevilkår og " +"fortrolighedspolitik." + +#: src/app/main/ui/auth.cljs +msgid "auth.sidebar-tagline" +msgstr "Open-source løsningen for design og prototyping." + +#: src/app/main/ui/auth/register.cljs +msgid "auth.register-title" +msgstr "Opret en konto" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.register-subtitle" +msgstr "Det er gratis, det er Open Source" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.register-submit" +msgstr "Opret en konto" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.register" +msgstr "Ingen konto?" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.recovery-submit" +msgstr "Skift din adgangskode" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-title" +msgstr "Glemt adgangskode?" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-subtitle" +msgstr "Vi sender dig en mail med instruktioner" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.notifications.recovery-token-sent" +msgstr "Gendannelseslink for adgangskoden er sendt til din indbakke." + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-submit" +msgstr "Gendan Adgangskode" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.password-length-hint" +msgstr "Mindst 8 karakterer" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.password" +msgstr "Adgangskode" + +#: src/app/main/ui/auth/verify_token.cljs +msgid "auth.notifications.team-invitation-accepted" +msgstr "Tilsluttet teamet med succes" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.notifications.profile-not-verified" +msgstr "" +"Profilen er ikke bekræftet, venligt verificer profilen før du går videre." + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.notifications.password-changed-succesfully" +msgstr "Adgangskoden er blevet ændret" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.confirm-password" +msgstr "Bekræft adgangskode" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.forgot-password" +msgstr "Glemt adgangskode?" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.notifications.invalid-token-error" +msgstr "Genopretningspoletten er ugyldig." + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.new-password" +msgstr "Indtast et nyt kodeord" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-oidc-submit" +msgstr "Log på med OpenID (SSO)" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-google-submit" +msgstr "Log på med Google" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-gitlab-submit" +msgstr "Log på med Gitlab" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-github-submit" +msgstr "Log på med Github" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.login-here" +msgstr "Log på her" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-ldap-submit" +msgstr "Log på med LDAP" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-title" +msgstr "Fedt at se dig igen!" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-subtitle" +msgstr "Indtast dine oplysninger nedenunder" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-submit" +msgstr "Log på" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.go-back-to-login" +msgstr "Gå tilbage!" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.fullname" +msgstr "Fulde Navn" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.email" +msgstr "Email" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.demo-warning" +msgstr "" +"Det her er en DEMO service, BRUG IKKE for rigtigt arbejde, projekterne vil " +"blive slettet periodevis." + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.create-demo-profile" +msgstr "Vil du bare prøve det?" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.create-demo-account" +msgstr "Lav demokonto" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.check-your-email" +msgstr "" +"Tjek din mail og klik på linket for at bekræfte og starte med at bruge " +"Penpot." + +#: src/app/main/ui/auth/register.cljs +msgid "auth.already-have-account" +msgstr "Har du allerede en konto?" + +#, markdown +msgid "dashboard.fonts.hero-text2" +msgstr "" +"Du bør kun uploade skrifttyper som du ejer eller har licens til at bruge i " +"Penpot. Find ud af mere i sektionen om indholdsrettigheder i [Penpot's Terms " +"of Service] (https://penpot.app/terms.html). Du kan også læse om [font " +"licensing](2)." + +#, markdown +msgid "dashboard.fonts.hero-text1" +msgstr "" +"Alle web skrifttyper, som du uploader her, vil blive tilføjet til listen af " +"skrifttypefamilier tilgængelig ved tekstindstillingerne i filerne for dette " +"team. Skrifttyper med det samme skrifttypefamilienavn vil blive grupperet " +"som en **enkelt skrifttypefamilie**. Du kan uploade skrifttyper med følgende " +"formater: **TTF, OTF og WOFF** (kun én er nødvendig)." + +msgid "labels.upload-custom-fonts" +msgstr "Upload brugerdefinerede skrifttyper" + +msgid "labels.font-providers" +msgstr "Skrifttype udbydere" + +msgid "labels.search-font" +msgstr "Søg efter skrifttype" + +msgid "labels.custom-fonts" +msgstr "Brugerdefinerede skrifttyper" + +msgid "labels.font-variant" +msgstr "Stil" + +msgid "labels.font-family" +msgstr "Skrifttypefamilie" + +msgid "labels.installed-fonts" +msgstr "Installeret skrifttyper" + +msgid "labels.fonts" +msgstr "Skrifttyper" + +msgid "modals.delete-font.message" +msgstr "" +"Er du sikker på, at du vil slette denne skrifttype? Den vil ikke indlæse, " +"hvis den bliver brugt i en fil." + +msgid "modals.delete-font.title" +msgstr "Sletter skrifttype" + +msgid "labels.uploading" +msgstr "Uploader..." + +msgid "labels.upload" +msgstr "Upload" + +#: src/app/main/ui/dashboard/fonts.cljs +msgid "title.dashboard.fonts" +msgstr "Skrifttyper" + +#: src/app/main/ui/dashboard/fonts.cljs +msgid "title.dashboard.font-providers" +msgstr "Skrifttype Udbydere" From 2c250a2740ee7df2cdceeb3454dd1ae96e5d1272 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 13 May 2021 08:43:58 +0000 Subject: [PATCH 065/135] :globe_with_meridians: Add translations for: German. Currently translated at 92.2% (605 of 656 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/de/ --- frontend/translations/de.po | 45 ++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/frontend/translations/de.po b/frontend/translations/de.po index 906647940..2a296ccda 100644 --- a/frontend/translations/de.po +++ b/frontend/translations/de.po @@ -1,10 +1,15 @@ msgid "" msgstr "" +"PO-Revision-Date: 2021-05-13 08:44+0000\n" +"Last-Translator: Andrey Antukh \n" +"Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.7-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -13,8 +18,8 @@ msgstr "Sie haben schon ein Konto?" #: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" -"Überprüfen Sie Ihre E-Mail, klicken Sie auf den Link um sich zu " -"verifizieren und Penpot zu nutzen." +"Überprüfen Sie Ihre E-Mail, klicken Sie auf den Link um sich zu verifizieren " +"und Penpot zu nutzen." #: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" @@ -31,8 +36,8 @@ msgstr "Einfach testen?" #: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" -"Das ist eine DEMO-VERSION, verwenden Sie es NICHT zum Arbeiten, die " -"Projekte werden regelmäßig gelöscht." +"Das ist eine DEMO-VERSION, verwenden Sie es NICHT zum Arbeiten, die Projekte " +"werden regelmäßig gelöscht." #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs msgid "auth.email" @@ -98,7 +103,8 @@ msgstr "" #: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" -msgstr "Der Link zur Wiederherstellung des Passworts wurde an Ihre E-Mail gesendet." +msgstr "" +"Der Link zur Wiederherstellung des Passworts wurde an Ihre E-Mail gesendet." #: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" @@ -412,7 +418,8 @@ msgid "errors.ldap-disabled" msgstr "Die LDAP-Authentifizierung ist deaktiviert." msgid "errors.media-format-unsupported" -msgstr "Das Bildformat wird nicht unterstützt (es muss ein SVG, JPG oder PNG sein)." +msgstr "" +"Das Bildformat wird nicht unterstützt (es muss ein SVG, JPG oder PNG sein)." #: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" @@ -421,8 +428,7 @@ msgstr "Das Bild ist zu groß, um eingefügt zu werden (es muss unter 5MB sein). #: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "" -"Es scheint, dass der Bildinhalt nicht mit der Dateierweiterung " -"übereinstimmt." +"Es scheint, dass der Bildinhalt nicht mit der Dateierweiterung übereinstimmt." #: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" @@ -431,8 +437,8 @@ msgstr "Es scheint, dass dies kein gültiges Bild ist." #: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "" -"In dem von Ihnen eingeladenen Profil sind E-Mails stummgeschaltet " -"(Spam-Berichte oder hohe Unzustellbarkeitsberichte)." +"In dem von Ihnen eingeladenen Profil sind E-Mails stummgeschaltet (Spam-" +"Berichte oder hohe Unzustellbarkeitsberichte)." msgid "errors.network" msgstr "Es kann keine Verbindung zum Server hergestellt werden." @@ -508,8 +514,8 @@ msgstr "Betreff" #: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" -"Bitte beschreiben Sie den Grund Ihrer E-Mail und geben Sie an, ob es sich " -"um ein Problem, eine Idee oder einem Bedenken handelt. Ein Mitglied unseres " +"Bitte beschreiben Sie den Grund Ihrer E-Mail und geben Sie an, ob es sich um " +"ein Problem, eine Idee oder einem Bedenken handelt. Ein Mitglied unseres " "Teams wird Ihnen so schnell wie möglich antworten." #: src/app/main/ui/settings/feedback.cljs @@ -1176,7 +1182,8 @@ msgstr "Befördern" #: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" -msgstr "Sind Sie sicher, dass Sie diesen Benutzer zum Eigentümer befördern wollen?" +msgstr "" +"Sind Sie sicher, dass Sie diesen Benutzer zum Eigentümer befördern wollen?" #: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" @@ -1208,8 +1215,7 @@ msgstr "Abbrechen" msgid "modals.update-remote-component.hint" msgstr "" "Sie sind dabei, eine Komponente in einer gemeinsam genutzten Bibliothek zu " -"aktualisieren. Dies kann sich auf andere Dateien auswirken, die es " -"verwenden." +"aktualisieren. Dies kann sich auf andere Dateien auswirken, die es verwenden." #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" @@ -1222,8 +1228,8 @@ msgstr "Einladung erfolgreich gesendet" #: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "" -"Sie können Ihr Profil nicht löschen. Weisen Sie Ihre Teams neu zu, bevor " -"Sie fortfahren." +"Sie können Ihr Profil nicht löschen. Weisen Sie Ihre Teams neu zu, bevor Sie " +"fortfahren." #: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" @@ -1607,8 +1613,7 @@ msgstr "BIBLIOTHEK" #: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "" -"Es gibt keine gemeinsam genutzte Bibliotheken, die aktualisiert werden " -"müssen" +"Es gibt keine gemeinsam genutzte Bibliotheken, die aktualisiert werden müssen" #: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-matches-for" From b8afdda8566ec884be5e067a4e1316ce04522486 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 13 May 2021 08:44:38 +0000 Subject: [PATCH 066/135] :globe_with_meridians: Add translations for: French. Currently translated at 82.4% (541 of 656 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/fr/ --- frontend/translations/fr.po | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/frontend/translations/fr.po b/frontend/translations/fr.po index 902bb7036..fff382f9d 100644 --- a/frontend/translations/fr.po +++ b/frontend/translations/fr.po @@ -1,10 +1,15 @@ msgid "" msgstr "" +"PO-Revision-Date: 2021-05-13 08:47+0000\n" +"Last-Translator: Andrey Antukh \n" +"Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"X-Generator: Weblate 4.7-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -92,7 +97,8 @@ msgstr "Mot de passe changé avec succès" #: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" -msgstr "Le profil n’est pas vérifié. Veuillez vérifier le profil avant de continuer." +msgstr "" +"Le profil n’est pas vérifié. Veuillez vérifier le profil avant de continuer." #: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" @@ -667,8 +673,8 @@ msgstr "Tous" #: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "" -"Il semble que vous deviez attendre un peu et réessayer ; nous effectuons " -"une petite maintenance de nos serveurs." +"Il semble que vous deviez attendre un peu et réessayer ; nous effectuons une " +"petite maintenance de nos serveurs." #: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" @@ -745,8 +751,8 @@ msgstr "Images" #: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" -"Un problème s’est produit. Veuillez réessayer l’opération et, si le " -"problème persiste, contacter le service technique." +"Un problème s’est produit. Veuillez réessayer l’opération et, si le problème " +"persiste, contacter le service technique." #: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" @@ -907,9 +913,9 @@ msgstr "Ajouter comme Bibliothèque Partagée" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" -"Une fois ajoutées en tant que Bibliothèque Partagée, les ressources de " -"cette bibliothèque de fichiers seront disponibles pour être utilisées parmi " -"le reste de vos fichiers." +"Une fois ajoutées en tant que Bibliothèque Partagée, les ressources de cette " +"bibliothèque de fichiers seront disponibles pour être utilisées parmi le " +"reste de vos fichiers." #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" From 37f9a5d9f23e44d1fe6e5cca6c50bce5d532c3ef Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 13 May 2021 10:54:19 +0200 Subject: [PATCH 067/135] :paperclip: Update changelog file. --- CHANGES.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index 0cc21cf35..b38886f84 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,7 +1,18 @@ # CHANGELOG # + ## :rocket: Next +### :sparkles: New features +### :bug: Bugs fixed +### :arrow_up: Deps updates +### :boom: Breaking changes +### :heart: Community contributions by (Thank you!) + + + +## 1.6.0-alpha + ### :sparkles: New features - Add option to interactively scale text [Taiga #1527](https://tree.taiga.io/project/penpot/us/1527) From 891506ab524b872dbf6f13da925db4e9d02e27bb Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 13 May 2021 10:55:20 +0200 Subject: [PATCH 068/135] :paperclip: Prepare next development cycle. --- version.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.txt b/version.txt index f721a9b5e..d9c26f23b 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.6.0-alpha +1.7.0-alpha From 3656ab977be825028c0185577b5e70330e6c76ab Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Wed, 12 May 2021 14:44:35 +0200 Subject: [PATCH 069/135] :sparkles: Improve frame thumbnail rendering --- common/app/common/pages.cljc | 1 + common/app/common/pages/helpers.cljc | 9 ++++ frontend/src/app/main/refs.cljs | 2 +- frontend/src/app/main/ui/shapes/image.cljs | 13 ++---- frontend/src/app/main/ui/shapes/shape.cljs | 6 ++- frontend/src/app/main/ui/shapes/text.cljs | 6 ++- .../src/app/main/ui/shapes/text/styles.cljs | 6 +-- .../app/main/ui/workspace/shapes/frame.cljs | 41 ++++++++++++------- .../app/main/ui/workspace/viewport/utils.cljs | 15 ++++++- frontend/src/app/util/range_tree.js | 2 +- 10 files changed, 68 insertions(+), 33 deletions(-) diff --git a/common/app/common/pages.cljc b/common/app/common/pages.cljc index b0f311af3..4ef70baba 100644 --- a/common/app/common/pages.cljc +++ b/common/app/common/pages.cljc @@ -64,6 +64,7 @@ (d/export helpers/merge-path-item) (d/export helpers/compact-path) (d/export helpers/compact-name) +(d/export helpers/merge-modifiers) ;; Indices (d/export indices/calculate-z-index) diff --git a/common/app/common/pages/helpers.cljc b/common/app/common/pages/helpers.cljc index 6bc748419..1fce3111b 100644 --- a/common/app/common/pages/helpers.cljc +++ b/common/app/common/pages/helpers.cljc @@ -457,3 +457,12 @@ [path name] (let [path-split (split-path path)] (merge-path-item (first path-split) name))) + +(defn merge-modifiers + [objects modifiers] + + (let [set-modifier (fn [objects [id modifiers]] + (-> objects + (d/update-when id assoc :modifiers modifiers)))] + (->> modifiers + (reduce set-modifier objects)))) diff --git a/frontend/src/app/main/refs.cljs b/frontend/src/app/main/refs.cljs index 3a50f2a46..db33ad5aa 100644 --- a/frontend/src/app/main/refs.cljs +++ b/frontend/src/app/main/refs.cljs @@ -242,7 +242,7 @@ modifiers (:workspace-modifiers state) objects (cond-> objects with-modifiers? - (d/deep-merge modifiers)) + (cp/merge-modifiers modifiers)) xform (comp (map #(get objects %)) (remove nil?))] (into [] xform ids))) diff --git a/frontend/src/app/main/ui/shapes/image.cljs b/frontend/src/app/main/ui/shapes/image.cljs index 4ad49835b..4dd1e3e41 100644 --- a/frontend/src/app/main/ui/shapes/image.cljs +++ b/frontend/src/app/main/ui/shapes/image.cljs @@ -51,12 +51,7 @@ ;; Prevent browser dragging of the image (dom/prevent-default event))] - (if (nil? @data-uri) - [:> "rect" (obj/merge! - props - #js {:fill "#E8E9EA" - :stroke "#000000"})] - [:> "image" (obj/merge! - props - #js {:xlinkHref @data-uri - :onDragStart on-drag-start})])))) + [:> "image" (obj/merge! + props + #js {:xlinkHref (or @data-uri uri) + :onDragStart on-drag-start})]))) diff --git a/frontend/src/app/main/ui/shapes/shape.cljs b/frontend/src/app/main/ui/shapes/shape.cljs index 88df3cff8..793c168fb 100644 --- a/frontend/src/app/main/ui/shapes/shape.cljs +++ b/frontend/src/app/main/ui/shapes/shape.cljs @@ -16,8 +16,9 @@ [rumext.alpha :as mf])) (mf/defc shape-container - {::mf/wrap-props false} - [props] + {::mf/forward-ref true + ::mf/wrap-props false} + [props ref] (let [shape (obj/get props "shape") children (obj/get props "children") pointer-events (obj/get props "pointer-events") @@ -33,6 +34,7 @@ frame? (= :frame type) group-props (-> (obj/clone props) (obj/without ["shape" "children"]) + (obj/set! "ref" ref) (obj/set! "id" (str "shape-" (:id shape))) (obj/set! "filter" (filters/filter-str filter-id shape)) (obj/set! "style" styles) diff --git a/frontend/src/app/main/ui/shapes/text.cljs b/frontend/src/app/main/ui/shapes/text.cljs index f26386dae..48a516240 100644 --- a/frontend/src/app/main/ui/shapes/text.cljs +++ b/frontend/src/app/main/ui/shapes/text.cljs @@ -22,7 +22,7 @@ (let [node (obj/get props "node") text (:text node) style (sts/generate-text-styles node)] - [:span {:style style} + [:span.text-node {:style style} (if (= text "") "\u00A0" text)])) (mf/defc render-root @@ -102,6 +102,10 @@ :height (if (#{:auto-height :auto-width} grow-type) 100000 height) :style (-> (obj/new) (attrs/add-layer-props shape)) :ref ref} + ;; We use a class here because react has a bug that won't use the appropiate selector for + ;; `background-clip` + [:style ".text-node { background-clip: text; + -webkit-background-clip: text;" ] [:& render-node {:index 0 :shape shape :node content}]])) diff --git a/frontend/src/app/main/ui/shapes/text/styles.cljs b/frontend/src/app/main/ui/shapes/text/styles.cljs index 21825299e..83404cc7c 100644 --- a/frontend/src/app/main/ui/shapes/text/styles.cljs +++ b/frontend/src/app/main/ui/shapes/text/styles.cljs @@ -89,10 +89,10 @@ (let [text-color (-> (update gradient :type keyword) (uc/gradient->css))] (-> base - (obj/set! "background" "var(--text-color)") + (obj/set! "--text-color" text-color) + (obj/set! "backgroundImage" "var(--text-color)") (obj/set! "WebkitTextFillColor" "transparent") - (obj/set! "WebkitBackgroundClip" "text") - (obj/set! "--text-color" text-color)))) + (obj/set! "WebkitBackgroundClip" "text")))) (when (and (string? letter-spacing) (pos? (alength letter-spacing))) diff --git a/frontend/src/app/main/ui/workspace/shapes/frame.cljs b/frontend/src/app/main/ui/workspace/shapes/frame.cljs index 8e8dd3186..8875ba6e5 100644 --- a/frontend/src/app/main/ui/workspace/shapes/frame.cljs +++ b/frontend/src/app/main/ui/workspace/shapes/frame.cljs @@ -68,14 +68,16 @@ [props] (let [shape (obj/get props "shape")] (when (:thumbnail shape) - [:image {:xlinkHref (:thumbnail shape) - :x (:x shape) - :y (:y shape) - :width (:width shape) - :height (:height shape) - ;; DEBUG - ;; :style {:filter "sepia(1)"} - }]))) + [:image.frame-thumbnail + {:id (str "thumbnail-" (:id shape)) + :xlinkHref (:thumbnail shape) + :x (:x shape) + :y (:y shape) + :width (:width shape) + :height (:height shape) + ;; DEBUG + ;; :style {:filter "sepia(1)"} + }]))) ;; This custom deffered don't deffer rendering when ghost rendering is ;; used. @@ -114,19 +116,30 @@ (filterv #(and (= :text (:type %)) (= (:id shape) (:frame-id %))))) - ds-modifier (get-in shape [:modifiers :displacement])] + ds-modifier (get-in shape [:modifiers :displacement]) + + rendered? (mf/use-state false) + + show-thumbnail? (and thumbnail? (some? (:thumbnail shape))) + + on-dom + (mf/use-callback + (fn [node] + (ts/schedule-on-idle #(reset! rendered? (some? node)))))] (when (and shape (not (:hidden shape))) [:g.frame-wrapper {:display (when (:hidden shape) "none")} - (if (and thumbnail? (some? (:thumbnail shape))) - [:& thumbnail {:shape shape}] - - [:> shape-container {:shape shape } + (when-not show-thumbnail? + [:> shape-container {:shape shape + :ref on-dom} (when embed-fonts? [:& ste/embed-fontfaces-style {:shapes text-childs}]) [:& frame-shape {:shape shape - :childs children}]])]))))) + :childs children}]]) + + (when (or (not @rendered?) show-thumbnail?) + [:& thumbnail {:shape shape}])]))))) diff --git a/frontend/src/app/main/ui/workspace/viewport/utils.cljs b/frontend/src/app/main/ui/workspace/viewport/utils.cljs index e3df76657..a1e6f6a83 100644 --- a/frontend/src/app/main/ui/workspace/viewport/utils.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/utils.cljs @@ -15,8 +15,19 @@ (defn update-transform [node shapes modifiers] (doseq [{:keys [id type]} shapes] - (when-let [node (dom/get-element (str "shape-" id))] - (let [node (if (= :frame type) (.-parentNode node) node)] + (let [shape-node (dom/get-element (str "shape-" id)) + + ;; When the shape is a frame we maybe need to move its thumbnail + thumb-node (dom/get-element (str "thumbnail-" id))] + (when-let [node (cond + (and (some? shape-node) (= :frame type)) + (.-parentNode shape-node) + + (and (some? thumb-node) (= :frame type)) + thumb-node + + :else + shape-node)] (dom/set-attribute node "transform" (str (:displacement modifiers))))))) (defn remove-transform [node shapes] diff --git a/frontend/src/app/util/range_tree.js b/frontend/src/app/util/range_tree.js index 3f823a9f2..0b7532b8a 100644 --- a/frontend/src/app/util/range_tree.js +++ b/frontend/src/app/util/range_tree.js @@ -287,7 +287,7 @@ goog.scope(function() { function moveRedLeft(branch) { flipColors(branch); - if (isRed(branch.right.left)) { + if (branch.right && isRed(branch.right.left)) { branch.right = rotateRight(branch.right); branch = rotateLeft(branch); flipColors(branch); From 07f3d48a9d1045e10dea85bcf8232b4be0025f81 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 12 May 2021 09:47:13 +0200 Subject: [PATCH 070/135] :wrench: Allow override oidc scopes. And relax default scopes to `profile` and `openid`. --- CHANGES.md | 5 +++++ backend/src/app/http/oauth.clj | 3 +-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index b38886f84..5691c58bc 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -25,6 +25,11 @@ ### :arrow_up: Deps updates ### :boom: Breaking changes + +- The OIDC setting `PENPOT_OIDC_SCOPES` has chenged the default semantincs. Before this + configuration added scopes to the default set. Now it replaces it, so use with care, because + penpot requires at least `name` and `email` props found on the user info object. + ### :heart: Community contributions by (Thank you!) diff --git a/backend/src/app/http/oauth.clj b/backend/src/app/http/oauth.clj index 55c7a8a50..63b9f481d 100644 --- a/backend/src/app/http/oauth.clj +++ b/backend/src/app/http/oauth.clj @@ -232,8 +232,7 @@ :token-uri (cf/get :oidc-token-uri) :auth-uri (cf/get :oidc-auth-uri) :user-uri (cf/get :oidc-user-uri) - :scopes (into #{"openid" "profile" "email" "name"} - (cf/get :oidc-scopes #{})) + :scopes (cf/get :oidc-scopes #{"openid" "profile"}) :roles-attr (cf/get :oidc-roles-attr) :roles (cf/get :oidc-roles) :name "oidc"}] From c33c3fb2fafcdeec9eee4f189ded5e565fd9a020 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 12 May 2021 09:48:06 +0200 Subject: [PATCH 071/135] :books: Update changelog. --- CHANGES.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 5691c58bc..f7d697582 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -15,18 +15,25 @@ ### :sparkles: New features +- Add many performance related improvements to indexes handling on workspace. - Add option to interactively scale text [Taiga #1527](https://tree.taiga.io/project/penpot/us/1527) +- Add the ability to upload/use custom fonts (and automatically generate all needed webfonts). +- Refactor dashboard state management (improves considerably the performance when you have a dashboard with a big collection of projects and files). - Translate automatic names of new files and projects. ### :bug: Bugs fixed - Remove interactions when the destination artboard is deleted [Taiga #1656](https://tree.taiga.io/project/penpot/issue/1656) -- Fix snap index problem [Taiga #1661](https://tree.taiga.io/project/penpot/issue/1661) ### :arrow_up: Deps updates + +- Update exporter dependencies (puppetteer), that fixes some unexpected exceptions. +- Update string manipulation library. + + ### :boom: Breaking changes -- The OIDC setting `PENPOT_OIDC_SCOPES` has chenged the default semantincs. Before this +- The OIDC setting `PENPOT_OIDC_SCOPES` has changed the default semantics. Before this configuration added scopes to the default set. Now it replaces it, so use with care, because penpot requires at least `name` and `email` props found on the user info object. From 4b7f82a9d9077344ac8de6c555dbdde1d5078599 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 12 May 2021 10:21:53 +0200 Subject: [PATCH 072/135] :recycle: Improves shortcuts lifecycle management. --- frontend/src/app/main/data/shortcuts.cljs | 135 +++++++++++++----- .../app/main/data/workspace/shortcuts.cljs | 9 +- frontend/src/app/main/ui/handoff.cljs | 2 +- frontend/src/app/main/ui/hooks.cljs | 11 +- frontend/src/app/main/ui/viewer.cljs | 2 +- .../app/main/ui/workspace/viewport/hooks.cljs | 26 ++-- 6 files changed, 130 insertions(+), 55 deletions(-) diff --git a/frontend/src/app/main/data/shortcuts.cljs b/frontend/src/app/main/data/shortcuts.cljs index 850380517..e3eb7810d 100644 --- a/frontend/src/app/main/data/shortcuts.cljs +++ b/frontend/src/app/main/data/shortcuts.cljs @@ -5,14 +5,22 @@ ;; Copyright (c) UXBOX Labs SL (ns app.main.data.shortcuts + (:refer-clojure :exclude [meta reset!]) (:require ["mousetrap" :as mousetrap] + [app.common.data :as d] + [app.common.spec :as us] [app.config :as cfg] - [app.util.logging :as log]) - (:refer-clojure :exclude [meta])) + [app.util.logging :as log] + [cljs.spec.alpha :as s] + [potok.core :as ptk])) (log/set-level! :warn) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Helpers +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + (def mac-command "\u2318") (def mac-option "\u2325") (def mac-delete "\u232B") @@ -44,30 +52,8 @@ [shortcut] (c-mod (a-mod shortcut))) -(defn bind-shortcuts - ([shortcuts-config] - (bind-shortcuts - shortcuts-config - mousetrap/bind - (fn [key cb] - (fn [event] - (log/debug :msg (str "Shortcut" key)) - (.preventDefault event) - (cb event))))) - - ([shortcuts-config bind-fn cb-fn] - (doseq [[key {:keys [command disabled fn type]}] shortcuts-config] - (when-not disabled - (if (vector? command) - (doseq [cmd (seq command)] - (bind-fn cmd (cb-fn key fn) type)) - (bind-fn command (cb-fn key fn) type)))))) - -(defn remove-shortcuts - [] - (mousetrap/reset)) - -(defn meta [key] +(defn meta + [key] ;; If the key is "+" we need to surround with quotes ;; otherwise will not be very readable (let [key (if (and (not (cfg/check-platform? :macos)) @@ -80,37 +66,120 @@ "Ctrl+") key))) -(defn shift [key] +(defn shift + [key] (str (if (cfg/check-platform? :macos) mac-shift "Shift+") key)) -(defn alt [key] +(defn alt + [key] (str (if (cfg/check-platform? :macos) mac-option "Alt+") key)) -(defn meta-shift [key] +(defn meta-shift + [key] (-> key meta shift)) -(defn meta-alt [key] +(defn meta-alt + [key] (-> key meta alt)) -(defn supr [] +(defn supr + [] (if (cfg/check-platform? :macos) mac-delete "Supr")) -(defn esc [] +(defn esc + [] (if (cfg/check-platform? :macos) mac-esc "Escape")) -(defn enter [] +(defn enter + [] (if (cfg/check-platform? :macos) mac-enter "Enter")) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Events +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; --- EVENT: push + +(s/def ::tooltip ::us/string) +(s/def ::fn fn?) + +(s/def ::command + (s/or :str ::us/string + :vec vector?)) + +(s/def ::shortcut + (s/keys :req-un [::command] + :opt-un [::fn + ::tooltip])) + +(s/def ::shortcuts + (s/map-of ::us/keyword + ::shortcut)) + +(defn- wrap-cb + [key cb] + (fn [event] + (log/debug :msg (str "Shortcut" key)) + (.preventDefault event) + (cb event))) + +(defn- bind! + [shortcuts] + (->> shortcuts + (remove #(:disabled (second %))) + (run! (fn [[key {:keys [command fn type]}]] + (if (vector? command) + (run! #(mousetrap/bind % (wrap-cb key fn) type) command) + (mousetrap/bind command (wrap-cb key fn) type)))))) + +(defn- reset! + ([] + (mousetrap/reset)) + ([shortcuts] + (mousetrap/reset) + (bind! shortcuts))) + +(defn push-shortcuts + [key shortcuts] + (us/assert ::us/keyword key) + (us/assert ::shortcuts shortcuts) + (ptk/reify ::push-shortcuts + ptk/UpdateEvent + (update [_ state] + (-> state + (update :shortcuts (fnil conj '()) [key shortcuts]))) + + ptk/EffectEvent + (effect [_ state stream] + (let [[key shortcuts] (peek (:shortcuts state))] + (reset! shortcuts))))) + +(defn pop-shortcuts + [key] + (ptk/reify ::pop-shortcuts + ptk/UpdateEvent + (update [_ state] + (update state :shortcuts (fn [shortcuts] + (let [current-key (first (peek shortcuts))] + (if (= key current-key) + (pop shortcuts) + shortcuts))))) + ptk/EffectEvent + (effect [_ state stream] + (let [[key* shortcuts] (peek (:shortcuts state))] + (when (not= key key*) + (reset! shortcuts)))))) diff --git a/frontend/src/app/main/data/workspace/shortcuts.cljs b/frontend/src/app/main/data/workspace/shortcuts.cljs index 64b41594f..7d2fe9bf4 100644 --- a/frontend/src/app/main/data/workspace/shortcuts.cljs +++ b/frontend/src/app/main/data/workspace/shortcuts.cljs @@ -33,7 +33,7 @@ :toggle-assets {:tooltip (ds/alt "I") :command (ds/a-mod "i") :fn #(st/emit! (dw/go-to-layout :assets))} - + :toggle-history {:tooltip (ds/alt "H") :command (ds/a-mod "h") :fn #(st/emit! (dw/go-to-layout :document-history))} @@ -45,7 +45,7 @@ :toggle-rules {:tooltip (ds/meta-shift "R") :command (ds/c-mod "shift+r") :fn #(st/emit! (dw/toggle-layout-flags :rules))} - + :select-all {:tooltip (ds/meta "A") :command (ds/c-mod "a") :fn #(st/emit! (dw/select-all))} @@ -73,7 +73,7 @@ :decrease-zoom {:tooltip "-" :command "-" :fn #(st/emit! (dw/decrease-zoom nil))} - + :group {:tooltip (ds/meta "G") :command (ds/c-mod "g") :fn #(st/emit! dw/group-selected)} @@ -173,7 +173,8 @@ :paste {:tooltip (ds/meta "V") :disabled true - :command (ds/c-mod "v")} + :command (ds/c-mod "v") + :fn (constantly nil)} :delete {:tooltip (ds/supr) :command ["del" "backspace"] diff --git a/frontend/src/app/main/ui/handoff.cljs b/frontend/src/app/main/ui/handoff.cljs index 0fd481771..ee82788f0 100644 --- a/frontend/src/app/main/ui/handoff.cljs +++ b/frontend/src/app/main/ui/handoff.cljs @@ -91,7 +91,7 @@ (events/unlistenByKey key1))))] (mf/use-effect on-mount) - (hooks/use-shortcuts sc/shortcuts) + (hooks/use-shortcuts ::handoff sc/shortcuts) [:div.handoff-layout {:class (dom/classnames :force-visible (:show-thumbnails state))} diff --git a/frontend/src/app/main/ui/hooks.cljs b/frontend/src/app/main/ui/hooks.cljs index bc2a8fd2d..5b0b0645e 100644 --- a/frontend/src/app/main/ui/hooks.cljs +++ b/frontend/src/app/main/ui/hooks.cljs @@ -9,10 +9,11 @@ (:require [app.common.spec :as us] [app.main.data.shortcuts :as dsc] + [app.main.store :as st] [app.util.dom :as dom] - [app.util.object :as obj] [app.util.dom.dnd :as dnd] [app.util.logging :as log] + [app.util.object :as obj] [app.util.timers :as ts] [app.util.transit :as t] [app.util.webapi :as wapi] @@ -35,11 +36,13 @@ state)) (defn use-shortcuts - [shortcuts] + [key shortcuts] (mf/use-effect + #js [(str key) shortcuts] (fn [] - (dsc/bind-shortcuts shortcuts) - (fn [] (dsc/remove-shortcuts))))) + (st/emit! (dsc/push-shortcuts key shortcuts)) + (fn [] + (st/emit! (dsc/pop-shortcuts key)))))) (defn invisible-image [] diff --git a/frontend/src/app/main/ui/viewer.cljs b/frontend/src/app/main/ui/viewer.cljs index bbb940413..930968526 100644 --- a/frontend/src/app/main/ui/viewer.cljs +++ b/frontend/src/app/main/ui/viewer.cljs @@ -237,7 +237,7 @@ (events/unlistenByKey key3))))] (mf/use-effect on-mount) - (hooks/use-shortcuts sc/shortcuts) + (hooks/use-shortcuts ::viewer sc/shortcuts) [:div.viewer-layout {:class (dom/classnames :force-visible (:show-thumbnails state))} diff --git a/frontend/src/app/main/ui/workspace/viewport/hooks.cljs b/frontend/src/app/main/ui/workspace/viewport/hooks.cljs index d5837c2e4..c79651342 100644 --- a/frontend/src/app/main/ui/workspace/viewport/hooks.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/hooks.cljs @@ -153,18 +153,6 @@ (utils/update-transform render-node roots modifiers) (utils/remove-transform render-node roots)))))) -(defn setup-shortcuts [path-editing? drawing-path?] - (mf/use-effect - (mf/deps path-editing? drawing-path?) - (fn [] - (cond - (or drawing-path? path-editing?) - (dsc/bind-shortcuts psc/shortcuts) - - :else - (dsc/bind-shortcuts wsc/shortcuts)) - dsc/remove-shortcuts))) - (defn inside-vbox [vbox objects frame-id] (let [frame (get objects frame-id)] @@ -195,3 +183,17 @@ (:frame-id @hover))] (when (not (contains? @active-frames frame-id)) (swap! active-frames assoc frame-id true)))))) + +;; NOTE: this is executed on each page change, maybe we need to move +;; this shortcuts outside the viewport? + +(defn setup-shortcuts + [path-editing? drawing-path?] + (hooks/use-shortcuts ::workspace wsc/shortcuts) + + (mf/use-effect + (mf/deps path-editing? drawing-path?) + (fn [] + (when (or drawing-path? path-editing?) + (st/emit! (dsc/push-shortcuts ::path psc/shortcuts)) + (st/emitf (dsc/pop-shortcuts ::path)))))) From a86c4a83093e28013b60fc634863952143e42d03 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 12 May 2021 10:24:00 +0200 Subject: [PATCH 073/135] :tada: Add resize observer as rx stream. --- .../main/ui/components/editable_select.cljs | 23 ++++++++++--------- frontend/src/app/main/ui/dashboard/grid.cljs | 23 +++++++++++-------- .../app/main/ui/workspace/shapes/text.cljs | 22 +++++++++++------- frontend/src/app/util/webapi.cljs | 11 +++++++++ 4 files changed, 50 insertions(+), 29 deletions(-) diff --git a/frontend/src/app/main/ui/components/editable_select.cljs b/frontend/src/app/main/ui/components/editable_select.cljs index e9de807d7..27fe4d897 100644 --- a/frontend/src/app/main/ui/components/editable_select.cljs +++ b/frontend/src/app/main/ui/components/editable_select.cljs @@ -44,17 +44,18 @@ (fn [node] ;; There is a problem when changing the state in this callback that ;; produces the dropdown to close in the same event - (timers/schedule - #(when-let [bounds (when node (dom/get-bounding-rect node))] - (let [{window-height :height} (dom/get-window-size) - {:keys [left top height]} bounds - bottom (when (< (- window-height top) 300) (- window-height top)) - top (when (>= (- window-height top) 300) (+ top height))] - (swap! state - assoc - :left left - :top top - :bottom bottom)))))] + (when node + (timers/schedule + #(when-let [bounds (when node (dom/get-bounding-rect node))] + (let [{window-height :height} (dom/get-window-size) + {:keys [left top height]} bounds + bottom (when (< (- window-height top) 300) (- window-height top)) + top (when (>= (- window-height top) 300) (+ top height))] + (swap! state + assoc + :left left + :top top + :bottom bottom))))))] (mf/use-effect (mf/deps value) diff --git a/frontend/src/app/main/ui/dashboard/grid.cljs b/frontend/src/app/main/ui/dashboard/grid.cljs index df35fe7cf..b6a8b10d2 100644 --- a/frontend/src/app/main/ui/dashboard/grid.cljs +++ b/frontend/src/app/main/ui/dashboard/grid.cljs @@ -26,6 +26,7 @@ [app.util.router :as rt] [app.util.time :as dt] [app.util.timers :as ts] + [app.util.webapi :as wapi] [beicon.core :as rx] [cuerdas.core :as str] [rumext.alpha :as mf])) @@ -255,17 +256,19 @@ (mf/use-effect (fn [] - (let [node (mf/ref-val rowref) - obs (new js/ResizeObserver - (fn [entries x] - (ts/raf #(let [row (first entries) - row-rect (.-contentRect ^js row) - row-width (.-width ^js row-rect)] - (reset! width row-width)))))] - - (.observe ^js obs node) + (let [node (mf/ref-val rowref) + mnt? (volatile! true) + sub (->> (wapi/observe-resize node) + (rx/observe-on :af) + (rx/subs (fn [entries] + (let [row (first entries) + row-rect (.-contentRect ^js row) + row-width (.-width ^js row-rect)] + (when @mnt? + (reset! width row-width))))))] (fn [] - (.disconnect ^js obs))))) + (vreset! mnt? false) + (rx/dispose! sub))))) [:div.grid-row.no-wrap {:ref rowref} (when dragging? diff --git a/frontend/src/app/main/ui/workspace/shapes/text.cljs b/frontend/src/app/main/ui/workspace/shapes/text.cljs index 084da1e56..9e4a3efbe 100644 --- a/frontend/src/app/main/ui/workspace/shapes/text.cljs +++ b/frontend/src/app/main/ui/workspace/shapes/text.cljs @@ -21,6 +21,7 @@ [app.util.logging :as log] [app.util.object :as obj] [app.util.timers :as timers] + [app.util.webapi :as wapi] [app.util.text-editor :as ted] [okulary.core :as l] [beicon.core :as rx] @@ -62,6 +63,7 @@ (true? (obj/get props "edition?")) (update-with-current-editor-state)) + mnt (mf/use-ref true) paragraph-ref (mf/use-state nil) handle-resize-text @@ -83,20 +85,24 @@ (mf/deps handle-resize-text) (fn [node] (when node - (let [obs-ref (atom nil)] - (timers/schedule - (fn [] - (when-let [ps-node (dom/query node ".paragraph-set")] - (reset! paragraph-ref ps-node))))))))] + (timers/schedule + #(when (mf/ref-val mnt) + (when-let [ps-node (dom/query node ".paragraph-set")] + (reset! paragraph-ref ps-node)))))))] (mf/use-effect (mf/deps @paragraph-ref handle-resize-text grow-type) (fn [] (when-let [paragraph-node @paragraph-ref] - (let [observer (js/ResizeObserver. handle-resize-text)] + (let [sub (->> (wapi/observe-resize paragraph-node) + (rx/observe-on :af) + (rx/subs handle-resize-text))] (log/debug :msg "Attach resize observer" :shape-id id :shape-name name) - (.observe observer paragraph-node) - #(.disconnect observer))))) + (fn [] + (rx/dispose! sub)))))) + + (mf/use-effect + (fn [] #(mf/set-ref-val! mnt false))) [:& text/text-shape {:ref text-ref-cb :shape shape :grow-type (:grow-type shape)}])) diff --git a/frontend/src/app/util/webapi.cljs b/frontend/src/app/util/webapi.cljs index 9664de3a8..0da4d753a 100644 --- a/frontend/src/app/util/webapi.cljs +++ b/frontend/src/app/util/webapi.cljs @@ -131,3 +131,14 @@ :else (ex/raise :type :not-supported :hint "seems like the current browset does not support fullscreen api."))) + +(defn observe-resize + [node] + (rx/create + (fn [subs] + (let [obs (js/ResizeObserver. + (fn [entries x] + (rx/push! subs entries)))] + (.observe ^js obs node) + (fn [] + (.disconnect ^js obs)))))) From c15c277b033a67bc8159704a571dddcdb9e5be71 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 13 May 2021 08:49:05 +0200 Subject: [PATCH 074/135] :arrow_up: update deps. --- frontend/package.json | 8 ++++---- frontend/shadow-cljs.edn | 4 ++-- frontend/yarn.lock | 42 ++++++++++++++++++++-------------------- 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index e011a8043..21a8f9069 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -29,14 +29,14 @@ "map-stream": "0.0.7", "marked": "^2.0.3", "mkdirp": "^1.0.4", - "postcss": "^8.2.7", + "postcss": "^8.2.15", "postcss-clean": "^1.2.2", "rimraf": "^3.0.0", "sass": "^1.32.8", - "shadow-cljs": "2.12.5" + "shadow-cljs": "2.12.6" }, "dependencies": { - "date-fns": "^2.21.1", + "date-fns": "^2.21.3", "draft-js": "^0.11.7", "highlight.js": "^10.6.0", "js-beautify": "^1.13.5", @@ -46,7 +46,7 @@ "randomcolor": "^0.6.2", "react": "~17.0.1", "react-dom": "~17.0.1", - "rxjs": "~7.0.0-beta.12", + "rxjs": "~7.0.1", "source-map-support": "^0.5.16", "tdigest": "^0.1.1", "ua-parser-js": "^0.7.28", diff --git a/frontend/shadow-cljs.edn b/frontend/shadow-cljs.edn index a845f442b..06cf32402 100644 --- a/frontend/shadow-cljs.edn +++ b/frontend/shadow-cljs.edn @@ -3,7 +3,7 @@ :jvm-opts ["-Xmx600m" "-Xms50m" "-XX:+UseSerialGC"] :dev-http {8888 "classpath:public"} - :source-paths ["src", "vendor", "resources", "../common", "tests"] + :source-paths ["src", "vendor", "resources", "../common", "tests", "dev"] :dependencies [[binaryage/devtools "RELEASE"] @@ -19,7 +19,7 @@ [funcool/okulary "2020.04.14-0"] [funcool/potok "4.0.0"] [funcool/promesa "6.0.0"] - [funcool/rumext "2021.01.26-0"] + [funcool/rumext "2021.05.12-1"] [lambdaisland/uri "1.4.54" :exclusions [org.clojure/data.json]] diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 0390385c1..9ab017eae 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -1169,10 +1169,10 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -date-fns@^2.21.1: - version "2.21.1" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.21.1.tgz#679a4ccaa584c0706ea70b3fa92262ac3009d2b0" - integrity sha512-m1WR0xGiC6j6jNFAyW4Nvh4WxAi4JF4w9jRJwSI8nBmNcyZXPcP9VUQG+6gHQXAmqaGEKDKhOqAtENDC941UkA== +date-fns@^2.21.3: + version "2.21.3" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.21.3.tgz#8f5f6889d7a96bbcc1f0ea50239b397a83357f9b" + integrity sha512-HeYdzCaFflc1i4tGbj7JKMjM4cKGYoyxwcIIkHzNgCkX8xXDNJDZXgDDVchIWpN4eQc3lH37WarduXFZJOtxfw== dateformat@^3.0.3: version "3.0.3" @@ -3343,10 +3343,10 @@ nan@^2.12.1, nan@^2.13.2: resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== -nanoid@^3.1.22: - version "3.1.22" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.22.tgz#b35f8fb7d151990a8aebd5aa5015c03cf726f844" - integrity sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ== +nanoid@^3.1.23: + version "3.1.23" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81" + integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw== nanomatch@^1.2.9: version "1.2.13" @@ -3962,13 +3962,13 @@ postcss@^7.0.16: source-map "^0.6.1" supports-color "^6.1.0" -postcss@^8.2.7: - version "8.2.13" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.13.tgz#dbe043e26e3c068e45113b1ed6375d2d37e2129f" - integrity sha512-FCE5xLH+hjbzRdpbRb1IMCvPv9yZx2QnDarBEYSN0N0HYk+TcXsEhwdFcFb+SRWOKzKGErhIEbBK2ogyLdTtfQ== +postcss@^8.2.15: + version "8.2.15" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.15.tgz#9e66ccf07292817d226fc315cbbf9bc148fbca65" + integrity sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q== dependencies: colorette "^1.2.2" - nanoid "^3.1.22" + nanoid "^3.1.23" source-map "^0.6.1" pretty-hrtime@^1.0.0: @@ -4376,10 +4376,10 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -rxjs@~7.0.0-beta.12: - version "7.0.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.0.0.tgz#c55d67c52aee8804d32ab60965e335bd41e2dc2d" - integrity sha512-I1V/ArAtGJg4kmCfms8fULm0SwYgEsAf2d5WPCBGzTYm2qTjO3Tx4EDFaGjbOox8CeEsC69jQK22mnmfyA26sw== +rxjs@~7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.0.1.tgz#5f41c4f991cea550471fc5d215727390103702c7" + integrity sha512-wViQ4Vgps1xJwqWIBooMNN44usCSthL7wCUl4qWqrVjhGfWyVyXcxlYzfDKkJKACQvZMTOft/jJ3RkbwK1j9QQ== dependencies: tslib "~2.1.0" @@ -4493,10 +4493,10 @@ shadow-cljs-jar@1.3.2: resolved "https://registry.yarnpkg.com/shadow-cljs-jar/-/shadow-cljs-jar-1.3.2.tgz#97273afe1747b6a2311917c1c88d9e243c81957b" integrity sha512-XmeffAZHv8z7451kzeq9oKh8fh278Ak+UIOGGrapyqrFBB773xN8vMQ3O7J7TYLnb9BUwcqadKkmgaq7q6fhZg== -shadow-cljs@2.12.5: - version "2.12.5" - resolved "https://registry.yarnpkg.com/shadow-cljs/-/shadow-cljs-2.12.5.tgz#d3cf29fc1f1e02dd875939549419979e0feadbf4" - integrity sha512-o3xo3coRgnlkI/iI55ccHjj6AU3F1+ovk3hhK86e3P2JGGOpNTAwsGNxUpMC5JAwS9Nz0v6sSk73hWjEOnm6fQ== +shadow-cljs@2.12.6: + version "2.12.6" + resolved "https://registry.yarnpkg.com/shadow-cljs/-/shadow-cljs-2.12.6.tgz#039539fdc35a19c2f2cd15792ae17e7928f97428" + integrity sha512-dNw989EFQki/59kD8Cd8b6HIpBTqPj9ksWIvSg6hI1bgezZHT0oHfJH5UIbXPD+dnVLvbOnDnfOMWYH6ozalcA== dependencies: node-libs-browser "^2.2.1" readline-sync "^1.4.7" From d613d00bcaaffabab6e5857b5cc51ec742df3f2c Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 13 May 2021 08:55:41 +0200 Subject: [PATCH 075/135] :sparkles: Minor improvements on workspace initialization. --- frontend/src/app/main/data/workspace.cljs | 42 +++++++++---------- .../app/main/data/workspace/persistence.cljs | 31 ++++---------- frontend/src/app/main/ui/workspace.cljs | 2 +- 3 files changed, 30 insertions(+), 45 deletions(-) diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 085d3c427..6a3ce495f 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -161,40 +161,40 @@ (->> stream (rx/filter (ptk/type? ::dwp/bundle-fetched)) (rx/take 1) - (rx/map deref) - (rx/mapcat (fn [bundle] - (rx/of (dwn/initialize file-id) - (dwp/initialize-file-persistence file-id) - (dwc/initialize-indices bundle))))) + (rx/mapcat (fn [{:keys [project] :as bundle}] + (rx/merge + (rx/of (dwn/initialize file-id) + (dwp/initialize-file-persistence file-id) + (dwc/initialize-indices bundle)) - ;; Mark file initialized when indexes are ready - (->> stream - (rx/filter #(= ::dwc/index-initialized %)) - (rx/first) - (rx/map (fn [] - (file-initialized project-id file-id)))) - - )))) + (->> stream + (rx/filter #(= ::dwc/index-initialized %)) + (rx/first) + (rx/map #(file-initialized bundle))))))))))) (defn- file-initialized - [project-id file-id] + [{:keys [file users project libraries] :as bundle}] (ptk/reify ::file-initialized ptk/UpdateEvent (update [_ state] - (update state :workspace-file - (fn [file] - (if (= (:id file) file-id) - (assoc file :initialized true) - file)))) + (assoc state + :current-team-id (:team-id project) + :users (d/index-by :id users) + :workspace-undo {} + :workspace-project project + :workspace-file (assoc file :initialized true) + :workspace-data (:data file) + :workspace-libraries (d/index-by :id libraries))) ptk/WatchEvent (watch [it state stream] - (let [ignore-until (get-in state [:workspace-file :ignore-sync-until]) + (let [file-id (:id file) + ignore-until (:ignore-sync-until file) needs-update? (some #(and (> (:modified-at %) (:synced-at %)) (or (not ignore-until) (> (:modified-at %) ignore-until))) - (vals (get state :workspace-libraries)))] + libraries)] (when needs-update? (rx/of (dwl/notify-sync-file file-id))))))) diff --git a/frontend/src/app/main/data/workspace/persistence.cljs b/frontend/src/app/main/data/workspace/persistence.cljs index 2c8f0d7fc..7a6d3fa59 100644 --- a/frontend/src/app/main/data/workspace/persistence.cljs +++ b/frontend/src/app/main/data/workspace/persistence.cljs @@ -263,29 +263,14 @@ (rp/query :team-users {:file-id file-id}) (rp/query :project {:id project-id}) (rp/query :file-libraries {:file-id file-id})) - (rx/first) - (rx/map (fn [bundle] (apply bundle-fetched bundle))))))) - -(defn- bundle-fetched - [file users project libraries] - (ptk/reify ::bundle-fetched - IDeref - (-deref [_] - {:file file - :users users - :project project - :libraries libraries}) - - ptk/UpdateEvent - (update [_ state] - (assoc state - :users (d/index-by :id users) - :workspace-undo {} - :workspace-project project - :workspace-file file - :workspace-data (:data file) - :workspace-libraries (d/index-by :id libraries))))) - + (rx/take 1) + (rx/map (fn [[file users project libraries]] + {:file file + :users users + :project project + :libraries libraries})) + (rx/mapcat (fn [{:keys [project] :as bundle}] + (rx/of (ptk/data-event ::bundle-fetched bundle)))))))) ;; --- Set File shared diff --git a/frontend/src/app/main/ui/workspace.cljs b/frontend/src/app/main/ui/workspace.cljs index bb7f69c92..6fc58ebd2 100644 --- a/frontend/src/app/main/ui/workspace.cljs +++ b/frontend/src/app/main/ui/workspace.cljs @@ -138,7 +138,7 @@ (mf/use-effect (fn [] ;; Close any non-modal dialog that may be still open - (st/emitf dm/hide))) + (st/emit! dm/hide))) (mf/use-effect (mf/deps file) From 90aab92a59e07e2c3f09a5dadaa4485248e3a315 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 13 May 2021 08:57:40 +0200 Subject: [PATCH 076/135] :sparkles: Add more helpers to util/dom ns. --- frontend/src/app/util/dom.cljs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/frontend/src/app/util/dom.cljs b/frontend/src/app/util/dom.cljs index 95679b7c8..7601435ca 100644 --- a/frontend/src/app/util/dom.cljs +++ b/frontend/src/app/util/dom.cljs @@ -293,3 +293,21 @@ (defn remove-attribute [^js node ^string attr] (.removeAttribute node attr)) + +(defn scroll-into-view! + ([element] + (.scrollIntoView ^js element false)) + ([element scroll-top] + (.scrollIntoView ^js element scroll-top))) + +(defn is-in-viewport? + [element] + (let [rect (.getBoundingClientRect element) + height (or (.-innerHeight js/window) + (.. js/document -documentElement -clientHeight)) + width (or (.-innerWidth js/window) + (.. js/document -documentElement -clientWidth))] + (and (>= (.-top rect) 0) + (>= (.-left rect) 0) + (<= (.-bottom rect) height) + (<= (.-right rect) width)))) From 91fe0b098520356acf01812c93b120ff247a3af0 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 10 May 2021 15:35:54 +0200 Subject: [PATCH 077/135] :sparkles: Add more complete font conversion suite. --- backend/src/app/media.clj | 91 ++++++++++++++--- backend/tests/app/tests/_files/font-1.otf | Bin 0 -> 83280 bytes backend/tests/app/tests/_files/font-1.ttf | Bin 0 -> 68640 bytes backend/tests/app/tests/_files/font-1.woff | Bin 0 -> 29836 bytes backend/tests/app/tests/_files/font-2.otf | Bin 0 -> 105456 bytes backend/tests/app/tests/_files/font-2.woff | Bin 0 -> 47648 bytes .../tests/app/tests/test_services_fonts.clj | 92 ++++++++++++++++++ 7 files changed, 171 insertions(+), 12 deletions(-) create mode 100644 backend/tests/app/tests/_files/font-1.otf create mode 100644 backend/tests/app/tests/_files/font-1.ttf create mode 100644 backend/tests/app/tests/_files/font-1.woff create mode 100644 backend/tests/app/tests/_files/font-2.otf create mode 100644 backend/tests/app/tests/_files/font-2.woff create mode 100644 backend/tests/app/tests/test_services_fonts.clj diff --git a/backend/src/app/media.clj b/backend/src/app/media.clj index a1253dc65..2ca686f50 100644 --- a/backend/src/app/media.clj +++ b/backend/src/app/media.clj @@ -13,6 +13,8 @@ [app.common.spec :as us] [app.rlimits :as rlm] [app.rpc.queries.svg :as svg] + [buddy.core.bytes :as bb] + [buddy.core.codecs :as bc] [clojure.java.io :as io] [clojure.java.shell :as sh] [clojure.spec.alpha :as s] @@ -64,7 +66,8 @@ (defmethod process-error :default [error] - (ex/raise :type :internal :cause error)) + (ex/raise :type :internal + :cause error)) (defn run [{:keys [rlimits] :as cfg} {:keys [rlimit] :or {rlimit :image} :as params}] @@ -232,6 +235,19 @@ (fs/slurp-bytes output-file)))) + (otf->ttf [data] + (let [input-file (fs/create-tempfile :prefix "penpot") + output-file (fs/path (str input-file ".ttf")) + _ (with-open [out (io/output-stream input-file)] + (IOUtils/writeChunked ^bytes data ^OutputStream out) + (.flush ^OutputStream out)) + res (sh/sh "fontforge" "-lang=ff" "-c" + (str/fmt "Open('%s'); Generate('%s')" + (str input-file) + (str output-file)))] + (when (zero? (:exit res)) + (fs/slurp-bytes output-file)))) + (ttf-or-otf->woff [data] (let [input-file (fs/create-tempfile :prefix "penpot" :suffix "") output-file (fs/path (str input-file ".woff")) @@ -250,17 +266,68 @@ (.flush ^OutputStream out)) res (sh/sh "woff2_compress" (str input-file))] (when (zero? (:exit res)) - (fs/slurp-bytes output-file))))] + (fs/slurp-bytes output-file)))) + + (woff->sfnt [data] + (let [input-file (fs/create-tempfile :prefix "penpot" :suffix "") + _ (with-open [out (io/output-stream input-file)] + (IOUtils/writeChunked ^bytes data ^OutputStream out) + (.flush ^OutputStream out)) + res (sh/sh "woff2sfnt" (str input-file) + :out-enc :bytes)] + (when (zero? (:exit res)) + (:out res)))) + + ;; Documented here: + ;; https://docs.microsoft.com/en-us/typography/opentype/spec/otff#table-directory + (get-sfnt-type [data] + (let [buff (bb/slice data 0 4) + type (bc/bytes->hex buff)] + (case type + "4f54544f" :otf + "00010000" :ttf + (ex/raise :type :internal + :code :unexpected-data + :hint "unexpected font data")))) + + (gen-if-nil [val factory] + (if (nil? val) + (factory) + val))] (let [current (into #{} (keys input))] - (if (contains? current "font/ttf") - (-> input - (assoc "font/otf" (ttf->otf (get input "font/ttf"))) - (assoc "font/woff" (ttf-or-otf->woff (get input "font/ttf"))) - (assoc "font/woff2" (ttf-or-otf->woff2 (get input "font/ttf")))) + (cond + (contains? current "font/ttf") + (let [data (get input "font/ttf")] + (-> input + (update "font/otf" gen-if-nil #(ttf->otf data)) + (update "font/woff" gen-if-nil #(ttf-or-otf->woff data)) + (assoc "font/woff2" (ttf-or-otf->woff2 data)))) - (-> input - ;; TODO: pending to implement - ;; (assoc "font/ttf" (otf->ttf (get input "font/ttf"))) - (assoc "font/woff" (ttf-or-otf->woff (get input "font/otf"))) - (assoc "font/woff2" (ttf-or-otf->woff2 (get input "font/otf")))))))) + (contains? current "font/otf") + (let [data (get input "font/otf")] + (-> input + (update "font/woff" gen-if-nil #(ttf-or-otf->woff data)) + (assoc "font/ttf" (otf->ttf data)) + (assoc "font/woff2" (ttf-or-otf->woff2 data)))) + + (contains? current "font/woff") + (let [data (get input "font/woff") + sfnt (woff->sfnt data)] + (when-not sfnt + (ex/raise :type :validation + :code :invalid-woff-file + :hint "invalid woff file")) + (let [stype (get-sfnt-type sfnt)] + (cond-> input + true + (-> (assoc "font/woff" data) + (assoc "font/woff2" (ttf-or-otf->woff2 sfnt))) + + (= stype :otf) + (-> (assoc "font/otf" sfnt) + (assoc "font/ttf" (otf->ttf sfnt))) + + (= stype :ttf) + (-> (assoc "font/otf" (ttf->otf sfnt)) + (assoc "font/ttf" sfnt))))))))) diff --git a/backend/tests/app/tests/_files/font-1.otf b/backend/tests/app/tests/_files/font-1.otf new file mode 100644 index 0000000000000000000000000000000000000000..9326ec78445b2edab3c105cee4666ad6c8f43606 GIT binary patch literal 83280 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 literal 0 HcmV?d00001 diff --git a/backend/tests/app/tests/_files/font-2.otf b/backend/tests/app/tests/_files/font-2.otf new file mode 100644 index 0000000000000000000000000000000000000000..2fbddd00e72f1a5727210f425edfffb302aa66e9 GIT binary patch literal 105456 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 (io/resource "app/tests/_files/font-1.ttf") + (fs/slurp-bytes)) + + params {::th/type :create-font-variant + :profile-id (:id prof) + :team-id team-id + :font-id "custom-somefont" + :font-family "somefont" + :font-weight 400 + :font-style "normal" + :data {"font/ttf" ttfdata}} + out (th/mutation! params)] + + ;; (th/print-result! out) + (t/is (nil? (:error out))) + (let [result (:result out)] + (t/is (uuid? (:id result))) + (t/is (uuid? (:ttf-file-id result))) + (t/is (uuid? (:otf-file-id result))) + (t/is (uuid? (:woff1-file-id result))) + (t/is (uuid? (:woff2-file-id result))) + (t/are [k] (= (get params k) + (get result k)) + :team-id + :font-id + :font-family + :font-weight + :font-style)))) + +(t/deftest ttf-font-upload-2 + (let [prof (th/create-profile* 1 {:is-active true}) + team-id (:default-team-id prof) + proj-id (:default-project-id prof) + + data (-> (io/resource "app/tests/_files/font-1.woff") + (fs/slurp-bytes)) + + params {::th/type :create-font-variant + :profile-id (:id prof) + :team-id team-id + :font-id "custom-somefont" + :font-family "somefont" + :font-weight 400 + :font-style "normal" + :data {"font/woff" data}} + out (th/mutation! params)] + + ;; (th/print-result! out) + (t/is (nil? (:error out))) + (let [result (:result out)] + (t/is (uuid? (:id result))) + (t/is (uuid? (:ttf-file-id result))) + (t/is (uuid? (:otf-file-id result))) + (t/is (uuid? (:woff1-file-id result))) + (t/is (uuid? (:woff2-file-id result))) + (t/are [k] (= (get params k) + (get result k)) + :team-id + :font-id + :font-family + :font-weight + :font-style)))) + + + + + From b2e01cd52b3d756ad063bad51b340009ec518b7d Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 13 May 2021 15:02:06 +0200 Subject: [PATCH 078/135] :zap: Performance improvements --- common/app/common/geom/shapes/intersect.cljc | 12 +- docker/devenv/files/nginx.conf | 2 +- frontend/src/app/main/data/workspace.cljs | 14 +- .../src/app/main/data/workspace/changes.cljs | 167 ++++++------------ .../app/main/data/workspace/transforms.cljs | 62 ++++--- .../app/main/ui/workspace/viewport/utils.cljs | 2 +- frontend/src/app/worker/selection.cljs | 2 +- 7 files changed, 122 insertions(+), 139 deletions(-) diff --git a/common/app/common/geom/shapes/intersect.cljc b/common/app/common/geom/shapes/intersect.cljc index 0b6fbcd6f..2b55cb339 100644 --- a/common/app/common/geom/shapes/intersect.cljc +++ b/common/app/common/geom/shapes/intersect.cljc @@ -174,9 +174,17 @@ "Checks if the given rect overlaps with the path in any point" [shape rect] - (let [rect-points (gpr/rect->points rect) + (let [;; If paths are too complex the intersection is too expensive + ;; we fallback to check its bounding box otherwise the performance penalty + ;; is too big + ;; TODO: Look for ways to optimize this operation + simple? (> (count (:content shape)) 100) + + rect-points (gpr/rect->points rect) rect-lines (points->lines rect-points) - path-lines (gpp/path->lines shape) + path-lines (if simple? + (points->lines (:points shape)) + (gpp/path->lines shape)) start-point (-> shape :content (first) :params (gpt/point))] (or (is-point-inside-nonzero? (first rect-points) path-lines) diff --git a/docker/devenv/files/nginx.conf b/docker/devenv/files/nginx.conf index eefd05cd0..ee7e37bb0 100644 --- a/docker/devenv/files/nginx.conf +++ b/docker/devenv/files/nginx.conf @@ -46,7 +46,7 @@ http { listen 3449 default_server; server_name _; - client_max_body_size 5M; + client_max_body_size 20M; charset utf-8; proxy_http_version 1.1; diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 6a3ce495f..53097aac6 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -1164,11 +1164,15 @@ (ptk/reify ::update-shape-flags ptk/WatchEvent (watch [it state stream] - (letfn [(update-fn [obj] - (cond-> obj - (boolean? blocked) (assoc :blocked blocked) - (boolean? hidden) (assoc :hidden hidden)))] - (rx/of (dch/update-shapes-recursive [id] update-fn)))))) + (let [update-fn + (fn [obj] + (cond-> obj + (boolean? blocked) (assoc :blocked blocked) + (boolean? hidden) (assoc :hidden hidden))) + + objects (wsh/lookup-page-objects state) + ids (d/concat [id] (cp/get-children id objects))] + (rx/of (dch/update-shapes ids update-fn)))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/frontend/src/app/main/data/workspace/changes.cljs b/frontend/src/app/main/data/workspace/changes.cljs index 56c918f38..b7be2c2eb 100644 --- a/frontend/src/app/main/data/workspace/changes.cljs +++ b/frontend/src/app/main/data/workspace/changes.cljs @@ -11,6 +11,7 @@ [app.common.pages.spec :as spec] [app.common.spec :as us] [app.main.data.workspace.undo :as dwu] + [app.main.data.workspace.state-helpers :as wsh] [app.main.worker :as uw] [app.main.store :as st] [app.util.logging :as log] @@ -31,127 +32,75 @@ (def commit-changes? (ptk/type? ::commit-changes)) -(defn- generate-operations - ([ma mb] (generate-operations ma mb false)) - ([ma mb undo?] - (let [ops (let [ma-keys (set (keys ma)) - mb-keys (set (keys mb)) - added (set/difference mb-keys ma-keys) - removed (set/difference ma-keys mb-keys) - both (set/intersection ma-keys mb-keys)] - (d/concat - (mapv #(array-map :type :set :attr % :val (get mb %)) added) - (mapv #(array-map :type :set :attr % :val nil) removed) - (loop [items (seq both) - result []] - (if items - (let [k (first items) - vma (get ma k) - vmb (get mb k)] - (if (= vma vmb) - (recur (next items) result) - (recur (next items) - (conj result {:type :set - :attr k - :val vmb - :ignore-touched undo?})))) - result))))] - (if undo? - (conj ops {:type :set-touched :touched (:touched mb)}) - ops)))) +(defn- generate-operation + "Given an object old and new versions and an attribute will append into changes + the set and undo operations" + [changes attr old new] + (let [old-val (get old attr) + new-val (get new attr)] + (if (= old-val new-val) + changes + (-> changes + (update :rops conj {:type :set :attr attr :val new-val}) + (update :uops conj {:type :set :attr attr :val old-val :ignore-touched true}))))) + +(defn- update-shape-changes + "Calculate the changes and undos to be done when a function is applied to a + single object" + [changes page-id objects update-fn attrs id] + (let [old-obj (get objects id) + new-obj (update-fn old-obj) + + attrs (or attrs (d/concat #{} (keys old-obj) (keys new-obj))) + + {rops :rops uops :uops} + (reduce #(generate-operation %1 %2 old-obj new-obj) + {:rops [] :uops []} + attrs) + + uops (cond-> uops + (not (empty? uops)) + (conj {:type :set-touched :touched (:touched old-obj)})) + + change {:type :mod-obj :page-id page-id :id id}] + + (cond-> changes + (not (empty? rops)) + (update :rch conj (assoc change :operations rops)) + + (not (empty? uops)) + (update :uch conj (assoc change :operations uops))))) (defn update-shapes ([ids f] (update-shapes ids f nil)) - ([ids f {:keys [reg-objects? save-undo?] - :or {reg-objects? false save-undo? true}}] + ([ids f {:keys [reg-objects? save-undo? keys] + :or {reg-objects? false save-undo? true attrs nil}}] + (us/assert ::coll-of-uuid ids) (us/assert fn? f) + (ptk/reify ::update-shapes ptk/WatchEvent (watch [it state stream] (let [page-id (:current-page-id state) - objects (get-in state [:workspace-data :pages-index page-id :objects]) - reg-objects {:type :reg-objects :page-id page-id :shapes (vec ids)}] - (loop [ids (seq ids) - rch [] - uch []] - (if (nil? ids) - (rx/of (let [has-rch? (not (empty? rch)) - has-uch? (not (empty? uch)) - rch (cond-> rch (and has-rch? reg-objects?) (conj reg-objects)) - uch (cond-> uch (and has-rch? reg-objects?) (conj reg-objects))] - (when (and has-rch? has-uch?) - (commit-changes {:redo-changes rch - :undo-changes uch - :origin it - :save-undo? save-undo?})))) + objects (wsh/lookup-page-objects state) + reg-objects {:type :reg-objects :page-id page-id :shapes (vec ids)} - (let [id (first ids) - obj1 (get objects id) - obj2 (f obj1) - rch-operations (generate-operations obj1 obj2) - uch-operations (generate-operations obj2 obj1 true) - rchg {:type :mod-obj - :page-id page-id - :operations rch-operations - :id id} - uchg {:type :mod-obj - :page-id page-id - :operations uch-operations - :id id}] - (recur (next ids) - (if (empty? rch-operations) rch (conj rch rchg)) - (if (empty? uch-operations) uch (conj uch uchg))))))))))) + {redo-changes :rch undo-changes :uch} + (reduce #(update-shape-changes %1 page-id objects f keys %2) + {:rch [] :uch []} ids)] -(defn update-shapes-recursive - [ids f] - (us/assert ::coll-of-uuid ids) - (us/assert fn? f) - (letfn [(impl-get-children [objects id] - (cons id (cp/get-children id objects))) + (when-not (empty? redo-changes) + (let [redo-changes (cond-> redo-changes + reg-objects? (conj reg-objects)) - (impl-gen-changes [objects page-id ids] - (loop [sids (seq ids) - cids (seq (impl-get-children objects (first sids))) - rchanges [] - uchanges []] - (cond - (nil? sids) - [rchanges uchanges] + undo-changes (cond-> undo-changes + reg-objects? (conj reg-objects))] - (nil? cids) - (recur (next sids) - (seq (impl-get-children objects (first (next sids)))) - rchanges - uchanges) - - :else - (let [id (first cids) - obj1 (get objects id) - obj2 (f obj1) - rops (generate-operations obj1 obj2) - uops (generate-operations obj2 obj1 true) - rchg {:type :mod-obj - :page-id page-id - :operations rops - :id id} - uchg {:type :mod-obj - :page-id page-id - :operations uops - :id id}] - (recur sids - (next cids) - (conj rchanges rchg) - (conj uchanges uchg))))))] - (ptk/reify ::update-shapes-recursive - ptk/WatchEvent - (watch [it state stream] - (let [page-id (:current-page-id state) - objects (get-in state [:workspace-data :pages-index page-id :objects]) - [rchanges uchanges] (impl-gen-changes objects page-id (seq ids))] - (rx/of (commit-changes {:redo-changes rchanges - :undo-changes uchanges - :origin it}))))))) + (rx/of (commit-changes {:redo-changes redo-changes + :undo-changes undo-changes + :origin it + :save-undo? save-undo?}))))))))) (defn update-indices [page-id changes] @@ -222,4 +171,4 @@ (when (and save-undo? (seq undo-changes)) (let [entry {:undo-changes undo-changes :redo-changes redo-changes}] - (rx/of (dwu/append-undo entry))))))))))) \ No newline at end of file + (rx/of (dwu/append-undo entry))))))))))) diff --git a/frontend/src/app/main/data/workspace/transforms.cljs b/frontend/src/app/main/data/workspace/transforms.cljs index dd4171ab1..e2b3b99b8 100644 --- a/frontend/src/app/main/data/workspace/transforms.cljs +++ b/frontend/src/app/main/data/workspace/transforms.cljs @@ -320,8 +320,7 @@ (rx/map snap/correct-snap-point) (rx/map start-local-displacement)) - (rx/of (set-modifiers ids) - (apply-modifiers ids) + (rx/of (apply-modifiers ids {:set-modifiers? true}) (calculate-frame-for-move ids) (finish-transform))))))))) @@ -390,8 +389,7 @@ (rx/map start-local-displacement)) (rx/of (move-selected direction shift?))) - (rx/of (set-modifiers selected) - (apply-modifiers selected) + (rx/of (apply-modifiers selected {:set-modifiers? true}) (finish-transform)))) (rx/empty)))))) @@ -469,22 +467,46 @@ (rx/of (apply-modifiers ids))))))) (defn apply-modifiers - [ids] - (us/verify (s/coll-of uuid?) ids) - (ptk/reify ::apply-modifiers - ptk/WatchEvent - (watch [it state stream] - (let [objects (wsh/lookup-page-objects state) - children-ids (->> ids (mapcat #(cp/get-children % objects))) - ids-with-children (d/concat [] children-ids ids) - object-modifiers (get state :workspace-modifiers)] - (rx/of (dwu/start-undo-transaction) - (dch/update-shapes ids-with-children (fn [shape] - (-> shape - (merge (get object-modifiers (:id shape))) - (gsh/transform-shape))) {:reg-objects? true}) - (clear-local-transform) - (dwu/commit-undo-transaction)))))) + ([ids] + (apply-modifiers ids nil)) + + ([ids {:keys [set-modifiers?] + :or {set-modifiers? false}}] + (us/verify (s/coll-of uuid?) ids) + (ptk/reify ::apply-modifiers + ptk/WatchEvent + (watch [it state stream] + (let [objects (wsh/lookup-page-objects state) + children-ids (->> ids (mapcat #(cp/get-children % objects))) + ids-with-children (d/concat [] children-ids ids) + + state (if set-modifiers? + (ptk/update (set-modifiers ids) state) + state) + object-modifiers (get state :workspace-modifiers)] + + (rx/of (dwu/start-undo-transaction) + (dch/update-shapes + ids-with-children + (fn [shape] + (-> shape + (merge (get object-modifiers (:id shape))) + (gsh/transform-shape))) + {:reg-objects? true + ;; Attributes that can change in the transform. This way we don't have to check + ;; all the attributes + :attrs [:selrect :points + :x :y + :width :height + :content + :transform + :transform-inverse + :rotation + :flip-x + :flip-y] + }) + (clear-local-transform) + (dwu/commit-undo-transaction))))))) ;; --- Update Dimensions diff --git a/frontend/src/app/main/ui/workspace/viewport/utils.cljs b/frontend/src/app/main/ui/workspace/viewport/utils.cljs index a1e6f6a83..092da6bbc 100644 --- a/frontend/src/app/main/ui/workspace/viewport/utils.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/utils.cljs @@ -24,7 +24,7 @@ (.-parentNode shape-node) (and (some? thumb-node) (= :frame type)) - thumb-node + (.-parentNode thumb-node) :else shape-node)] diff --git a/frontend/src/app/worker/selection.cljs b/frontend/src/app/worker/selection.cljs index b78f3c7f1..21667849b 100644 --- a/frontend/src/app/worker/selection.cljs +++ b/frontend/src/app/worker/selection.cljs @@ -122,9 +122,9 @@ (into [] (comp (map #(unchecked-get % "data")) (filter match-criteria?) + (filter overlaps?) (filter (comp overlaps? :frame)) (filter (comp overlaps-masks? :masks)) - (filter overlaps?) (map add-z-index)) result) From 93d8c171bebde63448beb9a1addcf3d76c6f381b Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Fri, 14 May 2021 15:38:04 +0200 Subject: [PATCH 079/135] :bug: Fix problems with snap index regeneration --- .../app/tests/test_common_geom_shapes.clj | 18 ++++---- common/app/common/geom/shapes/transforms.cljc | 44 +++++++++++-------- common/app/common/pages/helpers.cljc | 7 +-- .../main/data/workspace/state_helpers.cljs | 8 ++-- .../app/main/data/workspace/transforms.cljs | 26 +++++++++++ .../src/app/main/ui/workspace/shapes.cljs | 2 +- .../src/app/main/ui/workspace/viewport.cljs | 10 ++++- .../main/ui/workspace/viewport/outline.cljs | 10 ++--- .../main/ui/workspace/viewport/selection.cljs | 5 +-- .../ui/workspace/viewport/snap_points.cljs | 17 +++++-- frontend/src/app/util/geom/grid.cljs | 4 +- frontend/src/app/worker/snaps.cljs | 20 +++++++-- 12 files changed, 118 insertions(+), 53 deletions(-) diff --git a/backend/tests/app/tests/test_common_geom_shapes.clj b/backend/tests/app/tests/test_common_geom_shapes.clj index b53d3ebc5..8019da994 100644 --- a/backend/tests/app/tests/test_common_geom_shapes.clj +++ b/backend/tests/app/tests/test_common_geom_shapes.clj @@ -52,7 +52,7 @@ (t/testing "Shape without modifiers should stay the same" (t/are [type] (let [shape-before (create-test-shape type) - shape-after (gsh/transform-shape shape-before)] + shape-after (gsh/transform-shape shape-before {:round-coords? false})] (= shape-before shape-after)) :rect :path)) @@ -61,7 +61,7 @@ (t/are [type] (let [modifiers {:displacement (gmt/translate-matrix (gpt/point 10 -10))}] (let [shape-before (create-test-shape type {:modifiers modifiers}) - shape-after (gsh/transform-shape shape-before)] + shape-after (gsh/transform-shape shape-before {:round-coords? false})] (t/is (not= shape-before shape-after)) (t/is (close? (get-in shape-before [:selrect :x]) @@ -82,7 +82,7 @@ (t/are [type] (let [modifiers {:displacement (gmt/matrix)} shape-before (create-test-shape type {:modifiers modifiers}) - shape-after (gsh/transform-shape shape-before)] + shape-after (gsh/transform-shape shape-before {:round-coords? false})] (t/are [prop] (t/is (close? (get-in shape-before [:selrect prop]) (get-in shape-after [:selrect prop]))) @@ -95,7 +95,7 @@ :resize-vector (gpt/point 2 2) :resize-transform (gmt/matrix)} shape-before (create-test-shape type {:modifiers modifiers}) - shape-after (gsh/transform-shape shape-before)] + shape-after (gsh/transform-shape shape-before {:round-coords? false})] (t/is (not= shape-before shape-after)) (t/is (close? (get-in shape-before [:selrect :x]) @@ -117,7 +117,7 @@ :resize-vector (gpt/point 1 1) :resize-transform (gmt/matrix)} shape-before (create-test-shape type {:modifiers modifiers}) - shape-after (gsh/transform-shape shape-before)] + shape-after (gsh/transform-shape shape-before {:round-coords? false})] (t/are [prop] (t/is (close? (get-in shape-before [:selrect prop]) (get-in shape-after [:selrect prop]))) @@ -130,7 +130,7 @@ :resize-vector (gpt/point 0 0) :resize-transform (gmt/matrix)} shape-before (create-test-shape type {:modifiers modifiers}) - shape-after (gsh/transform-shape shape-before)] + shape-after (gsh/transform-shape shape-before {:round-coords? false})] (t/is (> (get-in shape-before [:selrect :width]) (get-in shape-after [:selrect :width]))) (t/is (> (get-in shape-after [:selrect :width]) 0)) @@ -144,7 +144,7 @@ (t/are [type] (let [modifiers {:rotation 30} shape-before (create-test-shape type {:modifiers modifiers}) - shape-after (gsh/transform-shape shape-before)] + shape-after (gsh/transform-shape shape-before {:round-coords? false})] (t/is (not= shape-before shape-after)) @@ -168,7 +168,7 @@ (t/are [type] (let [modifiers {:rotation 0} shape-before (create-test-shape type {:modifiers modifiers}) - shape-after (gsh/transform-shape shape-before)] + shape-after (gsh/transform-shape shape-before {:round-coords? false})] (t/are [prop] (t/is (close? (get-in shape-before [:selrect prop]) (get-in shape-after [:selrect prop]))) @@ -180,7 +180,7 @@ (let [modifiers {:displacement (gmt/matrix)} shape-before (-> (create-test-shape type {:modifiers modifiers}) (assoc :selrect selrect)) - shape-after (gsh/transform-shape shape-before)] + shape-after (gsh/transform-shape shape-before {:round-coords? false})] (= (:selrect shape-before) (:selrect shape-after))) :rect {:x 0 :y 0 :width ##Inf :height ##Inf} diff --git a/common/app/common/geom/shapes/transforms.cljc b/common/app/common/geom/shapes/transforms.cljc index dcfdd31fc..6929ed057 100644 --- a/common/app/common/geom/shapes/transforms.cljc +++ b/common/app/common/geom/shapes/transforms.cljc @@ -266,7 +266,7 @@ (defn apply-transform "Given a new set of points transformed, set up the rectangle so it keeps its properties. We adjust de x,y,width,height and create a custom transform" - [shape transform] + [shape transform round-coords?] ;; (let [points (-> shape :points (transform-points transform)) center (gco/center-points points) @@ -283,6 +283,11 @@ center (:width points-temp-dim) (:height points-temp-dim)) + (cond-> round-coords? + (-> (update :x #(mth/precision % 0)) + (update :y #(mth/precision % 0)) + (update :width #(mth/precision % 0)) + (update :height #(mth/precision % 0)))) (update :width max 1) (update :height max 1)) @@ -297,11 +302,7 @@ :else (-> shape - (merge rect-shape) - (update :x #(mth/precision % 0)) - (update :y #(mth/precision % 0)) - (update :width #(mth/precision % 0)) - (update :height #(mth/precision % 0))))] + (merge rect-shape)))] (as-> shape $ (update $ :transform #(gmt/multiply (or % (gmt/matrix)) matrix)) (update $ :transform-inverse #(gmt/multiply matrix-inverse (or % (gmt/matrix)))) @@ -347,18 +348,23 @@ %))) shape)) -(defn transform-shape [shape] - (let [shape (apply-displacement shape) - center (gco/center-shape shape) - modifiers (:modifiers shape)] - (if (and modifiers center) - (let [transform (modifiers->transform center modifiers)] - (-> shape - (set-flip modifiers) - (apply-transform transform) - (apply-text-resize shape modifiers) - (dissoc :modifiers))) - shape))) +(defn transform-shape + ([shape] + (transform-shape shape nil)) + + ([shape {:keys [round-coords?] + :or {round-coords? true}}] + (let [shape (apply-displacement shape) + center (gco/center-shape shape) + modifiers (:modifiers shape)] + (if (and modifiers center) + (let [transform (modifiers->transform center modifiers)] + (-> shape + (set-flip modifiers) + (apply-transform transform round-coords?) + (apply-text-resize shape modifiers) + (dissoc :modifiers))) + shape)))) (defn update-group-viewbox "Updates the viewbox for groups imported from SVG's" @@ -407,5 +413,5 @@ ;; need to remove the flip flags (assoc :flip-x false) (assoc :flip-y false) - (apply-transform (gmt/matrix))))) + (apply-transform (gmt/matrix) true)))) diff --git a/common/app/common/pages/helpers.cljc b/common/app/common/pages/helpers.cljc index 1fce3111b..87299b2a3 100644 --- a/common/app/common/pages/helpers.cljc +++ b/common/app/common/pages/helpers.cljc @@ -461,8 +461,9 @@ (defn merge-modifiers [objects modifiers] - (let [set-modifier (fn [objects [id modifiers]] - (-> objects - (d/update-when id assoc :modifiers modifiers)))] + (let [set-modifier + (fn [objects [id modifiers]] + (-> objects + (d/update-when id merge modifiers)))] (->> modifiers (reduce set-modifier objects)))) diff --git a/frontend/src/app/main/data/workspace/state_helpers.cljs b/frontend/src/app/main/data/workspace/state_helpers.cljs index c7efb8627..9ce4a3d3f 100644 --- a/frontend/src/app/main/data/workspace/state_helpers.cljs +++ b/frontend/src/app/main/data/workspace/state_helpers.cljs @@ -6,7 +6,8 @@ (ns app.main.data.workspace.state-helpers (:require - [app.common.data :as d])) + [app.common.data :as d] + [app.common.pages :as cp])) (defn lookup-page-objects ([state] @@ -26,8 +27,9 @@ (defn lookup-selected [state] - (let [selected (get-in state [:workspace-local :selected]) - objects (lookup-page-objects state) + (let [objects (lookup-page-objects state) + selected (->> (get-in state [:workspace-local :selected]) + (cp/clean-loops objects)) is-present? (fn [id] (contains? objects id))] (into (d/ordered-set) (filter is-present?) diff --git a/frontend/src/app/main/data/workspace/transforms.cljs b/frontend/src/app/main/data/workspace/transforms.cljs index e2b3b99b8..e2c0ad42f 100644 --- a/frontend/src/app/main/data/workspace/transforms.cljs +++ b/frontend/src/app/main/data/workspace/transforms.cljs @@ -72,6 +72,27 @@ :bottom-left [ex sy])] (gpt/point x y))) +(defn- fix-init-point + "Fix the initial point so the resizes are accurate" + [initial handler shape] + (let [{:keys [x y width height]} (:selrect shape) + {:keys [rotation]} shape + rotation (or rotation 0)] + (if (= rotation 0) + (cond-> initial + (contains? #{:left :top-left :bottom-left} handler) + (assoc :x x) + + (contains? #{:right :top-right :bottom-right} handler) + (assoc :x (+ x width)) + + (contains? #{:top :top-right :top-left} handler) + (assoc :y y) + + (contains? #{:bottom :bottom-right :bottom-left} handler) + (assoc :y (+ y height))) + initial))) + (defn finish-transform [] (ptk/reify ::finish-transform ptk/UpdateEvent @@ -84,6 +105,10 @@ (letfn [(resize [shape initial resizing-shapes layout [point lock? point-snap]] (let [{:keys [width height]} (:selrect shape) {:keys [rotation]} shape + rotation (or rotation 0) + + initial (fix-init-point initial handler shape) + shapev (-> (gpt/point width height)) scale-text (:scale-text layout) @@ -253,6 +278,7 @@ frame-id (cp/frame-id-by-position objects position) moving-shapes (->> ids + (cp/clean-loops objects) (map #(get objects %)) (remove #(= (:frame-id %) frame-id))) diff --git a/frontend/src/app/main/ui/workspace/shapes.cljs b/frontend/src/app/main/ui/workspace/shapes.cljs index 9b30723fd..48b6f00e8 100644 --- a/frontend/src/app/main/ui/workspace/shapes.cljs +++ b/frontend/src/app/main/ui/workspace/shapes.cljs @@ -72,7 +72,7 @@ [props] (let [shape (obj/get props "shape") frame (obj/get props "frame") - shape (-> (geom/transform-shape shape) + shape (-> (geom/transform-shape shape {:round-coords? false}) (geom/translate-to-frame frame)) opts #js {:shape shape :frame frame} diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index 2adbe4189..392232143 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -7,6 +7,7 @@ (ns app.main.ui.workspace.viewport (:require [app.common.data :as d] + [app.common.pages :as cp] [app.common.geom.shapes :as gsh] [app.main.refs :as refs] [app.main.ui.context :as ctx] @@ -61,7 +62,9 @@ options (mf/deref refs/workspace-page-options) objects (mf/deref refs/workspace-page-objects) object-modifiers (mf/deref refs/workspace-modifiers) - objects (d/deep-merge objects object-modifiers) + objects (mf/use-memo + (mf/deps objects object-modifiers) + #(cp/merge-modifiers objects object-modifiers)) ;; STATE alt? (mf/use-state false) @@ -135,7 +138,9 @@ show-prototypes? (= options-mode :prototype) show-selection-handlers? (seq selected) show-snap-distance? (and (contains? layout :dynamic-alignment) (= transform :move) (not (empty? selected))) - show-snap-points? (and (contains? layout :dynamic-alignment) (or drawing-obj transform)) + show-snap-points? (and (or (contains? layout :dynamic-alignment) + (contains? layout :snap-grid)) + (or drawing-obj transform)) show-selrect? (and selrect (empty? drawing)) show-measures? (and (not transform) (not path-editing?) show-distances?)] @@ -283,6 +288,7 @@ :zoom zoom :page-id page-id :selected selected + :objects objects :modifiers modifiers}]) (when show-snap-distance? diff --git a/frontend/src/app/main/ui/workspace/viewport/outline.cljs b/frontend/src/app/main/ui/workspace/viewport/outline.cljs index e292b16dc..6c8733776 100644 --- a/frontend/src/app/main/ui/workspace/viewport/outline.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/outline.cljs @@ -29,7 +29,7 @@ (mf/deps shape) #(when path? (upf/format-path (:content shape)))) - {:keys [id x y width height]} shape + {:keys [id x y width height selrect]} shape outline-type (case (:type shape) :circle "ellipse" @@ -53,10 +53,10 @@ {:d path-data :transform nil} - {:x x - :y y - :width width - :height height})] + {:x (:x selrect) + :y (:y selrect) + :width (:width selrect) + :height (:height selrect)})] [:> outline-type (map->obj (merge common props))])) diff --git a/frontend/src/app/main/ui/workspace/viewport/selection.cljs b/frontend/src/app/main/ui/workspace/viewport/selection.cljs index fa23c720c..85b91a8ff 100644 --- a/frontend/src/app/main/ui/workspace/viewport/selection.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/selection.cljs @@ -241,8 +241,7 @@ disable-handlers (obj/get props "disable-handlers") current-transform (mf/deref refs/current-transform) - selrect (-> (:selrect shape) - minimum-selrect) + selrect (:selrect shape) transform (geom/transform-matrix shape {:no-flip true})] (when (not (#{:move :rotate} current-transform)) @@ -327,7 +326,7 @@ (mf/defc single-selection-handlers [{:keys [shape zoom color disable-handlers on-move-selected] :as props}] (let [shape-id (:id shape) - shape (geom/transform-shape shape) + shape (geom/transform-shape shape {:round-coords? false}) frame (mf/deref (refs/object-by-id (:frame-id shape))) frame (when-not (= (:id frame) uuid/zero) frame) diff --git a/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs b/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs index f9c4f18ca..9dda3ac8f 100644 --- a/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs @@ -6,6 +6,7 @@ (ns app.main.ui.workspace.viewport.snap-points (:require + [app.common.pages :as cp] [app.common.math :as mth] [app.common.data :as d] [app.common.geom.point :as gpt] @@ -151,15 +152,25 @@ (mf/defc snap-points {::mf/wrap [mf/memo]} - [{:keys [layout zoom selected page-id drawing transform modifiers] :as props}] - (let [shapes (mf/deref (refs/objects-by-id selected)) - filter-shapes (mf/deref refs/selected-shapes-with-children) + [{:keys [layout zoom objects selected page-id drawing transform modifiers] :as props}] + + (let [;; shapes (mf/deref (refs/objects-by-id selected)) + ;; filter-shapes (mf/deref refs/selected-shapes-with-children) + + shapes (->> selected + (map #(get objects %)) + (filterv (comp not nil?))) + filter-shapes (into #{} + (mapcat #(cp/get-object-with-children % objects)) + selected) + filter-shapes (fn [id] (if (= id :layout) (or (not (contains? layout :display-grid)) (not (contains? layout :snap-grid))) (or (filter-shapes id) (not (contains? layout :dynamic-alignment))))) + shapes (if drawing [drawing] shapes)] (when (or drawing transform) [:& snap-feedback {:shapes shapes diff --git a/frontend/src/app/util/geom/grid.cljs b/frontend/src/app/util/geom/grid.cljs index c1f882204..bd8f58bd1 100644 --- a/frontend/src/app/util/geom/grid.cljs +++ b/frontend/src/app/util/geom/grid.cljs @@ -88,7 +88,9 @@ (defn grid-snap-points "Returns the snap points for a given grid" - ([shape coord] (mapcat #(grid-snap-points shape % coord) (:grids shape))) + ([shape coord] + (mapcat #(grid-snap-points shape % coord) (:grids shape))) + ([shape {:keys [type display params] :as grid} coord] (when (:display grid) (case type diff --git a/frontend/src/app/worker/snaps.cljs b/frontend/src/app/worker/snaps.cljs index aa531dd4f..a2c395448 100644 --- a/frontend/src/app/worker/snaps.cljs +++ b/frontend/src/app/worker/snaps.cljs @@ -71,13 +71,23 @@ (fn [frame-id shapes] {:x (-> (rt/make-tree) (add-coord-data frame-id shapes :x)) :y (-> (rt/make-tree) (add-coord-data frame-id shapes :y))})] - (d/mapm create-index shapes-data))) +;; Attributes that will change the values of their snap +(def snap-attrs [:x :y :width :height :selrect :grids]) + (defn- update-snap-data [snap-data old-objects new-objects] - (let [changed? #(not= (get old-objects %) (get new-objects %)) + (let [changed? (fn [id] + (let [oldv (get old-objects id) + newv (get new-objects id)] + ;; Check first without select-keys because is faster if they are + ;; the same reference + (and (not= oldv newv) + (not= (select-keys oldv snap-attrs) + (select-keys newv snap-attrs))))) + is-deleted-frame? #(and (not= uuid/zero %) (contains? old-objects %) (not (contains? new-objects %)) @@ -119,9 +129,9 @@ :y (rt/make-tree)}))] (as-> snap-data $ + (reduce delete-data $ to-delete) (reduce add-frames $ frames-to-add) (reduce add-data $ to-add) - (reduce delete-data $ to-delete) (reduce delete-frames $ frames-to-delete)))) (defn- log-state @@ -160,8 +170,10 @@ (defmethod impl/handler :snaps/update-index [{:keys [page-id old-objects new-objects] :as message}] - ;; TODO: Check the difference and update the index acordingly (swap! state update-page page-id old-objects new-objects) + + ;; Uncomment this to regenerate the index everytime + #_(swap! state index-page page-id new-objects) ;; (log-state) nil) From ea22f3f81ce0d4576b39b0e4ad5efd052ddf34fd Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 17 May 2021 11:34:39 +0200 Subject: [PATCH 080/135] :bug: Fixes problem on shape creation --- frontend/src/app/main/data/workspace/drawing/common.cljs | 7 +++++-- frontend/src/app/main/ui/workspace/viewport/actions.cljs | 2 +- .../app/main/ui/workspace/viewport/thumbnail_renderer.cljs | 3 ++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/frontend/src/app/main/data/workspace/drawing/common.cljs b/frontend/src/app/main/data/workspace/drawing/common.cljs index f31d5be14..92db09960 100644 --- a/frontend/src/app/main/data/workspace/drawing/common.cljs +++ b/frontend/src/app/main/data/workspace/drawing/common.cljs @@ -28,7 +28,6 @@ (watch [_ state stream] (let [shape (get-in state [:workspace-drawing :object])] (rx/concat - (rx/of clear-drawing) (when (:initialized? shape) (let [page-id (:current-page-id state) shape-click-width (case (:type shape) @@ -65,4 +64,8 @@ :page-id page-id :rect (:selrect shape)}) (rx/map #(dwc/move-shapes-into-frame (:id shape) %))) - (rx/empty)))))))))) + (rx/empty))))) + + ;; Delay so the mouse event can read the drawing state + (->> (rx/of clear-drawing) + (rx/delay 0))))))) diff --git a/frontend/src/app/main/ui/workspace/viewport/actions.cljs b/frontend/src/app/main/ui/workspace/viewport/actions.cljs index f7550428f..2b6d7d25b 100644 --- a/frontend/src/app/main/ui/workspace/viewport/actions.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/actions.cljs @@ -142,7 +142,7 @@ (not selected?) (not edition) (not drawing-path?) - (not (#{:comments :path} drawing-tool))) + (not drawing-tool)) (st/emit! (dw/select-shape (:id @hover))))))))) (defn on-double-click diff --git a/frontend/src/app/main/ui/workspace/viewport/thumbnail_renderer.cljs b/frontend/src/app/main/ui/workspace/viewport/thumbnail_renderer.cljs index 92213c131..79b41e0d3 100644 --- a/frontend/src/app/main/ui/workspace/viewport/thumbnail_renderer.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/thumbnail_renderer.cljs @@ -99,7 +99,8 @@ (timers/schedule (fn [] (st/emit! (dwc/update-shapes [@shape-id] - #(assoc % :thumbnail data))) + #(assoc % :thumbnail data) + {:save-undo? false})) (rx/push! next :next))))) on-frame-not-found From 087f2aee0968f579b1b970f02c6554c8c6869d1a Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 14 May 2021 12:24:35 +0200 Subject: [PATCH 081/135] :arrow_up: Update backend dependencies. --- backend/deps.edn | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/backend/deps.edn b/backend/deps.edn index 316e1f981..8032825c0 100644 --- a/backend/deps.edn +++ b/backend/deps.edn @@ -4,8 +4,8 @@ "jcenter" {:url "https://jcenter.bintray.com/"}} :deps {org.clojure/clojure {:mvn/version "1.10.3"} - org.clojure/data.json {:mvn/version "2.2.1"} - org.clojure/core.async {:mvn/version "1.3.610"} + org.clojure/data.json {:mvn/version "2.2.3"} + org.clojure/core.async {:mvn/version "1.3.618"} org.clojure/tools.cli {:mvn/version "1.0.206"} org.clojure/clojurescript {:mvn/version "1.10.844"} @@ -32,28 +32,28 @@ org.eclipse.jetty/jetty-servlet]} io.prometheus/simpleclient_httpserver {:mvn/version "0.9.0"} - selmer/selmer {:mvn/version "1.12.33"} + selmer/selmer {:mvn/version "1.12.40"} expound/expound {:mvn/version "0.8.9"} com.cognitect/transit-clj {:mvn/version "1.0.324"} - io.lettuce/lettuce-core {:mvn/version "6.1.1.RELEASE"} + io.lettuce/lettuce-core {:mvn/version "6.1.2.RELEASE"} java-http-clj/java-http-clj {:mvn/version "0.4.2"} info.sunng/ring-jetty9-adapter {:mvn/version "0.15.1"} - com.github.seancorfield/next.jdbc {:mvn/version "1.1.646"} - metosin/reitit-ring {:mvn/version "0.5.12"} - metosin/jsonista {:mvn/version "0.3.1"} + com.github.seancorfield/next.jdbc {:mvn/version "1.2.659"} + metosin/reitit-ring {:mvn/version "0.5.13"} + metosin/jsonista {:mvn/version "0.3.3"} - org.postgresql/postgresql {:mvn/version "42.2.19"} + org.postgresql/postgresql {:mvn/version "42.2.20"} com.zaxxer/HikariCP {:mvn/version "4.0.3"} funcool/datoteka {:mvn/version "2.0.0"} - funcool/promesa {:mvn/version "6.0.0"} - funcool/cuerdas {:mvn/version "2020.03.26-3"} + funcool/promesa {:mvn/version "6.0.1"} + funcool/cuerdas {:mvn/version "2021.05.09-0"} - buddy/buddy-core {:mvn/version "1.9.0"} - buddy/buddy-hashers {:mvn/version "1.7.0"} - buddy/buddy-sign {:mvn/version "3.3.0"} + buddy/buddy-core {:mvn/version "1.10.1"} + buddy/buddy-hashers {:mvn/version "1.8.1"} + buddy/buddy-sign {:mvn/version "3.4.1"} lambdaisland/uri {:mvn/version "1.4.54" :exclusions [org.clojure/data.json]} @@ -69,7 +69,7 @@ org.clojars.pntblnk/clj-ldap {:mvn/version "0.0.17"} integrant/integrant {:mvn/version "0.8.0"} - software.amazon.awssdk/s3 {:mvn/version "2.16.44"} + software.amazon.awssdk/s3 {:mvn/version "2.16.62"} ;; exception printing io.aviso/pretty {:mvn/version "0.1.37"} @@ -78,9 +78,9 @@ :aliases {:dev {:extra-deps - {com.bhauman/rebel-readline {:mvn/version "0.1.4"} - org.clojure/tools.namespace {:mvn/version "1.1.0"} - org.clojure/test.check {:mvn/version "1.1.0"} + {com.bhauman/rebel-readline {:mvn/version "RELEASE"} + org.clojure/tools.namespace {:mvn/version "RELEASE"} + org.clojure/test.check {:mvn/version "RELEASE"} fipp/fipp {:mvn/version "0.6.23"} criterium/criterium {:mvn/version "0.4.6"} From a3e464aea374857f1a546d666c2f2e17a9d9e9d6 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 14 May 2021 12:34:10 +0200 Subject: [PATCH 082/135] :sparkles: Add better error reporting on config validation. --- backend/src/app/config.clj | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/backend/src/app/config.clj b/backend/src/app/config.clj index fde08020d..69888a54c 100644 --- a/backend/src/app/config.clj +++ b/backend/src/app/config.clj @@ -9,6 +9,7 @@ (:refer-clojure :exclude [get]) (:require [app.common.data :as d] + [app.common.exceptions :as ex] [app.common.spec :as us] [app.common.version :as v] [app.util.time :as dt] @@ -46,8 +47,7 @@ :database-username "penpot" :database-password "penpot" - :default-blob-version 1 - + :default-blob-version 3 :loggers-zmq-uri "tcp://localhost:45556" :asserts-enabled false @@ -273,9 +273,17 @@ (defn- read-config [] - (->> (read-env "penpot") - (merge defaults) - (us/conform ::config))) + (try + (->> (read-env "penpot") + (merge defaults) + (us/conform ::config)) + (catch Throwable e + (when (ex/ex-info? e) + (println ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;") + (println "Error on validating configuration:") + (println (:explain (ex-data e)) + (println ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"))) + (throw e)))) (def version (v/parse (or (some-> (io/resource "version.txt") (slurp) From 6557792a98b8bfba42a4cc3cdc9fb5ef5151b738 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 14 May 2021 12:34:55 +0200 Subject: [PATCH 083/135] :sparkles: Unify all deletion delays on main config. --- backend/src/app/main.clj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/src/app/main.clj b/backend/src/app/main.clj index dc8e8927e..c616605a5 100644 --- a/backend/src/app/main.clj +++ b/backend/src/app/main.clj @@ -220,7 +220,7 @@ :app.tasks.tasks-gc/handler {:pool (ig/ref :app.db/pool) - :max-age (dt/duration {:hours 24}) + :max-age cf/deletion-delay :metrics (ig/ref :app.metrics/metrics)} :app.tasks.delete-object/handler @@ -239,12 +239,12 @@ :app.tasks.file-media-gc/handler {:pool (ig/ref :app.db/pool) :metrics (ig/ref :app.metrics/metrics) - :max-age (dt/duration {:hours 48})} + :max-age cf/deletion-delay} :app.tasks.file-xlog-gc/handler {:pool (ig/ref :app.db/pool) :metrics (ig/ref :app.metrics/metrics) - :max-age (dt/duration {:hours 48})} + :max-age cf/deletion-delay} :app.tasks.telemetry/handler {:pool (ig/ref :app.db/pool) From 610afc7702550b3743a9bd23d06f36983b66b59f Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 14 May 2021 12:35:22 +0200 Subject: [PATCH 084/135] :sparkles: Fix msbus/redis logged errors on restarting (repl). --- backend/src/app/msgbus.clj | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/backend/src/app/msgbus.clj b/backend/src/app/msgbus.clj index 8058c6577..f7a013f72 100644 --- a/backend/src/app/msgbus.clj +++ b/backend/src/app/msgbus.clj @@ -21,6 +21,7 @@ java.time.Duration io.lettuce.core.RedisClient io.lettuce.core.RedisURI + io.lettuce.core.api.StatefulConnection io.lettuce.core.api.StatefulRedisConnection io.lettuce.core.api.async.RedisAsyncCommands io.lettuce.core.codec.ByteArrayCodec @@ -130,6 +131,7 @@ ;; --- REDIS BACKEND IMPL +(declare impl-redis-open?) (declare impl-redis-pub) (declare impl-redis-sub) (declare impl-redis-unsub) @@ -162,7 +164,8 @@ (a/go-loop [] (when-let [val (a/ Date: Fri, 14 May 2021 12:37:44 +0200 Subject: [PATCH 085/135] :sparkles: Minor improvements on batching channel impl. --- backend/src/app/util/async.clj | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/backend/src/app/util/async.clj b/backend/src/app/util/async.clj index a0492e086..984cbb167 100644 --- a/backend/src/app/util/async.clj +++ b/backend/src/app/util/async.clj @@ -81,7 +81,11 @@ (recur (a/timeout max-batch-age) init))) (nil? val) - (a/close! out) + (if (empty? buf) + (a/close! out) + (do + (a/offer! out [:timeout buf]) + (a/close! out))) (identical? port in) (let [buf (conj buf val)] @@ -91,3 +95,7 @@ (recur (a/timeout max-batch-age) init)) (recur tch buf)))))) out)) + +(defn thread-sleep + [ms] + (Thread/sleep ms)) From fb2d1e795304a59e1d42c6f070b5379b6c229cff Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 14 May 2021 12:38:28 +0200 Subject: [PATCH 086/135] :tada: Add proper audit log impl. --- backend/src/app/config.clj | 11 + backend/src/app/loggers/activity.clj | 127 ----------- backend/src/app/loggers/audit.clj | 212 ++++++++++++++++++ backend/src/app/main.clj | 31 ++- backend/src/app/migrations.clj | 3 + .../sql/0054-add-audit-log-table.sql | 25 +++ backend/src/app/rpc.clj | 34 +-- backend/src/app/rpc/mutations/profile.clj | 7 +- 8 files changed, 301 insertions(+), 149 deletions(-) delete mode 100644 backend/src/app/loggers/activity.clj create mode 100644 backend/src/app/loggers/audit.clj create mode 100644 backend/src/app/migrations/sql/0054-add-audit-log-table.sql diff --git a/backend/src/app/config.clj b/backend/src/app/config.clj index 69888a54c..819b3da75 100644 --- a/backend/src/app/config.clj +++ b/backend/src/app/config.clj @@ -99,6 +99,12 @@ :initial-project-skey "initial-project" }) +(s/def ::audit-enabled ::us/boolean) +(s/def ::audit-archive-enabled ::us/boolean) +(s/def ::audit-archive-uri ::us/string) +(s/def ::audit-archive-gc-enabled ::us/boolean) +(s/def ::audit-archive-gc-max-age ::dt/duration) + (s/def ::secret-key ::us/string) (s/def ::allow-demo-users ::us/boolean) (s/def ::asserts-enabled ::us/boolean) @@ -182,6 +188,11 @@ (s/def ::config (s/keys :opt-un [::secret-key ::allow-demo-users + ::audit-enabled + ::audit-archive-enabled + ::audit-archive-uri + ::audit-archive-gc-enabled + ::audit-archive-gc-max-age ::asserts-enabled ::database-password ::database-uri diff --git a/backend/src/app/loggers/activity.clj b/backend/src/app/loggers/activity.clj deleted file mode 100644 index 4f02fb701..000000000 --- a/backend/src/app/loggers/activity.clj +++ /dev/null @@ -1,127 +0,0 @@ -;; 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) UXBOX Labs SL - -(ns app.loggers.activity - "Activity registry logger consumer." - (:require - [app.common.data :as d] - [app.common.spec :as us] - [app.config :as cf] - [app.util.async :as aa] - [app.util.http :as http] - [app.util.logging :as l] - [app.util.time :as dt] - [app.util.transit :as t] - [app.worker :as wrk] - [clojure.core.async :as a] - [clojure.spec.alpha :as s] - [integrant.core :as ig] - [lambdaisland.uri :as u])) - -(declare process-event) -(declare handle-event) - -(s/def ::uri ::us/string) - -(defmethod ig/pre-init-spec ::reporter [_] - (s/keys :req-un [::wrk/executor] - :opt-un [::uri])) - -(defmethod ig/init-key ::reporter - [_ {:keys [uri] :as cfg}] - (if (string? uri) - (do - (l/info :msg "intializing activity reporter" :uri uri) - (let [xform (comp (map process-event) - (filter map?)) - input (a/chan (a/sliding-buffer 1024) xform)] - (a/go-loop [] - (when-let [event (a/ params - (or (string? v) - (uuid? v) - (number? v)) - (assoc k v))) - {} - params))) - -(defn- process-event - [{:keys [type name params result] :as event}] - (let [profile-id (:profile-id params)] - (if (uuid? profile-id) - {:type (str "backend:" (d/name type)) - :name name - :timestamp (dt/now) - :profile-id profile-id - :props (clean-params params)} - (cond - (= "register-profile" name) - {:type (str "backend:" (d/name type)) - :name name - :timestamp (dt/now) - :profile-id (:id result) - :props (clean-params (:props result))} - - :else nil)))) - -(defn- send-activity - [{:keys [uri tokens]} event i] - (try - (let [token (tokens :generate {:iss "authentication" - :iat (dt/now) - :uid (:profile-id event)}) - body (t/encode {:events [event]}) - headers {"content-type" "application/transit+json" - "origin" (cf/get :public-uri) - "cookie" (u/map->query-string {:auth-token token})} - params {:uri uri - :timeout 6000 - :method :post - :headers headers - :body body} - response (http/send! params)] - (if (= (:status response) 204) - true - (do - (l/error :hint "error on sending activity" - :try i - :rsp (pr-str response)) - false))) - (catch Exception e - (l/error :hint "error on sending message to loki" - :cause e - :try i) - false))) - -(defn- handle-event - [{:keys [executor] :as cfg} event] - (aa/with-thread executor - (loop [i 1] - (when (and (not (send-activity cfg event i)) (< i 20)) - (Thread/sleep (* i 2000)) - (recur (inc i)))))) - diff --git a/backend/src/app/loggers/audit.clj b/backend/src/app/loggers/audit.clj new file mode 100644 index 000000000..7d8c7e583 --- /dev/null +++ b/backend/src/app/loggers/audit.clj @@ -0,0 +1,212 @@ +;; 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) UXBOX Labs SL + +(ns app.loggers.audit + "Services related to the user activity (audit log)." + (:require + [app.common.exceptions :as ex] + [app.common.spec :as us] + [app.common.uuid :as uuid] + [app.config :as cf] + [app.db :as db] + [app.util.async :as aa] + [app.util.http :as http] + [app.util.logging :as l] + [app.util.time :as dt] + [app.util.transit :as t] + [app.worker :as wrk] + [clojure.core.async :as a] + [clojure.spec.alpha :as s] + [integrant.core :as ig] + [lambdaisland.uri :as u])) + +(defn clean-props + "Cleans the params from complex data, only accept strings, numbers and + uuids and removing sensitive data such as :password and related + props." + [params] + (let [params (dissoc params :session-id :password :old-password :token)] + (reduce-kv (fn [params k v] + (cond-> params + (or (string? v) + (uuid? v) + (number? v)) + (assoc k v))) + {} + params))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Collector +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; Defines a service that collects the audit/activity log using +;; internal database. Later this audit log can be transferred to +;; an external storage and data cleared. + +(declare persist-events) +(s/def ::enabled ::us/boolean) + +(defmethod ig/pre-init-spec ::collector [_] + (s/keys :req-un [::db/pool ::wrk/executor ::enabled])) + +(defmethod ig/init-key ::collector + [_ {:keys [enabled] :as cfg}] + (when enabled + (l/info :msg "intializing audit collector") + (let [input (a/chan) + buffer (aa/batch input {:max-batch-size 100 + :max-batch-age (* 5 1000) + :init []})] + (a/go-loop [] + (when-let [[type events] (a/row [event] + [(uuid/next) + (:name event) + (:type event) + (:profile-id event) + (db/tjson (:props event))])] + + (aa/with-thread executor + (db/with-atomic [conn pool] + (db/insert-multi! conn :audit-log + [:id :name :type :profile-id :props] + (sequence (map event->row) events)))))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Archive Task +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; This is a task responsible to send the accomulated events to an +;; external service for archival. + +(declare archive-events) + +(s/def ::uri ::us/string) +(s/def ::tokens fn?) + +(defmethod ig/pre-init-spec ::archive-task [_] + (s/keys :req-un [::db/pool ::tokens ::enabled] + :opt-un [::uri])) + +(defmethod ig/init-key ::archive-task + [_ {:keys [uri enabled] :as cfg}] + (fn [_] + (when (and enabled (not uri)) + (ex/raise :type :internal + :code :task-not-configured + :hint "archive task not configured, missing uri")) + (l/debug :msg "start archiver" :uri uri) + (loop [] + (let [res (archive-events cfg)] + (when (= res :continue) + (aa/thread-sleep 200) + (recur)))))) + +(def sql:retrieve-batch-of-audit-log + "select * from audit_log + where archived_at is null + order by created_at asc + limit 100 + for update skip locked;") + +(defn archive-events + [{:keys [pool uri tokens] :as cfg}] + (letfn [(decode-row [{:keys [props] :as row}] + (cond-> row + (db/pgobject? props) + (assoc :props (db/decode-transit-pgobject props)))) + + (row->event [{:keys [name type created-at profile-id props]}] + {:type (str "backend:" type) + :name name + :timestamp created-at + :profile-id profile-id + :props props}) + + (send [events] + (let [token (tokens :generate {:iss "authentication" + :iat (dt/now) + :uid uuid/zero}) + body (t/encode {:events events}) + headers {"content-type" "application/transit+json" + "origin" (cf/get :public-uri) + "cookie" (u/map->query-string {:auth-token token})} + params {:uri uri + :timeout 5000 + :method :post + :headers headers + :body body} + resp (http/send! params)] + (when (not= (:status resp) 204) + (ex/raise :type :internal + :code :unable-to-send-events + :hint "unable to send events" + :context resp)))) + + (mark-as-archived [conn rows] + (db/exec-one! conn ["update audit_log set archived_at=now() where id = ANY(?)" + (->> (map :id rows) + (into-array java.util.UUID) + (db/create-array conn "uuid"))]))] + + (db/with-atomic [conn pool] + (let [rows (db/exec! conn [sql:retrieve-batch-of-audit-log]) + + xform (comp (map decode-row) + (map row->event)) + events (into [] xform rows)] + (l/debug :action "archive-events" :uri uri :events (count events)) + (if (empty? events) + :empty + (do + (send events) + (mark-as-archived conn rows) + :continue)))))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; GC Task +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(declare clean-archived) + +(s/def ::max-age ::cf/audit-archive-gc-max-age) + +(defmethod ig/pre-init-spec ::archive-gc-task [_] + (s/keys :req-un [::db/pool ::enabled ::max-age])) + +(defmethod ig/init-key ::archive-gc-task + [_ cfg] + (fn [_] + (clean-archived cfg))) + +(def sql:clean-archived + "delete from audit_log + where archived_at is not null + and archived_at < now() - ?::interval") + +(defn- clean-archived + [{:keys [pool max-age]}] + (prn "clean-archived" max-age) + (let [interval (db/interval max-age) + result (db/exec-one! pool [sql:clean-archived interval]) + result (:next.jdbc/update-count result)] + (l/debug :action "clean archived audit log" :removed result) + result)) diff --git a/backend/src/app/main.clj b/backend/src/app/main.clj index c616605a5..a3cfb79f5 100644 --- a/backend/src/app/main.clj +++ b/backend/src/app/main.clj @@ -140,7 +140,7 @@ :msgbus (ig/ref :app.msgbus/msgbus) :rlimits (ig/ref :app.rlimits/all) :public-uri (cf/get :public-uri) - :activity (ig/ref :app.loggers.activity/reporter)} + :audit (ig/ref :app.loggers.audit/collector)} :app.notifications/handler {:msgbus (ig/ref :app.msgbus/msgbus) @@ -187,6 +187,14 @@ {:cron #app/cron "0 0 0 */1 * ?" ;; daily :task :tasks-gc} + (when (cf/get :audit-archive-enabled) + {:cron #app/cron "0 0 * * * ?" ;; every 1h + :task :audit-archive}) + + (when (cf/get :audit-archive-gc-enabled) + {:cron #app/cron "0 0 * * * ?" ;; every 1h + :task :audit-archive-gc}) + (when (cf/get :telemetry-enabled) {:cron #app/cron "0 0 */6 * * ?" ;; every 6h :task :telemetry})]} @@ -204,7 +212,9 @@ :storage-recheck (ig/ref :app.storage/recheck-task) :tasks-gc (ig/ref :app.tasks.tasks-gc/handler) :telemetry (ig/ref :app.tasks.telemetry/handler) - :session-gc (ig/ref :app.http.session/gc-task)}} + :session-gc (ig/ref :app.http.session/gc-task) + :audit-archive (ig/ref :app.loggers.audit/archive-task) + :audit-archive-gc (ig/ref :app.loggers.audit/archive-gc-task)}} :app.emails/sendmail-handler {:host (cf/get :smtp-host) @@ -263,11 +273,22 @@ :app.loggers.zmq/receiver {:endpoint (cf/get :loggers-zmq-uri)} - :app.loggers.activity/reporter - {:uri (cf/get :activity-reporter-uri) - :tokens (ig/ref :app.tokens/tokens) + :app.loggers.audit/collector + {:enabled (cf/get :audit-enabled false) + :pool (ig/ref :app.db/pool) :executor (ig/ref :app.worker/executor)} + :app.loggers.audit/archive-task + {:uri (cf/get :audit-archive-uri) + :enabled (cf/get :audit-archive-enabled false) + :tokens (ig/ref :app.tokens/tokens) + :pool (ig/ref :app.db/pool)} + + :app.loggers.audit/archive-gc-task + {:enabled (cf/get :audit-archive-gc-enabled false) + :max-age (cf/get :audit-archive-gc-max-age cf/deletion-delay) + :pool (ig/ref :app.db/pool)} + :app.loggers.loki/reporter {:uri (cf/get :loggers-loki-uri) :receiver (ig/ref :app.loggers.zmq/receiver) diff --git a/backend/src/app/migrations.clj b/backend/src/app/migrations.clj index 4989dd109..26e28f181 100644 --- a/backend/src/app/migrations.clj +++ b/backend/src/app/migrations.clj @@ -169,6 +169,9 @@ {:name "0053-add-team-font-variant-table" :fn (mg/resource "app/migrations/sql/0053-add-team-font-variant-table.sql")} + + {:name "0054-add-audit-log-table" + :fn (mg/resource "app/migrations/sql/0054-add-audit-log-table.sql")} ]) diff --git a/backend/src/app/migrations/sql/0054-add-audit-log-table.sql b/backend/src/app/migrations/sql/0054-add-audit-log-table.sql new file mode 100644 index 000000000..b7097fde2 --- /dev/null +++ b/backend/src/app/migrations/sql/0054-add-audit-log-table.sql @@ -0,0 +1,25 @@ +CREATE TABLE audit_log ( + id uuid NOT NULL DEFAULT uuid_generate_v4(), + + name text NOT NULL, + type text NOT NULL, + + created_at timestamptz DEFAULT clock_timestamp() NOT NULL, + archived_at timestamptz NULL, + + profile_id uuid NOT NULL, + props jsonb, + + PRIMARY KEY (created_at, profile_id) +) PARTITION BY RANGE (created_at); + +ALTER TABLE audit_log + ALTER COLUMN name SET STORAGE external, + ALTER COLUMN type SET STORAGE external, + ALTER COLUMN props SET STORAGE external; + +CREATE INDEX audit_log_id_archived_at_idx ON audit_log (id, archived_at); + +CREATE TABLE audit_log_default (LIKE audit_log INCLUDING ALL); + +ALTER TABLE audit_log ATTACH PARTITION audit_log_default DEFAULT; diff --git a/backend/src/app/rpc.clj b/backend/src/app/rpc.clj index 16ab02791..da0497914 100644 --- a/backend/src/app/rpc.clj +++ b/backend/src/app/rpc.clj @@ -10,6 +10,7 @@ [app.common.exceptions :as ex] [app.common.spec :as us] [app.db :as db] + [app.loggers.audit :as audit] [app.metrics :as mtx] [app.rlimits :as rlm] [app.util.logging :as l] @@ -86,28 +87,31 @@ (defn- wrap-impl - [{:keys [activity] :as cfg} f mdata] + [{:keys [audit] :as cfg} f mdata] (let [f (wrap-with-rlimits cfg f mdata) f (wrap-with-metrics cfg f mdata) spec (or (::sv/spec mdata) (s/spec any?)) auth? (:auth mdata true)] - (l/trace :action "register" - :name (::sv/name mdata)) + + (l/trace :action "register" :name (::sv/name mdata)) (fn [params] (when (and auth? (not (uuid? (:profile-id params)))) (ex/raise :type :authentication :code :authentication-required :hint "authentication required for this endpoint")) + (let [params (us/conform spec params) result (f cfg params) - ;; On non authenticated handlers we check the private - ;; result that can be found on the metadata. - result* (if auth? result (:result (meta result) {}))] - (when (::type cfg) - (activity :submit {:type (::type cfg) - :name (::sv/name mdata) - :params params - :result result*})) + resultm (meta result)] + (when (and (::type cfg) (fn? audit)) + (let [profile-id (or (:profile-id params) + (:profile-id result) + (::audit/profile-id resultm)) + props (d/merge params (::audit/props resultm))] + (audit :submit {:type (::type cfg) + :name (::sv/name mdata) + :profile-id profile-id + :props (audit/clean-props props)}))) result)))) (defn- process-method @@ -124,7 +128,7 @@ :registry (get-in cfg [:metrics :registry]) :type :histogram :help "Timing of query services."}) - cfg (assoc cfg ::mobj mobj)] + cfg (assoc cfg ::mobj mobj ::type "query")] (->> (sv/scan-ns 'app.rpc.queries.projects 'app.rpc.queries.files 'app.rpc.queries.teams @@ -145,7 +149,7 @@ :registry (get-in cfg [:metrics :registry]) :type :histogram :help "Timing of mutation services."}) - cfg (assoc cfg ::mobj mobj ::type :mutation)] + cfg (assoc cfg ::mobj mobj ::type "mutation")] (->> (sv/scan-ns 'app.rpc.mutations.demo 'app.rpc.mutations.media 'app.rpc.mutations.profile @@ -164,10 +168,10 @@ (s/def ::storage some?) (s/def ::session map?) (s/def ::tokens fn?) -(s/def ::activity some?) +(s/def ::audit (s/nilable fn?)) (defmethod ig/pre-init-spec ::rpc [_] - (s/keys :req-un [::storage ::session ::tokens ::activity + (s/keys :req-un [::storage ::session ::tokens ::audit ::mtx/metrics ::rlm/rlimits ::db/pool])) (defmethod ig/init-key ::rpc diff --git a/backend/src/app/rpc/mutations/profile.clj b/backend/src/app/rpc/mutations/profile.clj index 6e75017a5..3024c28bc 100644 --- a/backend/src/app/rpc/mutations/profile.clj +++ b/backend/src/app/rpc/mutations/profile.clj @@ -14,6 +14,7 @@ [app.db :as db] [app.emails :as eml] [app.http.oauth :refer [extract-props]] + [app.loggers.audit :as audit] [app.media :as media] [app.rpc.mutations.projects :as projects] [app.rpc.mutations.teams :as teams] @@ -103,7 +104,8 @@ (with-meta resp {:transform-response ((:create session) (:id profile)) :before-complete (annotate-profile-register metrics profile) - :result profile})) + ::audit/props (:props profile) + ::audit/profile-id (:id profile)})) ;; If no token is provided, send a verification email (let [vtoken (tokens :generate @@ -132,7 +134,8 @@ (with-meta profile {:before-complete (annotate-profile-register metrics profile) - :result profile}))))) + ::audit/props (:props profile) + ::audit/profile-id (:id profile)}))))) (defn email-domain-in-whitelist? "Returns true if email's domain is in the given whitelist or if given From 3fdcea78e44cc27c09f2bbf2348ce3619d751baa Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 14 May 2021 14:13:46 +0200 Subject: [PATCH 087/135] :sparkles: Properly configure page default timeouts (exporter). --- exporter/src/app/browser.cljs | 45 ++++++++++++++++----------- exporter/src/app/renderer/bitmap.cljs | 24 ++++++++------ exporter/src/app/renderer/svg.cljs | 22 +++++++------ 3 files changed, 53 insertions(+), 38 deletions(-) diff --git a/exporter/src/app/browser.cljs b/exporter/src/app/browser.cljs index 6b487e9f3..90f7cd00b 100644 --- a/exporter/src/app/browser.cljs +++ b/exporter/src/app/browser.cljs @@ -6,14 +6,17 @@ (ns app.browser (:require + ["puppeteer-cluster" :as ppc] + [app.common.data :as d] [app.config :as cf] [lambdaisland.glogi :as log] - [promesa.core :as p] - ["puppeteer-cluster" :as ppc])) + [promesa.core :as p])) ;; --- BROWSER API -(def USER-AGENT +(def default-timeout 30000) +(def default-viewport {:width 1920 :height 1080 :scale 1}) +(def default-user-agent (str "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 " "(KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36")) @@ -23,15 +26,25 @@ (let [page (unchecked-get props "page")] (f page))))) -(defn emulate! - [page {:keys [viewport user-agent scale] - :or {user-agent USER-AGENT - scale 1}}] - (let [[width height] viewport] - (.emulate ^js page #js {:viewport #js {:width width - :height height - :deviceScaleFactor scale} - :userAgent user-agent}))) +(defn set-cookie! + [page {:keys [key value domain]}] + (.setCookie ^js page #js {:name key + :value value + :domain domain})) + +(defn configure-page! + [page {:keys [timeout cookie user-agent viewport]}] + (let [timeout (or timeout default-timeout) + user-agent (or user-agent default-user-agent) + viewport (d/merge default-viewport viewport)] + (p/do! + (.setViewport ^js page #js {:width (:width viewport) + :height (:height viewport) + :deviceScaleFactor (:scale viewport)}) + (.setUserAgent ^js page user-agent) + (.setDefaultTimeout ^js page timeout) + (when cookie + (set-cookie! page cookie))))) (defn navigate! ([page url] (navigate! page url nil)) @@ -43,10 +56,9 @@ [page ms] (.waitForTimeout ^js page ms)) - (defn wait-for ([page selector] (wait-for page selector nil)) - ([page selector {:keys [visible] :or {visible false}}] + ([page selector {:keys [visible timeout] :or {visible false timeout 10000}}] (.waitForSelector ^js page selector #js {:visible visible}))) (defn screenshot @@ -71,11 +83,6 @@ [frame selector] (.$$ ^js frame selector)) -(defn set-cookie! - [page {:keys [key value domain]}] - (.setCookie ^js page #js {:name key - :value value - :domain domain})) ;; --- BROWSER STATE diff --git a/exporter/src/app/renderer/bitmap.cljs b/exporter/src/app/renderer/bitmap.cljs index 79610316f..d80d53ab6 100644 --- a/exporter/src/app/renderer/bitmap.cljs +++ b/exporter/src/app/renderer/bitmap.cljs @@ -40,16 +40,20 @@ (screenshot [page uri cookie] (log/info :uri uri) - (p/do! - (bw/emulate! page {:viewport [1920 1080] - :scale scale}) - (bw/set-cookie! page cookie) - (bw/navigate! page uri) - (bw/eval! page (js* "() => document.body.style.background = 'transparent'")) - (p/let [dom (bw/select page "#screenshot")] - (case type - :png (bw/screenshot dom {:omit-background? true :type type}) - :jpeg (bw/screenshot dom {:omit-background? false :type type})))))] + (let [viewport {:width 1920 + :height 1080 + :scale scale} + options {:viewport viewport + :cookie cookie}] + (p/do! + (bw/configure-page! page options) + (bw/navigate! page uri) + (bw/eval! page (js* "() => document.body.style.background = 'transparent'")) + (bw/wait-for page "#screenshot") + (p/let [dom (bw/select page "#screenshot")] + (case type + :png (bw/screenshot dom {:omit-background? true :type type}) + :jpeg (bw/screenshot dom {:omit-background? false :type type}))))))] (bw/exec! browser handle))) diff --git a/exporter/src/app/renderer/svg.cljs b/exporter/src/app/renderer/svg.cljs index 58458c275..64f298ca0 100644 --- a/exporter/src/app/renderer/svg.cljs +++ b/exporter/src/app/renderer/svg.cljs @@ -253,15 +253,19 @@ result)) (render-in-page [page {:keys [uri cookie] :as rctx}] - (p/do! - (bw/emulate! page {:viewport [1920 1080] - :scale 4}) - (bw/set-cookie! page cookie) - (bw/navigate! page uri) - ;; (bw/wait-for page "#screenshot foreignObject" {:visible true}) - (bw/sleep page 2000) - ;; (bw/eval! page (js* "() => document.body.style.background = 'transparent'")) - page)) + (let [viewport {:width 1920 + :height 1080 + :scale 4} + options {:viewport viewport + :timeout 15000 + :cookie cookie}] + (p/do! + (bw/configure-page! page options) + (bw/navigate! page uri) + (bw/wait-for page "#screenshot") + (bw/sleep page 2000) + ;; (bw/eval! page (js* "() => document.body.style.background = 'transparent'")) + page))) (handle [rctx page] (p/let [page (render-in-page page rctx)] From 346fb8fb112053db41d0cd03687e3b64a9399e87 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 13 May 2021 14:50:28 +0200 Subject: [PATCH 088/135] :sparkles: Transform simple shapes to path on double click --- CHANGES.md | 3 + frontend/src/app/config.cljs | 7 +- frontend/src/app/main/data/workspace.cljs | 3 +- .../app/main/data/workspace/transforms.cljs | 9 ++ frontend/src/app/main/ui/shapes/attrs.cljs | 4 + .../src/app/main/ui/shapes/fill_image.cljs | 38 +++++ frontend/src/app/main/ui/shapes/image.cljs | 23 ++- frontend/src/app/main/ui/shapes/shape.cljs | 10 +- .../main/ui/workspace/viewport/actions.cljs | 4 +- .../src/app/util/path/shapes_to_path.cljs | 145 ++++++++++++++++++ 10 files changed, 227 insertions(+), 19 deletions(-) create mode 100644 frontend/src/app/main/ui/shapes/fill_image.cljs create mode 100644 frontend/src/app/util/path/shapes_to_path.cljs diff --git a/CHANGES.md b/CHANGES.md index f7d697582..640f17c7f 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -4,6 +4,9 @@ ## :rocket: Next ### :sparkles: New features + +- Transform shapes to path on double click + ### :bug: Bugs fixed ### :arrow_up: Deps updates ### :boom: Breaking changes diff --git a/frontend/src/app/config.cljs b/frontend/src/app/config.cljs index 55e800fe5..87dcf4431 100644 --- a/frontend/src/app/config.cljs +++ b/frontend/src/app/config.cljs @@ -121,9 +121,10 @@ (defn resolve-file-media ([media] (resolve-file-media media false)) - ([{:keys [id] :as media} thumnail?] + + ([{:keys [id]} thumbnail?] (str (cond-> (u/join public-uri "assets/by-file-media-id/") - (true? thumnail?) (u/join (str id "/thumbnail")) - (false? thumnail?) (u/join (str id)))))) + (true? thumbnail?) (u/join (str id "/thumbnail")) + (false? thumbnail?) (u/join (str id)))))) diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 53097aac6..4f5bcae82 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -1797,6 +1797,7 @@ (d/export dwt/update-dimensions) (d/export dwt/flip-horizontal-selected) (d/export dwt/flip-vertical-selected) +(d/export dwt/selected-to-path) ;; Persistence @@ -1820,12 +1821,10 @@ (d/export dws/duplicate-selected) (d/export dws/handle-selection) (d/export dws/select-inside-group) -;;(d/export dws/select-last-layer) (d/export dwd/select-for-drawing) (d/export dwc/clear-edition-mode) (d/export dwc/add-shape) (d/export dwc/start-edition-mode) -#_(d/export dwc/start-path-edit) ;; Groups diff --git a/frontend/src/app/main/data/workspace/transforms.cljs b/frontend/src/app/main/data/workspace/transforms.cljs index e2c0ad42f..cc0270a95 100644 --- a/frontend/src/app/main/data/workspace/transforms.cljs +++ b/frontend/src/app/main/data/workspace/transforms.cljs @@ -23,6 +23,7 @@ [app.main.snap :as snap] [app.main.store :as st] [app.main.streams :as ms] + [app.util.path.shapes-to-path :as ups] [beicon.core :as rx] [beicon.core :as rx] [cljs.spec.alpha :as s] @@ -626,3 +627,11 @@ (-> state (dissoc :workspace-modifiers) (update :workspace-local dissoc :modifiers :current-move-selected))))) + +(defn selected-to-path + [] + (ptk/reify ::selected-to-path + ptk/WatchEvent + (watch [_ state stream] + (let [ids (wsh/lookup-selected state)] + (rx/of (dch/update-shapes ids ups/convert-to-path)))))) diff --git a/frontend/src/app/main/ui/shapes/attrs.cljs b/frontend/src/app/main/ui/shapes/attrs.cljs index 8573682fd..bbd09a262 100644 --- a/frontend/src/app/main/ui/shapes/attrs.cljs +++ b/frontend/src/app/main/ui/shapes/attrs.cljs @@ -81,6 +81,10 @@ (contains? shape :fill-color) {:fill (:fill-color shape)} + (contains? shape :fill-image) + (let [fill-image-id (str "fill-image-" render-id)] + {:fill (str/format "url(#%s)" fill-image-id) }) + ;; If contains svg-attrs the origin is svg. If it's not svg origin ;; we setup the default fill as transparent (instead of black) (and (not (contains? shape :svg-attrs)) diff --git a/frontend/src/app/main/ui/shapes/fill_image.cljs b/frontend/src/app/main/ui/shapes/fill_image.cljs new file mode 100644 index 000000000..17d13291b --- /dev/null +++ b/frontend/src/app/main/ui/shapes/fill_image.cljs @@ -0,0 +1,38 @@ +;; 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) UXBOX Labs SL + +(ns app.main.ui.shapes.fill-image + (:require + [app.common.geom.shapes :as gsh] + [app.config :as cfg] + [app.util.object :as obj] + [rumext.alpha :as mf] + [app.common.geom.point :as gpt] + [app.main.ui.shapes.image :as image])) + +(mf/defc fill-image-pattern + {::mf/wrap-props false} + [props] + + (let [shape (obj/get props "shape") + render-id (obj/get props "render-id")] + (when (contains? shape :fill-image) + (let [{:keys [x y width height]} (:selrect shape) + fill-image-id (str "fill-image-" render-id) + media (:fill-image shape) + uri (image/use-image-uri media) + transform (gsh/transform-matrix shape)] + + [:pattern {:id fill-image-id + :patternUnits "userSpaceOnUse" + :x x + :y y + :height height + :width width + :patternTransform transform} + [:image {:xlinkHref uri + :width width + :height height}]])))) diff --git a/frontend/src/app/main/ui/shapes/image.cljs b/frontend/src/app/main/ui/shapes/image.cljs index 4dd1e3e41..45ceb303b 100644 --- a/frontend/src/app/main/ui/shapes/image.cljs +++ b/frontend/src/app/main/ui/shapes/image.cljs @@ -17,13 +17,10 @@ [beicon.core :as rx] [rumext.alpha :as mf])) -(mf/defc image-shape - {::mf/wrap-props false} - [props] - - (let [shape (unchecked-get props "shape") - {:keys [id x y width height rotation metadata]} shape - uri (cfg/resolve-file-media metadata) +(defn use-image-uri + [media] + (let [uri (mf/use-memo (mf/deps (:id media)) + #(cfg/resolve-file-media media)) embed-resources? (mf/use-ctx muc/embed-ctx) data-uri (mf/use-state (when (not embed-resources?) uri))] @@ -38,6 +35,16 @@ (rx/mapcat wapi/read-file-as-data-url) (rx/subs #(reset! data-uri %)))))) + (or @data-uri uri))) + +(mf/defc image-shape + {::mf/wrap-props false} + [props] + + (let [shape (unchecked-get props "shape") + {:keys [id x y width height rotation metadata]} shape + uri (use-image-uri metadata)] + (let [transform (geom/transform-matrix shape) props (-> (attrs/extract-style-attrs shape) (obj/merge! @@ -53,5 +60,5 @@ [:> "image" (obj/merge! props - #js {:xlinkHref (or @data-uri uri) + #js {:xlinkHref uri :onDragStart on-drag-start})]))) diff --git a/frontend/src/app/main/ui/shapes/shape.cljs b/frontend/src/app/main/ui/shapes/shape.cljs index 793c168fb..82dddd238 100644 --- a/frontend/src/app/main/ui/shapes/shape.cljs +++ b/frontend/src/app/main/ui/shapes/shape.cljs @@ -9,6 +9,7 @@ [app.common.data :as d] [app.common.uuid :as uuid] [app.main.ui.context :as muc] + [app.main.ui.shapes.fill-image :as fim] [app.main.ui.shapes.filters :as filters] [app.main.ui.shapes.gradients :as grad] [app.main.ui.shapes.svg-defs :as defs] @@ -51,8 +52,9 @@ [:& (mf/provider muc/render-ctx) {:value render-id} [:> wrapper-tag group-props [:defs - [:& defs/svg-defs {:shape shape :render-id render-id}] - [:& filters/filters {:shape shape :filter-id filter-id}] - [:& grad/gradient {:shape shape :attr :fill-color-gradient}] - [:& grad/gradient {:shape shape :attr :stroke-color-gradient}]] + [:& defs/svg-defs {:shape shape :render-id render-id}] + [:& filters/filters {:shape shape :filter-id filter-id}] + [:& grad/gradient {:shape shape :attr :fill-color-gradient}] + [:& grad/gradient {:shape shape :attr :stroke-color-gradient}] + [:& fim/fill-image-pattern {:shape shape :render-id render-id}]] children]])) diff --git a/frontend/src/app/main/ui/workspace/viewport/actions.cljs b/frontend/src/app/main/ui/workspace/viewport/actions.cljs index 2b6d7d25b..a32ae106e 100644 --- a/frontend/src/app/main/ui/workspace/viewport/actions.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/actions.cljs @@ -179,8 +179,8 @@ (dw/start-editing-selected)) :else - ;; Do nothing - nil)))))) + (st/emit! (dw/selected-to-path) + (dw/start-editing-selected)))))))) (defn on-context-menu [hover] diff --git a/frontend/src/app/util/path/shapes_to_path.cljs b/frontend/src/app/util/path/shapes_to_path.cljs new file mode 100644 index 000000000..b260821e7 --- /dev/null +++ b/frontend/src/app/util/path/shapes_to_path.cljs @@ -0,0 +1,145 @@ +;; 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) UXBOX Labs SL + +(ns app.util.path.shapes-to-path + (:require + [app.common.data :as d] + [app.common.geom.matrix :as gmt] + [app.common.geom.point :as gpt] + [app.common.geom.shapes :as gsh] + [app.common.geom.shapes.path :as gsp] + [app.util.path.commands :as pc])) + +(def bezier-circle-c 0.551915024494) +(def dissoc-attrs [:x :y :width :height + :rx :ry :r1 :r2 :r3 :r4 + :medata]) +(def allowed-transform-types #{:rect + :circle + :image}) + +(defn make-corner-arc + "Creates a curvle corner for border radius" + [from to corner radius] + (let [x (case corner + :top-left (:x from) + :top-right (- (:x from) radius) + :bottom-right (- (:x to) radius) + :bottom-left (:x to)) + + y (case corner + :top-left (- (:y from) radius) + :top-right (:y from) + :bottom-right (- (:y to) (* 2 radius)) + :bottom-left (- (:y to) radius)) + + width (* radius 2) + height (* radius 2) + + c bezier-circle-c + c1x (+ x (* (/ width 2) (- 1 c))) + c2x (+ x (* (/ width 2) (+ 1 c))) + c1y (+ y (* (/ height 2) (- 1 c))) + c2y (+ y (* (/ height 2) (+ 1 c))) + + h1 (case corner + :top-left (assoc from :y c1y) + :top-right (assoc from :x c2x) + :bottom-right (assoc from :y c2y) + :bottom-left (assoc from :x c1x)) + + h2 (case corner + :top-left (assoc to :x c1x) + :top-right (assoc to :y c1y) + :bottom-right (assoc to :x c2x) + :bottom-left (assoc to :y c2y))] + + (pc/make-curve-to to h1 h2))) + +(defn circle->path + "Creates the bezier curves to approximate a circle shape" + [x y width height] + (let [mx (+ x (/ width 2)) + my (+ y (/ height 2)) + ex (+ x width) + ey (+ y height) + + pc (gpt/point mx my) + p1 (gpt/point mx y) + p2 (gpt/point ex my) + p3 (gpt/point mx ey) + p4 (gpt/point x my) + + c bezier-circle-c + c1x (+ x (* (/ width 2) (- 1 c))) + c2x (+ x (* (/ width 2) (+ 1 c))) + c1y (+ y (* (/ height 2) (- 1 c))) + c2y (+ y (* (/ height 2) (+ 1 c)))] + + [(pc/make-move-to p1) + (pc/make-curve-to p2 (assoc p1 :x c2x) (assoc p2 :y c1y)) + (pc/make-curve-to p3 (assoc p2 :y c2y) (assoc p3 :x c2x)) + (pc/make-curve-to p4 (assoc p3 :x c1x) (assoc p4 :y c2y)) + (pc/make-curve-to p1 (assoc p4 :y c1y) (assoc p1 :x c1x))])) + +(defn rect->path + "Creates a bezier curve that approximates a rounded corner rectangle" + [x y width height r1 r2 r3 r4] + (let [p1 (gpt/point x (+ y r1)) + p2 (gpt/point (+ x r1) y) + + p3 (gpt/point (+ width x (- r2)) y) + p4 (gpt/point (+ width x) (+ y r2)) + + p5 (gpt/point (+ width x) (+ height y (- r3))) + p6 (gpt/point (+ width x (- r3)) (+ height y)) + + p7 (gpt/point (+ x r4) (+ height y)) + p8 (gpt/point x (+ height y (- r4)))] + (-> [] + (conj (pc/make-move-to p1)) + (cond-> (not= p1 p2) + (conj (make-corner-arc p1 p2 :top-left r1))) + (conj (pc/make-line-to p3)) + (cond-> (not= p3 p4) + (conj (make-corner-arc p3 p4 :top-right r2))) + (conj (pc/make-line-to p5)) + (cond-> (not= p5 p6) + (conj (make-corner-arc p5 p6 :bottom-right r3))) + (conj (pc/make-line-to p7)) + (cond-> (not= p7 p8) + (conj (make-corner-arc p7 p8 :bottom-left r4))) + (conj (pc/make-line-to p1))))) + +(defn convert-to-path + "Transforms the given shape to a path" + [{:keys [type x y width height r1 r2 r3 r4 rx metadata] :as shape}] + + (if (contains? allowed-transform-types type) + (let [r1 (or r1 rx 0) + r2 (or r2 rx 0) + r3 (or r3 rx 0) + r4 (or r4 rx 0) + + new-content + (case type + :circle + (circle->path x y width height) + (rect->path x y width height r1 r2 r3 r4)) + + ;; Apply the transforms that had the shape + transform (gmt/transform-in (gsh/center-shape shape) (:transform shape)) + new-content (gsp/transform-content new-content transform)] + + (-> shape + (d/without-keys dissoc-attrs) + (assoc :type :path) + (assoc :content new-content) + (cond-> (= :image type) + (assoc :fill-image metadata)))) + ;; Do nothing if the shape is not of a correct type + shape)) + From c9e7be28af0085e25770a88b7a76a20e74954458 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Mon, 17 May 2021 14:19:44 +0200 Subject: [PATCH 089/135] :tada: Use shift instead of ctrl/cmd to fix aspect ratio --- CHANGES.md | 3 ++- frontend/src/app/main/data/workspace/drawing/box.cljs | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 640f17c7f..00d7a12c0 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -5,7 +5,8 @@ ### :sparkles: New features -- Transform shapes to path on double click +- Transform shapes to path on double click. +- Use shift instead of ctrl/cmd to keep aspect ratio [Taiga 1697](https://tree.taiga.io/project/penpot/issue/1697). ### :bug: Bugs fixed ### :arrow_up: Deps updates diff --git a/frontend/src/app/main/data/workspace/drawing/box.cljs b/frontend/src/app/main/data/workspace/drawing/box.cljs index 6e37c1d93..d9e3879a7 100644 --- a/frontend/src/app/main/data/workspace/drawing/box.cljs +++ b/frontend/src/app/main/data/workspace/drawing/box.cljs @@ -87,14 +87,14 @@ (->> ms/mouse-position (rx/filter #(> (gpt/distance % initial) 2)) - (rx/with-latest vector ms/mouse-position-ctrl) + (rx/with-latest vector ms/mouse-position-shift) (rx/switch-map (fn [[point :as current]] (->> (snap/closest-snap-point page-id [shape] layout zoom point) (rx/map #(conj current %))))) (rx/map - (fn [[_ ctrl? point]] - #(update-drawing % point ctrl?))) + (fn [[_ shift? point]] + #(update-drawing % point shift?))) (rx/take-until stoper)) (rx/of common/handle-finish-drawing)))))) From 5d689551e3b58bfe1ac974e40c724f41c55c89fd Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 17 May 2021 16:16:27 +0200 Subject: [PATCH 090/135] :bug: Fix problem with rounding --- common/app/common/geom/shapes/transforms.cljc | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/common/app/common/geom/shapes/transforms.cljc b/common/app/common/geom/shapes/transforms.cljc index 6929ed057..0c7b8183d 100644 --- a/common/app/common/geom/shapes/transforms.cljc +++ b/common/app/common/geom/shapes/transforms.cljc @@ -283,11 +283,6 @@ center (:width points-temp-dim) (:height points-temp-dim)) - (cond-> round-coords? - (-> (update :x #(mth/precision % 0)) - (update :y #(mth/precision % 0)) - (update :width #(mth/precision % 0)) - (update :height #(mth/precision % 0)))) (update :width max 1) (update :height max 1)) @@ -295,6 +290,13 @@ [matrix matrix-inverse] (calculate-adjust-matrix points-temp rect-points (:flip-x shape) (:flip-y shape)) + rect-shape (cond-> rect-shape + round-coords? + (-> (update :x mth/round) + (update :y mth/round) + (update :width mth/round) + (update :height mth/round))) + shape (cond (= :path (:type shape)) (-> shape @@ -302,7 +304,7 @@ :else (-> shape - (merge rect-shape)))] + (merge rect-shape)))] (as-> shape $ (update $ :transform #(gmt/multiply (or % (gmt/matrix)) matrix)) (update $ :transform-inverse #(gmt/multiply matrix-inverse (or % (gmt/matrix)))) From c618317a7643e0a9f907c00c65f280e2b9764a15 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 17 May 2021 17:08:24 +0200 Subject: [PATCH 091/135] :sparkles: Minor improvements --- common/app/common/pages/init.cljc | 2 -- frontend/resources/styles/main/partials/workspace.scss | 6 ------ frontend/src/app/main/data/workspace.cljs | 4 ++-- frontend/src/app/main/ui/workspace/viewport.cljs | 5 +++-- frontend/src/app/main/ui/workspace/viewport/hooks.cljs | 4 ++-- .../src/app/main/ui/workspace/viewport/widgets.cljs | 10 ++++++++-- 6 files changed, 15 insertions(+), 16 deletions(-) diff --git a/common/app/common/pages/init.cljc b/common/app/common/pages/init.cljc index 79e0b50de..5ca2b85f1 100644 --- a/common/app/common/pages/init.cljc +++ b/common/app/common/pages/init.cljc @@ -63,8 +63,6 @@ {:type :path :name "Path" - :fill-color "#000000" - :fill-opacity 0 :stroke-style :solid :stroke-alignment :center :stroke-width 2 diff --git a/frontend/resources/styles/main/partials/workspace.scss b/frontend/resources/styles/main/partials/workspace.scss index d8e3b69ef..acbf99e0e 100644 --- a/frontend/resources/styles/main/partials/workspace.scss +++ b/frontend/resources/styles/main/partials/workspace.scss @@ -164,12 +164,6 @@ } } - .selection-rect { - fill: rgba(235, 215, 92, 0.1); - stroke: #000000; - stroke-width: 0.1px; - } - .render-shapes { position: absolute; } diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 53097aac6..566308c2a 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -552,7 +552,7 @@ ptk/UpdateEvent (update [_ state] (update state :workspace-local - #(impl-update-zoom % center (fn [z] (min (* z 1.1) 200))))))) + #(impl-update-zoom % center (fn [z] (min (* z 1.3) 200))))))) (defn decrease-zoom [center] @@ -560,7 +560,7 @@ ptk/UpdateEvent (update [_ state] (update state :workspace-local - #(impl-update-zoom % center (fn [z] (max (* z 0.9) 0.01))))))) + #(impl-update-zoom % center (fn [z] (max (/ z 1.3) 0.01))))))) (def reset-zoom (ptk/reify ::reset-zoom diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index 392232143..a210dad73 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -149,7 +149,7 @@ (hooks/setup-cursor cursor alt? panning drawing-tool drawing-path? path-editing?) (hooks/setup-resize layout viewport-ref) (hooks/setup-keyboard alt? ctrl?) - (hooks/setup-hover-shapes page-id move-stream selected objects transform selected ctrl? hover hover-ids) + (hooks/setup-hover-shapes page-id move-stream selected objects transform selected ctrl? hover hover-ids zoom) (hooks/setup-viewport-modifiers modifiers selected objects render-ref) (hooks/setup-shortcuts path-editing? drawing-path?) (hooks/setup-active-frames objects vbox hover active-frames) @@ -315,5 +315,6 @@ {:selected selected}]) (when show-selrect? - [:& widgets/selection-rect {:data selrect}])]]])) + [:& widgets/selection-rect {:data selrect + :zoom zoom}])]]])) diff --git a/frontend/src/app/main/ui/workspace/viewport/hooks.cljs b/frontend/src/app/main/ui/workspace/viewport/hooks.cljs index c79651342..01bfef047 100644 --- a/frontend/src/app/main/ui/workspace/viewport/hooks.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/hooks.cljs @@ -90,12 +90,12 @@ (hooks/use-stream ms/keyboard-alt #(reset! alt? %)) (hooks/use-stream ms/keyboard-ctrl #(reset! ctrl? %))) -(defn setup-hover-shapes [page-id move-stream selected objects transform selected ctrl? hover hover-ids] +(defn setup-hover-shapes [page-id move-stream selected objects transform selected ctrl? hover hover-ids zoom] (let [query-point (mf/use-callback (mf/deps page-id) (fn [point] - (let [rect (gsh/center->rect point 8 8)] + (let [rect (gsh/center->rect point (/ 5 zoom) (/ 5 zoom))] (uw/ask-buffered! {:cmd :selection/query :page-id page-id diff --git a/frontend/src/app/main/ui/workspace/viewport/widgets.cljs b/frontend/src/app/main/ui/workspace/viewport/widgets.cljs index 6bd73feb8..3faa46555 100644 --- a/frontend/src/app/main/ui/workspace/viewport/widgets.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/widgets.cljs @@ -64,13 +64,19 @@ (mf/defc selection-rect {:wrap [mf/memo]} - [{:keys [data] :as props}] + [{:keys [data zoom] :as props}] (when data [:rect.selection-rect {:x (:x data) :y (:y data) :width (:width data) - :height (:height data)}])) + :height (:height data) + :style {;; Primary with 0.1 opacity + :fill "rgb(49, 239, 184, 0.1)" + + ;; Primary color + :stroke "rgb(49, 239, 184)" + :stroke-width (/ 1 zoom)}}])) ;; Ensure that the label has always the same font ;; size, regardless of zoom From 662f87080cfe8e202eba61e3c9a1642260acce0c Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 19 May 2021 11:41:16 +0200 Subject: [PATCH 092/135] :paperclip: Minor cosmetic changes. --- CHANGES.md | 5 +---- frontend/src/app/main/ui/dashboard/fonts.cljs | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 640f17c7f..5dcb96d9f 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -4,16 +4,12 @@ ## :rocket: Next ### :sparkles: New features - -- Transform shapes to path on double click - ### :bug: Bugs fixed ### :arrow_up: Deps updates ### :boom: Breaking changes ### :heart: Community contributions by (Thank you!) - ## 1.6.0-alpha ### :sparkles: New features @@ -23,6 +19,7 @@ - Add the ability to upload/use custom fonts (and automatically generate all needed webfonts). - Refactor dashboard state management (improves considerably the performance when you have a dashboard with a big collection of projects and files). - Translate automatic names of new files and projects. +- Transform shapes to path on double click ### :bug: Bugs fixed diff --git a/frontend/src/app/main/ui/dashboard/fonts.cljs b/frontend/src/app/main/ui/dashboard/fonts.cljs index 73fe59a93..565d1ce51 100644 --- a/frontend/src/app/main/ui/dashboard/fonts.cljs +++ b/frontend/src/app/main/ui/dashboard/fonts.cljs @@ -63,7 +63,7 @@ [:div.dashboard-title [:h1 (tr "labels.fonts")]] [:nav - [:ul + #_[:ul [:li {:class (when (= section :fonts) "active")} [:a {:on-click go-fonts} (tr "labels.custom-fonts")]] [:li {:class (when (= section :providers) "active")} From fa87187849424ab36fb3e72237679469d1288eaf Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 19 May 2021 12:02:38 +0200 Subject: [PATCH 093/135] :paperclip: Set correct version on version.txt file. --- version.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.txt b/version.txt index d9c26f23b..f721a9b5e 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.7.0-alpha +1.6.0-alpha From 2ea200be784236c902627b102fa422ad58d86823 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 12 May 2021 09:48:06 +0200 Subject: [PATCH 094/135] :tada: Add new font selector to workspace. --- CHANGES.md | 16 +- common/app/common/data.cljc | 8 +- frontend/dev/cljs/user.cljs | 1 - frontend/package.json | 1 + .../partials/sidebar-element-options.scss | 217 +++++++++-- .../styles/main/partials/sidebar.scss | 1 + frontend/src/app/main/data/dashboard.cljs | 2 + frontend/src/app/main/data/fonts.cljs | 57 +++ frontend/src/app/main/data/workspace.cljs | 9 + .../app/main/data/workspace/persistence.cljs | 4 +- frontend/src/app/main/fonts.cljs | 151 ++++++-- .../src/app/main/ui/components/dropdown.cljs | 2 +- .../src/app/main/ui/shapes/text/embed.cljs | 2 +- .../workspace/sidebar/options/menus/text.cljs | 97 ++--- .../sidebar/options/menus/typography.cljs | 363 ++++++++++++++---- .../app/main/ui/workspace/viewport/hooks.cljs | 1 - frontend/translations/en.po | 6 +- frontend/translations/es.po | 3 + frontend/yarn.lock | 58 ++- 19 files changed, 800 insertions(+), 199 deletions(-) delete mode 100644 frontend/dev/cljs/user.cljs create mode 100644 frontend/src/app/main/data/fonts.cljs diff --git a/CHANGES.md b/CHANGES.md index 92963190c..a216c2be0 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -4,6 +4,7 @@ ## :rocket: Next ### :sparkles: New features + ### :bug: Bugs fixed ### :arrow_up: Deps updates ### :boom: Breaking changes @@ -14,21 +15,24 @@ ### :sparkles: New features -- Add many performance related improvements to indexes handling on workspace. +- Add improved workspace font selector [Taiga US #292](https://tree.taiga.io/project/penpot/us/292). - Add option to interactively scale text [Taiga #1527](https://tree.taiga.io/project/penpot/us/1527) -- Add the ability to upload/use custom fonts (and automatically generate all needed webfonts). -- Refactor dashboard state management (improves considerably the performance when you have a dashboard with a big collection of projects and files). -- Translate automatic names of new files and projects. +- Add performance improvements on dashboard data loading. +- Add performance improvements to indexes handling on workspace. +- Add the ability to upload/use custom fonts (and automatically generate all needed webfonts) [Taiga US #292](https://tree.taiga.io/project/penpot/us/292). - Transform shapes to path on double click +- Translate automatic names of new files and projects. - Use shift instead of ctrl/cmd to keep aspect ratio [Taiga 1697](https://tree.taiga.io/project/penpot/issue/1697). + ### :bug: Bugs fixed - Remove interactions when the destination artboard is deleted [Taiga #1656](https://tree.taiga.io/project/penpot/issue/1656) + ### :arrow_up: Deps updates -- Update exporter dependencies (puppetteer), that fixes some unexpected exceptions. +- Update exporter dependencies (puppeteer), that fixes some unexpected exceptions. - Update string manipulation library. @@ -38,8 +42,6 @@ configuration added scopes to the default set. Now it replaces it, so use with care, because penpot requires at least `name` and `email` props found on the user info object. -### :heart: Community contributions by (Thank you!) - ## 1.5.4-alpha diff --git a/common/app/common/data.cljc b/common/app/common/data.cljc index f1b5f1091..649e29097 100644 --- a/common/app/common/data.cljc +++ b/common/app/common/data.cljc @@ -253,14 +253,8 @@ (map (fn [x] (f x) x) coll))) (defn merge - "A faster merge." [& maps] - (loop [res (transient (or (first maps) {})) - maps (next maps)] - (if (nil? maps) - (persistent! res) - (recur (reduce-kv assoc! res (first maps)) - (next maps))))) + (reduce conj (or (first maps) {}) (rest maps))) (defn distinct-xf [f] diff --git a/frontend/dev/cljs/user.cljs b/frontend/dev/cljs/user.cljs deleted file mode 100644 index 2d251b6c7..000000000 --- a/frontend/dev/cljs/user.cljs +++ /dev/null @@ -1 +0,0 @@ -(ns cljs.user) diff --git a/frontend/package.json b/frontend/package.json index 21a8f9069..ad653575e 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -46,6 +46,7 @@ "randomcolor": "^0.6.2", "react": "~17.0.1", "react-dom": "~17.0.1", + "react-virtualized": "^9.22.3", "rxjs": "~7.0.1", "source-map-support": "^0.5.16", "tdigest": "^0.1.1", diff --git a/frontend/resources/styles/main/partials/sidebar-element-options.scss b/frontend/resources/styles/main/partials/sidebar-element-options.scss index 36da777ab..af2a9d22a 100644 --- a/frontend/resources/styles/main/partials/sidebar-element-options.scss +++ b/frontend/resources/styles/main/partials/sidebar-element-options.scss @@ -2,8 +2,7 @@ // 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) 2015-2016 Andrey Antukh -// Copyright (c) 2015-2016 Juan de la Cruz +// Copyright (c) UXBOX Labs SL .element-options { display: flex; @@ -809,9 +808,10 @@ left: 0; position: absolute; top: 0; - width: calc(100% - 8px); + width: calc(100%); opacity: 0.4; z-index: 10; + display: flex; } .advanced-options-wrapper { @@ -1061,37 +1061,200 @@ } .multiple-typography { - margin: 0.5rem; - padding: 0.5rem; - border: 1px dashed $color-gray-30; - border-radius: 4px; - display: flex; - justify-content: space-between; + margin: 0.5rem; + padding: 0.5rem; + border: 1px dashed $color-gray-30; + border-radius: 4px; + display: flex; + justify-content: space-between; - .multiple-typography-text, - .multiple-typography-button { - font-size: $fs13; - display: flex; - align-items: center; + .multiple-typography-text, + .multiple-typography-button { + font-size: $fs13; + display: flex; + align-items: center; + } + + .multiple-typography-button { + cursor: pointer; + svg { + transition: fill 0.3s; + width: 16px; + height: 16px; + fill: $color-gray-10; } - .multiple-typography-button { - cursor: pointer; - svg { - transition: fill 0.3s; - width: 16px; - height: 16px; - fill: $color-gray-10; - } + &:hover svg { + fill: $color-primary; + } + } - &:hover svg { - fill: $color-primary; + svg { + } + + .multiple-typography-button:hover svg { + } +} + +.font-selector { + background: $color-black; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: calc(100%); + z-index: 10; + display: flex; + justify-content: center; + align-items: center; + + .font-selector-dropdown { + background: #303236; + display: flex; + flex-direction: column; + flex-grow: 1; + height: 100%; + } + + header { + padding: 15px 17px; + display: flex; + align-items: center; + position: relative; + + .backend-filters { + padding: $small $medium; + // width: 220px; + top: 40px; + right: 20px; + } + .backend-filter { + display: flex; + align-items: center; + padding: $small 0; + cursor: pointer; + + .checkbox-icon { + display: flex; + justify-content: center; + align-items: center; + width: $medium; + height: $medium; + border: 1px solid $color-gray-30; + border-radius: $br-small; + + svg { + width: 8px; + display: none; + height: 8px; + fill: $color-black; } + } + + .backend-name { + margin-left: $small; + color: $color-gray-50; + } + + &.selected { + .checkbox-icon { + svg { + display: inherit; + } + } + } + + } + + input { + display: flex; + flex-grow: 1; + padding: 4px; + font-size: $fs12; + background: $color-gray-50; + border-radius: $br-small; + color: $color-gray-20; + border: 1px solid $color-gray-30; + margin: 0px; + } + + .options { + display: flex; + justify-content: center; + align-items: center; + width: 24px; + height: 24px; + margin-left: $small; + + svg { + width: 16px; + height: 16px; + fill: $color-gray-20 + } + + &.active { + svg { + fill: $color-primary; + } + } + } + } + + .fonts-list { + display: flex; + flex-direction: column; + height: 100%; + + position: relative; + -webkit-box-flex: 1; + flex: 1 1 auto; + } + + hr { + margin-bottom: 0px; + margin-top: 0px; + } + + .font-item { + padding-left: $big; + height: $x-big; + max-height: $x-big; + width: 100%; + display: flex; + align-items: center; + cursor: pointer; + color: $color-gray-10; + + &.selected { + background-color: $color-black; + color: $color-primary; + + .icon svg {fill: $color-primary;} + } + + &:hover { + background-color: $color-primary; + color: $color-black; + } + + .icon { + display: flex; + // justify-content: center; + align-items: center; + // border: 1px solid red; + width: $big + } + + .label { + font-size: 12px; } svg { + fill: $color-gray-10; + width: 10px; + height: 10px; } - - .multiple-typography-button:hover svg { - } + } } + + diff --git a/frontend/resources/styles/main/partials/sidebar.scss b/frontend/resources/styles/main/partials/sidebar.scss index 57baeec1b..d2f630bb5 100644 --- a/frontend/resources/styles/main/partials/sidebar.scss +++ b/frontend/resources/styles/main/partials/sidebar.scss @@ -69,6 +69,7 @@ $width-settings-bar: 16rem; height: 100%; .tool-window { + position: relative; border-bottom: 1px solid $color-gray-60; display: flex; flex-direction: column; diff --git a/frontend/src/app/main/data/dashboard.cljs b/frontend/src/app/main/data/dashboard.cljs index 8f48fd498..eacc98c3a 100644 --- a/frontend/src/app/main/data/dashboard.cljs +++ b/frontend/src/app/main/data/dashboard.cljs @@ -13,6 +13,7 @@ [app.main.repo :as rp] [app.main.data.events :as ev] [app.main.data.users :as du] + [app.main.data.fonts :as df] [app.util.i18n :as i18n :refer [tr]] [app.util.router :as rt] [app.util.time :as dt] @@ -86,6 +87,7 @@ ptk/WatchEvent (watch [_ state stream] (rx/merge + (ptk/watch (df/load-team-fonts id) state stream) (ptk/watch (fetch-projects) state stream) (ptk/watch (du/fetch-teams) state stream) (ptk/watch (du/fetch-users {:team-id id}) state stream))))) diff --git a/frontend/src/app/main/data/fonts.cljs b/frontend/src/app/main/data/fonts.cljs new file mode 100644 index 000000000..641f91044 --- /dev/null +++ b/frontend/src/app/main/data/fonts.cljs @@ -0,0 +1,57 @@ +;; 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) UXBOX Labs SL + +(ns app.main.data.fonts + (:require + [app.common.media :as cm] + [app.main.fonts :as fonts] + [app.main.repo :as rp] + [app.util.i18n :as i18n :refer [tr]] + [beicon.core :as rx] + [cljs.spec.alpha :as s] + [cuerdas.core :as str] + [potok.core :as ptk])) + +(defn prepare-font-variant + [item] + {:id (str (:font-style item) "-" (:font-weight item)) + :name (str (cm/font-weight->name (:font-weight item)) " " + (str/capital (:font-style item))) + :style (:font-style item) + :weight (str (:font-weight item)) + ::fonts/woff1-file-id (:woff1-file-id item) + ::fonts/woff2-file-id (:woff2-file-id item) + ::fonts/ttf-file-id (:ttf-file-id item) + ::fonts/otf-file-id (:otf-file-id item)}) + +(defn prepare-font + [[id [item :as items]]] + {:id id + :name (:font-family item) + :family (:font-family item) + :variants (mapv prepare-font-variant items)}) + +(defn team-fonts-loaded + [fonts] + (ptk/reify ::team-fonts-loaded + ptk/EffectEvent + (effect [_ state stream] + (let [fonts (->> (group-by :font-id fonts) + (mapv prepare-font))] + (fonts/register! :custom fonts))))) + +(defn load-team-fonts + [team-id] + (ptk/reify ::load-team-fonts + ptk/WatchEvent + (watch [_ state stream] + (->> (rp/query :team-font-variants {:team-id team-id}) + (rx/map team-fonts-loaded))))) + + +(defn get-fonts + [backend] + (get @fonts/fonts backend [])) diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index db8f33eae..9e034d6be 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -1258,6 +1258,15 @@ (rx/of ::dwp/force-persist (rt/nav :dashboard-projects {:team-id team-id}))))))) +(defn go-to-dashboard-fonts + [] + (ptk/reify ::go-to-dashboard + ptk/WatchEvent + (watch [it state stream] + (let [team-id (:current-team-id state)] + (rx/of ::dwp/force-persist + (rt/nav :dashboard-fonts {:team-id team-id})))))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Context Menu ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/frontend/src/app/main/data/workspace/persistence.cljs b/frontend/src/app/main/data/workspace/persistence.cljs index 7a6d3fa59..35a6b26e0 100644 --- a/frontend/src/app/main/data/workspace/persistence.cljs +++ b/frontend/src/app/main/data/workspace/persistence.cljs @@ -15,6 +15,7 @@ [app.common.uuid :as uuid] [app.main.data.dashboard :as dd] [app.main.data.media :as di] + [app.main.data.fonts :as df] [app.main.data.messages :as dm] [app.main.data.workspace.changes :as dch] [app.main.data.workspace.common :as dwc] @@ -270,7 +271,8 @@ :project project :libraries libraries})) (rx/mapcat (fn [{:keys [project] :as bundle}] - (rx/of (ptk/data-event ::bundle-fetched bundle)))))))) + (rx/of (ptk/data-event ::bundle-fetched bundle) + (df/load-team-fonts (:team-id project))))))))) ;; --- Set File shared diff --git a/frontend/src/app/main/fonts.cljs b/frontend/src/app/main/fonts.cljs index 27a208b9b..8ca0ef906 100644 --- a/frontend/src/app/main/fonts.cljs +++ b/frontend/src/app/main/fonts.cljs @@ -8,16 +8,22 @@ "Fonts management and loading logic." (:require-macros [app.main.fonts :refer [preload-gfonts]]) (:require + [app.config :as cf] [app.common.data :as d] [app.util.dom :as dom] [app.util.object :as obj] [app.util.timers :as ts] + [app.util.logging :as log] + [lambdaisland.uri :as u] + [goog.events :as gev] [beicon.core :as rx] [clojure.set :as set] [cuerdas.core :as str] [okulary.core :as l] [promesa.core :as p])) +(log/set-level! :trace) + (def google-fonts (preload-gfonts "fonts/gfonts.2020.04.23.json")) @@ -38,22 +44,27 @@ {:id "blackitalic" :name "black (italic)" :weight "900" :style "italic"}]}]) (defonce fontsdb (l/atom {})) -(defonce fontsview (l/atom {})) +(defonce fonts (l/atom [])) -(defn- materialize-fontsview - [db] - (reset! fontsview (reduce-kv (fn [acc k v] - (assoc acc k (sort-by :name v))) - {} - (group-by :backend (vals db))))) (add-watch fontsdb "main" (fn [_ _ _ db] - (ts/schedule #(materialize-fontsview db)))) + (->> (vals db) + (sort-by :name) + (map-indexed #(assoc %2 :index %1)) + (vec) + (reset! fonts)))) + +(defn- remove-fonts + [db backend] + (reduce-kv #(cond-> %1 (= backend (:backend %3)) (dissoc %2)) db db)) (defn register! [backend fonts] - (let [fonts (map #(assoc % :backend backend) fonts)] - (swap! fontsdb #(merge % (d/index-by :id fonts))))) + (swap! fontsdb + (fn [db] + (let [db (reduce-kv #(cond-> %1 (= backend (:backend %3)) (dissoc %2)) db db) + fonts (map #(assoc % :backend backend) fonts)] + (merge db (d/index-by :id fonts)))))) (register! :builtin local-fonts) (register! :google google-fonts) @@ -67,13 +78,15 @@ (defn resolve-fonts [backend] - (get @fontsview backend)) + (get @fonts backend)) -;; --- Fonts Loader +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; FONTS LOADING +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defonce loaded (l/atom #{})) -(defn- create-link-node +(defn- create-link-element [uri] (let [node (.createElement js/document "link")] (unchecked-set node "href" uri) @@ -81,32 +94,107 @@ (unchecked-set node "type" "text/css") node)) -(defn gfont-url [family variants] + +(defn- create-style-element + [css] + (let [node (.createElement js/document "style")] + (unchecked-set node "innerHTML" css) + node)) + +(defn- load-font-css! + "Creates a link element and attaches it to the dom for correctly + load external css resource." + [url on-loaded] + (let [node (create-link-element url) + head (.-head ^js js/document)] + (gev/listenOnce node "load" (fn [event] + (when (fn? on-loaded) + (on-loaded)))) + (dom/append-child! head node))) + +(defn- add-font-css! + "Creates a style element and attaches it to the dom." + [css] + (let [head (.-head ^js js/document)] + (->> (create-style-element css) + (dom/append-child! head)))) + +;; --- LOADER: BUILTIN + +(defmulti ^:private load-font :backend) + +(defmethod load-font :default + [{:keys [backend] :as font}] + (log/warn :msg "no implementation found for" :backend backend)) + +(defmethod load-font :builtin + [{:keys [id ::on-loaded] :as font}] + (log/debug :action "load-font" :font-id id :backend "builtin") + ;; (js/console.log "[debug:fonts]: loading builtin font" id) + (when (fn? on-loaded) + (on-loaded id))) + +;; --- LOADER: GOOGLE + +(defn generate-gfonts-url + [{:keys [family variants]}] (let [base (str "https://fonts.googleapis.com/css?family=" family) variants (str/join "," (map :id variants))] (str base ":" variants "&display=block"))) -(defmulti ^:private load-font :backend) - -(defmethod load-font :builtin - [{:keys [id ::on-loaded] :as font}] - (js/console.log "[debug:fonts]: loading builtin font" id) - (when (fn? on-loaded) - (on-loaded id))) - (defmethod load-font :google [{:keys [id family variants ::on-loaded] :as font}] (when (exists? js/window) - (js/console.log "[debug:fonts]: loading google font" id) - (let [node (create-link-node (gfont-url family variants))] - (.addEventListener node "load" (fn [event] (when (fn? on-loaded) - (on-loaded id)))) - (.append (.-head js/document) node) + (log/debug :action "load-font" :font-id id :backend "google") + (let [url (generate-gfonts-url font)] + (load-font-css! url (partial on-loaded id)) nil))) -(defmethod load-font :default - [{:keys [backend] :as font}] - (js/console.warn "no implementation found for" backend)) +;; --- LOADER: CUSTOM + +(def font-css-template + "@font-face { + font-family: '%(family)s'; + font-style: %(style)s; + font-weight: %(weight)s; + font-display: block; + src: url(%(woff2-uri)s) format('woff2'), + url(%(woff1-uri)s) format('woff'), + url(%(ttf-uri)s) format('ttf'), + url(%(otf-uri)s) format('otf'); + }") + +(defn- font-id->uri + [font-id] + (str (u/join cf/public-uri "assets/by-id/" font-id))) + +(defn generate-custom-font-variant-css + [family variant] + (str/fmt font-css-template + {:family family + :style (:style variant) + :weight (:weight variant) + :woff2-uri (font-id->uri (::woff2-file-id variant)) + :woff1-uri (font-id->uri (::woff1-file-id variant)) + :ttf-uri (font-id->uri (::ttf-file-id variant)) + :otf-uri (font-id->uri (::otf-file-id variant))})) + +(defn- generate-custom-font-css + [{:keys [family variants] :as font}] + (->> variants + (map #(generate-custom-font-variant-css family %)) + (str/join "\n"))) + +(defmethod load-font :custom + [{:keys [id family variants ::on-loaded] :as font}] + (when (exists? js/window) + (js/console.log "[debug:fonts]: loading google font" id) + (let [css (generate-custom-font-css font)] + (add-font-css! css)))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; LOAD API +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defn ensure-loaded! ([id] @@ -119,7 +207,8 @@ (load-font (assoc font ::on-loaded on-loaded)) (swap! loaded conj id))))) -(defn ready [cb] +(defn ready + [cb] (-> (obj/get-in js/document ["fonts" "ready"]) (p/then cb))) diff --git a/frontend/src/app/main/ui/components/dropdown.cljs b/frontend/src/app/main/ui/components/dropdown.cljs index 82738e985..54e33925f 100644 --- a/frontend/src/app/main/ui/components/dropdown.cljs +++ b/frontend/src/app/main/ui/components/dropdown.cljs @@ -13,7 +13,7 @@ [props] (let [children (gobj/get props "children") on-close (gobj/get props "on-close") - ref (gobj/get props "container") + ref (gobj/get props "container") on-click (fn [event] diff --git a/frontend/src/app/main/ui/shapes/text/embed.cljs b/frontend/src/app/main/ui/shapes/text/embed.cljs index 8c5fc6284..61ef3fd4e 100644 --- a/frontend/src/app/main/ui/shapes/text/embed.cljs +++ b/frontend/src/app/main/ui/shapes/text/embed.cljs @@ -62,7 +62,7 @@ "Given a font and the variant-id, retrieves the style CSS for it." [{:keys [id backend family variants] :as font} font-variant-id] (if (= :google backend) - (let [uri (fonts/gfont-url family [{:id font-variant-id}])] + (let [uri (fonts/generate-gfonts-url {:family family :variants [{:id font-variant-id}]})] (->> (http/send! {:method :get :mode :cors :omit-default-headers true diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/text.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/text.cljs index 5c83e42cc..2b46a3bf5 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/text.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/text.cljs @@ -128,7 +128,6 @@ :on-click #(handle-change % "rtl")} i/text-direction-rtl]])) - (mf/defc vertical-align [{:keys [shapes ids values on-change] :as props}] (let [{:keys [vertical-align]} values @@ -225,63 +224,73 @@ (tr "workspace.options.text-options.title")) emit-update! - (fn [id attrs] - (let [attrs (select-keys attrs root-attrs)] - (when-not (empty? attrs) - (st/emit! (dwt/update-root-attrs {:id id :attrs attrs})))) + (mf/use-callback + (fn [id attrs] + (let [attrs (select-keys attrs root-attrs)] + (when-not (empty? attrs) + (st/emit! (dwt/update-root-attrs {:id id :attrs attrs})))) - (let [attrs (select-keys attrs paragraph-attrs)] - (when-not (empty? attrs) - (st/emit! (dwt/update-paragraph-attrs {:id id :attrs attrs})))) + (let [attrs (select-keys attrs paragraph-attrs)] + (when-not (empty? attrs) + (st/emit! (dwt/update-paragraph-attrs {:id id :attrs attrs})))) - (let [attrs (select-keys attrs text-attrs)] - (when-not (empty? attrs) - (st/emit! (dwt/update-text-attrs {:id id :attrs attrs}))))) + (let [attrs (select-keys attrs text-attrs)] + (when-not (empty? attrs) + (st/emit! (dwt/update-text-attrs {:id id :attrs attrs})))))) + + on-change + (mf/use-callback + (mf/deps ids) + (fn [attrs] + (run! #(emit-update! % attrs) ids))) typography - (cond - (and (:typography-ref-id values) - (not= (:typography-ref-id values) :multiple) - (not= (:typography-ref-file values) file-id)) - (-> shared-libs - (get-in [(:typography-ref-file values) :data :typographies (:typography-ref-id values)]) - (assoc :file-id (:typography-ref-file values))) + (mf/use-memo + (mf/deps values file-id shared-libs) + (fn [] + (cond + (and (:typography-ref-id values) + (not= (:typography-ref-id values) :multiple) + (not= (:typography-ref-file values) file-id)) + (-> shared-libs + (get-in [(:typography-ref-file values) :data :typographies (:typography-ref-id values)]) + (assoc :file-id (:typography-ref-file values))) - (and (:typography-ref-id values) - (not= (:typography-ref-id values) :multiple) - (= (:typography-ref-file values) file-id)) - (get typographies (:typography-ref-id values))) + (and (:typography-ref-id values) + (not= (:typography-ref-id values) :multiple) + (= (:typography-ref-file values) file-id)) + (get typographies (:typography-ref-id values))))) on-convert-to-typography - (mf/use-callback - (mf/deps values) - (fn [event] - (let [setted-values (-> (d/without-nils values) - (select-keys - (d/concat text-font-attrs - text-spacing-attrs - text-transform-attrs))) - typography (merge txt/default-typography setted-values) - typography (generate-typography-name typography)] - (let [id (uuid/next)] - (st/emit! (dwl/add-typography (assoc typography :id id) false)) - (run! #(emit-update! % {:typography-ref-id id - :typography-ref-file file-id}) ids))))) + (fn [event] + (let [setted-values (-> (d/without-nils values) + (select-keys + (d/concat text-font-attrs + text-spacing-attrs + text-transform-attrs))) + typography (merge txt/default-typography setted-values) + typography (generate-typography-name typography)] + (let [id (uuid/next)] + (st/emit! (dwl/add-typography (assoc typography :id id) false)) + (run! #(emit-update! % {:typography-ref-id id + :typography-ref-file file-id}) ids)))) handle-detach-typography - (fn [] - (run! #(emit-update! % {:typography-ref-file nil - :typography-ref-id nil}) - ids)) + (mf/use-callback + (mf/deps on-change) + (fn [] + (on-change {:typography-ref-file nil + :typography-ref-id nil}))) handle-change-typography - (fn [changes] - (st/emit! (dwl/update-typography (merge typography changes) file-id))) + (mf/use-callback + (mf/deps typography file-id) + (fn [changes] + (st/emit! (dwl/update-typography (merge typography changes) file-id)))) opts #js {:ids ids :values values - :on-change (fn [attrs] - (run! #(emit-update! % attrs) ids))}] + :on-change on-change}] [:div.element-set [:div.element-set-title diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs index a34d102fe..5329aa494 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs @@ -6,20 +6,30 @@ (ns app.main.ui.workspace.sidebar.options.menus.typography (:require + ["react-virtualized" :as rvt] + [app.common.exceptions :as ex] [app.common.data :as d] [app.common.pages :as cp] [app.common.text :as txt] [app.main.data.workspace.texts :as dwt] + [app.main.data.shortcuts :as dsc] + [app.main.data.fonts :as df] + [app.main.data.workspace :as dw] [app.main.fonts :as fonts] [app.main.refs :as refs] [app.main.store :as st] + [app.main.ui.components.dropdown :refer [dropdown]] [app.main.ui.components.editable-select :refer [editable-select]] [app.main.ui.icons :as i] [app.main.ui.workspace.sidebar.options.common :refer [advanced-options]] [app.util.dom :as dom] - [app.util.i18n :as i18n :refer [t]] + [app.util.object :as obj] + [app.util.timers :as tm] + [app.util.keyboard :as kbd] + [app.util.i18n :as i18n :refer [tr]] [app.util.router :as rt] [app.util.timers :as ts] + [goog.events :as events] [cuerdas.core :as str] [rumext.alpha :as mf])) @@ -28,74 +38,279 @@ "" (str value))) -(mf/defc font-select-optgroups +(defn- get-next-font + [{:keys [id] :as current} fonts] + (if (seq fonts) + (let [index (d/index-of-pred fonts #(= (:id %) id)) + index (or index -1) + next (ex/ignoring (nth fonts (inc index)))] + (or next (first fonts))) + current)) + +(defn- get-prev-font + [{:keys [id] :as current} fonts] + (if (seq fonts) + (let [index (d/index-of-pred fonts #(= (:id %) id)) + next (ex/ignoring (nth fonts (dec index)))] + (or next (peek fonts))) + current)) + +(mf/defc font-item {::mf/wrap [mf/memo]} - [{:keys [locale] :as props}] - [:* - [:optgroup {:label (t locale "workspace.options.text-options.preset")} - (for [font fonts/local-fonts] - [:option {:value (:id font) - :key (:id font)} - (:name font)])] - [:optgroup {:label (t locale "workspace.options.text-options.google")} - (for [font (fonts/resolve-fonts :google)] - [:option {:value (:id font) - :key (:id font)} - (:name font)])]]) + [{:keys [font current? on-click style]}] + (let [item-ref (mf/use-ref) + on-click (mf/use-callback (mf/deps font) #(on-click font))] + + (mf/use-effect + (mf/deps current?) + (fn [] + (when current? + (let [element (mf/ref-val item-ref)] + (when-not (dom/is-in-viewport? element) + (dom/scroll-into-view! element)))))) + + [:div.font-item {:ref item-ref + :style style + :class (when current? "selected") + :on-click on-click} + [:span.icon (when current? i/tick)] + [:span.label (:name font)]])) + +(declare row-renderer) + +(defn filter-fonts + [{:keys [term backends]} fonts] + (let [xform (cond-> (map identity) + (seq term) + (comp (filter #(str/includes? (str/lower (:name %)) term))) + + (seq backends) + (comp (filter #(contains? backends (:backend %)))))] + (into [] xform fonts))) + +(defn- toggle-backend + [backends id] + (if (contains? backends id) + (disj backends id) + (conj backends id))) + +(mf/defc font-selector + [{:keys [on-select on-close current-font] :as props}] + (let [selected (mf/use-state current-font) + state (mf/use-state {:term "" :backends #{}}) + + flist (mf/use-ref) + input (mf/use-ref) + ddown (mf/use-ref) + + fonts (mf/use-memo (mf/deps @state) #(filter-fonts @state @fonts/fonts)) + + select-next + (mf/use-callback + (mf/deps fonts) + (fn [event] + (dom/stop-propagation event) + (dom/prevent-default event) + (swap! selected get-next-font fonts))) + + select-prev + (mf/use-callback + (mf/deps fonts) + (fn [event] + (dom/stop-propagation event) + (dom/prevent-default event) + (swap! selected get-prev-font fonts))) + + on-key-down + (mf/use-callback + (mf/deps fonts) + (fn [event] + (cond + (kbd/up-arrow? event) (select-prev event) + (kbd/down-arrow? event) (select-next event) + (kbd/esc? event) (on-close) + (kbd/enter? event) (on-close) + :else (dom/focus! (mf/ref-val input))))) + + on-filter-change + (mf/use-callback + (mf/deps) + (fn [event] + (let [value (dom/get-target-val event)] + (swap! state assoc :term value)))) + + on-select-and-close + (mf/use-callback + (mf/deps on-select on-close) + (fn [font] + (on-select font) + (on-close))) + ] + + (mf/use-effect + (mf/deps fonts) + (fn [] + (let [key (events/listen js/document "keydown" on-key-down)] + #(events/unlistenByKey key)))) + + (mf/use-effect + (mf/deps @selected) + (fn [] + (when-let [inst (mf/ref-val flist)] + (when-let [index (:index @selected)] + (.scrollToRow ^js inst index))))) + + (mf/use-effect + (mf/deps @selected) + (fn [] + (on-select @selected))) + + (mf/use-effect + (fn [] + (st/emit! (dsc/push-shortcuts :typography {})) + (fn [] + (st/emit! (dsc/pop-shortcuts :typography))))) + + (mf/use-effect + (fn [] + (let [index (d/index-of-pred fonts #(= (:id %) (:id current-font))) + inst (mf/ref-val flist)] + (tm/schedule + #(let [offset (.getOffsetForRow ^js inst #js {:alignment "center" :index index})] + (.scrollToPosition ^js inst offset)))))) + + [:div.font-selector + [:div.font-selector-dropdown + [:header + [:input {:placeholder "Search font" + :value (:term @state) + :ref input + :spell-check false + :on-change on-filter-change}] + + #_[:div.options + {:on-click #(swap! state assoc :show-options true) + :class (when (seq (:backends @state)) "active")} + i/picker-hsv] + + #_[:& dropdown {:show (:show-options @state false) + :on-close #(swap! state dissoc :show-options)} + (let [backends (:backends @state)] + [:div.backend-filters.dropdown {:ref ddown} + [:div.backend-filter + {:class (when (backends :custom) "selected") + :on-click #(swap! state update :backends toggle-backend :custom)} + [:div.checkbox-icon i/tick] + [:div.backend-name (tr "labels.custom-fonts")]] + [:div.backend-filter + {:class (when (backends :google) "selected") + :on-click #(swap! state update :backends toggle-backend :google)} + [:div.checkbox-icon i/tick] + [:div.backend-name "Google Fonts"]]])]] + + [:hr] + + [:div.fonts-list + [:> rvt/AutoSizer {} + (fn [props] + (let [width (obj/get props "width") + height (obj/get props "height") + render #(row-renderer fonts @selected on-select-and-close %)] + (mf/html + [:> rvt/List #js {:height height + :ref flist + :width width + :rowCount (count fonts) + :rowHeight 32 + :rowRenderer render}])))]]]])) +(defn row-renderer + [fonts selected on-select props] + (let [index (obj/get props "index") + key (obj/get props "key") + style (obj/get props "style") + font (nth fonts index)] + (mf/html + [:& font-item {:key key + :font font + :style style + :on-click on-select + :current? (= (:id font) (:id selected))}]))) (mf/defc font-options - [{:keys [editor ids values locale on-change] :as props}] - (let [{:keys [font-id - font-size - font-variant-id]} values + [{:keys [editor ids values on-change] :as props}] + (let [{:keys [font-id font-size font-variant-id]} values - font-id (or font-id (:font-id txt/default-text-attrs)) - font-size (or font-size (:font-size txt/default-text-attrs)) + font-id (or font-id (:font-id txt/default-text-attrs)) + font-size (or font-size (:font-size txt/default-text-attrs)) font-variant-id (or font-variant-id (:font-variant-id txt/default-text-attrs)) - fonts (mf/deref fonts/fontsdb) - font (get fonts font-id) + fonts (mf/deref fonts/fontsdb) + font (get fonts font-id) + + open-selector? (mf/use-state false) change-font - (fn [new-font-id] - (let [{:keys [family] :as font} (get fonts new-font-id) - {:keys [id name weight style]} (fonts/get-default-variant font)] - (on-change {:font-id new-font-id - :font-family family - :font-variant-id (or id name) - :font-weight weight - :font-style style}))) + (mf/use-callback + (mf/deps on-change fonts) + (fn [new-font-id] + (let [{:keys [family] :as font} (get fonts new-font-id) + {:keys [id name weight style]} (fonts/get-default-variant font)] + (on-change {:font-id new-font-id + :font-family family + :font-variant-id (or id name) + :font-weight weight + :font-style style})))) on-font-family-change - (fn [event] - (let [new-font-id (dom/get-target-val event)] - (when-not (str/empty? new-font-id) - (let [font (get fonts new-font-id)] - (fonts/ensure-loaded! new-font-id (partial change-font new-font-id)))))) + (mf/use-callback + (mf/deps fonts change-font) + (fn [event] + (let [new-font-id (dom/get-target-val event)] + (when-not (str/empty? new-font-id) + (let [font (get fonts new-font-id)] + (fonts/ensure-loaded! new-font-id (partial change-font new-font-id))))))) on-font-size-change - (fn [new-font-size] - (when-not (str/empty? new-font-size) - (on-change {:font-size (str new-font-size)}))) + (mf/use-callback + (mf/deps on-change) + (fn [new-font-size] + (when-not (str/empty? new-font-size) + (on-change {:font-size (str new-font-size)})))) on-font-variant-change - (fn [event] - (let [new-variant-id (dom/get-target-val event) - variant (d/seek #(= new-variant-id (:id %)) (:variants font))] - (on-change {:font-id (:id font) - :font-family (:family font) - :font-variant-id new-variant-id - :font-weight (:weight variant) - :font-style (:style variant)})))] + (mf/use-callback + (mf/deps font on-change) + (fn [event] + (let [new-variant-id (dom/get-target-val event) + variant (d/seek #(= new-variant-id (:id %)) (:variants font))] + (on-change {:font-id (:id font) + :font-family (:family font) + :font-variant-id new-variant-id + :font-weight (:weight variant) + :font-style (:style variant)})))) + + on-font-select + (mf/use-callback + (mf/deps change-font) + (fn [font*] + (when (not= font font*) + (change-font (:id font*))))) + + on-font-selector-close + (mf/use-callback + #(reset! open-selector? false))] [:* + (when @open-selector? + [:& font-selector + {:current-font font + :on-close on-font-selector-close + :on-select on-font-select}]) + [:div.row-flex - [:select.input-select.font-option - {:value (attr->string font-id) - :on-change on-font-family-change} - (when (= font-id :multiple) - [:option {:value ""} (t locale "settings.multiple")]) - [:& font-select-optgroups {:locale locale}]]] + [:div.input-select.font-option + {:on-click #(reset! open-selector? true)} + (:name font)]] [:div.row-flex (let [size-options [8 9 10 11 12 14 18 24 36 48 72] @@ -121,7 +336,7 @@ (mf/defc spacing-options - [{:keys [editor ids values locale on-change] :as props}] + [{:keys [editor ids values on-change] :as props}] (let [{:keys [line-height letter-spacing]} values @@ -136,7 +351,7 @@ [:div.spacing-options [:div.input-icon [:span.icon-before.tooltip.tooltip-bottom - {:alt (t locale "workspace.options.text-options.line-height")} + {:alt (tr "workspace.options.text-options.line-height")} i/line-height] [:input.input-text {:type "number" @@ -144,12 +359,12 @@ :min "0" :max "200" :value (attr->string line-height) - :placeholder (t locale "settings.multiple") + :placeholder (tr "settings.multiple") :on-change #(handle-change % :line-height)}]] [:div.input-icon [:span.icon-before.tooltip.tooltip-bottom - {:alt (t locale "workspace.options.text-options.letter-spacing")} + {:alt (tr "workspace.options.text-options.letter-spacing")} i/letter-spacing] [:input.input-text {:type "number" @@ -157,11 +372,11 @@ :min "0" :max "200" :value (attr->string letter-spacing) - :placeholder (t locale "settings.multiple") + :placeholder (tr "settings.multiple") :on-change #(handle-change % :letter-spacing)}]]])) (mf/defc text-transform-options - [{:keys [editor ids values locale on-change] :as props}] + [{:keys [editor ids values on-change] :as props}] (let [{:keys [text-transform]} values text-transform (or text-transform "none") @@ -171,35 +386,32 @@ (on-change {:text-transform type}))] [:div.align-icons [:span.tooltip.tooltip-bottom - {:alt (t locale "workspace.options.text-options.none") + {:alt (tr "workspace.options.text-options.none") :class (dom/classnames :current (= "none" text-transform)) :on-click #(handle-change % "none")} i/minus] [:span.tooltip.tooltip-bottom - {:alt (t locale "workspace.options.text-options.uppercase") + {:alt (tr "workspace.options.text-options.uppercase") :class (dom/classnames :current (= "uppercase" text-transform)) :on-click #(handle-change % "uppercase")} i/uppercase] [:span.tooltip.tooltip-bottom - {:alt (t locale "workspace.options.text-options.lowercase") + {:alt (tr "workspace.options.text-options.lowercase") :class (dom/classnames :current (= "lowercase" text-transform)) :on-click #(handle-change % "lowercase")} i/lowercase] [:span.tooltip.tooltip-bottom - {:alt (t locale "workspace.options.text-options.titlecase") + {:alt (tr "workspace.options.text-options.titlecase") :class (dom/classnames :current (= "capitalize" text-transform)) :on-click #(handle-change % "capitalize")} i/titlecase]])) (mf/defc typography-options [{:keys [ids editor values on-change]}] - (let [locale (mf/deref i18n/locale) - opts #js {:editor editor + (let [opts #js {:editor editor :ids ids :values values - :locale locale :on-change on-change}] - [:div.element-set-content [:> font-options opts] [:div.row-flex @@ -209,8 +421,7 @@ (mf/defc typography-entry [{:keys [typography read-only? selected? on-click on-change on-detach on-context-menu editting? focus-name? file]}] - (let [locale (mf/deref i18n/locale) - open? (mf/use-state editting?) + (let [open? (mf/use-state editting?) hover-detach (mf/use-state false) name-input-ref (mf/use-ref nil) value (mf/use-state (cp/merge-path-item (:path typography) (:name typography))) @@ -255,7 +466,7 @@ {:style {:font-family (:font-family typography) :font-weight (:font-weight typography) :font-style (:font-style typography)}} - (t locale "workspace.assets.typography.sample")] + (tr "workspace.assets.typography.sample")] [:div.typography-name (:name typography)]] [:div.element-set-actions (when on-detach @@ -277,32 +488,32 @@ [:span (:name typography)]] [:div.row-flex - [:span.label (t locale "workspace.assets.typography.font-id")] + [:span.label (tr "workspace.assets.typography.font-id")] [:span (:font-id typography)]] [:div.row-flex - [:span.label (t locale "workspace.assets.typography.font-variant-id")] + [:span.label (tr "workspace.assets.typography.font-variant-id")] [:span (:font-variant-id typography)]] [:div.row-flex - [:span.label (t locale "workspace.assets.typography.font-size")] + [:span.label (tr "workspace.assets.typography.font-size")] [:span (:font-size typography)]] [:div.row-flex - [:span.label (t locale "workspace.assets.typography.line-height")] + [:span.label (tr "workspace.assets.typography.line-height")] [:span (:line-height typography)]] [:div.row-flex - [:span.label (t locale "workspace.assets.typography.letter-spacing")] + [:span.label (tr "workspace.assets.typography.letter-spacing")] [:span (:letter-spacing typography)]] [:div.row-flex - [:span.label (t locale "workspace.assets.typography.text-transform")] + [:span.label (tr "workspace.assets.typography.text-transform")] [:span (:text-transform typography)]] [:div.go-to-lib-button {:on-click handle-go-to-edit} - (t locale "workspace.assets.typography.go-to-edit")]] + (tr "workspace.assets.typography.go-to-edit")]] [:* [:div.element-set-content diff --git a/frontend/src/app/main/ui/workspace/viewport/hooks.cljs b/frontend/src/app/main/ui/workspace/viewport/hooks.cljs index 01bfef047..bbda478b0 100644 --- a/frontend/src/app/main/ui/workspace/viewport/hooks.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/hooks.cljs @@ -190,7 +190,6 @@ (defn setup-shortcuts [path-editing? drawing-path?] (hooks/use-shortcuts ::workspace wsc/shortcuts) - (mf/use-effect (mf/deps path-editing? drawing-path?) (fn [] diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 6ec5ec1ee..9f786da1c 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -46,6 +46,9 @@ msgstr "Style" msgid "labels.custom-fonts" msgstr "Custom fonts" +msgid "labels.manage-fonts" +msgstr "Manage fonts" + msgid "labels.search-font" msgstr "Search font" @@ -55,13 +58,14 @@ msgstr "Font providers" msgid "labels.upload-custom-fonts" msgstr "Upload custom fonts" + #, markdown msgid "dashboard.fonts.hero-text1" msgstr "Any web font you upload here will be added to the font family list available at the text properties of the files of this team. Fonts with the same font family name will be grouped as a **single font family**. You can upload fonts with the following formats: **TTF, OTF and WOFF** (only one will be needed)." #, markdown msgid "dashboard.fonts.hero-text2" -msgstr "You should only upload fonts you own or have license to use in Penpot. Find out more in the Content rights section of [Penpot's Terms of Service](https://penpot.app/terms.html). You also might want to read about [font licensing](2)." +msgstr "You should only upload fonts you own or have license to use in Penpot. Find out more in the Content rights section of [Penpot's Terms of Service](https://penpot.app/terms.html). You also might want to read about [font licensing](https://www.typography.com/faq)." #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 197837509..65489d8ae 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -47,6 +47,9 @@ msgstr "Estilo" msgid "labels.custom-fonts" msgstr "Fuentes personalizadas" +msgid "labels.manage-fonts" +msgstr "Administrar fuentes" + msgid "labels.search-font" msgstr "Buscar fuente" diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 9ab017eae..7e17a50ee 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -10,6 +10,13 @@ core-js-pure "^3.0.0" regenerator-runtime "^0.13.4" +"@babel/runtime@^7.7.2", "@babel/runtime@^7.8.7": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz#46794bc20b612c5f75e62dd071e24dfd95f1cbe6" + integrity sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA== + dependencies: + regenerator-runtime "^0.13.4" + "@dabh/diagnostics@^2.0.2": version "2.0.2" resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.2.tgz#290d08f7b381b8f94607dc8f471a12c675f9db31" @@ -802,6 +809,11 @@ cloneable-readable@^1.0.0: process-nextick-args "^2.0.0" readable-stream "^2.3.5" +clsx@^1.0.4: + version "1.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" + integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== + coa@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" @@ -1147,6 +1159,11 @@ cssom@^0.3.4: resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== +csstype@^3.0.2: + version "3.0.8" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz#d2266a792729fb227cd216fb572f43728e1ad340" + integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw== + currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" @@ -1302,6 +1319,14 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" +dom-helpers@^5.1.3: + version "5.2.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + dom-serializer@0: version "0.2.2" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" @@ -3049,7 +3074,7 @@ logform@^2.2.0: ms "^2.1.1" triple-beam "^1.3.0" -loose-envify@^1.0.0, loose-envify@^1.1.0: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -4003,6 +4028,15 @@ promise@^7.1.1: dependencies: asap "~2.0.3" +prop-types@^15.7.2: + version "15.7.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + proto-list@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" @@ -4119,6 +4153,28 @@ react-dom@~17.0.1: object-assign "^4.1.1" scheduler "^0.20.2" +react-is@^16.8.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-lifecycles-compat@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== + +react-virtualized@^9.22.3: + version "9.22.3" + resolved "https://registry.yarnpkg.com/react-virtualized/-/react-virtualized-9.22.3.tgz#f430f16beb0a42db420dbd4d340403c0de334421" + integrity sha512-MKovKMxWTcwPSxE1kK1HcheQTWfuCxAuBoSTf2gwyMM21NdX/PXUhnoP8Uc5dRKd+nKm8v41R36OellhdCpkrw== + dependencies: + "@babel/runtime" "^7.7.2" + clsx "^1.0.4" + dom-helpers "^5.1.3" + loose-envify "^1.4.0" + prop-types "^15.7.2" + react-lifecycles-compat "^3.0.4" + react@~17.0.1: version "17.0.2" resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" From 9c99ec34108867838ae89a2bb648035d2d8643f6 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 17 May 2021 12:16:15 +0200 Subject: [PATCH 095/135] :bug: Fix issues related to font family names with spaces. --- CHANGES.md | 3 ++- frontend/src/app/main/ui/shapes/text/styles.cljs | 15 +++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index a216c2be0..b94d1b80c 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -27,7 +27,8 @@ ### :bug: Bugs fixed -- Remove interactions when the destination artboard is deleted [Taiga #1656](https://tree.taiga.io/project/penpot/issue/1656) +- Remove interactions when the destination artboard is deleted [Taiga #1656](https://tree.taiga.io/project/penpot/issue/1656). +- Fix problem with fonts that ends with numbers [#940](https://github.com/penpot/penpot/issues/940). ### :arrow_up: Deps updates diff --git a/frontend/src/app/main/ui/shapes/text/styles.cljs b/frontend/src/app/main/ui/shapes/text/styles.cljs index 83404cc7c..7b436bccd 100644 --- a/frontend/src/app/main/ui/shapes/text/styles.cljs +++ b/frontend/src/app/main/ui/shapes/text/styles.cljs @@ -65,9 +65,7 @@ font-id (:font-id data (:font-id txt/default-text-attrs)) font-variant-id (:font-variant-id data) - font-family (:font-family data) font-size (:font-size data) - fill-color (:fill-color data) fill-opacity (:fill-opacity data) @@ -106,14 +104,15 @@ (pos? (alength font-id))) (fonts/ensure-loaded! font-id) (let [font (get fontsdb font-id)] - (let [font-family (or (:family font) - (obj/get data "fontFamily")) + (let [font-family (str/quote + (or (:family font) + (:font-family data))) font-variant (d/seek #(= font-variant-id (:id %)) (:variants font)) - font-style (or (:style font-variant) - (obj/get data "fontStyle")) - font-weight (or (:weight font-variant) - (obj/get data "fontWeight"))] + font-style (or (:style font-variant) + (:font-style data)) + font-weight (or (:weight font-variant) + (:font-weight data))] (obj/set! base "fontFamily" font-family) (obj/set! base "fontStyle" font-style) (obj/set! base "fontWeight" font-weight)))) From 810f868b6730c26ec549c1283fa3166a35f90a64 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Wed, 19 May 2021 16:52:21 +0200 Subject: [PATCH 096/135] :bug: Fix problem with shapes with no transform to path --- frontend/src/app/util/path/shapes_to_path.cljs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/util/path/shapes_to_path.cljs b/frontend/src/app/util/path/shapes_to_path.cljs index b260821e7..a1d42ba47 100644 --- a/frontend/src/app/util/path/shapes_to_path.cljs +++ b/frontend/src/app/util/path/shapes_to_path.cljs @@ -131,8 +131,10 @@ (rect->path x y width height r1 r2 r3 r4)) ;; Apply the transforms that had the shape - transform (gmt/transform-in (gsh/center-shape shape) (:transform shape)) - new-content (gsp/transform-content new-content transform)] + transform (:transform shape) + new-content (cond-> new-content + (some? transform) + (gsp/transform-content (gmt/transform-in (gsh/center-shape shape) transform)))] (-> shape (d/without-keys dissoc-attrs) From 20b82697669f4fec1e1aeb916423e07332068755 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 17 May 2021 15:57:10 +0200 Subject: [PATCH 097/135] :sparkles: Improve bundle generation scripts. --- manage.sh | 72 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 56 insertions(+), 16 deletions(-) diff --git a/manage.sh b/manage.sh index 6ea162e26..80d9c6a85 100755 --- a/manage.sh +++ b/manage.sh @@ -98,6 +98,54 @@ Copyright (c) UXBOX Labs SL EOF } +function build-frontend-bundle { + echo ">> bundle frontend start"; + + local version=$(print-current-version); + local bundle_dir="./bundle-frontend"; + + build "frontend"; + + rm -rf $bundle_dir; + mv ./frontend/target/dist $bundle_dir; + echo $version > $bundle_dir/version.txt; + put-license-file $bundle_dir; + echo ">> bundle frontend end"; +} + +function build-backend-bundle { + echo ">> bundle backend start"; + + local version=$(print-current-version); + local bundle_dir="./bundle-backend"; + + build "backend"; + + rm -rf $bundle_dir; + mv ./backend/target/dist $bundle_dir; + echo $version > $bundle_dir/version.txt; + put-license-file $bundle_dir; + echo ">> bundle frontend end"; +} + +function build-exporter-bundle { + echo ">> bundle exporter start"; + local version=$(print-current-version); + local bundle_dir="./bundle-exporter"; + + build "exporter"; + + rm -rf $bundle_dir; + mv ./exporter/target $bundle_dir; + + echo $version > $bundle_dir/version.txt + put-license-file $bundle_dir; + + echo ">> bundle exporter end"; +} + +# DEPRECATED: temporary mantained for backward compatibilty. + function build-app-bundle { echo ">> bundle app start"; @@ -117,22 +165,6 @@ function build-app-bundle { echo ">> bundle app end"; } -function build-exporter-bundle { - echo ">> bundle exporter start"; - local version=$(print-current-version); - local bundle_dir="./bundle-exporter"; - - build "exporter"; - - rm -rf $bundle_dir; - mv ./exporter/target $bundle_dir; - - echo $version > $bundle_dir/version.txt - put-license-file $bundle_dir; - - echo ">> bundle exporter end"; -} - function usage { echo "PENPOT build & release manager" echo "USAGE: $0 OPTION" @@ -182,6 +214,14 @@ case $1 in build-app-bundle; ;; + build-frontend-bundle) + build-frontend-bundle; + ;; + + build-backend-bundle) + build-backend-bundle; + ;; + build-exporter-bundle) build-exporter-bundle; ;; From 344622b1c1b92be8ed3186e64e777d12d1f3ff56 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 19 May 2021 23:05:05 +0200 Subject: [PATCH 098/135] :bug: Fix many on handle some audit events. --- backend/src/app/loggers/audit.clj | 56 +++++++++++++------ backend/src/app/rpc.clj | 3 +- backend/src/app/rpc/mutations/demo.clj | 6 +- backend/src/app/rpc/mutations/profile.clj | 12 ++-- frontend/src/app/main/data/users.cljs | 4 +- .../app/main/ui/settings/delete_account.cljs | 20 +++---- 6 files changed, 61 insertions(+), 40 deletions(-) diff --git a/backend/src/app/loggers/audit.clj b/backend/src/app/loggers/audit.clj index 7d8c7e583..7513f9825 100644 --- a/backend/src/app/loggers/audit.clj +++ b/backend/src/app/loggers/audit.clj @@ -24,19 +24,33 @@ [lambdaisland.uri :as u])) (defn clean-props - "Cleans the params from complex data, only accept strings, numbers and - uuids and removing sensitive data such as :password and related - props." - [params] - (let [params (dissoc params :session-id :password :old-password :token)] - (reduce-kv (fn [params k v] - (cond-> params - (or (string? v) - (uuid? v) - (number? v)) - (assoc k v))) - {} - params))) + [{:keys [profile-id] :as event}] + (letfn [(clean-common [props] + (-> props + (dissoc :session-id) + (dissoc :password) + (dissoc :old-password) + (dissoc :token))) + + (clean-profile-id [props] + (cond-> props + (= profile-id (:profile-id props)) + (dissoc :profile-id))) + + (clean-complex-data [props] + (reduce-kv (fn [props k v] + (cond-> props + (or (string? v) + (uuid? v) + (boolean? v) + (number? v)) + (assoc k v) + + (keyword? v) + (assoc k (name v)))) + {} + props))] + (update event :props #(-> % clean-common clean-profile-id clean-complex-data)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Collector @@ -52,11 +66,16 @@ (defmethod ig/pre-init-spec ::collector [_] (s/keys :req-un [::db/pool ::wrk/executor ::enabled])) +(def event-xform + (comp + (filter :profile-id) + (map clean-props))) + (defmethod ig/init-key ::collector [_ {:keys [enabled] :as cfg}] (when enabled (l/info :msg "intializing audit collector") - (let [input (a/chan) + (let [input (a/chan 1 event-xform) buffer (aa/batch input {:max-batch-size 100 :max-batch-age (* 5 1000) :init []})] @@ -65,14 +84,17 @@ (l/debug :action "persist-events (batch)" :reason (name type) :count (count events)) - (a/ (assoc cfg :conn conn) (login-or-register params))] (with-meta profile - {:before-complete (annotate-profile-register metrics profile)})))) + {:before-complete (annotate-profile-register metrics profile) + ::audit/props (:props profile) + ::audit/profile-id (:id profile)})))) (defn login-or-register [{:keys [conn] :as cfg} {:keys [email backend] :as params}] @@ -614,7 +618,7 @@ ;; Schedule a complete deletion of profile (wrk/submit! {::wrk/task :delete-profile - ::wrk/dalay cfg/deletion-delay + ::wrk/delay cfg/deletion-delay ::wrk/conn conn :profile-id profile-id}) diff --git a/frontend/src/app/main/data/users.cljs b/frontend/src/app/main/data/users.cljs index 73142e4ae..906df6b8d 100644 --- a/frontend/src/app/main/data/users.cljs +++ b/frontend/src/app/main/data/users.cljs @@ -379,9 +379,11 @@ on-success identity}} (meta params)] (->> (rp/mutation :delete-profile {}) (rx/tap on-success) + (rx/delay-at-least 300) + (rx/catch (constantly (rx/of 1))) + (rx/map logged-out) (rx/catch on-error)))))) - ;; --- EVENT: request-profile-recovery (s/def ::request-profile-recovery diff --git a/frontend/src/app/main/ui/settings/delete_account.cljs b/frontend/src/app/main/ui/settings/delete_account.cljs index fe3ef3c59..f26881ddb 100644 --- a/frontend/src/app/main/ui/settings/delete_account.cljs +++ b/frontend/src/app/main/ui/settings/delete_account.cljs @@ -12,7 +12,7 @@ [app.main.store :as st] [app.main.ui.icons :as i] [app.main.ui.messages :as msgs] - [app.util.i18n :as i18n :refer [tr t]] + [app.util.i18n :as i18n :refer [tr]] [app.util.router :as rt] [beicon.core :as rx] [cljs.spec.alpha :as s] @@ -25,42 +25,36 @@ (rx/of (dm/error msg))) (rx/throw error))) -(defn on-success - [x] - (st/emit! (rt/nav :auth-login))) - (mf/defc delete-account-modal {::mf/register modal/components ::mf/register-as :delete-account} [props] - (let [locale (mf/deref i18n/locale) - on-close + (let [on-close (mf/use-callback (st/emitf (modal/hide))) on-accept (mf/use-callback (st/emitf (modal/hide) (du/request-account-deletion - (with-meta {} {:on-error on-error - :on-success on-success}))))] + (with-meta {} {:on-error on-error}))))] [:div.modal-overlay [:div.modal-container.change-email-modal [:div.modal-header [:div.modal-header-title - [:h2 (t locale "modals.delete-account.title")]] + [:h2 (tr "modals.delete-account.title")]] [:div.modal-close-button {:on-click on-close} i/close]] [:div.modal-content [:& msgs/inline-banner {:type :warning - :content (t locale "modals.delete-account.info")}]] + :content (tr "modals.delete-account.info")}]] [:div.modal-footer [:div.action-buttons [:button.btn-warning.btn-large {:on-click on-accept} - (t locale "modals.delete-account.confirm")] + (tr "modals.delete-account.confirm")] [:button.btn-secondary.btn-large {:on-click on-close} - (t locale "modals.delete-account.cancel")]]]]])) + (tr "modals.delete-account.cancel")]]]]])) From 6c1e13b6e5e5a6c8b6c80914d9e281969eb3e303 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 20 May 2021 10:46:45 +0200 Subject: [PATCH 099/135] :sparkles: Improve profile props handling and audit log integration. --- backend/src/app/http/oauth.clj | 27 +++++++------- backend/src/app/rpc.clj | 3 +- backend/src/app/rpc/mutations/profile.clj | 43 ++++++++++++----------- 3 files changed, 38 insertions(+), 35 deletions(-) diff --git a/backend/src/app/http/oauth.clj b/backend/src/app/http/oauth.clj index 63b9f481d..41a40ab18 100644 --- a/backend/src/app/http/oauth.clj +++ b/backend/src/app/http/oauth.clj @@ -6,7 +6,6 @@ (ns app.http.oauth (:require - [app.common.data :as d] [app.common.exceptions :as ex] [app.common.spec :as us] [app.common.uri :as u] @@ -99,10 +98,11 @@ res (http/send! req)] (when (= 200 (:status res)) - (let [{:keys [name] :as data} (json/read-str (:body res) :key-fn keyword)] - (-> data - (assoc :backend (:name provider)) - (assoc :fullname name))))) + (let [info (json/read-str (:body res) :key-fn keyword)] + {:backend (:name provider) + :email (:email info) + :fullname (:name info) + :props (dissoc info :name :email)}))) (catch Exception e (l/error :hint "unexpected exception on retrieve-user-info" @@ -118,7 +118,8 @@ (retrieve-user-info cfg))] (when-not info (ex/raise :type :internal - :code :unable-to-auth)) + :code :unable-to-auth + :hint "no user info")) ;; If the provider is OIDC, we can proceed to check ;; roles if they are defined. @@ -141,8 +142,10 @@ (some? (:invitation-token state)) (assoc :invitation-token (:invitation-token state)) + ;; If state token comes with props, merge them. The state token + ;; props can contain pm_ and utm_ prefixed query params. (map? (:props state)) - (d/merge (:props state))))) + (update :props merge (:props state))))) ;; --- HTTP HANDLERS @@ -152,7 +155,8 @@ (let [sk (name k)] (cond-> params (or (str/starts-with? sk "pm_") - (str/starts-with? sk "pm-")) + (str/starts-with? sk "pm-") + (str/starts-with? sk "utm_")) (assoc (-> sk str/kebab keyword) v)))) {} params)) @@ -254,9 +258,7 @@ [cfg] (let [opts {:client-id (cf/get :google-client-id) :client-secret (cf/get :google-client-secret) - :scopes #{"email" "profile" "openid" - "https://www.googleapis.com/auth/userinfo.email" - "https://www.googleapis.com/auth/userinfo.profile"} + :scopes #{"openid" "email" "profile"} :auth-uri "https://accounts.google.com/o/oauth2/v2/auth" :token-uri "https://oauth2.googleapis.com/token" :user-uri "https://openidconnect.googleapis.com/v1/userinfo" @@ -272,8 +274,7 @@ [cfg] (let [opts {:client-id (cf/get :github-client-id) :client-secret (cf/get :github-client-secret) - :scopes #{"read:user" - "user:email"} + :scopes #{"read:user" "user:email"} :auth-uri "https://github.com/login/oauth/authorize" :token-uri "https://github.com/login/oauth/access_token" :user-uri "https://api.github.com/user" diff --git a/backend/src/app/rpc.clj b/backend/src/app/rpc.clj index 0ecb9722e..45598854d 100644 --- a/backend/src/app/rpc.clj +++ b/backend/src/app/rpc.clj @@ -108,7 +108,8 @@ (::audit/profile-id resultm)) props (d/merge params (::audit/props resultm))] (audit :submit {:type (::type cfg) - :name (::sv/name mdata) + :name (or (::audit/name resultm) + (::sv/name mdata)) :profile-id profile-id :props props}))) result)))) diff --git a/backend/src/app/rpc/mutations/profile.clj b/backend/src/app/rpc/mutations/profile.clj index f9b680fc9..738c3f550 100644 --- a/backend/src/app/rpc/mutations/profile.clj +++ b/backend/src/app/rpc/mutations/profile.clj @@ -6,7 +6,6 @@ (ns app.rpc.mutations.profile (:require - [app.common.data :as d] [app.common.exceptions :as ex] [app.common.spec :as us] [app.common.uuid :as uuid] @@ -307,37 +306,39 @@ [{:keys [pool metrics] :as cfg} params] (db/with-atomic [conn pool] (let [profile (-> (assoc cfg :conn conn) - (login-or-register params))] + (login-or-register params)) + props (merge + (select-keys profile [:backend :fullname :email]) + (:props profile))] (with-meta profile {:before-complete (annotate-profile-register metrics profile) - ::audit/props (:props profile) + ::audit/name (if (::created profile) "register" "login") + ::audit/props props ::audit/profile-id (:id profile)})))) (defn login-or-register - [{:keys [conn] :as cfg} {:keys [email backend] :as params}] - (letfn [(info->props [info] - (dissoc info :name :fullname :email :backend)) - - (info->lang [{:keys [locale] :as info}] + [{:keys [conn] :as cfg} {:keys [email] :as params}] + (letfn [(info->lang [{:keys [locale] :as info}] (when (and (string? locale) (not (str/blank? locale))) locale)) - (create-profile [conn {:keys [email] :as info}] - (db/insert! conn :profile - {:id (uuid/next) - :fullname (:fullname info) - :email (str/lower email) - :lang (info->lang info) - :auth-backend backend - :is-active true - :password "!" - :props (db/tjson (info->props info)) - :is-demo false})) + (create-profile [conn {:keys [fullname backend email props] :as info}] + (let [params {:id (uuid/next) + :fullname fullname + :email (str/lower email) + :lang (info->lang props) + :auth-backend backend + :is-active true + :password "!" + :props (db/tjson props) + :is-demo false}] + (-> (db/insert! conn :profile params) + (update :props db/decode-transit-pgobject)))) (update-profile [conn info profile] - (let [props (d/merge (:props profile) - (info->props info))] + (let [props (merge (:props profile) + (:props info))] (db/update! conn :profile {:props (db/tjson props) :modified-at (dt/now)} From 188126a895344cf38724b51e84f930873098ef50 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 19 May 2021 16:02:38 +0200 Subject: [PATCH 100/135] :sparkles: Properly use dumped objects on initial data load process. --- backend/src/app/migrations.clj | 3 +++ .../sql/0055-mod-file-media-object-table.sql | 4 ++++ backend/src/app/rpc/mutations/management.clj | 12 ++++++------ backend/src/app/setup/initial_data.clj | 16 +++++++++++----- 4 files changed, 24 insertions(+), 11 deletions(-) create mode 100644 backend/src/app/migrations/sql/0055-mod-file-media-object-table.sql diff --git a/backend/src/app/migrations.clj b/backend/src/app/migrations.clj index 26e28f181..8e6350995 100644 --- a/backend/src/app/migrations.clj +++ b/backend/src/app/migrations.clj @@ -172,6 +172,9 @@ {:name "0054-add-audit-log-table" :fn (mg/resource "app/migrations/sql/0054-add-audit-log-table.sql")} + + {:name "0055-mod-file-media-object-table" + :fn (mg/resource "app/migrations/sql/0055-mod-file-media-object-table.sql")} ]) diff --git a/backend/src/app/migrations/sql/0055-mod-file-media-object-table.sql b/backend/src/app/migrations/sql/0055-mod-file-media-object-table.sql new file mode 100644 index 000000000..7017cb8d9 --- /dev/null +++ b/backend/src/app/migrations/sql/0055-mod-file-media-object-table.sql @@ -0,0 +1,4 @@ +ALTER TABLE file_media_object + DROP CONSTRAINT file_media_object_thumbnail_id_fkey, + ADD CONSTRAINT file_media_object_thumbnail_id_fkey + FOREIGN KEY (thumbnail_id) REFERENCES storage_object (id) ON DELETE SET NULL; diff --git a/backend/src/app/rpc/mutations/management.clj b/backend/src/app/rpc/mutations/management.clj index 177d02964..cc38374b2 100644 --- a/backend/src/app/rpc/mutations/management.clj +++ b/backend/src/app/rpc/mutations/management.clj @@ -91,21 +91,21 @@ (def sql:retrieve-used-media-objects "select fmo.* from file_media_object as fmo - inner join storage_object as o on (fmo.media_id = o.id) + inner join storage_object as so on (fmo.media_id = so.id) where fmo.file_id = ? - and o.deleted_at is null") + and so.deleted_at is null") (defn duplicate-file - [conn {:keys [profile-id file index project-id name]} {:keys [reset-shared-flag] :as opts}] - (let [flibs (db/exec! conn [sql:retrieve-used-libraries (:id file)]) - fmeds (db/exec! conn [sql:retrieve-used-media-objects (:id file)]) + [conn {:keys [profile-id file index project-id name flibs fmeds]} {:keys [reset-shared-flag] :as opts}] + (let [flibs (or flibs (db/exec! conn [sql:retrieve-used-libraries (:id file)])) + fmeds (or fmeds (db/exec! conn [sql:retrieve-used-media-objects (:id file)])) ;; memo uniform creation/modification date now (dt/now) ignore (dt/plus now (dt/duration {:seconds 5})) ;; add to the index all file media objects. - index (reduce #(assoc %1 (:id %2) (uuid/next)) index fmeds) + index (reduce #(assoc %1 (:id %2) (uuid/next)) index fmeds) flibs-xf (comp (map #(remap-id % index :file-id)) diff --git a/backend/src/app/setup/initial_data.clj b/backend/src/app/setup/initial_data.clj index 5514e7103..6532a54e5 100644 --- a/backend/src/app/setup/initial_data.clj +++ b/backend/src/app/setup/initial_data.clj @@ -8,7 +8,7 @@ (:refer-clojure :exclude [load]) (:require [app.common.uuid :as uuid] - [app.config :as cfg] + [app.config :as cf] [app.db :as db] [app.rpc.mutations.management :refer [duplicate-file]] [app.rpc.mutations.projects :refer [create-project create-project-role]] @@ -36,7 +36,7 @@ ([system project-id {:keys [skey project-name] :or {project-name "Penpot Onboarding"}}] (db/with-atomic [conn (:app.db/pool system)] - (let [skey (or skey (cfg/get :initial-project-skey)) + (let [skey (or skey (cf/get :initial-project-skey)) files (db/exec! conn [sql:file project-id]) flibs (db/exec! conn [sql:file-library-rel project-id]) fmeds (db/exec! conn [sql:file-media-object project-id]) @@ -65,7 +65,7 @@ (defn load-initial-project! ([conn profile] (load-initial-project! conn profile nil)) ([conn profile opts] - (let [skey (or (:skey opts) (cfg/get :initial-project-skey)) + (let [skey (or (:skey opts) (cf/get :initial-project-skey)) data (retrieve-data conn skey)] (when data (let [index (reduce #(assoc %1 (:id %2) (uuid/next)) {} (:files data)) @@ -82,10 +82,16 @@ :role :owner}) (doseq [file (:files data)] - (let [params {:profile-id (:id profile) + (let [flibs (filterv #(= (:id file) (:file-id %)) (:flibs data)) + fmeds (filterv #(= (:id file) (:file-id %)) (:fmeds data)) + + params {:profile-id (:id profile) :project-id (:id project) :file file - :index index} + :index index + :flibs flibs + :fmeds fmeds} + opts {:reset-shared-flag false}] (duplicate-file conn params opts)))))))) From 87aa4622b45748ee403a6fa1418faa5a48f34bd5 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 20 May 2021 11:14:21 +0200 Subject: [PATCH 101/135] :sparkles: Don't prefix events on audit archiver. --- backend/src/app/loggers/audit.clj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/app/loggers/audit.clj b/backend/src/app/loggers/audit.clj index 7513f9825..bbffcf781 100644 --- a/backend/src/app/loggers/audit.clj +++ b/backend/src/app/loggers/audit.clj @@ -156,7 +156,7 @@ (assoc :props (db/decode-transit-pgobject props)))) (row->event [{:keys [name type created-at profile-id props]}] - {:type (str "backend:" type) + {:type type :name name :timestamp created-at :profile-id profile-id From 7ff608ff0ba48bc2b73e27c425d65039886e89bd Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 20 May 2021 10:56:58 +0200 Subject: [PATCH 102/135] :arrow_up: Move svg parsing to the frontend with Tubax --- frontend/package.json | 1 + frontend/shadow-cljs.edn | 1 + .../src/app/main/data/workspace/persistence.cljs | 13 +++++++++---- frontend/src/app/main/repo.cljs | 8 -------- frontend/src/app/main/ui.cljs | 9 +++++++++ frontend/vendor/tubax/saxjs.cljs | 4 ++++ frontend/yarn.lock | 2 +- 7 files changed, 25 insertions(+), 13 deletions(-) create mode 100644 frontend/vendor/tubax/saxjs.cljs diff --git a/frontend/package.json b/frontend/package.json index ad653575e..9e583d58a 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -48,6 +48,7 @@ "react-dom": "~17.0.1", "react-virtualized": "^9.22.3", "rxjs": "~7.0.1", + "sax": "^1.2.4", "source-map-support": "^0.5.16", "tdigest": "^0.1.1", "ua-parser-js": "^0.7.28", diff --git a/frontend/shadow-cljs.edn b/frontend/shadow-cljs.edn index 06cf32402..3da0b47f9 100644 --- a/frontend/shadow-cljs.edn +++ b/frontend/shadow-cljs.edn @@ -20,6 +20,7 @@ [funcool/potok "4.0.0"] [funcool/promesa "6.0.0"] [funcool/rumext "2021.05.12-1"] + [funcool/tubax "2021.05.20-0"] [lambdaisland/uri "1.4.54" :exclusions [org.clojure/data.json]] diff --git a/frontend/src/app/main/data/workspace/persistence.cljs b/frontend/src/app/main/data/workspace/persistence.cljs index 35a6b26e0..1fbf6d28a 100644 --- a/frontend/src/app/main/data/workspace/persistence.cljs +++ b/frontend/src/app/main/data/workspace/persistence.cljs @@ -14,8 +14,8 @@ [app.common.spec :as us] [app.common.uuid :as uuid] [app.main.data.dashboard :as dd] - [app.main.data.media :as di] [app.main.data.fonts :as df] + [app.main.data.media :as di] [app.main.data.messages :as dm] [app.main.data.workspace.changes :as dch] [app.main.data.workspace.common :as dwc] @@ -39,7 +39,8 @@ [clojure.set :as set] [cuerdas.core :as str] [potok.core :as ptk] - [promesa.core :as p])) + [promesa.core :as p] + [tubax.core :as tubax])) (declare persist-changes) (declare persist-sychronous-changes) @@ -344,8 +345,12 @@ (defn parse-svg [[name text]] - (->> (rp/query! :parsed-svg {:data text}) - (rx/map #(assoc % :name name)))) + (try + (->> (rx/of (-> (tubax/xml->clj text) + (assoc :name name)))) + + (catch :default err + (rx/throw {:type :svg-parser})))) (defn fetch-svg [name uri] (->> (http/send! {:method :get :uri uri :mode :no-cors}) diff --git a/frontend/src/app/main/repo.cljs b/frontend/src/app/main/repo.cljs index 8b5980ed5..36d935ffb 100644 --- a/frontend/src/app/main/repo.cljs +++ b/frontend/src/app/main/repo.cljs @@ -110,14 +110,6 @@ :response-type :blob}) (rx/mapcat handle-response))) -(defmethod query :parsed-svg - [id params] - (->> (http/send! {:method :post - :uri (u/join base-uri "api/rpc/query/" (name id)) - :body (http/transit-data params)}) - (rx/map http/conditional-decode-transit) - (rx/mapcat handle-response))) - (derive :upload-file-media-object ::multipart-upload) (derive :update-profile-photo ::multipart-upload) (derive :update-team-photo ::multipart-upload) diff --git a/frontend/src/app/main/ui.cljs b/frontend/src/app/main/ui.cljs index 0bca30870..422a3734a 100644 --- a/frontend/src/app/main/ui.cljs +++ b/frontend/src/app/main/ui.cljs @@ -240,6 +240,15 @@ (js/console.error explain))) (js/console.groupEnd "Validation Error")) +;; Error on parsing an SVG +(defmethod ptk/handle-error :svg-parser + [error] + (ts/schedule + (st/emitf + (dm/show {:content "SVG is invalid or malformed" + :type :error + :timeout 3000})))) + ;; This is a pure frontend error that can be caused by an active ;; assertion (assertion that is preserved on production builds). From ;; the user perspective this should be treated as internal error. diff --git a/frontend/vendor/tubax/saxjs.cljs b/frontend/vendor/tubax/saxjs.cljs new file mode 100644 index 000000000..3dc98550b --- /dev/null +++ b/frontend/vendor/tubax/saxjs.cljs @@ -0,0 +1,4 @@ +(ns tubax.saxjs + (:require ["sax" :as sax])) + +(goog/exportSymbol "sax" sax) diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 7e17a50ee..caa556a85 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -4478,7 +4478,7 @@ sass@^1.32.8: dependencies: chokidar ">=3.0.0 <4.0.0" -sax@~1.2.4: +sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== From 4613aef1c8d9169371933a0cd536999a22c5be4d Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 20 May 2021 11:50:41 +0200 Subject: [PATCH 103/135] :bug: Fix problem with index updating --- frontend/src/app/worker/selection.cljs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/frontend/src/app/worker/selection.cljs b/frontend/src/app/worker/selection.cljs index 21667849b..09cc4041a 100644 --- a/frontend/src/app/worker/selection.cljs +++ b/frontend/src/app/worker/selection.cljs @@ -23,7 +23,7 @@ (defn index-shape [objects parents-index masks-index] (fn [index shape] - (let [{:keys [x y width height]} (:selrect shape) + (let [{:keys [x y width height]} (gsh/points->selrect (:points shape)) shape-bound #js {:x x :y y :width width :height height} parents (get parents-index (:id shape)) @@ -42,11 +42,10 @@ (let [shapes (-> objects (dissoc uuid/zero) (vals)) parents-index (cp/generate-child-all-parents-index objects) masks-index (cp/create-mask-index objects parents-index) - bounds (gsh/selection-rect shapes) - bounds #js {:x (:x bounds) - :y (:y bounds) - :width (:width bounds) - :height (:height bounds)} + bounds #js {:x (int -0.5e7) + :y (int -0.5e7) + :width (int 1e7) + :height (int 1e7)} index (reduce (index-shape objects parents-index masks-index) (qdt/create bounds) @@ -65,7 +64,8 @@ (get new-objects id))) changed-ids (into #{} - (filter changes?) + (comp (filter changes?) + (filter #(not= % uuid/zero))) (set/union (keys old-objects) (keys new-objects))) From 8a76d8322f6f663fd7e0818fbe7ab424f10029d4 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 13 May 2021 13:47:03 +0200 Subject: [PATCH 104/135] :globe_with_meridians: Added translation for: Romanian. --- frontend/translations/ro.po | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 frontend/translations/ro.po diff --git a/frontend/translations/ro.po b/frontend/translations/ro.po new file mode 100644 index 000000000..4f8f6e6de --- /dev/null +++ b/frontend/translations/ro.po @@ -0,0 +1,2 @@ +msgid "" +msgstr "X-Generator: Weblate\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit" \ No newline at end of file From 33a1e29a0ce17d48616ce97a74b84ad3b774659a Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 14 May 2021 11:13:38 +0200 Subject: [PATCH 105/135] :globe_with_meridians: Added translation for: Arabic. --- frontend/translations/ar.po | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 frontend/translations/ar.po diff --git a/frontend/translations/ar.po b/frontend/translations/ar.po new file mode 100644 index 000000000..4f8f6e6de --- /dev/null +++ b/frontend/translations/ar.po @@ -0,0 +1,2 @@ +msgid "" +msgstr "X-Generator: Weblate\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit" \ No newline at end of file From 2b4a78ea28b60a51f76dd5240c0523d89e7d2f3e Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 17 May 2021 11:12:49 +0200 Subject: [PATCH 106/135] :globe_with_meridians: Added translation for: Indonesian. --- frontend/translations/id.po | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 frontend/translations/id.po diff --git a/frontend/translations/id.po b/frontend/translations/id.po new file mode 100644 index 000000000..4f8f6e6de --- /dev/null +++ b/frontend/translations/id.po @@ -0,0 +1,2 @@ +msgid "" +msgstr "X-Generator: Weblate\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit" \ No newline at end of file From e0a0b82958e0ce0240ad8b23b02c6beef6bc44d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gizem=20Akg=C3=BCney?= Date: Sat, 15 May 2021 15:18:51 +0000 Subject: [PATCH 107/135] :globe_with_meridians: Add translations for: Turkish. Currently translated at 34.0% (225 of 661 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/tr/ --- frontend/translations/tr.po | 479 +++++++++++++++++++++++++++++++++++- 1 file changed, 471 insertions(+), 8 deletions(-) diff --git a/frontend/translations/tr.po b/frontend/translations/tr.po index 97dfb17d1..78fda6a12 100644 --- a/frontend/translations/tr.po +++ b/frontend/translations/tr.po @@ -1,10 +1,15 @@ msgid "" msgstr "" +"PO-Revision-Date: 2021-05-17 21:32+0000\n" +"Last-Translator: Gizem Akgüney \n" +"Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.7-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -84,7 +89,7 @@ msgstr "Yeni bir parola gir" #: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" -msgstr "Kurtarma bağlantısı geçerli değil" +msgstr "Kurtarma jetonu geçerli değil" #: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-succesfully" @@ -249,7 +254,7 @@ msgstr "E-posta adresin başarıyla doğrulandı" #: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" -msgstr "Parola kaydedildi" +msgstr "Parola başarıyla kaydedildi!" #: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" @@ -289,7 +294,7 @@ msgstr "Ara…" #: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" -msgstr "%s aranıyor" +msgstr "%s aranıyor…" #: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" @@ -405,7 +410,7 @@ msgstr "E-posta zaten kullanımda" #: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" -msgstr "E-posta zaten doğrulandı" +msgstr "E-posta zaten doğrulandı." #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" @@ -432,7 +437,7 @@ msgstr "Görsel formatı desteklenmiyor (svg, jpg veya png olmalı)." #: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" -msgstr "Bu görsel eklemek için çok büyük (5MB altında olmalı)" +msgstr "Bu görsel eklemek için çok büyük (5MB altında olmalı)." #: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" @@ -449,7 +454,7 @@ msgstr "" "var veya spam olarak bildirilmiş." msgid "errors.network" -msgstr "Sunucuya bağlanılamıyor" +msgstr "Sunucuya bağlanılamıyor." #: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" @@ -457,4 +462,462 @@ msgstr "Parolalar eşleşmedi" #: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" -msgstr "Parola en az 8 karakterden oluşmalı" \ No newline at end of file +msgstr "Parola en az 8 karakterden oluşmalı" + +#: src/app/main/ui/settings/profile.cljs +msgid "labels.update" +msgstr "Güncelle" + +#: src/app/main/ui/static.cljs +msgid "labels.sign-out" +msgstr "Çıkış yap" + +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +msgid "labels.show-your-comments" +msgstr "Yalnızca kendi yorumlarımı göster" + +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +msgid "labels.show-all-comments" +msgstr "Tüm yorumları göster" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.shared-libraries" +msgstr "Paylaşılan Kitaplıklar" + +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.settings" +msgstr "Ayarlar" + +#: src/app/main/ui/static.cljs +msgid "labels.service-unavailable.main-message" +msgstr "Hizmet Kullanılamıyor" + +#: src/app/main/ui/static.cljs +msgid "labels.service-unavailable.desc-message" +msgstr "Sistemlerimizin programlı bakımını yapıyoruz." + +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.sending" +msgstr "Gönderiliyor..." + +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.send" +msgstr "Gönder" + +msgid "labels.save" +msgstr "Kaydet" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.role" +msgstr "Rol" + +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +msgid "labels.retry" +msgstr "Yeniden dene" + +#: src/app/main/ui/dashboard/team_form.cljs +msgid "labels.rename-team" +msgstr "Takımı yeniden adlandır" + +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.rename" +msgstr "Yeniden adlandır" + +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.remove" +msgstr "Kaldır" + +#: src/app/main/ui/settings/sidebar.cljs +msgid "labels.release-notes" +msgstr "Sürüm notları" + +msgid "labels.recent" +msgstr "Son" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.projects" +msgstr "Projeler" + +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.profile" +msgstr "Profil" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.permissions" +msgstr "İzinler" + +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.password" +msgstr "Parola" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.owner" +msgstr "Sahip" + +#: src/app/main/ui/workspace/comments.cljs +msgid "labels.only-yours" +msgstr "Sadece seninkiler" + +#: src/app/main/ui/settings/password.cljs +msgid "labels.old-password" +msgstr "Eski parola" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.num-of-projects" +msgid_plural "labels.num-of-projects" +msgstr[0] "1 proje" +msgstr[1] "%s proje" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.num-of-files" +msgid_plural "labels.num-of-files" +msgstr[0] "1 dosya" +msgstr[1] "%s dosya" + +#: src/app/main/ui/static.cljs +msgid "labels.not-found.main-message" +msgstr "Oops!" + +#: src/app/main/ui/static.cljs +msgid "labels.not-found.desc-message" +msgstr "Bu sayfa mevcut olmayabilir veya erişim izniniz olmayabilir." + +#: src/app/main/ui/static.cljs +msgid "labels.not-found.auth-info" +msgstr "Şu şekilde oturum açtınız:" + +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs +msgid "labels.no-comments-available" +msgstr "Bekleyen yorum bildirimi yok" + +#: src/app/main/ui/settings/password.cljs +msgid "labels.new-password" +msgstr "Yeni parola" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.name" +msgstr "Ad" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.members" +msgstr "Üyeler" + +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.logout" +msgstr "Çıkış Yap" + +#: src/app/main/ui/settings/options.cljs +msgid "labels.language" +msgstr "Dil" + +#: src/app/main/ui/static.cljs +msgid "labels.internal-error.desc-message" +msgstr "" +"Kötü bir şey oldu. Lütfen işlemi yeniden deneyin ve sorun devam ederse " +"destek ile iletişime geçin." + +msgid "labels.images" +msgstr "Görseller" + +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +msgid "labels.hide-resolved-comments" +msgstr "Çözülmüş yorumları gizle" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.give-feedback" +msgstr "Geri bildirimde bulun" + +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.feedback-sent" +msgstr "Geri bildirim gönderildi" + +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.feedback-disabled" +msgstr "Geri bildirim devre dışı bırakıldı" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.email" +msgstr "E-posta" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.editor" +msgstr "Editör" + +#: src/app/main/ui/comments.cljs +msgid "labels.edit" +msgstr "Düzenle" + +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.drafts" +msgstr "Taslak" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.delete-multi-files" +msgstr "%s dosyayı sil" + +#: src/app/main/ui/comments.cljs +msgid "labels.delete-comment-thread" +msgstr "Mesaj dizisini sil" + +#: src/app/main/ui/comments.cljs +msgid "labels.delete-comment" +msgstr "Yorumu sil" + +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.delete" +msgstr "Sil" + +#: src/app/main/ui/settings/sidebar.cljs +msgid "labels.dashboard" +msgstr "Kontrol paneli" + +#: src/app/main/ui/dashboard/team_form.cljs +msgid "labels.create-team.placeholder" +msgstr "Yeni takım adı gir" + +#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs +msgid "labels.create-team" +msgstr "Yeni takım oluştur" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "labels.create" +msgstr "Oluştur" + +msgid "labels.content" +msgstr "İçerik" + +#: src/app/main/ui/settings/password.cljs +msgid "labels.confirm-password" +msgstr "Parolayı onayla" + +#: src/app/main/ui/dashboard/comments.cljs +msgid "labels.comments" +msgstr "Yorumlar" + +msgid "labels.centered" +msgstr "Orta" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.cancel" +msgstr "İptal" + +#: src/app/main/ui/workspace/comments.cljs +msgid "labels.all" +msgstr "Hepsi" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.admin" +msgstr "Yönetici" + +msgid "labels.accept" +msgstr "Kabul et" + +msgid "history.alert-message" +msgstr "%s sürümünü görüyorsun" + +#: src/app/main/ui/handoff/right_sidebar.cljs +msgid "handoff.tabs.info" +msgstr "Bilgi" + +msgid "handoff.tabs.code.selected.text" +msgstr "Metin" + +msgid "handoff.tabs.code.selected.svg-raw" +msgstr "SVG" + +msgid "handoff.tabs.code.selected.rect" +msgstr "Dikdörtgen" + +msgid "handoff.tabs.code.selected.path" +msgstr "Yol" + +#: src/app/main/ui/handoff/right_sidebar.cljs +msgid "handoff.tabs.code.selected.multiple" +msgstr "%s Seçildi" + +msgid "handoff.tabs.code.selected.image" +msgstr "Görsel" + +msgid "handoff.tabs.code.selected.group" +msgstr "Grup" + +msgid "handoff.tabs.code.selected.curve" +msgstr "Eğri" + +msgid "handoff.tabs.code.selected.circle" +msgstr "Daire" + +msgid "handoff.attributes.typography.text-transform.uppercase" +msgstr "Büyük Harf" + +msgid "handoff.attributes.typography.text-transform.none" +msgstr "Hiçbiri" + +msgid "handoff.attributes.typography.text-transform.lowercase" +msgstr "Küçük Harf" + +msgid "handoff.attributes.typography.text-decoration.none" +msgstr "Hiçbiri" + +#: src/app/main/ui/handoff/attributes/image.cljs +msgid "handoff.attributes.image.width" +msgstr "Genişlik" + +#: src/app/main/ui/handoff/attributes/image.cljs +msgid "handoff.attributes.image.height" +msgstr "Yükseklik" + +#: src/app/main/ui/handoff/attributes/image.cljs +msgid "handoff.attributes.image.download" +msgstr "Kaynak görselini indir" + +#: src/app/main/ui/handoff/attributes/fill.cljs +msgid "handoff.attributes.fill" +msgstr "Doldur" + +#: src/app/main/ui/handoff/attributes/common.cljs +msgid "handoff.attributes.color.rgba" +msgstr "RGBA" + +#: src/app/main/ui/handoff/attributes/common.cljs +msgid "handoff.attributes.color.hsla" +msgstr "HSLA" + +#: src/app/main/ui/handoff/attributes/common.cljs +msgid "handoff.attributes.color.hex" +msgstr "HEX" + +#: src/app/main/ui/handoff/attributes/blur.cljs +msgid "handoff.attributes.blur.value" +msgstr "Değer" + +#: src/app/main/ui/handoff/attributes/blur.cljs +msgid "handoff.attributes.blur" +msgstr "Bulanıklaştır" + +#: src/app/main/ui/settings/password.cljs +msgid "generic.error" +msgstr "Bir hata oluştu" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.title" +msgstr "E-posta" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.subject" +msgstr "Konu" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.discussions-title" +msgstr "Takım tartışmaları" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.discussions-go-to" +msgstr "Tartışmalar bölümüne git" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.description" +msgstr "Açıklama" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.chat-subtitle" +msgstr "Sohbet etmek ister misin? Glitter'da bizimle sohbet edebilirsin" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.chat-start" +msgstr "Sohbete katıl" + +#: src/app/main/ui/settings/password.cljs +msgid "errors.wrong-old-password" +msgstr "Eski parola yanlış" + +#: src/app/main/ui/auth/login.cljs +msgid "errors.wrong-credentials" +msgstr "Kullanıcı adı veya parola yanlış gözüküyor." + +#: src/app/main/ui/auth/verify_token.cljs +msgid "errors.unexpected-token" +msgstr "Bilinmeyen jeton" + +#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs +msgid "errors.unexpected-error" +msgstr "Beklenmedik bir hata oluştu." + +#: src/app/main/ui/auth/verify_token.cljs +msgid "errors.token-expired" +msgstr "Jetonun süresi geçti" + +msgid "errors.terms-privacy-agreement-invalid" +msgstr "Hizmet şartlarımızı ve gizlilik politikamızı kabul etmelisin." + +#: src/app/main/ui/auth/register.cljs +msgid "errors.registration-disabled" +msgstr "Kayıt olma şu anda devre dışı." + +#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs +msgid "errors.profile-is-muted" +msgstr "" +"Profilinizde sessize alınmış e-postalar var (spam raporları veya yüksek geri " +"dönüşler sebebiyle)." + +#: src/app/main/ui/components/color_input.cljs +msgid "errors.invalid-color" +msgstr "Geçersiz renk" + +#: src/app/main/data/dashboard.cljs +msgid "dashboard.new-project-prefix" +msgstr "Yeni Proje" + +#: src/app/main/data/dashboard.cljs +msgid "dashboard.new-file-prefix" +msgstr "Yeni Dosya" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-oidc-submit" +msgstr "OpenID (SSO) ile Giriş Yap" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-google-submit" +msgstr "Google ile Giriş Yap" + +#, markdown +msgid "dashboard.fonts.hero-text2" +msgstr "" +"Sadece kendinize ait veya Penpot'ta kullanılabilecek bir lisansa sahip olan " +"fontları yükleyebilirsiniz. [Penpot's Terms of Service] içindeki İçerik " +"hakları bölümünden detaylı bilgi alabilirsiniz (https://penpot.app/terms." +"html). Ayrıca [font licensing](2) hakkında daha fazla bilgi almak " +"isteyebilirsiniz." + +msgid "labels.search-font" +msgstr "Font ara" + +msgid "labels.font-variant" +msgstr "Stil" + +msgid "labels.font-family" +msgstr "Font Ailesi" + +msgid "labels.installed-fonts" +msgstr "Yüklenmiş fontlar" + +msgid "labels.fonts" +msgstr "Fontlar" + +msgid "modals.delete-font.message" +msgstr "" +"Bu fontu silmek istediğine emin misin? Bir dosyada kullanılıyorsa " +"yüklenmeyecektir." + +msgid "modals.delete-font.title" +msgstr "Fontu sil" + +msgid "labels.uploading" +msgstr "Yükleniyor..." + +msgid "labels.upload" +msgstr "Yükle" + +#: src/app/main/ui/dashboard/fonts.cljs +msgid "title.dashboard.fonts" +msgstr "Fontlar - %s - Penpot" From 245f7256e1c375dd7e9ddaac0fc172404ac847ec Mon Sep 17 00:00:00 2001 From: Eranot Date: Fri, 14 May 2021 09:20:06 +0000 Subject: [PATCH 108/135] :globe_with_meridians: Add translations for: Portuguese (Brazil). Currently translated at 35.0% (232 of 661 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/pt_BR/ --- frontend/translations/pt_BR.po | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/frontend/translations/pt_BR.po b/frontend/translations/pt_BR.po index 4c62a9e83..d1700d0dd 100644 --- a/frontend/translations/pt_BR.po +++ b/frontend/translations/pt_BR.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"PO-Revision-Date: 2021-05-13 01:35+0000\n" +"PO-Revision-Date: 2021-05-17 21:32+0000\n" "Last-Translator: Eranot \n" "Language-Team: Portuguese (Brazil) \n" @@ -902,3 +902,28 @@ msgstr "Remover “%s” como Biblioteca Compartilhada" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.accept" msgstr "Remover como Biblioteca Compartilhada" + +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.your-penpot" +msgstr "Sua Penpot" + +#: src/app/main/data/dashboard.cljs +msgid "dashboard.new-project-prefix" +msgstr "Novo projeto" + +#: src/app/main/data/dashboard.cljs +msgid "dashboard.new-file-prefix" +msgstr "Novo arquivo" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.default-team-name" +msgstr "Sua Penpot" + +#, markdown +msgid "dashboard.fonts.hero-text1" +msgstr "" +"Qualquer fonte da web que você carregar aqui será adicionada à lista de " +"família de fontes disponível nas propriedades de texto dos arquivos desta " +"equipe. As fontes com o mesmo nome de família de fontes serão agrupadas como " +"uma **única família de fontes**. Você pode fazer upload de fontes com os " +"seguintes formatos: **TTF, OTF e WOFF** (apenas uma será necessária)." From c356e64be5bf36ff9cc89a10c75bd108c6d053ca Mon Sep 17 00:00:00 2001 From: Simon Bechmann Date: Thu, 13 May 2021 13:44:09 +0000 Subject: [PATCH 109/135] :globe_with_meridians: Add translations for: Danish. Currently translated at 17.7% (117 of 661 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/da/ --- frontend/translations/da.po | 257 +++++++++++++++++++++++++++++++++++- 1 file changed, 254 insertions(+), 3 deletions(-) diff --git a/frontend/translations/da.po b/frontend/translations/da.po index f55ceb4cf..f0f49127e 100644 --- a/frontend/translations/da.po +++ b/frontend/translations/da.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"PO-Revision-Date: 2021-05-13 01:35+0000\n" +"PO-Revision-Date: 2021-05-17 21:32+0000\n" "Last-Translator: Simon Bechmann \n" "Language-Team: Danish \n" @@ -227,8 +227,259 @@ msgstr "Upload" #: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" -msgstr "Skrifttyper" +msgstr "Skrifttyper - %s - Penpot" #: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" -msgstr "Skrifttype Udbydere" +msgstr "Skrifttype Udbydere - %s - Penpot" + +#: src/app/main/data/workspace.cljs +msgid "errors.clipboard-not-implemented" +msgstr "Din browser kan ikke gøre denne operation" + +#: src/app/main/ui/dashboard/grid.cljs +msgid "ds.updated-at" +msgstr "Opdateret: %s" + +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +msgid "ds.confirm-title" +msgstr "Er du sikker?" + +#: src/app/main/ui/confirm.cljs +msgid "ds.confirm-ok" +msgstr "Ok" + +#: src/app/main/ui/confirm.cljs +msgid "ds.confirm-cancel" +msgstr "Fortryd" + +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.your-penpot" +msgstr "Dit Penpot" + +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.your-name" +msgstr "Dit navn" + +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.your-email" +msgstr "Email" + +#: src/app/main/ui/settings.cljs +msgid "dashboard.your-account-title" +msgstr "Din konto" + +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs +msgid "dashboard.update-settings" +msgstr "Opdater indstillinger" + +#: src/app/main/ui/dashboard/search.cljs +msgid "dashboard.type-something" +msgstr "Skriv for at søge i resultater" + +#: src/app/main/ui/dashboard/search.cljs +msgid "dashboard.title-search" +msgstr "Søgeresultater" + +#: src/app/main/ui/settings/options.cljs +msgid "dashboard.theme-change" +msgstr "UI tema" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.team-projects" +msgstr "Team projekter" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.team-members" +msgstr "Medlemmer" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.team-info" +msgstr "Team info" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.switch-team" +msgstr "Skift team" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "dashboard.success-move-project" +msgstr "Dit projekt er blevet flyttet med succes" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.success-move-files" +msgstr "Dine filer er blevet flyttet med succes" + +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.success-move-file" +msgstr "Din fil er blevet flyttet med succes" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "dashboard.success-duplicate-project" +msgstr "Dit projekt er blevet dublikeret med succes" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.success-duplicate-file" +msgstr "Din fil er blevet dublikeret med succes" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "dashboard.success-delete-project" +msgstr "Dit projekt er blevet slettet med succes" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.success-delete-file" +msgstr "Din fil er blevet slettet med succes" + +#: src/app/main/ui/dashboard/grid.cljs +msgid "dashboard.show-all-files" +msgstr "Vis alle filer" + +#: src/app/main/ui/settings/options.cljs +msgid "dashboard.select-ui-theme" +msgstr "Vælg tema" + +#: src/app/main/ui/settings/options.cljs +msgid "dashboard.select-ui-language" +msgstr "Vælg UI sprog" + +#: src/app/main/ui/dashboard/search.cljs +msgid "dashboard.searching-for" +msgstr "Søger efter “%s“…" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.search-placeholder" +msgstr "Søg…" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.remove-shared" +msgstr "Fjern som Delt Bibliotek" + +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.remove-account" +msgstr "Vil du slette din konto?" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.promote-to-owner" +msgstr "Forfrem til ejer" + +#: src/app/main/ui/dashboard/projects.cljs +msgid "dashboard.projects-title" +msgstr "Projekter" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "dashboard.pin-unpin" +msgstr "Fastgør/Løsne" + +#: src/app/main/ui/settings/password.cljs +msgid "dashboard.password-change" +msgstr "Skift adgangskode" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.open-in-new-tab" +msgstr "Åben fil i en ny fane" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.num-of-members" +msgstr "%s medlemmer" + +#: src/app/main/ui/settings/password.cljs +msgid "dashboard.notifications.password-saved" +msgstr "Adgangskode gemt med succes!" + +#: src/app/main/ui/auth/verify_token.cljs +msgid "dashboard.notifications.email-verified-successfully" +msgstr "Din email-adresse er blevet bekræftet med succes" + +#: src/app/main/ui/auth/verify_token.cljs +msgid "dashboard.notifications.email-changed-successfully" +msgstr "Din email-adresse er blevet opdateret med succes" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.no-projects-placeholder" +msgstr "Fastgjorte projekter bliver vist her" + +#: src/app/main/data/dashboard.cljs +msgid "dashboard.new-project-prefix" +msgstr "Nyt Projekt" + +#: src/app/main/ui/dashboard/projects.cljs +msgid "dashboard.new-project" +msgstr "+ Nyt projekt" + +#: src/app/main/ui/dashboard/search.cljs +msgid "dashboard.no-matches-for" +msgstr "Intet match fundet for “%s“" + +#: src/app/main/data/dashboard.cljs +msgid "dashboard.new-file-prefix" +msgstr "Ny Fil" + +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs +msgid "dashboard.new-file" +msgstr "+ Ny Fil" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.move-to-other-team" +msgstr "Flyt til andet team" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.move-to-multi" +msgstr "Flyt %s filer til" + +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.move-to" +msgstr "Flyt til" + +#: src/app/main/ui/dashboard/grid.cljs +msgid "dashboard.loading-files" +msgstr "indlæser dine filer…" + +#: src/app/main/ui/dashboard/libraries.cljs +msgid "dashboard.libraries-title" +msgstr "Delte Biblioteker" + +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.leave-team" +msgstr "Forlad team" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.invite-profile" +msgstr "Invitér til team" + +#: src/app/main/ui/dashboard/grid.cljs +msgid "dashboard.empty-files" +msgstr "Du har stadig ingen filer her" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.duplicate-multi" +msgstr "Dublikér %s filer" + +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.duplicate" +msgstr "Dublikér" + +msgid "dashboard.draft-title" +msgstr "Udkast" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.delete-team" +msgstr "Slet team" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.default-team-name" +msgstr "Dit Penpot" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.create-new-team" +msgstr "+ Opret nyt team" + +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +msgid "dashboard.copy-suffix" +msgstr "(kopi)" + +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.change-email" +msgstr "Skift email" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.add-shared" +msgstr "Tilføj som Delt Bibliotek" From 891ce8a33d533122ca7661ada4f90c0914ae3be3 Mon Sep 17 00:00:00 2001 From: George Lemon Date: Sun, 16 May 2021 18:30:40 +0000 Subject: [PATCH 110/135] :globe_with_meridians: Add translations for: Romanian. Currently translated at 100.0% (661 of 661 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/ro/ --- frontend/translations/ro.po | 2615 ++++++++++++++++++++++++++++++++++- 1 file changed, 2614 insertions(+), 1 deletion(-) diff --git a/frontend/translations/ro.po b/frontend/translations/ro.po index 4f8f6e6de..a83d86fae 100644 --- a/frontend/translations/ro.po +++ b/frontend/translations/ro.po @@ -1,2 +1,2615 @@ msgid "" -msgstr "X-Generator: Weblate\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit" \ No newline at end of file +msgstr "" +"PO-Revision-Date: 2021-05-17 21:32+0000\n" +"Last-Translator: George Lemon \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2;\n" +"X-Generator: Weblate 4.7-dev\n" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.luminosity" +msgstr "Luminozitate" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.lighten" +msgstr "Luminat" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.hard-light" +msgstr "Lumină Puternică" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.darken" +msgstr "Întunecat" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.title" +msgstr "Layer" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.soft-light" +msgstr "Soft light" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.screen" +msgstr "Screen" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.saturation" +msgstr "Saturaţie" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.overlay" +msgstr "Overlay" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.normal" +msgstr "Normal" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.hue" +msgstr "Hue" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.exclusion" +msgstr "Exclusion" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.difference" +msgstr "Difference" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.color-dodge" +msgstr "Color dodge" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.color-burn" +msgstr "Color burn" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.color" +msgstr "Culoare" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.square" +msgstr "Pătrat" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.row" +msgstr "Rânduri" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.width" +msgstr "Lăţime" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.use-default" +msgstr "Foloseşte default" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.type.top" +msgstr "Sus" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.type.stretch" +msgstr "Întinde" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.type.right" +msgstr "Dreapta" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.type.left" +msgstr "Stânga" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.type.center" +msgstr "Centru" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.type.bottom" +msgstr "Jos" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.type" +msgstr "Tip" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.size" +msgstr "Mărime" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.set-default" +msgstr "Setează ca predefinit" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.rows" +msgstr "Rânduri" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.margin" +msgstr "Margine" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.height" +msgstr "Înălţime" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.columns" +msgstr "Coloane" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.column" +msgstr "Coloane" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.auto" +msgstr "Auto" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +msgid "workspace.options.fill" +msgstr "Umple" + +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs +msgid "workspace.options.exporting-object" +msgstr "Se exportă…" + +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs +msgid "workspace.options.export.suffix" +msgstr "Sufix" + +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs +msgid "workspace.options.export-object" +msgstr "Exportă forma obiectului" + +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs +msgid "workspace.options.export" +msgstr "Exportă" + +#: src/app/main/ui/workspace/sidebar/options.cljs +msgid "workspace.options.design" +msgstr "Design" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs +msgid "workspace.options.component" +msgstr "Componentă" + +#: src/app/main/ui/workspace/sidebar/options/page.cljs +msgid "workspace.options.canvas-background" +msgstr "Fundal canvas" + +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +msgid "workspace.options.blur-options.title.multiple" +msgstr "Selecţie de blur" + +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +msgid "workspace.options.blur-options.title.group" +msgstr "Blur pe grup" + +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +msgid "workspace.options.blur-options.title" +msgstr "Blur" + +msgid "workspace.options.blur-options.layer-blur" +msgstr "Strat" + +msgid "workspace.options.blur-options.background-blur" +msgstr "Fundal" + +msgid "workspace.library.own" +msgstr "Colecţiile mele" + +msgid "workspace.library.libraries" +msgstr "Colecţii" + +msgid "workspace.library.all" +msgstr "Toate colecţiile" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.updates" +msgstr "ACTUALIZĂRI" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.update" +msgstr "Actualizaţi" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.typography" +msgstr "%s tipografice" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.libraries.text.multiple-typography-tooltip" +msgstr "Decupleză tipograficele" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.libraries.text.multiple-typography" +msgstr "Tipografii" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.shared-libraries" +msgstr "COLECŢII DISTRIBUITE" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.search-shared-libraries" +msgstr "Caută în colecţiile distribuite" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.no-shared-libraries-available" +msgstr "Nu există Colecţii Distribuite" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.no-matches-for" +msgstr "Nu au fost găsite asemănări pentru “%s“" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.no-libraries-need-sync" +msgstr "Nu există Colecţii Distribuite ce necesită update" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.library" +msgstr "COLECŢIE" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.libraries" +msgstr "COLECŢII" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.in-this-file" +msgstr "COLECŢIILE FIŞIERULUI" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.graphics" +msgstr "%s obiecte grafice" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.file-library" +msgstr "Colecţie" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.components" +msgstr "%s componente" + +#: src/app/main/ui/workspace/colorpalette.cljs +msgid "workspace.libraries.colors.small-thumbnails" +msgstr "Thumbnail mic" + +#: src/app/main/ui/workspace/colorpicker.cljs +msgid "workspace.libraries.colors.save-color" +msgstr "Salvează stilul culorii" + +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs +msgid "workspace.libraries.colors.recent-colors" +msgstr "Culori recente" + +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs +msgid "workspace.libraries.colors.file-library" +msgstr "Colecţie" + +#: src/app/main/ui/workspace/colorpalette.cljs +msgid "workspace.libraries.colors.big-thumbnails" +msgstr "Thumbnail mare" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.colors" +msgstr "%s culori" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.add" +msgstr "Adaugă" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.viewer" +msgstr "Vizualizare (%s)" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.unsaved" +msgstr "Modificări nesalvate" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.saving" +msgstr "Salvare în curs" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.saved" +msgstr "Salvat" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.save-error" +msgstr "Eroare în timpul salvării" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-rules" +msgstr "Afişează Liniarul" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-palette" +msgstr "Afişează paleta de culori" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-layers" +msgstr "Afişează layere" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-grid" +msgstr "Afişează sistemul grid" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-assets" +msgstr "Afişează asset-uri" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.select-all" +msgstr "Selectează tot" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.hide-rules" +msgstr "Ascunde ghidul liniar" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.hide-palette" +msgstr "Ascunde paleta de culori" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.hide-layers" +msgstr "Ascunde layere" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.hide-grid" +msgstr "Ascunde grila de ghidaj" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.hide-assets" +msgstr "Ascunde obiectele" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.enable-snap-grid" +msgstr "Aliniază per grilă" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.enable-scale-text" +msgstr "Activează scalarea textului" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.enable-dynamic-alignment" +msgstr "Aliniere dinamică" + +#, markdown +msgid "dashboard.fonts.hero-text1" +msgstr "" +"Fonturile încărcate vor fi adăugate la familia de fonturi disponibilă " +"acestei echipe. Font-urile cu același nume vor fi grupate ca **o singură " +"familie de font-uri**. Tipurile de fişiere acceptate: **TTF, OTF și WOFF** (" +"se poate urca doar un singur tip)." + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.disable-scale-text" +msgstr "Dezactivează dimensionarea textului" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.disable-dynamic-alignment" +msgstr "Dezactivează alinierea dinamică" + +#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs +msgid "workspace.gradients.radial" +msgstr "Gradient radial" + +#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs +msgid "workspace.gradients.linear" +msgstr "Gradient liniar" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.assets.typography.text-transform" +msgstr "Transformare Text" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/handoff/attributes/text.cljs, src/app/main/ui/handoff/attributes/text.cljs +msgid "workspace.assets.typography.sample" +msgstr "Ag" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.assets.typography.line-height" +msgstr "Înălţime linie" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.assets.typography.letter-spacing" +msgstr "Spaţiere Litere" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.assets.typography.go-to-edit" +msgstr "Editează fişierul în Colecţia de stiluri" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.assets.typography.font-variant-id" +msgstr "Variante" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.assets.typography.font-size" +msgstr "Dimensiune" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.assets.typography.font-id" +msgstr "Font" + +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.typography" +msgstr "Tipografii" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.shared" +msgstr "DISTRIBUITE" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.selected-count" +msgid_plural "workspace.assets.selected-count" +msgstr[0] "%s obiect selectat" +msgstr[1] "%s obiecte selectate" +msgstr[2] "%s obiecte selectate" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.search" +msgstr "Caută obiecte" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.rename" +msgstr "Redenumeşte" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.not-found" +msgstr "Nu au fost găsite obiecte" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.libraries" +msgstr "Colecţii" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.group-name" +msgstr "Nume grup" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.group" +msgstr "Grup" + +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.graphics" +msgstr "Obiecte grafice" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.file-library" +msgstr "Colecţii" + +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.edit" +msgstr "Editează" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.duplicate" +msgstr "Duplică" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.delete" +msgstr "Şterge" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.create-group-hint" +msgstr "Obiectele vor fi numite automat ca \"nume grup / nume obiect\"" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.create-group" +msgstr "Creează grup" + +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.components" +msgstr "Componente" + +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.colors" +msgstr "Culori" + +msgid "workspace.assets.box-filter-graphics" +msgstr "Obiecte grafice" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.box-filter-all" +msgstr "Toate obiectele" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.assets" +msgstr "Obiecte" + +#: src/app/main/ui/workspace/sidebar/align.cljs +msgid "workspace.align.vtop" +msgstr "Aliniază sus" + +#: src/app/main/ui/workspace/sidebar/align.cljs +msgid "workspace.align.vdistribute" +msgstr "Introdu spaţierea pe verticală" + +#: src/app/main/ui/workspace/sidebar/align.cljs +msgid "workspace.align.vcenter" +msgstr "Aliniază vertical" + +#: src/app/main/ui/workspace/sidebar/align.cljs +msgid "workspace.align.vbottom" +msgstr "Aliniază jos" + +#: src/app/main/ui/workspace/sidebar/align.cljs +msgid "workspace.align.hright" +msgstr "Aliniază la dreapta" + +#: src/app/main/ui/workspace/sidebar/align.cljs +msgid "workspace.align.hleft" +msgstr "Aliniază la stânga" + +#: src/app/main/ui/workspace/sidebar/align.cljs +msgid "workspace.align.hdistribute" +msgstr "Introdu spaţierea orizontală" + +#: src/app/main/ui/workspace/sidebar/align.cljs +msgid "workspace.align.hcenter" +msgstr "Aliniază orizontal" + +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.sitemap" +msgstr "Harta site-ului" + +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.show-interactions-on-click" +msgstr "Afişează interacţiunile la click" + +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.show-interactions" +msgstr "Afişează interacţiunile" + +#: src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs +msgid "viewer.header.share.title" +msgstr "Distribuie link" + +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.share.subtitle" +msgstr "Prin acest link se permite accesul public" + +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.share.remove-link" +msgstr "Elimină link" + +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.share.placeholder" +msgstr "Link-ul distribuit va apărea aici" + +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.share.create-link" +msgstr "Creează link" + +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.share.copy-link" +msgstr "Copiază link" + +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.fullscreen" +msgstr "Ecran complet" + +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.edit-page" +msgstr "Editează pagina" + +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.dont-show-interactions" +msgstr "Nu afişa interacţiunile" + +#: src/app/main/ui/handoff.cljs, src/app/main/ui/viewer.cljs +msgid "viewer.frame-not-found" +msgstr "Fereastra nu există." + +#: src/app/main/ui/handoff.cljs, src/app/main/ui/viewer.cljs +msgid "viewer.empty-state" +msgstr "Nu există ferestre disponibile pe această pagină." + +#: src/app/main/ui/workspace.cljs +msgid "title.workspace" +msgstr "%s - Penpot" + +#: src/app/main/ui/handoff.cljs, src/app/main/ui/viewer.cljs +msgid "title.viewer" +msgstr "%s - Vizualizare - Penpot" + +#: src/app/main/ui/dashboard/team.cljs +msgid "title.team-settings" +msgstr "Setări - %s - Penpot" + +#: src/app/main/ui/dashboard/team.cljs +msgid "title.team-members" +msgstr "Membri - %s - Penpot" + +#: src/app/main/ui/settings/profile.cljs +msgid "title.settings.profile" +msgstr "Profil - Penpot" + +#: src/app/main/ui/settings/password.cljs +msgid "title.settings.password" +msgstr "Parolă - Penpot" + +#: src/app/main/ui/settings/options.cljs +msgid "title.settings.options" +msgstr "Setări - Penpot" + +#: src/app/main/ui/settings/feedback.cljs +msgid "title.settings.feedback" +msgstr "Oferă feedback - Penpot" + +#: src/app/main/ui/dashboard/libraries.cljs +msgid "title.dashboard.shared-libraries" +msgstr "Colecţii Distribuite - %s - Penpot" + +#: src/app/main/ui/dashboard/search.cljs +msgid "title.dashboard.search" +msgstr "Caută - %s - Penpot" + +#: src/app/main/ui/dashboard/projects.cljs +msgid "title.dashboard.projects" +msgstr "Proiecte - %s - Penpot" + +#: src/app/main/ui/dashboard/files.cljs +msgid "title.dashboard.files" +msgstr "%s - Penpot" + +#: src/app/main/ui/auth/recovery.cljs +msgid "profile.recovery.go-to-login" +msgstr "Mergi la autentificare" + +#: src/app/main/ui/settings/change_email.cljs +msgid "notifications.validation-email-sent" +msgstr "" +"Un e-mail de verificare a fost trimis la %s. Verifică-ţi adresa de e-mail!" + +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +msgid "notifications.profile-saved" +msgstr "Profil salvat cu succes!" + +#: src/app/main/ui/dashboard/team.cljs +msgid "notifications.invitation-email-sent" +msgstr "Invitaţie trimisă cu succes" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "modals.update-remote-component.message" +msgstr "Actualizaţi o componentă dintr-o colecţie distribuită" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "modals.update-remote-component.hint" +msgstr "" +"Actualizezi o componentă dintr-o colecţie distribuită. Pot fi afectate alte " +"fişiere ce o folosesc." + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "modals.update-remote-component.cancel" +msgstr "Anulează" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "modals.update-remote-component.accept" +msgstr "Actualizare componentă" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.remove-shared-confirm.message" +msgstr "Șterge “%s” din Colecții Distribuite" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.remove-shared-confirm.hint" +msgstr "" +"O dată șters din Colecțiile Distribuite, toate fișierele acestei colecții nu " +"vor mai fi disponibile altora." + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.remove-shared-confirm.accept" +msgstr "Elimină din Colecțiile Distribuite" + +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.promote-owner-confirm.title" +msgstr "Confirmare promovare" + +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.promote-owner-confirm.message" +msgstr "" +"Ești sigur că dorești să promovezi acest utilizator ca deținător al echipei?" + +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.promote-owner-confirm.accept" +msgstr "Promovează" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-confirm.title" +msgstr "Părăsire echipă în curs" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-confirm.message" +msgstr "Ești sigur că dorești să părăsești această echipă?" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-confirm.accept" +msgstr "Părăsește echipa" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-and-reassign.title" +msgstr "Selectează un membru pentru promovare" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-and-reassign.select-memeber-to-promote" +msgstr "Selectează un membru pentru promovare" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-and-reassign.hint1" +msgstr "Ești administratorul echipei %s." + +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.invite-member.title" +msgstr "Invită o persoană în echipă" + +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.invite-member-confirm.accept" +msgstr "Trimite invitație" + +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.delete-team-member-confirm.title" +msgstr "Elimină un membru al echipei" + +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.delete-team-member-confirm.accept" +msgstr "Elimină membru" + +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.delete-team-member-confirm.message" +msgstr "Ești sigur că dorești să elimini acest membru din echipă?" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.delete-team-confirm.title" +msgstr "Ștergere echipă în curs" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.delete-team-confirm.message" +msgstr "" +"Ești sigur că dorești să ștergi această echipă? Toate proiectele și " +"fișierele asociate acesteia vor fi permanent șterse." + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.delete-team-confirm.accept" +msgstr "Șterge echipă" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "modals.delete-project-confirm.title" +msgstr "Șterge proiect" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "modals.delete-project-confirm.message" +msgstr "Ești sigur că dorești să ștergi acest proiect?" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "modals.delete-project-confirm.accept" +msgstr "Șterge proiect" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs +msgid "modals.delete-page.title" +msgstr "Șterge pagină" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs +msgid "modals.delete-page.body" +msgstr "Ești sigur că dorești să ștergi această pagină?" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.delete-file-multi-confirm.title" +msgstr "Ștergere %s fișeiere în curs" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.delete-file-multi-confirm.message" +msgstr "Ești sigur că dorești să ștergi aceste %s fișiere?" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.delete-file-multi-confirm.accept" +msgstr "Șterge fișiere" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.delete-file-confirm.title" +msgstr "Ștergere fișier" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.delete-file-confirm.message" +msgstr "Ești sigur că dorești să ștergi acest fișier?" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.delete-file-confirm.accept" +msgstr "Șterge fișier" + +#: src/app/main/ui/comments.cljs +msgid "modals.delete-comment-thread.title" +msgstr "Șterge conversație" + +#: src/app/main/ui/comments.cljs +msgid "modals.delete-comment-thread.message" +msgstr "" +"Ești sigur că dorești să ștergi această conversație? Toate discuțiile din " +"cadrul subiect vor fi șterse." + +#: src/app/main/ui/comments.cljs +msgid "modals.delete-comment-thread.accept" +msgstr "Șterge conversație" + +#: src/app/main/ui/settings/delete_account.cljs +msgid "modals.delete-account.title" +msgstr "Ești sigur că dorești ștergerea contului?" + +#: src/app/main/ui/settings/delete_account.cljs +msgid "modals.delete-account.info" +msgstr "" +"Prin ștergerea contului, se vor șterge toate proiectele și arhivele tale." + +#: src/app/main/ui/settings/delete_account.cljs +msgid "modals.delete-account.confirm" +msgstr "Confirm ștergerea contului" + +#: src/app/main/ui/settings/delete_account.cljs +msgid "modals.delete-account.cancel" +msgstr "Anulează ștergerea contului" + +#: src/app/main/ui/settings/change_email.cljs +msgid "modals.change-email.title" +msgstr "Schimbă-ți adresa de E-mail" + +#: src/app/main/ui/settings/change_email.cljs +msgid "modals.change-email.submit" +msgstr "Schimbă adresa de e-mail" + +#: src/app/main/ui/settings/change_email.cljs +msgid "modals.change-email.new-email" +msgstr "Mail nou" + +#: src/app/main/ui/settings/change_email.cljs +msgid "modals.change-email.info" +msgstr "Îți vom trimite un email pe adresa “%s” pentru identificare." + +#: src/app/main/ui/settings/change_email.cljs +msgid "modals.change-email.confirm-email" +msgstr "Verifică-ți adresa de e-mail" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.add-shared-confirm.message" +msgstr "Adaugă “%s” la Colecții Distribuite" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.add-shared-confirm.hint" +msgstr "" +"O dată adăugat la Colecții distribuite, toate fișierele acestei colecții vor " +"deveni disponibile altora." + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.add-shared-confirm.accept" +msgstr "Adaugă la Colecții distribuite" + +#, permanent +msgid "handoff.attributes.stroke.alignment.outer" +msgstr "Exterior" + +#, permanent +msgid "handoff.attributes.stroke.alignment.inner" +msgstr "Interior" + +#, permanent +msgid "handoff.attributes.stroke.alignment.center" +msgstr "Centru" + +#: src/app/main/ui/handoff/attributes/stroke.cljs +msgid "handoff.attributes.stroke" +msgstr "Linie" + +#: src/app/main/ui/handoff/attributes/shadow.cljs +msgid "handoff.attributes.shadow.shorthand.spread" +msgstr "S" + +#: src/app/main/ui/handoff/attributes/shadow.cljs +msgid "handoff.attributes.shadow.shorthand.offset-y" +msgstr "Y" + +#: src/app/main/ui/handoff/attributes/shadow.cljs +msgid "handoff.attributes.shadow.shorthand.offset-x" +msgstr "X" + +#: src/app/main/ui/handoff/attributes/shadow.cljs +msgid "handoff.attributes.shadow.shorthand.blur" +msgstr "B" + +#: src/app/main/ui/handoff/attributes/shadow.cljs +msgid "handoff.attributes.shadow" +msgstr "Umbră" + +#: src/app/main/ui/handoff/attributes/layout.cljs +msgid "handoff.attributes.layout.width" +msgstr "Lățime" + +#: src/app/main/ui/handoff/attributes/layout.cljs +msgid "handoff.attributes.layout.top" +msgstr "Top" + +#: src/app/main/ui/handoff/attributes/layout.cljs +msgid "handoff.attributes.layout.rotation" +msgstr "Rotație" + +#: src/app/main/ui/handoff/attributes/layout.cljs, src/app/main/ui/handoff/attributes/layout.cljs +msgid "handoff.attributes.layout.radius" +msgstr "Rază" + +#: src/app/main/ui/handoff/attributes/layout.cljs +msgid "handoff.attributes.layout.left" +msgstr "Stânga" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.multiply" +msgstr "Multiplică" + +msgid "workspace.undo.entry.single.color" +msgstr "culoare" + +msgid "workspace.undo.entry.multiple.color" +msgstr "Culori" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.move" +msgstr "Poziţionează" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.ellipse" +msgstr "Elipsă (%s)" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.curve" +msgstr "Curbe (%s)" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.unmask" +msgstr "Demaschează" + +#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.paste" +msgstr "Lipeşte" + +#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.mask" +msgstr "Maschează" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.front" +msgstr "Aduceţi în faţă" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.forward" +msgstr "Aduceţi înainte" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.backward" +msgstr "Trimite în urmă" + +msgid "workspace.path.actions.snap-nodes" +msgstr "Trage noduri (%s)" + +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs +msgid "workspace.options.size-presets" +msgstr "Dimensiuni presetate" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +msgid "workspace.options.shadow-options.title.multiple" +msgstr "Selection shadows" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +msgid "workspace.options.shadow-options.title.group" +msgstr "Group shadow" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +msgid "workspace.options.shadow-options.inner-shadow" +msgstr "Inner shadow" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +msgid "workspace.options.shadow-options.drop-shadow" +msgstr "Drop shadow" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.selection-stroke" +msgstr "Selection stroke" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +msgid "workspace.options.selection-fill" +msgstr "Selection fill" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.select-a-shape" +msgstr "" +"Selectează o formă, o planşă sau grupează pentru a conecta o altă planşă." + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.group-stroke" +msgstr "Group stroke" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +msgid "workspace.options.group-fill" +msgstr "Group fill" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.title" +msgstr "Grilă & Layout" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.gutter" +msgstr "Spaţiere" + +msgid "workspace.library.store" +msgstr "Stocaţi colecţiile" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.disable-snap-grid" +msgstr "Dezactivați snap-ul la grilă" + +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs +msgid "title.default" +msgstr "Penpot - Libertate în Design pentru Echipe" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +msgid "settings.multiple" +msgstr "Multiple" + +#: src/app/main/ui/settings/delete_account.cljs +msgid "notifications.profile-deletion-not-allowed" +msgstr "Nu poţi şterge profilul. Reatribuie echipele înainte de a continua." + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-and-reassign.promote-and-leave" +msgstr "Promovează şi părăseşte echipa" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-and-reassign.hint2" +msgstr "Selectează un membru pentru a-l promova, înainte de a părăsi echipa" + +msgid "modals.leave-and-reassign.forbiden" +msgstr "" +"Nu puteţi părăsi echipa dacă nu există un alt membru care să devină " +"administrator. Aţi putea şterge echipa." + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.num-of-projects" +msgid_plural "labels.num-of-projects" +msgstr[0] "1 proiecte" +msgstr[1] "%s proiecte" +msgstr[2] "%s proiecte" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.num-of-files" +msgid_plural "labels.num-of-files" +msgstr[0] "1 fişier" +msgstr[1] "%s fişiere" +msgstr[2] "%s fişiere" + +msgid "handoff.attributes.typography.text-transform.titlecase" +msgstr "Title Case" + +msgid "handoff.attributes.typography.text-decoration.strikethrough" +msgstr "Strikethrough" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.remove-shared" +msgstr "Elimină ca şi Colecţie Distribuită" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.promote-to-owner" +msgstr "Promovează la administrator" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "dashboard.pin-unpin" +msgstr "Pin/Unpin" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.default-team-name" +msgstr "Contul Penpot" + +msgid "workspace.viewport.click-to-close-path" +msgstr "Click pentru a închide calea" + +#: src/app/main/data/workspace/libraries.cljs +msgid "workspace.updates.update" +msgstr "Actualizează" + +#: src/app/main/data/workspace/libraries.cljs +msgid "workspace.updates.there-are-updates" +msgstr "Există actualizări în colecţiile distribuite" + +#: src/app/main/data/workspace/libraries.cljs +msgid "workspace.updates.dismiss" +msgstr "Renunţă" + +#: src/app/main/ui/workspace/sidebar/history.cljs +msgid "workspace.undo.title" +msgstr "Istoric" + +#: src/app/main/ui/workspace/sidebar/history.cljs +msgid "workspace.undo.entry.unknown" +msgstr "Operaţiune terminată %s" + +msgid "workspace.undo.entry.single.typography" +msgstr "obiect tipografic" + +msgid "workspace.undo.entry.single.text" +msgstr "text" + +msgid "workspace.undo.entry.single.shape" +msgstr "formă" + +msgid "workspace.undo.entry.single.rect" +msgstr "dreptunghi" + +msgid "workspace.undo.entry.single.path" +msgstr "cale" + +msgid "workspace.undo.entry.single.page" +msgstr "pagină" + +msgid "workspace.undo.entry.single.multiple" +msgstr "obiect" + +msgid "workspace.undo.entry.single.media" +msgstr "obiect grafic" + +msgid "workspace.undo.entry.single.image" +msgstr "imagine" + +msgid "workspace.undo.entry.single.group" +msgstr "grup" + +msgid "workspace.undo.entry.single.frame" +msgstr "planşă de lucru" + +msgid "workspace.undo.entry.single.curve" +msgstr "curbă" + +msgid "workspace.undo.entry.single.component" +msgstr "componentă" + +msgid "workspace.undo.entry.single.circle" +msgstr "cerc" + +#: src/app/main/ui/workspace/sidebar/history.cljs +msgid "workspace.undo.entry.new" +msgstr "Nou %s" + +msgid "workspace.undo.entry.multiple.typography" +msgstr "obiecte tipografice" + +msgid "workspace.undo.entry.multiple.text" +msgstr "text" + +msgid "workspace.undo.entry.multiple.shape" +msgstr "forme" + +msgid "workspace.undo.entry.multiple.rect" +msgstr "dreptunghiuri" + +msgid "workspace.undo.entry.multiple.path" +msgstr "căi" + +msgid "workspace.undo.entry.multiple.page" +msgstr "pagini" + +msgid "workspace.undo.entry.multiple.multiple" +msgstr "obiecte" + +msgid "workspace.undo.entry.multiple.media" +msgstr "obiecte grafice" + +msgid "workspace.undo.entry.multiple.group" +msgstr "grupuri" + +msgid "workspace.undo.entry.multiple.frame" +msgstr "planşă de lucru" + +msgid "workspace.undo.entry.multiple.curve" +msgstr "curbe" + +msgid "workspace.undo.entry.multiple.component" +msgstr "componente" + +msgid "workspace.undo.entry.multiple.circle" +msgstr "cercuri" + +#: src/app/main/ui/workspace/sidebar/history.cljs +msgid "workspace.undo.entry.move" +msgstr "Obiecte mutate" + +#: src/app/main/ui/workspace/sidebar/history.cljs +msgid "workspace.undo.entry.modify" +msgstr "Modificat %s" + +#: src/app/main/ui/workspace/sidebar/history.cljs +msgid "workspace.undo.entry.delete" +msgstr "Şters %s" + +#: src/app/main/ui/workspace/sidebar/history.cljs +msgid "workspace.undo.empty" +msgstr "Nu sunt modificări în istoric" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.text" +msgstr "Text (%s)" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.rect" +msgstr "Dreptunghi (%s)" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.path" +msgstr "Cale (%s)" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.image" +msgstr "Imagine (%s)" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.frame" +msgstr "Planşă de lucru (%s)" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.comments" +msgstr "Comentarii (%s)" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.color-palette" +msgstr "Paletă de culori (%s)" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.assets" +msgstr "Obiecte (%s)" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.sitemap" +msgstr "Harta site-ului" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs +msgid "workspace.sidebar.sitemap" +msgstr "Pagini" + +#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/handoff/attributes/svg.cljs +msgid "workspace.sidebar.options.svg-attrs.title" +msgstr "Atribute SVG importate" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.sidebar.layers" +msgstr "Layere (%s)" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.sidebar.history" +msgstr "Istoric (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.update-main" +msgstr "Actualizaţi principala componentă" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.unlock" +msgstr "Deblochează" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.ungroup" +msgstr "Degrupează" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.show-main" +msgstr "Afişează componenta principală" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.show" +msgstr "Afişează" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.reset-overrides" +msgstr "Resetează suprascrierile" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.lock" +msgstr "Blochează" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.group" +msgstr "Grupează" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.hide" +msgstr "Ascunde" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.go-main" +msgstr "Mergi la componenta principală" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.flip-vertical" +msgstr "Întoarce pe verticală" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.flip-horizontal" +msgstr "Întoarce pe orizontală" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.edit" +msgstr "Editează" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.duplicate" +msgstr "Duplică" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.detach-instance" +msgstr "Detaşează instanţă" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.delete" +msgstr "Şterge" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.cut" +msgstr "Taie" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.create-component" +msgstr "Creează componentă" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.copy" +msgstr "Copiază" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.back" +msgstr "Trimite înapoi" + +msgid "workspace.path.actions.separate-nodes" +msgstr "Separă noduri (%s)" + +msgid "workspace.path.actions.move-nodes" +msgstr "Mută noduri (%s)" + +msgid "workspace.path.actions.merge-nodes" +msgstr "Uneşte noduri (%s)" + +msgid "workspace.path.actions.make-curve" +msgstr "În curbă (%s)" + +msgid "workspace.path.actions.make-corner" +msgstr "În colţ (%s)" + +msgid "workspace.path.actions.join-nodes" +msgstr "Adaugă noduri (%s)" + +msgid "workspace.path.actions.draw-nodes" +msgstr "Desenează noduri (%s)" + +msgid "workspace.path.actions.delete-node" +msgstr "Şterge nod (%s)" + +msgid "workspace.path.actions.add-node" +msgstr "Adaugă nod (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.use-play-button" +msgstr "Foloseşte butonul play din header pentru a porni vizualizarea prototip." + +msgid "workspace.options.text-options.vertical-align" +msgstr "Aliniere verticală" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.options.text-options.uppercase" +msgstr "Majuscule" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.underline" +msgstr "Subliniază" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.options.text-options.titlecase" +msgstr "Încadrare Titlu" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.title-selection" +msgstr "Selecţie text" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.title-group" +msgstr "Grupează text" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.title" +msgstr "Text" + +msgid "workspace.options.text-options.text-case" +msgstr "Case" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.strikethrough" +msgstr "Strikethrough" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.options.text-options.preset" +msgstr "Presetat" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.options.text-options.none" +msgstr "Nici unul" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.options.text-options.lowercase" +msgstr "Minuscule" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.options.text-options.line-height" +msgstr "Înălţime linii" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.options.text-options.letter-spacing" +msgstr "Spaţiere Litere" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.grow-fixed" +msgstr "Fix" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.grow-auto-width" +msgstr "Lăţime auto" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.grow-auto-height" +msgstr "Înălţime auto" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.options.text-options.google" +msgstr "Google" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.direction-rtl" +msgstr "RTL" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.direction-ltr" +msgstr "LTR" + +msgid "workspace.options.text-options.decoration" +msgstr "Decorare text" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.align-top" +msgstr "Aliniază sus" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.align-right" +msgstr "Aliniază la dreapta" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.align-middle" +msgstr "Aliniază la mijloc" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.align-left" +msgstr "Aliniază la stânga" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.align-justify" +msgstr "Justify" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.align-center" +msgstr "Aliniază centru" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.align-bottom" +msgstr "Aliniază jos" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.stroke.solid" +msgstr "Solid" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.stroke.outer" +msgstr "Exterior" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.stroke.mixed" +msgstr "Mixed" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.stroke.inner" +msgstr "Interior" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.stroke.dotted" +msgstr "Dotted" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.stroke.dashed" +msgstr "Dashed" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.stroke.center" +msgstr "Centru" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.stroke" +msgstr "Stroke" + +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +msgid "workspace.options.size" +msgstr "Mărime" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +msgid "workspace.options.shadow-options.title" +msgstr "Umbră" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +msgid "workspace.options.shadow-options.spread" +msgstr "Accentuare" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +msgid "workspace.options.shadow-options.offsety" +msgstr "Y" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +msgid "workspace.options.shadow-options.offsetx" +msgstr "X" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-title" +msgstr "Mă bucur să te văd din nou!" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +msgid "workspace.options.shadow-options.blur" +msgstr "Blur" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.select-artboard" +msgstr "Selectează planşa" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +msgid "workspace.options.rotation" +msgstr "Rotaţie" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +msgid "workspace.options.radius.single-corners" +msgstr "Colţuri unice" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +msgid "workspace.options.radius.all-corners" +msgstr "Toate colţurile" + +msgid "workspace.options.radius" +msgstr "Rază" + +#: src/app/main/ui/workspace/sidebar/options.cljs +msgid "workspace.options.prototype" +msgstr "Prototip" + +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +msgid "workspace.options.position" +msgstr "Poziţie" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.none" +msgstr "Nici unul" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.navigate-to" +msgstr "Navighează la" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.title.multiple" +msgstr "Layere selectate" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.title.group" +msgstr "Grupează layere" + +#: src/app/main/ui/handoff/attributes/layout.cljs +msgid "handoff.attributes.layout.height" +msgstr "Înălțime" + +#: src/app/main/ui/handoff/attributes/layout.cljs +msgid "handoff.attributes.layout" +msgstr "Layout" + +#: src/app/main/ui/handoff/attributes/image.cljs +msgid "handoff.attributes.image.width" +msgstr "Lățime" + +#: src/app/main/ui/handoff/attributes/image.cljs +msgid "handoff.attributes.image.height" +msgstr "Înălțime" + +#: src/app/main/ui/handoff/attributes/image.cljs +msgid "handoff.attributes.image.download" +msgstr "Descarcă imaginea sursă" + +#: src/app/main/ui/handoff/attributes/fill.cljs +msgid "handoff.attributes.fill" +msgstr "Fill" + +#: src/app/main/ui/handoff/attributes/common.cljs +msgid "handoff.attributes.color.rgba" +msgstr "RGBA" + +#: src/app/main/ui/handoff/attributes/common.cljs +msgid "handoff.attributes.color.hsla" +msgstr "HSLA" + +#: src/app/main/ui/handoff/attributes/common.cljs +msgid "handoff.attributes.color.hex" +msgstr "HEX" + +#: src/app/main/ui/handoff/attributes/blur.cljs +msgid "handoff.attributes.blur.value" +msgstr "Valoare" + +#: src/app/main/ui/handoff/attributes/blur.cljs +msgid "handoff.attributes.blur" +msgstr "Blur" + +#: src/app/main/ui/settings/password.cljs +msgid "generic.error" +msgstr "Am întâmpinat o eroare" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.title" +msgstr "Adresă de Email" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.subtitle" +msgstr "" +"Descrie motivul pentru care ne scrii, specificând eventuale probleme, idei " +"sau nelămuriri. Un membru al echipei noastre îți va răspunde în scurt timp." + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.subject" +msgstr "Subiect" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.discussions-title" +msgstr "Discuțiile echipei" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.discussions-subtitle2" +msgstr "" +"Poți pune întrebări, iei parte la discuții deschise și poți contribui la " +"dezvoltarea proiectului." + +msgid "modals.delete-font.message" +msgstr "" +"Ești sigur că dorești să ștergi acest font? O dată șters acesta nu se va mai " +"încărca în proiectele tale." + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.discussions-subtitle1" +msgstr "Alătură-te forumului de comunicare al echipei Penpot." + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.discussions-go-to" +msgstr "Du-te la discuții" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.description" +msgstr "Descriere" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.chat-subtitle" +msgstr "Te simți sociabil? Hai să vorbim pe Gitter" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.chat-start" +msgstr "Alătură-te chatului" + +#: src/app/main/ui/settings/password.cljs +msgid "errors.wrong-old-password" +msgstr "Parola veche este incorectă" + +#: src/app/main/ui/auth/login.cljs +msgid "errors.wrong-credentials" +msgstr "Numele de utilizator sau parola par a fi greșite." + +#: src/app/main/ui/auth/verify_token.cljs +msgid "errors.unexpected-token" +msgstr "Cod necunoscut" + +#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs +msgid "errors.unexpected-error" +msgstr "A apărut o eroare neașteptată." + +#: src/app/main/ui/auth/verify_token.cljs +msgid "errors.token-expired" +msgstr "Codul este expirat" + +msgid "errors.terms-privacy-agreement-invalid" +msgstr "" +"Trebuie să acceptați termenii serviciului și politica de confidențialitate." + +#: src/app/main/ui/auth/register.cljs +msgid "errors.registration-disabled" +msgstr "Înregistrarea este dezactivată în prezent." + +#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs +msgid "errors.profile-is-muted" +msgstr "" +"Profilul tău conține adrese de email dezactivate (rapoarte spam sau " +"inactive)." + +#: src/app/main/ui/settings/password.cljs +msgid "errors.password-too-short" +msgstr "Parola trebuie să conțină cel puțin 8 caractere" + +#: src/app/main/ui/settings/password.cljs +msgid "errors.password-invalid-confirmation" +msgstr "Parola de confirmare trebuie să se potrivească" + +msgid "errors.network" +msgstr "Nu s-a reușit conectarea la server." + +#: src/app/main/ui/dashboard/team.cljs +msgid "errors.member-is-muted" +msgstr "" +"Profilul pe care încercați să îl invitați este dezactivat (din cauza spam " +"sau inactivitate)." + +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +msgid "errors.media-type-not-allowed" +msgstr "Se pare că aceasta nu este o imagine validă." + +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +msgid "errors.media-type-mismatch" +msgstr "Se pare că conținutul imaginii nu se potrivește cu extensia de fișier." + +#: src/app/main/data/workspace/persistence.cljs +msgid "errors.media-too-large" +msgstr "Imaginea este prea mare pentru a fi inserată (trebuie să fie sub 5mb)." + +msgid "errors.media-format-unsupported" +msgstr "Formatul imaginii nu este acceptat (poate fi svg, jpg sau png)." + +#: src/app/main/ui/auth/login.cljs +msgid "errors.ldap-disabled" +msgstr "Autentificarea cu LDAP este dezactivată." + +#: src/app/main/ui/components/color_input.cljs +msgid "errors.invalid-color" +msgstr "Culoare invalidă" + +#: src/app/main/ui/auth/login.cljs +msgid "errors.google-auth-not-enabled" +msgstr "Autentificarea cu Google nu este permisă" + +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +msgid "errors.generic" +msgstr "S-a întâmplat ceva în neregulă." + +#: src/app/main/ui/settings/change_email.cljs +msgid "errors.email-invalid-confirmation" +msgstr "E-mailul de confirmare trebuie să se potrivească" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs +msgid "errors.email-has-permanent-bounces" +msgstr "Adresa de email «%s» are multe rapoarte permanente de respingere." + +#: src/app/main/ui/auth/verify_token.cljs +msgid "errors.email-already-validated" +msgstr "Adresa de email este deja validată." + +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs +msgid "errors.email-already-exists" +msgstr "Email deja trimis" + +#: src/app/main/data/workspace.cljs +msgid "errors.clipboard-not-implemented" +msgstr "Bowser-ul tău nu permite clipboard" + +#: src/app/main/ui/dashboard/grid.cljs +msgid "ds.updated-at" +msgstr "Actualizat: %s" + +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +msgid "ds.confirm-title" +msgstr "Ești sigur?" + +#: src/app/main/ui/confirm.cljs +msgid "ds.confirm-ok" +msgstr "Ok" + +#: src/app/main/ui/confirm.cljs +msgid "ds.confirm-cancel" +msgstr "Anulează" + +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.your-penpot" +msgstr "Contul Penpot" + +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.your-name" +msgstr "Numele tău" + +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.your-email" +msgstr "Email" + +#: src/app/main/ui/settings.cljs +msgid "dashboard.your-account-title" +msgstr "Contul tău" + +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs +msgid "dashboard.update-settings" +msgstr "Actualizare setări" + +#: src/app/main/ui/dashboard/search.cljs +msgid "dashboard.type-something" +msgstr "Scrie pentru a începe căutarea" + +#: src/app/main/ui/dashboard/search.cljs +msgid "dashboard.title-search" +msgstr "Rezultatele căutării" + +#: src/app/main/ui/settings/options.cljs +msgid "dashboard.theme-change" +msgstr "Interfață temă" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.team-projects" +msgstr "Proiectele echipei" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.team-members" +msgstr "Membrii echipei" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.team-info" +msgstr "Informațiile echipei" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.switch-team" +msgstr "Schimbă echipa" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "dashboard.success-move-project" +msgstr "Proiectul a fost mutat cu succes" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.success-delete-file" +msgstr "Fișierele s-au șters cu succes" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "dashboard.success-delete-project" +msgstr "Proiectul s-a șters cu succes" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.success-duplicate-file" +msgstr "Fișierele s-au duplicat cu succes" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "dashboard.success-duplicate-project" +msgstr "Proiectul s-a duplicat cu succes" + +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.success-move-file" +msgstr "Fișierul a fost mutat cu succes" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.success-move-files" +msgstr "Fișerele au fost mutate cu succes" + +#: src/app/main/ui/dashboard/grid.cljs +msgid "dashboard.show-all-files" +msgstr "Afișați toate fișierele" + +#: src/app/main/ui/settings/options.cljs +msgid "dashboard.select-ui-theme" +msgstr "Selectați o temă" + +#: src/app/main/ui/settings/options.cljs +msgid "dashboard.select-ui-language" +msgstr "Selectați limbajul interfeței" + +#: src/app/main/ui/dashboard/search.cljs +msgid "dashboard.searching-for" +msgstr "Căutare pentru “%s“…" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.search-placeholder" +msgstr "Căutare…" + +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.remove-account" +msgstr "Doriți să vă ștergeți contul?" + +#: src/app/main/ui/dashboard/projects.cljs +msgid "dashboard.projects-title" +msgstr "Proiecte" + +#: src/app/main/ui/settings/password.cljs +msgid "dashboard.password-change" +msgstr "Schimbă parola" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.open-in-new-tab" +msgstr "Deschide fișier într-o pagină nouă" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.num-of-members" +msgstr "%s membrii" + +#: src/app/main/ui/settings/password.cljs +msgid "dashboard.notifications.password-saved" +msgstr "Parolă actualizată cu success!" + +#: src/app/main/ui/auth/verify_token.cljs +msgid "dashboard.notifications.email-verified-successfully" +msgstr "Adresa ta de email este confirmată" + +#: src/app/main/ui/auth/verify_token.cljs +msgid "dashboard.notifications.email-changed-successfully" +msgstr "Adresa ta de email a fost actualizată cu success" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.no-projects-placeholder" +msgstr "Proiectele fixate vor apărea aici" + +#: src/app/main/ui/dashboard/search.cljs +msgid "dashboard.no-matches-for" +msgstr "Nu există rezultate pentru “%s“" + +#: src/app/main/data/dashboard.cljs +msgid "dashboard.new-project-prefix" +msgstr "Proiect nou" + +#: src/app/main/ui/dashboard/projects.cljs +msgid "dashboard.new-project" +msgstr "+ Proiect nou" + +#: src/app/main/data/dashboard.cljs +msgid "dashboard.new-file-prefix" +msgstr "Fișer nou" + +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs +msgid "dashboard.new-file" +msgstr "+ Fișier nou" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.move-to-other-team" +msgstr "Mutați la altă echipă" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.move-to-multi" +msgstr "Mutați %s fișiere la" + +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.move-to" +msgstr "Mută la" + +#: src/app/main/ui/dashboard/grid.cljs +msgid "dashboard.loading-files" +msgstr "încărcarea fișierelor …" + +#: src/app/main/ui/dashboard/libraries.cljs +msgid "dashboard.libraries-title" +msgstr "Librării Partajate" + +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.leave-team" +msgstr "Părăsește echipa" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.invite-profile" +msgstr "Invită o echipă" + +#: src/app/main/ui/dashboard/grid.cljs +msgid "dashboard.empty-files" +msgstr "Încă nu aveți fișiere aici" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.duplicate-multi" +msgstr "Duplicați %s fișiere" + +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.duplicate" +msgstr "Duplicat" + +msgid "dashboard.draft-title" +msgstr "Draft" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.delete-team" +msgstr "Șterge echipa" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.create-new-team" +msgstr "+ Creează o nouă echipă" + +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +msgid "dashboard.copy-suffix" +msgstr "(copiază)" + +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.change-email" +msgstr "Schimbă adresa de e-mail" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.add-shared" +msgstr "Adăugați ca bibliotecă partajată" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.verification-email-sent" +msgstr "Am trimis un email de verificare la" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.terms-privacy-agreement" +msgstr "" +"Atunci când creați un cont nou, sunteți de acord cu termenii noștri de " +"servicii și politica de confidențialitate." + +#: src/app/main/ui/auth.cljs +msgid "auth.sidebar-tagline" +msgstr "Soluția open-source pentru proiectare design și prototipare." + +#: src/app/main/ui/auth/register.cljs +msgid "auth.register-title" +msgstr "Creează un cont" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.register-subtitle" +msgstr "Este gratuit, este Open Source" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.register-submit" +msgstr "Creează un cont" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.register" +msgstr "Nu aveți încă un cont?" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.recovery-submit" +msgstr "Schimbă parola" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-title" +msgstr "Ai uitat parola?" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-subtitle" +msgstr "Îți vom trimite un email cu instrucțiunile" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-submit" +msgstr "Recuperare Parolă" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.password-length-hint" +msgstr "Cel puțin 8 caractere" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.password" +msgstr "Parola" + +#: src/app/main/ui/auth/verify_token.cljs +msgid "auth.notifications.team-invitation-accepted" +msgstr "Te-ai alăturat echipei cu success" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.notifications.recovery-token-sent" +msgstr "Un link de recuperare a parolei s-a trimis pe e-mail." + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.notifications.profile-not-verified" +msgstr "" +"Profilul nu este verificat, vă rugăm să verificați profilul înainte de a " +"continua." + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.notifications.password-changed-succesfully" +msgstr "Parola a fost schimbată cu success" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.notifications.invalid-token-error" +msgstr "Codul de recuperare nu este valid." + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.new-password" +msgstr "Introduceți o parolă nouă" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-oidc-submit" +msgstr "Conectează-te cu OpenID (SSO)" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-ldap-submit" +msgstr "Conectează-te cu LDAP" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-google-submit" +msgstr "Conectează-te cu Google" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-gitlab-submit" +msgstr "Conectează-te cu Gitlab" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-github-submit" +msgstr "Conectează-te cu Github" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-subtitle" +msgstr "Introduceți detaliile dvs. mai jos" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-submit" +msgstr "Intră în cont" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.login-here" +msgstr "Conectează-te" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.go-back-to-login" +msgstr "Întoarce-te!" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.fullname" +msgstr "Numele complet" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.forgot-password" +msgstr "Ai uitat parola?" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.email" +msgstr "Adresă E-mail" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.demo-warning" +msgstr "" +"Acesta este un DEMO, NU UTILIZAȚI pentru lucrări reale, întrucât proiectele " +"vor fi șterse periodic." + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.create-demo-profile" +msgstr "Vrei doar să încerci?" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.create-demo-account" +msgstr "Creează un cont demo" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.confirm-password" +msgstr "Confirmați parola" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.check-your-email" +msgstr "" +"Verificați adresa de e-mail, faceți click pe link-ul de verificare și " +"începeți să utilizați Penpot." + +#: src/app/main/ui/auth/register.cljs +msgid "auth.already-have-account" +msgstr "Ai deja un cont?" + +#, markdown +msgid "dashboard.fonts.hero-text2" +msgstr "" +"Ar trebui să urcați doar fonturi la care aveți drept de folosință sau " +"fonturi personale. Află mai multe despre Dreptul de conținut la secțiunea [" +"Termenii și Condițiile Penpot](https://penpot.app/terms.html). De asemenea, " +"vă recomandăm să citiți și despre [licențierea fonturilor](2)." + +msgid "labels.upload-custom-fonts" +msgstr "Încarcă fonturi personalizate" + +msgid "labels.font-providers" +msgstr "Provideri de Fonturi" + +msgid "labels.search-font" +msgstr "Caută font" + +msgid "labels.custom-fonts" +msgstr "Fonturi personalizate" + +msgid "labels.font-variant" +msgstr "Stil" + +msgid "labels.font-family" +msgstr "Familie de Fonturi" + +msgid "labels.installed-fonts" +msgstr "Fonturi instalate" + +msgid "labels.fonts" +msgstr "Fonturi" + +msgid "modals.delete-font.title" +msgstr "Ștergere font" + +msgid "labels.uploading" +msgstr "Se încarcă..." + +msgid "labels.upload" +msgstr "Încărcare" + +#: src/app/main/ui/dashboard/fonts.cljs +msgid "title.dashboard.font-providers" +msgstr "Furnizori de Fonturi - %s - Penpot" + +#: src/app/main/ui/dashboard/fonts.cljs +msgid "title.dashboard.fonts" +msgstr "Fonturi - %s - Penpot" + +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +msgid "media.loading" +msgstr "Încarcă imaginea…" + +#: src/app/main/ui/comments.cljs +msgid "labels.write-new-comment" +msgstr "Scrie un comentariu" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.viewer" +msgstr "Vizitator" + +#: src/app/main/ui/dashboard/team_form.cljs +msgid "labels.update-team" +msgstr "Actualizare echipă" + +#: src/app/main/ui/settings/profile.cljs +msgid "labels.update" +msgstr "Actualizare" + +#: src/app/main/ui/static.cljs +msgid "labels.sign-out" +msgstr "Deconectare" + +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +msgid "labels.show-your-comments" +msgstr "Afișează doar comentariile mele" + +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +msgid "labels.show-all-comments" +msgstr "Afișează toate comentariile" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.shared-libraries" +msgstr "Colecții distribuite" + +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.settings" +msgstr "Setări" + +#: src/app/main/ui/static.cljs +msgid "labels.service-unavailable.main-message" +msgstr "Serviciul nu este disponibil" + +#: src/app/main/ui/static.cljs +msgid "labels.service-unavailable.desc-message" +msgstr "Momentan suntem în mentenanță." + +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.sending" +msgstr "Se trimite..." + +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.send" +msgstr "Trimitere" + +msgid "labels.save" +msgstr "Salvează" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.role" +msgstr "Rol" + +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +msgid "labels.retry" +msgstr "Încearcă din nou" + +#: src/app/main/ui/dashboard/team_form.cljs +msgid "labels.rename-team" +msgstr "Modifică numele echipei" + +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.rename" +msgstr "Redenumire" + +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.remove" +msgstr "Elimină" + +#: src/app/main/ui/settings/sidebar.cljs +msgid "labels.release-notes" +msgstr "Mențiuni" + +msgid "labels.recent" +msgstr "Recente" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.projects" +msgstr "Proiecte" + +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.profile" +msgstr "Profil" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.permissions" +msgstr "Permisiuni" + +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.password" +msgstr "Parola" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.owner" +msgstr "Autor" + +#: src/app/main/ui/workspace/comments.cljs +msgid "labels.only-yours" +msgstr "Personale" + +#: src/app/main/ui/settings/password.cljs +msgid "labels.old-password" +msgstr "Parola veche" + +#: src/app/main/ui/static.cljs +msgid "labels.not-found.main-message" +msgstr "Opa!" + +#: src/app/main/ui/static.cljs +msgid "labels.not-found.desc-message" +msgstr "Această pagină nu există sau nu ai permisiunea să o accesezi." + +#: src/app/main/ui/static.cljs +msgid "labels.not-found.auth-info" +msgstr "Ești conectat ca fiind" + +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs +msgid "labels.no-comments-available" +msgstr "Nu există notificări de comentarii în aștepare" + +#: src/app/main/ui/settings/password.cljs +msgid "labels.new-password" +msgstr "Parolă nouă" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.name" +msgstr "Nume" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.members" +msgstr "Membri" + +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.logout" +msgstr "Deconectare" + +#: src/app/main/ui/settings/options.cljs +msgid "labels.language" +msgstr "Limbă" + +#: src/app/main/ui/static.cljs +msgid "labels.internal-error.main-message" +msgstr "Eroare internă" + +#: src/app/main/ui/static.cljs +msgid "labels.internal-error.desc-message" +msgstr "" +"Am întâmpinat o eroare. Te rugăm, mai încearcă o dată. Dacă problema " +"persistă poți contacta echipa de suport." + +msgid "labels.images" +msgstr "Imagini" + +msgid "labels.icons" +msgstr "Iconițe" + +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +msgid "labels.hide-resolved-comments" +msgstr "Ascunde comentariile rezolvate" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.give-feedback" +msgstr "Lasă un feedback" + +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.feedback-sent" +msgstr "Feedback trimis" + +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.feedback-disabled" +msgstr "Feedback dezactivat" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.email" +msgstr "Adresă de Email" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.editor" +msgstr "Editor" + +#: src/app/main/ui/comments.cljs +msgid "labels.edit" +msgstr "Editează" + +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.drafts" +msgstr "Drafturi" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.delete-multi-files" +msgstr "Șterge %s fișiere" + +#: src/app/main/ui/comments.cljs +msgid "labels.delete-comment-thread" +msgstr "Șterge discuție" + +#: src/app/main/ui/comments.cljs +msgid "labels.delete-comment" +msgstr "Șterge comentariu" + +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.delete" +msgstr "Șterge" + +#: src/app/main/ui/settings/sidebar.cljs +msgid "labels.dashboard" +msgstr "Administrare" + +#: src/app/main/ui/dashboard/team_form.cljs +msgid "labels.create-team.placeholder" +msgstr "Introduceți noul nume al echipei" + +#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs +msgid "labels.create-team" +msgstr "Creează o echipă" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "labels.create" +msgstr "Creează" + +msgid "labels.content" +msgstr "Conținut" + +#: src/app/main/ui/settings/password.cljs +msgid "labels.confirm-password" +msgstr "Confirmă parola" + +#: src/app/main/ui/dashboard/comments.cljs +msgid "labels.comments" +msgstr "Comentarii" + +msgid "labels.centered" +msgstr "Centru" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.cancel" +msgstr "Anulează" + +#: src/app/main/ui/static.cljs +msgid "labels.bad-gateway.main-message" +msgstr "Eroare de Server" + +#: src/app/main/ui/static.cljs +msgid "labels.bad-gateway.desc-message" +msgstr "Momentan serverele noastre sunt în mentenanță. Revino în scurt timp." + +#: src/app/main/ui/workspace/comments.cljs +msgid "labels.all" +msgstr "Toate" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.admin" +msgstr "Administrator" + +msgid "labels.accept" +msgstr "Accept" + +msgid "history.alert-message" +msgstr "Utilizezi versiunea %s" + +#: src/app/main/ui/handoff/right_sidebar.cljs +msgid "handoff.tabs.info" +msgstr "Info" + +msgid "handoff.tabs.code.selected.text" +msgstr "Text" + +msgid "handoff.tabs.code.selected.svg-raw" +msgstr "SVG" + +msgid "handoff.tabs.code.selected.rect" +msgstr "Dreptunghi" + +msgid "handoff.tabs.code.selected.path" +msgstr "Traiectorie" + +#: src/app/main/ui/handoff/right_sidebar.cljs +msgid "handoff.tabs.code.selected.multiple" +msgstr "%s Selectate" + +msgid "handoff.tabs.code.selected.image" +msgstr "Imagine" + +msgid "handoff.tabs.code.selected.group" +msgstr "Grup" + +msgid "handoff.tabs.code.selected.frame" +msgstr "Planșă de lucru" + +msgid "handoff.tabs.code.selected.curve" +msgstr "Curbat" + +msgid "handoff.tabs.code.selected.circle" +msgstr "Cerc" + +#: src/app/main/ui/handoff/right_sidebar.cljs +msgid "handoff.tabs.code" +msgstr "Cod" + +msgid "handoff.attributes.typography.text-transform.uppercase" +msgstr "Majuscule" + +msgid "handoff.attributes.typography.text-transform.none" +msgstr "Niciunul" + +msgid "handoff.attributes.typography.text-transform.lowercase" +msgstr "Minuscule" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography.text-transform" +msgstr "Transformare Text" + +msgid "handoff.attributes.typography.text-decoration.underline" +msgstr "Subliniat" + +msgid "handoff.attributes.typography.text-decoration.none" +msgstr "Niciunul" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography.text-decoration" +msgstr "Decorare Text" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography.line-height" +msgstr "Înălțimea rândului" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography.letter-spacing" +msgstr "Spațiere" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography.font-style" +msgstr "Stil Font" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography.font-size" +msgstr "Dimensiune Font" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography.font-family" +msgstr "Familie de Fonturi" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography" +msgstr "Tipografie" + +#: src/app/main/ui/handoff/attributes/stroke.cljs +msgid "handoff.attributes.stroke.width" +msgstr "Lățime" + +msgid "handoff.attributes.stroke.style.solid" +msgstr "Solid" + +msgid "handoff.attributes.stroke.style.none" +msgstr "Niciunul" + +msgid "handoff.attributes.stroke.style.mixed" +msgstr "Mixat" + +msgid "handoff.attributes.stroke.style.dotted" +msgstr "Punctat" From c83bfe0b16de164c8f178ea327612b6881786027 Mon Sep 17 00:00:00 2001 From: Amine Gdoura Date: Sun, 16 May 2021 20:46:31 +0000 Subject: [PATCH 111/135] :globe_with_meridians: Add translations for: Arabic. Currently translated at 7.4% (49 of 661 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/ar/ --- frontend/translations/ar.po | 235 +++++++++++++++++++++++++++++++++++- 1 file changed, 234 insertions(+), 1 deletion(-) diff --git a/frontend/translations/ar.po b/frontend/translations/ar.po index 4f8f6e6de..c95978b42 100644 --- a/frontend/translations/ar.po +++ b/frontend/translations/ar.po @@ -1,2 +1,235 @@ msgid "" -msgstr "X-Generator: Weblate\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit" \ No newline at end of file +msgstr "" +"PO-Revision-Date: 2021-05-17 21:32+0000\n" +"Last-Translator: Amine Gdoura \n" +"Language-Team: Arabic \n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" +"X-Generator: Weblate 4.7-dev\n" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.verification-email-sent" +msgstr "لقد أرسلنا رسالة تحقق إلى بريدك الالكتروني" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.terms-privacy-agreement" +msgstr "" +"عند إنشاء حساب جديد ، فإنك توافق على شروط الخدمة وسياسة الخصوصية الخاصة بنا." + +#: src/app/main/ui/auth.cljs +msgid "auth.sidebar-tagline" +msgstr "الحل (مفتوح المصدر) للتصميم والنمذجة." + +#: src/app/main/ui/auth/register.cljs +msgid "auth.register-title" +msgstr "إنشاء حساب" + +#: src/app/main/ui/auth/register.cljs +#, fuzzy +msgid "auth.register-subtitle" +msgstr "إنه مجاني ، مفتوح المصدر" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.register-submit" +msgstr "إنشاء حساب" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.register" +msgstr "لا تملك حساب بعد؟" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.recovery-submit" +msgstr "تغيير كلمة المرور" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-title" +msgstr "نسيت كلمة المرور؟" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-subtitle" +msgstr "سنرسل لك رسالة بريد إلكتروني تحتوي على التعليمات" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-submit" +msgstr "إستعادة كلمة المرور" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.password-length-hint" +msgstr "8 أحرف على الأقل" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.password" +msgstr "كلمه السر" + +#: src/app/main/ui/auth/verify_token.cljs +msgid "auth.notifications.team-invitation-accepted" +msgstr "تم الانضمام إلى الفريق بنجاح" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.notifications.password-changed-succesfully" +msgstr "تم تغيير كلمة المرور بنجاح" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.notifications.invalid-token-error" +msgstr "رمز الاسترداد غير صالح." + +msgid "workspace.viewport.click-to-close-path" +msgstr "انقر لإغلاق المسار" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.new-password" +msgstr "اكتب كلمة مرور جديدة" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-oidc-submit" +msgstr "تسجيل الدخول باستخدام OpenID (SSO)" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-ldap-submit" +msgstr "تسجيل الدخول باستخدام LDAP" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-google-submit" +msgstr "تسجيل الدخول عبر جوجل" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-gitlab-submit" +msgstr "تسجيل الدخول عبر Gitlab" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-github-submit" +msgstr "تسجيل الدخول عبر Github" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-title" +msgstr "سعيد برؤيتك مجددا!" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-subtitle" +msgstr "أدخل التفاصيل أدناه" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-submit" +msgstr "تسجيل الدخول" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.login-here" +msgstr "تسجيل الدخول هنا" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.go-back-to-login" +msgstr "الرجوع للخلف!" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.fullname" +msgstr "الاسم بالكامل" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.create-demo-profile" +msgstr "ترغب في التجربة فحسب؟" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.create-demo-account" +msgstr "إنشاء حساب تجريبي" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.confirm-password" +msgstr "تأكيد كلمة المرور" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.check-your-email" +msgstr "" +"تحقق من بريدك الإلكتروني وانقر على الرابط للتحقق والبدء في استخدام Penpot." + +#: src/app/main/ui/auth/register.cljs +msgid "auth.already-have-account" +msgstr "هل لديك حساب؟" + +#, markdown +msgid "dashboard.fonts.hero-text2" +msgstr "" +"يجب عليك فقط تحميل الخطوط التي تمتلكها أو لديك ترخيص لاستخدامها في Penpot. " +"اكتشف المزيد في قسم حقوق المحتوى في [شروط خدمة Penpot] (https://penpot.app/" +"terms.html). قد ترغب أيضًا في القراءة عن [ترخيص الخطوط] (2)." + +#, fuzzy, markdown +msgid "dashboard.fonts.hero-text1" +msgstr "" +"ستتم إضافة أي خط ويب تقوم بتحميله هنا إلى قائمة عائلة الخطوط المتوفرة في " +"خصائص النص الخاصة بملفات هذا الفريق. سيتم تجميع الخطوط التي لها نفس اسم " +"عائلة الخطوط على أنها ** عائلة خط واحدة **. يمكنك تحميل الخطوط بالتنسيقات " +"التالية: ** TTF و OTF و WOFF ** (ستحتاج إلى تنسيق واحد فقط)." + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.members" +msgstr "الأعضاء" + +msgid "labels.images" +msgstr "الصور" + +msgid "labels.upload-custom-fonts" +msgstr "تحميل الخطوط المخصصة" + +#, fuzzy +msgid "labels.font-providers" +msgstr "موفرو الخطوط" + +msgid "labels.search-font" +msgstr "البحث عن الخط" + +msgid "labels.custom-fonts" +msgstr "خطوط مخصصة" + +#, fuzzy +msgid "labels.font-variant" +msgstr "نمط" + +#: src/app/main/ui/dashboard/fonts.cljs +#, fuzzy +msgid "title.dashboard.font-providers" +msgstr "موفرو الخطوط - %s - Penpot" + +#: src/app/main/ui/dashboard/fonts.cljs +msgid "title.dashboard.fonts" +msgstr "الخطوط -٪ s - Penpot" + +msgid "labels.font-family" +msgstr "عائلة الخط" + +msgid "labels.installed-fonts" +msgstr "الخطوط المتوفرة" + +msgid "labels.fonts" +msgstr "الخطوط" + +msgid "modals.delete-font.message" +msgstr "" +"هل أنت متأكد أنك تريد حذف هذا الخط؟ لن يتم تحميله إذا تم استخدامه في ملف." + +msgid "modals.delete-font.title" +msgstr "حذف الخط" + +msgid "labels.uploading" +msgstr "جارٍ التحميل ..." + +#, fuzzy +msgid "labels.upload" +msgstr "تحميل" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.forgot-password" +msgstr "هل نسيت كلمة السر؟" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.email" +msgstr "البريد الالكتروني" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.demo-warning" +msgstr "" +"هذه خدمة تجريبية ، لا تستخدمها للعمل الحقيقي ، سيتم مسح المشاريع بشكل دوري." From af29ca92cc820d7b35428c0990e9f89c5bfa66bb Mon Sep 17 00:00:00 2001 From: "Jan C. Borchardt" Date: Thu, 20 May 2021 14:08:14 +0000 Subject: [PATCH 112/135] :globe_with_meridians: Add translations for: English. Currently translated at 100.0% (661 of 661 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/en/ --- frontend/translations/en.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 9f786da1c..b2e8ecb0e 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"PO-Revision-Date: 2021-05-07 08:30+0000\n" +"PO-Revision-Date: 2021-05-20 14:12+0000\n" "Last-Translator: Jan C. Borchardt \n" "Language-Team: English \n" @@ -23,7 +23,7 @@ msgid "labels.upload" msgstr "Upload" msgid "labels.uploading" -msgstr "Uploading..." +msgstr "Uploading…" msgid "modals.delete-font.title" msgstr "Deleting font" @@ -1057,7 +1057,7 @@ msgstr "Send" #: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" -msgstr "Sending..." +msgstr "Sending…" #: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" From 1d6094e893eca0aaf3d4a661550cba2b1e16e124 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 20 May 2021 16:54:42 +0200 Subject: [PATCH 113/135] :sparkles: Update i18n module to provide more langs. --- frontend/gulpfile.js | 2 +- frontend/src/app/util/i18n.cljs | 2 ++ frontend/src/app/util/time.cljs | 6 ++++++ frontend/translations/{zh_cn.po => zh_CN.po} | 0 4 files changed, 9 insertions(+), 1 deletion(-) rename frontend/translations/{zh_cn.po => zh_CN.po} (100%) diff --git a/frontend/gulpfile.js b/frontend/gulpfile.js index dafb8002c..428bbf9a7 100644 --- a/frontend/gulpfile.js +++ b/frontend/gulpfile.js @@ -33,7 +33,7 @@ paths.dist = "./target/dist/"; // Templates function readLocales() { - const langs = ["ca", "de", "el", "en", "es", "fr", "tr", "ru", "zh_cn"]; + const langs = ["ca", "de", "el", "en", "es", "fr", "tr", "ru", "zh_CN", "pt_BR", "ro"]; const result = {}; for (let lang of langs) { diff --git a/frontend/src/app/util/i18n.cljs b/frontend/src/app/util/i18n.cljs index ebaf43b25..6bc479f80 100644 --- a/frontend/src/app/util/i18n.cljs +++ b/frontend/src/app/util/i18n.cljs @@ -25,6 +25,8 @@ {:label "Deutsch (community)" :value "de"} {:label "Русский (community)" :value "ru"} {:label "Türkçe (community)" :value "tr"} + {:label "Rumanian (communit)" :value "ro"} + {:label "Portuguese (Brazil, community)" :value "pt_br"} {:label "Ελληνική γλώσσα (community)" :value "el"} {:label "简体中文 (community)" :value "zh_cn"}]) diff --git a/frontend/src/app/util/time.cljs b/frontend/src/app/util/time.cljs index 67b75291c..317ff866e 100644 --- a/frontend/src/app/util/time.cljs +++ b/frontend/src/app/util/time.cljs @@ -12,6 +12,9 @@ ["date-fns/locale/el" :default dateFnsLocalesEl] ["date-fns/locale/fr" :default dateFnsLocalesFr] ["date-fns/locale/ca" :default dateFnsLocalesCa] + ["date-fns/locale/de" :default dateFnsLocalesDe] + ["date-fns/locale/ro" :default dateFnsLocalesRo] + ["date-fns/locale/pt-BR" :default dateFnsLocalesPtBr] ["date-fns/locale/en-US" :default dateFnsLocalesEnUs] ["date-fns/locale/zh-CN" :default dateFnsLocalesZhCn] ["date-fns/locale/es" :default dateFnsLocalesEs] @@ -205,6 +208,9 @@ :ca dateFnsLocalesCa :el dateFnsLocalesEl :ru dateFnsLocalesRu + :ro dateFnsLocalesRo + :de dateFnsLocalesDe + :pt_br dateFnsLocalesPtBr :zh_cn dateFnsLocalesZhCn}) (defn timeago diff --git a/frontend/translations/zh_cn.po b/frontend/translations/zh_CN.po similarity index 100% rename from frontend/translations/zh_cn.po rename to frontend/translations/zh_CN.po From 77ab0706be6780e2fe3f1160d1a74aa6f931a043 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 20 May 2021 16:55:57 +0200 Subject: [PATCH 114/135] :bug: Fix some issues on recent files loading. --- frontend/src/app/main/data/workspace.cljs | 2 +- .../app/main/ui/dashboard/project_menu.cljs | 42 ++++++++----------- .../src/app/main/ui/dashboard/projects.cljs | 22 ++++++---- 3 files changed, 32 insertions(+), 34 deletions(-) diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 9e034d6be..1d42177dc 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -1254,7 +1254,7 @@ (ptk/reify ::go-to-dashboard ptk/WatchEvent (watch [it state stream] - (let [team-id (or team-id (get-in state [:workspace-project :team-id]))] + (when-let [team-id (or team-id (:current-team-id state))] (rx/of ::dwp/force-persist (rt/nav :dashboard-projects {:team-id team-id}))))))) diff --git a/frontend/src/app/main/ui/dashboard/project_menu.cljs b/frontend/src/app/main/ui/dashboard/project_menu.cljs index 73cf15978..946478a09 100644 --- a/frontend/src/app/main/ui/dashboard/project_menu.cljs +++ b/frontend/src/app/main/ui/dashboard/project_menu.cljs @@ -9,6 +9,7 @@ [app.main.data.dashboard :as dd] [app.main.data.messages :as dm] [app.main.data.modal :as modal] + [app.main.refs :as refs] [app.main.repo :as rp] [app.main.store :as st] [app.main.ui.components.context-menu :refer [context-menu]] @@ -28,7 +29,8 @@ left (or left 0) current-team-id (mf/use-ctx ctx/current-team-id) - teams (mf/use-state nil) + teams (mf/deref refs/teams) + teams (-> teams (dissoc current-team-id) vals vec) on-duplicate-success (fn [new-project] @@ -71,27 +73,19 @@ :accept-label (tr "modals.delete-project-confirm.accept") :on-accept delete-fn}))] - (mf/use-effect - (fn [] - (->> (rp/query! :teams) - (rx/map (fn [teams] - (into [] (remove #(= (:id %) current-team-id)) teams))) - (rx/subs #(reset! teams %))))) - - (when @teams - [:& context-menu {:on-close on-menu-close - :show show? - :fixed? (or (not= top 0) (not= left 0)) - :min-width? true - :top top - :left left - :options [[(tr "labels.rename") on-edit] - [(tr "dashboard.duplicate") on-duplicate] - [(tr "dashboard.pin-unpin") toggle-pin] - (when (seq @teams) - [(tr "dashboard.move-to") nil - (for [team @teams] - [(:name team) (on-move (:id team))])]) - [:separator] - [(tr "labels.delete") on-delete]]}]))) + [:& context-menu {:on-close on-menu-close + :show show? + :fixed? (or (not= top 0) (not= left 0)) + :min-width? true + :top top + :left left + :options [[(tr "labels.rename") on-edit] + [(tr "dashboard.duplicate") on-duplicate] + [(tr "dashboard.pin-unpin") toggle-pin] + (when (seq teams) + [(tr "dashboard.move-to") nil + (for [team teams] + [(:name team) (on-move (:id team))])]) + [:separator] + [(tr "labels.delete") on-delete]]}])) diff --git a/frontend/src/app/main/ui/dashboard/projects.cljs b/frontend/src/app/main/ui/dashboard/projects.cljs index 41e5b895c..911f6afc4 100644 --- a/frontend/src/app/main/ui/dashboard/projects.cljs +++ b/frontend/src/app/main/ui/dashboard/projects.cljs @@ -115,12 +115,15 @@ (if (:is-default project) (tr "labels.drafts") (:name project))]) - [:& project-menu {:project project - :show? (:menu-open @local) - :left (:x (:menu-pos @local)) - :top (:y (:menu-pos @local)) - :on-edit on-edit-open - :on-menu-close on-menu-close}] + + (when (:menu-open @local) + [:& project-menu {:project project + :show? (:menu-open @local) + :left (:x (:menu-pos @local)) + :top (:y (:menu-pos @local)) + :on-edit on-edit-open + :on-menu-close on-menu-close}]) + [:span.info (str file-count " files")] (when (> file-count 0) (let [time (-> (:modified-at project) @@ -147,8 +150,7 @@ (let [projects (->> (vals projects) (sort-by :modified-at) (reverse)) - recent-map (mf/deref recent-files-ref) - files (vals recent-map)] + recent-map (mf/deref recent-files-ref)] (mf/use-effect (mf/deps team) @@ -167,7 +169,9 @@ [:& header] [:section.dashboard-container (for [{:keys [id] :as project} projects] - (let [files (some->> files (filterv #(= id (:project-id %))))] + (let [files (when recent-map + (->> (vals recent-map) + (filterv #(= id (:project-id %)))))] [:& project-item {:project project :files files :first? (= project (first projects)) From 03b74b582e24f726d2bb0ae19878faf1f7e7c948 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 20 May 2021 17:01:06 +0200 Subject: [PATCH 115/135] :paperclip: Update changelog file. --- CHANGES.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index b94d1b80c..b1791255a 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -23,6 +23,7 @@ - Transform shapes to path on double click - Translate automatic names of new files and projects. - Use shift instead of ctrl/cmd to keep aspect ratio [Taiga 1697](https://tree.taiga.io/project/penpot/issue/1697). +- New translations: Portuguese (Brazil) and Romanias. ### :bug: Bugs fixed @@ -43,6 +44,10 @@ configuration added scopes to the default set. Now it replaces it, so use with care, because penpot requires at least `name` and `email` props found on the user info object. +### :heart: Community contributions by (Thank you!) + +- Translations: Portuguese (Brazil) and Romanias. + ## 1.5.4-alpha From b50ffa087d7778a5c25292c8548e04a3b9f6b593 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 20 May 2021 17:03:09 +0200 Subject: [PATCH 116/135] :sparkles: Sort & validate translations files. --- frontend/translations/ar.po | 349 ++- frontend/translations/da.po | 861 +++--- frontend/translations/de.po | 44 +- frontend/translations/el.po | 2 +- frontend/translations/en.po | 128 +- frontend/translations/es.po | 144 +- frontend/translations/fr.po | 23 +- frontend/translations/id.po | 6 +- frontend/translations/nb_NO.po | 1486 +++++----- frontend/translations/pt_BR.po | 1701 ++++++----- frontend/translations/ro.po | 4805 ++++++++++++++++---------------- frontend/translations/ru.po | 2 +- frontend/translations/tr.po | 744 ++--- frontend/translations/zh_CN.po | 2 +- 14 files changed, 5145 insertions(+), 5152 deletions(-) diff --git a/frontend/translations/ar.po b/frontend/translations/ar.po index c95978b42..86bac1358 100644 --- a/frontend/translations/ar.po +++ b/frontend/translations/ar.po @@ -2,31 +2,138 @@ msgid "" msgstr "" "PO-Revision-Date: 2021-05-17 21:32+0000\n" "Last-Translator: Amine Gdoura \n" -"Language-Team: Arabic \n" +"Language-Team: Arabic " +"\n" "Language: ar\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" "X-Generator: Weblate 4.7-dev\n" #: src/app/main/ui/auth/register.cljs -msgid "auth.verification-email-sent" -msgstr "لقد أرسلنا رسالة تحقق إلى بريدك الالكتروني" +msgid "auth.already-have-account" +msgstr "هل لديك حساب؟" #: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement" -msgstr "" -"عند إنشاء حساب جديد ، فإنك توافق على شروط الخدمة وسياسة الخصوصية الخاصة بنا." +msgid "auth.check-your-email" +msgstr "تحقق من بريدك الإلكتروني وانقر على الرابط للتحقق والبدء في استخدام Penpot." -#: src/app/main/ui/auth.cljs -msgid "auth.sidebar-tagline" -msgstr "الحل (مفتوح المصدر) للتصميم والنمذجة." +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.confirm-password" +msgstr "تأكيد كلمة المرور" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.create-demo-account" +msgstr "إنشاء حساب تجريبي" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.create-demo-profile" +msgstr "ترغب في التجربة فحسب؟" #: src/app/main/ui/auth/register.cljs -msgid "auth.register-title" +msgid "auth.demo-warning" +msgstr "هذه خدمة تجريبية ، لا تستخدمها للعمل الحقيقي ، سيتم مسح المشاريع بشكل دوري." + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.email" +msgstr "البريد الالكتروني" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.forgot-password" +msgstr "هل نسيت كلمة السر؟" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.fullname" +msgstr "الاسم بالكامل" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.go-back-to-login" +msgstr "الرجوع للخلف!" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.login-here" +msgstr "تسجيل الدخول هنا" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-submit" +msgstr "تسجيل الدخول" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-subtitle" +msgstr "أدخل التفاصيل أدناه" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-title" +msgstr "سعيد برؤيتك مجددا!" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-github-submit" +msgstr "تسجيل الدخول عبر Github" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-gitlab-submit" +msgstr "تسجيل الدخول عبر Gitlab" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-google-submit" +msgstr "تسجيل الدخول عبر جوجل" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-ldap-submit" +msgstr "تسجيل الدخول باستخدام LDAP" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-oidc-submit" +msgstr "تسجيل الدخول باستخدام OpenID (SSO)" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.new-password" +msgstr "اكتب كلمة مرور جديدة" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.notifications.invalid-token-error" +msgstr "رمز الاسترداد غير صالح." + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.notifications.password-changed-succesfully" +msgstr "تم تغيير كلمة المرور بنجاح" + +#: src/app/main/ui/auth/verify_token.cljs +msgid "auth.notifications.team-invitation-accepted" +msgstr "تم الانضمام إلى الفريق بنجاح" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.password" +msgstr "كلمه السر" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.password-length-hint" +msgstr "8 أحرف على الأقل" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-submit" +msgstr "إستعادة كلمة المرور" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-subtitle" +msgstr "سنرسل لك رسالة بريد إلكتروني تحتوي على التعليمات" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-title" +msgstr "نسيت كلمة المرور؟" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.recovery-submit" +msgstr "تغيير كلمة المرور" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.register" +msgstr "لا تملك حساب بعد؟" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.register-submit" msgstr "إنشاء حساب" #: src/app/main/ui/auth/register.cljs @@ -34,128 +141,21 @@ msgstr "إنشاء حساب" msgid "auth.register-subtitle" msgstr "إنه مجاني ، مفتوح المصدر" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.register-submit" +#: src/app/main/ui/auth/register.cljs +msgid "auth.register-title" msgstr "إنشاء حساب" -#: src/app/main/ui/auth/login.cljs -msgid "auth.register" -msgstr "لا تملك حساب بعد؟" - -#: src/app/main/ui/auth/recovery.cljs -msgid "auth.recovery-submit" -msgstr "تغيير كلمة المرور" - -#: src/app/main/ui/auth/recovery_request.cljs -msgid "auth.recovery-request-title" -msgstr "نسيت كلمة المرور؟" - -#: src/app/main/ui/auth/recovery_request.cljs -msgid "auth.recovery-request-subtitle" -msgstr "سنرسل لك رسالة بريد إلكتروني تحتوي على التعليمات" - -#: src/app/main/ui/auth/recovery_request.cljs -msgid "auth.recovery-request-submit" -msgstr "إستعادة كلمة المرور" +#: src/app/main/ui/auth.cljs +msgid "auth.sidebar-tagline" +msgstr "الحل (مفتوح المصدر) للتصميم والنمذجة." #: src/app/main/ui/auth/register.cljs -msgid "auth.password-length-hint" -msgstr "8 أحرف على الأقل" - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.password" -msgstr "كلمه السر" - -#: src/app/main/ui/auth/verify_token.cljs -msgid "auth.notifications.team-invitation-accepted" -msgstr "تم الانضمام إلى الفريق بنجاح" - -#: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.password-changed-succesfully" -msgstr "تم تغيير كلمة المرور بنجاح" - -#: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" -msgstr "رمز الاسترداد غير صالح." - -msgid "workspace.viewport.click-to-close-path" -msgstr "انقر لإغلاق المسار" - -#: src/app/main/ui/auth/recovery.cljs -msgid "auth.new-password" -msgstr "اكتب كلمة مرور جديدة" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-with-oidc-submit" -msgstr "تسجيل الدخول باستخدام OpenID (SSO)" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-with-ldap-submit" -msgstr "تسجيل الدخول باستخدام LDAP" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-with-google-submit" -msgstr "تسجيل الدخول عبر جوجل" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-with-gitlab-submit" -msgstr "تسجيل الدخول عبر Gitlab" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-with-github-submit" -msgstr "تسجيل الدخول عبر Github" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-title" -msgstr "سعيد برؤيتك مجددا!" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-subtitle" -msgstr "أدخل التفاصيل أدناه" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-submit" -msgstr "تسجيل الدخول" +msgid "auth.terms-privacy-agreement" +msgstr "عند إنشاء حساب جديد ، فإنك توافق على شروط الخدمة وسياسة الخصوصية الخاصة بنا." #: src/app/main/ui/auth/register.cljs -msgid "auth.login-here" -msgstr "تسجيل الدخول هنا" - -#: src/app/main/ui/auth/recovery_request.cljs -msgid "auth.go-back-to-login" -msgstr "الرجوع للخلف!" - -#: src/app/main/ui/auth/register.cljs -msgid "auth.fullname" -msgstr "الاسم بالكامل" - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.create-demo-profile" -msgstr "ترغب في التجربة فحسب؟" - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.create-demo-account" -msgstr "إنشاء حساب تجريبي" - -#: src/app/main/ui/auth/recovery.cljs -msgid "auth.confirm-password" -msgstr "تأكيد كلمة المرور" - -#: src/app/main/ui/auth/register.cljs -msgid "auth.check-your-email" -msgstr "" -"تحقق من بريدك الإلكتروني وانقر على الرابط للتحقق والبدء في استخدام Penpot." - -#: src/app/main/ui/auth/register.cljs -msgid "auth.already-have-account" -msgstr "هل لديك حساب؟" - -#, markdown -msgid "dashboard.fonts.hero-text2" -msgstr "" -"يجب عليك فقط تحميل الخطوط التي تمتلكها أو لديك ترخيص لاستخدامها في Penpot. " -"اكتشف المزيد في قسم حقوق المحتوى في [شروط خدمة Penpot] (https://penpot.app/" -"terms.html). قد ترغب أيضًا في القراءة عن [ترخيص الخطوط] (2)." +msgid "auth.verification-email-sent" +msgstr "لقد أرسلنا رسالة تحقق إلى بريدك الالكتروني" #, fuzzy, markdown msgid "dashboard.fonts.hero-text1" @@ -165,30 +165,60 @@ msgstr "" "عائلة الخطوط على أنها ** عائلة خط واحدة **. يمكنك تحميل الخطوط بالتنسيقات " "التالية: ** TTF و OTF و WOFF ** (ستحتاج إلى تنسيق واحد فقط)." -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.members" -msgstr "الأعضاء" +#, markdown +msgid "dashboard.fonts.hero-text2" +msgstr "" +"يجب عليك فقط تحميل الخطوط التي تمتلكها أو لديك ترخيص لاستخدامها في Penpot. " +"اكتشف المزيد في قسم حقوق المحتوى في [شروط خدمة Penpot] " +"(https://penpot.app/terms.html). قد ترغب أيضًا في القراءة عن [ترخيص الخطوط] " +"(2)." -msgid "labels.images" -msgstr "الصور" +msgid "labels.custom-fonts" +msgstr "خطوط مخصصة" -msgid "labels.upload-custom-fonts" -msgstr "تحميل الخطوط المخصصة" +msgid "labels.font-family" +msgstr "عائلة الخط" #, fuzzy msgid "labels.font-providers" msgstr "موفرو الخطوط" -msgid "labels.search-font" -msgstr "البحث عن الخط" - -msgid "labels.custom-fonts" -msgstr "خطوط مخصصة" - #, fuzzy msgid "labels.font-variant" msgstr "نمط" +msgid "labels.fonts" +msgstr "الخطوط" + +msgid "labels.images" +msgstr "الصور" + +msgid "labels.installed-fonts" +msgstr "الخطوط المتوفرة" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.members" +msgstr "الأعضاء" + +msgid "labels.search-font" +msgstr "البحث عن الخط" + +#, fuzzy +msgid "labels.upload" +msgstr "تحميل" + +msgid "labels.upload-custom-fonts" +msgstr "تحميل الخطوط المخصصة" + +msgid "labels.uploading" +msgstr "جارٍ التحميل ..." + +msgid "modals.delete-font.message" +msgstr "هل أنت متأكد أنك تريد حذف هذا الخط؟ لن يتم تحميله إذا تم استخدامه في ملف." + +msgid "modals.delete-font.title" +msgstr "حذف الخط" + #: src/app/main/ui/dashboard/fonts.cljs #, fuzzy msgid "title.dashboard.font-providers" @@ -198,38 +228,5 @@ msgstr "موفرو الخطوط - %s - Penpot" msgid "title.dashboard.fonts" msgstr "الخطوط -٪ s - Penpot" -msgid "labels.font-family" -msgstr "عائلة الخط" - -msgid "labels.installed-fonts" -msgstr "الخطوط المتوفرة" - -msgid "labels.fonts" -msgstr "الخطوط" - -msgid "modals.delete-font.message" -msgstr "" -"هل أنت متأكد أنك تريد حذف هذا الخط؟ لن يتم تحميله إذا تم استخدامه في ملف." - -msgid "modals.delete-font.title" -msgstr "حذف الخط" - -msgid "labels.uploading" -msgstr "جارٍ التحميل ..." - -#, fuzzy -msgid "labels.upload" -msgstr "تحميل" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.forgot-password" -msgstr "هل نسيت كلمة السر؟" - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "البريد الالكتروني" - -#: src/app/main/ui/auth/register.cljs -msgid "auth.demo-warning" -msgstr "" -"هذه خدمة تجريبية ، لا تستخدمها للعمل الحقيقي ، سيتم مسح المشاريع بشكل دوري." +msgid "workspace.viewport.click-to-close-path" +msgstr "انقر لإغلاق المسار" \ No newline at end of file diff --git a/frontend/translations/da.po b/frontend/translations/da.po index f0f49127e..2847eee0e 100644 --- a/frontend/translations/da.po +++ b/frontend/translations/da.po @@ -2,163 +2,18 @@ msgid "" msgstr "" "PO-Revision-Date: 2021-05-17 21:32+0000\n" "Last-Translator: Simon Bechmann \n" -"Language-Team: Danish \n" +"Language-Team: Danish " +"\n" "Language: da\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.7-dev\n" #: src/app/main/ui/auth/register.cljs -msgid "auth.verification-email-sent" -msgstr "Vi har sendt en bekræftelsesmail til" - -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement" -msgstr "" -"Når du opretter en ny konto, accepterer du vores servicevilkår og " -"fortrolighedspolitik." - -#: src/app/main/ui/auth.cljs -msgid "auth.sidebar-tagline" -msgstr "Open-source løsningen for design og prototyping." - -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-title" -msgstr "Opret en konto" - -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "Det er gratis, det er Open Source" - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.register-submit" -msgstr "Opret en konto" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.register" -msgstr "Ingen konto?" - -#: src/app/main/ui/auth/recovery.cljs -msgid "auth.recovery-submit" -msgstr "Skift din adgangskode" - -#: src/app/main/ui/auth/recovery_request.cljs -msgid "auth.recovery-request-title" -msgstr "Glemt adgangskode?" - -#: src/app/main/ui/auth/recovery_request.cljs -msgid "auth.recovery-request-subtitle" -msgstr "Vi sender dig en mail med instruktioner" - -#: src/app/main/ui/auth/recovery_request.cljs -msgid "auth.notifications.recovery-token-sent" -msgstr "Gendannelseslink for adgangskoden er sendt til din indbakke." - -#: src/app/main/ui/auth/recovery_request.cljs -msgid "auth.recovery-request-submit" -msgstr "Gendan Adgangskode" - -#: src/app/main/ui/auth/register.cljs -msgid "auth.password-length-hint" -msgstr "Mindst 8 karakterer" - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.password" -msgstr "Adgangskode" - -#: src/app/main/ui/auth/verify_token.cljs -msgid "auth.notifications.team-invitation-accepted" -msgstr "Tilsluttet teamet med succes" - -#: src/app/main/ui/auth/recovery_request.cljs -msgid "auth.notifications.profile-not-verified" -msgstr "" -"Profilen er ikke bekræftet, venligt verificer profilen før du går videre." - -#: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.password-changed-succesfully" -msgstr "Adgangskoden er blevet ændret" - -#: src/app/main/ui/auth/recovery.cljs -msgid "auth.confirm-password" -msgstr "Bekræft adgangskode" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.forgot-password" -msgstr "Glemt adgangskode?" - -#: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" -msgstr "Genopretningspoletten er ugyldig." - -#: src/app/main/ui/auth/recovery.cljs -msgid "auth.new-password" -msgstr "Indtast et nyt kodeord" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-with-oidc-submit" -msgstr "Log på med OpenID (SSO)" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-with-google-submit" -msgstr "Log på med Google" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-with-gitlab-submit" -msgstr "Log på med Gitlab" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-with-github-submit" -msgstr "Log på med Github" - -#: src/app/main/ui/auth/register.cljs -msgid "auth.login-here" -msgstr "Log på her" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-with-ldap-submit" -msgstr "Log på med LDAP" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-title" -msgstr "Fedt at se dig igen!" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-subtitle" -msgstr "Indtast dine oplysninger nedenunder" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-submit" -msgstr "Log på" - -#: src/app/main/ui/auth/recovery_request.cljs -msgid "auth.go-back-to-login" -msgstr "Gå tilbage!" - -#: src/app/main/ui/auth/register.cljs -msgid "auth.fullname" -msgstr "Fulde Navn" - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "Email" - -#: src/app/main/ui/auth/register.cljs -msgid "auth.demo-warning" -msgstr "" -"Det her er en DEMO service, BRUG IKKE for rigtigt arbejde, projekterne vil " -"blive slettet periodevis." - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.create-demo-profile" -msgstr "Vil du bare prøve det?" - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.create-demo-account" -msgstr "Lav demokonto" +msgid "auth.already-have-account" +msgstr "Har du allerede en konto?" #: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" @@ -166,17 +21,192 @@ msgstr "" "Tjek din mail og klik på linket for at bekræfte og starte med at bruge " "Penpot." -#: src/app/main/ui/auth/register.cljs -msgid "auth.already-have-account" -msgstr "Har du allerede en konto?" +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.confirm-password" +msgstr "Bekræft adgangskode" -#, markdown -msgid "dashboard.fonts.hero-text2" +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.create-demo-account" +msgstr "Lav demokonto" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.create-demo-profile" +msgstr "Vil du bare prøve det?" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.demo-warning" msgstr "" -"Du bør kun uploade skrifttyper som du ejer eller har licens til at bruge i " -"Penpot. Find ud af mere i sektionen om indholdsrettigheder i [Penpot's Terms " -"of Service] (https://penpot.app/terms.html). Du kan også læse om [font " -"licensing](2)." +"Det her er en DEMO service, BRUG IKKE for rigtigt arbejde, projekterne vil " +"blive slettet periodevis." + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.email" +msgstr "Email" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.forgot-password" +msgstr "Glemt adgangskode?" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.fullname" +msgstr "Fulde Navn" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.go-back-to-login" +msgstr "Gå tilbage!" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.login-here" +msgstr "Log på her" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-submit" +msgstr "Log på" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-subtitle" +msgstr "Indtast dine oplysninger nedenunder" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-title" +msgstr "Fedt at se dig igen!" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-github-submit" +msgstr "Log på med Github" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-gitlab-submit" +msgstr "Log på med Gitlab" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-google-submit" +msgstr "Log på med Google" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-ldap-submit" +msgstr "Log på med LDAP" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-oidc-submit" +msgstr "Log på med OpenID (SSO)" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.new-password" +msgstr "Indtast et nyt kodeord" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.notifications.invalid-token-error" +msgstr "Genopretningspoletten er ugyldig." + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.notifications.password-changed-succesfully" +msgstr "Adgangskoden er blevet ændret" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.notifications.profile-not-verified" +msgstr "Profilen er ikke bekræftet, venligt verificer profilen før du går videre." + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.notifications.recovery-token-sent" +msgstr "Gendannelseslink for adgangskoden er sendt til din indbakke." + +#: src/app/main/ui/auth/verify_token.cljs +msgid "auth.notifications.team-invitation-accepted" +msgstr "Tilsluttet teamet med succes" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.password" +msgstr "Adgangskode" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.password-length-hint" +msgstr "Mindst 8 karakterer" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-submit" +msgstr "Gendan Adgangskode" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-subtitle" +msgstr "Vi sender dig en mail med instruktioner" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-title" +msgstr "Glemt adgangskode?" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.recovery-submit" +msgstr "Skift din adgangskode" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.register" +msgstr "Ingen konto?" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.register-submit" +msgstr "Opret en konto" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.register-subtitle" +msgstr "Det er gratis, det er Open Source" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.register-title" +msgstr "Opret en konto" + +#: src/app/main/ui/auth.cljs +msgid "auth.sidebar-tagline" +msgstr "Open-source løsningen for design og prototyping." + +#: src/app/main/ui/auth/register.cljs +msgid "auth.terms-privacy-agreement" +msgstr "" +"Når du opretter en ny konto, accepterer du vores servicevilkår og " +"fortrolighedspolitik." + +#: src/app/main/ui/auth/register.cljs +msgid "auth.verification-email-sent" +msgstr "Vi har sendt en bekræftelsesmail til" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.add-shared" +msgstr "Tilføj som Delt Bibliotek" + +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.change-email" +msgstr "Skift email" + +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +msgid "dashboard.copy-suffix" +msgstr "(kopi)" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.create-new-team" +msgstr "+ Opret nyt team" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.default-team-name" +msgstr "Dit Penpot" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.delete-team" +msgstr "Slet team" + +msgid "dashboard.draft-title" +msgstr "Udkast" + +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.duplicate" +msgstr "Dublikér" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.duplicate-multi" +msgstr "Dublikér %s filer" + +#: src/app/main/ui/dashboard/grid.cljs +msgid "dashboard.empty-files" +msgstr "Du har stadig ingen filer her" #, markdown msgid "dashboard.fonts.hero-text1" @@ -184,32 +214,258 @@ msgstr "" "Alle web skrifttyper, som du uploader her, vil blive tilføjet til listen af " "skrifttypefamilier tilgængelig ved tekstindstillingerne i filerne for dette " "team. Skrifttyper med det samme skrifttypefamilienavn vil blive grupperet " -"som en **enkelt skrifttypefamilie**. Du kan uploade skrifttyper med følgende " -"formater: **TTF, OTF og WOFF** (kun én er nødvendig)." +"som en **enkelt skrifttypefamilie**. Du kan uploade skrifttyper med " +"følgende formater: **TTF, OTF og WOFF** (kun én er nødvendig)." -msgid "labels.upload-custom-fonts" -msgstr "Upload brugerdefinerede skrifttyper" +#, markdown +msgid "dashboard.fonts.hero-text2" +msgstr "" +"Du bør kun uploade skrifttyper som du ejer eller har licens til at bruge i " +"Penpot. Find ud af mere i sektionen om indholdsrettigheder i [Penpot's " +"Terms of Service] (https://penpot.app/terms.html). Du kan også læse om " +"[font licensing](2)." -msgid "labels.font-providers" -msgstr "Skrifttype udbydere" +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.invite-profile" +msgstr "Invitér til team" -msgid "labels.search-font" -msgstr "Søg efter skrifttype" +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.leave-team" +msgstr "Forlad team" + +#: src/app/main/ui/dashboard/libraries.cljs +msgid "dashboard.libraries-title" +msgstr "Delte Biblioteker" + +#: src/app/main/ui/dashboard/grid.cljs +msgid "dashboard.loading-files" +msgstr "indlæser dine filer…" + +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.move-to" +msgstr "Flyt til" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.move-to-multi" +msgstr "Flyt %s filer til" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.move-to-other-team" +msgstr "Flyt til andet team" + +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs +msgid "dashboard.new-file" +msgstr "+ Ny Fil" + +#: src/app/main/data/dashboard.cljs +msgid "dashboard.new-file-prefix" +msgstr "Ny Fil" + +#: src/app/main/ui/dashboard/projects.cljs +msgid "dashboard.new-project" +msgstr "+ Nyt projekt" + +#: src/app/main/data/dashboard.cljs +msgid "dashboard.new-project-prefix" +msgstr "Nyt Projekt" + +#: src/app/main/ui/dashboard/search.cljs +msgid "dashboard.no-matches-for" +msgstr "Intet match fundet for “%s“" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.no-projects-placeholder" +msgstr "Fastgjorte projekter bliver vist her" + +#: src/app/main/ui/auth/verify_token.cljs +msgid "dashboard.notifications.email-changed-successfully" +msgstr "Din email-adresse er blevet opdateret med succes" + +#: src/app/main/ui/auth/verify_token.cljs +msgid "dashboard.notifications.email-verified-successfully" +msgstr "Din email-adresse er blevet bekræftet med succes" + +#: src/app/main/ui/settings/password.cljs +msgid "dashboard.notifications.password-saved" +msgstr "Adgangskode gemt med succes!" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.num-of-members" +msgstr "%s medlemmer" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.open-in-new-tab" +msgstr "Åben fil i en ny fane" + +#: src/app/main/ui/settings/password.cljs +msgid "dashboard.password-change" +msgstr "Skift adgangskode" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "dashboard.pin-unpin" +msgstr "Fastgør/Løsne" + +#: src/app/main/ui/dashboard/projects.cljs +msgid "dashboard.projects-title" +msgstr "Projekter" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.promote-to-owner" +msgstr "Forfrem til ejer" + +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.remove-account" +msgstr "Vil du slette din konto?" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.remove-shared" +msgstr "Fjern som Delt Bibliotek" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.search-placeholder" +msgstr "Søg…" + +#: src/app/main/ui/dashboard/search.cljs +msgid "dashboard.searching-for" +msgstr "Søger efter “%s“…" + +#: src/app/main/ui/settings/options.cljs +msgid "dashboard.select-ui-language" +msgstr "Vælg UI sprog" + +#: src/app/main/ui/settings/options.cljs +msgid "dashboard.select-ui-theme" +msgstr "Vælg tema" + +#: src/app/main/ui/dashboard/grid.cljs +msgid "dashboard.show-all-files" +msgstr "Vis alle filer" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.success-delete-file" +msgstr "Din fil er blevet slettet med succes" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "dashboard.success-delete-project" +msgstr "Dit projekt er blevet slettet med succes" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.success-duplicate-file" +msgstr "Din fil er blevet dublikeret med succes" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "dashboard.success-duplicate-project" +msgstr "Dit projekt er blevet dublikeret med succes" + +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.success-move-file" +msgstr "Din fil er blevet flyttet med succes" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.success-move-files" +msgstr "Dine filer er blevet flyttet med succes" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "dashboard.success-move-project" +msgstr "Dit projekt er blevet flyttet med succes" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.switch-team" +msgstr "Skift team" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.team-info" +msgstr "Team info" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.team-members" +msgstr "Medlemmer" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.team-projects" +msgstr "Team projekter" + +#: src/app/main/ui/settings/options.cljs +msgid "dashboard.theme-change" +msgstr "UI tema" + +#: src/app/main/ui/dashboard/search.cljs +msgid "dashboard.title-search" +msgstr "Søgeresultater" + +#: src/app/main/ui/dashboard/search.cljs +msgid "dashboard.type-something" +msgstr "Skriv for at søge i resultater" + +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs +msgid "dashboard.update-settings" +msgstr "Opdater indstillinger" + +#: src/app/main/ui/settings.cljs +msgid "dashboard.your-account-title" +msgstr "Din konto" + +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.your-email" +msgstr "Email" + +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.your-name" +msgstr "Dit navn" + +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.your-penpot" +msgstr "Dit Penpot" + +#: src/app/main/ui/confirm.cljs +msgid "ds.confirm-cancel" +msgstr "Fortryd" + +#: src/app/main/ui/confirm.cljs +msgid "ds.confirm-ok" +msgstr "Ok" + +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +msgid "ds.confirm-title" +msgstr "Er du sikker?" + +#: src/app/main/ui/dashboard/grid.cljs +msgid "ds.updated-at" +msgstr "Opdateret: %s" + +#: src/app/main/data/workspace.cljs +msgid "errors.clipboard-not-implemented" +msgstr "Din browser kan ikke gøre denne operation" msgid "labels.custom-fonts" msgstr "Brugerdefinerede skrifttyper" +msgid "labels.font-family" +msgstr "Skrifttypefamilie" + +msgid "labels.font-providers" +msgstr "Skrifttype udbydere" + msgid "labels.font-variant" msgstr "Stil" -msgid "labels.font-family" -msgstr "Skrifttypefamilie" +msgid "labels.fonts" +msgstr "Skrifttyper" msgid "labels.installed-fonts" msgstr "Installeret skrifttyper" -msgid "labels.fonts" -msgstr "Skrifttyper" +msgid "labels.search-font" +msgstr "Søg efter skrifttype" + +msgid "labels.upload" +msgstr "Upload" + +msgid "labels.upload-custom-fonts" +msgstr "Upload brugerdefinerede skrifttyper" + +msgid "labels.uploading" +msgstr "Uploader..." msgid "modals.delete-font.message" msgstr "" @@ -219,267 +475,10 @@ msgstr "" msgid "modals.delete-font.title" msgstr "Sletter skrifttype" -msgid "labels.uploading" -msgstr "Uploader..." - -msgid "labels.upload" -msgstr "Upload" - -#: src/app/main/ui/dashboard/fonts.cljs -msgid "title.dashboard.fonts" -msgstr "Skrifttyper - %s - Penpot" - #: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" msgstr "Skrifttype Udbydere - %s - Penpot" -#: src/app/main/data/workspace.cljs -msgid "errors.clipboard-not-implemented" -msgstr "Din browser kan ikke gøre denne operation" - -#: src/app/main/ui/dashboard/grid.cljs -msgid "ds.updated-at" -msgstr "Opdateret: %s" - -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs -msgid "ds.confirm-title" -msgstr "Er du sikker?" - -#: src/app/main/ui/confirm.cljs -msgid "ds.confirm-ok" -msgstr "Ok" - -#: src/app/main/ui/confirm.cljs -msgid "ds.confirm-cancel" -msgstr "Fortryd" - -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.your-penpot" -msgstr "Dit Penpot" - -#: src/app/main/ui/settings/profile.cljs -msgid "dashboard.your-name" -msgstr "Dit navn" - -#: src/app/main/ui/settings/profile.cljs -msgid "dashboard.your-email" -msgstr "Email" - -#: src/app/main/ui/settings.cljs -msgid "dashboard.your-account-title" -msgstr "Din konto" - -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs -msgid "dashboard.update-settings" -msgstr "Opdater indstillinger" - -#: src/app/main/ui/dashboard/search.cljs -msgid "dashboard.type-something" -msgstr "Skriv for at søge i resultater" - -#: src/app/main/ui/dashboard/search.cljs -msgid "dashboard.title-search" -msgstr "Søgeresultater" - -#: src/app/main/ui/settings/options.cljs -msgid "dashboard.theme-change" -msgstr "UI tema" - -#: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.team-projects" -msgstr "Team projekter" - -#: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.team-members" -msgstr "Medlemmer" - -#: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.team-info" -msgstr "Team info" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.switch-team" -msgstr "Skift team" - -#: src/app/main/ui/dashboard/project_menu.cljs -msgid "dashboard.success-move-project" -msgstr "Dit projekt er blevet flyttet med succes" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.success-move-files" -msgstr "Dine filer er blevet flyttet med succes" - -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.success-move-file" -msgstr "Din fil er blevet flyttet med succes" - -#: src/app/main/ui/dashboard/project_menu.cljs -msgid "dashboard.success-duplicate-project" -msgstr "Dit projekt er blevet dublikeret med succes" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.success-duplicate-file" -msgstr "Din fil er blevet dublikeret med succes" - -#: src/app/main/ui/dashboard/project_menu.cljs -msgid "dashboard.success-delete-project" -msgstr "Dit projekt er blevet slettet med succes" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.success-delete-file" -msgstr "Din fil er blevet slettet med succes" - -#: src/app/main/ui/dashboard/grid.cljs -msgid "dashboard.show-all-files" -msgstr "Vis alle filer" - -#: src/app/main/ui/settings/options.cljs -msgid "dashboard.select-ui-theme" -msgstr "Vælg tema" - -#: src/app/main/ui/settings/options.cljs -msgid "dashboard.select-ui-language" -msgstr "Vælg UI sprog" - -#: src/app/main/ui/dashboard/search.cljs -msgid "dashboard.searching-for" -msgstr "Søger efter “%s“…" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.search-placeholder" -msgstr "Søg…" - -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.remove-shared" -msgstr "Fjern som Delt Bibliotek" - -#: src/app/main/ui/settings/profile.cljs -msgid "dashboard.remove-account" -msgstr "Vil du slette din konto?" - -#: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.promote-to-owner" -msgstr "Forfrem til ejer" - -#: src/app/main/ui/dashboard/projects.cljs -msgid "dashboard.projects-title" -msgstr "Projekter" - -#: src/app/main/ui/dashboard/project_menu.cljs -msgid "dashboard.pin-unpin" -msgstr "Fastgør/Løsne" - -#: src/app/main/ui/settings/password.cljs -msgid "dashboard.password-change" -msgstr "Skift adgangskode" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.open-in-new-tab" -msgstr "Åben fil i en ny fane" - -#: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.num-of-members" -msgstr "%s medlemmer" - -#: src/app/main/ui/settings/password.cljs -msgid "dashboard.notifications.password-saved" -msgstr "Adgangskode gemt med succes!" - -#: src/app/main/ui/auth/verify_token.cljs -msgid "dashboard.notifications.email-verified-successfully" -msgstr "Din email-adresse er blevet bekræftet med succes" - -#: src/app/main/ui/auth/verify_token.cljs -msgid "dashboard.notifications.email-changed-successfully" -msgstr "Din email-adresse er blevet opdateret med succes" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.no-projects-placeholder" -msgstr "Fastgjorte projekter bliver vist her" - -#: src/app/main/data/dashboard.cljs -msgid "dashboard.new-project-prefix" -msgstr "Nyt Projekt" - -#: src/app/main/ui/dashboard/projects.cljs -msgid "dashboard.new-project" -msgstr "+ Nyt projekt" - -#: src/app/main/ui/dashboard/search.cljs -msgid "dashboard.no-matches-for" -msgstr "Intet match fundet for “%s“" - -#: src/app/main/data/dashboard.cljs -msgid "dashboard.new-file-prefix" -msgstr "Ny Fil" - -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs -msgid "dashboard.new-file" -msgstr "+ Ny Fil" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.move-to-other-team" -msgstr "Flyt til andet team" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.move-to-multi" -msgstr "Flyt %s filer til" - -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.move-to" -msgstr "Flyt til" - -#: src/app/main/ui/dashboard/grid.cljs -msgid "dashboard.loading-files" -msgstr "indlæser dine filer…" - -#: src/app/main/ui/dashboard/libraries.cljs -msgid "dashboard.libraries-title" -msgstr "Delte Biblioteker" - -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.leave-team" -msgstr "Forlad team" - -#: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.invite-profile" -msgstr "Invitér til team" - -#: src/app/main/ui/dashboard/grid.cljs -msgid "dashboard.empty-files" -msgstr "Du har stadig ingen filer her" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.duplicate-multi" -msgstr "Dublikér %s filer" - -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.duplicate" -msgstr "Dublikér" - -msgid "dashboard.draft-title" -msgstr "Udkast" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.delete-team" -msgstr "Slet team" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.default-team-name" -msgstr "Dit Penpot" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.create-new-team" -msgstr "+ Opret nyt team" - -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs -msgid "dashboard.copy-suffix" -msgstr "(kopi)" - -#: src/app/main/ui/settings/profile.cljs -msgid "dashboard.change-email" -msgstr "Skift email" - -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.add-shared" -msgstr "Tilføj som Delt Bibliotek" +#: src/app/main/ui/dashboard/fonts.cljs +msgid "title.dashboard.fonts" +msgstr "Skrifttyper - %s - Penpot" \ No newline at end of file diff --git a/frontend/translations/de.po b/frontend/translations/de.po index 2a296ccda..c5179aefa 100644 --- a/frontend/translations/de.po +++ b/frontend/translations/de.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2021-05-13 08:44+0000\n" "Last-Translator: Andrey Antukh \n" -"Language-Team: German \n" +"Language-Team: German " +"\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -18,8 +18,8 @@ msgstr "Sie haben schon ein Konto?" #: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" -"Überprüfen Sie Ihre E-Mail, klicken Sie auf den Link um sich zu verifizieren " -"und Penpot zu nutzen." +"Überprüfen Sie Ihre E-Mail, klicken Sie auf den Link um sich zu " +"verifizieren und Penpot zu nutzen." #: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" @@ -36,8 +36,8 @@ msgstr "Einfach testen?" #: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" -"Das ist eine DEMO-VERSION, verwenden Sie es NICHT zum Arbeiten, die Projekte " -"werden regelmäßig gelöscht." +"Das ist eine DEMO-VERSION, verwenden Sie es NICHT zum Arbeiten, die " +"Projekte werden regelmäßig gelöscht." #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs msgid "auth.email" @@ -103,8 +103,7 @@ msgstr "" #: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" -msgstr "" -"Der Link zur Wiederherstellung des Passworts wurde an Ihre E-Mail gesendet." +msgstr "Der Link zur Wiederherstellung des Passworts wurde an Ihre E-Mail gesendet." #: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" @@ -418,8 +417,7 @@ msgid "errors.ldap-disabled" msgstr "Die LDAP-Authentifizierung ist deaktiviert." msgid "errors.media-format-unsupported" -msgstr "" -"Das Bildformat wird nicht unterstützt (es muss ein SVG, JPG oder PNG sein)." +msgstr "Das Bildformat wird nicht unterstützt (es muss ein SVG, JPG oder PNG sein)." #: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" @@ -428,7 +426,8 @@ msgstr "Das Bild ist zu groß, um eingefügt zu werden (es muss unter 5MB sein). #: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "" -"Es scheint, dass der Bildinhalt nicht mit der Dateierweiterung übereinstimmt." +"Es scheint, dass der Bildinhalt nicht mit der Dateierweiterung " +"übereinstimmt." #: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" @@ -437,8 +436,8 @@ msgstr "Es scheint, dass dies kein gültiges Bild ist." #: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "" -"In dem von Ihnen eingeladenen Profil sind E-Mails stummgeschaltet (Spam-" -"Berichte oder hohe Unzustellbarkeitsberichte)." +"In dem von Ihnen eingeladenen Profil sind E-Mails stummgeschaltet " +"(Spam-Berichte oder hohe Unzustellbarkeitsberichte)." msgid "errors.network" msgstr "Es kann keine Verbindung zum Server hergestellt werden." @@ -514,8 +513,8 @@ msgstr "Betreff" #: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" -"Bitte beschreiben Sie den Grund Ihrer E-Mail und geben Sie an, ob es sich um " -"ein Problem, eine Idee oder einem Bedenken handelt. Ein Mitglied unseres " +"Bitte beschreiben Sie den Grund Ihrer E-Mail und geben Sie an, ob es sich " +"um ein Problem, eine Idee oder einem Bedenken handelt. Ein Mitglied unseres " "Teams wird Ihnen so schnell wie möglich antworten." #: src/app/main/ui/settings/feedback.cljs @@ -1182,8 +1181,7 @@ msgstr "Befördern" #: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" -msgstr "" -"Sind Sie sicher, dass Sie diesen Benutzer zum Eigentümer befördern wollen?" +msgstr "Sind Sie sicher, dass Sie diesen Benutzer zum Eigentümer befördern wollen?" #: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" @@ -1215,7 +1213,8 @@ msgstr "Abbrechen" msgid "modals.update-remote-component.hint" msgstr "" "Sie sind dabei, eine Komponente in einer gemeinsam genutzten Bibliothek zu " -"aktualisieren. Dies kann sich auf andere Dateien auswirken, die es verwenden." +"aktualisieren. Dies kann sich auf andere Dateien auswirken, die es " +"verwenden." #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" @@ -1228,8 +1227,8 @@ msgstr "Einladung erfolgreich gesendet" #: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "" -"Sie können Ihr Profil nicht löschen. Weisen Sie Ihre Teams neu zu, bevor Sie " -"fortfahren." +"Sie können Ihr Profil nicht löschen. Weisen Sie Ihre Teams neu zu, bevor " +"Sie fortfahren." #: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" @@ -1613,7 +1612,8 @@ msgstr "BIBLIOTHEK" #: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "" -"Es gibt keine gemeinsam genutzte Bibliotheken, die aktualisiert werden müssen" +"Es gibt keine gemeinsam genutzte Bibliotheken, die aktualisiert werden " +"müssen" #: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-matches-for" @@ -2409,4 +2409,4 @@ msgid "workspace.updates.update" msgstr "Aktualisieren" msgid "workspace.viewport.click-to-close-path" -msgstr "Klicken Sie, um den Pfad zu schließen" +msgstr "Klicken Sie, um den Pfad zu schließen" \ No newline at end of file diff --git a/frontend/translations/el.po b/frontend/translations/el.po index ad217b374..d5b782250 100644 --- a/frontend/translations/el.po +++ b/frontend/translations/el.po @@ -2358,4 +2358,4 @@ msgid "workspace.updates.update" msgstr "Ενημέρωση" msgid "workspace.viewport.click-to-close-path" -msgstr "Κάντε κλικ για να κλείσετε τη διαδρομή" +msgstr "Κάντε κλικ για να κλείσετε τη διαδρομή" \ No newline at end of file diff --git a/frontend/translations/en.po b/frontend/translations/en.po index b2e8ecb0e..9d50b7b8d 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2021-05-20 14:12+0000\n" "Last-Translator: Jan C. Borchardt \n" -"Language-Team: English \n" +"Language-Team: English " +"\n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,62 +11,6 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.7-dev\n" -#: src/app/main/ui/dashboard/fonts.cljs -msgid "title.dashboard.fonts" -msgstr "Fonts - %s - Penpot" - -#: src/app/main/ui/dashboard/fonts.cljs -msgid "title.dashboard.font-providers" -msgstr "Font Providers - %s - Penpot" - -msgid "labels.upload" -msgstr "Upload" - -msgid "labels.uploading" -msgstr "Uploading…" - -msgid "modals.delete-font.title" -msgstr "Deleting font" - -msgid "modals.delete-font.message" -msgstr "Are you sure you want to delete this font? It will not load if is used in a file." - -msgid "labels.fonts" -msgstr "Fonts" - -msgid "labels.installed-fonts" -msgstr "Installed fonts" - -msgid "labels.font-family" -msgstr "Font Family" - -msgid "labels.font-variant" -msgstr "Style" - -msgid "labels.custom-fonts" -msgstr "Custom fonts" - -msgid "labels.manage-fonts" -msgstr "Manage fonts" - -msgid "labels.search-font" -msgstr "Search font" - -msgid "labels.font-providers" -msgstr "Font providers" - -msgid "labels.upload-custom-fonts" -msgstr "Upload custom fonts" - - -#, markdown -msgid "dashboard.fonts.hero-text1" -msgstr "Any web font you upload here will be added to the font family list available at the text properties of the files of this team. Fonts with the same font family name will be grouped as a **single font family**. You can upload fonts with the following formats: **TTF, OTF and WOFF** (only one will be needed)." - -#, markdown -msgid "dashboard.fonts.hero-text2" -msgstr "You should only upload fonts you own or have license to use in Penpot. Find out more in the Content rights section of [Penpot's Terms of Service](https://penpot.app/terms.html). You also might want to read about [font licensing](https://www.typography.com/faq)." - #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Already have an account?" @@ -262,6 +206,23 @@ msgstr "Duplicate %s files" msgid "dashboard.empty-files" msgstr "You still have no files here" +#, markdown +msgid "dashboard.fonts.hero-text1" +msgstr "" +"Any web font you upload here will be added to the font family list " +"available at the text properties of the files of this team. Fonts with the " +"same font family name will be grouped as a **single font family**. You can " +"upload fonts with the following formats: **TTF, OTF and WOFF** (only one " +"will be needed)." + +#, markdown +msgid "dashboard.fonts.hero-text2" +msgstr "" +"You should only upload fonts you own or have license to use in Penpot. Find " +"out more in the Content rights section of [Penpot's Terms of " +"Service](https://penpot.app/terms.html). You also might want to read about " +"[font licensing](https://www.typography.com/faq)." + #: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Invite to team" @@ -877,6 +838,9 @@ msgstr "Create new team" msgid "labels.create-team.placeholder" msgstr "Enter new team name" +msgid "labels.custom-fonts" +msgstr "Custom fonts" + #: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "Dashboard" @@ -921,6 +885,18 @@ msgstr "Feedback disabled" msgid "labels.feedback-sent" msgstr "Feedback sent" +msgid "labels.font-family" +msgstr "Font Family" + +msgid "labels.font-providers" +msgstr "Font providers" + +msgid "labels.font-variant" +msgstr "Style" + +msgid "labels.fonts" +msgstr "Fonts" + #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "Give feedback" @@ -935,6 +911,9 @@ msgstr "Icons" msgid "labels.images" msgstr "Images" +msgid "labels.installed-fonts" +msgstr "Installed fonts" + #: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" @@ -953,6 +932,9 @@ msgstr "Language" msgid "labels.logout" msgstr "Logout" +msgid "labels.manage-fonts" +msgstr "Manage fonts" + #: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Members" @@ -1051,6 +1033,9 @@ msgstr "Role" msgid "labels.save" msgstr "Save" +msgid "labels.search-font" +msgstr "Search font" + #: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Send" @@ -1095,6 +1080,15 @@ msgstr "Update" msgid "labels.update-team" msgstr "Update team" +msgid "labels.upload" +msgstr "Upload" + +msgid "labels.upload-custom-fonts" +msgstr "Upload custom fonts" + +msgid "labels.uploading" +msgstr "Uploading…" + #: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "Viewer" @@ -1195,6 +1189,14 @@ msgstr "Are you sure you want to delete %s files?" msgid "modals.delete-file-multi-confirm.title" msgstr "Deleting %s files" +msgid "modals.delete-font.message" +msgstr "" +"Are you sure you want to delete this font? It will not load if is used in a " +"file." + +msgid "modals.delete-font.title" +msgstr "Deleting font" + #: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "Are you sure you want to delete this page?" @@ -1358,6 +1360,14 @@ msgstr "Mixed" msgid "title.dashboard.files" msgstr "%s - Penpot" +#: src/app/main/ui/dashboard/fonts.cljs +msgid "title.dashboard.font-providers" +msgstr "Font Providers - %s - Penpot" + +#: src/app/main/ui/dashboard/fonts.cljs +msgid "title.dashboard.fonts" +msgstr "Fonts - %s - Penpot" + #: src/app/main/ui/dashboard/projects.cljs msgid "title.dashboard.projects" msgstr "Projects - %s - Penpot" @@ -2591,4 +2601,4 @@ msgid "workspace.updates.update" msgstr "Update" msgid "workspace.viewport.click-to-close-path" -msgstr "Click to close the path" +msgstr "Click to close the path" \ No newline at end of file diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 65489d8ae..eb9ae497c 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -11,77 +11,11 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.7-dev\n" -#: src/app/main/ui/dashboard/fonts.cljs -msgid "title.dashboard.fonts" -msgstr "Fuentes - %s - Penpot" - -#: src/app/main/ui/dashboard/fonts.cljs -msgid "title.dashboard.font-providers" -msgstr "Proveedores de fuentes - %s - Penpot" - -msgid "labels.upload" -msgstr "Subir" - -msgid "labels.uploading" -msgstr "Subiendo..." - -msgid "modals.delete-font.title" -msgstr "Eliminando fuente" - -msgid "modals.delete-font.message" -msgstr "Are you sure you want to delete this font? It will not load if is used in a file." -msgstr "¿Estas seguro que quieres eliminar esta fuente? La fuente dejara de cargar si es usada en algun fichero." - -msgid "labels.fonts" -msgstr "Fuentes" - -msgid "labels.installed-fonts" -msgstr "Fuentes instaladas" - -msgid "labels.font-family" -msgstr "Familia de fuente" - -msgid "labels.font-variant" -msgstr "Estilo" - -msgid "labels.custom-fonts" -msgstr "Fuentes personalizadas" - -msgid "labels.manage-fonts" -msgstr "Administrar fuentes" - -msgid "labels.search-font" -msgstr "Buscar fuente" - -msgid "labels.font-providers" -msgstr "Proveedores de fuentes" - -msgid "labels.upload-custom-fonts" -msgstr "Subir fuente" - -#, markdown -msgid "dashboard.fonts.hero-text1" -msgstr "Any web font you upload here will be added to the font family list available at the text properties of the files of this team. Fonts with the same font family name will be grouped as a **single font family**. You can upload fonts with the following formats: **TTF, OTF and WOFF** (only one will be needed)." - -#, markdown -msgid "dashboard.fonts.hero-text2" -msgstr "You should only upload fonts you own or have license to use in Penpot. Find out more in the Content rights section of [Penpot's Terms of Service](https://penpot.app/terms.html). You also might want to read about [font licensing](2)." - - - - - - - - - - #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "¿Tienes ya una cuenta?" #: src/app/main/ui/auth/register.cljs -#, fuzzy msgid "auth.check-your-email" msgstr "" "Comprueba tu email y haz click en el link de verificación para comenzar a " @@ -276,6 +210,23 @@ msgstr "Duplicar %s archivos" msgid "dashboard.empty-files" msgstr "Todavía no hay ningún archivo aquí" +#, markdown +msgid "dashboard.fonts.hero-text1" +msgstr "" +"Any web font you upload here will be added to the font family list " +"available at the text properties of the files of this team. Fonts with the " +"same font family name will be grouped as a **single font family**. You can " +"upload fonts with the following formats: **TTF, OTF and WOFF** (only one " +"will be needed)." + +#, markdown +msgid "dashboard.fonts.hero-text2" +msgstr "" +"You should only upload fonts you own or have license to use in Penpot. Find " +"out more in the Content rights section of [Penpot's Terms of " +"Service](https://penpot.app/terms.html). You also might want to read about " +"[font licensing](2)." + #: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Invitar al equipo" @@ -889,6 +840,9 @@ msgstr "Crear" msgid "labels.create-team" msgstr "Crea un nuevo equipo" +msgid "labels.custom-fonts" +msgstr "Fuentes personalizadas" + #: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "Panel" @@ -933,6 +887,18 @@ msgstr "El modulo de recepción de opiniones esta deshabilitado." msgid "labels.feedback-sent" msgstr "Opinión enviada" +msgid "labels.font-family" +msgstr "Familia de fuente" + +msgid "labels.font-providers" +msgstr "Proveedores de fuentes" + +msgid "labels.font-variant" +msgstr "Estilo" + +msgid "labels.fonts" +msgstr "Fuentes" + #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "Danos tu opinión" @@ -947,6 +913,9 @@ msgstr "Iconos" msgid "labels.images" msgstr "Imágenes" +msgid "labels.installed-fonts" +msgstr "Fuentes instaladas" + #: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" @@ -965,6 +934,9 @@ msgstr "Idioma" msgid "labels.logout" msgstr "Salir" +msgid "labels.manage-fonts" +msgstr "Administrar fuentes" + #: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Integrantes" @@ -1063,6 +1035,9 @@ msgstr "Cargo" msgid "labels.save" msgstr "Guardar" +msgid "labels.search-font" +msgstr "Buscar fuente" + #: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Enviar" @@ -1107,6 +1082,15 @@ msgstr "Actualizar" msgid "labels.update-team" msgstr "Actualiza el equipo" +msgid "labels.upload" +msgstr "Subir" + +msgid "labels.upload-custom-fonts" +msgstr "Subir fuente" + +msgid "labels.uploading" +msgstr "Subiendo..." + #: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "Visualizador" @@ -1207,6 +1191,14 @@ msgstr "¿Seguro que quieres eliminar %s archivos?" msgid "modals.delete-file-multi-confirm.title" msgstr "Eliminando %s archivos" +msgid "modals.delete-font.message" +msgstr "" +"Are you sure you want to delete this font? It will not load if is used in a " +"file." + +msgid "modals.delete-font.title" +msgstr "Eliminando fuente" + #: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "¿Seguro que quieres borrar esta página?" @@ -1362,6 +1354,14 @@ msgstr "Verificación de email enviada a %s. Comprueba tu correo." msgid "settings.multiple" msgstr "Varios" +#: src/app/main/ui/dashboard/fonts.cljs +msgid "title.dashboard.font-providers" +msgstr "Proveedores de fuentes - %s - Penpot" + +#: src/app/main/ui/dashboard/fonts.cljs +msgid "title.dashboard.fonts" +msgstr "Fuentes - %s - Penpot" + #: src/app/main/ui/dashboard/projects.cljs msgid "title.dashboard.projects" msgstr "Proyectos - %s - Penpot" @@ -2595,14 +2595,4 @@ msgid "workspace.updates.update" msgstr "Actualizar" msgid "workspace.viewport.click-to-close-path" -msgstr "Pulsar para cerrar la ruta" - -#: src/app/main/ui/auth/register.cljs -msgid "auth.check-your-email" -msgstr "" -"Comprueba tu email y haz click en el link de verificación para comenzar a " -"usar Penpot." - -#: src/app/main/ui/auth/register.cljs -msgid "auth.verification-email-sent" -msgstr "Hemos enviado un email de verificación a" +msgstr "Pulsar para cerrar la ruta" \ No newline at end of file diff --git a/frontend/translations/fr.po b/frontend/translations/fr.po index fff382f9d..34e70bab4 100644 --- a/frontend/translations/fr.po +++ b/frontend/translations/fr.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2021-05-13 08:47+0000\n" "Last-Translator: Andrey Antukh \n" -"Language-Team: French \n" +"Language-Team: French " +"\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -97,8 +97,7 @@ msgstr "Mot de passe changé avec succès" #: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" -msgstr "" -"Le profil n’est pas vérifié. Veuillez vérifier le profil avant de continuer." +msgstr "Le profil n’est pas vérifié. Veuillez vérifier le profil avant de continuer." #: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" @@ -673,8 +672,8 @@ msgstr "Tous" #: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "" -"Il semble que vous deviez attendre un peu et réessayer ; nous effectuons une " -"petite maintenance de nos serveurs." +"Il semble que vous deviez attendre un peu et réessayer ; nous effectuons " +"une petite maintenance de nos serveurs." #: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" @@ -751,8 +750,8 @@ msgstr "Images" #: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" -"Un problème s’est produit. Veuillez réessayer l’opération et, si le problème " -"persiste, contacter le service technique." +"Un problème s’est produit. Veuillez réessayer l’opération et, si le " +"problème persiste, contacter le service technique." #: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" @@ -913,9 +912,9 @@ msgstr "Ajouter comme Bibliothèque Partagée" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" -"Une fois ajoutées en tant que Bibliothèque Partagée, les ressources de cette " -"bibliothèque de fichiers seront disponibles pour être utilisées parmi le " -"reste de vos fichiers." +"Une fois ajoutées en tant que Bibliothèque Partagée, les ressources de " +"cette bibliothèque de fichiers seront disponibles pour être utilisées parmi " +"le reste de vos fichiers." #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" @@ -2196,4 +2195,4 @@ msgid "workspace.updates.update" msgstr "Actualiser" msgid "workspace.viewport.click-to-close-path" -msgstr "Cliquez pour fermer le chemin" +msgstr "Cliquez pour fermer le chemin" \ No newline at end of file diff --git a/frontend/translations/id.po b/frontend/translations/id.po index 4f8f6e6de..b1fc23594 100644 --- a/frontend/translations/id.po +++ b/frontend/translations/id.po @@ -1,2 +1,6 @@ msgid "" -msgstr "X-Generator: Weblate\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit" \ No newline at end of file +msgstr "" +"X-Generator: Weblate\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" \ No newline at end of file diff --git a/frontend/translations/nb_NO.po b/frontend/translations/nb_NO.po index da98ce65f..833e3b94d 100644 --- a/frontend/translations/nb_NO.po +++ b/frontend/translations/nb_NO.po @@ -2,242 +2,562 @@ msgid "" msgstr "" "PO-Revision-Date: 2021-05-09 00:37+0000\n" "Last-Translator: Allan Nordhøy \n" -"Language-Team: Norwegian Bokmål \n" +"Language-Team: Norwegian Bokmål " +"\n" "Language: nb_NO\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.7-dev\n" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.radius.all-corners" -msgstr "Alle hjørner" +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.confirm-password" +msgstr "Bekreft passord" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.screen" -msgstr "Skjerm" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.lighten" -msgstr "Lysne" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.row" -msgstr "Rader" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.width" -msgstr "Bredde" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.use-default" -msgstr "Bruk forvalg" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type" -msgstr "Type" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.size" -msgstr "Størrelse" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.set-default" -msgstr "Sett som forvalg" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.rows" -msgstr "Rader" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.columns" -msgstr "Kolonner" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.height" -msgstr "Høyde" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs -msgid "workspace.options.exporting-object" -msgstr "Eksporterer …" - -#: src/app/main/ui/workspace/sidebar/options.cljs -msgid "workspace.options.design" -msgstr "Design" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs -msgid "workspace.options.component" -msgstr "Komponent" - -msgid "workspace.options.blur-options.layer-blur" -msgstr "Lag" - -msgid "workspace.options.blur-options.background-blur" -msgstr "Bakgrunn" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.file-library" -msgstr "Filbibliotek" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.components" -msgstr "%s komponenter" - -#: src/app/main/ui/workspace/colorpalette.cljs -msgid "workspace.libraries.colors.small-thumbnails" -msgstr "Små miniatyrbilder" - -#: src/app/main/ui/workspace/colorpicker.cljs -msgid "workspace.libraries.colors.save-color" -msgstr "Lagre fargestil" - -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs -msgid "workspace.libraries.colors.recent-colors" -msgstr "Nylige farger" - -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs -msgid "workspace.libraries.colors.file-library" -msgstr "Filbibliotek" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.colors" -msgstr "%s farger" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.add" -msgstr "Legg til" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-rules" -msgstr "Vis regler" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-layers" -msgstr "Vis lag" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-grid" -msgstr "Vis rutenett" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.enable-snap-grid" -msgstr "Fest til rutenett" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.font-variant-id" -msgstr "Variant" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.font-size" -msgstr "Størrelse" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.font-id" -msgstr "Skrift" - -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.rename" -msgstr "Gi nytt navn" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.libraries" -msgstr "Bibliotek" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.group-name" -msgstr "Gruppenavn" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.group" -msgstr "Gruppe" - -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.graphics" -msgstr "Grafikk" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.file-library" -msgstr "Filbibliotek" - -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.edit" -msgstr "Rediger" - -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.delete" -msgstr "Slett" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.create-group" -msgstr "Opprett en gruppe" - -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.components" -msgstr "Komponenter" - -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.colors" -msgstr "Farger" - -msgid "workspace.assets.box-filter-graphics" -msgstr "Grafikk" - -#: src/app/main/ui/viewer/header.cljs -msgid "viewer.header.share.remove-link" -msgstr "Fjern lenke" - -#: src/app/main/ui/viewer/header.cljs -msgid "viewer.header.share.create-link" -msgstr "Opprett lenke" - -#: src/app/main/ui/viewer/header.cljs -msgid "viewer.header.edit-page" -msgstr "Rediger side" - -#: src/app/main/ui/workspace.cljs +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs #, fuzzy -msgid "title.workspace" -msgstr "%s - Penpot" +msgid "auth.email" +msgstr "E-post" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.forgot-password" +msgstr "Glemt passordet?" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.fullname" +msgstr "Fullt navn" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.new-password" +msgstr "Skriv inn et nytt passord" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.notifications.invalid-token-error" +msgstr "Gjenopprettelsessymbolet er ugyldig." + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.password" +msgstr "Passord" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-submit" +msgstr "Gjenopprett passord" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.recovery-submit" +msgstr "Endre passordet ditt" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.register" +msgstr "Ingen konto enda?" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, fuzzy +msgid "auth.register-submit" +msgstr "Opprett konto" + +#: src/app/main/ui/auth/register.cljs +#, fuzzy +msgid "auth.register-title" +msgstr "Opprett konto" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.add-shared" +msgstr "Legg til som delt bibliotek" + +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +msgid "dashboard.copy-suffix" +msgstr "(kopi)" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.default-team-name" +msgstr "Din Penpot" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.delete-team" +msgstr "Slett lag" + +msgid "dashboard.draft-title" +msgstr "Kladd" #: src/app/main/ui/dashboard/team.cljs -#, fuzzy -msgid "title.team-settings" -msgstr "Innstillinger - %s - Penpot" +msgid "dashboard.invite-profile" +msgstr "Inviter til lag" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.leave-team" +msgstr "Forlat lag" + +#: src/app/main/ui/dashboard/libraries.cljs +msgid "dashboard.libraries-title" +msgstr "Delte biblioteker" + +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.move-to" +msgstr "Flytt til" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.move-to-multi" +msgstr "Flytt %s filer til" + +#: src/app/main/ui/dashboard/file_menu.cljs #, fuzzy -msgid "title.settings.profile" -msgstr "Profil - Penpot" +msgid "dashboard.move-to-other-team" +msgstr "Flytt til annet lag" + +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs +#, fuzzy +msgid "dashboard.new-file" +msgstr "+ Ny fil" + +#: src/app/main/ui/dashboard/projects.cljs +msgid "dashboard.new-project" +msgstr "+ Nytt prosjekt" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.num-of-members" +msgstr "%s medlemmer" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.open-in-new-tab" +msgstr "Åpne fil i ny fane" #: src/app/main/ui/settings/password.cljs +msgid "dashboard.password-change" +msgstr "Endre passord" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "dashboard.pin-unpin" +msgstr "Fest/løsne" + +#: src/app/main/ui/dashboard/projects.cljs +msgid "dashboard.projects-title" +msgstr "Prosjekter" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.promote-to-owner" +msgstr "Promoter til eier" + +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.remove-account" +msgstr "Ønsker du å fjerne kontoen din?" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs #, fuzzy -msgid "title.settings.password" -msgstr "Passord - Penpot" +msgid "dashboard.remove-shared" +msgstr "Fjern som delt bibliotek" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.search-placeholder" +msgstr "Søk …" + +#: src/app/main/ui/dashboard/search.cljs +#, fuzzy +msgid "dashboard.searching-for" +msgstr "Şøker etter «%s» …" #: src/app/main/ui/settings/options.cljs #, fuzzy -msgid "title.settings.options" -msgstr "Innstillinger - Penpot" +msgid "dashboard.select-ui-language" +msgstr "Velg grensesnittsspråk" -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs -#, fuzzy -msgid "notifications.profile-saved" -msgstr "Profil lagret" +#: src/app/main/ui/settings/options.cljs +msgid "dashboard.select-ui-theme" +msgstr "Velg drakt" -#: src/app/main/ui/dashboard/team.cljs -#, fuzzy -msgid "notifications.invitation-email-sent" -msgstr "Invitasjon sendt" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "modals.update-remote-component.cancel" -msgstr "Avbryt" +#: src/app/main/ui/dashboard/grid.cljs +msgid "dashboard.show-all-files" +msgstr "Vis alle filer" #: src/app/main/ui/dashboard/sidebar.cljs -msgid "modals.leave-confirm.accept" -msgstr "Forlat lag" +msgid "dashboard.switch-team" +msgstr "Bytt lag" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.team-info" +msgstr "Laginfo" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.team-members" +msgstr "Lagmedlemmer" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.team-projects" +msgstr "Lagprosjekter" + +#: src/app/main/ui/settings/options.cljs +msgid "dashboard.theme-change" +msgstr "Grensesnittsdrakt" + +#: src/app/main/ui/settings.cljs +msgid "dashboard.your-account-title" +msgstr "Din konto" + +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.your-name" +msgstr "Ditt navn" + +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.your-penpot" +msgstr "Din Penpot" + +#: src/app/main/ui/confirm.cljs +msgid "ds.confirm-cancel" +msgstr "Avbryt" + +#: src/app/main/ui/confirm.cljs +#, fuzzy +msgid "ds.confirm-ok" +msgstr "OK" + +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +msgid "ds.confirm-title" +msgstr "Er du sikker?" + +#: src/app/main/ui/components/color_input.cljs +msgid "errors.invalid-color" +msgstr "Ugyldig farge" + +#, fuzzy +msgid "errors.media-format-unsupported" +msgstr "Bildeformatet støttes ikke (må være SVG, JPG, eller PNG)." + +#: src/app/main/ui/auth/verify_token.cljs +msgid "errors.unexpected-token" +msgstr "Ukjent symbol" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.chat-start" +msgstr "Ta del i sludringen" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.description" +msgstr "Beskrivelse" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.discussions-go-to" +msgstr "Gå til diskusjoner" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.discussions-title" +msgstr "Lagdiskusjoner" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.subject" +msgstr "Emne" + +#: src/app/main/ui/handoff/attributes/blur.cljs +msgid "handoff.attributes.blur.value" +msgstr "Verdi" + +#: src/app/main/ui/handoff/attributes/image.cljs +msgid "handoff.attributes.image.download" +msgstr "Last ned kildebilde" + +#: src/app/main/ui/handoff/attributes/image.cljs +msgid "handoff.attributes.image.height" +msgstr "Høyde" + +#: src/app/main/ui/handoff/attributes/image.cljs +msgid "handoff.attributes.image.width" +msgstr "Bredde" + +#: src/app/main/ui/handoff/attributes/layout.cljs +msgid "handoff.attributes.layout.height" +msgstr "Høyde" + +#: src/app/main/ui/handoff/attributes/layout.cljs +msgid "handoff.attributes.layout.left" +msgstr "Venstre" + +#: src/app/main/ui/handoff/attributes/layout.cljs +msgid "handoff.attributes.layout.width" +msgstr "Bredde" + +#: src/app/main/ui/handoff/attributes/shadow.cljs +msgid "handoff.attributes.shadow" +msgstr "Skygge" + +#: src/app/main/ui/handoff/attributes/stroke.cljs +msgid "handoff.attributes.stroke.width" +msgstr "Bredde" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography" +msgstr "Typografi" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography.font-family" +msgstr "Skriftfamilie" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography.font-size" +msgstr "Skriftstørrelse" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography.font-style" +msgstr "Skriftstil" + +#: src/app/main/ui/handoff/right_sidebar.cljs +msgid "handoff.tabs.code" +msgstr "Kode" + +msgid "handoff.tabs.code.selected.circle" +msgstr "Sirkel" + +msgid "handoff.tabs.code.selected.group" +msgstr "Gruppe" + +msgid "handoff.tabs.code.selected.image" +msgstr "Bilde" + +msgid "handoff.tabs.code.selected.path" +msgstr "Sti" + +msgid "handoff.tabs.code.selected.svg-raw" +msgstr "SVG" + +msgid "handoff.tabs.code.selected.text" +msgstr "Tekst" + +#: src/app/main/ui/handoff/right_sidebar.cljs +msgid "handoff.tabs.info" +msgstr "Info" + +msgid "labels.accept" +msgstr "Godta" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.cancel" +msgstr "Avbryt" + +#: src/app/main/ui/settings/password.cljs +msgid "labels.confirm-password" +msgstr "Bekreft passord" + +msgid "labels.content" +msgstr "Innhold" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "labels.create" +msgstr "Opprett" + +#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs +msgid "labels.create-team" +msgstr "Opprett nytt lag" + +#: src/app/main/ui/dashboard/team_form.cljs +msgid "labels.create-team.placeholder" +msgstr "Skriv inn nytt lagnavn" + +msgid "labels.custom-fonts" +msgstr "Egendefinerte skrifter" + +#: src/app/main/ui/settings/sidebar.cljs +msgid "labels.dashboard" +msgstr "Oversikt" + +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.delete" +msgstr "Slett" + +#: src/app/main/ui/comments.cljs +msgid "labels.delete-comment" +msgstr "Slett kommentar" + +#: src/app/main/ui/comments.cljs +msgid "labels.delete-comment-thread" +msgstr "Slett tråd" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.delete-multi-files" +msgstr "Slett %s filer" + +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.drafts" +msgstr "Kladder" + +#: src/app/main/ui/comments.cljs +msgid "labels.edit" +msgstr "Rediger" + +msgid "labels.font-family" +msgstr "Skriftfamilie" + +msgid "labels.font-providers" +msgstr "Skrifttilbydere" + +msgid "labels.font-variant" +msgstr "Stil" + +msgid "labels.fonts" +msgstr "Skrifter" + +msgid "labels.icons" +msgstr "Ikoner" + +msgid "labels.images" +msgstr "Bilder" + +msgid "labels.installed-fonts" +msgstr "Installerte skrifter" + +#: src/app/main/ui/settings/options.cljs +msgid "labels.language" +msgstr "Språk" + +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#, fuzzy +msgid "labels.logout" +msgstr "Logg ut" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.members" +msgstr "Medlemmer" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.name" +msgstr "Navn" + +#: src/app/main/ui/settings/password.cljs +msgid "labels.new-password" +msgstr "Nytt passord" + +#: src/app/main/ui/static.cljs +msgid "labels.not-found.auth-info" +msgstr "Du er innlogget som" + +#: src/app/main/ui/settings/password.cljs +msgid "labels.old-password" +msgstr "Gammelt passord" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.owner" +msgstr "Eier" + +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.password" +msgstr "Passord" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.permissions" +msgstr "Tilganger" + +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.profile" +msgstr "Profil" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.projects" +msgstr "Prosjekter" + +#, fuzzy +msgid "labels.recent" +msgstr "Nylige" + +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.remove" +msgstr "Fjern" + +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.rename" +msgstr "Gi nytt navn" + +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +msgid "labels.retry" +msgstr "Prøv igjen" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.role" +msgstr "Rolle" + +msgid "labels.save" +msgstr "Lagre" + +#, fuzzy +msgid "labels.search-font" +msgstr "Søk etter skrift" + +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.send" +msgstr "Send" + +#: src/app/main/ui/settings/feedback.cljs +#, fuzzy +msgid "labels.sending" +msgstr "Sender …" + +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.settings" +msgstr "Innstillinger" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.shared-libraries" +msgstr "Delte bibliotek" + +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +msgid "labels.show-all-comments" +msgstr "Vis alle kommentarer" + +#: src/app/main/ui/static.cljs +msgid "labels.sign-out" +msgstr "Logg ut" + +msgid "labels.upload" +msgstr "Last opp" + +msgid "labels.upload-custom-fonts" +msgstr "Last opp egendefinerte skrifter" + +msgid "labels.uploading" +msgstr "Laster opp …" + +#: src/app/main/ui/comments.cljs +msgid "labels.write-new-comment" +msgstr "Skriv ny kommentar" + +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +msgid "media.loading" +msgstr "Laster inn bilde …" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, fuzzy +msgid "modals.add-shared-confirm.accept" +msgstr "Legg til som delt bibliotek" + +#: src/app/main/ui/settings/change_email.cljs +#, fuzzy +msgid "modals.change-email.confirm-email" +msgstr "Bekreft ny e-postadresse" + +#: src/app/main/ui/settings/delete_account.cljs +msgid "modals.delete-account.confirm" +msgstr "Ja, slett kontoen min" + +#: src/app/main/ui/comments.cljs +msgid "modals.delete-comment-thread.accept" +msgstr "Slett samtale" + +#: src/app/main/ui/comments.cljs +msgid "modals.delete-comment-thread.title" +msgstr "Slett samtale" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.delete-file-confirm.accept" +msgstr "Slett fil" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.delete-file-multi-confirm.accept" +msgstr "Slett filer" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs +msgid "modals.delete-page.title" +msgstr "Slett side" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "modals.delete-project-confirm.accept" +msgstr "Slett prosjekt" #: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" @@ -247,550 +567,230 @@ msgstr "Slett medlem" msgid "modals.delete-team-member-confirm.title" msgstr "Slett lagmedlem" -#: src/app/main/ui/dashboard/project_menu.cljs -msgid "modals.delete-project-confirm.accept" -msgstr "Slett prosjekt" - -#: src/app/main/ui/workspace/sidebar/sitemap.cljs -msgid "modals.delete-page.title" -msgstr "Slett side" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.delete-file-multi-confirm.accept" -msgstr "Slett filer" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.delete-file-confirm.accept" -msgstr "Slett fil" - -#: src/app/main/ui/comments.cljs -msgid "modals.delete-comment-thread.title" -msgstr "Slett samtale" - -#: src/app/main/ui/comments.cljs -msgid "modals.delete-comment-thread.accept" -msgstr "Slett samtale" - -#: src/app/main/ui/settings/delete_account.cljs -msgid "modals.delete-account.confirm" -msgstr "Ja, slett kontoen min" - -#: src/app/main/ui/settings/change_email.cljs -#, fuzzy -msgid "modals.change-email.confirm-email" -msgstr "Bekreft ny e-postadresse" - -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, fuzzy -msgid "modals.add-shared-confirm.accept" -msgstr "Legg til som delt bibliotek" - -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs -msgid "media.loading" -msgstr "Laster inn bilde …" - -#: src/app/main/ui/comments.cljs -msgid "labels.write-new-comment" -msgstr "Skriv ny kommentar" - -#: src/app/main/ui/static.cljs -msgid "labels.sign-out" -msgstr "Logg ut" - -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs -msgid "labels.show-all-comments" -msgstr "Vis alle kommentarer" - #: src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.shared-libraries" -msgstr "Delte bibliotek" - -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.settings" -msgstr "Innstillinger" - -#: src/app/main/ui/settings/feedback.cljs -#, fuzzy -msgid "labels.sending" -msgstr "Sender …" - -#: src/app/main/ui/settings/feedback.cljs -msgid "labels.send" -msgstr "Send" - -msgid "labels.save" -msgstr "Lagre" - -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.role" -msgstr "Rolle" - -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs -msgid "labels.retry" -msgstr "Prøv igjen" - -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "labels.rename" -msgstr "Gi nytt navn" - -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -msgid "labels.remove" -msgstr "Fjern" - -#, fuzzy -msgid "labels.recent" -msgstr "Nylige" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.projects" -msgstr "Prosjekter" - -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.profile" -msgstr "Profil" - -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.permissions" -msgstr "Tilganger" - -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.password" -msgstr "Passord" - -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs -msgid "labels.owner" -msgstr "Eier" - -#: src/app/main/ui/settings/password.cljs -msgid "labels.old-password" -msgstr "Gammelt passord" - -#: src/app/main/ui/static.cljs -msgid "labels.not-found.auth-info" -msgstr "Du er innlogget som" - -#: src/app/main/ui/settings/password.cljs -msgid "labels.new-password" -msgstr "Nytt passord" - -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.name" -msgstr "Navn" - -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.members" -msgstr "Medlemmer" - -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs -#, fuzzy -msgid "labels.logout" -msgstr "Logg ut" - -#: src/app/main/ui/settings/options.cljs -msgid "labels.language" -msgstr "Språk" - -msgid "labels.images" -msgstr "Bilder" - -msgid "labels.icons" -msgstr "Ikoner" - -#: src/app/main/ui/comments.cljs -msgid "labels.edit" -msgstr "Rediger" - -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "labels.drafts" -msgstr "Kladder" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "labels.delete-multi-files" -msgstr "Slett %s filer" - -#: src/app/main/ui/comments.cljs -msgid "labels.delete-comment-thread" -msgstr "Slett tråd" - -#: src/app/main/ui/comments.cljs -msgid "labels.delete-comment" -msgstr "Slett kommentar" - -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "labels.delete" -msgstr "Slett" - -#: src/app/main/ui/settings/sidebar.cljs -msgid "labels.dashboard" -msgstr "Oversikt" - -#: src/app/main/ui/dashboard/team_form.cljs -msgid "labels.create-team.placeholder" -msgstr "Skriv inn nytt lagnavn" - -#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs -msgid "labels.create-team" -msgstr "Opprett nytt lag" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "labels.create" -msgstr "Opprett" - -msgid "labels.content" -msgstr "Innhold" - -#: src/app/main/ui/settings/password.cljs -msgid "labels.confirm-password" -msgstr "Bekreft passord" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.cancel" -msgstr "Avbryt" - -msgid "labels.accept" -msgstr "Godta" - -#: src/app/main/ui/handoff/right_sidebar.cljs -msgid "handoff.tabs.info" -msgstr "Info" - -msgid "handoff.tabs.code.selected.text" -msgstr "Tekst" - -msgid "handoff.tabs.code.selected.svg-raw" -msgstr "SVG" - -#: src/app/main/ui/handoff/attributes/text.cljs -msgid "handoff.attributes.typography.font-family" -msgstr "Skriftfamilie" - -#: src/app/main/ui/handoff/attributes/text.cljs -msgid "handoff.attributes.typography" -msgstr "Typografi" - -#: src/app/main/ui/handoff/attributes/blur.cljs -msgid "handoff.attributes.blur.value" -msgstr "Verdi" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.discussions-title" -msgstr "Lagdiskusjoner" - -#, fuzzy -msgid "errors.media-format-unsupported" -msgstr "Bildeformatet støttes ikke (må være SVG, JPG, eller PNG)." - -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs -msgid "ds.confirm-title" -msgstr "Er du sikker?" - -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, fuzzy -msgid "dashboard.remove-shared" -msgstr "Fjern som delt bibliotek" - -#: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.promote-to-owner" -msgstr "Promoter til eier" - -#: src/app/main/ui/dashboard/projects.cljs -msgid "dashboard.new-project" -msgstr "+ Nytt prosjekt" - -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs -#, fuzzy -msgid "dashboard.new-file" -msgstr "+ Ny fil" - -#: src/app/main/ui/dashboard/file_menu.cljs -#, fuzzy -msgid "dashboard.move-to-other-team" -msgstr "Flytt til annet lag" - -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.add-shared" -msgstr "Legg til som delt bibliotek" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.register" -msgstr "Ingen konto enda?" - -#: src/app/main/ui/auth/recovery_request.cljs -msgid "auth.recovery-request-submit" -msgstr "Gjenopprett passord" - -#: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" -msgstr "Gjenopprettelsessymbolet er ugyldig." - -msgid "handoff.tabs.code.selected.path" -msgstr "Sti" - -msgid "handoff.tabs.code.selected.image" -msgstr "Bilde" - -msgid "handoff.tabs.code.selected.group" -msgstr "Gruppe" - -msgid "handoff.tabs.code.selected.circle" -msgstr "Sirkel" - -#: src/app/main/ui/handoff/right_sidebar.cljs -msgid "handoff.tabs.code" -msgstr "Kode" - -#: src/app/main/ui/handoff/attributes/text.cljs -msgid "handoff.attributes.typography.font-style" -msgstr "Skriftstil" - -#: src/app/main/ui/handoff/attributes/text.cljs -msgid "handoff.attributes.typography.font-size" -msgstr "Skriftstørrelse" - -#: src/app/main/ui/handoff/attributes/stroke.cljs -msgid "handoff.attributes.stroke.width" -msgstr "Bredde" - -#: src/app/main/ui/handoff/attributes/shadow.cljs -msgid "handoff.attributes.shadow" -msgstr "Skygge" - -#: src/app/main/ui/handoff/attributes/layout.cljs -msgid "handoff.attributes.layout.width" -msgstr "Bredde" - -#: src/app/main/ui/handoff/attributes/layout.cljs -msgid "handoff.attributes.layout.left" -msgstr "Venstre" - -#: src/app/main/ui/handoff/attributes/layout.cljs -msgid "handoff.attributes.layout.height" -msgstr "Høyde" - -#: src/app/main/ui/handoff/attributes/image.cljs -msgid "handoff.attributes.image.width" -msgstr "Bredde" - -#: src/app/main/ui/handoff/attributes/image.cljs -msgid "handoff.attributes.image.height" -msgstr "Høyde" - -#: src/app/main/ui/handoff/attributes/image.cljs -msgid "handoff.attributes.image.download" -msgstr "Last ned kildebilde" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.subject" -msgstr "Emne" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.discussions-go-to" -msgstr "Gå til diskusjoner" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.description" -msgstr "Beskrivelse" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.chat-start" -msgstr "Ta del i sludringen" - -#: src/app/main/ui/auth/verify_token.cljs -msgid "errors.unexpected-token" -msgstr "Ukjent symbol" - -#: src/app/main/ui/components/color_input.cljs -msgid "errors.invalid-color" -msgstr "Ugyldig farge" - -#: src/app/main/ui/confirm.cljs -#, fuzzy -msgid "ds.confirm-ok" -msgstr "OK" - -#: src/app/main/ui/confirm.cljs -msgid "ds.confirm-cancel" -msgstr "Avbryt" - -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.your-penpot" -msgstr "Din Penpot" - -#: src/app/main/ui/settings/profile.cljs -msgid "dashboard.your-name" -msgstr "Ditt navn" - -#: src/app/main/ui/settings.cljs -msgid "dashboard.your-account-title" -msgstr "Din konto" - -#: src/app/main/ui/settings/options.cljs -msgid "dashboard.theme-change" -msgstr "Grensesnittsdrakt" - -#: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.team-projects" -msgstr "Lagprosjekter" - -#: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.team-members" -msgstr "Lagmedlemmer" - -#: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.team-info" -msgstr "Laginfo" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.switch-team" -msgstr "Bytt lag" - -#: src/app/main/ui/dashboard/grid.cljs -msgid "dashboard.show-all-files" -msgstr "Vis alle filer" - -#: src/app/main/ui/settings/options.cljs -msgid "dashboard.select-ui-theme" -msgstr "Velg drakt" - -#: src/app/main/ui/settings/options.cljs -#, fuzzy -msgid "dashboard.select-ui-language" -msgstr "Velg grensesnittsspråk" - -#: src/app/main/ui/dashboard/search.cljs -#, fuzzy -msgid "dashboard.searching-for" -msgstr "Şøker etter «%s» …" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.search-placeholder" -msgstr "Søk …" - -#: src/app/main/ui/settings/profile.cljs -msgid "dashboard.remove-account" -msgstr "Ønsker du å fjerne kontoen din?" - -#: src/app/main/ui/dashboard/projects.cljs -msgid "dashboard.projects-title" -msgstr "Prosjekter" - -#: src/app/main/ui/dashboard/project_menu.cljs -msgid "dashboard.pin-unpin" -msgstr "Fest/løsne" - -#: src/app/main/ui/settings/password.cljs -msgid "dashboard.password-change" -msgstr "Endre passord" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.open-in-new-tab" -msgstr "Åpne fil i ny fane" - -#: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.num-of-members" -msgstr "%s medlemmer" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.move-to-multi" -msgstr "Flytt %s filer til" - -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.move-to" -msgstr "Flytt til" - -#: src/app/main/ui/dashboard/libraries.cljs -msgid "dashboard.libraries-title" -msgstr "Delte biblioteker" - -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.leave-team" +msgid "modals.leave-confirm.accept" msgstr "Forlat lag" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "modals.update-remote-component.cancel" +msgstr "Avbryt" + #: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.invite-profile" -msgstr "Inviter til lag" - -msgid "dashboard.draft-title" -msgstr "Kladd" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.delete-team" -msgstr "Slett lag" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.default-team-name" -msgstr "Din Penpot" - -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs -msgid "dashboard.copy-suffix" -msgstr "(kopi)" - -#: src/app/main/ui/auth/register.cljs #, fuzzy -msgid "auth.register-title" -msgstr "Opprett konto" +msgid "notifications.invitation-email-sent" +msgstr "Invitasjon sendt" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs #, fuzzy -msgid "auth.register-submit" -msgstr "Opprett konto" +msgid "notifications.profile-saved" +msgstr "Profil lagret" -#: src/app/main/ui/auth/recovery.cljs -msgid "auth.recovery-submit" -msgstr "Endre passordet ditt" - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.password" -msgstr "Passord" - -#: src/app/main/ui/auth/recovery.cljs -msgid "auth.new-password" -msgstr "Skriv inn et nytt passord" - -#: src/app/main/ui/auth/register.cljs -msgid "auth.fullname" -msgstr "Fullt navn" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.forgot-password" -msgstr "Glemt passordet?" - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/settings/options.cljs #, fuzzy -msgid "auth.email" -msgstr "E-post" - -#: src/app/main/ui/auth/recovery.cljs -msgid "auth.confirm-password" -msgstr "Bekreft passord" - -msgid "labels.upload-custom-fonts" -msgstr "Last opp egendefinerte skrifter" - -msgid "labels.font-providers" -msgstr "Skrifttilbydere" +msgid "title.settings.options" +msgstr "Innstillinger - Penpot" +#: src/app/main/ui/settings/password.cljs #, fuzzy -msgid "labels.search-font" -msgstr "Søk etter skrift" +msgid "title.settings.password" +msgstr "Passord - Penpot" -msgid "labels.custom-fonts" -msgstr "Egendefinerte skrifter" +#: src/app/main/ui/settings/profile.cljs +#, fuzzy +msgid "title.settings.profile" +msgstr "Profil - Penpot" -msgid "labels.font-variant" -msgstr "Stil" +#: src/app/main/ui/dashboard/team.cljs +#, fuzzy +msgid "title.team-settings" +msgstr "Innstillinger - %s - Penpot" -msgid "labels.font-family" -msgstr "Skriftfamilie" +#: src/app/main/ui/workspace.cljs +#, fuzzy +msgid "title.workspace" +msgstr "%s - Penpot" -msgid "labels.installed-fonts" -msgstr "Installerte skrifter" +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.edit-page" +msgstr "Rediger side" -msgid "labels.fonts" -msgstr "Skrifter" +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.share.create-link" +msgstr "Opprett lenke" -msgid "labels.uploading" -msgstr "Laster opp …" +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.share.remove-link" +msgstr "Fjern lenke" -msgid "labels.upload" -msgstr "Last opp" +msgid "workspace.assets.box-filter-graphics" +msgstr "Grafikk" + +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.colors" +msgstr "Farger" + +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.components" +msgstr "Komponenter" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.create-group" +msgstr "Opprett en gruppe" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.delete" +msgstr "Slett" + +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.edit" +msgstr "Rediger" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.file-library" +msgstr "Filbibliotek" + +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.graphics" +msgstr "Grafikk" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.group" +msgstr "Gruppe" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.group-name" +msgstr "Gruppenavn" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.libraries" +msgstr "Bibliotek" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.rename" +msgstr "Gi nytt navn" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.assets.typography.font-id" +msgstr "Skrift" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.assets.typography.font-size" +msgstr "Størrelse" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.assets.typography.font-variant-id" +msgstr "Variant" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.enable-snap-grid" +msgstr "Fest til rutenett" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-grid" +msgstr "Vis rutenett" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-layers" +msgstr "Vis lag" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-rules" +msgstr "Vis regler" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.add" +msgstr "Legg til" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.colors" +msgstr "%s farger" + +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs +msgid "workspace.libraries.colors.file-library" +msgstr "Filbibliotek" + +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs +msgid "workspace.libraries.colors.recent-colors" +msgstr "Nylige farger" + +#: src/app/main/ui/workspace/colorpicker.cljs +msgid "workspace.libraries.colors.save-color" +msgstr "Lagre fargestil" + +#: src/app/main/ui/workspace/colorpalette.cljs +msgid "workspace.libraries.colors.small-thumbnails" +msgstr "Små miniatyrbilder" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.components" +msgstr "%s komponenter" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.file-library" +msgstr "Filbibliotek" + +msgid "workspace.options.blur-options.background-blur" +msgstr "Bakgrunn" + +msgid "workspace.options.blur-options.layer-blur" +msgstr "Lag" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs +msgid "workspace.options.component" +msgstr "Komponent" + +#: src/app/main/ui/workspace/sidebar/options.cljs +msgid "workspace.options.design" +msgstr "Design" + +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs +msgid "workspace.options.exporting-object" +msgstr "Eksporterer …" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.columns" +msgstr "Kolonner" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.height" +msgstr "Høyde" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.rows" +msgstr "Rader" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.set-default" +msgstr "Sett som forvalg" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.size" +msgstr "Størrelse" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.type" +msgstr "Type" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.use-default" +msgstr "Bruk forvalg" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.width" +msgstr "Bredde" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.row" +msgstr "Rader" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.lighten" +msgstr "Lysne" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.screen" +msgstr "Skjerm" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +msgid "workspace.options.radius.all-corners" +msgstr "Alle hjørner" \ No newline at end of file diff --git a/frontend/translations/pt_BR.po b/frontend/translations/pt_BR.po index d1700d0dd..a00125a3d 100644 --- a/frontend/translations/pt_BR.po +++ b/frontend/translations/pt_BR.po @@ -2,15 +2,221 @@ msgid "" msgstr "" "PO-Revision-Date: 2021-05-17 21:32+0000\n" "Last-Translator: Eranot \n" -"Language-Team: Portuguese (Brazil) \n" +"Language-Team: Portuguese (Brazil) " +"\n" "Language: pt_BR\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 4.7-dev\n" +#: src/app/main/ui/auth/register.cljs +msgid "auth.already-have-account" +msgstr "Já tem uma conta?" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.check-your-email" +msgstr "" +"Verifique seu e-mail e clique no link de verificação para começar a usar o " +"Penpot." + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.confirm-password" +msgstr "Confirmar senha" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.create-demo-account" +msgstr "Criar conta de demonstração" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.create-demo-profile" +msgstr "Só quer experimentar?" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.demo-warning" +msgstr "" +"Este é um serviço DEMONSTRATIVO, NÃO USE para trabalho real, os projetos " +"serão apagados periodicamente." + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.email" +msgstr "E-mail" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.forgot-password" +msgstr "Esqueceu a senha?" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.fullname" +msgstr "Nome completo" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.go-back-to-login" +msgstr "Voltar!" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.login-here" +msgstr "Entrar aqui" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-submit" +msgstr "Entrar" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-subtitle" +msgstr "Insira seus dados abaixo" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-title" +msgstr "Bom te ver de novo!" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-github-submit" +msgstr "Entrar com o Github" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-gitlab-submit" +msgstr "Entrar com o Gitlab" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-google-submit" +msgstr "Entrar com o Google" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-ldap-submit" +msgstr "Entrar com LDAP" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-oidc-submit" +msgstr "Entrar com OpenID (SSO)" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.new-password" +msgstr "Digite uma nova senha" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.notifications.invalid-token-error" +msgstr "O token de recuperação é inválido." + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.notifications.password-changed-succesfully" +msgstr "Senha alterada com sucesso" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.notifications.profile-not-verified" +msgstr "Perfil não verificado. Por favor, verifique o perfil antes de continuar." + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.notifications.recovery-token-sent" +msgstr "Link de recuperação de senha foi enviado para sua caixa de entrada." + +#: src/app/main/ui/auth/verify_token.cljs +msgid "auth.notifications.team-invitation-accepted" +msgstr "Entrou para a equipe com sucesso" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.password" +msgstr "Senha" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.password-length-hint" +msgstr "Pelo menos 8 caracteres" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-submit" +msgstr "Recuperar senha" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-subtitle" +msgstr "Enviaremos para você um e-mail com instruções" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-title" +msgstr "Esqueceu a senha?" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.recovery-submit" +msgstr "Mudar sua senha" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.register" +msgstr "Ainda não tem uma conta?" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.register-submit" +msgstr "Criar uma conta" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.register-subtitle" +msgstr "É de graça, é código aberto" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.register-title" +msgstr "Criar uma conta" + +#: src/app/main/ui/auth.cljs +msgid "auth.sidebar-tagline" +msgstr "A solução de código aberto para design e prototipagem." + +#: src/app/main/ui/auth/register.cljs +msgid "auth.terms-privacy-agreement" +msgstr "" +"Ao criar uma nova conta, você concorda com nossos termos de serviço e " +"política de privacidade." + +#: src/app/main/ui/auth/register.cljs +msgid "auth.verification-email-sent" +msgstr "Enviamos um e-mail de verificação para" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.add-shared" +msgstr "Adicionar como Biblioteca Compartilhada" + +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.change-email" +msgstr "Alterar e-mail" + +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +msgid "dashboard.copy-suffix" +msgstr "(copiar)" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.create-new-team" +msgstr "+ Criar nova equipe" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.default-team-name" +msgstr "Sua Penpot" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.delete-team" +msgstr "Deletar equipe" + +msgid "dashboard.draft-title" +msgstr "Rascunho" + +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.duplicate" +msgstr "Duplicar" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.duplicate-multi" +msgstr "Duplicar %s arquivos" + +#: src/app/main/ui/dashboard/grid.cljs +msgid "dashboard.empty-files" +msgstr "Você ainda não tem arquivos aqui" + +#, markdown +msgid "dashboard.fonts.hero-text1" +msgstr "" +"Qualquer fonte da web que você carregar aqui será adicionada à lista de " +"família de fontes disponível nas propriedades de texto dos arquivos desta " +"equipe. As fontes com o mesmo nome de família de fontes serão agrupadas " +"como uma **única família de fontes**. Você pode fazer upload de fontes com " +"os seguintes formatos: **TTF, OTF e WOFF** (apenas uma será necessária)." + #, markdown msgid "dashboard.fonts.hero-text2" msgstr "" @@ -19,413 +225,374 @@ msgstr "" "Serviço da Penpot](https://penpot.app/terms.html). Você pode também querer " "ler sobre [licenciamento de fontes](2)." -msgid "labels.upload-custom-fonts" -msgstr "Carregar fontes personalizadas" - -msgid "labels.font-providers" -msgstr "Provedores de fonte" - -msgid "labels.search-font" -msgstr "Buscar fonte" - -msgid "labels.custom-fonts" -msgstr "Fontes personalizadas" - -msgid "labels.font-variant" -msgstr "Estilo" - -msgid "labels.font-family" -msgstr "Família da fonte" - -msgid "labels.installed-fonts" -msgstr "Fontes instaladas" - -msgid "labels.uploading" -msgstr "Carregando..." - -msgid "labels.upload" -msgstr "Carregar" - -#: src/app/main/ui/auth/recovery_request.cljs -msgid "auth.go-back-to-login" -msgstr "Voltar!" - -#: src/app/main/ui/auth/register.cljs -msgid "auth.fullname" -msgstr "Nome completo" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.forgot-password" -msgstr "Esqueceu a senha?" - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "E-mail" - -#: src/app/main/ui/auth/recovery.cljs -msgid "auth.confirm-password" -msgstr "Confirmar senha" - -msgid "modals.delete-font.message" -msgstr "" -"Tem certeza que deseja excluir essa fonte? Ela não será carregada se for " -"utilizada em um arquivo." - -msgid "labels.fonts" -msgstr "Fontes" - -#: src/app/main/ui/dashboard/fonts.cljs -msgid "title.dashboard.font-providers" -msgstr "Provedores de fonte - %s - Penpot" - -#: src/app/main/ui/dashboard/fonts.cljs -msgid "title.dashboard.fonts" -msgstr "Fontes - %s - Penpot" - -#: src/app/main/ui/auth/register.cljs -msgid "auth.check-your-email" -msgstr "" -"Verifique seu e-mail e clique no link de verificação para começar a usar o " -"Penpot." - -#: src/app/main/ui/auth/register.cljs -msgid "auth.already-have-account" -msgstr "Já tem uma conta?" - -msgid "modals.delete-font.title" -msgstr "Excluindo fonte" - -#: src/app/main/ui/auth/recovery_request.cljs -msgid "auth.notifications.recovery-token-sent" -msgstr "Link de recuperação de senha foi enviado para sua caixa de entrada." - -#: src/app/main/ui/auth/recovery_request.cljs -msgid "auth.notifications.profile-not-verified" -msgstr "" -"Perfil não verificado. Por favor, verifique o perfil antes de continuar." - -#: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.password-changed-succesfully" -msgstr "Senha alterada com sucesso" - -#: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" -msgstr "O token de recuperação é inválido." - -#: src/app/main/ui/auth/recovery.cljs -msgid "auth.new-password" -msgstr "Digite uma nova senha" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-with-oidc-submit" -msgstr "Entrar com OpenID (SSO)" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-with-ldap-submit" -msgstr "Entrar com LDAP" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-with-google-submit" -msgstr "Entrar com o Google" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-with-gitlab-submit" -msgstr "Entrar com o Gitlab" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-with-github-submit" -msgstr "Entrar com o Github" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-title" -msgstr "Bom te ver de novo!" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-subtitle" -msgstr "Insira seus dados abaixo" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-submit" -msgstr "Entrar" - -#: src/app/main/ui/auth/register.cljs -msgid "auth.demo-warning" -msgstr "" -"Este é um serviço DEMONSTRATIVO, NÃO USE para trabalho real, os projetos " -"serão apagados periodicamente." - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.create-demo-profile" -msgstr "Só quer experimentar?" - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.create-demo-account" -msgstr "Criar conta de demonstração" - #: src/app/main/ui/dashboard/team.cljs -msgid "modals.promote-owner-confirm.title" -msgstr "Promover a proprietário" +msgid "dashboard.invite-profile" +msgstr "Convidar para a equipe" -#: src/app/main/ui/dashboard/team.cljs -msgid "modals.promote-owner-confirm.message" -msgstr "Tem certeza de que deseja promover este usuário a proprietário?" - -#: src/app/main/ui/dashboard/team.cljs -msgid "modals.promote-owner-confirm.accept" -msgstr "Promover" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "modals.leave-confirm.title" -msgstr "Saindo da equipe" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "modals.leave-confirm.message" -msgstr "Tem certeza de que deseja sair deste equipe?" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "modals.leave-confirm.accept" +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.leave-team" msgstr "Sair da equipe" -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "modals.leave-and-reassign.title" -msgstr "Selecione um membro para promover" +#: src/app/main/ui/dashboard/libraries.cljs +msgid "dashboard.libraries-title" +msgstr "Bibliotecas Compartilhadas" -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "modals.leave-and-reassign.select-memeber-to-promote" -msgstr "Selecione um membro para promover" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "modals.leave-and-reassign.promote-and-leave" -msgstr "Promover e sair" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "modals.leave-and-reassign.hint2" -msgstr "Selecione outro membro para promover antes de sair" - -msgid "modals.leave-and-reassign.forbiden" -msgstr "" -"Você não pode deixar a equipe se não houver outro membro para promover a " -"proprietário. Você pode excluir a equipe." - -#: src/app/main/ui/dashboard/team.cljs -msgid "modals.invite-member.title" -msgstr "Convidar para se juntar à equipe" - -#: src/app/main/ui/dashboard/team.cljs -msgid "modals.invite-member-confirm.accept" -msgstr "Enviar convite" - -#: src/app/main/ui/settings/feedback.cljs -msgid "labels.sending" -msgstr "Enviando..." - -#: src/app/main/ui/settings/feedback.cljs -msgid "labels.send" -msgstr "Enviar" - -msgid "labels.save" -msgstr "Salvar" - -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.role" -msgstr "Cargo" - -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs -msgid "labels.retry" -msgstr "Tentar novamente" - -#: src/app/main/ui/dashboard/team_form.cljs -msgid "labels.rename-team" -msgstr "Renomear equipe" - -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "labels.rename" -msgstr "Renomear" - -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -msgid "labels.remove" -msgstr "Excluir" - -#: src/app/main/ui/settings/sidebar.cljs -msgid "labels.release-notes" -msgstr "Notas de lançamento" - -msgid "labels.recent" -msgstr "Recente" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.projects" -msgstr "Projetos" - -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.profile" -msgstr "Perfil" - -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.permissions" -msgstr "Permissões" - -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.password" -msgstr "Senha" - -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs -msgid "labels.owner" -msgstr "Proprietário" - -#: src/app/main/ui/workspace/comments.cljs -msgid "labels.only-yours" -msgstr "Apenas seu" - -#: src/app/main/ui/settings/password.cljs -msgid "labels.old-password" -msgstr "Senha antiga" - -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.num-of-projects" -msgid_plural "labels.num-of-projects" -msgstr[0] "1 projeto" -msgstr[1] "% projetos" - -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.num-of-files" -msgid_plural "labels.num-of-files" -msgstr[0] "1 arquivo" -msgstr[1] "%s arquivos" - -#: src/app/main/ui/static.cljs -msgid "labels.not-found.main-message" -msgstr "Oops!" - -#: src/app/main/ui/static.cljs -msgid "labels.not-found.desc-message" -msgstr "Esta página não existe ou você não tem permissão para acessá-la." - -#: src/app/main/ui/static.cljs -msgid "labels.not-found.auth-info" -msgstr "Você está conectado como" - -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs -msgid "labels.no-comments-available" -msgstr "Você não tem notificações de comentários pendentes" - -#: src/app/main/ui/settings/password.cljs -msgid "labels.new-password" -msgstr "Nova senha" - -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.name" -msgstr "Nome" - -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.members" -msgstr "Membros" - -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.logout" -msgstr "Sair" - -#: src/app/main/ui/settings/options.cljs -msgid "labels.language" -msgstr "Linguagem" - -#: src/app/main/ui/static.cljs -msgid "labels.internal-error.main-message" -msgstr "Erro interno" - -#: src/app/main/ui/static.cljs -msgid "labels.internal-error.desc-message" -msgstr "" -"Algo errado aconteceu. Repita a operação e se o problema persistir, entre em " -"contato com o suporte." - -msgid "labels.images" -msgstr "Imagens" - -msgid "labels.icons" -msgstr "Ícones" - -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.give-feedback" -msgstr "Enviar feedback" - -#: src/app/main/ui/settings/feedback.cljs -msgid "labels.feedback-sent" -msgstr "Feedback enviado" - -#: src/app/main/ui/settings/feedback.cljs -msgid "labels.feedback-disabled" -msgstr "Feedback desativado" - -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs -msgid "labels.email" -msgstr "E-mail" - -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs -msgid "labels.editor" -msgstr "Editor" - -#: src/app/main/ui/comments.cljs -msgid "labels.edit" -msgstr "Editar" - -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "labels.drafts" -msgstr "Rascunhos" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "labels.delete-multi-files" -msgstr "Excluir %s arquivos" - -#: src/app/main/ui/comments.cljs -msgid "labels.delete-comment-thread" -msgstr "Excluir tópico" - -#: src/app/main/ui/comments.cljs -msgid "labels.delete-comment" -msgstr "Excluir comentário" +#: src/app/main/ui/dashboard/grid.cljs +msgid "dashboard.loading-files" +msgstr "carregando seus arquivos…" #: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "labels.delete" -msgstr "Excluir" +msgid "dashboard.move-to" +msgstr "Mover para" -#: src/app/main/ui/settings/sidebar.cljs -msgid "labels.dashboard" -msgstr "Painel" +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.move-to-multi" +msgstr "Mover %s arquivos para" -#: src/app/main/ui/dashboard/team_form.cljs -msgid "labels.create-team.placeholder" -msgstr "Insira o nome da nova equipe" +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.move-to-other-team" +msgstr "Mover para outra equipe" -#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs -msgid "labels.create-team" -msgstr "Criar nova equipe" +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs +msgid "dashboard.new-file" +msgstr "+ Novo arquivo" -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "labels.create" -msgstr "Criar" +#: src/app/main/data/dashboard.cljs +msgid "dashboard.new-file-prefix" +msgstr "Novo arquivo" -msgid "labels.content" -msgstr "Conteúdo" +#: src/app/main/ui/dashboard/projects.cljs +msgid "dashboard.new-project" +msgstr "+ Novo projeto" -#: src/app/main/ui/settings/password.cljs -msgid "labels.confirm-password" -msgstr "Confirmar senha" +#: src/app/main/data/dashboard.cljs +msgid "dashboard.new-project-prefix" +msgstr "Novo projeto" -#: src/app/main/ui/dashboard/comments.cljs -msgid "labels.comments" -msgstr "Comentários" - -msgid "labels.centered" -msgstr "Centro" +#: src/app/main/ui/dashboard/search.cljs +msgid "dashboard.no-matches-for" +msgstr "Nenhuma correspondência encontrada para “%s“" #: src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.cancel" +msgid "dashboard.no-projects-placeholder" +msgstr "Projetos fixados aparecerão aqui" + +#: src/app/main/ui/auth/verify_token.cljs +msgid "dashboard.notifications.email-changed-successfully" +msgstr "Seu endereço de e-mail foi atualizado com sucesso" + +#: src/app/main/ui/auth/verify_token.cljs +msgid "dashboard.notifications.email-verified-successfully" +msgstr "Seu endereço de e-mail foi verificado com sucesso" + +#: src/app/main/ui/settings/password.cljs +msgid "dashboard.notifications.password-saved" +msgstr "Senha salva com sucesso!" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.num-of-members" +msgstr "%s membros" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.open-in-new-tab" +msgstr "Abrir arquivo em uma nova guia" + +#: src/app/main/ui/settings/password.cljs +msgid "dashboard.password-change" +msgstr "Alterar senha" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "dashboard.pin-unpin" +msgstr "Fixar/Desafixar" + +#: src/app/main/ui/dashboard/projects.cljs +msgid "dashboard.projects-title" +msgstr "Projetos" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.promote-to-owner" +msgstr "Promover a proprietário" + +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.remove-account" +msgstr "Quer remover sua conta?" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.remove-shared" +msgstr "Remover como Biblioteca Compartilhada" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.search-placeholder" +msgstr "Pesquisar…" + +#: src/app/main/ui/dashboard/search.cljs +msgid "dashboard.searching-for" +msgstr "Pesquisando por “%s“…" + +#: src/app/main/ui/settings/options.cljs +msgid "dashboard.select-ui-language" +msgstr "Selecionar idioma da UI" + +#: src/app/main/ui/settings/options.cljs +msgid "dashboard.select-ui-theme" +msgstr "Selecionar tema" + +#: src/app/main/ui/dashboard/grid.cljs +msgid "dashboard.show-all-files" +msgstr "Mostrar todos os arquivos" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.success-delete-file" +msgstr "Seu arquivo foi excluído com sucesso" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "dashboard.success-delete-project" +msgstr "Seu projeto foi excluído com sucesso" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.success-duplicate-file" +msgstr "Seu arquivo foi duplicado com sucesso" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "dashboard.success-duplicate-project" +msgstr "Seu projeto foi duplicado com sucesso" + +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.success-move-file" +msgstr "Seu arquivo foi movido com sucesso" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.success-move-files" +msgstr "Seus arquivos foram movidos com sucesso" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "dashboard.success-move-project" +msgstr "Seu projeto foi movido com sucesso" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.switch-team" +msgstr "Trocar de equipe" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.team-info" +msgstr "Informação da equipe" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.team-members" +msgstr "Membros da equipe" + +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.team-projects" +msgstr "Projetos da equipe" + +#: src/app/main/ui/settings/options.cljs +msgid "dashboard.theme-change" +msgstr "Tema da UI" + +#: src/app/main/ui/dashboard/search.cljs +msgid "dashboard.title-search" +msgstr "Resultados da pesquisa" + +#: src/app/main/ui/dashboard/search.cljs +msgid "dashboard.type-something" +msgstr "Digite para pesquisar resultados" + +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs +msgid "dashboard.update-settings" +msgstr "Atualizar configurações" + +#: src/app/main/ui/settings.cljs +msgid "dashboard.your-account-title" +msgstr "Sua conta" + +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.your-email" +msgstr "E-mail" + +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.your-name" +msgstr "Seu nome" + +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.your-penpot" +msgstr "Sua Penpot" + +#: src/app/main/ui/confirm.cljs +msgid "ds.confirm-cancel" msgstr "Cancelar" -#: src/app/main/ui/static.cljs -msgid "labels.bad-gateway.main-message" -msgstr "Bad Gateway" +#: src/app/main/ui/confirm.cljs +msgid "ds.confirm-ok" +msgstr "Ok" + +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +msgid "ds.confirm-title" +msgstr "Tem certeza?" + +#: src/app/main/ui/dashboard/grid.cljs +msgid "ds.updated-at" +msgstr "Atualizado: %s" + +#: src/app/main/data/workspace.cljs +msgid "errors.clipboard-not-implemented" +msgstr "Seu navegador não pode fazer esta operação" + +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs +msgid "errors.email-already-exists" +msgstr "E-mail já utilizado" + +#: src/app/main/ui/auth/verify_token.cljs +msgid "errors.email-already-validated" +msgstr "E-mail já validado." + +#: src/app/main/ui/settings/change_email.cljs +msgid "errors.email-invalid-confirmation" +msgstr "E-mail de confirmação deve ser o mesmo" + +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +msgid "errors.generic" +msgstr "Algo errado aconteceu." + +#: src/app/main/ui/auth/login.cljs +msgid "errors.google-auth-not-enabled" +msgstr "Autenticação com google desativada no backend" + +#: src/app/main/ui/components/color_input.cljs +msgid "errors.invalid-color" +msgstr "Cor inválida" + +#: src/app/main/ui/auth/login.cljs +msgid "errors.ldap-disabled" +msgstr "Autenticação por LDAP está desativada." + +msgid "errors.media-format-unsupported" +msgstr "O formato da imagem não é compatível (deve ser svg, jpg ou png)." + +#: src/app/main/data/workspace/persistence.cljs +msgid "errors.media-too-large" +msgstr "A imagem é muito grande para ser inserida (deve ter menos de 5mb)." + +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +msgid "errors.media-type-mismatch" +msgstr "Parece que o conteúdo da imagem não corresponde à extensão do arquivo." + +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +msgid "errors.media-type-not-allowed" +msgstr "Parece que esta não é uma imagem válida." + +msgid "errors.network" +msgstr "Não foi possível conectar ao servidor backend." + +#: src/app/main/ui/settings/password.cljs +msgid "errors.password-invalid-confirmation" +msgstr "A senha de confirmação deve ser a mesma" + +#: src/app/main/ui/settings/password.cljs +msgid "errors.password-too-short" +msgstr "A senha deve ter pelo menos 8 caracteres" + +msgid "errors.terms-privacy-agreement-invalid" +msgstr "Você deve aceitar nossos termos de serviço e política de privacidade." + +#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs +msgid "errors.unexpected-error" +msgstr "Um erro inesperado ocorreu." + +#: src/app/main/ui/auth/verify_token.cljs +msgid "errors.unexpected-token" +msgstr "Token desconhecido" + +#: src/app/main/ui/auth/login.cljs +msgid "errors.wrong-credentials" +msgstr "O nome de usuário ou a senha parecem estar errados." + +#: src/app/main/ui/settings/password.cljs +msgid "errors.wrong-old-password" +msgstr "A senha antiga está incorreta" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.chat-start" +msgstr "Junte-se ao chat" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.chat-subtitle" +msgstr "Com vontade de falar? Converse conosco no Gitter" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.description" +msgstr "Descrição" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.discussions-go-to" +msgstr "Ir para discussões" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography.line-height" +msgstr "Altura da linha" + +msgid "handoff.attributes.typography.text-decoration.none" +msgstr "Nenhum" + +msgid "handoff.attributes.typography.text-decoration.strikethrough" +msgstr "Riscado" + +msgid "handoff.attributes.typography.text-decoration.underline" +msgstr "Sublinhado" + +msgid "handoff.attributes.typography.text-transform.lowercase" +msgstr "Minúsculo" + +msgid "handoff.attributes.typography.text-transform.none" +msgstr "Nenhum" + +msgid "handoff.attributes.typography.text-transform.uppercase" +msgstr "Maiúsculo" + +#: src/app/main/ui/handoff/right_sidebar.cljs +msgid "handoff.tabs.code" +msgstr "Código" + +msgid "handoff.tabs.code.selected.circle" +msgstr "Círculo" + +msgid "handoff.tabs.code.selected.curve" +msgstr "Curva" + +msgid "handoff.tabs.code.selected.frame" +msgstr "Prancheta" + +msgid "handoff.tabs.code.selected.group" +msgstr "Grupo" + +msgid "handoff.tabs.code.selected.image" +msgstr "Imagem" + +#: src/app/main/ui/handoff/right_sidebar.cljs +msgid "handoff.tabs.code.selected.multiple" +msgstr "%s selecionados" + +msgid "handoff.tabs.code.selected.rect" +msgstr "Retângulo" + +msgid "handoff.tabs.code.selected.svg-raw" +msgstr "SVG" + +msgid "handoff.tabs.code.selected.text" +msgstr "Texto" + +#: src/app/main/ui/handoff/right_sidebar.cljs +msgid "handoff.tabs.info" +msgstr "Informação" + +msgid "history.alert-message" +msgstr "Você está vendo a versão %s" + +msgid "labels.accept" +msgstr "Aceitar" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.admin" +msgstr "Administrador" #: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" @@ -433,497 +600,329 @@ msgstr "" "Parece que você precisa esperar um pouco e tentar novamente; estamos " "realizando pequenas manutenções em nossos servidores." -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs -msgid "labels.admin" -msgstr "Administrador" +#: src/app/main/ui/static.cljs +msgid "labels.bad-gateway.main-message" +msgstr "Bad Gateway" -msgid "labels.accept" -msgstr "Aceitar" - -msgid "history.alert-message" -msgstr "Você está vendo a versão %s" - -#: src/app/main/ui/handoff/right_sidebar.cljs -msgid "handoff.tabs.info" -msgstr "Informação" - -msgid "handoff.tabs.code.selected.text" -msgstr "Texto" - -msgid "handoff.tabs.code.selected.svg-raw" -msgstr "SVG" - -msgid "handoff.tabs.code.selected.rect" -msgstr "Retângulo" - -#: src/app/main/ui/handoff/right_sidebar.cljs -msgid "handoff.tabs.code.selected.multiple" -msgstr "%s selecionados" - -msgid "handoff.tabs.code.selected.image" -msgstr "Imagem" - -msgid "handoff.tabs.code.selected.group" -msgstr "Grupo" - -msgid "handoff.tabs.code.selected.frame" -msgstr "Prancheta" - -msgid "handoff.tabs.code.selected.curve" -msgstr "Curva" - -msgid "handoff.tabs.code.selected.circle" -msgstr "Círculo" - -#: src/app/main/ui/handoff/right_sidebar.cljs -msgid "handoff.tabs.code" -msgstr "Código" - -msgid "handoff.attributes.typography.text-transform.uppercase" -msgstr "Maiúsculo" - -msgid "handoff.attributes.typography.text-transform.none" -msgstr "Nenhum" - -msgid "handoff.attributes.typography.text-transform.lowercase" -msgstr "Minúsculo" - -msgid "handoff.attributes.typography.text-decoration.underline" -msgstr "Sublinhado" - -msgid "handoff.attributes.typography.text-decoration.strikethrough" -msgstr "Riscado" - -msgid "handoff.attributes.typography.text-decoration.none" -msgstr "Nenhum" - -#: src/app/main/ui/handoff/attributes/text.cljs -msgid "handoff.attributes.typography.line-height" -msgstr "Altura da linha" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.discussions-go-to" -msgstr "Ir para discussões" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.description" -msgstr "Descrição" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.chat-subtitle" -msgstr "Com vontade de falar? Converse conosco no Gitter" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.chat-start" -msgstr "Junte-se ao chat" - -#: src/app/main/ui/settings/password.cljs -msgid "errors.wrong-old-password" -msgstr "A senha antiga está incorreta" - -#: src/app/main/ui/auth/login.cljs -msgid "errors.wrong-credentials" -msgstr "O nome de usuário ou a senha parecem estar errados." - -#: src/app/main/ui/auth/verify_token.cljs -msgid "errors.unexpected-token" -msgstr "Token desconhecido" - -#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs -msgid "errors.unexpected-error" -msgstr "Um erro inesperado ocorreu." - -msgid "errors.terms-privacy-agreement-invalid" -msgstr "Você deve aceitar nossos termos de serviço e política de privacidade." - -#: src/app/main/ui/settings/password.cljs -msgid "errors.password-too-short" -msgstr "A senha deve ter pelo menos 8 caracteres" - -#: src/app/main/ui/settings/password.cljs -msgid "errors.password-invalid-confirmation" -msgstr "A senha de confirmação deve ser a mesma" - -msgid "errors.network" -msgstr "Não foi possível conectar ao servidor backend." - -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs -msgid "errors.media-type-not-allowed" -msgstr "Parece que esta não é uma imagem válida." - -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs -msgid "errors.media-type-mismatch" -msgstr "Parece que o conteúdo da imagem não corresponde à extensão do arquivo." - -#: src/app/main/data/workspace/persistence.cljs -msgid "errors.media-too-large" -msgstr "A imagem é muito grande para ser inserida (deve ter menos de 5mb)." - -msgid "errors.media-format-unsupported" -msgstr "O formato da imagem não é compatível (deve ser svg, jpg ou png)." - -#: src/app/main/ui/auth/login.cljs -msgid "errors.ldap-disabled" -msgstr "Autenticação por LDAP está desativada." - -#: src/app/main/ui/components/color_input.cljs -msgid "errors.invalid-color" -msgstr "Cor inválida" - -#: src/app/main/ui/auth/login.cljs -msgid "errors.google-auth-not-enabled" -msgstr "Autenticação com google desativada no backend" - -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs -msgid "errors.generic" -msgstr "Algo errado aconteceu." - -#: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" -msgstr "E-mail de confirmação deve ser o mesmo" - -#: src/app/main/ui/auth/verify_token.cljs -msgid "errors.email-already-validated" -msgstr "E-mail já validado." - -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs -msgid "errors.email-already-exists" -msgstr "E-mail já utilizado" - -#: src/app/main/data/workspace.cljs -msgid "errors.clipboard-not-implemented" -msgstr "Seu navegador não pode fazer esta operação" - -#: src/app/main/ui/dashboard/grid.cljs -msgid "ds.updated-at" -msgstr "Atualizado: %s" - -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs -msgid "ds.confirm-title" -msgstr "Tem certeza?" - -#: src/app/main/ui/confirm.cljs -msgid "ds.confirm-ok" -msgstr "Ok" - -#: src/app/main/ui/confirm.cljs -msgid "ds.confirm-cancel" +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.cancel" msgstr "Cancelar" -#: src/app/main/ui/settings/options.cljs -msgid "dashboard.theme-change" -msgstr "Tema da UI" +msgid "labels.centered" +msgstr "Centro" -#: src/app/main/ui/settings/options.cljs -msgid "dashboard.select-ui-language" -msgstr "Selecionar idioma da UI" - -#: src/app/main/ui/auth/register.cljs -msgid "auth.login-here" -msgstr "Entrar aqui" - -#: src/app/main/ui/settings/profile.cljs -msgid "dashboard.your-name" -msgstr "Seu nome" - -#: src/app/main/ui/settings/profile.cljs -msgid "dashboard.your-email" -msgstr "E-mail" - -#: src/app/main/ui/settings.cljs -msgid "dashboard.your-account-title" -msgstr "Sua conta" - -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs -msgid "dashboard.update-settings" -msgstr "Atualizar configurações" - -#: src/app/main/ui/dashboard/search.cljs -msgid "dashboard.type-something" -msgstr "Digite para pesquisar resultados" - -#: src/app/main/ui/dashboard/search.cljs -msgid "dashboard.title-search" -msgstr "Resultados da pesquisa" - -#: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.team-projects" -msgstr "Projetos da equipe" - -#: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.team-members" -msgstr "Membros da equipe" - -#: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.team-info" -msgstr "Informação da equipe" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.switch-team" -msgstr "Trocar de equipe" - -#: src/app/main/ui/dashboard/project_menu.cljs -msgid "dashboard.success-move-project" -msgstr "Seu projeto foi movido com sucesso" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.success-move-files" -msgstr "Seus arquivos foram movidos com sucesso" - -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.success-move-file" -msgstr "Seu arquivo foi movido com sucesso" - -#: src/app/main/ui/dashboard/project_menu.cljs -msgid "dashboard.success-duplicate-project" -msgstr "Seu projeto foi duplicado com sucesso" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.success-duplicate-file" -msgstr "Seu arquivo foi duplicado com sucesso" - -#: src/app/main/ui/dashboard/project_menu.cljs -msgid "dashboard.success-delete-project" -msgstr "Seu projeto foi excluído com sucesso" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.success-delete-file" -msgstr "Seu arquivo foi excluído com sucesso" - -#: src/app/main/ui/dashboard/grid.cljs -msgid "dashboard.show-all-files" -msgstr "Mostrar todos os arquivos" - -#: src/app/main/ui/settings/options.cljs -msgid "dashboard.select-ui-theme" -msgstr "Selecionar tema" - -#: src/app/main/ui/dashboard/search.cljs -msgid "dashboard.searching-for" -msgstr "Pesquisando por “%s“…" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.search-placeholder" -msgstr "Pesquisar…" - -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.remove-shared" -msgstr "Remover como Biblioteca Compartilhada" - -#: src/app/main/ui/settings/profile.cljs -msgid "dashboard.remove-account" -msgstr "Quer remover sua conta?" - -#: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.promote-to-owner" -msgstr "Promover a proprietário" - -#: src/app/main/ui/dashboard/projects.cljs -msgid "dashboard.projects-title" -msgstr "Projetos" - -#: src/app/main/ui/dashboard/project_menu.cljs -msgid "dashboard.pin-unpin" -msgstr "Fixar/Desafixar" +#: src/app/main/ui/dashboard/comments.cljs +msgid "labels.comments" +msgstr "Comentários" #: src/app/main/ui/settings/password.cljs -msgid "dashboard.password-change" -msgstr "Alterar senha" +msgid "labels.confirm-password" +msgstr "Confirmar senha" -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.open-in-new-tab" -msgstr "Abrir arquivo em uma nova guia" +msgid "labels.content" +msgstr "Conteúdo" -#: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.num-of-members" -msgstr "%s membros" +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "labels.create" +msgstr "Criar" -#: src/app/main/ui/settings/password.cljs -msgid "dashboard.notifications.password-saved" -msgstr "Senha salva com sucesso!" +#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs +msgid "labels.create-team" +msgstr "Criar nova equipe" -#: src/app/main/ui/auth/verify_token.cljs -msgid "dashboard.notifications.email-verified-successfully" -msgstr "Seu endereço de e-mail foi verificado com sucesso" +#: src/app/main/ui/dashboard/team_form.cljs +msgid "labels.create-team.placeholder" +msgstr "Insira o nome da nova equipe" -#: src/app/main/ui/auth/verify_token.cljs -msgid "dashboard.notifications.email-changed-successfully" -msgstr "Seu endereço de e-mail foi atualizado com sucesso" +msgid "labels.custom-fonts" +msgstr "Fontes personalizadas" -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.no-projects-placeholder" -msgstr "Projetos fixados aparecerão aqui" - -#: src/app/main/ui/dashboard/search.cljs -msgid "dashboard.no-matches-for" -msgstr "Nenhuma correspondência encontrada para “%s“" - -#: src/app/main/ui/dashboard/projects.cljs -msgid "dashboard.new-project" -msgstr "+ Novo projeto" - -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs -msgid "dashboard.new-file" -msgstr "+ Novo arquivo" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.move-to-other-team" -msgstr "Mover para outra equipe" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.move-to-multi" -msgstr "Mover %s arquivos para" +#: src/app/main/ui/settings/sidebar.cljs +msgid "labels.dashboard" +msgstr "Painel" #: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.move-to" -msgstr "Mover para" +msgid "labels.delete" +msgstr "Excluir" -#: src/app/main/ui/dashboard/grid.cljs -msgid "dashboard.loading-files" -msgstr "carregando seus arquivos…" +#: src/app/main/ui/comments.cljs +msgid "labels.delete-comment" +msgstr "Excluir comentário" -#: src/app/main/ui/dashboard/libraries.cljs -msgid "dashboard.libraries-title" -msgstr "Bibliotecas Compartilhadas" +#: src/app/main/ui/comments.cljs +msgid "labels.delete-comment-thread" +msgstr "Excluir tópico" -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.leave-team" +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.delete-multi-files" +msgstr "Excluir %s arquivos" + +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.drafts" +msgstr "Rascunhos" + +#: src/app/main/ui/comments.cljs +msgid "labels.edit" +msgstr "Editar" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.editor" +msgstr "Editor" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.email" +msgstr "E-mail" + +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.feedback-disabled" +msgstr "Feedback desativado" + +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.feedback-sent" +msgstr "Feedback enviado" + +msgid "labels.font-family" +msgstr "Família da fonte" + +msgid "labels.font-providers" +msgstr "Provedores de fonte" + +msgid "labels.font-variant" +msgstr "Estilo" + +msgid "labels.fonts" +msgstr "Fontes" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.give-feedback" +msgstr "Enviar feedback" + +msgid "labels.icons" +msgstr "Ícones" + +msgid "labels.images" +msgstr "Imagens" + +msgid "labels.installed-fonts" +msgstr "Fontes instaladas" + +#: src/app/main/ui/static.cljs +msgid "labels.internal-error.desc-message" +msgstr "" +"Algo errado aconteceu. Repita a operação e se o problema persistir, entre " +"em contato com o suporte." + +#: src/app/main/ui/static.cljs +msgid "labels.internal-error.main-message" +msgstr "Erro interno" + +#: src/app/main/ui/settings/options.cljs +msgid "labels.language" +msgstr "Linguagem" + +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.logout" +msgstr "Sair" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.members" +msgstr "Membros" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.name" +msgstr "Nome" + +#: src/app/main/ui/settings/password.cljs +msgid "labels.new-password" +msgstr "Nova senha" + +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs +msgid "labels.no-comments-available" +msgstr "Você não tem notificações de comentários pendentes" + +#: src/app/main/ui/static.cljs +msgid "labels.not-found.auth-info" +msgstr "Você está conectado como" + +#: src/app/main/ui/static.cljs +msgid "labels.not-found.desc-message" +msgstr "Esta página não existe ou você não tem permissão para acessá-la." + +#: src/app/main/ui/static.cljs +msgid "labels.not-found.main-message" +msgstr "Oops!" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.num-of-files" +msgid_plural "labels.num-of-files" +msgstr[0] "1 arquivo" +msgstr[1] "%s arquivos" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.num-of-projects" +msgid_plural "labels.num-of-projects" +msgstr[0] "1 projeto" +msgstr[1] "% projetos" + +#: src/app/main/ui/settings/password.cljs +msgid "labels.old-password" +msgstr "Senha antiga" + +#: src/app/main/ui/workspace/comments.cljs +msgid "labels.only-yours" +msgstr "Apenas seu" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.owner" +msgstr "Proprietário" + +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.password" +msgstr "Senha" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.permissions" +msgstr "Permissões" + +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.profile" +msgstr "Perfil" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.projects" +msgstr "Projetos" + +msgid "labels.recent" +msgstr "Recente" + +#: src/app/main/ui/settings/sidebar.cljs +msgid "labels.release-notes" +msgstr "Notas de lançamento" + +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.remove" +msgstr "Excluir" + +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.rename" +msgstr "Renomear" + +#: src/app/main/ui/dashboard/team_form.cljs +msgid "labels.rename-team" +msgstr "Renomear equipe" + +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +msgid "labels.retry" +msgstr "Tentar novamente" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.role" +msgstr "Cargo" + +msgid "labels.save" +msgstr "Salvar" + +msgid "labels.search-font" +msgstr "Buscar fonte" + +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.send" +msgstr "Enviar" + +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.sending" +msgstr "Enviando..." + +msgid "labels.upload" +msgstr "Carregar" + +msgid "labels.upload-custom-fonts" +msgstr "Carregar fontes personalizadas" + +msgid "labels.uploading" +msgstr "Carregando..." + +msgid "modals.delete-font.message" +msgstr "" +"Tem certeza que deseja excluir essa fonte? Ela não será carregada se for " +"utilizada em um arquivo." + +msgid "modals.delete-font.title" +msgstr "Excluindo fonte" + +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.invite-member-confirm.accept" +msgstr "Enviar convite" + +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.invite-member.title" +msgstr "Convidar para se juntar à equipe" + +msgid "modals.leave-and-reassign.forbiden" +msgstr "" +"Você não pode deixar a equipe se não houver outro membro para promover a " +"proprietário. Você pode excluir a equipe." + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-and-reassign.hint2" +msgstr "Selecione outro membro para promover antes de sair" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-and-reassign.promote-and-leave" +msgstr "Promover e sair" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-and-reassign.select-memeber-to-promote" +msgstr "Selecione um membro para promover" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-and-reassign.title" +msgstr "Selecione um membro para promover" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-confirm.accept" msgstr "Sair da equipe" #: src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.create-new-team" -msgstr "+ Criar nova equipe" +msgid "modals.leave-confirm.message" +msgstr "Tem certeza de que deseja sair deste equipe?" #: src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.delete-team" -msgstr "Deletar equipe" +msgid "modals.leave-confirm.title" +msgstr "Saindo da equipe" #: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.invite-profile" -msgstr "Convidar para a equipe" +msgid "modals.promote-owner-confirm.accept" +msgstr "Promover" -#: src/app/main/ui/dashboard/grid.cljs -msgid "dashboard.empty-files" -msgstr "Você ainda não tem arquivos aqui" +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.promote-owner-confirm.message" +msgstr "Tem certeza de que deseja promover este usuário a proprietário?" -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.duplicate-multi" -msgstr "Duplicar %s arquivos" - -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.duplicate" -msgstr "Duplicar" - -msgid "dashboard.draft-title" -msgstr "Rascunho" - -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs -msgid "dashboard.copy-suffix" -msgstr "(copiar)" - -#: src/app/main/ui/settings/profile.cljs -msgid "dashboard.change-email" -msgstr "Alterar e-mail" - -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.add-shared" -msgstr "Adicionar como Biblioteca Compartilhada" - -#: src/app/main/ui/auth/register.cljs -msgid "auth.verification-email-sent" -msgstr "Enviamos um e-mail de verificação para" - -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement" -msgstr "" -"Ao criar uma nova conta, você concorda com nossos termos de serviço e " -"política de privacidade." - -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "É de graça, é código aberto" - -#: src/app/main/ui/auth.cljs -msgid "auth.sidebar-tagline" -msgstr "A solução de código aberto para design e prototipagem." - -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-title" -msgstr "Criar uma conta" - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.register-submit" -msgstr "Criar uma conta" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.register" -msgstr "Ainda não tem uma conta?" - -#: src/app/main/ui/auth/recovery.cljs -msgid "auth.recovery-submit" -msgstr "Mudar sua senha" - -#: src/app/main/ui/auth/recovery_request.cljs -msgid "auth.recovery-request-title" -msgstr "Esqueceu a senha?" - -#: src/app/main/ui/auth/recovery_request.cljs -msgid "auth.recovery-request-subtitle" -msgstr "Enviaremos para você um e-mail com instruções" - -#: src/app/main/ui/auth/recovery_request.cljs -msgid "auth.recovery-request-submit" -msgstr "Recuperar senha" - -#: src/app/main/ui/auth/register.cljs -msgid "auth.password-length-hint" -msgstr "Pelo menos 8 caracteres" - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.password" -msgstr "Senha" - -#: src/app/main/ui/auth/verify_token.cljs -msgid "auth.notifications.team-invitation-accepted" -msgstr "Entrou para a equipe com sucesso" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "modals.update-remote-component.cancel" -msgstr "Cancelar" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "modals.update-remote-component.accept" -msgstr "Atualizar componente" - -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.remove-shared-confirm.message" -msgstr "Remover “%s” como Biblioteca Compartilhada" +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.promote-owner-confirm.title" +msgstr "Promover a proprietário" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.accept" msgstr "Remover como Biblioteca Compartilhada" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.your-penpot" -msgstr "Sua Penpot" +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.remove-shared-confirm.message" +msgstr "Remover “%s” como Biblioteca Compartilhada" -#: src/app/main/data/dashboard.cljs -msgid "dashboard.new-project-prefix" -msgstr "Novo projeto" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "modals.update-remote-component.accept" +msgstr "Atualizar componente" -#: src/app/main/data/dashboard.cljs -msgid "dashboard.new-file-prefix" -msgstr "Novo arquivo" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "modals.update-remote-component.cancel" +msgstr "Cancelar" -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.default-team-name" -msgstr "Sua Penpot" +#: src/app/main/ui/dashboard/fonts.cljs +msgid "title.dashboard.font-providers" +msgstr "Provedores de fonte - %s - Penpot" -#, markdown -msgid "dashboard.fonts.hero-text1" -msgstr "" -"Qualquer fonte da web que você carregar aqui será adicionada à lista de " -"família de fontes disponível nas propriedades de texto dos arquivos desta " -"equipe. As fontes com o mesmo nome de família de fontes serão agrupadas como " -"uma **única família de fontes**. Você pode fazer upload de fontes com os " -"seguintes formatos: **TTF, OTF e WOFF** (apenas uma será necessária)." +#: src/app/main/ui/dashboard/fonts.cljs +msgid "title.dashboard.fonts" +msgstr "Fontes - %s - Penpot" \ No newline at end of file diff --git a/frontend/translations/ro.po b/frontend/translations/ro.po index a83d86fae..6823ed273 100644 --- a/frontend/translations/ro.po +++ b/frontend/translations/ro.po @@ -2,1877 +2,346 @@ msgid "" msgstr "" "PO-Revision-Date: 2021-05-17 21:32+0000\n" "Last-Translator: George Lemon \n" -"Language-Team: Romanian \n" +"Language-Team: Romanian " +"\n" "Language: ro\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2;\n" "X-Generator: Weblate 4.7-dev\n" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.luminosity" -msgstr "Luminozitate" +#: src/app/main/ui/auth/register.cljs +msgid "auth.already-have-account" +msgstr "Ai deja un cont?" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.check-your-email" +msgstr "" +"Verificați adresa de e-mail, faceți click pe link-ul de verificare și " +"începeți să utilizați Penpot." + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.confirm-password" +msgstr "Confirmați parola" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.create-demo-account" +msgstr "Creează un cont demo" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.create-demo-profile" +msgstr "Vrei doar să încerci?" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.demo-warning" +msgstr "" +"Acesta este un DEMO, NU UTILIZAȚI pentru lucrări reale, întrucât proiectele " +"vor fi șterse periodic." + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.email" +msgstr "Adresă E-mail" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.forgot-password" +msgstr "Ai uitat parola?" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.fullname" +msgstr "Numele complet" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.go-back-to-login" +msgstr "Întoarce-te!" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.login-here" +msgstr "Conectează-te" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-submit" +msgstr "Intră în cont" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-subtitle" +msgstr "Introduceți detaliile dvs. mai jos" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-title" +msgstr "Mă bucur să te văd din nou!" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-github-submit" +msgstr "Conectează-te cu Github" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-gitlab-submit" +msgstr "Conectează-te cu Gitlab" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-google-submit" +msgstr "Conectează-te cu Google" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-ldap-submit" +msgstr "Conectează-te cu LDAP" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-oidc-submit" +msgstr "Conectează-te cu OpenID (SSO)" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.new-password" +msgstr "Introduceți o parolă nouă" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.notifications.invalid-token-error" +msgstr "Codul de recuperare nu este valid." + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.notifications.password-changed-succesfully" +msgstr "Parola a fost schimbată cu success" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.notifications.profile-not-verified" +msgstr "" +"Profilul nu este verificat, vă rugăm să verificați profilul înainte de a " +"continua." + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.notifications.recovery-token-sent" +msgstr "Un link de recuperare a parolei s-a trimis pe e-mail." + +#: src/app/main/ui/auth/verify_token.cljs +msgid "auth.notifications.team-invitation-accepted" +msgstr "Te-ai alăturat echipei cu success" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.password" +msgstr "Parola" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.password-length-hint" +msgstr "Cel puțin 8 caractere" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-submit" +msgstr "Recuperare Parolă" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-subtitle" +msgstr "Îți vom trimite un email cu instrucțiunile" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-title" +msgstr "Ai uitat parola?" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.recovery-submit" +msgstr "Schimbă parola" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.register" +msgstr "Nu aveți încă un cont?" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.register-submit" +msgstr "Creează un cont" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.register-subtitle" +msgstr "Este gratuit, este Open Source" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.register-title" +msgstr "Creează un cont" + +#: src/app/main/ui/auth.cljs +msgid "auth.sidebar-tagline" +msgstr "Soluția open-source pentru proiectare design și prototipare." + +#: src/app/main/ui/auth/register.cljs +msgid "auth.terms-privacy-agreement" +msgstr "" +"Atunci când creați un cont nou, sunteți de acord cu termenii noștri de " +"servicii și politica de confidențialitate." -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.lighten" -msgstr "Luminat" +#: src/app/main/ui/auth/register.cljs +msgid "auth.verification-email-sent" +msgstr "Am trimis un email de verificare la" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.hard-light" -msgstr "Lumină Puternică" +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.add-shared" +msgstr "Adăugați ca bibliotecă partajată" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.darken" -msgstr "Întunecat" +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.change-email" +msgstr "Schimbă adresa de e-mail" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.title" -msgstr "Layer" +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +msgid "dashboard.copy-suffix" +msgstr "(copiază)" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.soft-light" -msgstr "Soft light" +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.create-new-team" +msgstr "+ Creează o nouă echipă" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.screen" -msgstr "Screen" +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.default-team-name" +msgstr "Contul Penpot" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.saturation" -msgstr "Saturaţie" +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.delete-team" +msgstr "Șterge echipa" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.overlay" -msgstr "Overlay" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.normal" -msgstr "Normal" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.hue" -msgstr "Hue" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.exclusion" -msgstr "Exclusion" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.difference" -msgstr "Difference" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.color-dodge" -msgstr "Color dodge" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.color-burn" -msgstr "Color burn" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.color" -msgstr "Culoare" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.square" -msgstr "Pătrat" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.row" -msgstr "Rânduri" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.width" -msgstr "Lăţime" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.use-default" -msgstr "Foloseşte default" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.top" -msgstr "Sus" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.stretch" -msgstr "Întinde" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.right" -msgstr "Dreapta" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.left" -msgstr "Stânga" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.center" -msgstr "Centru" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.bottom" -msgstr "Jos" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type" -msgstr "Tip" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.size" -msgstr "Mărime" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.set-default" -msgstr "Setează ca predefinit" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.rows" -msgstr "Rânduri" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.margin" -msgstr "Margine" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.height" -msgstr "Înălţime" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.columns" -msgstr "Coloane" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.column" -msgstr "Coloane" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.auto" -msgstr "Auto" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.fill" -msgstr "Umple" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs -msgid "workspace.options.exporting-object" -msgstr "Se exportă…" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs -msgid "workspace.options.export.suffix" -msgstr "Sufix" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs -msgid "workspace.options.export-object" -msgstr "Exportă forma obiectului" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs -msgid "workspace.options.export" -msgstr "Exportă" - -#: src/app/main/ui/workspace/sidebar/options.cljs -msgid "workspace.options.design" -msgstr "Design" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs -msgid "workspace.options.component" -msgstr "Componentă" - -#: src/app/main/ui/workspace/sidebar/options/page.cljs -msgid "workspace.options.canvas-background" -msgstr "Fundal canvas" - -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs -msgid "workspace.options.blur-options.title.multiple" -msgstr "Selecţie de blur" - -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs -msgid "workspace.options.blur-options.title.group" -msgstr "Blur pe grup" - -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs -msgid "workspace.options.blur-options.title" -msgstr "Blur" - -msgid "workspace.options.blur-options.layer-blur" -msgstr "Strat" - -msgid "workspace.options.blur-options.background-blur" -msgstr "Fundal" - -msgid "workspace.library.own" -msgstr "Colecţiile mele" - -msgid "workspace.library.libraries" -msgstr "Colecţii" - -msgid "workspace.library.all" -msgstr "Toate colecţiile" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.updates" -msgstr "ACTUALIZĂRI" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.update" -msgstr "Actualizaţi" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.typography" -msgstr "%s tipografice" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.libraries.text.multiple-typography-tooltip" -msgstr "Decupleză tipograficele" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.libraries.text.multiple-typography" -msgstr "Tipografii" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.shared-libraries" -msgstr "COLECŢII DISTRIBUITE" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.search-shared-libraries" -msgstr "Caută în colecţiile distribuite" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.no-shared-libraries-available" -msgstr "Nu există Colecţii Distribuite" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.no-matches-for" -msgstr "Nu au fost găsite asemănări pentru “%s“" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.no-libraries-need-sync" -msgstr "Nu există Colecţii Distribuite ce necesită update" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.library" -msgstr "COLECŢIE" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.libraries" -msgstr "COLECŢII" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.in-this-file" -msgstr "COLECŢIILE FIŞIERULUI" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.graphics" -msgstr "%s obiecte grafice" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.file-library" -msgstr "Colecţie" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.components" -msgstr "%s componente" - -#: src/app/main/ui/workspace/colorpalette.cljs -msgid "workspace.libraries.colors.small-thumbnails" -msgstr "Thumbnail mic" - -#: src/app/main/ui/workspace/colorpicker.cljs -msgid "workspace.libraries.colors.save-color" -msgstr "Salvează stilul culorii" - -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs -msgid "workspace.libraries.colors.recent-colors" -msgstr "Culori recente" - -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs -msgid "workspace.libraries.colors.file-library" -msgstr "Colecţie" - -#: src/app/main/ui/workspace/colorpalette.cljs -msgid "workspace.libraries.colors.big-thumbnails" -msgstr "Thumbnail mare" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.colors" -msgstr "%s culori" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.add" -msgstr "Adaugă" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.viewer" -msgstr "Vizualizare (%s)" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.unsaved" -msgstr "Modificări nesalvate" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.saving" -msgstr "Salvare în curs" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.saved" -msgstr "Salvat" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.save-error" -msgstr "Eroare în timpul salvării" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-rules" -msgstr "Afişează Liniarul" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-palette" -msgstr "Afişează paleta de culori" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-layers" -msgstr "Afişează layere" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-grid" -msgstr "Afişează sistemul grid" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-assets" -msgstr "Afişează asset-uri" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.select-all" -msgstr "Selectează tot" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-rules" -msgstr "Ascunde ghidul liniar" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-palette" -msgstr "Ascunde paleta de culori" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-layers" -msgstr "Ascunde layere" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-grid" -msgstr "Ascunde grila de ghidaj" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-assets" -msgstr "Ascunde obiectele" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.enable-snap-grid" -msgstr "Aliniază per grilă" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.enable-scale-text" -msgstr "Activează scalarea textului" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.enable-dynamic-alignment" -msgstr "Aliniere dinamică" +msgid "dashboard.draft-title" +msgstr "Draft" + +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.duplicate" +msgstr "Duplicat" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.duplicate-multi" +msgstr "Duplicați %s fișiere" + +#: src/app/main/ui/dashboard/grid.cljs +msgid "dashboard.empty-files" +msgstr "Încă nu aveți fișiere aici" #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Fonturile încărcate vor fi adăugate la familia de fonturi disponibilă " "acestei echipe. Font-urile cu același nume vor fi grupate ca **o singură " -"familie de font-uri**. Tipurile de fişiere acceptate: **TTF, OTF și WOFF** (" -"se poate urca doar un singur tip)." +"familie de font-uri**. Tipurile de fişiere acceptate: **TTF, OTF și WOFF** " +"(se poate urca doar un singur tip)." -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.disable-scale-text" -msgstr "Dezactivează dimensionarea textului" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.disable-dynamic-alignment" -msgstr "Dezactivează alinierea dinamică" - -#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs -msgid "workspace.gradients.radial" -msgstr "Gradient radial" - -#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs -msgid "workspace.gradients.linear" -msgstr "Gradient liniar" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.text-transform" -msgstr "Transformare Text" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/handoff/attributes/text.cljs, src/app/main/ui/handoff/attributes/text.cljs -msgid "workspace.assets.typography.sample" -msgstr "Ag" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.line-height" -msgstr "Înălţime linie" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.letter-spacing" -msgstr "Spaţiere Litere" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.go-to-edit" -msgstr "Editează fişierul în Colecţia de stiluri" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.font-variant-id" -msgstr "Variante" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.font-size" -msgstr "Dimensiune" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.font-id" -msgstr "Font" - -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.typography" -msgstr "Tipografii" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.shared" -msgstr "DISTRIBUITE" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.selected-count" -msgid_plural "workspace.assets.selected-count" -msgstr[0] "%s obiect selectat" -msgstr[1] "%s obiecte selectate" -msgstr[2] "%s obiecte selectate" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.search" -msgstr "Caută obiecte" - -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.rename" -msgstr "Redenumeşte" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.not-found" -msgstr "Nu au fost găsite obiecte" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.libraries" -msgstr "Colecţii" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.group-name" -msgstr "Nume grup" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.group" -msgstr "Grup" - -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.graphics" -msgstr "Obiecte grafice" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.file-library" -msgstr "Colecţii" - -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.edit" -msgstr "Editează" - -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.duplicate" -msgstr "Duplică" - -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.delete" -msgstr "Şterge" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.create-group-hint" -msgstr "Obiectele vor fi numite automat ca \"nume grup / nume obiect\"" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.create-group" -msgstr "Creează grup" - -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.components" -msgstr "Componente" - -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.colors" -msgstr "Culori" - -msgid "workspace.assets.box-filter-graphics" -msgstr "Obiecte grafice" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.box-filter-all" -msgstr "Toate obiectele" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.assets" -msgstr "Obiecte" - -#: src/app/main/ui/workspace/sidebar/align.cljs -msgid "workspace.align.vtop" -msgstr "Aliniază sus" - -#: src/app/main/ui/workspace/sidebar/align.cljs -msgid "workspace.align.vdistribute" -msgstr "Introdu spaţierea pe verticală" - -#: src/app/main/ui/workspace/sidebar/align.cljs -msgid "workspace.align.vcenter" -msgstr "Aliniază vertical" - -#: src/app/main/ui/workspace/sidebar/align.cljs -msgid "workspace.align.vbottom" -msgstr "Aliniază jos" - -#: src/app/main/ui/workspace/sidebar/align.cljs -msgid "workspace.align.hright" -msgstr "Aliniază la dreapta" - -#: src/app/main/ui/workspace/sidebar/align.cljs -msgid "workspace.align.hleft" -msgstr "Aliniază la stânga" - -#: src/app/main/ui/workspace/sidebar/align.cljs -msgid "workspace.align.hdistribute" -msgstr "Introdu spaţierea orizontală" - -#: src/app/main/ui/workspace/sidebar/align.cljs -msgid "workspace.align.hcenter" -msgstr "Aliniază orizontal" - -#: src/app/main/ui/viewer/header.cljs -msgid "viewer.header.sitemap" -msgstr "Harta site-ului" - -#: src/app/main/ui/viewer/header.cljs -msgid "viewer.header.show-interactions-on-click" -msgstr "Afişează interacţiunile la click" - -#: src/app/main/ui/viewer/header.cljs -msgid "viewer.header.show-interactions" -msgstr "Afişează interacţiunile" - -#: src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs -msgid "viewer.header.share.title" -msgstr "Distribuie link" - -#: src/app/main/ui/viewer/header.cljs -msgid "viewer.header.share.subtitle" -msgstr "Prin acest link se permite accesul public" - -#: src/app/main/ui/viewer/header.cljs -msgid "viewer.header.share.remove-link" -msgstr "Elimină link" - -#: src/app/main/ui/viewer/header.cljs -msgid "viewer.header.share.placeholder" -msgstr "Link-ul distribuit va apărea aici" - -#: src/app/main/ui/viewer/header.cljs -msgid "viewer.header.share.create-link" -msgstr "Creează link" - -#: src/app/main/ui/viewer/header.cljs -msgid "viewer.header.share.copy-link" -msgstr "Copiază link" - -#: src/app/main/ui/viewer/header.cljs -msgid "viewer.header.fullscreen" -msgstr "Ecran complet" - -#: src/app/main/ui/viewer/header.cljs -msgid "viewer.header.edit-page" -msgstr "Editează pagina" - -#: src/app/main/ui/viewer/header.cljs -msgid "viewer.header.dont-show-interactions" -msgstr "Nu afişa interacţiunile" - -#: src/app/main/ui/handoff.cljs, src/app/main/ui/viewer.cljs -msgid "viewer.frame-not-found" -msgstr "Fereastra nu există." - -#: src/app/main/ui/handoff.cljs, src/app/main/ui/viewer.cljs -msgid "viewer.empty-state" -msgstr "Nu există ferestre disponibile pe această pagină." - -#: src/app/main/ui/workspace.cljs -msgid "title.workspace" -msgstr "%s - Penpot" - -#: src/app/main/ui/handoff.cljs, src/app/main/ui/viewer.cljs -msgid "title.viewer" -msgstr "%s - Vizualizare - Penpot" - -#: src/app/main/ui/dashboard/team.cljs -msgid "title.team-settings" -msgstr "Setări - %s - Penpot" - -#: src/app/main/ui/dashboard/team.cljs -msgid "title.team-members" -msgstr "Membri - %s - Penpot" - -#: src/app/main/ui/settings/profile.cljs -msgid "title.settings.profile" -msgstr "Profil - Penpot" - -#: src/app/main/ui/settings/password.cljs -msgid "title.settings.password" -msgstr "Parolă - Penpot" - -#: src/app/main/ui/settings/options.cljs -msgid "title.settings.options" -msgstr "Setări - Penpot" - -#: src/app/main/ui/settings/feedback.cljs -msgid "title.settings.feedback" -msgstr "Oferă feedback - Penpot" - -#: src/app/main/ui/dashboard/libraries.cljs -msgid "title.dashboard.shared-libraries" -msgstr "Colecţii Distribuite - %s - Penpot" - -#: src/app/main/ui/dashboard/search.cljs -msgid "title.dashboard.search" -msgstr "Caută - %s - Penpot" - -#: src/app/main/ui/dashboard/projects.cljs -msgid "title.dashboard.projects" -msgstr "Proiecte - %s - Penpot" - -#: src/app/main/ui/dashboard/files.cljs -msgid "title.dashboard.files" -msgstr "%s - Penpot" - -#: src/app/main/ui/auth/recovery.cljs -msgid "profile.recovery.go-to-login" -msgstr "Mergi la autentificare" - -#: src/app/main/ui/settings/change_email.cljs -msgid "notifications.validation-email-sent" +#, markdown +msgid "dashboard.fonts.hero-text2" msgstr "" -"Un e-mail de verificare a fost trimis la %s. Verifică-ţi adresa de e-mail!" - -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs -msgid "notifications.profile-saved" -msgstr "Profil salvat cu succes!" +"Ar trebui să urcați doar fonturi la care aveți drept de folosință sau " +"fonturi personale. Află mai multe despre Dreptul de conținut la secțiunea " +"[Termenii și Condițiile Penpot](https://penpot.app/terms.html). De " +"asemenea, vă recomandăm să citiți și despre [licențierea fonturilor](2)." #: src/app/main/ui/dashboard/team.cljs -msgid "notifications.invitation-email-sent" -msgstr "Invitaţie trimisă cu succes" +msgid "dashboard.invite-profile" +msgstr "Invită o echipă" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "modals.update-remote-component.message" -msgstr "Actualizaţi o componentă dintr-o colecţie distribuită" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "modals.update-remote-component.hint" -msgstr "" -"Actualizezi o componentă dintr-o colecţie distribuită. Pot fi afectate alte " -"fişiere ce o folosesc." - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "modals.update-remote-component.cancel" -msgstr "Anulează" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "modals.update-remote-component.accept" -msgstr "Actualizare componentă" - -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.remove-shared-confirm.message" -msgstr "Șterge “%s” din Colecții Distribuite" - -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.remove-shared-confirm.hint" -msgstr "" -"O dată șters din Colecțiile Distribuite, toate fișierele acestei colecții nu " -"vor mai fi disponibile altora." - -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.remove-shared-confirm.accept" -msgstr "Elimină din Colecțiile Distribuite" - -#: src/app/main/ui/dashboard/team.cljs -msgid "modals.promote-owner-confirm.title" -msgstr "Confirmare promovare" - -#: src/app/main/ui/dashboard/team.cljs -msgid "modals.promote-owner-confirm.message" -msgstr "" -"Ești sigur că dorești să promovezi acest utilizator ca deținător al echipei?" - -#: src/app/main/ui/dashboard/team.cljs -msgid "modals.promote-owner-confirm.accept" -msgstr "Promovează" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "modals.leave-confirm.title" -msgstr "Părăsire echipă în curs" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "modals.leave-confirm.message" -msgstr "Ești sigur că dorești să părăsești această echipă?" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "modals.leave-confirm.accept" +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.leave-team" msgstr "Părăsește echipa" -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "modals.leave-and-reassign.title" -msgstr "Selectează un membru pentru promovare" +#: src/app/main/ui/dashboard/libraries.cljs +msgid "dashboard.libraries-title" +msgstr "Librării Partajate" -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "modals.leave-and-reassign.select-memeber-to-promote" -msgstr "Selectează un membru pentru promovare" +#: src/app/main/ui/dashboard/grid.cljs +msgid "dashboard.loading-files" +msgstr "încărcarea fișierelor …" -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "modals.leave-and-reassign.hint1" -msgstr "Ești administratorul echipei %s." - -#: src/app/main/ui/dashboard/team.cljs -msgid "modals.invite-member.title" -msgstr "Invită o persoană în echipă" - -#: src/app/main/ui/dashboard/team.cljs -msgid "modals.invite-member-confirm.accept" -msgstr "Trimite invitație" - -#: src/app/main/ui/dashboard/team.cljs -msgid "modals.delete-team-member-confirm.title" -msgstr "Elimină un membru al echipei" - -#: src/app/main/ui/dashboard/team.cljs -msgid "modals.delete-team-member-confirm.accept" -msgstr "Elimină membru" - -#: src/app/main/ui/dashboard/team.cljs -msgid "modals.delete-team-member-confirm.message" -msgstr "Ești sigur că dorești să elimini acest membru din echipă?" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "modals.delete-team-confirm.title" -msgstr "Ștergere echipă în curs" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "modals.delete-team-confirm.message" -msgstr "" -"Ești sigur că dorești să ștergi această echipă? Toate proiectele și " -"fișierele asociate acesteia vor fi permanent șterse." - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "modals.delete-team-confirm.accept" -msgstr "Șterge echipă" - -#: src/app/main/ui/dashboard/project_menu.cljs -msgid "modals.delete-project-confirm.title" -msgstr "Șterge proiect" - -#: src/app/main/ui/dashboard/project_menu.cljs -msgid "modals.delete-project-confirm.message" -msgstr "Ești sigur că dorești să ștergi acest proiect?" - -#: src/app/main/ui/dashboard/project_menu.cljs -msgid "modals.delete-project-confirm.accept" -msgstr "Șterge proiect" - -#: src/app/main/ui/workspace/sidebar/sitemap.cljs -msgid "modals.delete-page.title" -msgstr "Șterge pagină" - -#: src/app/main/ui/workspace/sidebar/sitemap.cljs -msgid "modals.delete-page.body" -msgstr "Ești sigur că dorești să ștergi această pagină?" +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.move-to" +msgstr "Mută la" #: src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.delete-file-multi-confirm.title" -msgstr "Ștergere %s fișeiere în curs" +msgid "dashboard.move-to-multi" +msgstr "Mutați %s fișiere la" #: src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.delete-file-multi-confirm.message" -msgstr "Ești sigur că dorești să ștergi aceste %s fișiere?" +msgid "dashboard.move-to-other-team" +msgstr "Mutați la altă echipă" -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.delete-file-multi-confirm.accept" -msgstr "Șterge fișiere" +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs +msgid "dashboard.new-file" +msgstr "+ Fișier nou" -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.delete-file-confirm.title" -msgstr "Ștergere fișier" +#: src/app/main/data/dashboard.cljs +msgid "dashboard.new-file-prefix" +msgstr "Fișer nou" -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.delete-file-confirm.message" -msgstr "Ești sigur că dorești să ștergi acest fișier?" +#: src/app/main/ui/dashboard/projects.cljs +msgid "dashboard.new-project" +msgstr "+ Proiect nou" -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.delete-file-confirm.accept" -msgstr "Șterge fișier" +#: src/app/main/data/dashboard.cljs +msgid "dashboard.new-project-prefix" +msgstr "Proiect nou" -#: src/app/main/ui/comments.cljs -msgid "modals.delete-comment-thread.title" -msgstr "Șterge conversație" - -#: src/app/main/ui/comments.cljs -msgid "modals.delete-comment-thread.message" -msgstr "" -"Ești sigur că dorești să ștergi această conversație? Toate discuțiile din " -"cadrul subiect vor fi șterse." - -#: src/app/main/ui/comments.cljs -msgid "modals.delete-comment-thread.accept" -msgstr "Șterge conversație" - -#: src/app/main/ui/settings/delete_account.cljs -msgid "modals.delete-account.title" -msgstr "Ești sigur că dorești ștergerea contului?" - -#: src/app/main/ui/settings/delete_account.cljs -msgid "modals.delete-account.info" -msgstr "" -"Prin ștergerea contului, se vor șterge toate proiectele și arhivele tale." - -#: src/app/main/ui/settings/delete_account.cljs -msgid "modals.delete-account.confirm" -msgstr "Confirm ștergerea contului" - -#: src/app/main/ui/settings/delete_account.cljs -msgid "modals.delete-account.cancel" -msgstr "Anulează ștergerea contului" - -#: src/app/main/ui/settings/change_email.cljs -msgid "modals.change-email.title" -msgstr "Schimbă-ți adresa de E-mail" - -#: src/app/main/ui/settings/change_email.cljs -msgid "modals.change-email.submit" -msgstr "Schimbă adresa de e-mail" - -#: src/app/main/ui/settings/change_email.cljs -msgid "modals.change-email.new-email" -msgstr "Mail nou" - -#: src/app/main/ui/settings/change_email.cljs -msgid "modals.change-email.info" -msgstr "Îți vom trimite un email pe adresa “%s” pentru identificare." - -#: src/app/main/ui/settings/change_email.cljs -msgid "modals.change-email.confirm-email" -msgstr "Verifică-ți adresa de e-mail" - -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.add-shared-confirm.message" -msgstr "Adaugă “%s” la Colecții Distribuite" - -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.add-shared-confirm.hint" -msgstr "" -"O dată adăugat la Colecții distribuite, toate fișierele acestei colecții vor " -"deveni disponibile altora." - -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.add-shared-confirm.accept" -msgstr "Adaugă la Colecții distribuite" - -#, permanent -msgid "handoff.attributes.stroke.alignment.outer" -msgstr "Exterior" - -#, permanent -msgid "handoff.attributes.stroke.alignment.inner" -msgstr "Interior" - -#, permanent -msgid "handoff.attributes.stroke.alignment.center" -msgstr "Centru" - -#: src/app/main/ui/handoff/attributes/stroke.cljs -msgid "handoff.attributes.stroke" -msgstr "Linie" - -#: src/app/main/ui/handoff/attributes/shadow.cljs -msgid "handoff.attributes.shadow.shorthand.spread" -msgstr "S" - -#: src/app/main/ui/handoff/attributes/shadow.cljs -msgid "handoff.attributes.shadow.shorthand.offset-y" -msgstr "Y" - -#: src/app/main/ui/handoff/attributes/shadow.cljs -msgid "handoff.attributes.shadow.shorthand.offset-x" -msgstr "X" - -#: src/app/main/ui/handoff/attributes/shadow.cljs -msgid "handoff.attributes.shadow.shorthand.blur" -msgstr "B" - -#: src/app/main/ui/handoff/attributes/shadow.cljs -msgid "handoff.attributes.shadow" -msgstr "Umbră" - -#: src/app/main/ui/handoff/attributes/layout.cljs -msgid "handoff.attributes.layout.width" -msgstr "Lățime" - -#: src/app/main/ui/handoff/attributes/layout.cljs -msgid "handoff.attributes.layout.top" -msgstr "Top" - -#: src/app/main/ui/handoff/attributes/layout.cljs -msgid "handoff.attributes.layout.rotation" -msgstr "Rotație" - -#: src/app/main/ui/handoff/attributes/layout.cljs, src/app/main/ui/handoff/attributes/layout.cljs -msgid "handoff.attributes.layout.radius" -msgstr "Rază" - -#: src/app/main/ui/handoff/attributes/layout.cljs -msgid "handoff.attributes.layout.left" -msgstr "Stânga" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.multiply" -msgstr "Multiplică" - -msgid "workspace.undo.entry.single.color" -msgstr "culoare" - -msgid "workspace.undo.entry.multiple.color" -msgstr "Culori" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.move" -msgstr "Poziţionează" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.ellipse" -msgstr "Elipsă (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.curve" -msgstr "Curbe (%s)" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.unmask" -msgstr "Demaschează" - -#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.paste" -msgstr "Lipeşte" - -#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.mask" -msgstr "Maschează" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.front" -msgstr "Aduceţi în faţă" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.forward" -msgstr "Aduceţi înainte" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.backward" -msgstr "Trimite în urmă" - -msgid "workspace.path.actions.snap-nodes" -msgstr "Trage noduri (%s)" - -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs -msgid "workspace.options.size-presets" -msgstr "Dimensiuni presetate" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.title.multiple" -msgstr "Selection shadows" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.title.group" -msgstr "Group shadow" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.inner-shadow" -msgstr "Inner shadow" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.drop-shadow" -msgstr "Drop shadow" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.selection-stroke" -msgstr "Selection stroke" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.selection-fill" -msgstr "Selection fill" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.select-a-shape" -msgstr "" -"Selectează o formă, o planşă sau grupează pentru a conecta o altă planşă." - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.group-stroke" -msgstr "Group stroke" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.group-fill" -msgstr "Group fill" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.title" -msgstr "Grilă & Layout" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.gutter" -msgstr "Spaţiere" - -msgid "workspace.library.store" -msgstr "Stocaţi colecţiile" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.disable-snap-grid" -msgstr "Dezactivați snap-ul la grilă" - -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs -msgid "title.default" -msgstr "Penpot - Libertate în Design pentru Echipe" - -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs -msgid "settings.multiple" -msgstr "Multiple" - -#: src/app/main/ui/settings/delete_account.cljs -msgid "notifications.profile-deletion-not-allowed" -msgstr "Nu poţi şterge profilul. Reatribuie echipele înainte de a continua." +#: src/app/main/ui/dashboard/search.cljs +msgid "dashboard.no-matches-for" +msgstr "Nu există rezultate pentru “%s“" #: src/app/main/ui/dashboard/sidebar.cljs -msgid "modals.leave-and-reassign.promote-and-leave" -msgstr "Promovează şi părăseşte echipa" +msgid "dashboard.no-projects-placeholder" +msgstr "Proiectele fixate vor apărea aici" -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "modals.leave-and-reassign.hint2" -msgstr "Selectează un membru pentru a-l promova, înainte de a părăsi echipa" +#: src/app/main/ui/auth/verify_token.cljs +msgid "dashboard.notifications.email-changed-successfully" +msgstr "Adresa ta de email a fost actualizată cu success" -msgid "modals.leave-and-reassign.forbiden" -msgstr "" -"Nu puteţi părăsi echipa dacă nu există un alt membru care să devină " -"administrator. Aţi putea şterge echipa." +#: src/app/main/ui/auth/verify_token.cljs +msgid "dashboard.notifications.email-verified-successfully" +msgstr "Adresa ta de email este confirmată" + +#: src/app/main/ui/settings/password.cljs +msgid "dashboard.notifications.password-saved" +msgstr "Parolă actualizată cu success!" #: src/app/main/ui/dashboard/team.cljs -msgid "labels.num-of-projects" -msgid_plural "labels.num-of-projects" -msgstr[0] "1 proiecte" -msgstr[1] "%s proiecte" -msgstr[2] "%s proiecte" +msgid "dashboard.num-of-members" +msgstr "%s membrii" -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.num-of-files" -msgid_plural "labels.num-of-files" -msgstr[0] "1 fişier" -msgstr[1] "%s fişiere" -msgstr[2] "%s fişiere" +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.open-in-new-tab" +msgstr "Deschide fișier într-o pagină nouă" -msgid "handoff.attributes.typography.text-transform.titlecase" -msgstr "Title Case" - -msgid "handoff.attributes.typography.text-decoration.strikethrough" -msgstr "Strikethrough" - -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.remove-shared" -msgstr "Elimină ca şi Colecţie Distribuită" - -#: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.promote-to-owner" -msgstr "Promovează la administrator" +#: src/app/main/ui/settings/password.cljs +msgid "dashboard.password-change" +msgstr "Schimbă parola" #: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Pin/Unpin" -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.default-team-name" -msgstr "Contul Penpot" - -msgid "workspace.viewport.click-to-close-path" -msgstr "Click pentru a închide calea" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.update" -msgstr "Actualizează" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.there-are-updates" -msgstr "Există actualizări în colecţiile distribuite" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.dismiss" -msgstr "Renunţă" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.title" -msgstr "Istoric" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.unknown" -msgstr "Operaţiune terminată %s" - -msgid "workspace.undo.entry.single.typography" -msgstr "obiect tipografic" - -msgid "workspace.undo.entry.single.text" -msgstr "text" - -msgid "workspace.undo.entry.single.shape" -msgstr "formă" - -msgid "workspace.undo.entry.single.rect" -msgstr "dreptunghi" - -msgid "workspace.undo.entry.single.path" -msgstr "cale" - -msgid "workspace.undo.entry.single.page" -msgstr "pagină" - -msgid "workspace.undo.entry.single.multiple" -msgstr "obiect" - -msgid "workspace.undo.entry.single.media" -msgstr "obiect grafic" - -msgid "workspace.undo.entry.single.image" -msgstr "imagine" - -msgid "workspace.undo.entry.single.group" -msgstr "grup" - -msgid "workspace.undo.entry.single.frame" -msgstr "planşă de lucru" - -msgid "workspace.undo.entry.single.curve" -msgstr "curbă" - -msgid "workspace.undo.entry.single.component" -msgstr "componentă" - -msgid "workspace.undo.entry.single.circle" -msgstr "cerc" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.new" -msgstr "Nou %s" - -msgid "workspace.undo.entry.multiple.typography" -msgstr "obiecte tipografice" - -msgid "workspace.undo.entry.multiple.text" -msgstr "text" - -msgid "workspace.undo.entry.multiple.shape" -msgstr "forme" - -msgid "workspace.undo.entry.multiple.rect" -msgstr "dreptunghiuri" - -msgid "workspace.undo.entry.multiple.path" -msgstr "căi" - -msgid "workspace.undo.entry.multiple.page" -msgstr "pagini" - -msgid "workspace.undo.entry.multiple.multiple" -msgstr "obiecte" - -msgid "workspace.undo.entry.multiple.media" -msgstr "obiecte grafice" - -msgid "workspace.undo.entry.multiple.group" -msgstr "grupuri" - -msgid "workspace.undo.entry.multiple.frame" -msgstr "planşă de lucru" - -msgid "workspace.undo.entry.multiple.curve" -msgstr "curbe" - -msgid "workspace.undo.entry.multiple.component" -msgstr "componente" - -msgid "workspace.undo.entry.multiple.circle" -msgstr "cercuri" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.move" -msgstr "Obiecte mutate" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.modify" -msgstr "Modificat %s" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.delete" -msgstr "Şters %s" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.empty" -msgstr "Nu sunt modificări în istoric" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.text" -msgstr "Text (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.rect" -msgstr "Dreptunghi (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.path" -msgstr "Cale (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.image" -msgstr "Imagine (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.frame" -msgstr "Planşă de lucru (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.comments" -msgstr "Comentarii (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.color-palette" -msgstr "Paletă de culori (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.assets" -msgstr "Obiecte (%s)" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.sitemap" -msgstr "Harta site-ului" - -#: src/app/main/ui/workspace/sidebar/sitemap.cljs -msgid "workspace.sidebar.sitemap" -msgstr "Pagini" - -#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/handoff/attributes/svg.cljs -msgid "workspace.sidebar.options.svg-attrs.title" -msgstr "Atribute SVG importate" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.sidebar.layers" -msgstr "Layere (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.sidebar.history" -msgstr "Istoric (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.update-main" -msgstr "Actualizaţi principala componentă" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.unlock" -msgstr "Deblochează" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.ungroup" -msgstr "Degrupează" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.show-main" -msgstr "Afişează componenta principală" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.show" -msgstr "Afişează" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.reset-overrides" -msgstr "Resetează suprascrierile" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.lock" -msgstr "Blochează" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.group" -msgstr "Grupează" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.hide" -msgstr "Ascunde" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.go-main" -msgstr "Mergi la componenta principală" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.flip-vertical" -msgstr "Întoarce pe verticală" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.flip-horizontal" -msgstr "Întoarce pe orizontală" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.edit" -msgstr "Editează" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.duplicate" -msgstr "Duplică" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.detach-instance" -msgstr "Detaşează instanţă" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.delete" -msgstr "Şterge" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.cut" -msgstr "Taie" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.create-component" -msgstr "Creează componentă" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.copy" -msgstr "Copiază" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.back" -msgstr "Trimite înapoi" - -msgid "workspace.path.actions.separate-nodes" -msgstr "Separă noduri (%s)" - -msgid "workspace.path.actions.move-nodes" -msgstr "Mută noduri (%s)" - -msgid "workspace.path.actions.merge-nodes" -msgstr "Uneşte noduri (%s)" - -msgid "workspace.path.actions.make-curve" -msgstr "În curbă (%s)" - -msgid "workspace.path.actions.make-corner" -msgstr "În colţ (%s)" - -msgid "workspace.path.actions.join-nodes" -msgstr "Adaugă noduri (%s)" - -msgid "workspace.path.actions.draw-nodes" -msgstr "Desenează noduri (%s)" - -msgid "workspace.path.actions.delete-node" -msgstr "Şterge nod (%s)" - -msgid "workspace.path.actions.add-node" -msgstr "Adaugă nod (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.use-play-button" -msgstr "Foloseşte butonul play din header pentru a porni vizualizarea prototip." - -msgid "workspace.options.text-options.vertical-align" -msgstr "Aliniere verticală" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.uppercase" -msgstr "Majuscule" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.underline" -msgstr "Subliniază" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.titlecase" -msgstr "Încadrare Titlu" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.title-selection" -msgstr "Selecţie text" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.title-group" -msgstr "Grupează text" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.title" -msgstr "Text" - -msgid "workspace.options.text-options.text-case" -msgstr "Case" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.strikethrough" -msgstr "Strikethrough" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.preset" -msgstr "Presetat" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.none" -msgstr "Nici unul" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.lowercase" -msgstr "Minuscule" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.line-height" -msgstr "Înălţime linii" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.letter-spacing" -msgstr "Spaţiere Litere" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.grow-fixed" -msgstr "Fix" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.grow-auto-width" -msgstr "Lăţime auto" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.grow-auto-height" -msgstr "Înălţime auto" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.google" -msgstr "Google" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.direction-rtl" -msgstr "RTL" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.direction-ltr" -msgstr "LTR" - -msgid "workspace.options.text-options.decoration" -msgstr "Decorare text" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.align-top" -msgstr "Aliniază sus" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.align-right" -msgstr "Aliniază la dreapta" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.align-middle" -msgstr "Aliniază la mijloc" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.align-left" -msgstr "Aliniază la stânga" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.align-justify" -msgstr "Justify" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.align-center" -msgstr "Aliniază centru" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.align-bottom" -msgstr "Aliniază jos" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.solid" -msgstr "Solid" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.outer" -msgstr "Exterior" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.mixed" -msgstr "Mixed" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.inner" -msgstr "Interior" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.dotted" -msgstr "Dotted" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.dashed" -msgstr "Dashed" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.center" -msgstr "Centru" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke" -msgstr "Stroke" - -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.size" -msgstr "Mărime" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.title" -msgstr "Umbră" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.spread" -msgstr "Accentuare" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.offsety" -msgstr "Y" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.offsetx" -msgstr "X" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-title" -msgstr "Mă bucur să te văd din nou!" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.blur" -msgstr "Blur" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.select-artboard" -msgstr "Selectează planşa" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.rotation" -msgstr "Rotaţie" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.radius.single-corners" -msgstr "Colţuri unice" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.radius.all-corners" -msgstr "Toate colţurile" - -msgid "workspace.options.radius" -msgstr "Rază" - -#: src/app/main/ui/workspace/sidebar/options.cljs -msgid "workspace.options.prototype" -msgstr "Prototip" - -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.position" -msgstr "Poziţie" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.none" -msgstr "Nici unul" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.navigate-to" -msgstr "Navighează la" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.title.multiple" -msgstr "Layere selectate" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.title.group" -msgstr "Grupează layere" - -#: src/app/main/ui/handoff/attributes/layout.cljs -msgid "handoff.attributes.layout.height" -msgstr "Înălțime" - -#: src/app/main/ui/handoff/attributes/layout.cljs -msgid "handoff.attributes.layout" -msgstr "Layout" - -#: src/app/main/ui/handoff/attributes/image.cljs -msgid "handoff.attributes.image.width" -msgstr "Lățime" - -#: src/app/main/ui/handoff/attributes/image.cljs -msgid "handoff.attributes.image.height" -msgstr "Înălțime" - -#: src/app/main/ui/handoff/attributes/image.cljs -msgid "handoff.attributes.image.download" -msgstr "Descarcă imaginea sursă" - -#: src/app/main/ui/handoff/attributes/fill.cljs -msgid "handoff.attributes.fill" -msgstr "Fill" - -#: src/app/main/ui/handoff/attributes/common.cljs -msgid "handoff.attributes.color.rgba" -msgstr "RGBA" - -#: src/app/main/ui/handoff/attributes/common.cljs -msgid "handoff.attributes.color.hsla" -msgstr "HSLA" - -#: src/app/main/ui/handoff/attributes/common.cljs -msgid "handoff.attributes.color.hex" -msgstr "HEX" - -#: src/app/main/ui/handoff/attributes/blur.cljs -msgid "handoff.attributes.blur.value" -msgstr "Valoare" - -#: src/app/main/ui/handoff/attributes/blur.cljs -msgid "handoff.attributes.blur" -msgstr "Blur" - -#: src/app/main/ui/settings/password.cljs -msgid "generic.error" -msgstr "Am întâmpinat o eroare" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.title" -msgstr "Adresă de Email" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.subtitle" -msgstr "" -"Descrie motivul pentru care ne scrii, specificând eventuale probleme, idei " -"sau nelămuriri. Un membru al echipei noastre îți va răspunde în scurt timp." - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.subject" -msgstr "Subiect" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.discussions-title" -msgstr "Discuțiile echipei" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.discussions-subtitle2" -msgstr "" -"Poți pune întrebări, iei parte la discuții deschise și poți contribui la " -"dezvoltarea proiectului." - -msgid "modals.delete-font.message" -msgstr "" -"Ești sigur că dorești să ștergi acest font? O dată șters acesta nu se va mai " -"încărca în proiectele tale." - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.discussions-subtitle1" -msgstr "Alătură-te forumului de comunicare al echipei Penpot." - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.discussions-go-to" -msgstr "Du-te la discuții" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.description" -msgstr "Descriere" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.chat-subtitle" -msgstr "Te simți sociabil? Hai să vorbim pe Gitter" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.chat-start" -msgstr "Alătură-te chatului" - -#: src/app/main/ui/settings/password.cljs -msgid "errors.wrong-old-password" -msgstr "Parola veche este incorectă" - -#: src/app/main/ui/auth/login.cljs -msgid "errors.wrong-credentials" -msgstr "Numele de utilizator sau parola par a fi greșite." - -#: src/app/main/ui/auth/verify_token.cljs -msgid "errors.unexpected-token" -msgstr "Cod necunoscut" - -#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs -msgid "errors.unexpected-error" -msgstr "A apărut o eroare neașteptată." - -#: src/app/main/ui/auth/verify_token.cljs -msgid "errors.token-expired" -msgstr "Codul este expirat" - -msgid "errors.terms-privacy-agreement-invalid" -msgstr "" -"Trebuie să acceptați termenii serviciului și politica de confidențialitate." - -#: src/app/main/ui/auth/register.cljs -msgid "errors.registration-disabled" -msgstr "Înregistrarea este dezactivată în prezent." - -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs -msgid "errors.profile-is-muted" -msgstr "" -"Profilul tău conține adrese de email dezactivate (rapoarte spam sau " -"inactive)." - -#: src/app/main/ui/settings/password.cljs -msgid "errors.password-too-short" -msgstr "Parola trebuie să conțină cel puțin 8 caractere" - -#: src/app/main/ui/settings/password.cljs -msgid "errors.password-invalid-confirmation" -msgstr "Parola de confirmare trebuie să se potrivească" - -msgid "errors.network" -msgstr "Nu s-a reușit conectarea la server." +#: src/app/main/ui/dashboard/projects.cljs +msgid "dashboard.projects-title" +msgstr "Proiecte" #: src/app/main/ui/dashboard/team.cljs -msgid "errors.member-is-muted" -msgstr "" -"Profilul pe care încercați să îl invitați este dezactivat (din cauza spam " -"sau inactivitate)." - -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs -msgid "errors.media-type-not-allowed" -msgstr "Se pare că aceasta nu este o imagine validă." - -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs -msgid "errors.media-type-mismatch" -msgstr "Se pare că conținutul imaginii nu se potrivește cu extensia de fișier." - -#: src/app/main/data/workspace/persistence.cljs -msgid "errors.media-too-large" -msgstr "Imaginea este prea mare pentru a fi inserată (trebuie să fie sub 5mb)." - -msgid "errors.media-format-unsupported" -msgstr "Formatul imaginii nu este acceptat (poate fi svg, jpg sau png)." - -#: src/app/main/ui/auth/login.cljs -msgid "errors.ldap-disabled" -msgstr "Autentificarea cu LDAP este dezactivată." - -#: src/app/main/ui/components/color_input.cljs -msgid "errors.invalid-color" -msgstr "Culoare invalidă" - -#: src/app/main/ui/auth/login.cljs -msgid "errors.google-auth-not-enabled" -msgstr "Autentificarea cu Google nu este permisă" - -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs -msgid "errors.generic" -msgstr "S-a întâmplat ceva în neregulă." - -#: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" -msgstr "E-mailul de confirmare trebuie să se potrivească" - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs -msgid "errors.email-has-permanent-bounces" -msgstr "Adresa de email «%s» are multe rapoarte permanente de respingere." - -#: src/app/main/ui/auth/verify_token.cljs -msgid "errors.email-already-validated" -msgstr "Adresa de email este deja validată." - -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs -msgid "errors.email-already-exists" -msgstr "Email deja trimis" - -#: src/app/main/data/workspace.cljs -msgid "errors.clipboard-not-implemented" -msgstr "Bowser-ul tău nu permite clipboard" - -#: src/app/main/ui/dashboard/grid.cljs -msgid "ds.updated-at" -msgstr "Actualizat: %s" - -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs -msgid "ds.confirm-title" -msgstr "Ești sigur?" - -#: src/app/main/ui/confirm.cljs -msgid "ds.confirm-ok" -msgstr "Ok" - -#: src/app/main/ui/confirm.cljs -msgid "ds.confirm-cancel" -msgstr "Anulează" - -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.your-penpot" -msgstr "Contul Penpot" +msgid "dashboard.promote-to-owner" +msgstr "Promovează la administrator" #: src/app/main/ui/settings/profile.cljs -msgid "dashboard.your-name" -msgstr "Numele tău" +msgid "dashboard.remove-account" +msgstr "Doriți să vă ștergeți contul?" -#: src/app/main/ui/settings/profile.cljs -msgid "dashboard.your-email" -msgstr "Email" +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.remove-shared" +msgstr "Elimină ca şi Colecţie Distribuită" -#: src/app/main/ui/settings.cljs -msgid "dashboard.your-account-title" -msgstr "Contul tău" - -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs -msgid "dashboard.update-settings" -msgstr "Actualizare setări" +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "dashboard.search-placeholder" +msgstr "Căutare…" #: src/app/main/ui/dashboard/search.cljs -msgid "dashboard.type-something" -msgstr "Scrie pentru a începe căutarea" - -#: src/app/main/ui/dashboard/search.cljs -msgid "dashboard.title-search" -msgstr "Rezultatele căutării" +msgid "dashboard.searching-for" +msgstr "Căutare pentru “%s“…" #: src/app/main/ui/settings/options.cljs -msgid "dashboard.theme-change" -msgstr "Interfață temă" +msgid "dashboard.select-ui-language" +msgstr "Selectați limbajul interfeței" -#: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.team-projects" -msgstr "Proiectele echipei" +#: src/app/main/ui/settings/options.cljs +msgid "dashboard.select-ui-theme" +msgstr "Selectați o temă" -#: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.team-members" -msgstr "Membrii echipei" - -#: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.team-info" -msgstr "Informațiile echipei" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.switch-team" -msgstr "Schimbă echipa" - -#: src/app/main/ui/dashboard/project_menu.cljs -msgid "dashboard.success-move-project" -msgstr "Proiectul a fost mutat cu succes" +#: src/app/main/ui/dashboard/grid.cljs +msgid "dashboard.show-all-files" +msgstr "Afișați toate fișierele" #: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" @@ -1898,341 +367,1003 @@ msgstr "Fișierul a fost mutat cu succes" msgid "dashboard.success-move-files" msgstr "Fișerele au fost mutate cu succes" -#: src/app/main/ui/dashboard/grid.cljs -msgid "dashboard.show-all-files" -msgstr "Afișați toate fișierele" - -#: src/app/main/ui/settings/options.cljs -msgid "dashboard.select-ui-theme" -msgstr "Selectați o temă" - -#: src/app/main/ui/settings/options.cljs -msgid "dashboard.select-ui-language" -msgstr "Selectați limbajul interfeței" - -#: src/app/main/ui/dashboard/search.cljs -msgid "dashboard.searching-for" -msgstr "Căutare pentru “%s“…" +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "dashboard.success-move-project" +msgstr "Proiectul a fost mutat cu succes" #: src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.search-placeholder" -msgstr "Căutare…" - -#: src/app/main/ui/settings/profile.cljs -msgid "dashboard.remove-account" -msgstr "Doriți să vă ștergeți contul?" - -#: src/app/main/ui/dashboard/projects.cljs -msgid "dashboard.projects-title" -msgstr "Proiecte" - -#: src/app/main/ui/settings/password.cljs -msgid "dashboard.password-change" -msgstr "Schimbă parola" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.open-in-new-tab" -msgstr "Deschide fișier într-o pagină nouă" +msgid "dashboard.switch-team" +msgstr "Schimbă echipa" #: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.num-of-members" -msgstr "%s membrii" - -#: src/app/main/ui/settings/password.cljs -msgid "dashboard.notifications.password-saved" -msgstr "Parolă actualizată cu success!" - -#: src/app/main/ui/auth/verify_token.cljs -msgid "dashboard.notifications.email-verified-successfully" -msgstr "Adresa ta de email este confirmată" - -#: src/app/main/ui/auth/verify_token.cljs -msgid "dashboard.notifications.email-changed-successfully" -msgstr "Adresa ta de email a fost actualizată cu success" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.no-projects-placeholder" -msgstr "Proiectele fixate vor apărea aici" - -#: src/app/main/ui/dashboard/search.cljs -msgid "dashboard.no-matches-for" -msgstr "Nu există rezultate pentru “%s“" - -#: src/app/main/data/dashboard.cljs -msgid "dashboard.new-project-prefix" -msgstr "Proiect nou" - -#: src/app/main/ui/dashboard/projects.cljs -msgid "dashboard.new-project" -msgstr "+ Proiect nou" - -#: src/app/main/data/dashboard.cljs -msgid "dashboard.new-file-prefix" -msgstr "Fișer nou" - -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs -msgid "dashboard.new-file" -msgstr "+ Fișier nou" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.move-to-other-team" -msgstr "Mutați la altă echipă" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.move-to-multi" -msgstr "Mutați %s fișiere la" - -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.move-to" -msgstr "Mută la" - -#: src/app/main/ui/dashboard/grid.cljs -msgid "dashboard.loading-files" -msgstr "încărcarea fișierelor …" - -#: src/app/main/ui/dashboard/libraries.cljs -msgid "dashboard.libraries-title" -msgstr "Librării Partajate" - -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.leave-team" -msgstr "Părăsește echipa" +msgid "dashboard.team-info" +msgstr "Informațiile echipei" #: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.invite-profile" -msgstr "Invită o echipă" +msgid "dashboard.team-members" +msgstr "Membrii echipei" -#: src/app/main/ui/dashboard/grid.cljs -msgid "dashboard.empty-files" -msgstr "Încă nu aveți fișiere aici" +#: src/app/main/ui/dashboard/team.cljs +msgid "dashboard.team-projects" +msgstr "Proiectele echipei" -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.duplicate-multi" -msgstr "Duplicați %s fișiere" +#: src/app/main/ui/settings/options.cljs +msgid "dashboard.theme-change" +msgstr "Interfață temă" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.duplicate" -msgstr "Duplicat" +#: src/app/main/ui/dashboard/search.cljs +msgid "dashboard.title-search" +msgstr "Rezultatele căutării" -msgid "dashboard.draft-title" -msgstr "Draft" +#: src/app/main/ui/dashboard/search.cljs +msgid "dashboard.type-something" +msgstr "Scrie pentru a începe căutarea" -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.delete-team" -msgstr "Șterge echipa" +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs +msgid "dashboard.update-settings" +msgstr "Actualizare setări" -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.create-new-team" -msgstr "+ Creează o nouă echipă" - -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs -msgid "dashboard.copy-suffix" -msgstr "(copiază)" +#: src/app/main/ui/settings.cljs +msgid "dashboard.your-account-title" +msgstr "Contul tău" #: src/app/main/ui/settings/profile.cljs -msgid "dashboard.change-email" -msgstr "Schimbă adresa de e-mail" +msgid "dashboard.your-email" +msgstr "Email" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.add-shared" -msgstr "Adăugați ca bibliotecă partajată" +#: src/app/main/ui/settings/profile.cljs +msgid "dashboard.your-name" +msgstr "Numele tău" -#: src/app/main/ui/auth/register.cljs -msgid "auth.verification-email-sent" -msgstr "Am trimis un email de verificare la" +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.your-penpot" +msgstr "Contul Penpot" -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement" -msgstr "" -"Atunci când creați un cont nou, sunteți de acord cu termenii noștri de " -"servicii și politica de confidențialitate." +#: src/app/main/ui/confirm.cljs +msgid "ds.confirm-cancel" +msgstr "Anulează" -#: src/app/main/ui/auth.cljs -msgid "auth.sidebar-tagline" -msgstr "Soluția open-source pentru proiectare design și prototipare." +#: src/app/main/ui/confirm.cljs +msgid "ds.confirm-ok" +msgstr "Ok" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-title" -msgstr "Creează un cont" +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +msgid "ds.confirm-title" +msgstr "Ești sigur?" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "Este gratuit, este Open Source" +#: src/app/main/ui/dashboard/grid.cljs +msgid "ds.updated-at" +msgstr "Actualizat: %s" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.register-submit" -msgstr "Creează un cont" +#: src/app/main/data/workspace.cljs +msgid "errors.clipboard-not-implemented" +msgstr "Bowser-ul tău nu permite clipboard" -#: src/app/main/ui/auth/login.cljs -msgid "auth.register" -msgstr "Nu aveți încă un cont?" - -#: src/app/main/ui/auth/recovery.cljs -msgid "auth.recovery-submit" -msgstr "Schimbă parola" - -#: src/app/main/ui/auth/recovery_request.cljs -msgid "auth.recovery-request-title" -msgstr "Ai uitat parola?" - -#: src/app/main/ui/auth/recovery_request.cljs -msgid "auth.recovery-request-subtitle" -msgstr "Îți vom trimite un email cu instrucțiunile" - -#: src/app/main/ui/auth/recovery_request.cljs -msgid "auth.recovery-request-submit" -msgstr "Recuperare Parolă" - -#: src/app/main/ui/auth/register.cljs -msgid "auth.password-length-hint" -msgstr "Cel puțin 8 caractere" - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.password" -msgstr "Parola" +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs +msgid "errors.email-already-exists" +msgstr "Email deja trimis" #: src/app/main/ui/auth/verify_token.cljs -msgid "auth.notifications.team-invitation-accepted" -msgstr "Te-ai alăturat echipei cu success" +msgid "errors.email-already-validated" +msgstr "Adresa de email este deja validată." -#: src/app/main/ui/auth/recovery_request.cljs -msgid "auth.notifications.recovery-token-sent" -msgstr "Un link de recuperare a parolei s-a trimis pe e-mail." +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs +msgid "errors.email-has-permanent-bounces" +msgstr "Adresa de email «%s» are multe rapoarte permanente de respingere." -#: src/app/main/ui/auth/recovery_request.cljs -msgid "auth.notifications.profile-not-verified" +#: src/app/main/ui/settings/change_email.cljs +msgid "errors.email-invalid-confirmation" +msgstr "E-mailul de confirmare trebuie să se potrivească" + +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +msgid "errors.generic" +msgstr "S-a întâmplat ceva în neregulă." + +#: src/app/main/ui/auth/login.cljs +msgid "errors.google-auth-not-enabled" +msgstr "Autentificarea cu Google nu este permisă" + +#: src/app/main/ui/components/color_input.cljs +msgid "errors.invalid-color" +msgstr "Culoare invalidă" + +#: src/app/main/ui/auth/login.cljs +msgid "errors.ldap-disabled" +msgstr "Autentificarea cu LDAP este dezactivată." + +msgid "errors.media-format-unsupported" +msgstr "Formatul imaginii nu este acceptat (poate fi svg, jpg sau png)." + +#: src/app/main/data/workspace/persistence.cljs +msgid "errors.media-too-large" +msgstr "Imaginea este prea mare pentru a fi inserată (trebuie să fie sub 5mb)." + +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +msgid "errors.media-type-mismatch" +msgstr "Se pare că conținutul imaginii nu se potrivește cu extensia de fișier." + +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +msgid "errors.media-type-not-allowed" +msgstr "Se pare că aceasta nu este o imagine validă." + +#: src/app/main/ui/dashboard/team.cljs +msgid "errors.member-is-muted" msgstr "" -"Profilul nu este verificat, vă rugăm să verificați profilul înainte de a " -"continua." +"Profilul pe care încercați să îl invitați este dezactivat (din cauza spam " +"sau inactivitate)." -#: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.password-changed-succesfully" -msgstr "Parola a fost schimbată cu success" +msgid "errors.network" +msgstr "Nu s-a reușit conectarea la server." -#: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" -msgstr "Codul de recuperare nu este valid." +#: src/app/main/ui/settings/password.cljs +msgid "errors.password-invalid-confirmation" +msgstr "Parola de confirmare trebuie să se potrivească" -#: src/app/main/ui/auth/recovery.cljs -msgid "auth.new-password" -msgstr "Introduceți o parolă nouă" +#: src/app/main/ui/settings/password.cljs +msgid "errors.password-too-short" +msgstr "Parola trebuie să conțină cel puțin 8 caractere" -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-with-oidc-submit" -msgstr "Conectează-te cu OpenID (SSO)" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-with-ldap-submit" -msgstr "Conectează-te cu LDAP" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-with-google-submit" -msgstr "Conectează-te cu Google" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-with-gitlab-submit" -msgstr "Conectează-te cu Gitlab" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-with-github-submit" -msgstr "Conectează-te cu Github" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-subtitle" -msgstr "Introduceți detaliile dvs. mai jos" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-submit" -msgstr "Intră în cont" - -#: src/app/main/ui/auth/register.cljs -msgid "auth.login-here" -msgstr "Conectează-te" - -#: src/app/main/ui/auth/recovery_request.cljs -msgid "auth.go-back-to-login" -msgstr "Întoarce-te!" - -#: src/app/main/ui/auth/register.cljs -msgid "auth.fullname" -msgstr "Numele complet" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.forgot-password" -msgstr "Ai uitat parola?" - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "Adresă E-mail" - -#: src/app/main/ui/auth/register.cljs -msgid "auth.demo-warning" +#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs +msgid "errors.profile-is-muted" msgstr "" -"Acesta este un DEMO, NU UTILIZAȚI pentru lucrări reale, întrucât proiectele " -"vor fi șterse periodic." - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.create-demo-profile" -msgstr "Vrei doar să încerci?" - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.create-demo-account" -msgstr "Creează un cont demo" - -#: src/app/main/ui/auth/recovery.cljs -msgid "auth.confirm-password" -msgstr "Confirmați parola" +"Profilul tău conține adrese de email dezactivate (rapoarte spam sau " +"inactive)." #: src/app/main/ui/auth/register.cljs -msgid "auth.check-your-email" +msgid "errors.registration-disabled" +msgstr "Înregistrarea este dezactivată în prezent." + +msgid "errors.terms-privacy-agreement-invalid" +msgstr "Trebuie să acceptați termenii serviciului și politica de confidențialitate." + +#: src/app/main/ui/auth/verify_token.cljs +msgid "errors.token-expired" +msgstr "Codul este expirat" + +#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs +msgid "errors.unexpected-error" +msgstr "A apărut o eroare neașteptată." + +#: src/app/main/ui/auth/verify_token.cljs +msgid "errors.unexpected-token" +msgstr "Cod necunoscut" + +#: src/app/main/ui/auth/login.cljs +msgid "errors.wrong-credentials" +msgstr "Numele de utilizator sau parola par a fi greșite." + +#: src/app/main/ui/settings/password.cljs +msgid "errors.wrong-old-password" +msgstr "Parola veche este incorectă" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.chat-start" +msgstr "Alătură-te chatului" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.chat-subtitle" +msgstr "Te simți sociabil? Hai să vorbim pe Gitter" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.description" +msgstr "Descriere" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.discussions-go-to" +msgstr "Du-te la discuții" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.discussions-subtitle1" +msgstr "Alătură-te forumului de comunicare al echipei Penpot." + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.discussions-subtitle2" msgstr "" -"Verificați adresa de e-mail, faceți click pe link-ul de verificare și " -"începeți să utilizați Penpot." +"Poți pune întrebări, iei parte la discuții deschise și poți contribui la " +"dezvoltarea proiectului." -#: src/app/main/ui/auth/register.cljs -msgid "auth.already-have-account" -msgstr "Ai deja un cont?" +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.discussions-title" +msgstr "Discuțiile echipei" -#, markdown -msgid "dashboard.fonts.hero-text2" +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.subject" +msgstr "Subiect" + +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.subtitle" msgstr "" -"Ar trebui să urcați doar fonturi la care aveți drept de folosință sau " -"fonturi personale. Află mai multe despre Dreptul de conținut la secțiunea [" -"Termenii și Condițiile Penpot](https://penpot.app/terms.html). De asemenea, " -"vă recomandăm să citiți și despre [licențierea fonturilor](2)." +"Descrie motivul pentru care ne scrii, specificând eventuale probleme, idei " +"sau nelămuriri. Un membru al echipei noastre îți va răspunde în scurt timp." -msgid "labels.upload-custom-fonts" -msgstr "Încarcă fonturi personalizate" +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.title" +msgstr "Adresă de Email" -msgid "labels.font-providers" -msgstr "Provideri de Fonturi" +#: src/app/main/ui/settings/password.cljs +msgid "generic.error" +msgstr "Am întâmpinat o eroare" -msgid "labels.search-font" -msgstr "Caută font" +#: src/app/main/ui/handoff/attributes/blur.cljs +msgid "handoff.attributes.blur" +msgstr "Blur" + +#: src/app/main/ui/handoff/attributes/blur.cljs +msgid "handoff.attributes.blur.value" +msgstr "Valoare" + +#: src/app/main/ui/handoff/attributes/common.cljs +msgid "handoff.attributes.color.hex" +msgstr "HEX" + +#: src/app/main/ui/handoff/attributes/common.cljs +msgid "handoff.attributes.color.hsla" +msgstr "HSLA" + +#: src/app/main/ui/handoff/attributes/common.cljs +msgid "handoff.attributes.color.rgba" +msgstr "RGBA" + +#: src/app/main/ui/handoff/attributes/fill.cljs +msgid "handoff.attributes.fill" +msgstr "Fill" + +#: src/app/main/ui/handoff/attributes/image.cljs +msgid "handoff.attributes.image.download" +msgstr "Descarcă imaginea sursă" + +#: src/app/main/ui/handoff/attributes/image.cljs +msgid "handoff.attributes.image.height" +msgstr "Înălțime" + +#: src/app/main/ui/handoff/attributes/image.cljs +msgid "handoff.attributes.image.width" +msgstr "Lățime" + +#: src/app/main/ui/handoff/attributes/layout.cljs +msgid "handoff.attributes.layout" +msgstr "Layout" + +#: src/app/main/ui/handoff/attributes/layout.cljs +msgid "handoff.attributes.layout.height" +msgstr "Înălțime" + +#: src/app/main/ui/handoff/attributes/layout.cljs +msgid "handoff.attributes.layout.left" +msgstr "Stânga" + +#: src/app/main/ui/handoff/attributes/layout.cljs, src/app/main/ui/handoff/attributes/layout.cljs +msgid "handoff.attributes.layout.radius" +msgstr "Rază" + +#: src/app/main/ui/handoff/attributes/layout.cljs +msgid "handoff.attributes.layout.rotation" +msgstr "Rotație" + +#: src/app/main/ui/handoff/attributes/layout.cljs +msgid "handoff.attributes.layout.top" +msgstr "Top" + +#: src/app/main/ui/handoff/attributes/layout.cljs +msgid "handoff.attributes.layout.width" +msgstr "Lățime" + +#: src/app/main/ui/handoff/attributes/shadow.cljs +msgid "handoff.attributes.shadow" +msgstr "Umbră" + +#: src/app/main/ui/handoff/attributes/shadow.cljs +msgid "handoff.attributes.shadow.shorthand.blur" +msgstr "B" + +#: src/app/main/ui/handoff/attributes/shadow.cljs +msgid "handoff.attributes.shadow.shorthand.offset-x" +msgstr "X" + +#: src/app/main/ui/handoff/attributes/shadow.cljs +msgid "handoff.attributes.shadow.shorthand.offset-y" +msgstr "Y" + +#: src/app/main/ui/handoff/attributes/shadow.cljs +msgid "handoff.attributes.shadow.shorthand.spread" +msgstr "S" + +#: src/app/main/ui/handoff/attributes/stroke.cljs +msgid "handoff.attributes.stroke" +msgstr "Linie" + +#, permanent +msgid "handoff.attributes.stroke.alignment.center" +msgstr "Centru" + +#, permanent +msgid "handoff.attributes.stroke.alignment.inner" +msgstr "Interior" + +#, permanent +msgid "handoff.attributes.stroke.alignment.outer" +msgstr "Exterior" + +msgid "handoff.attributes.stroke.style.dotted" +msgstr "Punctat" + +msgid "handoff.attributes.stroke.style.mixed" +msgstr "Mixat" + +msgid "handoff.attributes.stroke.style.none" +msgstr "Niciunul" + +msgid "handoff.attributes.stroke.style.solid" +msgstr "Solid" + +#: src/app/main/ui/handoff/attributes/stroke.cljs +msgid "handoff.attributes.stroke.width" +msgstr "Lățime" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography" +msgstr "Tipografie" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography.font-family" +msgstr "Familie de Fonturi" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography.font-size" +msgstr "Dimensiune Font" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography.font-style" +msgstr "Stil Font" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography.letter-spacing" +msgstr "Spațiere" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography.line-height" +msgstr "Înălțimea rândului" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography.text-decoration" +msgstr "Decorare Text" + +msgid "handoff.attributes.typography.text-decoration.none" +msgstr "Niciunul" + +msgid "handoff.attributes.typography.text-decoration.strikethrough" +msgstr "Strikethrough" + +msgid "handoff.attributes.typography.text-decoration.underline" +msgstr "Subliniat" + +#: src/app/main/ui/handoff/attributes/text.cljs +msgid "handoff.attributes.typography.text-transform" +msgstr "Transformare Text" + +msgid "handoff.attributes.typography.text-transform.lowercase" +msgstr "Minuscule" + +msgid "handoff.attributes.typography.text-transform.none" +msgstr "Niciunul" + +msgid "handoff.attributes.typography.text-transform.titlecase" +msgstr "Title Case" + +msgid "handoff.attributes.typography.text-transform.uppercase" +msgstr "Majuscule" + +#: src/app/main/ui/handoff/right_sidebar.cljs +msgid "handoff.tabs.code" +msgstr "Cod" + +msgid "handoff.tabs.code.selected.circle" +msgstr "Cerc" + +msgid "handoff.tabs.code.selected.curve" +msgstr "Curbat" + +msgid "handoff.tabs.code.selected.frame" +msgstr "Planșă de lucru" + +msgid "handoff.tabs.code.selected.group" +msgstr "Grup" + +msgid "handoff.tabs.code.selected.image" +msgstr "Imagine" + +#: src/app/main/ui/handoff/right_sidebar.cljs +msgid "handoff.tabs.code.selected.multiple" +msgstr "%s Selectate" + +msgid "handoff.tabs.code.selected.path" +msgstr "Traiectorie" + +msgid "handoff.tabs.code.selected.rect" +msgstr "Dreptunghi" + +msgid "handoff.tabs.code.selected.svg-raw" +msgstr "SVG" + +msgid "handoff.tabs.code.selected.text" +msgstr "Text" + +#: src/app/main/ui/handoff/right_sidebar.cljs +msgid "handoff.tabs.info" +msgstr "Info" + +msgid "history.alert-message" +msgstr "Utilizezi versiunea %s" + +msgid "labels.accept" +msgstr "Accept" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.admin" +msgstr "Administrator" + +#: src/app/main/ui/workspace/comments.cljs +msgid "labels.all" +msgstr "Toate" + +#: src/app/main/ui/static.cljs +msgid "labels.bad-gateway.desc-message" +msgstr "Momentan serverele noastre sunt în mentenanță. Revino în scurt timp." + +#: src/app/main/ui/static.cljs +msgid "labels.bad-gateway.main-message" +msgstr "Eroare de Server" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.cancel" +msgstr "Anulează" + +msgid "labels.centered" +msgstr "Centru" + +#: src/app/main/ui/dashboard/comments.cljs +msgid "labels.comments" +msgstr "Comentarii" + +#: src/app/main/ui/settings/password.cljs +msgid "labels.confirm-password" +msgstr "Confirmă parola" + +msgid "labels.content" +msgstr "Conținut" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "labels.create" +msgstr "Creează" + +#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs +msgid "labels.create-team" +msgstr "Creează o echipă" + +#: src/app/main/ui/dashboard/team_form.cljs +msgid "labels.create-team.placeholder" +msgstr "Introduceți noul nume al echipei" msgid "labels.custom-fonts" msgstr "Fonturi personalizate" -msgid "labels.font-variant" -msgstr "Stil" +#: src/app/main/ui/settings/sidebar.cljs +msgid "labels.dashboard" +msgstr "Administrare" + +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.delete" +msgstr "Șterge" + +#: src/app/main/ui/comments.cljs +msgid "labels.delete-comment" +msgstr "Șterge comentariu" + +#: src/app/main/ui/comments.cljs +msgid "labels.delete-comment-thread" +msgstr "Șterge discuție" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.delete-multi-files" +msgstr "Șterge %s fișiere" + +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.drafts" +msgstr "Drafturi" + +#: src/app/main/ui/comments.cljs +msgid "labels.edit" +msgstr "Editează" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.editor" +msgstr "Editor" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.email" +msgstr "Adresă de Email" + +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.feedback-disabled" +msgstr "Feedback dezactivat" + +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.feedback-sent" +msgstr "Feedback trimis" msgid "labels.font-family" msgstr "Familie de Fonturi" -msgid "labels.installed-fonts" -msgstr "Fonturi instalate" +msgid "labels.font-providers" +msgstr "Provideri de Fonturi" + +msgid "labels.font-variant" +msgstr "Stil" msgid "labels.fonts" msgstr "Fonturi" -msgid "modals.delete-font.title" -msgstr "Ștergere font" +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.give-feedback" +msgstr "Lasă un feedback" + +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +msgid "labels.hide-resolved-comments" +msgstr "Ascunde comentariile rezolvate" + +msgid "labels.icons" +msgstr "Iconițe" + +msgid "labels.images" +msgstr "Imagini" + +msgid "labels.installed-fonts" +msgstr "Fonturi instalate" + +#: src/app/main/ui/static.cljs +msgid "labels.internal-error.desc-message" +msgstr "" +"Am întâmpinat o eroare. Te rugăm, mai încearcă o dată. Dacă problema " +"persistă poți contacta echipa de suport." + +#: src/app/main/ui/static.cljs +msgid "labels.internal-error.main-message" +msgstr "Eroare internă" + +#: src/app/main/ui/settings/options.cljs +msgid "labels.language" +msgstr "Limbă" + +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.logout" +msgstr "Deconectare" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.members" +msgstr "Membri" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.name" +msgstr "Nume" + +#: src/app/main/ui/settings/password.cljs +msgid "labels.new-password" +msgstr "Parolă nouă" + +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs +msgid "labels.no-comments-available" +msgstr "Nu există notificări de comentarii în aștepare" + +#: src/app/main/ui/static.cljs +msgid "labels.not-found.auth-info" +msgstr "Ești conectat ca fiind" + +#: src/app/main/ui/static.cljs +msgid "labels.not-found.desc-message" +msgstr "Această pagină nu există sau nu ai permisiunea să o accesezi." + +#: src/app/main/ui/static.cljs +msgid "labels.not-found.main-message" +msgstr "Opa!" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.num-of-files" +msgid_plural "labels.num-of-files" +msgstr[0] "1 fişier" +msgstr[1] "%s fişiere" +msgstr[2] "%s fişiere" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.num-of-projects" +msgid_plural "labels.num-of-projects" +msgstr[0] "1 proiecte" +msgstr[1] "%s proiecte" +msgstr[2] "%s proiecte" + +#: src/app/main/ui/settings/password.cljs +msgid "labels.old-password" +msgstr "Parola veche" + +#: src/app/main/ui/workspace/comments.cljs +msgid "labels.only-yours" +msgstr "Personale" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.owner" +msgstr "Autor" + +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.password" +msgstr "Parola" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.permissions" +msgstr "Permisiuni" + +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.profile" +msgstr "Profil" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.projects" +msgstr "Proiecte" + +msgid "labels.recent" +msgstr "Recente" + +#: src/app/main/ui/settings/sidebar.cljs +msgid "labels.release-notes" +msgstr "Mențiuni" + +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.remove" +msgstr "Elimină" + +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.rename" +msgstr "Redenumire" + +#: src/app/main/ui/dashboard/team_form.cljs +msgid "labels.rename-team" +msgstr "Modifică numele echipei" + +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +msgid "labels.retry" +msgstr "Încearcă din nou" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.role" +msgstr "Rol" + +msgid "labels.save" +msgstr "Salvează" + +msgid "labels.search-font" +msgstr "Caută font" + +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.send" +msgstr "Trimitere" + +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.sending" +msgstr "Se trimite..." + +#: src/app/main/ui/static.cljs +msgid "labels.service-unavailable.desc-message" +msgstr "Momentan suntem în mentenanță." + +#: src/app/main/ui/static.cljs +msgid "labels.service-unavailable.main-message" +msgstr "Serviciul nu este disponibil" + +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.settings" +msgstr "Setări" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.shared-libraries" +msgstr "Colecții distribuite" + +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +msgid "labels.show-all-comments" +msgstr "Afișează toate comentariile" + +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +msgid "labels.show-your-comments" +msgstr "Afișează doar comentariile mele" + +#: src/app/main/ui/static.cljs +msgid "labels.sign-out" +msgstr "Deconectare" + +#: src/app/main/ui/settings/profile.cljs +msgid "labels.update" +msgstr "Actualizare" + +#: src/app/main/ui/dashboard/team_form.cljs +msgid "labels.update-team" +msgstr "Actualizare echipă" + +msgid "labels.upload" +msgstr "Încărcare" + +msgid "labels.upload-custom-fonts" +msgstr "Încarcă fonturi personalizate" msgid "labels.uploading" msgstr "Se încarcă..." -msgid "labels.upload" -msgstr "Încărcare" +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.viewer" +msgstr "Vizitator" + +#: src/app/main/ui/comments.cljs +msgid "labels.write-new-comment" +msgstr "Scrie un comentariu" + +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +msgid "media.loading" +msgstr "Încarcă imaginea…" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.add-shared-confirm.accept" +msgstr "Adaugă la Colecții distribuite" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.add-shared-confirm.hint" +msgstr "" +"O dată adăugat la Colecții distribuite, toate fișierele acestei colecții " +"vor deveni disponibile altora." + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.add-shared-confirm.message" +msgstr "Adaugă “%s” la Colecții Distribuite" + +#: src/app/main/ui/settings/change_email.cljs +msgid "modals.change-email.confirm-email" +msgstr "Verifică-ți adresa de e-mail" + +#: src/app/main/ui/settings/change_email.cljs +msgid "modals.change-email.info" +msgstr "Îți vom trimite un email pe adresa “%s” pentru identificare." + +#: src/app/main/ui/settings/change_email.cljs +msgid "modals.change-email.new-email" +msgstr "Mail nou" + +#: src/app/main/ui/settings/change_email.cljs +msgid "modals.change-email.submit" +msgstr "Schimbă adresa de e-mail" + +#: src/app/main/ui/settings/change_email.cljs +msgid "modals.change-email.title" +msgstr "Schimbă-ți adresa de E-mail" + +#: src/app/main/ui/settings/delete_account.cljs +msgid "modals.delete-account.cancel" +msgstr "Anulează ștergerea contului" + +#: src/app/main/ui/settings/delete_account.cljs +msgid "modals.delete-account.confirm" +msgstr "Confirm ștergerea contului" + +#: src/app/main/ui/settings/delete_account.cljs +msgid "modals.delete-account.info" +msgstr "Prin ștergerea contului, se vor șterge toate proiectele și arhivele tale." + +#: src/app/main/ui/settings/delete_account.cljs +msgid "modals.delete-account.title" +msgstr "Ești sigur că dorești ștergerea contului?" + +#: src/app/main/ui/comments.cljs +msgid "modals.delete-comment-thread.accept" +msgstr "Șterge conversație" + +#: src/app/main/ui/comments.cljs +msgid "modals.delete-comment-thread.message" +msgstr "" +"Ești sigur că dorești să ștergi această conversație? Toate discuțiile din " +"cadrul subiect vor fi șterse." + +#: src/app/main/ui/comments.cljs +msgid "modals.delete-comment-thread.title" +msgstr "Șterge conversație" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.delete-file-confirm.accept" +msgstr "Șterge fișier" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.delete-file-confirm.message" +msgstr "Ești sigur că dorești să ștergi acest fișier?" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.delete-file-confirm.title" +msgstr "Ștergere fișier" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.delete-file-multi-confirm.accept" +msgstr "Șterge fișiere" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.delete-file-multi-confirm.message" +msgstr "Ești sigur că dorești să ștergi aceste %s fișiere?" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.delete-file-multi-confirm.title" +msgstr "Ștergere %s fișeiere în curs" + +msgid "modals.delete-font.message" +msgstr "" +"Ești sigur că dorești să ștergi acest font? O dată șters acesta nu se va " +"mai încărca în proiectele tale." + +msgid "modals.delete-font.title" +msgstr "Ștergere font" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs +msgid "modals.delete-page.body" +msgstr "Ești sigur că dorești să ștergi această pagină?" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs +msgid "modals.delete-page.title" +msgstr "Șterge pagină" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "modals.delete-project-confirm.accept" +msgstr "Șterge proiect" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "modals.delete-project-confirm.message" +msgstr "Ești sigur că dorești să ștergi acest proiect?" + +#: src/app/main/ui/dashboard/project_menu.cljs +msgid "modals.delete-project-confirm.title" +msgstr "Șterge proiect" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.delete-team-confirm.accept" +msgstr "Șterge echipă" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.delete-team-confirm.message" +msgstr "" +"Ești sigur că dorești să ștergi această echipă? Toate proiectele și " +"fișierele asociate acesteia vor fi permanent șterse." + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.delete-team-confirm.title" +msgstr "Ștergere echipă în curs" + +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.delete-team-member-confirm.accept" +msgstr "Elimină membru" + +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.delete-team-member-confirm.message" +msgstr "Ești sigur că dorești să elimini acest membru din echipă?" + +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.delete-team-member-confirm.title" +msgstr "Elimină un membru al echipei" + +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.invite-member-confirm.accept" +msgstr "Trimite invitație" + +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.invite-member.title" +msgstr "Invită o persoană în echipă" + +msgid "modals.leave-and-reassign.forbiden" +msgstr "" +"Nu puteţi părăsi echipa dacă nu există un alt membru care să devină " +"administrator. Aţi putea şterge echipa." + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-and-reassign.hint1" +msgstr "Ești administratorul echipei %s." + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-and-reassign.hint2" +msgstr "Selectează un membru pentru a-l promova, înainte de a părăsi echipa" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-and-reassign.promote-and-leave" +msgstr "Promovează şi părăseşte echipa" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-and-reassign.select-memeber-to-promote" +msgstr "Selectează un membru pentru promovare" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-and-reassign.title" +msgstr "Selectează un membru pentru promovare" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-confirm.accept" +msgstr "Părăsește echipa" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-confirm.message" +msgstr "Ești sigur că dorești să părăsești această echipă?" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "modals.leave-confirm.title" +msgstr "Părăsire echipă în curs" + +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.promote-owner-confirm.accept" +msgstr "Promovează" + +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.promote-owner-confirm.message" +msgstr "Ești sigur că dorești să promovezi acest utilizator ca deținător al echipei?" + +#: src/app/main/ui/dashboard/team.cljs +msgid "modals.promote-owner-confirm.title" +msgstr "Confirmare promovare" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.remove-shared-confirm.accept" +msgstr "Elimină din Colecțiile Distribuite" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.remove-shared-confirm.hint" +msgstr "" +"O dată șters din Colecțiile Distribuite, toate fișierele acestei colecții " +"nu vor mai fi disponibile altora." + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.remove-shared-confirm.message" +msgstr "Șterge “%s” din Colecții Distribuite" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "modals.update-remote-component.accept" +msgstr "Actualizare componentă" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "modals.update-remote-component.cancel" +msgstr "Anulează" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "modals.update-remote-component.hint" +msgstr "" +"Actualizezi o componentă dintr-o colecţie distribuită. Pot fi afectate alte " +"fişiere ce o folosesc." + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "modals.update-remote-component.message" +msgstr "Actualizaţi o componentă dintr-o colecţie distribuită" + +#: src/app/main/ui/dashboard/team.cljs +msgid "notifications.invitation-email-sent" +msgstr "Invitaţie trimisă cu succes" + +#: src/app/main/ui/settings/delete_account.cljs +msgid "notifications.profile-deletion-not-allowed" +msgstr "Nu poţi şterge profilul. Reatribuie echipele înainte de a continua." + +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +msgid "notifications.profile-saved" +msgstr "Profil salvat cu succes!" + +#: src/app/main/ui/settings/change_email.cljs +msgid "notifications.validation-email-sent" +msgstr "Un e-mail de verificare a fost trimis la %s. Verifică-ţi adresa de e-mail!" + +#: src/app/main/ui/auth/recovery.cljs +msgid "profile.recovery.go-to-login" +msgstr "Mergi la autentificare" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +msgid "settings.multiple" +msgstr "Multiple" + +#: src/app/main/ui/dashboard/files.cljs +msgid "title.dashboard.files" +msgstr "%s - Penpot" #: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" @@ -2242,374 +1373,1238 @@ msgstr "Furnizori de Fonturi - %s - Penpot" msgid "title.dashboard.fonts" msgstr "Fonturi - %s - Penpot" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs -msgid "media.loading" -msgstr "Încarcă imaginea…" +#: src/app/main/ui/dashboard/projects.cljs +msgid "title.dashboard.projects" +msgstr "Proiecte - %s - Penpot" -#: src/app/main/ui/comments.cljs -msgid "labels.write-new-comment" -msgstr "Scrie un comentariu" +#: src/app/main/ui/dashboard/search.cljs +msgid "title.dashboard.search" +msgstr "Caută - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.viewer" -msgstr "Vizitator" +#: src/app/main/ui/dashboard/libraries.cljs +msgid "title.dashboard.shared-libraries" +msgstr "Colecţii Distribuite - %s - Penpot" -#: src/app/main/ui/dashboard/team_form.cljs -msgid "labels.update-team" -msgstr "Actualizare echipă" - -#: src/app/main/ui/settings/profile.cljs -msgid "labels.update" -msgstr "Actualizare" - -#: src/app/main/ui/static.cljs -msgid "labels.sign-out" -msgstr "Deconectare" - -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs -msgid "labels.show-your-comments" -msgstr "Afișează doar comentariile mele" - -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs -msgid "labels.show-all-comments" -msgstr "Afișează toate comentariile" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.shared-libraries" -msgstr "Colecții distribuite" - -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.settings" -msgstr "Setări" - -#: src/app/main/ui/static.cljs -msgid "labels.service-unavailable.main-message" -msgstr "Serviciul nu este disponibil" - -#: src/app/main/ui/static.cljs -msgid "labels.service-unavailable.desc-message" -msgstr "Momentan suntem în mentenanță." +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs +msgid "title.default" +msgstr "Penpot - Libertate în Design pentru Echipe" #: src/app/main/ui/settings/feedback.cljs -msgid "labels.sending" -msgstr "Se trimite..." - -#: src/app/main/ui/settings/feedback.cljs -msgid "labels.send" -msgstr "Trimitere" - -msgid "labels.save" -msgstr "Salvează" - -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.role" -msgstr "Rol" - -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs -msgid "labels.retry" -msgstr "Încearcă din nou" - -#: src/app/main/ui/dashboard/team_form.cljs -msgid "labels.rename-team" -msgstr "Modifică numele echipei" - -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "labels.rename" -msgstr "Redenumire" - -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -msgid "labels.remove" -msgstr "Elimină" - -#: src/app/main/ui/settings/sidebar.cljs -msgid "labels.release-notes" -msgstr "Mențiuni" - -msgid "labels.recent" -msgstr "Recente" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.projects" -msgstr "Proiecte" - -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.profile" -msgstr "Profil" - -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.permissions" -msgstr "Permisiuni" - -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.password" -msgstr "Parola" - -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs -msgid "labels.owner" -msgstr "Autor" - -#: src/app/main/ui/workspace/comments.cljs -msgid "labels.only-yours" -msgstr "Personale" - -#: src/app/main/ui/settings/password.cljs -msgid "labels.old-password" -msgstr "Parola veche" - -#: src/app/main/ui/static.cljs -msgid "labels.not-found.main-message" -msgstr "Opa!" - -#: src/app/main/ui/static.cljs -msgid "labels.not-found.desc-message" -msgstr "Această pagină nu există sau nu ai permisiunea să o accesezi." - -#: src/app/main/ui/static.cljs -msgid "labels.not-found.auth-info" -msgstr "Ești conectat ca fiind" - -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs -msgid "labels.no-comments-available" -msgstr "Nu există notificări de comentarii în aștepare" - -#: src/app/main/ui/settings/password.cljs -msgid "labels.new-password" -msgstr "Parolă nouă" - -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.name" -msgstr "Nume" - -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.members" -msgstr "Membri" - -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.logout" -msgstr "Deconectare" +msgid "title.settings.feedback" +msgstr "Oferă feedback - Penpot" #: src/app/main/ui/settings/options.cljs -msgid "labels.language" -msgstr "Limbă" - -#: src/app/main/ui/static.cljs -msgid "labels.internal-error.main-message" -msgstr "Eroare internă" - -#: src/app/main/ui/static.cljs -msgid "labels.internal-error.desc-message" -msgstr "" -"Am întâmpinat o eroare. Te rugăm, mai încearcă o dată. Dacă problema " -"persistă poți contacta echipa de suport." - -msgid "labels.images" -msgstr "Imagini" - -msgid "labels.icons" -msgstr "Iconițe" - -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs -msgid "labels.hide-resolved-comments" -msgstr "Ascunde comentariile rezolvate" - -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.give-feedback" -msgstr "Lasă un feedback" - -#: src/app/main/ui/settings/feedback.cljs -msgid "labels.feedback-sent" -msgstr "Feedback trimis" - -#: src/app/main/ui/settings/feedback.cljs -msgid "labels.feedback-disabled" -msgstr "Feedback dezactivat" - -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs -msgid "labels.email" -msgstr "Adresă de Email" - -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs -msgid "labels.editor" -msgstr "Editor" - -#: src/app/main/ui/comments.cljs -msgid "labels.edit" -msgstr "Editează" - -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "labels.drafts" -msgstr "Drafturi" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "labels.delete-multi-files" -msgstr "Șterge %s fișiere" - -#: src/app/main/ui/comments.cljs -msgid "labels.delete-comment-thread" -msgstr "Șterge discuție" - -#: src/app/main/ui/comments.cljs -msgid "labels.delete-comment" -msgstr "Șterge comentariu" - -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "labels.delete" -msgstr "Șterge" - -#: src/app/main/ui/settings/sidebar.cljs -msgid "labels.dashboard" -msgstr "Administrare" - -#: src/app/main/ui/dashboard/team_form.cljs -msgid "labels.create-team.placeholder" -msgstr "Introduceți noul nume al echipei" - -#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs -msgid "labels.create-team" -msgstr "Creează o echipă" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "labels.create" -msgstr "Creează" - -msgid "labels.content" -msgstr "Conținut" +msgid "title.settings.options" +msgstr "Setări - Penpot" #: src/app/main/ui/settings/password.cljs -msgid "labels.confirm-password" -msgstr "Confirmă parola" +msgid "title.settings.password" +msgstr "Parolă - Penpot" -#: src/app/main/ui/dashboard/comments.cljs -msgid "labels.comments" -msgstr "Comentarii" +#: src/app/main/ui/settings/profile.cljs +msgid "title.settings.profile" +msgstr "Profil - Penpot" -msgid "labels.centered" -msgstr "Centru" +#: src/app/main/ui/dashboard/team.cljs +msgid "title.team-members" +msgstr "Membri - %s - Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.cancel" -msgstr "Anulează" +#: src/app/main/ui/dashboard/team.cljs +msgid "title.team-settings" +msgstr "Setări - %s - Penpot" -#: src/app/main/ui/static.cljs -msgid "labels.bad-gateway.main-message" -msgstr "Eroare de Server" +#: src/app/main/ui/handoff.cljs, src/app/main/ui/viewer.cljs +msgid "title.viewer" +msgstr "%s - Vizualizare - Penpot" -#: src/app/main/ui/static.cljs -msgid "labels.bad-gateway.desc-message" -msgstr "Momentan serverele noastre sunt în mentenanță. Revino în scurt timp." +#: src/app/main/ui/workspace.cljs +msgid "title.workspace" +msgstr "%s - Penpot" -#: src/app/main/ui/workspace/comments.cljs -msgid "labels.all" -msgstr "Toate" +#: src/app/main/ui/handoff.cljs, src/app/main/ui/viewer.cljs +msgid "viewer.empty-state" +msgstr "Nu există ferestre disponibile pe această pagină." -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs -msgid "labels.admin" -msgstr "Administrator" +#: src/app/main/ui/handoff.cljs, src/app/main/ui/viewer.cljs +msgid "viewer.frame-not-found" +msgstr "Fereastra nu există." -msgid "labels.accept" -msgstr "Accept" +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.dont-show-interactions" +msgstr "Nu afişa interacţiunile" -msgid "history.alert-message" -msgstr "Utilizezi versiunea %s" +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.edit-page" +msgstr "Editează pagina" -#: src/app/main/ui/handoff/right_sidebar.cljs -msgid "handoff.tabs.info" -msgstr "Info" +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.fullscreen" +msgstr "Ecran complet" -msgid "handoff.tabs.code.selected.text" -msgstr "Text" +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.share.copy-link" +msgstr "Copiază link" -msgid "handoff.tabs.code.selected.svg-raw" -msgstr "SVG" +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.share.create-link" +msgstr "Creează link" -msgid "handoff.tabs.code.selected.rect" -msgstr "Dreptunghi" +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.share.placeholder" +msgstr "Link-ul distribuit va apărea aici" -msgid "handoff.tabs.code.selected.path" -msgstr "Traiectorie" +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.share.remove-link" +msgstr "Elimină link" -#: src/app/main/ui/handoff/right_sidebar.cljs -msgid "handoff.tabs.code.selected.multiple" -msgstr "%s Selectate" +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.share.subtitle" +msgstr "Prin acest link se permite accesul public" -msgid "handoff.tabs.code.selected.image" -msgstr "Imagine" +#: src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs +msgid "viewer.header.share.title" +msgstr "Distribuie link" -msgid "handoff.tabs.code.selected.group" +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.show-interactions" +msgstr "Afişează interacţiunile" + +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.show-interactions-on-click" +msgstr "Afişează interacţiunile la click" + +#: src/app/main/ui/viewer/header.cljs +msgid "viewer.header.sitemap" +msgstr "Harta site-ului" + +#: src/app/main/ui/workspace/sidebar/align.cljs +msgid "workspace.align.hcenter" +msgstr "Aliniază orizontal" + +#: src/app/main/ui/workspace/sidebar/align.cljs +msgid "workspace.align.hdistribute" +msgstr "Introdu spaţierea orizontală" + +#: src/app/main/ui/workspace/sidebar/align.cljs +msgid "workspace.align.hleft" +msgstr "Aliniază la stânga" + +#: src/app/main/ui/workspace/sidebar/align.cljs +msgid "workspace.align.hright" +msgstr "Aliniază la dreapta" + +#: src/app/main/ui/workspace/sidebar/align.cljs +msgid "workspace.align.vbottom" +msgstr "Aliniază jos" + +#: src/app/main/ui/workspace/sidebar/align.cljs +msgid "workspace.align.vcenter" +msgstr "Aliniază vertical" + +#: src/app/main/ui/workspace/sidebar/align.cljs +msgid "workspace.align.vdistribute" +msgstr "Introdu spaţierea pe verticală" + +#: src/app/main/ui/workspace/sidebar/align.cljs +msgid "workspace.align.vtop" +msgstr "Aliniază sus" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.assets" +msgstr "Obiecte" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.box-filter-all" +msgstr "Toate obiectele" + +msgid "workspace.assets.box-filter-graphics" +msgstr "Obiecte grafice" + +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.colors" +msgstr "Culori" + +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.components" +msgstr "Componente" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.create-group" +msgstr "Creează grup" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.create-group-hint" +msgstr "Obiectele vor fi numite automat ca \"nume grup / nume obiect\"" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.delete" +msgstr "Şterge" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.duplicate" +msgstr "Duplică" + +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.edit" +msgstr "Editează" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.file-library" +msgstr "Colecţii" + +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.graphics" +msgstr "Obiecte grafice" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.group" msgstr "Grup" -msgid "handoff.tabs.code.selected.frame" -msgstr "Planșă de lucru" +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.group-name" +msgstr "Nume grup" -msgid "handoff.tabs.code.selected.curve" -msgstr "Curbat" +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.libraries" +msgstr "Colecţii" -msgid "handoff.tabs.code.selected.circle" -msgstr "Cerc" +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.not-found" +msgstr "Nu au fost găsite obiecte" -#: src/app/main/ui/handoff/right_sidebar.cljs -msgid "handoff.tabs.code" -msgstr "Cod" +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.rename" +msgstr "Redenumeşte" -msgid "handoff.attributes.typography.text-transform.uppercase" -msgstr "Majuscule" +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.search" +msgstr "Caută obiecte" -msgid "handoff.attributes.typography.text-transform.none" -msgstr "Niciunul" +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.selected-count" +msgid_plural "workspace.assets.selected-count" +msgstr[0] "%s obiect selectat" +msgstr[1] "%s obiecte selectate" +msgstr[2] "%s obiecte selectate" -msgid "handoff.attributes.typography.text-transform.lowercase" -msgstr "Minuscule" +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.shared" +msgstr "DISTRIBUITE" -#: src/app/main/ui/handoff/attributes/text.cljs -msgid "handoff.attributes.typography.text-transform" +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.typography" +msgstr "Tipografii" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.assets.typography.font-id" +msgstr "Font" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.assets.typography.font-size" +msgstr "Dimensiune" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.assets.typography.font-variant-id" +msgstr "Variante" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.assets.typography.go-to-edit" +msgstr "Editează fişierul în Colecţia de stiluri" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.assets.typography.letter-spacing" +msgstr "Spaţiere Litere" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.assets.typography.line-height" +msgstr "Înălţime linie" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/handoff/attributes/text.cljs, src/app/main/ui/handoff/attributes/text.cljs +msgid "workspace.assets.typography.sample" +msgstr "Ag" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.assets.typography.text-transform" msgstr "Transformare Text" -msgid "handoff.attributes.typography.text-decoration.underline" -msgstr "Subliniat" +#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs +msgid "workspace.gradients.linear" +msgstr "Gradient liniar" -msgid "handoff.attributes.typography.text-decoration.none" -msgstr "Niciunul" +#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs +msgid "workspace.gradients.radial" +msgstr "Gradient radial" -#: src/app/main/ui/handoff/attributes/text.cljs -msgid "handoff.attributes.typography.text-decoration" -msgstr "Decorare Text" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.disable-dynamic-alignment" +msgstr "Dezactivează alinierea dinamică" -#: src/app/main/ui/handoff/attributes/text.cljs -msgid "handoff.attributes.typography.line-height" -msgstr "Înălțimea rândului" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.disable-scale-text" +msgstr "Dezactivează dimensionarea textului" -#: src/app/main/ui/handoff/attributes/text.cljs -msgid "handoff.attributes.typography.letter-spacing" -msgstr "Spațiere" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.disable-snap-grid" +msgstr "Dezactivați snap-ul la grilă" -#: src/app/main/ui/handoff/attributes/text.cljs -msgid "handoff.attributes.typography.font-style" -msgstr "Stil Font" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.enable-dynamic-alignment" +msgstr "Aliniere dinamică" -#: src/app/main/ui/handoff/attributes/text.cljs -msgid "handoff.attributes.typography.font-size" -msgstr "Dimensiune Font" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.enable-scale-text" +msgstr "Activează scalarea textului" -#: src/app/main/ui/handoff/attributes/text.cljs -msgid "handoff.attributes.typography.font-family" -msgstr "Familie de Fonturi" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.enable-snap-grid" +msgstr "Aliniază per grilă" -#: src/app/main/ui/handoff/attributes/text.cljs -msgid "handoff.attributes.typography" -msgstr "Tipografie" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.hide-assets" +msgstr "Ascunde obiectele" -#: src/app/main/ui/handoff/attributes/stroke.cljs -msgid "handoff.attributes.stroke.width" -msgstr "Lățime" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.hide-grid" +msgstr "Ascunde grila de ghidaj" -msgid "handoff.attributes.stroke.style.solid" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.hide-layers" +msgstr "Ascunde layere" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.hide-palette" +msgstr "Ascunde paleta de culori" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.hide-rules" +msgstr "Ascunde ghidul liniar" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.select-all" +msgstr "Selectează tot" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-assets" +msgstr "Afişează asset-uri" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-grid" +msgstr "Afişează sistemul grid" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-layers" +msgstr "Afişează layere" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-palette" +msgstr "Afişează paleta de culori" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-rules" +msgstr "Afişează Liniarul" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.save-error" +msgstr "Eroare în timpul salvării" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.saved" +msgstr "Salvat" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.saving" +msgstr "Salvare în curs" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.unsaved" +msgstr "Modificări nesalvate" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.viewer" +msgstr "Vizualizare (%s)" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.add" +msgstr "Adaugă" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.colors" +msgstr "%s culori" + +#: src/app/main/ui/workspace/colorpalette.cljs +msgid "workspace.libraries.colors.big-thumbnails" +msgstr "Thumbnail mare" + +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs +msgid "workspace.libraries.colors.file-library" +msgstr "Colecţie" + +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs +msgid "workspace.libraries.colors.recent-colors" +msgstr "Culori recente" + +#: src/app/main/ui/workspace/colorpicker.cljs +msgid "workspace.libraries.colors.save-color" +msgstr "Salvează stilul culorii" + +#: src/app/main/ui/workspace/colorpalette.cljs +msgid "workspace.libraries.colors.small-thumbnails" +msgstr "Thumbnail mic" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.components" +msgstr "%s componente" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.file-library" +msgstr "Colecţie" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.graphics" +msgstr "%s obiecte grafice" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.in-this-file" +msgstr "COLECŢIILE FIŞIERULUI" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.libraries" +msgstr "COLECŢII" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.library" +msgstr "COLECŢIE" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.no-libraries-need-sync" +msgstr "Nu există Colecţii Distribuite ce necesită update" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.no-matches-for" +msgstr "Nu au fost găsite asemănări pentru “%s“" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.no-shared-libraries-available" +msgstr "Nu există Colecţii Distribuite" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.search-shared-libraries" +msgstr "Caută în colecţiile distribuite" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.shared-libraries" +msgstr "COLECŢII DISTRIBUITE" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.libraries.text.multiple-typography" +msgstr "Tipografii" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.libraries.text.multiple-typography-tooltip" +msgstr "Decupleză tipograficele" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.typography" +msgstr "%s tipografice" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.update" +msgstr "Actualizaţi" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.updates" +msgstr "ACTUALIZĂRI" + +msgid "workspace.library.all" +msgstr "Toate colecţiile" + +msgid "workspace.library.libraries" +msgstr "Colecţii" + +msgid "workspace.library.own" +msgstr "Colecţiile mele" + +msgid "workspace.library.store" +msgstr "Stocaţi colecţiile" + +msgid "workspace.options.blur-options.background-blur" +msgstr "Fundal" + +msgid "workspace.options.blur-options.layer-blur" +msgstr "Strat" + +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +msgid "workspace.options.blur-options.title" +msgstr "Blur" + +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +msgid "workspace.options.blur-options.title.group" +msgstr "Blur pe grup" + +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +msgid "workspace.options.blur-options.title.multiple" +msgstr "Selecţie de blur" + +#: src/app/main/ui/workspace/sidebar/options/page.cljs +msgid "workspace.options.canvas-background" +msgstr "Fundal canvas" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs +msgid "workspace.options.component" +msgstr "Componentă" + +#: src/app/main/ui/workspace/sidebar/options.cljs +msgid "workspace.options.design" +msgstr "Design" + +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs +msgid "workspace.options.export" +msgstr "Exportă" + +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs +msgid "workspace.options.export-object" +msgstr "Exportă forma obiectului" + +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs +msgid "workspace.options.export.suffix" +msgstr "Sufix" + +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs +msgid "workspace.options.exporting-object" +msgstr "Se exportă…" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +msgid "workspace.options.fill" +msgstr "Umple" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.auto" +msgstr "Auto" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.column" +msgstr "Coloane" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.columns" +msgstr "Coloane" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.gutter" +msgstr "Spaţiere" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.height" +msgstr "Înălţime" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.margin" +msgstr "Margine" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.rows" +msgstr "Rânduri" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.set-default" +msgstr "Setează ca predefinit" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.size" +msgstr "Mărime" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.type" +msgstr "Tip" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.type.bottom" +msgstr "Jos" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.type.center" +msgstr "Centru" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.type.left" +msgstr "Stânga" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.type.right" +msgstr "Dreapta" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.type.stretch" +msgstr "Întinde" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.type.top" +msgstr "Sus" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.use-default" +msgstr "Foloseşte default" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.params.width" +msgstr "Lăţime" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.row" +msgstr "Rânduri" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.square" +msgstr "Pătrat" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +msgid "workspace.options.grid.title" +msgstr "Grilă & Layout" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +msgid "workspace.options.group-fill" +msgstr "Group fill" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.group-stroke" +msgstr "Group stroke" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.color" +msgstr "Culoare" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.color-burn" +msgstr "Color burn" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.color-dodge" +msgstr "Color dodge" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.darken" +msgstr "Întunecat" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.difference" +msgstr "Difference" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.exclusion" +msgstr "Exclusion" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.hard-light" +msgstr "Lumină Puternică" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.hue" +msgstr "Hue" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.lighten" +msgstr "Luminat" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.luminosity" +msgstr "Luminozitate" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.multiply" +msgstr "Multiplică" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.normal" +msgstr "Normal" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.overlay" +msgstr "Overlay" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.saturation" +msgstr "Saturaţie" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.screen" +msgstr "Screen" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.blend-mode.soft-light" +msgstr "Soft light" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.title" +msgstr "Layer" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.title.group" +msgstr "Grupează layere" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +msgid "workspace.options.layer-options.title.multiple" +msgstr "Layere selectate" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.navigate-to" +msgstr "Navighează la" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.none" +msgstr "Nici unul" + +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +msgid "workspace.options.position" +msgstr "Poziţie" + +#: src/app/main/ui/workspace/sidebar/options.cljs +msgid "workspace.options.prototype" +msgstr "Prototip" + +msgid "workspace.options.radius" +msgstr "Rază" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +msgid "workspace.options.radius.all-corners" +msgstr "Toate colţurile" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +msgid "workspace.options.radius.single-corners" +msgstr "Colţuri unice" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +msgid "workspace.options.rotation" +msgstr "Rotaţie" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.select-a-shape" +msgstr "Selectează o formă, o planşă sau grupează pentru a conecta o altă planşă." + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.select-artboard" +msgstr "Selectează planşa" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +msgid "workspace.options.selection-fill" +msgstr "Selection fill" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.selection-stroke" +msgstr "Selection stroke" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +msgid "workspace.options.shadow-options.blur" +msgstr "Blur" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +msgid "workspace.options.shadow-options.drop-shadow" +msgstr "Drop shadow" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +msgid "workspace.options.shadow-options.inner-shadow" +msgstr "Inner shadow" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +msgid "workspace.options.shadow-options.offsetx" +msgstr "X" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +msgid "workspace.options.shadow-options.offsety" +msgstr "Y" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +msgid "workspace.options.shadow-options.spread" +msgstr "Accentuare" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +msgid "workspace.options.shadow-options.title" +msgstr "Umbră" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +msgid "workspace.options.shadow-options.title.group" +msgstr "Group shadow" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +msgid "workspace.options.shadow-options.title.multiple" +msgstr "Selection shadows" + +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +msgid "workspace.options.size" +msgstr "Mărime" + +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs +msgid "workspace.options.size-presets" +msgstr "Dimensiuni presetate" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.stroke" +msgstr "Stroke" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.stroke.center" +msgstr "Centru" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.stroke.dashed" +msgstr "Dashed" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.stroke.dotted" +msgstr "Dotted" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.stroke.inner" +msgstr "Interior" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.stroke.mixed" +msgstr "Mixed" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.stroke.outer" +msgstr "Exterior" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.stroke.solid" msgstr "Solid" -msgid "handoff.attributes.stroke.style.none" -msgstr "Niciunul" +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.align-bottom" +msgstr "Aliniază jos" -msgid "handoff.attributes.stroke.style.mixed" -msgstr "Mixat" +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.align-center" +msgstr "Aliniază centru" -msgid "handoff.attributes.stroke.style.dotted" -msgstr "Punctat" +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.align-justify" +msgstr "Justify" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.align-left" +msgstr "Aliniază la stânga" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.align-middle" +msgstr "Aliniază la mijloc" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.align-right" +msgstr "Aliniază la dreapta" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.align-top" +msgstr "Aliniază sus" + +msgid "workspace.options.text-options.decoration" +msgstr "Decorare text" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.direction-ltr" +msgstr "LTR" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.direction-rtl" +msgstr "RTL" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.options.text-options.google" +msgstr "Google" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.grow-auto-height" +msgstr "Înălţime auto" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.grow-auto-width" +msgstr "Lăţime auto" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.grow-fixed" +msgstr "Fix" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.options.text-options.letter-spacing" +msgstr "Spaţiere Litere" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.options.text-options.line-height" +msgstr "Înălţime linii" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.options.text-options.lowercase" +msgstr "Minuscule" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.options.text-options.none" +msgstr "Nici unul" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.options.text-options.preset" +msgstr "Presetat" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.strikethrough" +msgstr "Strikethrough" + +msgid "workspace.options.text-options.text-case" +msgstr "Case" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.title" +msgstr "Text" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.title-group" +msgstr "Grupează text" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.title-selection" +msgstr "Selecţie text" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.options.text-options.titlecase" +msgstr "Încadrare Titlu" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +msgid "workspace.options.text-options.underline" +msgstr "Subliniază" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +msgid "workspace.options.text-options.uppercase" +msgstr "Majuscule" + +msgid "workspace.options.text-options.vertical-align" +msgstr "Aliniere verticală" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.use-play-button" +msgstr "Foloseşte butonul play din header pentru a porni vizualizarea prototip." + +msgid "workspace.path.actions.add-node" +msgstr "Adaugă nod (%s)" + +msgid "workspace.path.actions.delete-node" +msgstr "Şterge nod (%s)" + +msgid "workspace.path.actions.draw-nodes" +msgstr "Desenează noduri (%s)" + +msgid "workspace.path.actions.join-nodes" +msgstr "Adaugă noduri (%s)" + +msgid "workspace.path.actions.make-corner" +msgstr "În colţ (%s)" + +msgid "workspace.path.actions.make-curve" +msgstr "În curbă (%s)" + +msgid "workspace.path.actions.merge-nodes" +msgstr "Uneşte noduri (%s)" + +msgid "workspace.path.actions.move-nodes" +msgstr "Mută noduri (%s)" + +msgid "workspace.path.actions.separate-nodes" +msgstr "Separă noduri (%s)" + +msgid "workspace.path.actions.snap-nodes" +msgstr "Trage noduri (%s)" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.back" +msgstr "Trimite înapoi" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.backward" +msgstr "Trimite în urmă" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.copy" +msgstr "Copiază" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.create-component" +msgstr "Creează componentă" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.cut" +msgstr "Taie" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.delete" +msgstr "Şterge" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.detach-instance" +msgstr "Detaşează instanţă" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.duplicate" +msgstr "Duplică" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.edit" +msgstr "Editează" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.flip-horizontal" +msgstr "Întoarce pe orizontală" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.flip-vertical" +msgstr "Întoarce pe verticală" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.forward" +msgstr "Aduceţi înainte" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.front" +msgstr "Aduceţi în faţă" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.go-main" +msgstr "Mergi la componenta principală" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.group" +msgstr "Grupează" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.hide" +msgstr "Ascunde" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.lock" +msgstr "Blochează" + +#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.mask" +msgstr "Maschează" + +#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.paste" +msgstr "Lipeşte" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.reset-overrides" +msgstr "Resetează suprascrierile" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.show" +msgstr "Afişează" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.show-main" +msgstr "Afişează componenta principală" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.ungroup" +msgstr "Degrupează" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.unlock" +msgstr "Deblochează" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.unmask" +msgstr "Demaschează" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.update-main" +msgstr "Actualizaţi principala componentă" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.sidebar.history" +msgstr "Istoric (%s)" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.sidebar.layers" +msgstr "Layere (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/handoff/attributes/svg.cljs +msgid "workspace.sidebar.options.svg-attrs.title" +msgstr "Atribute SVG importate" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs +msgid "workspace.sidebar.sitemap" +msgstr "Pagini" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.sitemap" +msgstr "Harta site-ului" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.assets" +msgstr "Obiecte (%s)" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.color-palette" +msgstr "Paletă de culori (%s)" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.comments" +msgstr "Comentarii (%s)" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.curve" +msgstr "Curbe (%s)" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.ellipse" +msgstr "Elipsă (%s)" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.frame" +msgstr "Planşă de lucru (%s)" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.image" +msgstr "Imagine (%s)" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.move" +msgstr "Poziţionează" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.path" +msgstr "Cale (%s)" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.rect" +msgstr "Dreptunghi (%s)" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.text" +msgstr "Text (%s)" + +#: src/app/main/ui/workspace/sidebar/history.cljs +msgid "workspace.undo.empty" +msgstr "Nu sunt modificări în istoric" + +#: src/app/main/ui/workspace/sidebar/history.cljs +msgid "workspace.undo.entry.delete" +msgstr "Şters %s" + +#: src/app/main/ui/workspace/sidebar/history.cljs +msgid "workspace.undo.entry.modify" +msgstr "Modificat %s" + +#: src/app/main/ui/workspace/sidebar/history.cljs +msgid "workspace.undo.entry.move" +msgstr "Obiecte mutate" + +msgid "workspace.undo.entry.multiple.circle" +msgstr "cercuri" + +msgid "workspace.undo.entry.multiple.color" +msgstr "Culori" + +msgid "workspace.undo.entry.multiple.component" +msgstr "componente" + +msgid "workspace.undo.entry.multiple.curve" +msgstr "curbe" + +msgid "workspace.undo.entry.multiple.frame" +msgstr "planşă de lucru" + +msgid "workspace.undo.entry.multiple.group" +msgstr "grupuri" + +msgid "workspace.undo.entry.multiple.media" +msgstr "obiecte grafice" + +msgid "workspace.undo.entry.multiple.multiple" +msgstr "obiecte" + +msgid "workspace.undo.entry.multiple.page" +msgstr "pagini" + +msgid "workspace.undo.entry.multiple.path" +msgstr "căi" + +msgid "workspace.undo.entry.multiple.rect" +msgstr "dreptunghiuri" + +msgid "workspace.undo.entry.multiple.shape" +msgstr "forme" + +msgid "workspace.undo.entry.multiple.text" +msgstr "text" + +msgid "workspace.undo.entry.multiple.typography" +msgstr "obiecte tipografice" + +#: src/app/main/ui/workspace/sidebar/history.cljs +msgid "workspace.undo.entry.new" +msgstr "Nou %s" + +msgid "workspace.undo.entry.single.circle" +msgstr "cerc" + +msgid "workspace.undo.entry.single.color" +msgstr "culoare" + +msgid "workspace.undo.entry.single.component" +msgstr "componentă" + +msgid "workspace.undo.entry.single.curve" +msgstr "curbă" + +msgid "workspace.undo.entry.single.frame" +msgstr "planşă de lucru" + +msgid "workspace.undo.entry.single.group" +msgstr "grup" + +msgid "workspace.undo.entry.single.image" +msgstr "imagine" + +msgid "workspace.undo.entry.single.media" +msgstr "obiect grafic" + +msgid "workspace.undo.entry.single.multiple" +msgstr "obiect" + +msgid "workspace.undo.entry.single.page" +msgstr "pagină" + +msgid "workspace.undo.entry.single.path" +msgstr "cale" + +msgid "workspace.undo.entry.single.rect" +msgstr "dreptunghi" + +msgid "workspace.undo.entry.single.shape" +msgstr "formă" + +msgid "workspace.undo.entry.single.text" +msgstr "text" + +msgid "workspace.undo.entry.single.typography" +msgstr "obiect tipografic" + +#: src/app/main/ui/workspace/sidebar/history.cljs +msgid "workspace.undo.entry.unknown" +msgstr "Operaţiune terminată %s" + +#: src/app/main/ui/workspace/sidebar/history.cljs +msgid "workspace.undo.title" +msgstr "Istoric" + +#: src/app/main/data/workspace/libraries.cljs +msgid "workspace.updates.dismiss" +msgstr "Renunţă" + +#: src/app/main/data/workspace/libraries.cljs +msgid "workspace.updates.there-are-updates" +msgstr "Există actualizări în colecţiile distribuite" + +#: src/app/main/data/workspace/libraries.cljs +msgid "workspace.updates.update" +msgstr "Actualizează" + +msgid "workspace.viewport.click-to-close-path" +msgstr "Click pentru a închide calea" \ No newline at end of file diff --git a/frontend/translations/ru.po b/frontend/translations/ru.po index 055bd29d5..9118ae535 100644 --- a/frontend/translations/ru.po +++ b/frontend/translations/ru.po @@ -1181,4 +1181,4 @@ msgid "workspace.updates.update" msgstr "" msgid "workspace.viewport.click-to-close-path" -msgstr "Кликни чтобы закончить фигуру" +msgstr "Кликни чтобы закончить фигуру" \ No newline at end of file diff --git a/frontend/translations/tr.po b/frontend/translations/tr.po index 78fda6a12..a947e2223 100644 --- a/frontend/translations/tr.po +++ b/frontend/translations/tr.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2021-05-17 21:32+0000\n" "Last-Translator: Gizem Akgüney \n" -"Language-Team: Turkish \n" +"Language-Team: Turkish " +"\n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -79,10 +79,18 @@ msgstr "Github ile giriş yap" msgid "auth.login-with-gitlab-submit" msgstr "Gitlab ile giriş yap" +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-google-submit" +msgstr "Google ile Giriş Yap" + #: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP ile giriş yap" +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-oidc-submit" +msgstr "OpenID (SSO) ile Giriş Yap" + #: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Yeni bir parola gir" @@ -200,6 +208,15 @@ msgstr "%s dosyanın kopyasını oluştur" msgid "dashboard.empty-files" msgstr "Burada hiç dosyan yok" +#, markdown +msgid "dashboard.fonts.hero-text2" +msgstr "" +"Sadece kendinize ait veya Penpot'ta kullanılabilecek bir lisansa sahip olan " +"fontları yükleyebilirsiniz. [Penpot's Terms of Service] içindeki İçerik " +"hakları bölümünden detaylı bilgi alabilirsiniz " +"(https://penpot.app/terms.html). Ayrıca [font licensing](2) hakkında daha " +"fazla bilgi almak isteyebilirsiniz." + #: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Takıma davet et" @@ -232,10 +249,18 @@ msgstr "Başkta takıma taşı" msgid "dashboard.new-file" msgstr "Yeni Dosya" +#: src/app/main/data/dashboard.cljs +msgid "dashboard.new-file-prefix" +msgstr "Yeni Dosya" + #: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "Yeni Proje" +#: src/app/main/data/dashboard.cljs +msgid "dashboard.new-project-prefix" +msgstr "Yeni Proje" + #: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "%s için hiç sonuç bulunamadı" @@ -428,6 +453,10 @@ msgstr "Bir şeyler ters gitti." msgid "errors.google-auth-not-enabled" msgstr "Google ile oturum açma devre dışı bırakıldı" +#: src/app/main/ui/components/color_input.cljs +msgid "errors.invalid-color" +msgstr "Geçersiz renk" + #: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "LDAP ile oturum açma devre dışı bırakıldı." @@ -464,151 +493,261 @@ msgstr "Parolalar eşleşmedi" msgid "errors.password-too-short" msgstr "Parola en az 8 karakterden oluşmalı" -#: src/app/main/ui/settings/profile.cljs -msgid "labels.update" -msgstr "Güncelle" +#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs +msgid "errors.profile-is-muted" +msgstr "" +"Profilinizde sessize alınmış e-postalar var (spam raporları veya yüksek " +"geri dönüşler sebebiyle)." -#: src/app/main/ui/static.cljs -msgid "labels.sign-out" -msgstr "Çıkış yap" +#: src/app/main/ui/auth/register.cljs +msgid "errors.registration-disabled" +msgstr "Kayıt olma şu anda devre dışı." -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs -msgid "labels.show-your-comments" -msgstr "Yalnızca kendi yorumlarımı göster" +msgid "errors.terms-privacy-agreement-invalid" +msgstr "Hizmet şartlarımızı ve gizlilik politikamızı kabul etmelisin." -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs -msgid "labels.show-all-comments" -msgstr "Tüm yorumları göster" +#: src/app/main/ui/auth/verify_token.cljs +msgid "errors.token-expired" +msgstr "Jetonun süresi geçti" -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.shared-libraries" -msgstr "Paylaşılan Kitaplıklar" +#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs +msgid "errors.unexpected-error" +msgstr "Beklenmedik bir hata oluştu." -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.settings" -msgstr "Ayarlar" +#: src/app/main/ui/auth/verify_token.cljs +msgid "errors.unexpected-token" +msgstr "Bilinmeyen jeton" -#: src/app/main/ui/static.cljs -msgid "labels.service-unavailable.main-message" -msgstr "Hizmet Kullanılamıyor" +#: src/app/main/ui/auth/login.cljs +msgid "errors.wrong-credentials" +msgstr "Kullanıcı adı veya parola yanlış gözüküyor." -#: src/app/main/ui/static.cljs -msgid "labels.service-unavailable.desc-message" -msgstr "Sistemlerimizin programlı bakımını yapıyoruz." +#: src/app/main/ui/settings/password.cljs +msgid "errors.wrong-old-password" +msgstr "Eski parola yanlış" #: src/app/main/ui/settings/feedback.cljs -msgid "labels.sending" -msgstr "Gönderiliyor..." +msgid "feedback.chat-start" +msgstr "Sohbete katıl" #: src/app/main/ui/settings/feedback.cljs -msgid "labels.send" -msgstr "Gönder" +msgid "feedback.chat-subtitle" +msgstr "Sohbet etmek ister misin? Glitter'da bizimle sohbet edebilirsin" -msgid "labels.save" -msgstr "Kaydet" +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.description" +msgstr "Açıklama" -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.role" -msgstr "Rol" +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.discussions-go-to" +msgstr "Tartışmalar bölümüne git" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs -msgid "labels.retry" -msgstr "Yeniden dene" +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.discussions-title" +msgstr "Takım tartışmaları" -#: src/app/main/ui/dashboard/team_form.cljs -msgid "labels.rename-team" -msgstr "Takımı yeniden adlandır" +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.subject" +msgstr "Konu" -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "labels.rename" -msgstr "Yeniden adlandır" +#: src/app/main/ui/settings/feedback.cljs +msgid "feedback.title" +msgstr "E-posta" -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -msgid "labels.remove" -msgstr "Kaldır" +#: src/app/main/ui/settings/password.cljs +msgid "generic.error" +msgstr "Bir hata oluştu" -#: src/app/main/ui/settings/sidebar.cljs -msgid "labels.release-notes" -msgstr "Sürüm notları" +#: src/app/main/ui/handoff/attributes/blur.cljs +msgid "handoff.attributes.blur" +msgstr "Bulanıklaştır" -msgid "labels.recent" -msgstr "Son" +#: src/app/main/ui/handoff/attributes/blur.cljs +msgid "handoff.attributes.blur.value" +msgstr "Değer" -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.projects" -msgstr "Projeler" +#: src/app/main/ui/handoff/attributes/common.cljs +msgid "handoff.attributes.color.hex" +msgstr "HEX" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.profile" -msgstr "Profil" +#: src/app/main/ui/handoff/attributes/common.cljs +msgid "handoff.attributes.color.hsla" +msgstr "HSLA" -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.permissions" -msgstr "İzinler" +#: src/app/main/ui/handoff/attributes/common.cljs +msgid "handoff.attributes.color.rgba" +msgstr "RGBA" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.password" -msgstr "Parola" +#: src/app/main/ui/handoff/attributes/fill.cljs +msgid "handoff.attributes.fill" +msgstr "Doldur" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs -msgid "labels.owner" -msgstr "Sahip" +#: src/app/main/ui/handoff/attributes/image.cljs +msgid "handoff.attributes.image.download" +msgstr "Kaynak görselini indir" + +#: src/app/main/ui/handoff/attributes/image.cljs +msgid "handoff.attributes.image.height" +msgstr "Yükseklik" + +#: src/app/main/ui/handoff/attributes/image.cljs +msgid "handoff.attributes.image.width" +msgstr "Genişlik" + +msgid "handoff.attributes.typography.text-decoration.none" +msgstr "Hiçbiri" + +msgid "handoff.attributes.typography.text-transform.lowercase" +msgstr "Küçük Harf" + +msgid "handoff.attributes.typography.text-transform.none" +msgstr "Hiçbiri" + +msgid "handoff.attributes.typography.text-transform.uppercase" +msgstr "Büyük Harf" + +msgid "handoff.tabs.code.selected.circle" +msgstr "Daire" + +msgid "handoff.tabs.code.selected.curve" +msgstr "Eğri" + +msgid "handoff.tabs.code.selected.group" +msgstr "Grup" + +msgid "handoff.tabs.code.selected.image" +msgstr "Görsel" + +#: src/app/main/ui/handoff/right_sidebar.cljs +msgid "handoff.tabs.code.selected.multiple" +msgstr "%s Seçildi" + +msgid "handoff.tabs.code.selected.path" +msgstr "Yol" + +msgid "handoff.tabs.code.selected.rect" +msgstr "Dikdörtgen" + +msgid "handoff.tabs.code.selected.svg-raw" +msgstr "SVG" + +msgid "handoff.tabs.code.selected.text" +msgstr "Metin" + +#: src/app/main/ui/handoff/right_sidebar.cljs +msgid "handoff.tabs.info" +msgstr "Bilgi" + +msgid "history.alert-message" +msgstr "%s sürümünü görüyorsun" + +msgid "labels.accept" +msgstr "Kabul et" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.admin" +msgstr "Yönetici" #: src/app/main/ui/workspace/comments.cljs -msgid "labels.only-yours" -msgstr "Sadece seninkiler" +msgid "labels.all" +msgstr "Hepsi" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.cancel" +msgstr "İptal" + +msgid "labels.centered" +msgstr "Orta" + +#: src/app/main/ui/dashboard/comments.cljs +msgid "labels.comments" +msgstr "Yorumlar" #: src/app/main/ui/settings/password.cljs -msgid "labels.old-password" -msgstr "Eski parola" +msgid "labels.confirm-password" +msgstr "Parolayı onayla" -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.num-of-projects" -msgid_plural "labels.num-of-projects" -msgstr[0] "1 proje" -msgstr[1] "%s proje" +msgid "labels.content" +msgstr "İçerik" -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.num-of-files" -msgid_plural "labels.num-of-files" -msgstr[0] "1 dosya" -msgstr[1] "%s dosya" +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "labels.create" +msgstr "Oluştur" -#: src/app/main/ui/static.cljs -msgid "labels.not-found.main-message" -msgstr "Oops!" +#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs +msgid "labels.create-team" +msgstr "Yeni takım oluştur" -#: src/app/main/ui/static.cljs -msgid "labels.not-found.desc-message" -msgstr "Bu sayfa mevcut olmayabilir veya erişim izniniz olmayabilir." +#: src/app/main/ui/dashboard/team_form.cljs +msgid "labels.create-team.placeholder" +msgstr "Yeni takım adı gir" -#: src/app/main/ui/static.cljs -msgid "labels.not-found.auth-info" -msgstr "Şu şekilde oturum açtınız:" +#: src/app/main/ui/settings/sidebar.cljs +msgid "labels.dashboard" +msgstr "Kontrol paneli" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs -msgid "labels.no-comments-available" -msgstr "Bekleyen yorum bildirimi yok" +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.delete" +msgstr "Sil" -#: src/app/main/ui/settings/password.cljs -msgid "labels.new-password" -msgstr "Yeni parola" +#: src/app/main/ui/comments.cljs +msgid "labels.delete-comment" +msgstr "Yorumu sil" -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.name" -msgstr "Ad" +#: src/app/main/ui/comments.cljs +msgid "labels.delete-comment-thread" +msgstr "Mesaj dizisini sil" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.members" -msgstr "Üyeler" +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.delete-multi-files" +msgstr "%s dosyayı sil" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.logout" -msgstr "Çıkış Yap" +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.drafts" +msgstr "Taslak" -#: src/app/main/ui/settings/options.cljs -msgid "labels.language" -msgstr "Dil" +#: src/app/main/ui/comments.cljs +msgid "labels.edit" +msgstr "Düzenle" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.editor" +msgstr "Editör" + +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.email" +msgstr "E-posta" + +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.feedback-disabled" +msgstr "Geri bildirim devre dışı bırakıldı" + +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.feedback-sent" +msgstr "Geri bildirim gönderildi" + +msgid "labels.font-family" +msgstr "Font Ailesi" + +msgid "labels.font-variant" +msgstr "Stil" + +msgid "labels.fonts" +msgstr "Fontlar" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.give-feedback" +msgstr "Geri bildirimde bulun" + +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +msgid "labels.hide-resolved-comments" +msgstr "Çözülmüş yorumları gizle" + +msgid "labels.images" +msgstr "Görseller" + +msgid "labels.installed-fonts" +msgstr "Yüklenmiş fontlar" #: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" @@ -616,293 +755,160 @@ msgstr "" "Kötü bir şey oldu. Lütfen işlemi yeniden deneyin ve sorun devam ederse " "destek ile iletişime geçin." -msgid "labels.images" -msgstr "Görseller" +#: src/app/main/ui/settings/options.cljs +msgid "labels.language" +msgstr "Dil" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs -msgid "labels.hide-resolved-comments" -msgstr "Çözülmüş yorumları gizle" +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.logout" +msgstr "Çıkış Yap" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.give-feedback" -msgstr "Geri bildirimde bulun" +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.members" +msgstr "Üyeler" -#: src/app/main/ui/settings/feedback.cljs -msgid "labels.feedback-sent" -msgstr "Geri bildirim gönderildi" - -#: src/app/main/ui/settings/feedback.cljs -msgid "labels.feedback-disabled" -msgstr "Geri bildirim devre dışı bırakıldı" - -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs -msgid "labels.email" -msgstr "E-posta" - -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs -msgid "labels.editor" -msgstr "Editör" - -#: src/app/main/ui/comments.cljs -msgid "labels.edit" -msgstr "Düzenle" - -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "labels.drafts" -msgstr "Taslak" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "labels.delete-multi-files" -msgstr "%s dosyayı sil" - -#: src/app/main/ui/comments.cljs -msgid "labels.delete-comment-thread" -msgstr "Mesaj dizisini sil" - -#: src/app/main/ui/comments.cljs -msgid "labels.delete-comment" -msgstr "Yorumu sil" - -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "labels.delete" -msgstr "Sil" - -#: src/app/main/ui/settings/sidebar.cljs -msgid "labels.dashboard" -msgstr "Kontrol paneli" - -#: src/app/main/ui/dashboard/team_form.cljs -msgid "labels.create-team.placeholder" -msgstr "Yeni takım adı gir" - -#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs -msgid "labels.create-team" -msgstr "Yeni takım oluştur" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "labels.create" -msgstr "Oluştur" - -msgid "labels.content" -msgstr "İçerik" +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.name" +msgstr "Ad" #: src/app/main/ui/settings/password.cljs -msgid "labels.confirm-password" -msgstr "Parolayı onayla" +msgid "labels.new-password" +msgstr "Yeni parola" -#: src/app/main/ui/dashboard/comments.cljs -msgid "labels.comments" -msgstr "Yorumlar" +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs +msgid "labels.no-comments-available" +msgstr "Bekleyen yorum bildirimi yok" -msgid "labels.centered" -msgstr "Orta" +#: src/app/main/ui/static.cljs +msgid "labels.not-found.auth-info" +msgstr "Şu şekilde oturum açtınız:" -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.cancel" -msgstr "İptal" +#: src/app/main/ui/static.cljs +msgid "labels.not-found.desc-message" +msgstr "Bu sayfa mevcut olmayabilir veya erişim izniniz olmayabilir." + +#: src/app/main/ui/static.cljs +msgid "labels.not-found.main-message" +msgstr "Oops!" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.num-of-files" +msgid_plural "labels.num-of-files" +msgstr[0] "1 dosya" +msgstr[1] "%s dosya" + +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.num-of-projects" +msgid_plural "labels.num-of-projects" +msgstr[0] "1 proje" +msgstr[1] "%s proje" + +#: src/app/main/ui/settings/password.cljs +msgid "labels.old-password" +msgstr "Eski parola" #: src/app/main/ui/workspace/comments.cljs -msgid "labels.all" -msgstr "Hepsi" +msgid "labels.only-yours" +msgstr "Sadece seninkiler" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs -msgid "labels.admin" -msgstr "Yönetici" +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.owner" +msgstr "Sahip" -msgid "labels.accept" -msgstr "Kabul et" +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.password" +msgstr "Parola" -msgid "history.alert-message" -msgstr "%s sürümünü görüyorsun" +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.permissions" +msgstr "İzinler" -#: src/app/main/ui/handoff/right_sidebar.cljs -msgid "handoff.tabs.info" -msgstr "Bilgi" +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.profile" +msgstr "Profil" -msgid "handoff.tabs.code.selected.text" -msgstr "Metin" +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.projects" +msgstr "Projeler" -msgid "handoff.tabs.code.selected.svg-raw" -msgstr "SVG" +msgid "labels.recent" +msgstr "Son" -msgid "handoff.tabs.code.selected.rect" -msgstr "Dikdörtgen" +#: src/app/main/ui/settings/sidebar.cljs +msgid "labels.release-notes" +msgstr "Sürüm notları" -msgid "handoff.tabs.code.selected.path" -msgstr "Yol" +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +msgid "labels.remove" +msgstr "Kaldır" -#: src/app/main/ui/handoff/right_sidebar.cljs -msgid "handoff.tabs.code.selected.multiple" -msgstr "%s Seçildi" +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "labels.rename" +msgstr "Yeniden adlandır" -msgid "handoff.tabs.code.selected.image" -msgstr "Görsel" +#: src/app/main/ui/dashboard/team_form.cljs +msgid "labels.rename-team" +msgstr "Takımı yeniden adlandır" -msgid "handoff.tabs.code.selected.group" -msgstr "Grup" +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +msgid "labels.retry" +msgstr "Yeniden dene" -msgid "handoff.tabs.code.selected.curve" -msgstr "Eğri" +#: src/app/main/ui/dashboard/team.cljs +msgid "labels.role" +msgstr "Rol" -msgid "handoff.tabs.code.selected.circle" -msgstr "Daire" - -msgid "handoff.attributes.typography.text-transform.uppercase" -msgstr "Büyük Harf" - -msgid "handoff.attributes.typography.text-transform.none" -msgstr "Hiçbiri" - -msgid "handoff.attributes.typography.text-transform.lowercase" -msgstr "Küçük Harf" - -msgid "handoff.attributes.typography.text-decoration.none" -msgstr "Hiçbiri" - -#: src/app/main/ui/handoff/attributes/image.cljs -msgid "handoff.attributes.image.width" -msgstr "Genişlik" - -#: src/app/main/ui/handoff/attributes/image.cljs -msgid "handoff.attributes.image.height" -msgstr "Yükseklik" - -#: src/app/main/ui/handoff/attributes/image.cljs -msgid "handoff.attributes.image.download" -msgstr "Kaynak görselini indir" - -#: src/app/main/ui/handoff/attributes/fill.cljs -msgid "handoff.attributes.fill" -msgstr "Doldur" - -#: src/app/main/ui/handoff/attributes/common.cljs -msgid "handoff.attributes.color.rgba" -msgstr "RGBA" - -#: src/app/main/ui/handoff/attributes/common.cljs -msgid "handoff.attributes.color.hsla" -msgstr "HSLA" - -#: src/app/main/ui/handoff/attributes/common.cljs -msgid "handoff.attributes.color.hex" -msgstr "HEX" - -#: src/app/main/ui/handoff/attributes/blur.cljs -msgid "handoff.attributes.blur.value" -msgstr "Değer" - -#: src/app/main/ui/handoff/attributes/blur.cljs -msgid "handoff.attributes.blur" -msgstr "Bulanıklaştır" - -#: src/app/main/ui/settings/password.cljs -msgid "generic.error" -msgstr "Bir hata oluştu" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.title" -msgstr "E-posta" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.subject" -msgstr "Konu" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.discussions-title" -msgstr "Takım tartışmaları" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.discussions-go-to" -msgstr "Tartışmalar bölümüne git" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.description" -msgstr "Açıklama" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.chat-subtitle" -msgstr "Sohbet etmek ister misin? Glitter'da bizimle sohbet edebilirsin" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.chat-start" -msgstr "Sohbete katıl" - -#: src/app/main/ui/settings/password.cljs -msgid "errors.wrong-old-password" -msgstr "Eski parola yanlış" - -#: src/app/main/ui/auth/login.cljs -msgid "errors.wrong-credentials" -msgstr "Kullanıcı adı veya parola yanlış gözüküyor." - -#: src/app/main/ui/auth/verify_token.cljs -msgid "errors.unexpected-token" -msgstr "Bilinmeyen jeton" - -#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs -msgid "errors.unexpected-error" -msgstr "Beklenmedik bir hata oluştu." - -#: src/app/main/ui/auth/verify_token.cljs -msgid "errors.token-expired" -msgstr "Jetonun süresi geçti" - -msgid "errors.terms-privacy-agreement-invalid" -msgstr "Hizmet şartlarımızı ve gizlilik politikamızı kabul etmelisin." - -#: src/app/main/ui/auth/register.cljs -msgid "errors.registration-disabled" -msgstr "Kayıt olma şu anda devre dışı." - -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs -msgid "errors.profile-is-muted" -msgstr "" -"Profilinizde sessize alınmış e-postalar var (spam raporları veya yüksek geri " -"dönüşler sebebiyle)." - -#: src/app/main/ui/components/color_input.cljs -msgid "errors.invalid-color" -msgstr "Geçersiz renk" - -#: src/app/main/data/dashboard.cljs -msgid "dashboard.new-project-prefix" -msgstr "Yeni Proje" - -#: src/app/main/data/dashboard.cljs -msgid "dashboard.new-file-prefix" -msgstr "Yeni Dosya" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-with-oidc-submit" -msgstr "OpenID (SSO) ile Giriş Yap" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-with-google-submit" -msgstr "Google ile Giriş Yap" - -#, markdown -msgid "dashboard.fonts.hero-text2" -msgstr "" -"Sadece kendinize ait veya Penpot'ta kullanılabilecek bir lisansa sahip olan " -"fontları yükleyebilirsiniz. [Penpot's Terms of Service] içindeki İçerik " -"hakları bölümünden detaylı bilgi alabilirsiniz (https://penpot.app/terms." -"html). Ayrıca [font licensing](2) hakkında daha fazla bilgi almak " -"isteyebilirsiniz." +msgid "labels.save" +msgstr "Kaydet" msgid "labels.search-font" msgstr "Font ara" -msgid "labels.font-variant" -msgstr "Stil" +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.send" +msgstr "Gönder" -msgid "labels.font-family" -msgstr "Font Ailesi" +#: src/app/main/ui/settings/feedback.cljs +msgid "labels.sending" +msgstr "Gönderiliyor..." -msgid "labels.installed-fonts" -msgstr "Yüklenmiş fontlar" +#: src/app/main/ui/static.cljs +msgid "labels.service-unavailable.desc-message" +msgstr "Sistemlerimizin programlı bakımını yapıyoruz." -msgid "labels.fonts" -msgstr "Fontlar" +#: src/app/main/ui/static.cljs +msgid "labels.service-unavailable.main-message" +msgstr "Hizmet Kullanılamıyor" + +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.settings" +msgstr "Ayarlar" + +#: src/app/main/ui/dashboard/sidebar.cljs +msgid "labels.shared-libraries" +msgstr "Paylaşılan Kitaplıklar" + +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +msgid "labels.show-all-comments" +msgstr "Tüm yorumları göster" + +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +msgid "labels.show-your-comments" +msgstr "Yalnızca kendi yorumlarımı göster" + +#: src/app/main/ui/static.cljs +msgid "labels.sign-out" +msgstr "Çıkış yap" + +#: src/app/main/ui/settings/profile.cljs +msgid "labels.update" +msgstr "Güncelle" + +msgid "labels.upload" +msgstr "Yükle" + +msgid "labels.uploading" +msgstr "Yükleniyor..." msgid "modals.delete-font.message" msgstr "" @@ -912,12 +918,6 @@ msgstr "" msgid "modals.delete-font.title" msgstr "Fontu sil" -msgid "labels.uploading" -msgstr "Yükleniyor..." - -msgid "labels.upload" -msgstr "Yükle" - #: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" -msgstr "Fontlar - %s - Penpot" +msgstr "Fontlar - %s - Penpot" \ No newline at end of file diff --git a/frontend/translations/zh_CN.po b/frontend/translations/zh_CN.po index 636c10c8f..481883c52 100644 --- a/frontend/translations/zh_CN.po +++ b/frontend/translations/zh_CN.po @@ -2220,4 +2220,4 @@ msgid "workspace.updates.update" msgstr "更新" msgid "workspace.viewport.click-to-close-path" -msgstr "单击以闭合路径" +msgstr "单击以闭合路径" \ No newline at end of file From 42072f2584cf149ecc61e3f060db0da7df9076a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Fri, 7 May 2021 16:17:38 +0200 Subject: [PATCH 117/135] :bug: Add filter to remove groups without content in all files --- .../tests/test_common_pages_migrations.clj | 94 +++++++++++++++++++ common/app/common/pages/common.cljc | 2 +- common/app/common/pages/migrations.cljc | 43 +++++++++ frontend/shadow-cljs.edn | 6 +- frontend/src/app/util/storage.cljs | 24 ++--- frontend/tests/app/test_components_sync.cljs | 28 +++--- frontend/tests/app/test_shapes.cljs | 4 - 7 files changed, 170 insertions(+), 31 deletions(-) create mode 100644 backend/tests/app/tests/test_common_pages_migrations.clj diff --git a/backend/tests/app/tests/test_common_pages_migrations.clj b/backend/tests/app/tests/test_common_pages_migrations.clj new file mode 100644 index 000000000..4e8adebd6 --- /dev/null +++ b/backend/tests/app/tests/test_common_pages_migrations.clj @@ -0,0 +1,94 @@ +;; 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) UXBOX Labs SL + +(ns app.tests.test-common-pages-migrations + (:require + [clojure.test :as t] + [clojure.pprint :refer [pprint]] + [promesa.core :as p] + [mockery.core :refer [with-mock]] + [app.common.data :as d] + [app.common.pages :as cp] + [app.common.pages.migrations :as cpm] + [app.common.uuid :as uuid] + [app.tests.helpers :as th])) + +(t/deftest test-migration-8-1 + (let [page-id (uuid/custom 0 0) + objects [{:type :rect :id (uuid/custom 1 0)} + {:type :group + :id (uuid/custom 1 1) + :selrect {} + :shapes [(uuid/custom 1 2) (uuid/custom 1 0)]} + {:type :group + :id (uuid/custom 1 2) + :selrect {} + :shapes [(uuid/custom 1 3)]} + {:type :group + :id (uuid/custom 1 3) + :selrect {} + :shapes [(uuid/custom 1 4)]} + {:type :group + :id (uuid/custom 1 4) + :selrect {} + :shapes [(uuid/custom 1 5)]} + {:type :path :id (uuid/custom 1 5)}] + + data {:pages-index {page-id {:objects (d/index-by :id objects)}} + :components {} + :version 7} + + res (cpm/migrate-data data)] + + (pprint data) + (pprint res) + + (t/is (= (dissoc data :version) + (dissoc res :version))))) + +(t/deftest test-migration-8-2 + (let [page-id (uuid/custom 0 0) + objects [{:type :rect :id (uuid/custom 1 0)} + {:type :group + :id (uuid/custom 1 1) + :selrect {} + :shapes [(uuid/custom 1 2) (uuid/custom 1 0)]} + {:type :group + :id (uuid/custom 1 2) + :selrect {} + :shapes [(uuid/custom 1 3)]} + {:type :group + :id (uuid/custom 1 3) + :selrect {} + :shapes [(uuid/custom 1 4)]} + {:type :group + :id (uuid/custom 1 4) + :selrect {} + :shapes []} + {:type :path :id (uuid/custom 1 5)}] + + data {:pages-index {page-id {:objects (d/index-by :id objects)}} + :components {} + :version 7} + + expct (-> data + (update-in [:pages-index page-id :objects] dissoc + (uuid/custom 1 2) + (uuid/custom 1 3) + (uuid/custom 1 4)) + (update-in [:pages-index page-id :objects (uuid/custom 1 1) :shapes] + (fn [shapes] + (let [id (uuid/custom 1 2)] + (into [] (remove #(= id %)) shapes))))) + + res (cpm/migrate-data data)] + + (pprint res) + (pprint expct) + + (t/is (= (dissoc expct :version) + (dissoc res :version))) + )) diff --git a/common/app/common/pages/common.cljc b/common/app/common/pages/common.cljc index f439b2cf4..9a39105bf 100644 --- a/common/app/common/pages/common.cljc +++ b/common/app/common/pages/common.cljc @@ -8,7 +8,7 @@ (:require [app.common.uuid :as uuid])) -(def file-version 7) +(def file-version 8) (def default-color "#b1b2b5") ;; $color-gray-20 (def root uuid/zero) diff --git a/common/app/common/pages/migrations.cljc b/common/app/common/pages/migrations.cljc index fd254d87b..8e93da804 100644 --- a/common/app/common/pages/migrations.cljc +++ b/common/app/common/pages/migrations.cljc @@ -179,3 +179,46 @@ (update data :pages-index #(d/mapm update-page %)))) + +;; Remove groups without any shape, both in pages and components + +(defmethod migrate 8 + [data] + (letfn [(clean-parents [obj deleted?] + (d/update-when obj :shapes + (fn [shapes] + (into [] (remove deleted?) shapes)))) + + (obj-is-empty? [obj] + (and (= (:type obj) :group) + (or (empty? (:shapes obj)) + (nil? (:selrect obj))))) + + (clean-objects [objects] + (loop [entries (seq objects) + deleted #{} + result objects] + (let [[id obj :as entry] (first entries)] + (if entry + (if (obj-is-empty? obj) + (recur (rest entries) + (conj deleted id) + (dissoc result id)) + (recur (rest entries) + deleted + result)) + [(count deleted) + (d/mapm #(clean-parents %2 deleted) result)])))) + + (clean-container [_ container] + (loop [n 0 + objects (:objects container)] + (let [[deleted objects] (clean-objects objects)] + (if (and (pos? deleted) (< n 1000)) + (recur (inc n) objects) + (assoc container :objects objects)))))] + + (-> data + (update :pages-index #(d/mapm clean-container %)) + (d/update-when :components #(d/mapm clean-container %))))) + diff --git a/frontend/shadow-cljs.edn b/frontend/shadow-cljs.edn index 3da0b47f9..b668fa2d4 100644 --- a/frontend/shadow-cljs.edn +++ b/frontend/shadow-cljs.edn @@ -62,6 +62,10 @@ {:target :node-test :output-to "target/tests.js" :ns-regexp "^app.test-" - :autorun true}}} + :autorun true + :compiler-options + {:output-feature-set :es8 + :output-wrapper false + :warnings {:fn-deprecated false}}}}} diff --git a/frontend/src/app/util/storage.cljs b/frontend/src/app/util/storage.cljs index b03c7ea61..aecd1f03a 100644 --- a/frontend/src/app/util/storage.cljs +++ b/frontend/src/app/util/storage.cljs @@ -8,6 +8,7 @@ (:require [app.util.transit :as t] [app.util.timers :as tm] + [app.util.globals :as g] [app.common.exceptions :as ex])) (defn- ^boolean is-worker? @@ -36,17 +37,18 @@ (defn- load [storage] - (let [len (.-length ^js storage)] - (reduce (fn [res index] - (let [key (.key ^js storage index) - val (.getItem ^js storage key)] - (try - (assoc res (t/decode key) (t/decode val)) - (catch :default e - res)))) - {} - (range len)))) + (when storage + (let [len (.-length ^js storage)] + (reduce (fn [res index] + (let [key (.key ^js storage index) + val (.getItem ^js storage key)] + (try + (assoc res (t/decode key) (t/decode val)) + (catch :default e + res)))) + {} + (range len))))) -(defonce storage (atom (load js/localStorage))) +(defonce storage (atom (load (unchecked-get g/global "localStorage")))) (add-watch storage :persistence #(persist js/localStorage %3 %4)) diff --git a/frontend/tests/app/test_components_sync.cljs b/frontend/tests/app/test_components_sync.cljs index 5fa6bcd12..e93ab55ed 100644 --- a/frontend/tests/app/test_components_sync.cljs +++ b/frontend/tests/app/test_components_sync.cljs @@ -1,18 +1,18 @@ (ns app.test-components-sync - (:require [cljs.test :as t :include-macros true] - [cljs.pprint :refer [pprint]] - [clojure.stacktrace :as stk] - [beicon.core :as rx] - [linked.core :as lks] - [app.test-helpers.events :as the] - [app.test-helpers.pages :as thp] - [app.test-helpers.libraries :as thl] - [app.common.geom.point :as gpt] - [app.common.data :as d] - [app.common.pages.helpers :as cph] - [app.main.data.workspace.common :as dwc] - [app.main.data.workspace.libraries :as dwl] - [app.main.data.workspace.libraries-helpers :as dwlh])) + (:require + [cljs.test :as t :include-macros true] + [cljs.pprint :refer [pprint]] + [beicon.core :as rx] + [linked.core :as lks] + [app.test-helpers.events :as the] + [app.test-helpers.pages :as thp] + [app.test-helpers.libraries :as thl] + [app.common.geom.point :as gpt] + [app.common.data :as d] + [app.common.pages.helpers :as cph] + [app.main.data.workspace.changes :as dwc] + [app.main.data.workspace.libraries :as dwl] + [app.main.data.workspace.libraries-helpers :as dwlh])) (t/use-fixtures :each {:before thp/reset-idmap!}) diff --git a/frontend/tests/app/test_shapes.cljs b/frontend/tests/app/test_shapes.cljs index 157780071..2b473c02a 100644 --- a/frontend/tests/app/test_shapes.cljs +++ b/frontend/tests/app/test_shapes.cljs @@ -50,10 +50,6 @@ (dwl/add-recent-color color)) (rx/map (fn [new-state] - (t/is (= (get-in new-state [:workspace-file - :data - :recent-colors]) - [color])) (t/is (= (get-in new-state [:workspace-data :recent-colors]) [color])))) From 28c5fd4583d727e9a58b7a0e77ba5b5e3c9c00b9 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 24 May 2021 12:22:38 +0200 Subject: [PATCH 118/135] :bug: Fix problem with imported SVG on editing paths --- CHANGES.md | 1 + frontend/src/app/util/path/subpaths.cljs | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index b1791255a..a8814666b 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -30,6 +30,7 @@ - Remove interactions when the destination artboard is deleted [Taiga #1656](https://tree.taiga.io/project/penpot/issue/1656). - Fix problem with fonts that ends with numbers [#940](https://github.com/penpot/penpot/issues/940). +- Fix problem with imported SVG on editing paths [#971](https://github.com/penpot/penpot/issues/971) ### :arrow_up: Deps updates diff --git a/frontend/src/app/util/path/subpaths.cljs b/frontend/src/app/util/path/subpaths.cljs index 3337b6c88..010f1343a 100644 --- a/frontend/src/app/util/path/subpaths.cljs +++ b/frontend/src/app/util/path/subpaths.cljs @@ -22,7 +22,10 @@ (defn add-subpath-command "Adds a command to the subpath" [subpath command] - (let [p (upc/command->point command)] + (let [command (if (= :close-path (:command command)) + (upc/make-line-to (:from subpath)) + command) + p (upc/command->point command)] (-> subpath (assoc :to p) (update :data conj command)))) From 651230d40fc400b5b1bb288419579f49055c7a29 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 24 May 2021 12:30:28 +0200 Subject: [PATCH 119/135] :bug: Fix problem with Safari and render frames --- .../src/app/main/ui/shapes/fill_image.cljs | 5 ++-- frontend/src/app/main/ui/shapes/image.cljs | 10 ++++--- .../viewport/thumbnail_renderer.cljs | 26 +++++++++++-------- frontend/src/app/util/timers.cljs | 5 ++-- 4 files changed, 28 insertions(+), 18 deletions(-) diff --git a/frontend/src/app/main/ui/shapes/fill_image.cljs b/frontend/src/app/main/ui/shapes/fill_image.cljs index 17d13291b..76acb5b07 100644 --- a/frontend/src/app/main/ui/shapes/fill_image.cljs +++ b/frontend/src/app/main/ui/shapes/fill_image.cljs @@ -23,7 +23,7 @@ (let [{:keys [x y width height]} (:selrect shape) fill-image-id (str "fill-image-" render-id) media (:fill-image shape) - uri (image/use-image-uri media) + {:keys [uri loading]} (image/use-image-uri media) transform (gsh/transform-matrix shape)] [:pattern {:id fill-image-id @@ -32,7 +32,8 @@ :y y :height height :width width - :patternTransform transform} + :patternTransform transform + :data-loading (str loading)} [:image {:xlinkHref uri :width width :height height}]])))) diff --git a/frontend/src/app/main/ui/shapes/image.cljs b/frontend/src/app/main/ui/shapes/image.cljs index 45ceb303b..124ce7052 100644 --- a/frontend/src/app/main/ui/shapes/image.cljs +++ b/frontend/src/app/main/ui/shapes/image.cljs @@ -35,7 +35,8 @@ (rx/mapcat wapi/read-file-as-data-url) (rx/subs #(reset! data-uri %)))))) - (or @data-uri uri))) + {:uri (or @data-uri uri) + :loading (not (some? @data-uri))})) (mf/defc image-shape {::mf/wrap-props false} @@ -43,7 +44,7 @@ (let [shape (unchecked-get props "shape") {:keys [id x y width height rotation metadata]} shape - uri (use-image-uri metadata)] + {:keys [uri loading]} (use-image-uri metadata)] (let [transform (geom/transform-matrix shape) props (-> (attrs/extract-style-attrs shape) @@ -53,7 +54,10 @@ :transform transform :width width :height height - :preserveAspectRatio "none"})) + :preserveAspectRatio "none"}) + (cond-> loading + (obj/set! "data-loading" "true"))) + on-drag-start (fn [event] ;; Prevent browser dragging of the image (dom/prevent-default event))] diff --git a/frontend/src/app/main/ui/workspace/viewport/thumbnail_renderer.cljs b/frontend/src/app/main/ui/workspace/viewport/thumbnail_renderer.cljs index 79b41e0d3..dc6d5eb69 100644 --- a/frontend/src/app/main/ui/workspace/viewport/thumbnail_renderer.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/thumbnail_renderer.cljs @@ -29,16 +29,19 @@ (when node (let [img-node (mf/ref-val thumbnail-img)] (timers/schedule-on-idle - #(if-let [frame-node (dom/get-element (str "shape-" (:id shape)))] - (let [xml (-> (js/XMLSerializer.) - (.serializeToString frame-node) - js/encodeURIComponent - js/unescape - js/btoa) - img-src (str "data:image/svg+xml;base64," xml)] - (obj/set! img-node "src" img-src)) + #(let [frame-node (dom/get-element (str "shape-" (:id shape))) + loading-node (when frame-node + (dom/query frame-node "[data-loading=\"true\"]"))] + (if (and (some? frame-node) (not (some? loading-node))) + (let [xml (-> (js/XMLSerializer.) + (.serializeToString frame-node) + js/encodeURIComponent + js/unescape + js/btoa) + img-src (str "data:image/svg+xml;base64," xml)] + (obj/set! img-node "src" img-src)) - (on-frame-not-found (:id shape)))))))) + (on-frame-not-found (:id shape))))))))) on-image-load (mf/use-callback @@ -108,8 +111,9 @@ (fn [frame-id] ;; If we couldn't find the frame maybe is still rendering. We push the event again ;; after a time - (timers/schedule-on-idle #(dwp/update-frame-thumbnail frame-id)) - (rx/push! next :next)))] + (reset! shape-id nil) + (rx/push! next :next) + (timers/schedule-on-idle (st/emitf (dwp/update-frame-thumbnail frame-id)))))] (mf/use-effect (mf/deps render-frame) diff --git a/frontend/src/app/util/timers.cljs b/frontend/src/app/util/timers.cljs index 4675f0262..be8cfdbc8 100644 --- a/frontend/src/app/util/timers.cljs +++ b/frontend/src/app/util/timers.cljs @@ -34,12 +34,13 @@ (-dispose [_] (js/clearInterval sem))))) -(if (and (exists? js/window) (.-requestIdleCallback js/window)) +(if (and (exists? js/window) + (.-requestIdleCallback js/window)) (do (def ^:private request-idle-callback #(js/requestIdleCallback %)) (def ^:private cancel-idle-callback #(js/cancelIdleCallback %))) (do - (def ^:private request-idle-callback #(js/setTimeout % 100)) + (def ^:private request-idle-callback #(js/setTimeout % 250)) (def ^:private cancel-idle-callback #(js/clearTimeout %)))) (defn schedule-on-idle From 2a670085313f971181cf35d2aa4e6fb23a284a39 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 24 May 2021 12:31:08 +0200 Subject: [PATCH 120/135] :bug: Fix problem with color picker positioning --- CHANGES.md | 1 + frontend/resources/styles/main/partials/workspace.scss | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index a8814666b..4a0d6c3bb 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -31,6 +31,7 @@ - Remove interactions when the destination artboard is deleted [Taiga #1656](https://tree.taiga.io/project/penpot/issue/1656). - Fix problem with fonts that ends with numbers [#940](https://github.com/penpot/penpot/issues/940). - Fix problem with imported SVG on editing paths [#971](https://github.com/penpot/penpot/issues/971) +- Fix problem with color picker positioning ### :arrow_up: Deps updates diff --git a/frontend/resources/styles/main/partials/workspace.scss b/frontend/resources/styles/main/partials/workspace.scss index acbf99e0e..f167e9814 100644 --- a/frontend/resources/styles/main/partials/workspace.scss +++ b/frontend/resources/styles/main/partials/workspace.scss @@ -134,8 +134,8 @@ width: 100%; display: grid; - grid-template-rows: 20px 1fr; - grid-template-columns: 20px 1fr; + grid-template-rows: 20px 100%; + grid-template-columns: 20px 100%; } .viewport { @@ -145,6 +145,11 @@ overflow: hidden; position: relative; + svg { + widht: 100%; + height: 100%; + } + .viewport-overlays { position: absolute; width: 100%; From 5730769a190879dd44e15ce69b9fec1cf7e94849 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 24 May 2021 15:07:16 +0200 Subject: [PATCH 121/135] :bug: Fix order on color palette --- CHANGES.md | 2 +- frontend/src/app/main/ui/workspace/colorpalette.cljs | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 4a0d6c3bb..6df4e555c 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -32,7 +32,7 @@ - Fix problem with fonts that ends with numbers [#940](https://github.com/penpot/penpot/issues/940). - Fix problem with imported SVG on editing paths [#971](https://github.com/penpot/penpot/issues/971) - Fix problem with color picker positioning - +- Fix order on color palette [#961](https://github.com/penpot/penpot/issues/961) ### :arrow_up: Deps updates diff --git a/frontend/src/app/main/ui/workspace/colorpalette.cljs b/frontend/src/app/main/ui/workspace/colorpalette.cljs index 176cb0d46..d9d4df230 100644 --- a/frontend/src/app/main/ui/workspace/colorpalette.cljs +++ b/frontend/src/app/main/ui/workspace/colorpalette.cljs @@ -209,7 +209,7 @@ (into [] (cond (= selected :recent) (reverse recent-colors) - (= selected :file) (vals file-colors) + (= selected :file) (->> (vals file-colors) (sort-by :name)) :else (library->colors shared-libs selected)))))) (mf/use-effect @@ -222,7 +222,8 @@ (mf/deps file-colors) (fn [] (when (= selected :file) - (reset! current-library-colors (into [] (vals file-colors)))))) + (reset! current-library-colors (into [] (->> (vals file-colors) + (sort-by :name))))))) [:& palette {:left-sidebar? left-sidebar? :current-colors @current-library-colors From ed95b5900331953c14fadf9dd371815203a0645d Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 24 May 2021 17:25:28 +0200 Subject: [PATCH 122/135] :bug: Fix issue when group creation leaves an empty group --- CHANGES.md | 1 + frontend/src/app/main/data/workspace.cljs | 29 +++--- .../src/app/main/data/workspace/groups.cljs | 97 ++++++++++++++++--- .../data/workspace/libraries_helpers.cljs | 2 +- 4 files changed, 100 insertions(+), 29 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 6df4e555c..504a776e6 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -33,6 +33,7 @@ - Fix problem with imported SVG on editing paths [#971](https://github.com/penpot/penpot/issues/971) - Fix problem with color picker positioning - Fix order on color palette [#961](https://github.com/penpot/penpot/issues/961) +- Fix issue when group creation leaves an empty group [#1724](https://tree.taiga.io/project/penpot/issue/1724) ### :arrow_up: Deps updates diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 1d42177dc..5b70d9ce9 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -991,19 +991,22 @@ [[] [] []] ids) - [rchanges uchanges] (relocate-shapes-changes objects - parents - parent-id - page-id - to-index - ids - groups-to-delete - groups-to-unmask - shapes-to-detach - shapes-to-reroot - shapes-to-deroot)] + [rchanges uchanges] + (relocate-shapes-changes objects + parents + parent-id + page-id + to-index + ids + groups-to-delete + groups-to-unmask + shapes-to-detach + shapes-to-reroot + shapes-to-deroot) + + ] (rx/of (dch/commit-changes {:redo-changes rchanges - :undo-chanes uchanges + :undo-changes uchanges :origin it}) (dwc/expand-collapse parent-id)))))) @@ -1058,7 +1061,7 @@ :id id :index cidx}] (rx/of (dch/commit-changes {:redo-changes [rchg] - :undo-chanes [uchg] + :undo-changes [uchg] :origin it})))))) ;; --- Shape / Selection Alignment and Distribution diff --git a/frontend/src/app/main/data/workspace/groups.cljs b/frontend/src/app/main/data/workspace/groups.cljs index 356be5153..849fdde94 100644 --- a/frontend/src/app/main/data/workspace/groups.cljs +++ b/frontend/src/app/main/data/workspace/groups.cljs @@ -32,31 +32,97 @@ (gsh/setup selrect) (assoc :shapes (mapv :id shapes))))) +(defn get-empty-groups + "Retrieve emtpy groups after group creation" + [objects parent-id shapes] + (let [ids (cp/clean-loops objects (into #{} (map :id) shapes)) + parents (->> ids + (reduce #(conj %1 (cp/get-parent %2 objects)) + #{}))] + (loop [current-id (first parents) + to-check (rest parents) + removed-id? ids + result #{}] + + (if-not current-id + ;; Base case, no next element + result + + (let [group (get objects current-id)] + (if (and (not= :frame (:type group)) + (not= current-id parent-id) + (empty? (remove removed-id? (:shapes group)))) + + ;; Adds group to the remove and check its parent + (let [to-check (d/concat [] to-check [(cp/get-parent current-id objects)]) ] + (recur (first to-check) + (rest to-check) + (conj removed-id? current-id) + (conj result current-id))) + + ;; otherwise recur + (recur (first to-check) + (rest to-check) + removed-id? + result))))))) + (defn prepare-create-group - [page-id shapes prefix keep-name] + [objects page-id shapes prefix keep-name] (let [group (make-group shapes prefix keep-name) + frame-id (:frame-id (first shapes)) + parent-id (:parent-id (first shapes)) rchanges [{:type :add-obj :id (:id group) :page-id page-id - :frame-id (:frame-id (first shapes)) - :parent-id (:parent-id (first shapes)) + :frame-id frame-id + :parent-id parent-id :obj group :index (::index (first shapes))} + {:type :mov-objects :page-id page-id :parent-id (:id group) :shapes (mapv :id shapes)}] - uchanges (conj - (mapv (fn [obj] {:type :mov-objects - :page-id page-id - :parent-id (:parent-id obj) - :index (::index obj) - :shapes [(:id obj)]}) - shapes) - {:type :del-obj - :id (:id group) - :page-id page-id})] + uchanges (-> (mapv + (fn [obj] + {:type :mov-objects + :page-id page-id + :parent-id (:parent-id obj) + :index (::index obj) + :shapes [(:id obj)]}) shapes) + (conj + {:type :del-obj + :id (:id group) + :page-id page-id})) + + ids-to-delete (get-empty-groups objects parent-id shapes) + + delete-group + (fn [changes id] + (-> changes + (conj {:type :del-obj + :id id + :page-id page-id}))) + + add-deleted-group + (fn [changes id] + (let [obj (-> (get objects id) + (d/without-keys [:shapes]))] + + (d/concat [{:type :add-obj + :id id + :page-id page-id + :frame-id (:frame-id obj) + :parent-id (:parent-id obj) + :obj obj + :index (::index obj)}] changes))) + + rchanges (->> ids-to-delete + (reduce delete-group rchanges)) + + uchanges (->> ids-to-delete + (reduce add-deleted-group uchanges))] [group rchanges uchanges])) (defn prepare-remove-group @@ -107,7 +173,8 @@ selected (cp/clean-loops objects selected) shapes (shapes-for-grouping objects selected)] (when-not (empty? shapes) - (let [[group rchanges uchanges] (prepare-create-group page-id shapes "Group-" false)] + (let [[group rchanges uchanges] + (prepare-create-group objects page-id shapes "Group-" false)] (rx/of (dch/commit-changes {:redo-changes rchanges :undo-changes uchanges :origin it}) @@ -146,7 +213,7 @@ (if (and (= (count shapes) 1) (= (:type (first shapes)) :group)) [(first shapes) [] []] - (prepare-create-group page-id shapes "Group-" true)) + (prepare-create-group objects page-id shapes "Group-" true)) rchanges (d/concat rchanges [{:type :mod-obj diff --git a/frontend/src/app/main/data/workspace/libraries_helpers.cljs b/frontend/src/app/main/data/workspace/libraries_helpers.cljs index 01d8a61a8..c59050916 100644 --- a/frontend/src/app/main/data/workspace/libraries_helpers.cljs +++ b/frontend/src/app/main/data/workspace/libraries_helpers.cljs @@ -131,7 +131,7 @@ (if (and (= (count shapes) 1) (= (:type (first shapes)) :group)) [(first shapes) [] []] - (dwg/prepare-create-group page-id shapes "Component-" true)) + (dwg/prepare-create-group objects page-id shapes "Component-" true)) [new-shape new-shapes updated-shapes] (make-component-shape group objects file-id) From 95cb6d132b5c9ee98a9a450e9b7dce2ccc766811 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 24 May 2021 21:28:37 +0200 Subject: [PATCH 123/135] :bug: Fix problem with :multiple for colors and typographies --- CHANGES.md | 1 + .../src/app/main/ui/shapes/text/styles.cljs | 3 +- .../workspace/sidebar/options/menus/text.cljs | 4 ++- .../sidebar/options/rows/color_row.cljs | 30 ++++++++++------- .../sidebar/options/shapes/multiple.cljs | 33 ++++++++++--------- frontend/src/app/util/color.cljs | 2 +- 6 files changed, 43 insertions(+), 30 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 504a776e6..7d77486b6 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -34,6 +34,7 @@ - Fix problem with color picker positioning - Fix order on color palette [#961](https://github.com/penpot/penpot/issues/961) - Fix issue when group creation leaves an empty group [#1724](https://tree.taiga.io/project/penpot/issue/1724) +- Fix problem with :multiple for colors and typographies [#1668](https://tree.taiga.io/project/penpot/issue/1668) ### :arrow_up: Deps updates diff --git a/frontend/src/app/main/ui/shapes/text/styles.cljs b/frontend/src/app/main/ui/shapes/text/styles.cljs index 7b436bccd..8c15ccb43 100644 --- a/frontend/src/app/main/ui/shapes/text/styles.cljs +++ b/frontend/src/app/main/ui/shapes/text/styles.cljs @@ -75,7 +75,8 @@ ;; (uc/hex->rgba fill-color fill-opacity)) [r g b a] (uc/hex->rgba fill-color fill-opacity) - text-color (str/format "rgba(%s, %s, %s, %s)" r g b a) + text-color (when (and (some? fill-color) (some? fill-opacity)) + (str/format "rgba(%s, %s, %s, %s)" r g b a)) fontsdb (deref fonts/fontsdb) base #js {:textDecoration text-decoration diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/text.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/text.cljs index 2b46a3bf5..0d6ab2546 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/text.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/text.cljs @@ -288,6 +288,8 @@ (fn [changes] (st/emit! (dwl/update-typography (merge typography changes) file-id)))) + multiple? (->> values vals (d/seek #(= % :multiple))) + opts #js {:ids ids :values values :on-change on-change}] @@ -295,7 +297,7 @@ [:div.element-set [:div.element-set-title [:span label] - (when (not typography) + (when (and (not typography) (not multiple?)) [:div.add-page {:on-click on-convert-to-typography} i/close])] (cond diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs index 96e5f4021..be8a067ef 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs @@ -27,7 +27,19 @@ (defn color-picker-callback [color disable-gradient disable-opacity handle-change-color handle-open handle-close] (fn [event] - (let [x (.-clientX event) + (let [color + (cond + (uc/multiple? color) + {:color cp/default-color + :opacity 1} + + (= :multiple (:opacity color)) + (assoc color :opacity 1) + + :else + color) + + x (.-clientX event) y (.-clientY event) props {:x x :y y @@ -98,16 +110,12 @@ handle-click-color (mf/use-callback (mf/deps color) - (let [;; If multiple, we change to default color - color (if (uc/multiple? color) - {:color cp/default-color :opacity 1} - color)] - (color-picker-callback color - disable-gradient - disable-opacity - handle-pick-color - handle-open - handle-close))) + (color-picker-callback color + disable-gradient + disable-opacity + handle-pick-color + handle-open + handle-close)) prev-color (h/use-previous color)] diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/multiple.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/multiple.cljs index 259ff36a6..86a049053 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/multiple.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/multiple.cljs @@ -148,22 +148,23 @@ extract-attrs (fn [[ids values] {:keys [id type shapes content] :as shape}] - (let [props (get-in type->props [type attr-type]) - result (case props - :ignore [ids values] - :shape [(conj ids id) - (merge-attrs values (merge - (empty-map attrs) - (select-keys shape attrs)))] - :text [(conj ids id) - (-> values - (merge-attrs (select-keys shape attrs)) - (merge-attrs (attrs/get-attrs-multi (txt/node-seq content) attrs)))] - :children (let [children (->> (:shapes shape []) (map #(get objects %))) - [new-ids new-values] (get-attrs children objects attr-type)] - [(d/concat ids new-ids) (merge-attrs values new-values)]) - [])] - result))] + (let [props (get-in type->props [type attr-type])] + (case props + :ignore [ids values] + :shape [(conj ids id) + (merge-attrs values (merge + (empty-map attrs) + (select-keys shape attrs)))] + :text [(conj ids id) + (-> values + (merge-attrs (select-keys shape attrs)) + (merge-attrs (merge + (select-keys txt/default-text-attrs attrs) + (attrs/get-attrs-multi (txt/node-seq content) attrs))))] + :children (let [children (->> (:shapes shape []) (map #(get objects %))) + [new-ids new-values] (get-attrs children objects attr-type)] + [(d/concat ids new-ids) (merge-attrs values new-values)]) + [])))] (reduce extract-attrs [[] []] shapes))) (mf/defc options diff --git a/frontend/src/app/util/color.cljs b/frontend/src/app/util/color.cljs index 05183e2eb..8899e6f23 100644 --- a/frontend/src/app/util/color.cljs +++ b/frontend/src/app/util/color.cljs @@ -135,7 +135,7 @@ :else "transparent"))) -(defn multiple? [{:keys [id file-id value color gradient]}] +(defn multiple? [{:keys [id file-id value color gradient opacity]}] (or (= value :multiple) (= color :multiple) (= gradient :multiple) From e43ab51b7d32c8d30317d6fd3f8581bc79654d3b Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Tue, 25 May 2021 12:18:49 +0200 Subject: [PATCH 124/135] :bug: Fix problem with locked shapes when change parents --- CHANGES.md | 1 + common/app/common/geom/shapes.cljc | 2 +- .../main/data/workspace/state_helpers.cljs | 23 ++++-- .../app/main/data/workspace/transforms.cljs | 81 ++++++++++--------- .../app/main/ui/workspace/sidebar/layers.cljs | 4 - .../ui/workspace/viewport/snap_points.cljs | 5 +- 6 files changed, 63 insertions(+), 53 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 7d77486b6..3a0659912 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -35,6 +35,7 @@ - Fix order on color palette [#961](https://github.com/penpot/penpot/issues/961) - Fix issue when group creation leaves an empty group [#1724](https://tree.taiga.io/project/penpot/issue/1724) - Fix problem with :multiple for colors and typographies [#1668](https://tree.taiga.io/project/penpot/issue/1668) +- Fix problem with locked shapes when change parents [#974](https://github.com/penpot/penpot/issues/974) ### :arrow_up: Deps updates diff --git a/common/app/common/geom/shapes.cljc b/common/app/common/geom/shapes.cljc index a93c20ad3..db0d51e29 100644 --- a/common/app/common/geom/shapes.cljc +++ b/common/app/common/geom/shapes.cljc @@ -162,7 +162,7 @@ :points points)))) (defn rotation-modifiers - [center shape angle] + [shape center angle] (let [displacement (let [shape-center (gco/center-shape shape)] (-> (gmt/matrix) (gmt/rotate angle center) diff --git a/frontend/src/app/main/data/workspace/state_helpers.cljs b/frontend/src/app/main/data/workspace/state_helpers.cljs index 9ce4a3d3f..0710aba55 100644 --- a/frontend/src/app/main/data/workspace/state_helpers.cljs +++ b/frontend/src/app/main/data/workspace/state_helpers.cljs @@ -26,11 +26,18 @@ (get-in state [:workspace-data :components component-id :objects]))) (defn lookup-selected - [state] - (let [objects (lookup-page-objects state) - selected (->> (get-in state [:workspace-local :selected]) - (cp/clean-loops objects)) - is-present? (fn [id] (contains? objects id))] - (into (d/ordered-set) - (filter is-present?) - selected))) + ([state] + (lookup-selected state nil)) + + ([state {:keys [omit-blocked?] + :or {omit-blocked? false}}] + (let [objects (lookup-page-objects state) + selected (->> (get-in state [:workspace-local :selected]) + (cp/clean-loops objects)) + selectable? (fn [id] + (and (contains? objects id) + (or (not omit-blocked?) + (not (get-in objects [id :blocked] false)))))] + (into (d/ordered-set) + (filter selectable?) + selected)))) diff --git a/frontend/src/app/main/data/workspace/transforms.cljs b/frontend/src/app/main/data/workspace/transforms.cljs index cc0270a95..e726917de 100644 --- a/frontend/src/app/main/data/workspace/transforms.cljs +++ b/frontend/src/app/main/data/workspace/transforms.cljs @@ -242,23 +242,24 @@ ptk/WatchEvent (watch [it state stream] (let [initial (deref ms/mouse-position) - selected (wsh/lookup-selected state) + selected (wsh/lookup-selected state {:omit-blocked? true}) stopper (rx/filter ms/mouse-up? stream)] - (->> ms/mouse-position - (rx/take-until stopper) - (rx/map #(gpt/to-vec initial %)) - (rx/map #(gpt/length %)) - (rx/filter #(> % 1)) - (rx/take 1) - (rx/with-latest vector ms/mouse-position-alt) - (rx/mapcat - (fn [[_ alt?]] - (if alt? - ;; When alt is down we start a duplicate+move - (rx/of (start-move-duplicate initial) - dws/duplicate-selected) - ;; Otherwise just plain old move - (rx/of (start-move initial selected)))))))))) + (when-not (empty? selected) + (->> ms/mouse-position + (rx/take-until stopper) + (rx/map #(gpt/to-vec initial %)) + (rx/map #(gpt/length %)) + (rx/filter #(> % 1)) + (rx/take 1) + (rx/with-latest vector ms/mouse-position-alt) + (rx/mapcat + (fn [[_ alt?]] + (if alt? + ;; When alt is down we start a duplicate+move + (rx/of (start-move-duplicate initial) + dws/duplicate-selected) + ;; Otherwise just plain old move + (rx/of (start-move initial selected))))))))))) (defn start-move-duplicate [from-position] (ptk/reify ::start-move-selected @@ -319,7 +320,8 @@ (watch [it state stream] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) - ids (if (nil? ids) (wsh/lookup-selected state) ids) + selected (wsh/lookup-selected state {:omit-blocked? true}) + ids (if (nil? ids) selected ids) shapes (mapv #(get objects %) ids) stopper (rx/filter ms/mouse-up? stream) layout (get state :workspace-layout) @@ -398,7 +400,7 @@ ptk/WatchEvent (watch [it state stream] (if (= same-event (get-in state [:workspace-local :current-move-selected])) - (let [selected (wsh/lookup-selected state) + (let [selected (wsh/lookup-selected state {:omit-blocked? true}) move-events (->> stream (rx/filter (ptk/type? ::move-selected)) (rx/filter #(= direction (deref %)))) @@ -435,6 +437,8 @@ page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) + ids (->> ids (into #{} (remove #(get-in objects [% :blocked] false)))) + not-frame-id? (fn [shape-id] (let [shape (get objects shape-id)] @@ -457,27 +461,28 @@ ;; shape adjusting their position. (defn set-rotation - ([delta-rotation shapes] - (set-rotation delta-rotation shapes (-> shapes gsh/selection-rect gsh/center-selrect))) + ([angle shapes] + (set-rotation angle shapes (-> shapes gsh/selection-rect gsh/center-selrect))) - ([delta-rotation shapes center] - (letfn [(rotate-shape [objects angle shape center] - (update-in objects [(:id shape) :modifiers] merge (gsh/rotation-modifiers center shape angle))) + ([angle shapes center] + (ptk/reify ::set-rotation + ptk/UpdateEvent + (update [_ state] + (let [objects (wsh/lookup-page-objects state) + id->obj #(get objects %) + get-children (fn [shape] (map id->obj (cp/get-children (:id shape) objects))) - (rotate-around-center [objects angle center shapes] - (reduce #(rotate-shape %1 angle %2 center) objects shapes)) + shapes (->> shapes (into [] (remove #(get % :blocked false)))) - (set-rotation [objects] - (let [id->obj #(get objects %) - get-children (fn [shape] (map id->obj (cp/get-children (:id shape) objects))) - shapes (concat shapes (mapcat get-children shapes))] - (rotate-around-center objects delta-rotation center shapes)))] + shapes (->> shapes (mapcat get-children) (concat shapes)) - (ptk/reify ::set-rotation - ptk/UpdateEvent - (update [_ state] - (let [page-id (:current-page-id state)] - (d/update-in-when state [:workspace-data :pages-index page-id :objects] set-rotation))))))) + update-shape + (fn [modifiers shape] + (let [rotate-modifiers (gsh/rotation-modifiers shape center angle)] + (assoc-in modifiers [(:id shape) :modifiers] rotate-modifiers)))] + (-> state + (update :workspace-modifiers + #(reduce update-shape % shapes)))))))) (defn increase-rotation [ids rotation] (ptk/reify ::increase-rotation @@ -583,7 +588,7 @@ ptk/WatchEvent (watch [it state stream] (let [objects (wsh/lookup-page-objects state) - selected (wsh/lookup-selected state) + selected (wsh/lookup-selected state {:omit-blocked? true}) shapes (map #(get objects %) selected) selrect (gsh/selection-rect (->> shapes (map gsh/transform-shape))) origin (gpt/point (:x selrect) (+ (:y selrect) (/ (:height selrect) 2)))] @@ -600,7 +605,7 @@ ptk/WatchEvent (watch [it state stream] (let [objects (wsh/lookup-page-objects state) - selected (wsh/lookup-selected state) + selected (wsh/lookup-selected state {:omit-blocked? true}) shapes (map #(get objects %) selected) selrect (gsh/selection-rect (->> shapes (map gsh/transform-shape))) origin (gpt/point (+ (:x selrect) (/ (:width selrect) 2)) (:y selrect))] @@ -633,5 +638,5 @@ (ptk/reify ::selected-to-path ptk/WatchEvent (watch [_ state stream] - (let [ids (wsh/lookup-selected state)] + (let [ids (wsh/lookup-selected state {:omit-blocked? true})] (rx/of (dch/update-shapes ids ups/convert-to-path)))))) diff --git a/frontend/src/app/main/ui/workspace/sidebar/layers.cljs b/frontend/src/app/main/ui/workspace/sidebar/layers.cljs index fa842aa4d..310ece276 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/layers.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/layers.cljs @@ -150,10 +150,6 @@ (dom/prevent-default event) (let [id (:id item)] (cond - (or (:blocked item) - (:hidden item)) - nil - (kbd/shift? event) (st/emit! (dw/shift-select-shapes id)) diff --git a/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs b/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs index 9dda3ac8f..f9cc2707c 100644 --- a/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs @@ -131,7 +131,7 @@ #(rx/dispose! sub)))) (mf/use-effect - (mf/deps shapes modifiers) + (mf/deps shapes filter-shapes modifiers) (fn [] (rx/push! subject props))) @@ -161,7 +161,8 @@ (map #(get objects %)) (filterv (comp not nil?))) filter-shapes (into #{} - (mapcat #(cp/get-object-with-children % objects)) + (comp (mapcat #(cp/get-object-with-children % objects)) + (map :id)) selected) filter-shapes (fn [id] From f92dc6f4b48e0dbfab779e15e3bc56644a842e41 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Tue, 25 May 2021 13:24:02 +0200 Subject: [PATCH 125/135] :bug: Fix problem with colaborative editing --- backend/src/app/rpc/mutations/files.clj | 3 ++- .../src/app/main/data/workspace/persistence.cljs | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/backend/src/app/rpc/mutations/files.clj b/backend/src/app/rpc/mutations/files.clj index 7ce732eca..d6fb24c59 100644 --- a/backend/src/app/rpc/mutations/files.clj +++ b/backend/src/app/rpc/mutations/files.clj @@ -323,7 +323,8 @@ :has-media-trimmed false} {:id (:id file)}) - (let [params (assoc params :file file)] + (let [params (-> params (assoc :file file + :changes changes))] ;; Send asynchronous notifications (send-notifications cfg params) diff --git a/frontend/src/app/main/data/workspace/persistence.cljs b/frontend/src/app/main/data/workspace/persistence.cljs index 1fbf6d28a..3228e0e5e 100644 --- a/frontend/src/app/main/data/workspace/persistence.cljs +++ b/frontend/src/app/main/data/workspace/persistence.cljs @@ -562,7 +562,7 @@ (defn- extract-frame-changes "Process a changes set in a commit to extract the frames that are channging" - [[event objects]] + [[event [old-objects new-objects]]] (let [changes (-> event deref :changes) extract-ids @@ -577,8 +577,11 @@ get-frame-id (fn [id] - (or (and (= :frame (get-in objects [id :type])) id) - (get-in objects [id :frame-id]))) + (let [shape (or (get new-objects id) + (get old-objects id))] + + (or (and (= :frame (:type shape)) id) + (:frame-id shape)))) ;; Extracts the frames and then removes nils and the root frame xform (comp (mapcat extract-ids) @@ -613,7 +616,12 @@ (rx/filter #(or (= :app.main.data.workspace/finalize-page (ptk/type %)) (= ::watch-state-changes (ptk/type %))))) - objects-stream (rx/from-atom refs/workspace-page-objects {:emit-current-value? true}) + objects-stream (->> (rx/concat + (rx/of nil) + (rx/from-atom refs/workspace-page-objects {:emit-current-value? true})) + ;; We need to keep the old-objects so we can check the frame for the + ;; deleted objects + (rx/buffer 2 1)) frame-changes (->> stream (rx/filter dch/commit-changes?) From 97578360671801d69a4fbb3dfa8ffa30a7ed880c Mon Sep 17 00:00:00 2001 From: elhombretecla Date: Thu, 20 May 2021 09:44:11 +0200 Subject: [PATCH 126/135] :bug: Fix basic onboarding CSS --- .../resources/images/features/basic-nodes.gif | Bin 0 -> 317668 bytes .../images/features/custom-fonts.gif | Bin 0 -> 1113931 bytes .../resources/images/features/performance.gif | Bin 0 -> 695481 bytes .../resources/images/features/scale-text.gif | Bin 0 -> 482923 bytes .../styles/common/dependencies/colors.scss | 1 + .../resources/styles/main/partials/modal.scss | 7 +- frontend/src/app/main/ui.cljs | 4 +- frontend/src/app/main/ui/onboarding.cljs | 81 +++++++++++++++++- 8 files changed, 89 insertions(+), 4 deletions(-) create mode 100644 frontend/resources/images/features/basic-nodes.gif create mode 100644 frontend/resources/images/features/custom-fonts.gif create mode 100644 frontend/resources/images/features/performance.gif create mode 100644 frontend/resources/images/features/scale-text.gif diff --git a/frontend/resources/images/features/basic-nodes.gif b/frontend/resources/images/features/basic-nodes.gif new file mode 100644 index 0000000000000000000000000000000000000000..cea102568254867486fa9f7be8823070fd195601 GIT binary patch literal 317668 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 J$1+UYaw0S;pND(WOMLNf|Bg#sez!S%BeOCe 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 ^wEcx2Wlz3);3DbS=83&CKEe@kqfC4~ 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

FuBM0-%^g!?uV;Ix1q~^$#f^t43=I2Z!5VA< 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 z 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

9;T%rnMYr+?_UysNbXRG>y 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

52Yb*3fKTIO;0Jy{hQJSIRxk&6pa*dH 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�(^}{vsJTHt0?2_pfr}xb?m7xrT|JObe(w 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�tEUMevPCGz$2t#6rk!M0jTP!bB&=L_(-5NVISI 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

6gt@Nh(^c?w+k#A=OqS zjD)S6GqqAo^(&8cr%Lhdil^$qvrLAZS$~>zt<0aGRMDy0prv}%(><-+S=K?Hxm%;7 zo}fVsiP<39K(`i`w!ziQ#@K~)CDS0S$di{@hjVJJNbbHgS;f(c+F_#x_aQeT=+bIb z=xa~)YSTw@Ry%Rh%~A9AmYTm+TD(fC!*Z+jL0*@-Brm$JgCXtZuu&%$N~Nu@#dvKg zWvs5V{#tXlYpuh_S1xHe+k5C44Uu)MZZA`MXBxjc+uQ1mMK5-?TEdqWT+w)!2Q^PY*q{MwcJSYmJU~eMYGg zT%s{@jCZWl8EeQB61EieZ@;XL{j9BZ4F7{q>|;A5zVA$97Es#1RVuZjq+%S5}A@zg8xAdV1te=c@U)>5E1}me6Bd z!zsoSyle(J4Z1;9 z_Ez;!eI#ZwV|_`gW>~-W#b5DCJUS zV$cv_4WHgMYugySKW=Lwa$UHcjEMQ9O2Qm4-d2V$X)O8%wTuv}bT3)RHy}_3-e(v*ZU8CndL4#q1u0Bb7KAVZ7+|yF)fzqJUVozn_#U~ zHDT}q-8S?Y=l*%v8u=JA?7qRf#UPaWt8-cSmo=X8E${}E!KNa_j(u!_F;52>uX-w{NLHYbiBNu z%6dDTv!p1=gv1+Pq(bxIn@DdizChM7&nF_r6*>x-Tay_}y`zgMH*lX~D^6OnyQ;|k zEQ9*i$ySMB9|Uvu@Z#VCGq3eT$h-PVNMP4@h#A~iBg4J(`>8pL$f`I|e4XzMyCr%) zAzlZH1yi&f+(SW-LV4(wX7gg}~iBjbXgV%=$ zgkkUchA~Y$LzpYu?7#&m+n5KhcYurNB4bnBZi`{>B}$6o;`auz{h2(An&=GK#VkTR z8d-5vXGILj#maWkOaLBbP^Ex9H)D3oJ~53*cZ^b;tnsC+$sbu$OgS@h}g@~M` zvYeHnoVBBzO`x1@oSa>*oPDjFL$93UjGWW9ob#oe%O5#cOnEnuygQ4$hlsqVvb>j} zytkvgk8(9lz&N}Is~;v^w@`CwCL1|5wtwxoi4bQ+VolIxlW!?Q;Jv&L2^;Y=%T@6> zY^AdDmV=aR;-h18AP-wuTn3Q4I($W*GJqo?u;Dcu^8R8x1ivmWkOT&r>{H|<2;j)j zVg*Vo;Nx+ovrMEKGJJlmRY+Fm#Kus_sIA#KXe6;{ESgd9Q(zkbaNKk&l<+j-1T<9Q zGdGjg<)?Dw$|z=Nuw%tGAu=~E`A=0F))T}wEgLk4u1s;kLohv>l4k1KQ=8V9raNdj zZ=a`XwWc}MA+3f}?|Yc;iaC%zC=`vRQzJ|jd9pSCna;Q5D5RN+ z)SBrlZJ4^BE=K2S;+Y2ZDEE}k4875~hRSmzQ{{ovW7*0#+0z-Rvvaspzuad(E6$d# zG(^iZR@XMn$uzd&a?IDxZg$U3uBfE3%nkx-sxYUP&^fZT6qiS4TD4T)!9(irC)Y_; zTaPB!Jyn;(*e+jFvv!)hJIVC z#tGwMBwJwW;WB$xgG0h&yW`@}jOKii$5mS3U=;0ya`R318S$VCr?g=4rlF=S_;vLZ zZM2BJv`FNji<1HLHPOWpS}|u;;}93$74-|wv?i_dBmd$+Li+;7PhnY{*0%yGDvy5be_%B@l{*d*N&+9L7yjLK z*-WbIm@G~MLlZ5uBQdLOQRyGdl|k%<>JdKsd1`Xy7`8M zR*93Xpjfsz)C;b7S<}(2kb&ZL8coqvU3)QJGrTV)sr{j!wl>BU zn+_QN($*|i*M$-27ZI!tr%7!|zWLPmlMw`P1k1J=#jcn(t2iZzYeZ!_vdJ0&gBiJR z>8_S9vBXIPzR@n)@z*ulR6;1%1KM8kYaW?8KIF8d$E0&zWb4b~U!MAZLBo+T$y08q zS+By{eAm2K*S$s8`I9xeipY8fb7uYYhGK#7QT<{Bi)X`{CBeu~5RR%GW-wa)#rkGy1OJ_7Sxn9<>UiK>O%jDvpjRLeHX^Ey`II2i^ zceG$hDyrKsN~Bcdo5iyD4Or$zg$kX@5!En!vFETJM=>^@$_LkMSqhRR6ARQ(K32SHLUnzaH7v}X4Y_a$8he-aQ?61 z0+!JtxzQ4<(Xyz~ii**yk)9$JZCPgRQ5y~HhQPNh0QM-np97)4a=zhLsB{_WnV;O{W@Y&^=NeO zW!(Embz+2lU&{p0z6-k8#nzlhy;I#BY3k3NN0~DT;^8O`{8kTA`rccAKC+ATFuzLk z4L*GaM{FKfY!**$|Jq6gsI&JKq@2_GZGMD(FV5_tZW=*a`J{ReAkBWLJcoK`R-kCI z7y~8zS94{hHlt;ZirsMK$e!f5UnR5muH3xNb^l4W85hj+FHJSJbT2}YgT21`#ZsZt zG<{^F2@Ro|*Bc!^ui1(LYFZOR1<4Yni{T}SFQko>@ra=`4H244MEcu2{_45_O^xYF z;_ICy(;DKfbd7>2SRNHF@U%o@kds#Ip+jk@@+ESFrm5eIY-ODoJ0~lFi}lsnf!|>D z5@Mb_ZFCS2r-QXsWWiv16@$6^7?y}bn737G+Dh%-nglH_)`L+B6#r^lQ)|omkcsCE z7yeN{1_awKwl%av$U*B0u}8+=tbz$Oi}2&eKvk9sO*Ig-bLWI39llt_H6npJajWkZ z-({yba;%u78!?sv$p^97AqF1=5I=LEnGq7bpc=+Vijsm*+4Z7ARnKA|So=>=#=v~- z#yH&dXr6e~|7dJ*oYX#ALKNbltL?cj>VGtLA=;U3XqVub>Z@;C9g?xYafe`8EU7Oq z`^0CEn}DJLtWaRoapRrqQ&&MmUo7$Ybz)NbM6476S|dd3em(X}aPa^!=KaDuduV1l z2ZFn?)!PQ*-LjFqb{Awe8fRf?;w*t}RzQ&ymIodwl6dbfpib!TFcHjtZVQ2WGrOh55QK4ut>LjkYYywtmPWe9}m;jNaHF^vJl9PZ_2~Z4#8Z$_J*UJ$vU2OQgj^-1a z_Jaa`WHN1((uI^ghNWPbZQLjaYlt!~&z;dW?6nZ_!_5-NFeX$VRm$-09s^ER+*YyD z+8O9^-!iW@k#_T9$%=cHgmayBojBA2+;75n}(P-~&{+ z0xnq{R=~M(XV?*K)KMZ01qa&|UR(bRp-n_F$3ZIwZx2L?N4mO8xJc^$;H7{uN%2^f z$7thcII|yhRemA&w`@ZDO%v04`N;3}^~m^rsS8R11DAHF)v;liPtZ4?k3W1qz4`>d z^M$?l4Po~U755EO^9?ugjd1ae{Nx+;**ChtH>SZiw%<2y-Z%c6@0Vkv1fQ&Le|__E zzwIM^i%qpSpM8u6?Nz}k@Duvwo}1ngOpLvzDm<_FW}i+XCYY3X?tQM9L({1}T-oP{ zctS!xyz%_jgKw5Wl{Mt7iF{2bmWPEMK3gX+n^H(mhc|xf1OSakTMpUlue+1{4 zobxtp^6vPh{;TSV<;w)mpKf+j zOr1)qo9Kx9sS*AJDy0ta$EJyf7-2dn^UGl-5qu-()1EB?ql4gV&O7vq16gM%r?k(; z^B?wobYaRXxJ?8(GR{}wHT$BTF2a8!S zY5tcyVfkyFBwQlFV&y7#+UayQlc6|954zcGK9_@;Di3&L?(K_l~f*Sjj{r3rAT$7vL4vY^-fTXxjc_M zrEzZ%7C8}(kcO(o=U#)W(V7Vy7c`}JQ>I2?!7VdB>co;<_uxLA%NGyDX7#^6Er`^T zp=mm>;RCrl;6J!~k22NMAt=9!(qoMeP$jjYlACp@+z|A|<)xbKiZ3&UlO!64@w5xL`#9lMvks?10=6VyeYmwm#6boi{{d!^Rl062 zcf6sX`N*!so!5a)dj4xJcVzNsDblLal-+wxUHHnAaGp~jJv5Oj3Bg|a)G}gAkk4HU zU~K&>eVj>+x3yftBwS{eHFCS^AQwLMhLXe0>#I71GF<3fa1+xY$v;kz4oWkUKxz+p z`;DvGzMAJaeJa-$W)@t!QCtwrlhJVQI+9C1(CR2GJr}H9gKjnTr8=xj(5)qovnGYx zPsg)p(=VWo5y(pU%#l0P4<$*2l{5>r6AiRhOBQ_6O*w-dv(lM!;m zXh*`Uv@XL1>7=MR{HF=rjBNDU=xz<9aJ--%s^s0bNee)r7)nX>W|T)_n3B9FPRXg? zmLuGqq$Tb$+N*bN+u8@4Stlu4Oi5L~jzuK&HP3QKrYinV49t49x7FoQ(T3amA#8x& z3yFC-cSDmiw@p?wBjc6mdH(n2l@ey`cMSmorL%2EDVp_1<7foxQ2PBLom&NC#P()O zS0YK3aGPjpY!CQH?{j?&HtJmo8KgX)D=H1@Ij+-t-XWiT?SLo&C&&?{U|+3kIw4r$ zF9md!kaD&mP1B_B*TY{KERNax<{2KO2V89rYMQoGy>^Mp(WydPX%+gw#!srl08Swl zn&?_8Rmn{m^IO(aR|^93rvjdlj^yCQD7{Y@114+9Q4lz3@}8~HizQVo=%+6YQkL)jR|uWWv-9B>|wD^?Osc?a=uDD8>q0wU@NSL#*N`DYQW=|x0w z{{w$OfWM_MjcQzDO`J1?A;9fkXUXCfAg7WVTww@~!@-+4f`dHPpj$M-*-HLcgc5QD zk9xdOm}XOiInDKwhgC0aNGnm30CNYa?%wr-mnaW%yGn?tmXF@ZY(wrtW zt7*+^Vl$iN+T12LyXnnuf-{`r949%;Y0h(^Go9*OCp+8e&UeByp7NY0J?m-Dd*U;n z`rIc!`{~br0yLlk9VkJ^DT0HFpr8uPB|;Or(1$9ip%P7~LvMo608}&~7sY5pXL3-8 zf|N58ov2Paijs>;)T18_DN9Sb(UGQPr7kh4MpN1nnbtI;D#7VabsAHj^0cMwq$x=` zLQ|I5R3J%R$x#Qg(Vhl1r%`n(Pn#-KbvE^>9381ojT%&w9+j(N?dVuBD%G%#RjgNC zXI7tDR;Frot7ereRnyAVt-cknOSS7=*Gjp7001HR1O*BJ0RSwt0eAr90Rja82>$>B z2pmYTpuvL(6DnNDu%W|)B}zP;NU@^Dix@L%+{m$`$B!UGiX2IjqnSfRMwDF1vZc$H zFk{M`Ni$vYs_iq`fB?N zSlX4O8?}f#m#x<_z`a&L#>=_0=g)ZSoI9jK;s_jv+NPYy)$q#^h~owzQNzowyjX=z!12BGW`iU0oLjYB%Qy*8YnnL)CoDO zpe4|S1GPC#5sj|UlP5;@(qf|l43UjEt0i<|iZ=F0&X)oB2TTn}k^kUDVv;5l;6PWn z8Gwz0_Uh}e8|kIZRMb#I4mr0BLEH+5>{*1HkX0#=oMvpc!ZhT-H$;=m9J5y!0MO&NtcQi=vxtY)68TD_lVtWRwOl!eW1pfMdS_ z=;vEOHJl?&xcH&?C!g4wYh_X+6tT=XMev$X8{|ymVZA7)oHByTdckBH0g`}29jX8` z**VkfC~d^j>{^h1ct&y#!vl?Qus9=#EYP?Ch#&%wY_aO}3TAZD3vb7U>`)1kNf~cb zPOB{T*c=sVrNBKWb;xAmECY&Y*$~9lYzFh3^v}ZuAT-egE&t|odKM=YHgF|NDuNji zO0xK+A(k^PCsG z0%|T2yUIxsgx86Iu&540sez}mK|cgSFd|$lnZ`(=t_yvQY0?pB`}Ez7?j9^C(hI^gTyU~mcbS|xKRfZ zgpCBegVZ6$sEy0q;$h0OA#W;kl_V|^W`PVM0DpK8%Q>WZi&Uf$CkZUT97`P2xJ4a~ zLJ&SgC;+RN**82mm=(yWEx;2<8#Hu|0BD0x1_=>42I2)tDi1Nodfzm9k%#MCj!!N- zRseu;g&~M(VgtEdt}H1bfgGzwLtI`o6FI=93DJ?%q@*@~g~9lo2b)G)!4S$Lf{4@r zJf@kCb%s*T63_=c?E9tBL_nS|`EMafJCAfC^8Y`l;n6xcSpjuU*0j#e)1NtU8U~~3 zNQNepp}%Y-HXmxsZCbQI5DgmO+zu1d=_3WI?4l(Wj9Vr2%xF zOBu-!nqKs#1j^{;Qrgm<_LHSQHEALr$qiR=P3`J5uS!;v zI+U+NeTY@tO4!dNRik>{s8$cFQNKbJuzd|HToYSO$m;c@LyTl(z53O=7WT7t*(y*o zJJ!MSwXB}itVAW7*Q=7&vX&KVR-I~A&i{h;wsR5fVzG);pQ3fNX1(TYcbm=F`n0OO zb?IeSx>>cZ6}Ql3if*mxTi#+8voo#kLKG|0$-4HV6xHl#v8mGGZr8NYO|Ntzirs3u z_ph!+?`rpI+~mHtvO3MId4&sK_4-$U>}_v%L;70EK6bN}t?zG9YT)eV7pTqUFMa<@ z;iuqtw?Vw?P7mB!X{wd1W5p|Lr+Zq?a=5}MMov#7`_%K=R zj(5!C9{c#mKn}8yhfL%m8~MmcPO_4h%;Y9J`N>d@vXrMx{_mbc91E_?aQ zU=FjG$4urjoB7OWPP3ZV%;q+``TxyujPGB;3*s!PNl%KB+XaGk zt>+qyU9kn zG=l?foZ||7+I$Q>U#rIRXzS{mwEeQ>>dKEzSi~|GvXu3rW(;lpK9JbtWM;Onmj6Jm(1!Rt=ikh77PKn0AIEbaAteyaE#7Z@vgrk1`Z|_0_%<7W z39Ngd_j7!LFq@$;PHH`}o~NJBh`kwi&!3z3j6(y;}cBA851WCC93@8UmE95}5I20pr zi~b`5q!>0Vs1SU>7hdp(tyn||q)&LnK+1SQ0U$x-KtV%cK^T-lm$GuD#~fkzDI+v0 ztJe?%R6Ww584+OyfMJBQctIr~j^v0u(MV6zcn~!pC%3>Zv62(n2t7!oL`;MkBo{?f zR7F?BAaS@wUGzonAx30WcXx+IYNU4*(O907iDQxow=f}Y(QNUz7ZYhkSOh`PxF4lB zkOsjd;{UL2>*kP=P<#tHFP5|ynY2mU;Yol2N}@zc^>a$Zr%J5kO0Z-hyg^H}^@~;2 zF`m*)bs&x)b8~Fb7NJxJqvQ#8)Ob^4lLf&R#{zY0`FTG{Hr=!_b~HHQG)^_pPUplP zpFuF(yvVaSq=0T(+rAVpUuA1zvQeTQR0#jwN5?Cl0{yG4Fw#$w^6X)l}TIVaoNK zivRRnh*@2!$%bvQ3{#?=+i66MHCOO8US0)U5jI~YMqUAy5H)}Uz}cQR1)UC-VDi~q zs70RB37!*%A1aZW{;8b8>0r*8o5HDJuvwsTg`gG6pbhGvd6iw)C7R#ao4fg&x`|t+sEWF%jQ`rG zb5?1Nnq`1}6{Xs$RpALf zi5!@B8RVc1tH6AX8f}X47lFZw2~lw?aRu9^4c9P7+g5mivH~p9B)xDy;@}#K8gGAi z8mU1J@px~kx)MfXfh=+brzWaE;zH68G8`l{*-&?h+Hl1Qag#|N6PF#+=S>$E9tfdv z*me-zN-^^BPV}=eH*su1$uIG4i=U4*+TWKO!1SF>r!#4z*Av|@Et5zsI4B{XV zQgtN~fY2%s8L}bS&>Ke*?p@zi~7PvoK#Fh7MAR zCz~Vs$}t`@bN-PT%W^E}DkqeewwVDLptCCBV!;u(855X{6R`qMXM_|BNcCfaF*7qs zC?QYif@y;{K|_YWcr=}<5TMH=RdY3K={Q)o86~h71t=$8@EaRA5WRE5@1nT!5rjjy zAtvk)%1RElu&qv8vAcpce=~<|^EP%EfOIngV2C#lLxTokh7FO!h|?I0(>O_S#Jj>5 z-Lk~Qu^*^O5PU&7ON>0B(uUOVhIbpQHIQ&ax2Ug3h^P_(hyU0HiTHAhXfTcVh>;jO zEVqE2m9Lh=JHC@j0U$g+jEBu3#|A-*cGN1M^gnqlI3lpe^rVSe@fDru5IFF3k+Qvx zyBxO@i$j4u%;<~?LA~|Ei`n;!`Vowm%)pkTAAUF#_5;D79LL&_CaX-!PZN!JtPKI; zG^|{V$4G$w2r!s3gnHS`?V1?K^3IP=O}vWn7JV2jsnrS{DsL*<3cbr9W!LD zZ~V*wAj$+m$4x_u1(C{&6adR80`!O$_n42zh#!>TCOR@3`V^@RxkOFW3lZs(R0NY2 zsYN)Gkx8?WThftS3zBQ}wZ2MGC@TVZ^cSnJN6XMh$p7*%8>mnKO?{-ygjrY6*zA|u zyo{eC9Kdi0D5;Xm&}_eYEQQq6z0kOV8kCr%Nt`4-pA?p3SxQXF$*a^%uVgT>G?fBT zOC)MJETX=H7)*dcOvY4+mU&f;D43u`4jWq`tKe0AAs3dz$^o!IP&W-*nUxxYuWQ*B zLHX5-8kgKLmzPtQ2(9DAzgvbR8TtPzt3_29-2( znM^8&+7Xpcfy8;-v6%nrn5L3Cn98UvdQ{3oni9&SmNQaLWuZn&V8<0+Njjx{#hUn0 zsTF~nx*4I+Nue%=p&JIDX9eBOxuhq?+|E^__y6Tv1RC8j3Zx18-MgvXDazgQ=-Uqp z-pqBRy@^~XD%^u5qvs7{+pXTy&0^I3+@?jJ#buvp6{O~=+sDmc`pppl`lJ4xR^t_1 z9oAt+%A?kG;3Agb3jUzIec#e8-Z2{CrTN?-y4@Oz;p^R@%%z&zb)q4<-yh!FADZI* zSz9K)5iFXcFlFBbW}oBzU@jV=JznB9j$k{Au8ea(J zLl%x#M73ZHUShxXVOAdHB@v~@joh6z5;P{7GM?RFzGOST=0^skZvN&_9_K6o7B zn!f3r-szrx=bq|cp$_Pis$*M%I*xj&L6NCH@e-W6LxVB`!hxVdC8N}Cs;kr1tJc=BB_XWaR;=7`tWYf=Oky6kd~U*# zlkB#-+5V-{I&al_tqOr}Bw@uX*R9_=?#N;6@SYGUxeBp{1Gk~HZK|#T@NoO&t`FUU zR~y^kL9Yj4uN0BPyP{6FOF8El+MFk_qh}BW3s47}u$uwfDTf~Ry6wd_8@O(P*yeJm zvm4gB?^rB}IX86~D>5xax7@;AA0Mywd%KYYqxmIgnQ4oa4WZeAGiUs$4bZc z7J@UKP$%554A}A`bFH|2$M}$!YXp&!xxuE7JC2&iAe_g0Fwc0GOM38pdYc<6@VLF8 z>nf-#E3{&|w}85xXS@I6y8jWoMi*-&P`kT(yScl&nxPVkkM$D*8KR-l7*qtf#O;+2 z!pW~buKgms!O3cxyvw_M&i|`^(TDcadu-O1E!YS3H>bUG-}T>15bMGm{z1N{;lAj5 z4(gk>*}{(I`@SO(zgBPg01*Jkxn%(imXJp7ia~~L$eqJM!r&@$UP>?&ND$*jju`8l zyLGYSNRlN@oBAjB%y-giYw=`i45S0oSB~^ zw251RG{6W@)*u$1^>D1|3@TXws!)*4#SO zOTsp14U)i7M-{Nh=l`bN1$B<8L9fyRV9uH-Y@~Bn8IEu&ZUp9$W3K=Xu)<8IUfOn& zYiscBDyb!&N*y8C%g^o5#VMCsd16J&8nvHW#c{+mh(Fac99VEA4r%B3tS~J=0S6?o zKm$EPt+U^X@=c^eA`@pBP(I2ABc%e6XoTLD+bFBlh%*kOr+!1pIl#=Y?yFV!SSz~# zw%e!#akNn|u!_io&pd5hW9Yv747%*SRiF!inscUF&oKPXNlc|85{jh81E-|2N-M8y zDM1mo6k!Cq$my#Np4zCvpcQNbaH9;J(xxwrs+uD#KC~i%s{l3}iAyd`IK;i^f?bGNWY3XoIT6S;_qcTRJBbf*vJur) zfBywIV3Z>Htxgh(7_<|H#xnP!8hRlo8x>q5xZ$(3AZMB)URxnIPaGQo;z;T=XozgY zDPmbYOFD!cReo9_lATbPfN2JpVBsp-ATh-OB@a-hk>=V7FKWZK zL?U^vgmkq5g^x&ENVSIb?8c2)`w@nz_VTC@yzi)aEUJ z2Kv4g5|Sp8L@4To8+@Z1YZ}!X2gVj*N!apqo>XVu^^+13rbtV*BQtkE0Xp9AQOj0~mM%(8eGlJ+Y15}Kt*3vQbgfi|=eEj_6RIXJjQWDMeo08ArmW;%pUj^v3NNa}D0Od!0pK|u#X zj{hOr@E*K&;yrQXb5rrs5Ux;zo0XsjMd*u{aBzh{U8IIP#9>s} z2SX98pa?URmk3lM0ut;GBTPJEL`bj#BbMnmU(*wET-Yp(f1{bkfSw4rxA(Uy2B|**=4c0{!_R)`h1YjTo&@6_$&|T3gq#+48$ovt| zkS1A~=svedK~^%7i)5rCR|ZB&Dv>2w%;O(LIZ9HdB#;1# zSGLlVs1zhDU%AUvGIEf-H02{pIZR>>^OUmeBrRQu%uUJ?lO;iBGTG-$YA*AU&;P6@ zDwi0|Vs_J;C%mLKrMb!%PI4p79HJ^~NfKrrvzPDGWjt*eOLCrao80_nKJ^)}b}I3f z?o6dP11d~;vQwG%%;Y(RsZ52YGn@dO!jsLuQ^GEMwFm0MQTz_ zgHoB=)TF$`B`b59r*b~Dsz6<6J%#E~j9S&GM^$QA#VV7GYSf*UglJjs`OmU8^`|8r zDM@YG)^z?9qGQEtUQg0iyQ0;q9KEYi=ZaRjKGmmhttnrrs#d)=*0C?iW&cO(np3u} zb0%J`>tPca%Z_ArvGjawXhjQCa>7-p5f#l)E$Yj-j@GrWg>7tQJ6qb;*0#6BZEkhD zTi*88x4#8$aD_Wu;uhDq$3<>(mAhQ#HrKh&g>H1EJ6-Bl*SgomZg#c1UG8?*yWa(G zc*Q$j@|M@U=S6RN)w^Eyw%5Jyg>QW2J74fX8X#k@aofv{k zl(HKFT|pX5zVec_?1_u$n8gH=S-nW&ox-7H2&({L;r{dGBU7{{GZJ9ZyvGL*j%3C^ zE)CQKD8OrwgByF+#w|z?GPbZ;Kt0AYM%u6n|CvM!k;z6c2*(#Ax4EJpImE=Kf`fEn z$IuL!a-u~O%GWpt$8{p~j;|y$AD?8y8>xYHQZuUl%-YgPO%OvaBB_z-x&%h#VG}oU z=NOg12UozM)kXsBH;TGBWZ6inf9*yVnq}I-W)6m>t1SI9XYR zo!&wXbKiQOxu)JZK!K4OfFeaqYBZ>q!bUTQ4_?`bgca$HzW;~7CEsF!Hbw|Ngh*uX z9O76-py+Myf&=5=FFHpav;d6j^r9_87|Tw2B9$xxI^$^6^^U(Mobj#K@BQ%kqDOI zx}tNQ`yA*DdCM)hL5;4TLmOJ)#y321h{lzRN9nSKIHYli)saISUg!+VP0|K8nJ;O5 zpLs=VzJi)$BO+5t7bxmZ4iUf9>+0-*PjSojJ&AyMF4 zS`%$3nHtpC$t{L3mqYY@G15Sa&;z5JUj^&%#d@GY=AcnZLy z3agL^4`CxbDUpObze%x^CU_di*!1$vyzaR(U!wbDI2$=x|%m_OGJUy0hh-v7* z0-Pw+m<#x64UvEi*`N)0xebO8y52~>r8$RG0TDYvj;G*|llZ(2RJF~63lWTs*{F>n z6cY154~)1EMB9kPXp-RzKxpEeNBcQv!@**zx&H#vaB@> z7+Bd7FWHGO851iylWBN7pnxF(0=xi#6FH$1JJGutcgV0p?>tm=GyX{6uodv}Tc&qqvA#aSdG26+rBj?z(f=j{%v?`w7mQ!kWS(FLNb$Gzf+{ zh=+-o&ZwD2DIeA<3;=YQA}ayhqXyw?#?1-cd;#c3RJc$}F?HAKRcDqKpqksG?Pn|f(Ue0)Uq zsSG8OnMjBbx}%7@%eykPDa{CgNOQ8I1cugF36v^IfN37PgC6Ozlj?bh>#2k6*`5{X zp6@Y;@EM<%JfHM2i1q2jl5n3V3YndBBy#KpJyA^WiMYnRJP~L~E)gI{+LE^vfpi%H zlY^IYpoMl}7E27I<7*xf3V@x+ga0z}EW|Rb!DN+c^EKRIALLj88B!w~O17z3fgS3h zK{^W{q9QRmj%Z=FBwC^-!YM6M&d;e6Fp8lWs-YVaqUGR$NDT*b` z03hVxl05<%9$~3|GEP^atDe%VE)mOkqNGNes&q7~o2o3LBBTU8D5pvyoZ_l!l28lX zOr5l=0A-Z{MbM&>rwAP?qAaWu#Zbvg(U3AL#1hP&(xw+(D-Zop#_Fq?f+twQCYBP( z8?CGkHLQzr(Gu-Z7$wrcTu>T4kiWW6OnNAuqN!-&(Hxyd8I>v&)zBYJEYBj*3q{f? zRZ;-~&Ka{UIkND9Z*3vtyn!& zV8v2|veCr~tXw6nT}4)3T~WY7D3pNIvue|9Elzk+(O->LG;LNN6;)@wlE{))kV?}W zy{xO+sI59J4&|&xh0?(q&Iqkka#bNsGA)Hdt z*_Vacn3dU?rP-Rb*_*}LoYmQ#<=LJEuAuZap!M1B^01IJ6%-rV=6bOklQG@UFy;Wm zq+PBg(=sQ6GAWBdGtq)p3^Rn3THt!KJ(IJ4j5?0cz7kjq71TffP{XhNElkt25#TiM zG1`&{HC^kE!@~$kblc>rxm`PlUOR|u^O|AP4X3$?glM)dLbMXtwrrbDWSbbNxG}Kt zwHultWmA(T^0rp&+Z1ZU0GN|`>k5j47mM47yTzF6AR+(Qy*j9aU_m+ai;hH~4|t)5 z;OvU);N6`72LG-Y0^4bxu1UpSkOqR3GaN|8&jnp;RFD$5xw5DMuIo9w`#OUlwlhOB z_*jMR^@6p9m}NMGL*O`WaFG%a3~B&{L#PUJNEI*X-uPVwPaqr<8WrovoI@a-n=FB{ z=mm&_3sB%P=KZ6=E4;%)7kN`X)_c6WeKEzw5Y3eta)<=EPyrRljdXhtV5k}r@B*^~ zkUTOP4AFw-yP!ewiOL%kKImVA2)z_8TLK;%=5s#iBM0fDKI`L&>^oe%jhBr`7wkI> zqiBjY$Ulal4;+w^5*Pw*$Oab?i2v{iav)t7R$v((rJA^joDjJX!H~`%idoS&D*KK8 zP+LBvVE;QIvlcQRwZN8*Sh{Zjx^sDy8kiFewql;a;sUnD9b^q2`9UlcLfq)#gUDMp zirRy?mS35U>bMRlHWR{WgBpP%r%MRl;|g3P4IW)pc$MKce400OkVKr2Mbx)DG~^%N z+kaGJ>*x#=c?fA(krw$C!N@es*cy1@hF*w-O(>yEcE{4-yLQ8IOapqD20UYY8`(A)}a?85Y7A4qn@C5no-h*HuvP*=<85C`Z1fUDcb3W2OCFZ_T*S;;x=ZT)_VTjUXOve-o$P}SK zf#30&pJ?eZ;S>R#AfOR|pNE*A`uPgS<=x-pUFmH*vkSQPHJ7vAQ@Zlgv=Z164OW~* z&cPi|^EuDwRL@(9-0EZ^APVUDG*2edlW~(GDk=hk#<1B&ikqP$Arb)`__qFK&;M$* z?92A;%r4N)zS&`2Q_nomYfaUG4b?O?(5}KAsA^KD+9eP@XLluF>lRT+?NA}LR$~n+ zK%G!v@+w*tZU)8Go>eR#HScV7P)coXo8DGnl~g!&Q%tQ>8D`QfEmKz=)SHrT!75Zi z?Qi}bQuoI1N?mK59n*1|DV6G|0FUnhZ_)y%@D-J-wI*(zebim$)3*Zd@6Ieb{nq)m zZv@w@uiE1d?^Nz~D(_bC|Bh7g)~XBFQW}r(^B!8Jg4N@eZpotV7)MvoYOVg3@SHZ% z^w!focJPC;r(Uh>aAnpZ4^qAYZ$Lt?ADy*U}n|1>f^RH}peC^h8(mMQ8Lz zcl1Yx^hlTVNvHHmxAaTL^i0?EP3QDZ_w-K(^-ve}Q783MH}z9T^;B2&RcG~9clB3? z^;nnnS*P_{_iU!Mb=soZEVJ4u%k|j`+c;|;I;$}pkhx!99=N@gx%IRHse!S`G-O|% zzfFq3<%+Waw!$qo!VL=M$aWQ=h*c1?Hp<*`vl<|pi^r9A(g@wrow$2L-IY6sA>f0x zfeYHLfk?29hgb%2pfet+prnaDRig_}D1uw?p8IJ(3Hl1AUU$&|<^SmA4eIqeu7JD3 zshqLi7&93ZVBmu`kW2qSilt)`o`V=|IAXdmUU9I6^=%@GNS#A?x;}n*&@kYLLEzLQ zBLPt$CQBVQF~2 z=$pQwaKBvKVF0}PA+8XMPC^jiinUNV@T(DyYnL-A4s{cHq_~0=KfMK!!86I3ji?EcTan%7eE*pMWd?ymQl`Uj6J3r# zedLfCg180x&=`>*4qJ$XPI&(4?}WIIm~1P8Luj4r5RSaxecN~5EK25!=tVMN=6=+_ z;eR63cN=bSGHK|ALr}pvAwZ6xi)qLlq~MYG3{laN z8aZHx5_!@_E)h&}Gi#3UYtVHhY2;R^7&v*TchBO-lP_=nJbKQi$+4bxtIi4%HTgI{ z7hn~RI^WKDGS1emciE6Lf7M33Ssm3!bCR zAvI_iUT!01lpcyHs<7POs`esd#g32hWsj9lFXO4b1>4>n(dF3JGd~-`Ai5y}JH{`V8rmVmkTB?v? z_Q@);$tt_7Q;)_Ptf{m5Ig%N@a1+3S*?3Y!cc3~7)U(7ID=D+(ntN`t!ut8?nz9B9 z)CxEhfdiJu{yA=_;C@>oy8Zh5@0q~H>Z-fL5^IvZuEHtoz2Tk;FvJl{%$dM!Mq6;G zlU1y7Wb6VOF2>}NIx)#5n@rWlLXMp8%Kzl9>+Q=Q7s{}`BDZ`p&N=HGl)})4`SY_W zH>@zx?LNFS(n(9)v(FX}4D_qc7X2;JH!FQL);Sv+9>}AL`f9>2BlUFFWt**Zq+lN% z70gY6eKy>2%RM*Ub=!S6-g)c2H{X5x{Wsu&3qCmEg&Tf2;)yH1IOB~w{y5~3OFlW} zm0NzfqIYS&Ip>{w{yFHOi#|H(rJH^_>Zz-~I_s^w{yOZj%RW2n0N8#z?z!u}JMX>w z{yXr&3qL&Z#T$P-^2sZ|JoC*v|2*{3OFupJ)mwi(_StK{J@?&v|2_EOi$6a3<(q## z`su5`KKt#v|33Wj%RfK;_1k|x{{Q*wzd!%|`~N=x11P`&60m>uz?PI zAOs^Q!3k2Zf)>0W1~aI^4RWx99{eB(Lny)#lCXp(JRu5GsKOPpu!SysAq-yDAg;>HD3t@yEEFgM?;6fR~{;|{(HfB`sx3s?=G1!!wT1F*rOw`=TUpBKkZwsZkpSVAdx zaEfobk&(`|U3PWHP(KRbzNNg~5J(BdQO?-H~cU+BfL!nmtIbF+AeNiKE807j&MUwOL$)OC|qJZ+2x`ducncL7U)Df<2~ z3M)+)s^T1Onh9C(IEn;+cX9y}YakF-fq5&wp$?#5Aqo*)I zM%DKZiV(TYM_zJm9hwSKRF&6y8)V4wz|#0RX@Yfw-pbEI>zF zs}%rUWdCL}!>Kz@c#_(;d-GM-r{)bv;~y6mwvneOZ(ySK&{16W0M2{LWoLHZv|QzZ zYk5>j2fzXW0CuI}9q)n5IkQz9;6L<{fB;|s*zZ<2##cCLg9o4j2xoJ~Lq5Wd3xFaU z__)YZF2ar12Vm?Jp}{n~4)(S4PwW~YyTQ4R zcD1v;?)IB>3O0~;y^r1OE0DU~10O%U^F8l|FFWE_kPW&EzVYe~Knf@l`N%_l@|CXv z;Qt-3dGp~N@}5rt2__%<(PKUU7vDVU$v5fIOFjT2aXnW^KNy&&zV_Z*{YYq#``4dC zACp!y@YQ^J+Y>)~lU9N5Nuc{0=zayAP;&r+AAH&uzxvag^h;JigB9?>79!Yw5%8f8 zkXyg}*u#DRXb=D`;G-TsVEzhv@ee+jzy8Kgf0T*&5HzSk0Ib13oP)X9p8-nG zqyb;2h1~N|qnneJJg9VVoKdeCn2EZodLoZxl21XA> z&<+c>pbNer3~~+$Y=D~8Kv>iR4q!keY+wyAK|EBT3aCX44j~a1p%EV8=wJ@2(Enfn z)PX+a!%u8L4djD9-VBPvKO_Pl7J(u@hL{YZ zB*q~au0suMzzE2P>uo?DPDkxUIamZLeIBRZy|I<6x-vLi{nqd<5`JI*6L*8ihD-XlKd z<2sI`KK7$O{v$vJq>229JPM>i9wb60q(Tl!K`x|2J|sj&q(n|6MOGw0@}os&q(*Ke zM|Pw~exx~KBuI`VNtUEZo+L`Dqe!MCOSYs-z9dXOZ4E|rBW^>Q#R#5Hl$OYV^S97U7+MtMrBQ2C02e(9^k}Q5=104 zgh|%GA@BiIekD$7rAf+2>~TdsmVh*zL#IR}Lae|_C z8%Tp;F2i5+LMIHtTgK&FK4cL@LTQkLHrzrR+{r=eWhb1ZUv^7i^8ch-mLwmrhBlO@ zIIIUBc;-IFWtBW+9f-p@hyyV6!erh;Vi=@eM#5lfWM_V6PlhH**1t$X#+1~6 zT_|V`3_*{mKyE@Md^%`%0?Ag?z& ziU1#+11NY$4S+&@P>2?2h(+K)BK#+SB7|c;rwEtc0A{5 z^n#<*$}My!mUw}KdWVrBsgi0)FKC1F0jW6PM?)6DDon^U)PZJdNQ9gwd)&fu4#WzO z!!6*zEu7|u90Fzz#1)){X_TpfUdSOJ$AT<_88qZg0I4=aLJ=fKjIwAk`fL`_jk*q+6 zh-tU*1b`ChK#;&PFvM;GiL1h@teyj{GUr*?!a3Z+AxI`U(5iP_K}SIAA$*0i>gGV; z05wp^r=Ep26i0z1hcs}*DjWhRoMwLv#1QmKx<*1{O#efP7RW+S11KDVk&r`eY{;xG zN1iSOFhr`Pz9gl3q@@V`PSW17fm+NHv5>@;*NUwkZoc;;7#gBd7B4FCfO#^41`|Zf`%{#IdG>y3<0ES2+v+Y zfh@?ccn7BP0c3oIlXwY-dWzz4gV+j0jpT`0iU1Cf12uT)KtSo*vMo)zEk};#H)MnJ z3J5t!L(qB$33%oTfW$!zghfQchi0sCYJ)fsFYiL>^m@T|6v#B-sx*kHKw#?hY6+bj z#BPoN_=>M_lJD&LM0Q>QIZ$blkb{Nr=w1p0U37wyC<%JD!H>iQIoR)v9s*=U!n4L_ zJj!EA9B`71rs)c2Ct!(pZ0zwOFH9=$Mv~`@tbi8)Es>Bwey9R4z@|(v=WTTFszS!( zN&}E+2wiBZ2&_P9I;a-Zg+(N);&BRKj{g8_*sqD)a1MLN4tomi7Gy#AuLyhv)oRFU zY^Fd+FoUp%7n_F9#)LMg=3JZuC3p%B94Te?LL{t#j}+;8e6fOHrwH5zkv?h&i?B;QrE?nR4STQ?4<|{Kz~ZU^l$PkDu0jcH?B@=q zc3c6lddCPnazoMu1PcW1YRD81gcWzEaC)T(NU$wLLMPC&Eq4Oz_ApvB_yOU!_u#qHYAkJ zfv0RNC@5Yp%q};qfCLAyqvS~>ME`0D)Bz*rL}@DVI79I{U~xCOGdLrj;4cf zg;#)ur;LSNm<3vx=t=YLk#_8pz-;YiEy${-1i$d^0&jAtL)j8dtz?52@Wn_J!I9p= zUURIB&}_S+@;jSA8VGE{@(Ad~f|h_^s6^{#!-&l2850C$F1BKLE@W7Q zZ7ygH+`=@F>j*4FJj=*yrY>5uq*_##0swX#P#dr1i_#5s&A(Kz3sdIBi)0&F68t9}S}PwUF2az9hC2xvjC*uo(k z!mwI|77K*8CdYC}2oLLWhImIo+s1@`gyrf>g+b>^Omw!y(9{kHhe3 zTmcB2@F8>vke8>8dIAiC2nkHXGGO$Ee`Ih|q+O_ImWZ;A;E0Zt0FS)!Orq#*Rxl29 zs1j4Jg1WhuWFm>?gnO1ip!dk2^QVSDI`wiWrjWqd%HyDrsFe%^H)1J2?g);wW_FGQ zd~ypva$|({NcD<X0Q)Cv16sL z7dx^iJ4YTn+YXJgKl`h9IJ8eYwRzV|!8$NIkqJi(*&z!yBiBk#c{ zJi~+M!Z$p`f91nRJjFNV#8*7V8|B4kJjeg!#&x{CeM^R;(H}k1C%w`yJ<~V6(?31b zN4?ZfJ=Ise)n7fMJ=b@=*MEK4AWSxj{i2XP*po+B(ge~-2{*#cwnj-qyWP}Jim%&wtd}GL}4CgVlL)Y z>^L30&EdQb`e&g4Ka1v)i9A|RI zz1|P$d9*?F76I(l03X1nS$YOC7R3t0Pr^hZBM!01i{0D6kV zPB18y{60Vg5Gb%j!4*ZWtSBh$91ao#36}72rHI0Z0}Dcos4)PEiyQ^^I;W+CMlC)w`E(U%!6=2NpaS zFduS}lcN=8WRnk2rV%qm^MH|t8&3`a z1wvIuK&ph;x=bXJX}Gy%tB(%h(n~M}9mv01zM%$`M2b46Go)hE29!KF?S(;sa3~JO zLwX_S%@l`->=r%_0Y*Y{JTy_*VTmo)SiKBGtUJT9@o@yqK=G)cPFj040L8?NL2rr zY6V}#>7}iLGTvR5u+l0SVCZz$N%vNcn zp@y2~Zh^Bq_oym@9BHV+Y?&2aD}f;&1uDwjqyqI3Lo5Yi&5QFcy7QKb#|w zHI@guJEfA$widSLZWE{mCv%dsGul`qZ?6@o5r-*(jvV5rM$Mg!K!~)OJOHiopbm%i z@C(3gm<$KqKXPzLF#zx=GveNEq}A(#kf@_Bm9<$Laf;~Q z|0~7@I?O}@KEb0-WON3xyi~4Y0s-JHgcktj+{QfQfD%L&0~~<_N?u|S34X-qzyAfW zB>r&~b!J2ofrus&J&TDz@=zBM_RkaXD~a1Uf|+1FkB2?<(V3j+Bmxoe*PLI-z?bb&~av71-)50jU2WS42<)Hny=j zhYWy!T%!>Tsqm6v($FmqafQfDhLRbwT&+f?kvbSfaX)nBD_@x`+m&E@Q$)%k)+3H( zfMS)|c-T2CmzNPp5p)oVp$1D}Hx;m^c4Ava3BKj9G2*2lB%sUqe&(b|bYh#`>;#Jt z2TX{JV2&CYL6{N~o7iHBw5Xo5L`tE zBcMh$zC|aSE#^SkSgI<;aSOB=6^!IyYEk4j5FGsSvLpDGRG*5@TdEVQPO0HsFN3Et z#*I3jTSi9kc~(E#3`41di03XPf)T*BE3=jBAnR(bL%5J2c_7D8M&LPM&~$SGiOn_*aG0lPG>Kwh`QI`64ixEioThjjG?W{}D^NCEW~sq4AOy()dpJuZ2r*JHiCq;MW*I!HrdBLB z0+A3cOGS{zcpVogcg^@gz*=5=(VXVJPy-miXa+C>RbiT#_c*Hplr%!d%Yr!3s3K@g zFTRAf5@1GELt>7R{RH z=G3hoA=cZ0kTkqas+6UhB#!Hilu!GK#E`rsv8!8obs@1U-uaYk=UAKQVS=eUMtSx@pn;wER>Nl z_GaLr*$`r5hLLKVFR^w}eImpDhH3%Zsp^m>pZUx|zw)B4dibCpx!)fSe7z%I)fy>&UY-wp z=Cd>U5?}uGNB(=gE8qIXAO0S-uWIRo)a$%Azq)74QU6kZS)#@c6J#|5(rfgYO07?*l&&12gdcz|R9WF!*+m z2U~FaGH?Y0kO6zp1XJ(`kkO=i+3Eyx0Ot1u9PzI;40B>*v z8SvkH@CuW#49)OEv@rY}kO@5y{IGBZop3L#@CUhY2w89ob&w7LFb}UV3c1e+i|`Bu zaS$yK|J0BS#}Ed4F#r7U0P9ZxDew{9ZwH@n4-xSTlP?oBFa&+C{s{3CLD3V*&<&5T z5^=B;!LSdrZw^m!|1xn4Yp??+arr876`L;#MR5eNPZ2}07X>j4RZ$FYum$z-4%2WL zTX7AkkQ0ru6N7R7PSFV&Q4Ig35et3s8dDG$pK%Qz5f!Pi4<%6!=`a~#5fQ7g7Qe3u z!EhaKG5xUd9kG!bSy2?jF>0)_9uu(&tFAmTVhh-j# zFGLtp79A4$ka6J(vLY?=A~7-}HF6_4vLik6BSA7GMRFubvLsFNBvCRYRdOX+vL#*e zC1ElqWpXBIvLoo~vM7!6D3LNLm2xSWvMHVNDWNhd zrE)5%vMR0eDzP#vwQ?)DvMasvE5R}>#d0jkvMkN=EYUJ8)p9M_vMt^6E#WdQ<#I0R zvM%lNF7Yxi^>Q!yvM>Mrk|%MXgGi(z(CshNvYLt}F{kERz9Dx?q>rTGvQSjIv&14HZv0(^4wEM*BJ9EoCLg7&oJDU?EIq~-Rgv#SsSC)Q#n z++ytdt|LeQJlaB9Hj6tSEjgKTIWb7Rqz*E|qcScdGd9CiN}?Acv&TS|r#t!t6b@k(AfygbBvvScL%E?wkWL_mU=>yYU364O2P@mmgb!TQ zs#udko65~RkJTqja4EmSOOiHfczmv*U_ zXp31bWKY)QRqkdPE{dS$fKjiNBeL~&(&es3u3I@`f7o?I%5~*>=v);mVcU|iNXn$% zBc4A~wM5F53RO@c8Y~1^DkD^8Klf|I`fKF0Y+esF8%F9`qDsbo<`$;GYqZQwvqan? z)7k%kOOJeIRZE~ERzL*8G)v-iPW4f10fQFrQEM5}6^xfiZ-uB7f@J-+Njo$h!b@yaH z2A9_S)3x^F5Z=#0xM4J&10r%)1XiF_e&WU=2|{Vc3$8B=FAyNx5C^-F9hcB$-SHfe z_ZYvi828dRBjVUNr=-wM?buFR-tK!@?+%ZI?1s+3(xM|k??~WxCPbjc7Wg7q?JNIE zLd9lpCK@Gw^_PVek`*EM8?m++y-|h-n1F3j8C@1H^>-i*Q5PxE595%jq}Lf&&4XhR z2$k3lB~o!2Q56+&iEB8C8!?A>k#U(fhZWZ?d)Nqpm=_HgbBB0&xseIA7>t2<9-TKF zu^18;(FL1u77f__rtuPgc#GR|hO5yW(KvaL8?~7L3E2_@ahdP93Cl4bzu1MRaGDF)6cZ7g>DiMZIg0TxnxWX44Vrm{ zua6&ke+Bx6U74Dtc%LI#p}BDx-I$Hfb&zqGk2kT45tt1(*`o*8rFnRVs~MyLSe<#X zp37LK>rj*f8J>MQl?i&NEjpS-`uF~qYxNS49oL~rnPoY;lLJF$C)fTCxFP#us(0FQ zpV`*}TA!mjIS}qd$K9JvMu|vF*~z0d$T#avpxH>K|8cX zd$dWrv`zc8Q9HF&d$n1+wO#wQVLP^Ed$zAJFzJ-GcM>rZb7YT&F;y40g|afG;WB|C zGdELeI@9WanQ+HM26G4nHxozvxbP~IkU6& zBBBJQ(};{L@z8WnvJ-p3yC%~$02ZU8GR8gUV?qT62Q-5->hnIIn<*B_WBb(SY;L}9 zGF_7iLtErUI8+>Lbi{BZMC)_fD(pm8mn!&VO>PZPIz_=}5=sA=Wl0&MNvj1)J3(7A zLL{m*d!98*dG=z+c4I_bChs&)U#@FD!aK+ZP`hVPHKI^i6j2vx2BF?)!;sQXP%&DG8lMneEBWbpznqy+E z$702ISyS~KRF^^A_RDW!tQum>OWBYgz0Xm^sBE?*a8|N(wtL>(W(++kyxd%f>$!fS zk$75}OT8DpHooRdZ11aV^$U)i%D)Vq`ta$ga!hAt7!1FFK;N`k!Ah>qi>x*KLkTan%3)(U{K|25YgQlYWZnzU~DW81p`n zoAH1Pz779=t^*(HZMvGN-tZ6qoh4cE+4<}nAMBi3=p*0qWf0~k+55se^RqFRi6xK` zGM@dH^jW|4UH|oAKlWvR_G!QNZU6RhKlgQi_j$kfegF4?Klp`z_=&&xjsN(OKlzn^ z`I*1@o&WivKl-JA`l-MAt^fM5Kl^hN*R>xdYoKwuKLvGrw}+($`06~vU)_Y8xQ$y_ z!fP@NHT_Spxlz69bcl0jkrg-_ zlCTL>Cr_L|S2}$PHLBF9RI6IOin8TPhkVX~YFGo5Hgf0A0n_rZjWlv(wMAOdu-CbS z3|AbQ#`c`FHb}Ah{R=p-;K76oTht0OCa80X6b7iV7FeW1x5$ap(zgydZJ-Wy%0{ji z(S^Mb{#;R++GJ4N&haT~IJWHBv}@Z2jJR&gY&{1W1a%Z=CvvOcF2q~J=i_DBhWwOU zIbuYS-lXRW zT#=19{4JD69V<8{UV;iP$Y6sbwe)DI>=&+F21OsR_%GQRvWO9fI}Us03%LW(;%n?h1A$`$Q6B&=wAS4cqM`eFg^)o zlu`Bs4i?oN~@dXGn-O+2jZ- zur-=yd)2Ve3g=8?+(57uQHPmzAXQ=jS5T*-L`>C5X{DA%c_*GCoXDX-m3dLr2v=Og zVW5YEC}~TPJeMSZ0*+Y6D%@R4Ypu417l}mI6(LtA3{_S~Q8kp7&3z@bv`lhHE%w@) z3yCn@Ei3p`0uIxN6CIqlZp;5|w}4Rt3^2_AgV#B|ShtX7;((F|DAP!jjaR{h9*l6pDUrpNIMdu>;E{Zcbxr`QI+GXZJdzq}M!3w_&bIcG;dQ%B+YMb8*LtIgV2sqU+lt4b0;KLPH5M>jd zN5P4wKs(_eY0EClOm)=y3Eg3yPh!-+vG8cHo8oUAW?wU;f?U1_#c! z(6W0HC+ntLpc|(vhKKkLO&rW+)smBfX)Stgz_v5nH4t($`-Oe=V zfU^z}?{C9Sw(!nBPtxkFcW%7v%~!uV^xAL#k@VI}e|`0lf8RLw=AS=O~`m@!yYs{`&9FfB*jf55NElaDW6XpaBnvzyvCAfedV*10M*%2ug5*6s({H zFNnbmYH))b?4Sof2*MDGaD*f*p$Sij!W61-g)D5L3ttGs7|L*lG_0WwZ-~Pj>TriV z?4b{T2*e-?afn1Lq7jdX#3U+li4Tkvc$_FHCUUS2k*EQJXoCYQvg9od8A2qyAVu@x z{D8p9|&wU}oa(f~#;Ixz&Nl*~4HD2o|> z0>=T-F%oygBk)=x4sA$M91P<_Vooy1+JxmTj#?Vi1HhQY4w2 zO@2zCriCQ3FQHuJC{I_VEX|}QHB(AYMkFGk5M@NI3_x&3q?CP`(U?A|!4-mbl!uJ* zIuVH`GaKSbSk93qg%VK>hEN3SEc2FX%jH74@)d@Jg<@twi$m0s7q@h?l~>S)I6$?K z8hC<|>Y)omdLfM!?2{}wkV_rZs09=ylu!?m3uXlMBZkb9A+>bK5Gq5KZ-7FMOapR4!)4!J^(rgPSxo!qI6{yM~cKbg5|G4HT4{d&rr`ckr&f{`Ie1;!-<01R?m;jX}O zh(RI&lMxj15H_iSJ>>`>ZR{(t5tSu5KDkX%4n$QWszD^XY1yhlXhIa)%aQh47Y&t4 zA|L;X1gathohv|t9BsH{Av;lo^s09zHtLU29fAXLP@_;h^1&;a#gHZ0@jr@{C}U{} z)nAcUz3CmoT5tf&=*CP&b)gY?ZLS4lvPXvt51^@?u ze)KudQ6O?0)FA*Olr#v{6dB9%zZ7-sa>w&j>4-t3OHB-8P->gg)C() zgjxJ@ObrwTX}QcbD19`}2z>n*ZTOKJer||Zz2cH1DI2y3p;iFeWNW5aiyWY0iWk;3 zPHHC%T;d`ZSC-6n0|Km{U@X;Kf72v3YfqyzDF zpcg}qPVhLsc(rds_6>^A@BtJDimx~(!xyQ3gE;sCH8(`9aG5d8G7pPbLni-57K>p_ zV;u9?L7;pw`f(Q0i@C+k^vO#>diJxRjSMG6JDSZTcX-Z;fQ%yenlF{ZkXI&LL{MA^8KpTQJ?&&#%yj0+ zJ5+*i@+`=Be;N3WM>o15NOfl09O`WoONdOq^jGs9;3~(w)-x^l;iJ6-ZBM@3mGAbq z^Zf>SPd2_eu6^z^{_)#4vdG;{`gR+>^EpVo%~8*7$Lrnhdw+ckX8-%s8=v&YN4fQd zpMlwr{`_>`y4;)p_3Muy@WGco^XI?*_TPW^@h^YW_c{FceAVZD0~r50>PLVbG(U!e zfXQP&3n+mTNP!h-fftB@8K{99$blW`fgcEhAt-_)NP;D3f+vWADX4-g$bv2Cf-eYz zF(`vGNP{(KgExqSIjDm>$b&uTgFgs_K`4YnNQ6abghz;k5m9+bm_T;X7`DWOEiz4I zGzXcDD#9|KVk2XS|Ccn-_(5Q|}lRe^_Cu>z408e7PR8<9&gK@)v}6OT6{ zI8umIh=@MnZ<2xo&$KTIb{*d|6flt!={1VUHYhgZOwc4vzGVL_4Z##P6N=&n6eS=O zD$o_Z&}flJ66O>D=mZu5Qx<2z5C#!qd65@o;f%y#9A*$(ZLv`f(F@wJ0%B1X+K>n< zU>7rmR~N&I(-0P|aSqzxSLk*P#L0@P>7R+E4Nf!@ zYv35uVHrhs4hgC?Va9zAIuIjpaC&hIYrzdcm!TRul$xR^d?FBj(guD8QH8>ujd@6# zvI1)X3Utwy!%3M%z!mGj2Uipyy|9^OF(48l7tk31eqshaBLZ0%Hb6=^LMjngU>*R~ z3*NWR+0<8(A zIN@Y-F{WjzHI|B|%b5+cb%~|%gxD!;OyO;v5~}CGVt3k?3xQOGMR|Xksu;m=<5DgV zmoAnuaqki@Uvf%vAq}9QQ)0?S#IXv~01A2nN4_|pp`jOtFml5xrY}02E1)T7nx?(b z3*X=gi4X~RAuT^4aXUv1@B(dhP_5UBCnJETD}WbQ76~1j2dnk19kFx{12LS(5)>nK zb&xR|10Np}0MvnC(2_CdSO)`<2EdFe)Jc)PSSpcJAb*e3^h7yeAgzt8#KIdnE z(K=RTGzfXO#}_s4v}yF3S2IjZ}kWAR5Q=Ls_f3cTC9$QOUW z>$?d!e!#0ath>6%o4L7D0z+U6+7JL`Ar7|yM$&t_+snDeTfN$=e7(YeMmyZ0-9(1-&jL3wLif!8=MKA=T7>lST=V>2VaGVAaX%)!O@j$(FsQZmSXu6+i4v(6LN(Tmk>vn zJ^CIqQ3s!A0LA%)p?!S zi4=x)3rDje#hh;qRwEF0py~>O<@KUBMqxyb&$OZcsto7umWwM3UFkb z5nafo_N03jrF}-0o2tt3+&Ye0Fl$oST@j;*ncANz4t#*2q#b6movk&a5H%o;(5Ak8 zEU2ees0B9=)5#EqMX_kj(SbwSz7eo}f!e+B6NQ9ZMbTHVP2FYY1#+hlsLh=y5yt1H+RZIwTu?QE^lhC?Sifr=Pz(14U@47;?N7+z~JbeBqJkM0ZW?AO#($gNhcY) zC|XrEG2I&8mrhaw%IJ%UFyrEI1tTs#*sFm5JF-n@vgd@dP`k1uS8_MG5bJVob4W6) zsWe>?kuvJudE#JX0Ss3#1T&S?3u>(`gR!S+G7I4aI^~SLa0MW6Ge6A3f-dF%`?ZN@ zw>mSnfkzZg!ne6xi<*KIPC87#iRg=mwzRDiaym^;dbe;=6g$%si?_ltJi}&udXcMo zYLx%IChU4yQ|k81I2AnTS$w?x?YODC!Y%B=9z46Zp1Iwt!~ksT?_21(-opw!<;AD$ zv2Milhki{we!c#H(;LOc{<`-|=)m5>ycas#&goY?7~hzJbdo$ zu6<36>Rq$L>R!Cd=jvl@?7<%GHcZC1zQrFb!MhH?wyVXhTf6K|!T?Xi2`Ia59Ku5k zyR>WX;!f-qKflz6!5xh2K1{sXW4W*%#KX?<{toj0PQ~?0?*3L(BH zFt74*48>!Nz2C$0_dYg)qwzaW!}N>q0T0Iw__*Oyz4hb2!pjkZx8ozFZXj#_jPagcaQgZ zulIY;_kHj8e-HRfNXeHM_*j9-eWb~Sj}@NmhW2^WitiMo42Y>Th>-6Tsl3X)gtnO& z%byr1JE2UN*UCK+pmJ}_m5Iz@=T2{=(aRjI`J{4L+Y4nVWPZg5ZrB0<<)#_EOS+#EEN>ZpyFVe`h zfqIYxjykG@ngss zy~adXf~K^BN!f~92CB|Lgd^IV12tmBv}`L@9L&2{;or=I3m=Xe+4gPRxpnW3JXyqV z5vEnHFj!}0n;HjKxLvJ0o3<5NNGIeIl*G`3MUN&uM_8d@#Jt6iCtv^G{P_UBfs4SI zt?VswUdoQRa?O20rENf+D`IoR5ORQ_?4S{V>I5#?zM~C21{-wnK?pr!s)XxEC_=7I z5Q6V6gKFr7oNQD;3 z1{h$P0cIL<&grFwp^Os;lsrJ0MjFFBv#Eqt&Kaw=0C1q@9AGHP!xM4HsY3-3xZ?vj zglr68y)++U(;*y#wDV3p^F$~~mBg9mmO56zE7_&V_h_dRo_cJu z$E$i&oMFECV^VWI`e$^tUAt>u!7lr5yl*>u-KOJ48EOB(XU5iKkU1vY>AVwHyfJ!V zuK8id9p`#odMVF(YquBIeDkUrmz-Rb_m&*-(9ivP@60(@eRZusC!AwBPlx^R*$uaw zb=-5u%HFwQ2gzWLjMja4;)^%_c;u5;etG7bcm8?kqnCbq>Z`Z@dhD~;etYh__x^kE z!xw*i^2;~>eDu>-e|`4bcmI9(&u0aSF zFBSmltYT2RRLMEM0SaISfKP2v2{~4=8l?<@4@gQ2GjK6U+JI(4R!|}w@G?o# zkWURj!InK9LWZ?O-YvnnpG1_<3v9W?AtL`FmSsefAtUg@Ic{OfgYaZK2T5jSyr8Il z{*xR573M0Wp`=x0ln+RW1UYOGphz5oi`?iBLZ;{mf2PD1FB?{Xq@fLzu7WLXSVoEb z=@dq-k)FD<=L$%YjZ$VOC0-Cw309D$Up-_6)DXuL5u%iQBBY^0jSq{Cx|FDRvNm(< zgrHyo3Tq;y230JA3OoAy1~pW2iy;i9 zKv*RTq#Vf_a+py$NXnN~&#?*ukt7nefh2Sga!4~Qq@&9y;aLVE*ddT5A%}DgTSbcy zvEUIQdGQWji$@ZZphP7s!47=dPz3+n;&uqjIEPamQUoyB7e61VUx7PWg0ZD?@>@cCwX$U)xn z@{}BJjP7MJv$9TfA`&7daU@pBM1_ptGm~8bH=v_M2zdct*1?ivI>S{Nvb83M^^s9-dp_@Z$?>P3hIc)$rM z@PQAboYdBl1Z6JrG>%M;3QPZ1r%c|QlYi5mvgCmrTvkY9C346sWa$bEnd%5A*=L0` z7e6|VE|13;pikOl$Pb>zJdX?KByV`hbY9$qDs-W9WQeL>7zzpY$>)eXsuS7(2CTMa zTpS?D3w}H`cJi_!MHbF#>2^xhUnK~DqGp98-q#_-un@ox$ zLBHYALma{u;t&UzBeDW%u*HneGHwYTYRznalpEegrj{}~4LlBJ$K;5KX)fA}LoB!_ zMmYoyRInU3Gf~+l)wHv7$0u_52~e~g*e=B(%@XPQWaSzG44W#dWUl8w@Tul4>WCk1 zv_%_Y3_yXo)F}diS|$I}sDp>v(w}o?1I6$e!aS91@YS^{x)dthZ)!j*Ta^WM+$w>o zP`DmU*6LQLTx89!r1Q`qg_Eg-Wves^6=8i5DO{>9&R17CzctNc=^8uPLFQ`M^@XJ% zv9i~j2X?SAP3#-%THD0tcKUfPY&|#o=tlRo+u=R$e5ZTa-v)TJ3GeQLkDt%R1+=n{ z9b$u1Jm4AM_`+MxRG%Y!*!mW^%hwNeng>1P?asEo_b&9Jr~8}wCb*#|?elo0psFeGfp_rR`?4KmG)HN4kbszWEmf-Sl@_ed`Mn``Oq2 z#JT@{@P}Xg<0t=r`OSZR^rv6_>t}!a-T!|0$6x;Qr+@wJe}DYvU;q2(fB*gee*g?X z0USUAEI8+6;zDR_>$JzFCiR4J+UW)I3x@+i&u)mWV()2A{vBxiCn3bR$2%PVI+o|FOo=v zD)Oy^SQ#NiB{QTU5L5^bl!;F9-%fD%w}3QAxpiLoh>YAb;<4swc;l;{OYR0uuegVQ(%GeC?@1S6$* zl0&E%a$pomi;vn62%R9sF9C*-`Vei9uT^Bl4I2=j0+FB+nxQJHt4gYNGm27ziXuP~ zZ~KszP=SAwi;Y4EB+)hEr~zQe2K#adOC%_An1)qq!*h_NN0|m#;zF@##)A;WYz!`h zP>~d>j#e8-a@;Fv=&QdP$ibSd!b%N;kdC=vBIAIpgTR4(1f$O=jW(N)5h#LmB*?^y zBkcc*1j=~ELt#dRD5#a1NNh|9ZA1tFF~x*1CXU1k*g}bvIF8yHi{vVT-RiBAG>Wxr zDQ&O`I1($MU`d6H1YN5nh_J+#bc#U>fM@gzamb|Pst;+P42m>Liwpn*smdZCEfH+W zjW{o`5DT(kFKX(q_=<^Sva}MIhI0_8BH#my;*(X-5iLlGw(6%VkicbYtpHqZ-H(2e2hL}-q>L``78i*vAr+N{mBbj_)-GvWV; zvP+|~g%Fl@=q+jIzG?izrmj z`x?bD^1(i|4)N@Ya)c8+GYCCHHBw9nlzc&6`HWSd45wfc8mW%DS%E_+OEA(il2n^M z%*o2QHMx+aVd4@$3xG~Ihh8HPrP#**023i}#0RYkPrD9K6E$_LDzm6HhSCyXurYZ= z61qT&GO4-}D1t9p1qvwvl30fRc$NKV&1XSNbD9Qm5Q|+Ifri{t&1i#qGma(sBoerS zGEqwULZnCwBG3F$s(>~lK@ugQw!SzwTSzx<^ET$Nh$#t;sz**gq4v7e?zmCa8&H-1#Z~J-|&(E zIfO*06mp0vJe3NBQ@B7G6jDjWsF034FvKJ=iqpytG6?_(n?$g(QRT>knvyF-p%;?K z15xo!8C=S?;0pr57hV!MPpE-u5Rmnt6iWey%-U6vfI2@yJDB-7r3;Vhg2OH45)o*+ zRWd6afTe*siz~PS;;0;9`INrEy0(D|A236+au`Lrf*}aHSGgBY8Krn+SCN3b$fJ|j z`Pb9?*pGF+q{*3k37t|=yKxad;lWss06VwwzR$6n&MQ5~V;kCg9kc)AJC>aay~90* zI2=#yS=q7Kx+xvmli9`FS&hKioQ0a7O+2pQJdz#S$=N%gExo`~+IbmT*YnxQ+dj-m zKEr7}-P2j<%UZ3?h|vo^k=+rnZ5Fw^9nlHCp8MLWP1}~uyxfz%-Wk55jl1Ey+qtdT zyT#k!X+6z5y@^Pj*CX41AwHXN7mu;qvo&0`g&g3E9kIzg$t4%jsT}N^TgzQq$SK>E zecH`Mz0C1k$88+MbKKF*3dY@9)P3EgEk32mUA~Q7$bea%rJUFap8w=s;w@g|JznHZ zUgce0=51c*eO~B|Ug@1)>aAYuy zYn9?8r7Kwhsw=7xeAq^62!Pd(h~W?8mV3=9LU6M6pO^|dqhs0j+) zvoD%aqgLUhh!0^qB86CKWLydyUIDwJY39I~o}Nf%#F5izs#;dxAhi$-5v!ppH6*Ri zP(mX9C@L8a6{tor7*Yl8>L@zGYl6`00NBOgIMYa5fmzn-)4hn^gI+zAwmx-m_7Ncb$*jWD3dMmf%g9jV?iV}5m=44*cO6{2A!%`yY z0MMjwr4Wp%u2Y%eyJB0cRoU5HUX8`sHxZXKX@kUq@O6PsaTwUnP1)P^8l6qtn}yqs zg%XJ zO+wk~E8Q(`TF^yu+^usF*V||bS*6?oX`wY)&9&M=ukpImayv)#{0=+e3!EDdbp6g* z(#dp5AMND*Tuis|nZ5B#=h(}!noOVCnT_sI$6P0$^+Bg}INv)kpLE!R+~)1Th)bHr`WcY3dPd%t&l&v$*_cYg18fB$!Y4|stec!Do@ z?qQ|)m59eSc#fc75Ehz4P%MmCfjR&M&%o$~AQlal!hiq(A^8La3IG8BEVKb?0OSD> z1po;D00RgdNU)&6g9sBUT*#0hA9C5INs~s69JyOXN{kS=;?Rl`1B;N822voXb7lyx zLRpgIG;%md1Q>D-*b12g`JC&tQ6aT+9}iADS7czDAu0$C#gVk3z!EDD;dDy1s@1Dl zvufSSwX4^!V8e=~`jA_;v)L?4Ytu3SiKYQoTsfDmr6+P`aE{O>F6h7!pvbk6sZ;9I z05#4@>xpngTE7LQ5hYln2QvBur4@kWDN z2<~nnfdFZsaS84Y!95V1;2zupB)A3$mV_igPru(k|5VM<)Ktw>?UQ}F57t_H)pOq$ zmI;7`b}UU1q_H+Cx%=ALf|YCfqoSA*S8F)O5l@<4khQVv$@}bvv0MVybeKJv;Uist z&PzjMMdDsqIut&Y;aWposEyJXB;W{KSOQirth(SU*&9IZfO=~Cl?A55cnZM!O9+|Svh_o;Hq$$zax^IXdtkaoFe5Q% z6FqK;VeTMGNwx&!-bQ&xrn4CxwtpjMr!gT5U>Mi+FC5e^RiH*`?-OuS+LS3oEsC8P zylX%Ib5v}X`^UH}+Vk&8Rb|89)4KMHzu%k2`2L->u6q7E?`VXE13Q0T{QHr4(Ii0t`}Y2JDf(yd^|W}=`p@;ZBeFl1qxnOPwq9+4e$`~i_n4f% z`|PvNcXpTjKnPq!}=o+2JEfB%sC`){M@SBD7*K!8MC?G-6fLi;bkATWV_F^b(; z21_iNnN+6uk5HAuJ+E>&;QkvPld}Rr?&T}oC98i@z&_l#uiAY}E)`!)(OSb359jsxD67tFYtemV{=dg+M#_gt?gTA<;xS%tR;{9_$32HX!R9>HM#tWF{8Ck8=- z`$d9k)mk>>zPZ!WjukPT)ZDNiPc*FRwZYb{VTwtL*O_--N%zeK?z-Y z9Tc6oo5uy$C$o2Y(Ju`eS>5Oq!i-85#F8iLwk_=FYbZ7Z$Xs}o=-IvxgPN|{f8LhX zTAkxSlgV>4tkqaXZ6*|5LHO0$Eaaw(rxZ`ov!-`Hr3Cke25DPZeiDr|hT@R2QU1=5 z_Nd|z1*otZ&n<>;Z?kPN=Xh2PVE4*h$w$K}i@Xtymxjh*2kp}p#0cincPsvH;$;u2J1C=ueQpTnkgTff?~ zxZv94E(V2djmTE;N-&R!oA2USr)yiCFv0E5pKpgbW3)HyXnRDflI-8(m^hc#ycxpV zs>~lAiisr_fcV4+$0`vT=<)en{!9!}DRl;5aSf0RL>sZXH{mun^j{m1_XUMpZgq|r zx)$3~chinij|!-X^ne=a_O;CEudp?H!lUi6+*tZ)pfQFyw)GG-%z6I03O#J0#Tt~8 z_XJgr(=K-*=4t;bFAdzaIMJQ?fJI_^RI-6NSzsz_noU4B7t4Fc$i71yQFBsi4YB2Y zMyg3sqN>6tgsk?*7J`6dlXNjTI=d=#ga*E#ST_SQq(DN zxl+*)8H{esGl#&|H@pW73SC@a3cQlUbNQ9mL2mA7+sZR7?`w}VV3H~+0%*%f%6%*_ zONM6`sZZgJu}7T(BiJ-9#?jc^<>=l~8gY+c_^NBh+*f%0sUC?nQJnbgC(3ia@T@F5 z?0dBC!=Gnjm?9o>R8gLoYTRqz$2&ZjUO?-3 zymm4Kj;oiU8hE8K%|WXIWED1#Pc%l9>5)3~%W3dQhEpQIRO*8LB!=t8%sFjcY=9}r zSAaoFmK1)e{fi1IpVs6|8GzY$R^vbgXMLLFd`|6P+q4(1e901@@t0psE*Ac6O|vEZ z!)%A8T8V3W5hfEV=GLX!O83>X<(&*T__&rvIsWxsY_$(Hq0uwA1D9d7t604dRiG_Z zyZFC^XTINz8benViE z;IGi{3w#Tge42Q#8%*4r!6dA9Lc8SnX0Jj!ZiF0#h0%1oWQuTYld$(MVO16p448;& zgoq*)qqc!qFF+KR8q5$tSH0`?a{Eo%e83r%FsCV=%pSgwP1w^c&>7AXRXZ{#-0w!|39-a>OlCHf z3XSj-z#(f~_kKx8R5!M0Ef$+iXCqZI99>Cc`0O@9vtl65+DDTpOsi&G=}4KXf|kDN zShjmyr_(gv7O5??A6Gu0eRiW$wx&G+OlaEE9)7JoTNOXvkzjVEy|flTO)CvvQu~^& z)h7|x>a63uuhx;S>`9qe=&$v~RJyKJZNFS~Tv`20Bxw?!R3xHQ;jDJtkyLB1GGwTo zhE!XFziTplCbpzLBBFCIA^rDGt8qUWLtXg~Ejow)4xp|w1$?*Ekz6^XP5LMKWG(3! zu66WUjW#yr_fj0gL`sES!rh$)*}l#k7=2lN@wmsB#Blqa`3+WyZ< z(o=8)(=h{6rT@gs(n(R`r$3v33012ox#)QNC%4?Da>r_D(*HrynQ6JP z%F_(1e#h1v>d1KUM-sxBVqcx^j-L`Lk|0u@A;GC_-uZ6eHuEz))s9ko5&G@~m2s@;{YAsxKJ$Hf?k-Cnk~Q&wR&BE?PamE+SRGw$mT&$le>^8Yv@_p) zG;fBkU_r8A$*f={uwX5xV7;?o^Gm_EKLy)#g}W%p!hN&C!@$DhoI<)~!_z>0DF>(X z6J3=yL(>$)>SjaDkwP9}Zqa^DGpZu90V9elBO6g;lM<`ILumu68oESlHzX7ZaS z*Ke%XH$XtDQT8-sm6%~zEc&3P(}tEHkj0^cHM?U>g|jE5%5BB5z&6-Nm81)ke9Ebe zaG;9WgyLwI(=wU=Esb#dTvIHy@Y0+kT0|$+Bo6hlIS4mmox`Voj-6lHyx-qUKj0Kv zfr(&uzNr8ed?;HpZd4Bv$w7T|X}2z6+#%~0Bj*L%WpY$jiBaT^xfZlnjZf0DcvHS< zq0~ly3u9-ACWa<9kcv_zAt6P(P}}r8Ig59jwhzunW1|k-5}i`wuPPsO!rUh-s0kGr zyumaM3ypkTG$HfUt1FD_0af17trJ}qkx_JszBawq;XXEG!X4yhsvXHYFJs@3m=8)| z>vY8~)-_=v<<^_6h)mOf$(cpe2TX=)f?`iAl3$%3#>53N14M)Z9Gu8|*IDFS0u)nwy=cU~<+XyZ{wuGD;EoBDL6>vkK! zm@~Oz=)rS-wf?+QCk%@uz%hLFlgCjH=D=%5a$8qOp#O8%R`eLI0%lIT>)Ra;&aU6e=>sbj{kKAXx3baWKSTbrxOAd7O@kK9>9ZEh0A@wgi*Bd zuUV<3iO5D)b^AmZ`>>lncYcl~{NhG5CoA-=>&}9Sd=?Dj5VtKU4HQ%KJ z7gO^a5nvEE$`& z_YC4SIJNNl5JlQDr+P3`lQD=Wo##qp%ov%cWmmRHcfYCuP$uihTXFQT6Wk+EOHCk|>kT zBXDstdr>zrO|o<0-1%L3c}lAPa@p{*s&@8P$D*Wm@=M7D6|?2alN9y(G}FKw{gB0g zlLhDc6*99F52jVW6H2Xz)#Sh&`GREA7Ym*RIqsb+kdxK;iNyEzY42on=>4;}zATD- zPvub05>(HB#k8FEkQGh0p5&pn=bWY)xbS*%$*3ST&T!q}^P+=CqVvO=uvxO#=M3mW z`cG(PJg>UZ$rtYO6yeUbx{wW_^BEP+td`GemrJWsu~`92Ude)ziTJF&)9zhudj z`c!h+4Mn_Bm7cd4qDC;W5hNKumbe*imgZZ(`Wb(1U-sLU;kW7D#rmADt_*8uyg7aa zUnA9FgWB)HL{|K@wI{2;6?Sf+&X?|(@>9MnYZol5?k5`Zu2dzKyKycz;O90~Z_Z6T zQ&dhdjD1FKxrvqYg{E%-*-OQl#Hm)kEAV7bNN!KWa!)LDPoi*7s&7x`+n(Ix9=Zx# zQEp$^a$hxcA6~ex(YFt+ERx#ahd&lFpUd61I19=Z(Igr|OX%-h40S`}QhmzJ^@1tg z3NgFTM_uFa++xD@L#u;gj1bP$6q6SUCh|LUZ5D-ee@z62O0Z%;`cm{Jpwe}L(oNmc zZd5*Rv)~H@PY|0LH20;yhiai<4ZDb|xlveIX-S#PX<2L%uixVdzR&YcDz|QLGM^^} z8eA4yrxMQyMjXZ2oyKPgcq?OsUz9%f4u{RMZb%N&ND4M{+q+hnu?4%Xzj37h0MfQJ zV|!89a!kKNJ=HgNXw*M&#dN|`Xt5e_tztzb~ANB5J?f&j~uiq&j8To5m5OKYDTvc7Mh?Q8!+C13c_rI^)ai-8`ozB z+kzO|b2)S>Y6VwnpIz17lh;Y9*2%FW#%eBfef&TFts~;EUvjNiGiX?!tna$2Cqywc z=%_Xv65M>#fZ#m^7<3c;8DS{cuG<6%dKm={NZZR>g}f zmZn0TI<^Tl;b=NdXI;!sHXZzKk|TGZQD}y|X`!ucR$FbJC2Dbb+syVIhvOd^L-UOR zArbG@(?eS>6=u^7#xY*A7Vz zj1cW~X-*kq?X;SG4;R*G^YCf&t83GD`}-E-qblhYvgmf0jDdg3=E(XoV)iB_oN6fZ zbY|kC^UlZ5)a~EJh9ZqUUNg`J<@E-C?=P4g9ii$t=x&Pq?h-@D6DK_uxj~+UihoFc zPX5~J4iikCJ4@DuF&9qyudDI5F_~8}>b8)Z;V*mFliyzN@O$htQghnqPIVfQk!H@Z&y)_3)y@Qh!6~)_5g5a<49$Z5XbYaF#ovq^ z&BWtzG;mG$tV=S2O+Fe*esI(&mGps2k2$I6RcIH;MbaCc8rB%qTaM%!eK)R02h#QR zT81#DsMAD(QyBrP>4Mf!OYI$x zG@c%-PV;VSBrpErk#;H`Ze7FPPQ#Z#5V;c;5Sn6{I}<~ z-VoH`DV6&K88>4?jA=AFv@QxN%=@^6zV&^Hl|Wmf&2XJxJpP$;yplh50OL~Q`#q)4 z5rpH$VQ*Bp9MpAN8OpkYZ#kg|YB{UWB@l1$I zZg>J$5wwLA){#6SY8E5cV19>$?Ejl*4r{@#kFp$}P{pCZz@kKn@Q&x;LS#&eXDFss zX+_AdVGIy-p(7xb6HNS{pnkz)6A6D(`mQDZ(yitF=hLZ)Pt$M)g-%P?jx;3q@RuvG zK2NrvaS5Y6GsYHIn{BI=u9wG|g_qN5Ixdy(Kbn*D{;v_w(NRByC|uG9Hi4DyQm(L2 zAG40&OMwHq!ZbZ#J1nUV<7O3Y5#FZ6{{iaARVj8NU*^=?{g)X^XUm7*p5F(NuNdXz zQ?asXredBCmQn7<3dn zcyT9_Ln<5cbM@J$`}$2MEABI?Pp*%5KgQ(WKKwrV^cID}vj*Tuz%Z%j5O~Vgm{c7w z+)y|+#Cf~*39SNw@!VU|{9>FPqyllk94ex3z#1s&oIw@@M{@A&093LWC>1Xw__eGF zg-tU+xw=u@BG$w{i;A?r1fs?LcMSc}UH&8~2#F;EP)LU|paB$VCg}s{o@XqOhwMS+)cIs%cRTzq9cmg;7b$d05Jo4{;Rt(jF6(p~4l2$G zy`;;OlpZiM4c)MGi+)B1lI<8ap`cSE6w|iE%6ns~svotGS$5ARz|X0nL-HY`7HQ9u z!8xEclbYRbZ%@o%Hg4IXA1#5(x959HH|^AQnf_6kjlJwd!t-6InFPi zBHz*Q@3?kAfM4>(X1U-`I=D;UO@fcI6KqRF)8MauUT(Rq1gXYsrATVx=;oo~z@O>Z zzJ=1?!$-0x7oD(x^q9xnL-0$<&r*X1g+GW`qUnuKZsw!l3M{$w;TkSXg#dXSasDv6fN)n1}@Or^1A1gUF@{6)1?q|6b zr<>VIVS43`$T|Gg>Ec?z$_JaDY|1K<=82Gu#^mxduad5fp^qya42*n~X>XJ_xL$RR zMgD&bzPDla77Ci`lyyJXW303Og;w74ug%cPJJ#PoIN^^|?+Xo(EkWbYpriOqqbfUG zP|4cJLKw0?u z2bX!;89bLEuIpcvyj5%ry&bFVo+gJHeKQPxb6@mQlJBWN9v-_VYazPAnd!4HnK9gy3<6 zskz{D3Ink|Rm$d+dYZG$$;uhlBCs;V)y*eY!!_9xg`0!BMK%>djo1PC-eN+OKru?$ zWvM)Gb}WfbRcvbt(kox9?E&?sehv4InOGsEXocX!&R7X>Mn&e`xj}1hkL1?{dknX6 z!zp)Xh_w>eys$ezVw}I0?0|-5Ju}+bTnBsjqu}auP zng+Y6yu;u`B}4+_?&Y9|Gf{>Z&tIt?-+$v-roJ_SYz(rUBv~+@YI6Tlmj!)~M? zsxJui^}Ds-^HCwRJmRKRJ|zVY>(MAJTkiyK$9(&9@!JRx3fUT@3T#j&aivtiVbu+z zfxpWS&#!Tr8Azg8!~WPNKQdrqnq;%zr_$(*QW{?>j#BazL=Mz#gW~xHeZ_=sGN!9o ztp>Z3c$`32w`B2hy<`E^lXv4LecwDqs&lYaHJ>wJI(DQJ@3rOa6$iaFGEF`G zDm>4E?GF)J-a2 zGbZ*pQbm}=7r;O_j~OpPrQ4Ag+Yy;K)KlY(rRwtOZ(esJw66^uEtXAA{+iwh5H*k! zHIvbN1f1Ol!ua$_nGw#aR5oN7J+!mQ zsVGFUL2Qz-x&nWKe5EM{h8eD!pz6O56wdP$a^P6`*pCXF=}LdP=D{**;IN^*-0=?- z`YtjW6dyekdQ5JIyl*Ld;gl!^Fr`u~5E`4|Kdg91k@18ZW4R1>JzlK>8vf=4SuRY#L7ZchgoSdjap{96NXc_+C8f(0=-=DW zSBB9Km(kY_&_~SCH(ceCYIQbqc3289)WGt(%?5?%$;@O%I)ihoa&l|;89Xi-06VGR zCJ8}FJoAq5e4uJ+e{ab=WAr$dti=@0ZsEeflQYw>rRGBVUwi`$tW*t3_Evsd<|hZ>bfr=WVFXV=(ut@Ka?CRwHLvtLWh6Mrl3Sb6UJnI9}_ z>~^31rDXo+&v$DN7C)W+eOA|M&I{;;V7%nT{8}=YO8v*ZVaaw5aL!Sb%L8<%Z6R+! z-B%HW@VV#C681jjH?R8a3%yI{Zsn@~w9YdlRZpuur@5<3;ZUR;#5Fp|wawK)9LcMw zuh(%p?{z&}IXI8|Q#Y8re71!PuYfy4qs)=3F1h6yNTr%}WUjfUp1r<;^I^`HfOlf> zJy$*NOjnh$;(HWwVS&ALp?RH);RV-kR?cr4^ZX7_a$a6(ra3WU=4qk2vDC%azVm`F z-Yc|J#@N=xF3gKi8OT2@@;fYWyyOsj4`pD}t=V1VKG16tGF1CI_Y-L-hgse0%h@@p zyVlqan=E+<8!FXjtsD*DpPivf`OoLqy(AYHvSBhA!> z8YynAj77Z2dI@bKo1gW=<_5Y(yyn`*`pc#F*z9!6a~rP9-!NB+m{u%#P3#<&alRV= zjOAIbRG zfJ-D}9v-)b5|%Pq7_5n*sz=Hi#2Fc=s;oru7AGID;Xuq%{vW~jpI?e_){CjuOW4*+ zMc2zz*2|67-%~LyP{z;Om}7kqh%N_#;>~ZR1ZleCsN!`>FF(}EHZrFPu_y_#rKuw4 z!aJsfDseW>r9Ma+2>V)psIl%NM-Y8Nj_J8QzxEYT>P&)n)7OL$ypkp?@9$2v9`0r1 z?}`UvE zPf7fxw1nn!$|%37a%b82IxL2P4o{0Pag5`08Dj~+;i~;cP})t^B;BKw z*2_XQgC(Qc{bcI1$f8d#98OQAi*b4^mI8>f17q+r=f8&*C41ZOUdoQAkPdXDQ6-bg zNmw7fAf&gP#1kw2_OExF!g|+$@iHyyfN(1wM$mJR%EFiEei=*V9C3?gEc(OnIm5u) zQSOK>KtINNDE@&&d&Hca(5(%27uq`AkUxZyE_L^l)AiGGTG%RBNR!1!>Be%>g{5ne zmla2O#Ypmo71D#=k*iwc%h(Z;C()J@)3*Yl>57711}3y^bA>I={;bEt$m#WfQPv%N zsxfa|BJk%aitX|$=n~|#_JLAE%}~Oxgu`O2$`a{&YMS-F&m~txGA_}2qN8v z+`h|=re=E2<4E`#wjsM+ti=KD;4sNPiMe~yk+a%m{ekA87B6MIwph$BQ1tJZcXDFD zegXStQ1Y7(z-4JCqtHVfDWy?vGDmCzU*xF76Qbu8dl9A^((HKC%;a;j%3)1pYxK!;6nhi)xi^mdlvMhHREB!#ObTMB zGVxy7tumb9%ceMq_Qz4i#o3#go&ypV_*r>8G&P&*!dL3WJzoQxaXhLbK8!o$ZX9U2 zy{j;E+PTIcAnfa_1qPQ>8|`-n?Cxx zajOQOyzt`Y?q*ObEe4%?UVALVXWnnS%a)BS`Hjt6JY?US#flfpKQA%PtOS2vjV++B zD@a5LY`W}ymWA­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�eg}0e=3Y?2mxHYz+qq=24 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

TDu6;Sh{MF{rA$+3P4A;TH?gV6 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�OOg&Fow%HfL%{gI*pSW{M`*D& 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ⅇDP6nt=*K;A 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 literal 0 HcmV?d00001 diff --git a/frontend/resources/images/features/performance.gif b/frontend/resources/images/features/performance.gif new file mode 100644 index 0000000000000000000000000000000000000000..afd4c582a82a25d5649863d50a7851ddbd41d56f GIT binary patch literal 695481 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

1kltbJ?3AXKo1T%*o1xQ; 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%0Af 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

2rQm;c}d2E(3eNd(Q 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�-X~sR`@c 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≷2mKKWCrBRA7(Yut#S(@njA=FPX|k;SjJI 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]N6Zh=!0$pJ|Jc0-6@qd<1-p8g`}h(c^P_;E>BDo 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%0DK@2h9S&* z!rc&IDa$smK=SSsv?~4F+DX3TO+IyA{J?e`el~E2ta)08Ex`DTN@YBb@M&5%CI!kl zvwP1TNCzAExhLr@h0Bp^TXar=t0P|1&7PCoDT{?D;}Fneca zv-G_02F3CwkPKfSA(&=wdgmo(GG+K+Nx2Q7kOdmx1K2JY0B=0R0Tu#*2HMXFX%O#( zlMRMpUfpchopz~1!yNW`C`tJVeSnF%wg+hWGPAG>z|aHeng(wW9FaW!D6^AUU)A-F z258U*!!QuIj$S`{@16hos~6h=iL~;@E>HG0@Y9cG-q1J3anV~#M}TvMJg5`-kjlUa z@Q?VmzLK$Fdg=7m8#?VE*77S^8|oqHNmJin0UT6<$N?e{6B!;394JuW0t){lWjaYS zM-LshV2GH|D0uLIhYv>BbeaYrUp{;G`k6GDuV21);9fNvSP-E`8B7Ab;uccn$({ZF z`TPkqsL-KAiyA$OG^x_1Oq)7=3N@pkjJK#@1jB+NGF^nRw!XyeKBG^$FEIpAO;O{~~}Lk>Mj_CroEff)b6L?_sU)DAr=wIdy@ z(ikHRHr$AVj(kdj3TrgT&Pq;|CXRILN$r@^jj^OsTaQkfnYd}W=AMggy6Uc*XQu87 zcpzYZ5z1C$3NBi&q;|EnV50m+MsK{4HQLr>?}~*kPh@8MCXEfhDV{j52qeZUKb|P8 zPb#feBY5(4Oy-yn@3bmBBdcVxW=U$CZA$FE40Fsf&rCDB2j5(lVjC*TuUiy4N^e_z z(fc!Ah2k4@V}jYsmkgNV3{Ju%J3D509rN^#tyVg0l0D$4SOpus)Vgs`|CFup)hDkF zp4wubJQ6!4X{@l>HQ$YQ-g@uNH&amm{ij=p)tgw+J23yj7-5jfTWE)K=@n?bgE_Wu zU55kQ@1=iBT{Xm9yM0pD9g}oxKH?bHh(lq%2|C-ZZ%nng^PP>7Ju|M|cka6H&U^28 z0{(Zs9{QE<&B45~o6VjoflHRmdmgp#VDgM6)xpmOtG>uX;f z^2q6@5Ak<&t1SEMzRyp8{r2DQ6!1_#NPXd!=i9h@J*H6=3d~)sXFaA7kU@-b+UCv$ zv3PI~WwkTgxZY>MkpYEVv}>OQ*|!sx&8>qOgws#ThC#Z44u33cp$lKQJN@CTFl#{| zq5M+A0b&k-iUJtV=*5?|5RWnOy34=VB7&#kOnd*YGa&~l*$RBd`hM`i#X08BCUsu1R5LbX+RGlvzU@m zVnS64)SwD=s8eC7h>STzzsQs?7Bb+yB6moh%@K0Q1Eya5!hsNFlBitms#m#c)B*)F zLQaKTBSA_u;SCU}2V`1Y(#ROUG|;Cd{iir0mPl|aVhCWn@3N;+chXnNTv5d-Et z1(Eb!d2Os?AFIo~4k(#7G+?E?3^^sP@9t@t`E zp74rU#BURyIJ^8>af(e83V_*0U@9uuZr=?rT9_-#Mz)2b{aWsNb-KtndPt@nJ*-{i z>#q8W7&G_v*tIz3Ed5T=eYA6#f5)W~hSg|gXA?<{SY|#Ki!6iS>zn|HKzF|s_uIA- zp7UYH3*ZSCikIs0B?N>pi+ zldimkNI4w_bEgtrY>2;%>8ilEYxHe$$DS2Nx~hfxe5eK?c-R3XD~Uwbf*$l(0z={Cz7opmTq-3gr#$MWz_uWjV-T-b z+DvOZDlxX8?cR~Kcen~0(I5sflC>;raZ!Um$%m;)@+oe_N*bpU)^Nmu4N*x$8)4cY z!@~DAlC4@~@$hs7Z6pqED63hu+ck^nF+OmZ;~fHT7`U$nX!&*5*knm1Pb~^4e)2G; ziwq{@+~Tim&ymZ1+P2G~vTl|CM1&h>LW3BX(4s)VNJc3^H3k{x@06gZJX#XNC4wQG zjh(JKWhetByt6@6|JT(`44FPml&edm?pM7YQ#&Z`6LJirNgt__+eShUTMgWV-sSjM z2zS%Z9@3tO)DTQ5tJJteDtSCyt7Nbz&6f*4De5zaG+sdoEfogm+>u7Dq^>eIt4~Om z0L|eLVX>4zoEWcR0?q?L4At-i@^!xR)JaC1Q>|_%+^BrmqJa*rT`A$>NY&SCB(Xq< zArQt0iRp2DI{~-d?P0mQ$}KmjIwH4+ZtU&Rocc`)QCQKI?(*QTf0VS11OU=F&X(AK z2ufVSNn5fFF~nhSAM3>b%oTLEG#Y^%(_ErE=r9R7y3d5=yyzxj@^!-ioohSRJ)|cR z?Z6G4&#x83DJNJ;;CqRLZT&Qa0!kF09s=@y$}dn z;t=AH4t=(E-BxvCHe&!_3~#80&hifURw}4+5)#u0J%SB1B0(jQd$u7Bsj_}lXJYqN zY$YgN5@l9bWl`<5SvrG_1BFa1XhUyRa+X4g)@O-3h>2Fx5}zS9;9zee!49and#?Zv z@?j6?AdK@yJ`86P?LZFL5Db)11x!$n^hOToKn~o{3-EV@m=_KF<}mp%kMbrhv2rSA zS33Z(kmQCe(m*TFI5qJ>98AI@Y;bf`crhn}Z^{A@`N$2!0Dms>3g?CmsA4)3vwP2| zD*eEb@-`~}$Z{$o2{F}3d>utt(A8)cvN(yAjRVzBaF<(rCr$>lRq1$r?ZXb!ka)Hc z4W~A2BEfx#PzD~6j3?15($FLh@8KnY=h9;1Pm zWzYzY_YR&S4rihzTcUHmfD;&VXA(hl<%g2P@E&Id0MoDvWv~M*@BuOqm^Q%;B>@hr zfC#CR8-_;-pn(FNX^>(tnC6fVEuniHSS6kU4#7|zP$GZs0RREVVuMJC*EmsdBsl_O z7msEyqJ@I8MUJWT7dsPQ=h$*sd5I?S4)51=mvEM3#*To>>v(If(8Xi7oRta zwnh&B4Os;!-~kuVnah!Yqk;%ka1j@v5X*rG#E_8YfDJN<97fOsyyBLx@GGr25)$DO zH@A3#=^TN0f15}U7r+8EpnshJ4$y%Oui=d5Kn}fOpB}Igcxf8OfDZK_o4eP0HNqJb z0VNIE2(XYFu;yaGS%QpYS;EswktQkLv|CaZca8{YlVdm|SAEk-ojS-mt;Ysll8pIq zbvpq73AZd1*AJTqe>qp0y2mArU<~9?4*(#L)qxjoxeCTmh1!6d)-j-h*$M7}4*m%? zTvD23`G6JEnEk*RuMmHNNeL_ReXGz7R>Ka3Ii)!w5C$0tsY48@K_jhK2F?fo=0J1* z-e-`Aa0y=mkMzI|6VoNpAbPRc30lGgO-c!$QIKrV9lZ&NL{?vf7&yjxMu2r8Idw!! znPnBGtH>i&bvH>znuAHIq}RfvULqs2W`Eew3CK~P!$5&#$pmF!pv^+5OmcI!fg1_= z4$@H`@z)-+0s#65iv`&b!9aw^ftN-?4k~dv6;Z0~VGM{Df4paQg=#zcI1PMi8*f^L zu{RQsx|62nD$&4nHW4f3<29a&2%wsF=m3Q{*ATrx3=Mf6Owb6!u!h6tsy0e|%oSY^ zvRq8{O-MzRm2@~Brf9g;qk@Bjd?KvFI(pbp9Vq#vaPu9xQlDZlg|q@HCdnNC!GI)J z(y2FRmI#V=2WTDA+J#vorv-_5H|e3B@g$%*BQhJQs=6$ncz6O)1r}qaCMK4LxgyPx z8=~{C-bb%#C#Igk2Cs<@U>Td9p`xwWv_^mkuyB*)fN%N=nyC_{8{1&8%4BAwKygP? z%$Y`a(UiqGPH&U~N)s4Klx;8ja&PhuGRp=|hYd2OFzrAiUvrYiAc6Tv46*1D;9zSv z(hJC86H#+E`fxT9lZrq~arq!5l)x*UkQ+8e4;z}D(h#m_7&h7o0EKD0_}44gpoF-n z68D#e!(a|#Vh@mN8n6dwEpd#Ezzu5CjBN0XSn7GY+brMKfMvOg>c)2efg79^g%_=q zAj64h%!h2$Hn@^lS+Vp_edk+~OS#)-xtQCw+iNuN+CJR(ywPhTR;!}^ zsDU)gy*f#ow%ZF8fv4#34yMK#Ot-M7_BKZ8cHH0IZ!_6L40NcGBR$;II>A2C#_0lMpw-Ub3z{F`B7pF&g{|QHXi3;H(q73V_Oi zdb_%cO2_6F46ooBIM)cFrBz=?QJf~E+hY=}>v%9>k#7XG1QyGCQ-weu)REydtD+8Kq9-b;TGN8%@$e{D>^1|R-+pyxEY08 zhT^dh;&&WnRow(RP~gGgz)k8ah1o$gBA(z-rS`y!vuTfI z0?d5461if`!jUb>Tn51a4(!0LaeNULI-ot!11M*ZuX&jNW$+t55Ewaqp4*{1Bl8Zt z+z<~@HTj^<^DKvrfRgXL6V1qhGg8l_fzvxMpju6!t4Nd^^UvG`s|GTa*l2^x)lVTS zSfPv|j{8W{H%fE?tYEhRvXoBLk}%+36yXX!5hYedcaNB2oO9H z<}eH^-O2sX5=FB8LSe9*9kc15DEFV3Mne}mJjKGoo(xQ=z!;Xs|~RNn|79u zhTI%$j55<}9vXfUGrl98RzK7MKlKE)+pVsOiFBZcMx(; za`Yh3Ggb;TIa~%SfUN4T;0vps+S7nAP449F^P!tq1(XmB)4(kHhz+6Wn!Z2|VYi@3 zO)CSttjsYsDlw(KAm*8uas80Y6@z|0@eV_a>{aNY;&6Dc5Dnb`AKic^Y!D1k3o1kY z3NUSpPG}79=MmEIwyQF|Sz6U{sC#VS3(R7?@SuU8sv4IqioSsDdMgdE!0p`dwM%&1 z#wMIXl#PzWjS<4iie^X4xoC=1ZEuY@ASQ3EuIjYl3m(7fzJR7-A?vdaF`HL(Xz(Sm z@(QC08aj&;J|U)=8LgOSZgR`PsiArQDqR!D42TIU5HAgnK5-?zakZTQ3&b#XpK-`m zm=A_`390%e(&8GKyRhVNW`F(~T;dR2Xm9Eq4e4Mj3Cjk&5~Cn#rFqyTCORWy2_-1m z9nmoCgDmJUmhgi{7?7ekjlzO9#TKLy{FxF|4ZLdB zjyKmOgAJ%g$DehRGIy_J_maQ=g#}%&MONZSq?SbLhn7!qEf+GNRbp{?oxt5oj@Q_b zBi%vyl@AdA1P&xv(BMIY2^B76*wEoah!G_g>{rp^MRU?#Au3bFh!G}Cs+2+WN*cL$ z^z7x!XD{QcKw_AHWFjU|Cu8JP=IcjKT(6F7I(4&GFC8S6(C9#n!3bkcFf&KFRY$V3Wjw*tfiGI zvIiY(HtI+Wl3tm{oVIwPhn#3GK_o%Gpel+SVmd*DlAP+13n~CM1FXO*Zt7(kwk~>b zvrA$!P^(wCfvmpXJq}kp@E+xq+#S124e_fPBd5#lxZ6dgn`V zO5~_Ot$N`G%f2p33AO#&bo0%Jc9U~XI&&M2iRz-`&bU1n)3Z6{e(Q4wK($NGx!?%J z^Umd%fQ~xlg5yB{hVi87#5`_tTdy1U;PmuUP(u}UR8m)y3pKa;q6YwSz?mi*W1^7; z8*s=OjirkiY!Mr2dYx6A(fZ4$9doe3h8x2AtA`x*urWu)Q=wu8pW6`*o;jZ(T&NOQ&5fv|ESUqOoybopj>&yZiWug@Y91iwjr$qeBe`x#Nld zEY3JUxocj}>i``A<=bSAoO8*2F@Jo{*>mr`;@fxsefZ&~gHgwaFP zU9z|TIOqh5Pt&;p$VzCP@Zd&f&=p#B=jKq4Zs zfBZAz5RX{I0xl41OpN02CaA>R{ZNY#*bpD_!|YSjJM8vlIv;ZD}z`N^g0Y zJk)kvsJvc6Cr`a3Bloa(7d&0hd)K35ZqU;WZbb7~(Ui?9SxHN5W>cHn zeup{N(;oDSQ$k`+GI5*)<)a|ko#{BTZ{Q0bAfHJ}UrhsBw(({^{rOLT2GpD2Tx52r zC!NIrZiR`8lp_l@F_SqbdWCD=FZq-w--xm{GBXA?#338?jPFvu5Z5XNdQz08RHZ8| z9zngxy+;j7o*f+KOgXt7HKOsNALKByI1ubT^K9)vR zs#B$ERqf-_E((gF68%l!B$`X_^{G$1G@&FDhfwQbkDSRt0i|qH9%-NlspZ3?FE;0k z9PZGnd*y3i{km7IZcvkk`|8EYxQx}-AO;Ozp$~niR=U%rZgoG$TI6vDI>H32E_>@sc}^@*4L2vq24ed(3vIbu3Bro|j8VH%t9v5T!K za9T*%LR)xZB5-SM@M%g|yNshH{Vb+!&9f#ZQGiLDq6MkQHY@HrhzN8du%)Q$Tfa}! z5EC4v(%aB1`xLwy`|4tyeb}A;7Gu_aqYQ+48)#OOl+%Q!9j&?KWT(4f!XhBIviNIy z6~%$1@gK3Pm@A>#n{}x{pag4IL@4rG-7Q^qoyt4gbXs`ZE_UqyR$mL~#BEiRkizh6 zNQo^SW=hGKN@cAF{_#)=Yj&>F9{^9av>=)ecE8*A&)Pykf3GOlASZai=Y-5Wd5oRe zDP}y;dRyqoc9$j$Z>hz(=-FT+8pOaMt;VBDe$rg(o)VVTnpm!O$2)=wtf0tCZgQx! z12XgG`T(Ccbw%3z<}t-`BvY94qHE8~=cO@CefgaT4^sxMW;DwrSJG$h2JM62kI@)p z4)s_oR*SdRy}&V=4S`GXOJ_Q)q>(QIqQ)Nd(2Tu^F)MJOV{I3q2RisA4Pwa3qw;zO zI}$eXZZV5jmOqxQjz)OVsr}{=@3h@ZJxR8kwR*qj^R&hPdd7;|H_c7$6(9wVd+5_g z<^Lf@UCbg9?4PA3CD93q*r0vzW4{cYh=w_swt0)ZLmbgCQAZ4f2q%ey9SN)mhc;3c zCY0eO#xTcQjK;0adxx+P5FIg)n;-^p_>l&QzU$IGi7~97S}=)Aw2iqfpF*aXN-RXV zEldif9|H$8}?d<_6>8*zArGLV4-C;%CpK^jB>F}MV7FuhJN0vhbW z8SH^T=mm0M8kLX>sn`;`V1Wxb01q&NGPs0cc)XPumN2ObCP0B0WC16n1OyztXwf{( zAP0?zi5>U=8Ek+aXpCOK26QMFflEQ0aX^V#3=K5@Cu`#}-byfpqA200u=T2^I3ipsEe7{fgaca8o0$7WPux$2632%PS}Anlz|?&M}u4pG3bP5j2(;k z2}EE57Vv-%Ajlq&fe-Ki7SKdvIEQ#JhiIVxMN6E>f}{Z!U_vH91ZhZ#q8JvmF^pFb z16ynW7AQ!2EXgKhgI9PwUvo!Mk;dG}!#)(Nwxc9I%rdUZ!$K3IHYz5xO1^RIgk?~r z&T=kaAcjf1CZ5bneY24k*_=*DGbZ^yRg^&#z{$|-#2rvZBhZR8>x8eo1WGUoa!4Jj zaS&{{1TjDX59omyp@c?Aj2`d+8Zb);=>#UY#f%JuMxX>l5Caw{01v2wR{)lJc#EG2 zlSVLt2H4BANV7(u#0&5MCO{Fkz!j|=6`%Z~gbK=>>!3foq)q~}Y}7Jo!zgv~IU{h& z;c|~?x+7y?I`iqMIXg|_EFz!@3uEE`mF7we8aM!DWP(d5zai;_N|b?w{5)(?k6u}e zZCSww`A8;Z-Bzp_D%$Z$a! zxB%;f!dYQIG%$@v5=lgTRNAqe!Z@9cZRAQ>x3W zCW|X2JQ^2DQ&67lItKv&b3g}l$cRoT164c#9=O41(240xOMZL>S|JB*aZwiqfYb1g zl>h*7@C7#5fxXlVZZL;pc?CAG#a#>+D9y)Rj6%^m3>m$E9%uw&Fh9~;n-*k)h|G%{ zeNl4I2Fi;DZFrWQL{S1`&_?3_lX5yJ+8h~eD<@K$q{1N_2R*FZvKSxuz|6ug+lVGo z(zp|a(?;|e*5SMeVFM$$MOTbYa@d-}+yU{d0-Q*_a2XfTb3-C+kzf#mN;HB?kOp+9 zzxHg-9$M=w!rbYQP3e?c=(l*3_O-&NV@`x{R69*9!u|;K86okjLsfftK%fM8|Cw!9A zc#yv^f&)MSCNKoDpc0Z;g$waQ|LX^r%*zAl0V`S6ejpJ<@PPx6fif5dONr7CU;@Wb z33~v5Xh>23ErV6)MN%~X(&{tS$7Dhjpb3!}zrhfiG%?pUaaP_ir#$%}@{D8G|l4NlZ z((nnOfI%N%(iW8xHo!t2D1%^_1}L>fBj80RO^Py5SQZ#RUqzJ-Y0oO?fe(m54?qE| zIE(Si3H(Xfq0JALoeiQCui5GtuX0ct>ywA-shmYD>*2G#yAAbVkNT>Uz-`oY?GLGV zg(@gX89V?Qr~>lr#e9$oPb`4Y^neD4!2`H}9k{_Hu?Ul!+guIJyxR-DNm zpaB=SfCiv}guId!bP#lq2E6bv99v1kC~2)N!+yhvU4&%Jnc~Uy_*I5-p&O5Fh)Id1^&Q{D_e00m}q!Nj2u63 zXbZ5D3l#o781&tR` zm(j=?aERcgodyMzHv@W*02z}5L4=sV!hoJkc97R#pad$R;Pd=X7BEY9Yl#O=XJf=$ zy$y*2aT0%lAp2qI*3jskGB00BtaU=6kFZubB97`wtQsz-+$>_dF>9%#zke~kMGTgT z7*mVf#q#S50d!G7?uVI{(m*KeXrUhfa8Yv*hibvjXn+Y-^Z~LZ7jLnbaEa8wTx9@i ziF_~zv!%t0bizx)UTJ7k6`8jM)a#4}-?Iv{u)?jjJE3MmN?A6`~|hnl08uwQT$0ZM&04 ziNNPj>AdD|b!(c=m5Kb@i+KHu7ZgoIV8fsIz8FEkr%>z|o#GqBhP64Mu$e_MxIrS>Ylq{aQyRiDhY;*9sN%C})@J>9;20&E=ob2jD&kwl4GvS6+V1m@?h0mcLE>FyQcNInK#c!P+rcmgWiR^JKvtb7Si*`y3ors{17fy(k4Wab6^J!xrEQXfGnnjKnR19g!t$*n53xx+mi%fmyF{J zaDlZ1;ac3(M$m>9N#SK&%%wKTRK<{#aGkJNh2E8c7*YApWx^_01!ti*e_wZKw%LlI zX7S~*k8aJe+Qyp|;+*pi%37qJx3op4-C0EV5AXqeR6-Bf0S#tuS;XwuWdRzv`q2Dc z1u+c6w9Zc8hNxM;`mANWEl643RaoGQt!8t`lmX))NhVy&!B`MSRab=VU>3mpt2fE) zCJZ)tdWAr1ZR9glJFh4Q;-M_Hy!-9hq&U9YAjQ8k6~&bYj?vs)!q5fz1KsX^`21p2 z!Wqol{8LEC$W#&r2dyS%vGjl$d|ekv!%kqsmPm?+v_)hT&#LwR5w6J<6fSqsS6y2! zR&emb%})sbj;Bv2I_pTRF+<--N!$ok+(SD`Cg=D0ef}sL)deAFyO3Z2jgcO~kOpyy zCbo-P^j$S{7M?(ddBjJYjN2CB3^s>ofap;L(JOA~^7ZTYP8_jIY?#ovaKHnNDuG@} zGl#HWzKsbxCbS1YoH0sejIcORfQ6AVmxzgbmvCmke>QL8%&BuH&z?Si0u3s3DAA%u zk0MQ~6CBf~PM<=JDs?JVr$$B?*)f6%)~!2ssJLn*Ygnv1u5!(KHY?k*X}6kPYgQ~> zuwqr5#cCu4TdZMGpr|Sss?x%S4k+jJ9r5JU>nvcP?;)XTm}P2 z523w{`9>Ps+_?&xPB7nXBu5NUj~i)TKIHsn1QVT1gN|7$XffFaj`| ziBq0vj*>w-3641cU}$26UxFECWDJs7CR6!+Wkh}dXp$vXUT76qAb$Wd!53X~ZN*nu zZ+4ZIn|6sMLtth`C8nW=BATe8VP06%KOa%)sBTm4h>$);)-;niuLQz`7_WdM6Q&#? zq|TW*TQ-+X(HrC+f4^;N8z`4KB0 zn$Gs87lB^wAZV{o>6)#!+j6@td91dI6P32M+Rvte2-k}^^n{z!xZsu>@3-@=3U9af z;``XO`%1NJvRN^aW}kejc^_YV1`J@E0;^SDv}oCRFq~>x%P%LB<~=gV)-C-V;f_#rr-SI`m&>|6@2oU+hE6J2y;_K?Gk ziyE1h-K|DL9W{k4ubfxH!yaq3v(<#^0}dz6 zcn18roNtXK@xX2-pQZ?dvfaD&*JEEfts9A3FZSOL{rk1V_pP7RGzVUAn#ZGs{9Mfb zTRdKVi3M2D;Nzb^mN5GG3|Xa9*7>j|t@HJaSasRK^zH}1 z3t}*3r`kyWyp+KY=1PFPN?r6CC@^GcrG!3v7_}6(ytu5eD_t{!{bC2g8{$w~$U#oY zo|eNOhDn5kQs3ubIJok;DJ%;s*aL}(u=V-reKDgL^&SVrD`K%iMq-zBx&)Fef)PSO zG*c1(U*>K~g2Wv#i|Lb7GN^DiOJ4(#2e>^Euz2)~ zlPbA3#Txd~nA$9)s^qoJZ*C5m?!lxCC$>0hHS1~+w4>sHpMwkg#j!sW0Pa?4kkqywsVpBQJ^{*w>~4lE}Q(E=m*>7L5c#?pY4g$nhK`M zbT%`2GGrzDUKlg_NHbvd!J{5A>e83O6o4A_)ih69IBK;Ji4&8ieR!5mi9yhKj;m)( zi)z%P(r%`MNnKrxS2MQcvWanVSk9R0Oje!_a1pg4QoHKauS!j+f{BwzojRwEn$BT= zLlZQcTE5oZB`Y~&DJQ}IYS+8s6<=bl%FE`WJVg$aE(c?!EfZEBXg07}WRuoVdzIJ6 zLN>C9+ACEOw=5SHD2*ZoU0dn&(7`EIYlc-zPEV)FmP$6Ys$K1vC@YmWB9Wwwgx=YT z$0opC(s_pC53#mNRMrAFxWZM6Yx@O7(*;&oXq}?8gy*lF^%QMMbSDkz>Db|7H@n*1 zNpYhxM@%xTtp^>gIm^1dG&OZUZv~cGDp=R;!Z*IF?JiV8+9zi%?uoXo?R4Q<)AOEh zKTKeOb$KP<10xu+^nJ=xA1X&^Ijfn)VkpAw!uu*uTA<@_ zjdAScCl^!4E&ED|(Hr3vl6JHwgeyUX7djnOr{nNuc31=sz#2(BulClxJx=lfut+0cGUh*2tfC z#_z?-HNt7%n=eHpnsUSp<|utqXi$e*OrYMUqSg#%W%-nZc2Znf;n`pc_l(M4j?13S z)Mt4CJJ`Y=HnEFs>|-N4*~(rvu!VB!QJWgth9)FWm~HKAV>{d0-ZrRyTJD(Y%qJKK@1sJ6pB?sA9uuB1#&6`v5O zT`$nrRw>s5-U&bKqjMXpi&{X>J@JZ<`r8-p_{ST)>LQ-mWu2 zH*VwqQ0WF!NDmIvo4zUd5@tu>QMcFY4)(H-J?&?2``Y9F_PWnK?|1L}-UI*l!Vf<2 zhj0Ai=e~cfcN*O-1Z)}c==jn{{`9L){p(vl``F*U_PbB2L6%GM3ua3K30k0T3U;!H70U}@mD&PV#U;{ef z143W~O5g-iU(oDMql)qOk=QKX++-uW?%-|LpxmH38G*Ms^AK;U<LzuAv&5p&PQ{8@Ayb%3&SG z;T^(Z9?~Hm?x7yqp&#;L8NP!V(gQt+-~dvJyD%NX5z>?#U?Gy>AO_+j0%9fh;U)ed zCQ_m%T4E-8;wFA#CxYTA0^;_7Um`AwxbdJ_kq>_%nP{bnrePRQ*~~mi#fKo_5@NzD zbb=E40xdX+6t3P(3}7J+;xQs)GAiRTGGjA3<1<2IG)m(%Qe!n*<27PqHfm!uf*~Xt zV%_K)$|>TZ8Cpl!gExZVHmc(~vST~C<2%A*JZhsB(#k2$pqSL)M=6gy(V2h$RMXb9 zpUt(|4I)?kKvaQogE1uGEBJyj5Q8y5q(b^4F_AqZyA0u@%`}nmXm$D$39+ zI+eqv1rajEH1vWm8bklx-!wSn5>A6f>QEKZ$`#h+R&r%mdgVG!qBr8CJ}u%n)(djv z13a7~Bzodky5(EKC0vf=Sl(k0EgXRT7*yq;BE?c)&KAJv)>qV#ZS4h(`Nk{I!jp7^ z|3#twNu?4RgHv2&NMt25k|HN!W+-OnWol+;a^`1>VrXurXnLj^79w5$rb=B--P2&D zOOhsNj%I9@rfkCIY}#gR;^u4W=1pn{N-CVyVU}1(OlMVGQ3{@O1>_=`8|O`t*)0fE zNJB3ggA|q?IEaI9bb>TkWwvxtk0fJm(&ld7rg(zqc!uYBnrC{xBr}@gS*j+fu_iIn ziZhmHeUj&WqNjc4Cw{6YdAjB?wx@5>pxx0$`iJY*m{fG7ZfXgh#tiJIt%qG*b$=!&vvi@NBG!f1@j=#0{6joRpq z;%JNlKr^1EN1SB9MG6VB!#l9UjxJ-4B59H;>5?*OlRD{>-e?y8jwp$;g9&y}w&bH5 zQ5CW{lzQz+QNq{>oz2(*jwE5lgdS#MLSa+*-~AZ_WJ)H7_JiwD>4~<3h(c+e>gk^H zX`lM(jhf**80kp93aXjqsl-D&6k>=D=^Os(qe5z=O6sJ}D3P`UmC}QizKZzK*G=sj z1A)yPeOWZk&{Zvw5dN1zDy51vB}2LhH?--8EaWRx<%S~OtR(8C>gulYYOnh0uL5hZ z3hS^EYq1*Zu_9}-D(kW`YqL75uNEnhZlRPc+E4^(ucpJZYU{RgYqxsqw}NZ9Ix7HV zYYFNqtyl(@-X*}CnDKl~rL|wqNYZCLk}DFAnc5;$V8fgLGGs$Ci8MeYF)ZOzZYQpE zsJV)3!Yb^-GHk;-thYvMHx_DHGU9mT>aJ$%!)olta%{(XY_gIo0Q71-3Mf7QBzRv98%67gnb#4!Rj>l!b0|9&N3t|7y~w7i=3+E#|rJx5^d3PY{X9M#FC@G znaIWJYQ`FE)JpBtQmwCME7YE=J*2Cy0^^#->8-{CJXG!8@@?NrZM0$`7E-IdSSyt{t=}SU;wo;qrh~}xD!P`e zU0R){X;=@IO~I%b#w{0uoRKSKm~ADc=q+acfrwQ9^52vEAKoJD;<9e*y6&^-Pxe*I&WU`v4v3Ehel&uk)s^!6rn| z?(X$sFYCtcX{M&{F5Q&eZuW}r_*O0CdavY)7y%6#1WC}@ni!p&4RfLou|!q$)CZF} zMN|STz)r)9oE~AwX$F$-02A=gZm%JBFYUso?G|tYJ8;KpZOL$IcLmQ=p;H+tR$Sp6 z=0OrWv0}S!P1`;N=_(`=-t0qyh~3&M_4b1RKky5~u(uvCAc|~e{=MnMLKlay=t!;yW?dQJCssc%?`r;D*4(yQJEel((4qNdR|0;;iFe(PcwPNuX zgYmES?gSTC-x$$%kxqH7Py2!tLGI<)ZrRq*UsNbfQ}!Za{^G1MWY11t~T^TYjpW)?JZY`DlQbJvCp3jX5g$_Y&{j&E)iKh5Sl{f zg*HWoHs%!CghBJ7CiJ30FZ7(Q?ne7G)kd@=+Oh(lWG?S&M*nnD3vD~coYgJodM%Ut z#n$p35c5D2w5YAQwO>C!b46C?|5o!WL?$+qgEWgnS$A^_EA?6%?JSowMdNZpq%&L7 zb<~)mBHT7r}_B1zQ&9ed#3?&m2ERH;i&ax(NQ6@`@Nkt4c8|?}SdL^<3BW zWk0MI2d*TVGoeihJm@lJi*~~Q_VnW-@<$Ws4l-w8)!CfQQeW9eExL}MILxZJl2E7Y#;b5BSO_T9v& zSp2p2ZdINT;sr>_5xdTeV(p0tI|V8$q;As!G4Sk*P-iQncYR~HvbHy8!}W3N!*6GJ zh!5+1`>K9R2uPRe!h}U&k}c{uTwwQy*9a%9$yuP(pZ$GEM3%1q{cj&P9*B#0kOS+6 zV_|1A?Rd<$kc;?zH}|Fgns|ilqyokE3ds+TIm~cU9=L= zpDFV=nInps!}*!3xsmUiiF|lyKYEClAbwwJrarkCovd2imXA^S26rw{x@+P1*f6V- zT@bnv?r+UXBx3q6ql+4lU%H4#dWSEtqu)A)Gr631`h%c&iE*C%lI_(vPkQRFRn68vv87=yK?8caqoJi4}5)Rx~~>DUQ^cTOdOwM z9hE20*qpSvt%;1S5RFYk+&=M5i#5P5WIzMFAKQAut9QY}_i@WL%B%OU^J>HY^5g|o zNv%a&1@V-_tDQj)k<~na87425a(EL%|M9DaO7^V^yvt*@%CosJjXTq;x4G*oy4N|B z6XrB7sa(00Xd5-YVs~cMRaOHG@!jN2BSZVwcG!=rQf}1&wZVv^W}>+ zi32;`+c|LmqOpS>2ns#>faKSA1)2PvI<2LNC=0zQAEsDWWJ1E}|5`ZQbN)|fK2fxJ z)bBoKQ~jpXxx?=ji!l|Tj2FHdDC)E<*xOc+osHSIs&4G^LxtH9Mn*6xyVh*lvTTjWjmy?;*|%ot+TD9sFW$dx_m;IQ0tHxX(r6Jph_KhI zP6Lf`6-zUA9ve4l#0tKu z+^ylm;PW+ezI`8me*Lvg>*PsQwX9mxr=$H0JP^SIU4kl|+(H7dANnM`%D4(G9P6#T ztm8|rv%FgiF2V@QP%pHe1JSML0Lu=$?6ynJI}Z^P3!54(9fS6g(2iBoFKlwVncGt+jq)Q+g;!8OW>Dqw_6iF=c zOcJ$Iv8@(Sgln%5Q_K)VvqWG)tcJP~hb#CT0y0Q14UNdYD-~UoQJI+huQdT%du_@_ zExi=es6N`Qo!)*sbVxBptx!6=k_!yRzpzU#ExfQRY_GInr1Lwz+LV>dyHJo}RIfli zG|^0j9oEW6Q+x8N0ShFS*=7%9P)pvp{8h+atrg2mRMSLm+vVy~E5>i}{4m@QOYMs; zak*Wq!||>yl-eOTTGrWm?X}HVCx?=>wMy^(7vQC`oNC&5>3bJpu2B7U);rJtWcazf zOayP?b7?KBMGq(5P(=^d+B0E;<=x2NfK5J`rhFm%iQl0pMH%LpW6F(FPa_oh;Di%C zGrU~uG^^WnfzGqkzf@&7FI>0t80ipY;1yw3Fobh@G zF1ujBvq~G`T2sZ@kNKN+jiHGdC#o%+pW(ucCM5ERqgBRy~mVn zk<6YRE8nk`F1qaCe%LP31!GhA6i0Mb^gEZ+*a(nSCm%|BzyE(x*<)Gahyp+ZR_Sr# ziyZ$hVm@o-3RliS*SH4rKEce7T^+lh(i#@4Gl>9de`DbGq;xz3mBdJwIuUxYibcxe z9`O}LNXd>!{o>;wMUy}-(h!ed0;8COSV1*SkcSHk%&X?OrZ~ou$c&WCPT!=L$cj{t zkfAJ%AGbC@61uE~qEuy5V%Vt}dh&~l4AYv@MJsTjX;m>wW6(C_rsaJ|en~sgw%&J` zBw7oWpKRhPnVFOnb}=JXZ00m+vPIod5s$JAllr)0A~^yNT%lW^iHyg&`K2peuZp9) z_LodV>5-c8jL9<*8A!#+6Q3(FbMb}*SJaRfyp0<{e51VBZ| zmnJJpq&V<~L=+oyCR9 zB*=;Y*!W5+)oVx<13{kjI+25nt8fWc@kQ%nQBHD^iK~7{UkSSmQIOATW zns=@*hA_j@@>K;b0Iww}LTvfcEMdhtQFhMi%VSw1D*1lZ%vq$wh%^bKy$L$wMJ6#V zI%Z>1EM=}~SH~oX68Fm#GTzos_*q~`&MCsY@~EYBWt1gH8WHW;_-c?MSS=*8(~E^sc7<6U`FQ3QHNOThlCxVnmsyk~4Vc@POF4&`j~-T4 zAbn3B_TF<`v1ZU{^qDl9hu*amW{*Q*Nnn^F1t{l9&2dN{nd5nNSZ4FxITKjheTF57 zLW$XuUxQ(}+zuRm1rbdO6}DMS+pSjQWo;J7sD6;50AySahRNS$CpQ23WTl=7`5J3b zZhDb>CjlVBc>Q&#>2QF;s^dg?zFL@~*)3a;a-cOUVp^4kgj=i;bp3B?4bz-=f?s(Ra zI{F1Dc79@qR#Y#c<<_O7nwJ(;$8o3MbL9!fSwX7+Q$Vc0wFX~pgyD9ZfrPC{)P~m% z)FDk$;e}#$CaGH6OP<<@uXiEQ8<>mO?wi}K1Pe4@MAtHSD_BFWbb$$i?x){_A!@DM_-tO3{h*(ZVuSj=)tbz>UStZd^t%CcWU-9lbpSHvj z_uX1z1Aw4a>Bi|U#a-=K?%;Iux2Uy2sr55n(Y`Anr<{IPvYUd5EHk6TYgaN;I)?_e zb49vqu+JQ`&ETt+`WtkAZI-;l?4dom^k=QM99d@N!|ve8glh_G`+nQzZny#RX>He@ z`p$?pXOqqhDqQ->UqjZCI@f6iL(G~}yl~f}C`s*4X>-o160)Osu`MdjVPLER*ueQz zX;(wK-~P~|z=H_sTO$$}yV!L-ipc~-_zK#+L{l#LbtXKa$yVY2kfkC%S%hzc>y__- zry>)EN@PmhNcs9_khFbjO@KmASJYJ?BPGl|O?x6@G_tsr!K-RP;Zur;^qM4kO?w1zFEpUW8I#`ePR+JQ-2{??xl$fMe7CudE ziREh{iyldns>w`QbX!=Lf}$M@#%F@x)6hw(=R&B2FLjcunNyBLNW+ZeXe61_=FkYZ z5onTAR1DL%KK3#w$!99A0oPi#_ae;T?PGORi1P>sGI}+UM0l}VC+`=TZN@ zT4+O_SrJ1d(%LYI#TGM#>O2ZTl6I)1D*zM_h%Pisk>H5`uEO=oif??NG*P6rT+&l* z0wG;SIQFti;q7#cNm+~xD4bFPjz6S>QFBK3O9+9AbM#c28@bt(n%Sv>o4OG)&Bq`R zvGRFXQf3al#-L*1(10hZQpRNY9V5+gR=~Mfipu$=`h;vn7I~NJoTDrv*{DdXDNi;> z;Ddue=t&f#(7#C4Ag9<5D)IRihD->w>uqd_Lfx2UX86Jm&XI{TnkD8qIivVN>Zn=7 z*JbjT!){#-Tf(W--Mm>N7lO)WAA5}xUn;8yC30|r>E41yl%%6M%(9!)BRYpuEnlT* zSx>u@oHkZdfO?RKNNe707Iao(q9lJ-W7~+nx1cQlwsbQy39C~q_t)ovrZoxwHj?~IVkS7FhnbIXB-?I}r2LAyWb4Xo zz7mEmBv6Vf2U1*1scUa+yWj1gfa&Qo8!F|SzLbb*oJ5>v%0(@D!LW%~gWuJnS`|r> z<}nkg&Tj-Qq~j`)UraePb_B*iHW_fBYh$YJ7>oOTkW6@4#Ls!$n(xv55Vy#cL?G%gThN^x+0+t^ksUBfuJVkT;)u-8o-x2(m} zB#Dy79Gt9;A~=~YDNDBinkC5*FIGSQD*12C!qdr7&c3)Bba#kXoEh13Q4qNreQ>fc z1j>d@2HH~0oWfKi53)^8o>hmwRlm*HmLka^h~{r;Glfjp(d(0i*{_*gG0wHhTn_qoPu>(nzj zu`5jPB6}0o!>yVrm$rIktzO15*hP(#!xZ!7_2X=y;aIP$e7L#_XD;7OZ&tkSCXGn+ zTm;_tL`kh_7Y&)HJQ0=XT=H4}Qis!Q<_k1~ZC5ik|0g@~W5|j{TQ?f{$C&cJ?>Q2@ z%dBs6RVT}OMVygCxe*wwVOMttLT}Ygl;?C71Q;C>EbaFwjpS$wgL4lDJIi-dL^W%p zhJo1SO@x60X3=UEbP{>wM9;@wj|6kH_i%qlMBKw(;c*sD)kZjFTieqmg?1(T^gv36 zeVAh-f2Lir<{}lPG+{zn-EmnQNLYj9Pmr{9425-2vnYNOKeb{I*TN)e5;xj5PYZ)Q z4kAJF6D(>2Z+TXQThwYia!z~JACZ%A8^Uf67FEQtb5ch<-_c#eVO*zyOK!y_Poq0# zH$mgn@R3Cf5akLL*s4 zHefGfNWc?WYQuCUCQ4#*A!b+)HeS1eY<%4z2Mty2QDOMFXW;Zkurg9K-5nPgB zk)v~ZwgWX*i(O(?6k|S?Ath_`Dx%^;nG!U2m@o$e9zZB{ptT~$Wh_0SD^o;x*mX8p zcULFJCK84iB3NXUV;O68OlcD*1z1)Pw}_u%T#%$uyY)z9Qhxy$MtgUU?qXnz^fQs- zQQHz<(>P&VWgIB~@D`@_I@a_p=+Q@*BX3oaV|?RL`xAi7V|iCcJm$hAcIJIVF+hHF zaNhz&`Qns6)+gG9Pm>i&>t-IUwumBEQcL%f7NjkurbJ+rP`~&bGVm~Dby>KjBBO?9 ze-vY*2OpRgmiyH&0irWzaf-pEM;m!t?g3~12vcBUi*kr<*7AAuV=xh!Mq0Ke)a7cp z^fmjTa`W|DyOu*}F=wMU5mNI!f%uZf(N>sIKW^el0+c1+vosL_E$gUY1C)KOX+U~d zQ8;&)B2*=Zr7QGd8R3zac=3mu@k|?OR&N3lDX>2g)m|&)F+!A?+a_VT=XlT6D8{&H z{}f%l_eNa*)ruivPML>3qEsg_(l3!xMOxP#m1KxSCymb&F&Y<`Ebu#HW=lNb<526J8Hl%p4Y&Ec0{Gnm@tD(2xt68UF1r4UAWPUj($^+hGLQeQpimj_84DT6`b zSB}BUHEx0^*e$Z5ok8DMxd|3&=+wju_!bfpVO5nG%H9+TL!~iMm1%1K@eD` z6uAO7;l?PlaS`Z~NK-dkVlpSqSFwV~O^yK>d!ZEb7pEm>pHT-hi^wp=lBV0$R9#i1 zr^W`VrnL~%MT(Lv$`p&iBdGh+G-SCeGSZf)GZ53J8aYUm{$eUP*>DvoFyR`OK8Toc zCSAsXZdJftM_8FekytYGb*Wjb_lip#xr%~%68wf1gtuEm2tVT0DmbySS-5v?*Q%w7 zxHLC9y4hqJ;qR0kSh-V2x9gX zs2p0TeMB#%gpPeeO}%Q1IoYaks(waNsKi!DFmf_1m0rA=y%>jdep+I-v{WlND5(k- z5IT}hvpt&HJ?_PT@TQX~NzsR$8=Q;XWv9bLIu8o1B`NYdpgubf)ghix|ZB^b6dtwG<81D$QC?$!^>kc{c$0= zsGA|z_s4NLtMbX<_@l402qV0@DP2n8TJYH3h35WvZ+Lr+*bDb4F|k zBukUjUxL|4f%kOH_Aj^?9E9Ps#Tkkb**V2JbWp^u|FoG%R5if&P6cBrGogxGn#Y-v zT-!2Rpz>C=*^&g|#bviIR<+hf62aRwfF`}sDokr9N5u30mo)@z5T3TJ#gTQz3p1}> zu|yQwdMSqES05DF8JDwMz=V{Yt;i<_d%Q*=bRAnNOH8n-ql5XLA4!LFy?By2i&$fN zfm#m~>%ORLVeaHx;M`Ru?M|_87v2W$5%jj?mvYr!V#qdNUl7y-7nvjG& zL76dy>XC@mHCxuaWCl0OIW_*}pR@ukwu4Sfh=h{Te}dMRE&-J8p(AAce5Y)F9PzxtT!OaR_QAY zey2BUJ4@pY?IwA#E~zc`q+_Cd=F^B4p|dL^SyUPKfXfYF z`(aA$4)6?hp_eY}kcwyZ(swM!vBg--Ud6Y>jsOx;v1NJVJ_~|Hf3} zA>7rTbWT!Dt0&dk*_L-_fgocr=2|Mj!QnXjsYKh&j&AXTB!~>vs&X}=cIc*2K1oq2 z-{1aKtNAu}QK!a4$Y^H@ge zw0e)5xAS!CM-4Jenk*J&GklZbnU&lf6Qa`EA+l87pht_ddJ-b8&ytnrC-oMmW5mBgmW7iGuY z-!^lw&IUFF%7N|0r=)4C`VtiUB*_2)V22SSI|hzm0sz1WBLWW=RH1OkLWKZ~Fr;`< z<3%P6FIpU-kRU@96AfxS2_WIZh7(0pRB2IVNP!|Ts%Tg-B*KXjS!xv6v0%%FID1Ak z$uT5EokVHEtQoSWM2|cNRvbDN08W+wQlQj`Q|dw{Jvn0a2(s*sh&+v;fY}h@P^&&k zY9y(U$=8Yl{TeYk6zdL*eVMY&x}&4To+D(yd|GiW$FC3jQj|GV>|%usJ&$A@vGZQR zcu7x0SXdy^vK*%-JlNXv;;Hc0K7;7HZN&xog6_DrYWga*g4D$Ey1KYhC?Xba6RV-RFk(-y8o|@B zCbCWnv8Dy}6OAtD>I828BDjnsY)bJEq>iwJc56!@o{*Y~x1AUpG&?#IbIY;$ToW>+ z{+5a=uB)I!Ni-(~%L}!d>|6{$o-%?P*<2p1N&30$(FCRpxkIbFZ$p6AUL5a!oPETj8V9%d>zjvRqRQtqM{=ill;+O%0!%Pp9+7f*8ar zr_#v2w=SmS{;A85tbx3kIbBBeu6cCPrA zRnfmB+H)xbEsiTsQ(2O(&uz6P%{Y{@mObS0cB1Vo@d_tu#MMl`udvPd8cn|rRi{#5 zy*?nWrQ#$`9Qw&<8oRZ2(Q?Y-igKUZ%tluLu-%v9S183424xdj$$ijND%lN&W|oRi zTUO#6a(g(I<%MN%G!zE3~lADnf)!=s5KeW?e}kVls)J zG*`WkM2%F2K~ARr#J3@iLWrZ>Y zxgvs&XBzUTMQ#BbNpHSmHXY3>PKNmoLUc$<7goxa_KO{4_E)Q~6^3=66kbIp#Gfg} z1(L1*F&*hPM7-WL$>9}vlhKcsibU%+~*W4S1r>thEA%A-dj*$ne)L& zHBZr_ei{iIJT5Un(c)rGT$L(*rNwq;OQ=@RHaxPFtu_x+=P$t$r~^(ilP!V^|MnTx zfsl%iyy?-!iu$KlMrm~{e4n@$6})cJlyZNC85?6X!)f`5sKP`Yr#5O3ktM8_3gcV< zp`wGE^t8`RGUDUqHbc&qS;c6tiX=`T3O#_~X(abil12Dp)MRliDbV_f@0_?SJZ43T z7sVOj^0iTX^{1&!x!rZR*%$^j@U#!fB5>ixsu1mIKOw~0<(N~a9S{d;iEEUI9F{`M z2+n*4nUvKEXjn?=cCevao%n`=_4FJ^H@q+@k*@&5uL*7WFm#G%`6)G z9E3|57&4MElJpwUjC^#>u@Gs#V**SSx0zV%BFj5Tgi?nh1(iOTCW{P0WmQ%GhTQ35 zMx+&*6ohmt!dnJWOBq2~l-0?|6b{&AV5G&8$Wb$(2dQ1|&n81;dH64PsR~ zLJ@^ag5YAj;?>ZxWBnDc_G8HZ;88eVnHdpw z0t!v7AgMPTY>;UmrqgOENzFBs61$U~6E_O^U%x|~y`ZX8XqA*Qqf}S~UCgY1X6}$s zkx|jOxFJUiiKqY`oS!H+9_n_dbXr+;`g{~f8IAXa2M*S3!aOm%ybZ{9;@IVu+*6N5 z4Vngu87cQNnUYj=ke1!bB`@h|)HWAAjf2^5pA77tFNn#pc0W8KM>sV0!)&{UWh zylVo7d3S1Q&0|_~$B--99>QORfIhgH>Cj50L>@{^@8wbAtxJLZF~=(G=_pSaaS z$+S(|UFBt^9hIZ5*VtYibsLLhrSxhl68S9xHy?Yg;wq9c8j>J!9zpRHXUaJ_`oCyl z2+T7&zC)AAgDo8CF%D4^LUNuQqpr+ayOxlXArd|>kq)FXq_f(oUbzaR0h5f!?P(d6F9>%BSDW?n;t8{ z6rtb%y4y4;8W|!JlN>=jDjS^yDHnW7y2H?@^kSMHk{Li`3dBhdaWW`pss;Ts>n&F>LR|cNwt#%5)jHCZK)}ui;wKGLH2kX zC_E$?c#J|xi(HGpK7zAHOB9={A{Lyb{6j*ENVADkt^<-bmqa{*^CkxqiUQ&pfT2f5 zc{L&&s+KUW*btM=dLp-gD1+KI@-Px(SsP}nOPErKwAzZ4I1}(fDlXBtoRK}jQkLm? zu~$hCVgW!w5i+?f$c@NiDzh0GF9bRsVLJ+St8D5dnUJ6Vp`f&l84&tFQT5T0wEI59)1A3slM*V*;Xy6d zGf!_D5eJes$q=8uI2QzYxF|K5K-n*yyDh*1q8EM3?%U6*;1uD}BfyG`e|){Xo5%`c z&Z?=j>Jdi~c@YadLdN)vHI%(aJwWogH@i@XurUnk5Qr-R9{bu2VPcMm8Y~4InmEHI z;h_%~VW%;K3B!uK-ub>@VHq`SrPr$?r1>%y`7|C?5}+`ukEE;fva6ojCs|5T@Yy*& z1;JmUMR6LObbFXu)Yeh@Ls#3Eoh;BloVGkBRvyHk5iOnGYP{m2)bWrdZF+wW4yqPaY@*!Pu$sh?7b@B@la2)Nh zQ7m&M^6@cETEoZ85Mc$q$Y?g;&?{3tBQeU3rUaklvnfxqo2I;@5CKJsR4lwXxSt7_ z6zUchjFNg1F=-JG!^EQg{Jf4(N?hBQ9Vn<%ITpgqrS+_|8yH!-sxlx-9*#YU{z6s1 z2$k2wDdlXSFg(`vD#+k$2)+=ci)%$F5h88fpJcID8iK21;ug{1!<6_J8OkJV;x5%u zLzgO_FaoOt!W$}oUBshYPq3>Tr9!P z@v*RpqCed0wNJ672xJ%k+EW^D`KkX(8?o&eLYh?fNstq4Hc?4d#m>dexX{0Nurs}}AA-*$3 z4K}B!HogMFiQ3vQGd?fPsAZa2N<q1qR=v>I%5m14g(Oyl@E_n z4@K<@kg`vwq(J~O+A-wO)^o^bjIZBVSyqw_rROEyLpqDJr`^jLi%Z!04QFIAJ za;dmJeKvUk3p<3D1Z!o0D!UEASjYl^n=w^xJTw;rQ^d1FA1Go4n#o*bVAdI!qZlh>xz1|2tM`!!!>T`g zE5AL;W`SPK3uUNNdz46e$0Z{Ty8KhCOX%>l$vubcP!r)Eog` zNGzQ_w+xPU1G7KYo0~J%;>P9wm>gspNj$}EM`Z3ly|eaG4~8O95&u3Do+PhD7lR^L zFnuvDvLok!pG9%2+DnlcBPC-~TjrT|?pA8!7}85=!3I^W;vm#$3RDe*@LB>_=<~g2 ztG!;Lh=Y8r9E%d*8J*ye%ev4n_6Ur^@^YFPp-fS3c8VC)*x;YNuA+6*s!4PIplq#ov#a-aYECC}#LEICjR6mw0sn#f)fbp&0v7@zuAh`4>&WK`X!3x;aK($^R z0BRpzGbCfVlMR|>`BNHG%5oxmrS;tM4@x0>+VAELRR3B?NL3aD0x1cb~BW(;Nu*Tj9Yyy>nNX-Hm+3nmf3^6nhQ7ex!5t&R#vo%AFV(1;QLAc zKAs6kxMp{08wd#@APPkYape)FJYx5eR!5{*+-%wS>01d(E#Ril@q4%I0th2J1QHxUa7PLz z08|(m!DJu+06TU7KmovE#1RVx?qHI_NJIb)jWDEm@gYcu6EA{1X^^9ehyy7$Joypg zNrVz*j-)t322YU#HL~nzP^C$b3WsuR_;3e9i9KsVbvje3!xTF;)^zyNph%!08LAYS zmEcyP0xzn?$P|D=BO_aao#@pm*0gKQrrbMJXhxn#nSd2aR^Z|Pp(qVb?5oo1&Ve6e z`g|CYC4i3`Ifx}JvE=2QfvuvQNtLCMgf~eFL^_gjL6D6fV`dzBYios{YjTu0F=k-k zY-<{3E7PQ9r?3r{d@Xl1(aVpUV%+VOZ%@I=14n%AvAaf--48w<*!;1Gh&P#%T?$t% zRK85BN^L%0WKg~;XljgFlk#sZ2{+bBQc={=L`+e|n_@@F<{(Q))h5zSlzA7}W95kz zo^}Z_=GjOgfz+O9cnL(9TtY1-Ur*JEcwlxTSp*(py=9adTF2RkRcy8~N8ED+F+>_{ z4W{IgTtC4Vl2O@hbk~3$p-38BMH)CZ^Rh6||YzRsu0#E@O#a2{zMW@(U47QXXO^s!VV^Nn?X1>^;db8s?}3WDwQ?U4J*-^nRhAVNu*^t<SU1piE8)-JtQ^vLDV?|a zq5zP}tbjsV1!HP_TBXrhBlZ?9ap1B=FP7iIn3Y)n-R-&3$xQu-6Ql4^77|kU-Uy#} zsM57@v=+q|U3Ftdx*Uo-B_^nXzwroiuUI`bB!z3?$y1!W{ibI`+Rkh$%r{X?u~Jtd z-R*JBgYx#iQIm zVx4PWRVr#?hEXF49*8%&C3{hyet9sCexej8nW1$B)6Xu;4YOIB9~?V<<5_zU_y*4{ zqCtUkOA?KAq1dp$gAQotU(Ol#kefi7x9!dUBCrrq{YgEJ``zjSsk3;cTr-&!s0dP{ zv$TmvLIaQAo>Vcds2%P-k#S3e9vwH+KzykqztgOVi{Jvt=;<5++V4Wr3A|SZ6eoC`K!R+Z1$?^gJm>CO;|? z56q?roINs9h))UQ#+KNY^V6U>bR#3Z#h>!wAHf_{BTu%jlyVxB*L1V8 zVzTm^_u8GUbYsKnI7uNE!O?lh7EQeT#dK^UUg}%}rPt9DDqb>G;6V7f#*k5yjCx6@ zz?aDkUP&)9GgWRR6DS@%$vVm^hz=vh2^6{i3FC9p1B8ZgoOb#-xv{5^apuc7s#z{@O zU&SOjxnAwDF|cyfiJX>Gu=FQ1{z*+=N3u*v(Xv3M(TYi-nl-}BuT%U1YPVJrSiXh0 zUkA9y^FQn@x&r4kK1 zRg@joy!E5G^je7t^{9b@cTg6wSD38yT30DYp3d^nG3ve3S;IIXzMd^&ZjFT1_B|;D7briSDb3Va1u|ek8v`ce+Wh`x15c+!#S7mjv8IIX zd#`N@oFXN=cY$}+QuW}1-vHJ~ux_QH-8SOk9V7IUSgVYI0AzXhYHGX4Ud+gtN~Mie zez+O%OpUK#Q#2W!6{T8I5LF4ykEk5hMDZTewBX6$ zj108@%rHG*z${HKy^DgS9lj|eNZ^bPFhh#hJ4GIt&PUb z4XwqNScw(E9bs~9kv}yFs&QRvF%RmbjmQ-e9Ay@8jg|);mp~*J_N85gJH< z?P5MyBBR)C{Cg2q$~4gjhRKnYc&L0TR8k56`t1U1D?_+D8o(?cFs zQb6JOcoR`F;Lo{Ohu~mUd8Nx_QsRJNet~4gK?rY&QWl=chaJaqK}|P_#)I|$&c{4N zvs@H7aT4KB$5;BwLiNOL6%$-yNoYM{o1u!E;hXN{*kyc4jsT`M=B6Ju3eFu!p#jt_ z5fHf4h+rtox_Mgk5g;BGPImd5ECL_c+zktcPNES$l@E$l-g=F0kcHB&Yj1}m3l1lXo-Q*_1(MJ7cRd_kbN39@fNs?(MO&y*i z_mq$**+^j_h(PF1mdKnK{S29qgbINod*DTD@(%^I4)EdsVhA=`{QL;E z0AQRv7iTIC-^3>bKFcg!RTk}29Btj17#ItUSQ$Z1Lvn-&1Wru);{U*n3_Z@5Fj9l) zBc)J_$G~DZ_FhOVob^OdaoJyX!PuN_69hJoPwA9rkdf1+ju4&F^OP2VEX~oa7+KZ@ z`W#_XMh(K)UHyrT_%X-I#Kyur6WHxesVU`vNe`kD#Bu=;(opKxsAH#67m=9OV^oOz zG#Nh;RW@B%o%N@C;9zJZM}j$$+-x0{go;2B#4kaZVuD2{K`QW_rQm2NS5b=k*%UGg zp`QKKWOdGDY1Cb5AO1y?dbk>+noU~ns8an(ALiKUv>L?75+B9?Cc0r&yaFBiIxP0FlDM4+B3dJ^HRf~)B2KiU$XVF8Op99?m!bXUChE~GmWpnfO^k5`LvV%; zh2NW|)+gBti56eBmlwo>H1DBMk^i)u}+VCXDeN z3BnsE1(KTC+psdMiws;%1{AllYHak$r(BwTtXAm}85ZIHs+tYjSIWkjw$o;9<&k+% zoun=Zu9Ki*PtpLK3xOJIiUx;#N9a^8fP!2WMvU$HqYC1iZ)H}RxnfiR%NbR7`j zxuVfYmm={5=RhfoLf~>Dn&WNB{{V}e5d?Gq;GDGFNme7A6x%dS2B5)i=Fr!dL{ynf z4Tw^Vd9@qC#K+~JAFPhYHEK@UP;EvXNUdD&!%)d{RnAlFO0@D`SaBpN&SPMd)6Mi4 zRV;2eMp|?Lh2EfxtKI1MFkpGs$piQ8)c)HQy^b*25$K+r!1ee7H#E7Sm_GDFj@F?A4)xr#d2A4>R?(xjdZM2fl<-wq^KCh&r+gITIQ?o{A=ho zmJkD(Sb>g^^&?zPNiU|HQ%2Z_?H0a)O6OevhbEq1NSt6Nf>w;En1ZmEa0V`db(^lm zsKy~v!4>0FBwDa~m3fJC4P$X2f${={#MP{Z`Q8zv7;CcB%QqTxCOHz*l~Pa5oI?y~ z;!P{6_@U;|Oor{#Fpe#cPESlM&&Ft8LUo^J?QzcXVdy$(b>6dHrS6yw1x=6U&7R_H zG2TKUlZY(^tS-tfeXqZu9Qt)wU9_rVatp_tix!OYT9t>j{tE@P_yOojn2QuNg(aRx!n;wP=fC!*kc{Z4<7R^>#` z2W8nsEaC1vSYbdUj#d|b5);Ylh8n#tZ7nTfrJNcSt;Eon+s0dI!E@Pig^0MFaAXsD z^@Tnqw9lbLbF>Xx${4R5n=k*=8OtPUti*FfEy1nvjnF9Yu~U>#mcDLL9Y3oSX6|rY z&S`pLu$WBt>|P<73rKSZ^_Ys%mpb#zJc=Vj zUhIg}bPv}YYxVR*p5(t$MF*SzoGMp%JF=nMD&$p{*Qh|B(b~oFz4rLw6V(C-r9Kq& z?53kAQi5Pkn0#K;{1F35TBXWlBJK>59u^I5QfU=UY@-Pec_@qw&LE-$h}sX;UdOw% zV_up@b6gUV46Q%Dp$t9Kwq2w2-O)F+q(Eg@sY z6dJnTOwAtKdEpPFOURqbh54kXOOhAV6FDK--Os2aFNZ7vEMoXq+^^{E~WJsyLxj?MdH1+lZ3+ z&H;^MZmfDwNTYqRD_p@Z(j|y!wUv{axHErmP!5xSZc<6i%6Oh@r(78yxw%!+=aGL1 z2ErND2Keb_TB2wFkpS{q8G+%zqC4K06APgDj+)!>7)tcXjAE^Y>y2~88H(J~#S*3* zrRk?yWNDXJkab+@eNdO&c-k@wt4NIKlhOpYf9Bby7oM$|^{Fcu%6(ey1eoI>C8Y@eyJ83$5NU`J8 zlM+#A>{t{3p-+|vJ0=9sG%Co68YLP9DYh$3jxC!e75LNS$ciG4{!AzoQ%d%zwzpE2K1DdB{m}Evph7uW*u`228Wem3W5uZ# z8CIXW5&(*ekC$YRd0{b-^oE7w9&a5mPn~X&VSuAWe`Y=jwAe2C2=_b1>s)?ln<@3wO z?xfObF)M9K>M;k^Y7QvY76Zye{_0DLs3}!cYr>fTNRGe{?;}vWrNpc9KQ~L;sx3_MM-(+C1< z#X&peuPQCUn(If_1Ts%4&yu?IzP*a1Ehe1FRFuj@ znRN}-B_CC?!NAzW4BHxIkkKk$H{8}b_yW|lLcLUaPqUUF?9j7~B07&z=t5;|Gb73W zyzEA!wraD^f=Mc|rc)~y3Tr0Cp&DGK1a_v5USF7hUwIj z$j3=dRbZQ!M$$Ir9ln+HTFUm)&m8sSk-sOw9^yEXnJAnwXe5d2J>tuG5sxuxYSpOm zLK}OCn+3+B&>53t2`VMYY2Uw!^UFJVbC9e2Lv<6AuQwrY&g|{!NmA`%vnmBDK?w@% z?-0pkW0E(~2^d~VR-s!A{Q{5F;AMr1lN3naG?0nh53&@Vc68h2tDsB%l&5alzqat&Ov?PAZcR7ZIpi%KpjR z4hJVn^C;t+a!im4!ifP=e6*V?IzyCC@`2;hx?dGWo2#I1Mr9m#;C1r z=Zl>m=NVZpfCQYjTGFfD%&J9mL4GIL+d1}x%Pos|Fu@RCy!x`oOqJBu=9(Q}JpnNAN(;O-C340^S} ztw>^^M;pw72cDy3ixx12qHE(FN`=HawkB+Y^7QHBD#zdURa%Og+J&59+P4J(iNK+ z8eNw%oN3Nt;pBYU@baH%Kq+_Eh0gS6!q7wA5mR)&cOPtP|6vV`>?Hn@(QMF_&=hKW zoWmAnXh^O4LS2B)d14-HbR~-spJ^J3LvJ_9%@zqJTnr`O)<1T;MFPK?QL!%xT&?nsjJ!gl4S<%70a=WGug4PP3y~mx zs@Wsj7RvMDUrdc)S=Blvd;8oPYYNq|vB@bOyp&(IwZ%PT@S)aKaQ*Pch`7Vy*I*}T zOjXZUS*edT16|?R40?OZq+G;Eah1UNR*fFLGm<(s;JnunStFhMh>hwcy={33ye$7N z`eU{_C?4bzpQXwY+29A6Qr%GnS`O$9ooVh=!V2FQc{2>+%cZxOY^v&Q%MF%h`q(Zn zDy;_8Lwh%{j%%k>S-UKcB(m&Mbz1WhkBXE1UyI0%~~tS8VwGgWO}9o9RGxCkq=+P^Qp44pI-8G+Y5IChfB z`btb}3ATfh(ScsS_wTuI8L%;m!+A;4S33!m$Hg2~C%)XIAI0+H_9>zBGCtWM(4|xb zTHU`Tf2l`g&YrKsdWLVd(W!rC$vkh{f5bKwhtBFRIq`kT&+ARs{-#gmcxDA*c+EZM zU4fJ}v@#MF_|1Hb{(TYgr9UiGnJ;RY=&iQX%(rmkx*%PR6E3w%vN9P`U*o+|v=r#G zS3!O;?N%ui@n9v5IWx?``?Z|md6=Y5d!RbvQj<*xNVneNpFG66kabv4>KF~phBtcQ z$A{r({+T|bQx=?PS{m73f}9v5rGAf+%XNViHYqXDxT(M7TgMrWX6G}z0Zy#0n};4| zi>K!J63;~Fj^I`!&ka+uAp20Cnh?5#Z+PR4V-Zts7ejg;0}&ASsCv$wh|*9;90_Ib zR8C$6eC`GuXd6(%RGx>Iy~$>eqv^7vD?t^Ft+Z_lYm2MN$=wskj(ih|@j1o5V=R$? z{XOqexbOj^8}3ahtLKu#ZhUp<1gCjsj7Xs@s&C2y$zD=j{K^KW5mw4hL(_nsVkkUP z_WDG(37_pxG-5BlbggP?=(J+&6lyVsdNTuywUJ@2mhW3qKI8U_J#%B28$z+hPr+ef z0ID|F!yZ#y^D(XEVj>ayDxh*wdY0lo8#rPK^uj#3#nV7S*nk@|BieS{tw)$2dWjib zuEAU_;IiN9$CV3X3x+7z$ZY|GrmkakLT0P5N9Ca$F|+w^!T#|83UNTK#eojYr8d~bjcGZ+ zFD><2s0kfx1#Lmh$!|g;ghp6i98iK@Zh?Ym&>RS2NG?A8O9UrRx+l^23L~p`1b%cE zdbTN|Su~XelUHiy%HU5mcln%E2Mf{u6=1wpw6I=GitA~@!G2&AFJ+u993?b+$sbhT z0pw8PI{bb#$C@`k!_^eqbLyUtw&umg+0!J_w6{27&jRF}DpRQggjWl$ z%K?R*hIz5Y$0BeNxP7yaf`@E9AMF*LW*VG;9!>jdPR^W2`(a&~ zTqUfjMl33>8w2hB&ykX8G!^*3P>G0(bT8fJ(&%Aa)T3i97OUs+0$uhfTEQu!XWk`# zj()jGEZ74`F=cjL%M~@hP7r6tugNSgZ~0tf=wgeuap$5oDn6F}cMn@OfQuy{O1FtK zTFrrdmV4y^_rC}{1vQXxCf8fZmCPz131u9{Xpp9c!qx>ZAIGxlAA(`3n|_VG0f%IxB`zN#+Zl>xwX8ac)ed$r zA;a+@dwvADM9dGH&Wo2I{<9g?5Wh))$8p$Nf|!a<_ncDkdmLy#&ZL$*Z}dLXAM5{W zB2VTB{xq#f$7O6jCpU>-Jt@^3MKr^lmmieuboPF352e$yPPNcgREnN5&z$1EbMHbz z1mnpVmb=1G`K6*~iNAWwf+NK-;^o3>$)=sVWn{I=S@Op2paj2h18&@{<86rKq5gRt~^$fb)o=f-(k87A8A6t}^- zy%P#m9d|hzDCf(dm3hZ$d@58wE;W&7JgDX1zE3lLMa?Dz<{BiZ`bUG0;lhFf@CCG2 zyA}Nj9#=%8I(V;cYJ<2ybUZIycZk$0I}JnKS3=;v!T?`KU= z=(wiZ@oXX7t==gJ2Q0qi0=#MT?%wJzyL7)lGb;%L4y2I7--zc90 zw4^El>|PKo*~XqSths5$E~N_H%4@aE9{$v$XLhnwjfgrdzIrQU1-s_azs!+BYFx5X zQKsL3pYW0&hc=!yeTJPhg#c~Nc@~z0HcypgwJPwjXEuOP}GUg z$)0KxyBW`czd%4(vU76s>zRHxfG6RZ`&2OFWDLCi?}4h-!R&Ct=m>eX*!f=i!qy6!e1JdlENMf{b|P60?XbMu(h)~ z|03$ymfVqS0Bure{HDg|*Rk}iMai@w&VD8}0dC7T++fkW1uVn3CxEfKxhQQ4-pAV^ zR&G^0qf}cmKO4p#rsF$2DtWXZTzX;J?bjcRlez$70M;xw)5Xs?iq8BlJkiHnRh(mR z5N~mE^}$kkf39^luBd;Uves-s>LhvA!)f2@W9;Q}1cyW)9@}V)yuHXigfLPz*?qY} z^hb;bVN$m9g0rr_moxG1maApty$(Xgc_=wHg!6s_57BgZ9J}wHM3t(sJ_;nhd4+yP z^-~g@U<@Jnzz<>CYjc+x$&L8&lk|UXwb*y59wH8_b|P8?KR)}#sZ+!TRIru2U^(Yl z?Cmct^1^^HUTh8_7X|Jf;e6my0OVjHE=wmYry#k8_o&XaainQv@M=+LGX*JUIlL@! zX$Rt*!_BPg5WCfGn%V`l)6P#40&oTyaRlNJJ8;)LXw5}ssYi%T9VA^PyEZ8a-9^Z@ zc-Sp)!DjS}Q=v(>`QVr7-z$VPckIrn{rWNx_2eVPCxhjP5xuJgR@q7KRKI4tdL_g9 zO!4u$8MV{1%C~fNPuEAq*VLur3+p~uvDS&j$=H`RXK=2ugrJr%B{<1{`>MG4(%uIH zdC&f4a*O!~_V^Pz8b6JKdQ6ISC+*18J0Zy*z$MSC#U};xhVwlFI>|3}o4){Z$wsMN zA-x}LFTGSm^~S60t18l}h+;hSTsfZ1QEnzQ1>6nYhI%hsDY?%`Ue`RGQ|~XtzpXTA z7Gkh}5)5L=!;g(W>Z6!X2sc+hOjZxNu^A@To%&4L>f`3|h1DkDDpE4#^tmA@x&Z&K zt4R2y$x%^m{V@&+T^m#p^@RSm(p8m5uorl$q9v%>x*AYwowx#=*{rZlh)YSLL};#r zbw#r{{9%@p4SNn4Q3F`o5LWtu^bdq|L=P-549Cq>?UDSAcN-NHeI?$?@?zpsrfKsu zRt?L+1~H=;v)QkUbz;5h@oc;E1j#B5 zyV}c?hVJ>?qVBdrw?mADWM|e4P;s8r!&OE0T3_nJ6-?V|M@~w`!dq0kkpT`|; z9y^`}+Rli7jF$z+$knU>iD;dliJF^n7c(98LfyV zW6UAFk9l)4ec?#a&G-GU#Bb(NjbvSCaw^A$+^nd%pG7K^R&RDk%3X!Pgpz&k46fx7v`bVsKc*uyD{UY@¡?onm59Pd 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 z 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

{0Wk3 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

VGFJ$@yTejA(~F%_ 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 NEdbd67q3L*e*m#Y`z-(f literal 0 HcmV?d00001 diff --git a/frontend/resources/images/features/scale-text.gif b/frontend/resources/images/features/scale-text.gif new file mode 100644 index 0000000000000000000000000000000000000000..bc56494a6eb8eabf30552c76161dcaae710298c2 GIT binary patch literal 482923 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%0AE?K3lkQ0D`37?_6_ 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

G+CPw(-_nD#(nWDEUZU_8C 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℘%H0&21|w|+Wz2#NIoYDR5>Cr@&5 zB65bo8qqVU?s`0>91d8$qu4gp=A7^)Rm^w_Qs7p9I^nJhUu@!O8qI+kR;0+R{q6JwtHOpalEwmxl&V}Lw|3l5hYudB=gHXDu;LOH1EO6xv)prLxWso z2a_^6n}s9`q@3&3|C5a%0lTry8N%q9i|jP1gV{ziik>feL2c0^Crxz--iUr#QXwyw zODJwOtwxLdR5S7yQkTfHuI|%prykQcP|aZoFSJxu^}VnJ$*T-I8r?N&SMT{Pd^rzU zFOO(Amo7=qSA1D&GDA0Iv=#ykNkUa5%^U4`h!UE7NiSL?M@9;I9n{H?nUrrcAiW+n z3|vydahb$uQN7SaT~hUN?tUBcQg!55fiw28rAM;$LV*>iW;72ntR-d_pkdE^aDLIq z+d%WsC2^ToHPQ%i-@D+sJPjAg8tlm$36lq|+lA*X#og-_Y<5Jw;x)YhDa5MUh_fkP zqseNoG$Ut6Pmr{W=LFUkuEV1nRitk{rkJ#c=^zqRL@mmsMu8ZD^_`3f(HJ@^ zyHTV>=C%-1*#abk-)FXr%gFpu@rQ{nPPZ(&0p;$Ozc;>(+Q{N-ke%MhIQ?w$bmy(e zXIT^BgI_EJy`FXNGIWSWQfhOA%Ckp|+b2l(;mx5<+wS99P1=wKq(|7j52M79Y!ibr z6O=!8UK2~j4@n<@jexnwCwrxH*oMwILL1Gm9fhRMY%Qis#>4L^Ew;?C~W}e^T!{mNg3NS&xzO>zy#BOE}?a?SH7lPvyu5OOXN}C9zoo0GqOlB zrQuJ_kfPl8lLxiThi~I88}HlV+T)5JPoC2_UtHv}QYLTTi&Yjns# zRG?p~we=fZ(+|Cr20kvHY(jv!6qVeV<~a)0E-p%K?Smx_*iyBux+MlHZM5r<907XH zRE{;9i76>D?IxsqP!WUfoIBgj-L%FbW?B5D(gVH2l%7oVJ!HYzBm1jT+BVsD^_211 zl@rAr*9aW|k|9ONYkFxs{HM`-M#X=o|6OS2f_NTw3n^#B*x9>@M+$~l^?aCdovWV= z`@4U0yhvbV`}X`+xoSpNe@SUIAY->;g7URNFk=n~oV@LqwbllJ!}tf-ssv;?j9|AC z*=u~T@*Fc^dZW=;w;2z%iILm9(9jGV$V$#6szmnV~NEj-WR5r%Y+8 zC?+}4xT6j6iX`|9+_xrb%T7jDRlh2&77{LuPdaM-3$oxTHrZ+9SE6CBx$hVo<|q>} z>+PYSIAtVlt@${%hVwwoZ$r$JW)z^Qq5M19xjxBvRPzSfDRLks?Y?3v;f?FUXqeTT z<;3JwL#_O3mK$_z@#Ztb8m+>Zu`EByI*HWFl+;EEu*uQm(%i#=e=N)50nJ#eKbPiG z(_WmLI^HrZ^|Yew;aNc6A7yF|#!L<&h)wq};&fpVq890@v)A2!AY5$IV7>H-oOh@q z-+Q!1fwqaSKNlbEDK|wT+WsJoCjoUrrLPi*{A7kers42w`DQEKSJAo;FO39x>K?Mm zd*KF@8Fh`4;Xh#fy7#%BlF59s;3wB*v$C!FqkdpM^4;_5w=bx0t;qc@K!f(^(w)sy z+O2yHU#*r_qEX7us-JrW*7i=&A!=puZbFs|0v`s2joo;5a%Of+#Lz>>jXg>z41qKu zi4S=P))0B)q3pb&^>MX48KK2gIq8bbV#BBM1})2!%I?xk?TV)_`l}Wg6>`Ngn|CXO z<1?&;$?f_Wt5l5fmCCwjU2r<$aNA)!iK@1Hho!S&eKh$N2gYd=#?5Cf0y?B0P4~QK z_>KDH^(2`mEenG66OHr|H5W!6RkaB`BS~}@M5R^_Uotv}Z=cG19Gg=eJ2pGvDJCJM zFlXpxFQlOQMvUc9b5%nD7x6kN?5OjAh8K1;eR0+oCE;BJnQ7kda2?g0YqrQDrr7!& ziwsDzT}X2Gdzi{icEdhoyFX*MdppqIUt>Sa=smE)y)SI4voA_=V2#!HS>7P{G%b!% zrx=uzJ`$hd=9xZSIZ_SWv}?z#zM@-^8#<^qvW;h@?Qb7w8LoR9kSn^>k7UUc;&~*~%^1Hdj0V z?iIg?KPw@oq@d}#+&=cE#^bDGfKPCed!bW_#(qz=t%^o$#rny!ynbBKSHj2qiXcl9 zihk1;^U2As>}LjQyvaq+G9#T*QIc*b2zx0xfV&R~e+kW)erDt%`3{n5G2NNF4bI=L zD*zB$&MdJ(psvOl?-NxTlwPyI&a_Iy`lr%v&6FH>#+Z zrcc0|Y{%Sg8CTeTWddv#4SvH%epa@wWx=GQqe_Zk=xO?;<{mwuXUI_B))OY4a}Nz! z3m5|#!|}#KUwTd@YHb^apzl+$M&H#RTUg!Si!!=5{A!oC#x@rpH{%t*WHdQ=-^r>Y z>1Uy$t+*4V@MR|?yj?Vo+_?&)_%K5W&OV7Hvshp~V`eDemz}5og~U z+=OagN^)bf7Mr~*F0c$Pe?8F~a#{3J;SlS{^!uw>V_y)DO7V}DA%sd>V9}~3Z2rAfLukzhn~5&svmV!1m1{4bH(J%5_&7U%clWUO zqbo8K&7~5ZzLQy-AJnY(KA(ILyYCU(pr^h(#@HYDk-ppRTs| z3ji>N>*I4wB`@G}0eijj*N^f3lm{J!Bs<$5`&FIqAWWqL3$d*2wL$`mB#Mx211Q2} z>B^K$k8lpgf&6!F^*X|68VHS=Y8!wlpot=g$rm4k)>f6-Q_(G&Xz<;pWV8bA(<q zNrUd>c6Lkjl2thJR5O_gIVk@R!0_4Gj4pgawlS{=(q+T`oMxYVK23Ae2`rXiSyd@c zoZnZ@ib;93a{byv!`2%xFXcI~u-{8ykLcd*Qx5?rxUG+V@~-jd!&L8+2Kf#Dv<+PJ z;wbQX+D)z%s<7DYeGwz#RU?Pe0Xw5|x7$$0hpuK!KL+=Cq4>2|Q4Rw77T;-;>Vn^Q z#+2mqv!8$z{I&Q^@&dn6MHVxJ?M%}H!KU(-p9)bz{Fim+Bxjr*g$`W^H0gRZE`gy@ z)l4xj8D?w+DAB^@hKurevx{K#)#OBkPX2r)TrM;_+fxyLkAhU?1~z)fZ`O!4U0$St z#gh1gi~MQP{iYIWH)cjo(*MXw1Qmv9-c`IASZk?LK0M+cQd8409@^45;vI4Oe(=8a zsph3D!>D_UnljOoZjZ~Yj#9*5_9yCT zvn;5~2Y>rREH{7L(dv4*jUPzRLt9IDas!0UesQOST8GbROR`|jK49WnmDVh*C|}2N z$Jgo5$S`Y3LSdh1Y>VW<2Zc=2T*g9DewqvNRA8ciZ+SlbYz_dTU1SWK)dXgY)q_I6 zrB+&DnL=zjL7IbD@nF8_is*Yn=UfCI-7uyAd(EER%O_yDEQ)mvE=S2s-zjsXyBN=Xf zR?~_2lGu2(Y*Pp*rVY7FsGg()*YWOVG}_Xo{xo2~!kE#BKR@YXcX&#Qigy90%8o5={K z{@@yc&siN~rcoAQ6KKQ-rP|aA-5}glRQXmsH*6-{wLy)vFezCGyP?%(kr^IWm;S1G zUHhKD!09HQvXfvXgTBqFD4%PkOEr~3j|NRc40sINMD0ai@T6!t&cOY;DCpAorx)n$ zu$|Qa(a#K1RX>eGZX7=GKmOBN0sXglh6Aob#|8H#F=U`seOK*pk_dLF!V(#P!3sH~ z8ddONT>9a9elz^>WFCQw+aTR#2k06^L0ITcuXRVE8Nca-xM>kebC7zmrTNQzC{vo*4BmX~q7a|O`_KhxwuU~yG$=eC7^`QlS;$20fIskC@md|k z|Dzl^jm+my@j<2z1wvLR@qBxq*ZtJK4liGomD;ZFbp6-}V3$#@+Bu0{7_701)CXb|i71pSB@@-<EY-}Y#2jHAgq&+ zDkw#qK>~08O9u={ug`U{zGzkML6xF63S> z-}#25d`+_OCQ)}PE0w$dQ1ip*n$S@NqJq}k%5V@E%dH{UVR;Uk1&E<#=3#%olynNC z>i+0pi!VSq+R@4pUNdrA-s)~{lsvq0K~x5b$c>Q$J^Kf}Aca@utv#qO8)=F;`uD2o zx*5asW0}*Q)}DC3e)G4QiC#~;)bJMRJh}EI|4E&lTZi z&BBhDB}YX+%ScPBqP$;t4*S>#Rm=jV%tHlEa^CToE|{XKhR0`^4X+}QT&)18`0 z)!?L}BXV!?&|~Kd>@Gh!uB0{SZZHMA%2-XB#=9~Euv60;bnBU93k+~BDM>&YJCDK| zC*&N^MqiymBKD~>2Mtz}raUXIaNUKXYe9f*+jrlUO{;8@#pb3O8$2uyKvwi*w^di( zuXOZlx(Q0sYchXnA>UZzNh5&Qmjm~=0n%)N4l-r|fp(p8^M{N^4kcxE>ECct7*HTD zg*eNF>WTDT<_!&e+B@|ma{EaryVUI~Z)~;8sf`rRPa{#>8xP&hW6PGLetCY_U~)tT ziFk?<9(0NL`X~D-kuV_7zW!_an)D=-fZ_Sa0?Cs>L?mkj0%eL@gvddOHq5c%0aZO# zq77>tO-t^QmNgo^HtEHRA7HJ%PIX2Jzb@eIhh};KpfYb}-au!SZ>qt^GR5HzMmN8! zoj~l1B)`-HsDX-jddFTmPY$oX&7cF&{`7ZYFvn`N(;r!(0~g@s@mzN@Z&%^v)Zt=$ za%Hbr^I{>?#%ik%MT>^tA;HwvEAx#2gg$THHdD`Pze1T;9&77u7KwzTVYp3%|Uhi}fz=e!K}Ba4YW1K2)SI^xtLJSbX02pN#)9-RE6w zAmWf0ms4ZgZ(X=C`LBO+a>&VO>Yek$4D$S~LS^uuF?VB4Fm;vle3WX7IZ&t7!1v>G z1Z_DyLvO^20nk4-FXp-LUGkC6b034!w;;aJH8gMrOxU>}mWHv69X{YFA_hv_iXiEM z*|uEambI7ipRhgz0be99n)j8&chg1-0Wp-n6hX?-lvkQKABd&Ml3Z}u0VfwGj$F~5 zY8D&=QX?;6qU6Gg%nq)oo{^|0S&?kHX!27DtEU=x`&ef_EsTBCAIeU~tHWI&bv+(+ z=<^5NOd?WRoo1#OV}EjOKyj}B0I5nc8u&GBKQaZ9kE9IzxJEDn$&d!*hs>{jHxG%G z{<~qX5CtU~jVhLirqC=V{0F2GC_LK(lk;Utuceiv2e7nhu>+v*z8@`pyi2Tils>%SFALJKoj3c=9=!WM10XeXN+u14r;{+Hj!Na8b@(fGmH|L@l_yJ`;ri zCO-sQT{1g$(be8}g>@_`|zaJ>aW;@*0`uHnL3ra^F34 zk>YFv2FOGUHEaNGRfn~h;%_-4KDPV#fbvWY7VAQ*OQuK7>pA%Bw(RWU zT(i{BR}H4t;ebjefFL4oK32}NfVcCxHB@wHxJlwynEPIsu+FKx!dPLavty_m@Ay;E zg>Em#qsQLill0Z7$8^Axy?O9S8=sQr*`Mm78=uVG+ukIZQr)M-NP#IkiEItG|{@ zySarsoEv(7l$Lp)paoyC+{sN)xaCyO&u@Ctv8$eUj*zz#mWNEeVevwP`LUP?*KU-k zel1>GJ(H&oNEdjU@-W?Ad|3Pfthx!%mc0N<0XO1j&G%;H6#5(HqEOg{!ezK6JI#tD z_ z>+V`}G7cX$_#k4sSY6vH>!z}I*}cdm?}&qNL3d$ably00ZIs>k-`~j^!n=kjn|~!I zF3C~&21NdOxUF0|NFcQnF9#zabV?a|0q+4d-Cm{fTjkFptho*_|(0Y zO&Iv&in#O2M!uctlR~pBG%v9~OA+h!Rm5rJJ)RQi#Tyh#QFKlbKhmV=b%5E=3O1S_ zaTSa_Fx$7;Nxfe`kz+R2L;TL2AARZhb-^sm`8siuspc2*0gyjGO*ShsR{|EwXx7E#5p|ep7h-lhF}B0WV(HVYBAX=H`wZXd8qwDdS2G& zY@jK`2JQ*qf*PrCsj%bHEZ`Xz`iLbV#zU8-? zIIv@+?cgrGIbraAGmG+BeK@x_CQbXrY}(m~ii=-3^uvTt&77n!xnUC=@yQ-)_%FN0 z8xA(mxi3xy5=W9J?e2bQ&|Rx7&nSuy*V70pF!orv`_5Rq#tYZ|4^4F$_&|<~9UpZb z=N#gT(*cYiXZOKuldtDYBT0PUvfU%K67<<9~Ju!3cibg?X5 zCmr4aD_$I3z^SxuiNe44vRYFas!z3+}@`3P|wTh$L+sx>lx8eS+dE4eJ zs4pr0hGr*rP>PGWRhj)jI{AXKthclPZf&JVQru2NyJ^7+=djScCEtO!zA+H7VOfoo zu3k|_blX+?`XbC9YhQ|e)@kOlzhmT?lj7JM~S)B=s5X{zs>1YtJ{0z ziGj%pYP1)dY@G3f4I6TP8$OvdG^q#Y@6j=iCwqj8!85!sWWwCLa#wr+VqpeHWx;9t zmgsGXH#hPTy><}cCO>#B%eC4gpk(;1c5ONyD2VC5=W1=M_VxZ-Q&GUuGRhO}XeWyq z>A4;kcG2!+{FC>X$PIdyc>34(gh*VOK)3%Z(H4-ai+_~8OYg9quZww{^tJCuL3K>X zPW(vBG7}d{QFVK|+cogSBZSjUk-r@hsM8Vq=qb@pGl8o4n*V!Y8|1f;SA>pT z7Cl`3TBWn&#g%|$Z90)NKp;(Hjiz~uPhF`yb$d}X3UV_8DU;7z$f(n1-lFAWRyf*- znM2Qv3PU#oQX#LWlUJ5?QcBEpS}mSt7yN0?6pLq;>hVj2)ezNrM}K(zmtC~~+U?!& zw=7ASd=D6RYUQKas^=&V00n>g zz*&cB_@{(MZl0i5f4-pQzBoGfrFtL#Sv85BUaWn=x1igmYUT7O_sas$)dHOsz2iX{ z7C%m$t~m}h5taDc<0*S(LFF9{=CViGkWTxvm1uwmV9!pMC7(O(XSHQpO*Y_rpm27{%fT) zLPFE0@|ctQO+<`_PoK}_0lbvcDI5B+wTGFh=BHFUkDE&BgkcnD<=IusLk+Z&!+gzq z?D&-f_mo(hFKZiMeEtgzg-0EiHH!ZNn65kVsQmJ!T__;wJgT3PvM+GRAZgFfpUJcT zZ}^+~eXyt-=MkSuJvk97x?y*8@2+qw2gd)sbzonb5d9GGYa$v5GR8kO;(PHiiou7A zW`oc)4!{&ii)JKCQtQ!Rlscdy5v)C?m_V~WFgCHY#`^Xm5>G0*h+cg4`))y4$4Rp3NA8E5neAlH!iZVN=VWAO4Q;J zGHA0;l5n6O2qfi^x%aV3_?`PgmI)*Z=^yYHmV)-xa&=WRM~($xpM%+MKA21L||R^h?_kEbFj)52}u)^Wnr^&X$B zo(40|ewQ}LR}c&2Q!J_C z_>Fo44b|4poepc^zL=c!+nlTIi1vpDVWtK9?sQ=7VZVR4rq%&jRYg%hQDM^@1A|8y z-`sWmlXTp)&rj*h99uE%oHJReDf04JF+K7sZcy#W;@j<0J(ho1)IDRI{;Hn6#nR9L z{&stXtx_aja`$7`VAeexpLB;2@Xg1!zjueuaT$V|9KqvcE$)}&JUri{*7y|v_o%-j zP!Io8ypc^YQ^u1(P%B0Jr%Zxlu0ifz_8J{VL_i4ju36b43;{MW=(y1A`B7oHEr|v) z;{FV*WazLAl3{K6F;{@)mq^UqmiKY=FKEkGP^&@V&shOsj?qlamgO}KVg)SNFHwZM z85*UzTx;aQ*o)6Ea?x9X0=_LEs@pAb*4!CA7<;rCY*OHe5SNo+XjtGfcqrFc42 z(P+$%C7qLJt~-#UCpmMBk>=8}U1aX{snLHPccN{;r7B7-J^PvFiA=T#GZdlN!UeGQkj`JE#e+lL5c#Kne@4lGnwV(n03#`-67iuBr}F@Bt?BBtO;=(Om(CtrWg%DtWlDJO~U5N7gpunK`@IFv)lrdKa^TTnSa8`I|>N6<@wCg9@7r( zxR6OO));@en$lBQZ@XXN(lGvZBUt3FLyfXfvz1CrMXGhR=|RRh{*D_^(8V$pOE#2N zPt!=J1}>lB5O_(t8tLO`GtJIX2tHUYEdXPJY4#hEm(?l>AO>sXpp(PQQH?K47x(-RdhSDbf(Cqb8z@rE<@r{Yh*Hha;ybe78fVtizZG`< z(!0)x|5{kMKV5Lz)4NY=H1p+Daa;>R8l6|0JAnz(IQp~7xr(Y?0T2zPuQaIs6OGo) zm5Bq556onerWptu+7)3k4Q%tVqCc3{^0{g*!C+hQ`u#j#DvE+;aSjvE{XPC3a+c8( z3g{1H=$(C?sOZ=>kR+y%S8LnioJ%iAW^U6i1oy0VwD1@L4|T%&xo>ExY`#?k*p@XgssJFh zFTGKA?f9yH1>M5acs>r6GX6=~Nx!sef17sK-!w86Yo*jQAky1K5xc7Yx=yYC1_z^v zJ_Vqv(sK|+Dil(+s!f2d!(CTea6={oLX7c{bRZ4HjIxkn0gQ+#m`+@+yLV7%A>yTT z?2$VwGLi}3QjKF=^o9(<3I%o2>)Kx~MBKECHKHBeBD1@1C~&>M-1SjY@lShsUADC(F}$kA=k(-D32IlEP; zK6dSFnBSmm3&2`lnsT%%E;m0~4x!QSVcTSOt$ZOV;sO^W9XXq~e>}PZ8NFaaJ8-&G zZ}>)@HW@nf#B4^|DspIDs0j3|38W$&9@$$dyn{PzkSS{R;h8p&BpX7)ED3Vy^Y{=^ zQDbxfTq7`CG)hfOvPwhT80~YdPW@y(re7;St}Y%fYBZ>ABd=|dC}w5CXJWGGBd1#* zek7Pj_~Lv1=U@op$$Q$X7zD@(b*@7>vnlOlD zTWXNg)(Q_mwe9m1nHvHU1-FYLmLzY#UWY%>uJ6A8n2IA`xqo|!#OdNbHno~y?uN8^ zd_-w%P)9~>$rdSHfngRFcT&=Q6DID|R$ud|Pa)%ylcM%FSXmpo6yDxy%M_ON!5ci7 z4B5t8&Ix=jhjb|ld@!r-00#owK7+8_s~zgxb@<1v$M5#|9->wqjTCs+Bi;t2I~mkC z<+GfYr&@oFCma}CwgkR3Ik?7|jwaazVp6~4Z+c)-2Ql^@oHGNHYtoRh0PRRmqM7tH zNUn6NJ1WB6NPWc3@7qF-&xfF4k0zhstzipGA870KxXA)pW%rcHZ7SU$oNeI7_TVbD z6%E^vECbz!cnBi}>bZ}z6vV>p`*lBp+yF2i-ix6l*r?ixnBWkfl(LbgNdgX*hUGhW zb@r|b>w|djUN1Kbz>i%2vu&wZZ>G4LDiB(^ACWDD!c_cC2ta>$s?a23JkKDA1f?83M zEtpD)QOQ0Q_BQ0?x2Y^v%hoY6&ua6&3)eQ&4!de*!N;8Fv5MMQsJErCd2DVwsIzqB zCqy*>pe`PeK)!LxP#|jV!(4isN)rEylJSV0ghp4w?#X*ZjMHm1+W6-!6e6|f_ObkW z$yW3iBr;bvH^7x@f;X_jo0fZTi>|UQ}V4>w-GR$1($y-(9AHq}kcCx{UcqD>OM9ZGnmW4FVv~D-Uj{56A2}jKW1Y=S{EIJM9-v^$Z zLEVYI)c6dspZW2htqEqsF+V3kch1Qm@Ca-)@E^@smi|`YwlPZ>t(Iq`(1#Ja?oKA_O2;XF5I6c-ZxR&VjgOz`jh{XCbFHWLw%r0NpB?yK50~kc z4347qR8J@-v-g9(c0!{*9}BbKweb@~>neQ&HVGJ?LCfiUyx*1=Za!k<=j69y zoqDW`hx<&|vnH#Ea5>|Qc@e>bru(^k?P&2C5KY?@7HR64pWRa9pB7Xosk|+znEj{a z#LJw)vNd&ulU ze|0}&S?+-3CT~33&&%&(@KY0MdWN28i8|T#>UzlAx&Mgk#a^qXj%K(oT_HA(A&x>J z>)i^&8IvisG(jEti#_r_7AYS#@vh4XL)<^lTa|X{;a1EiPuTzBLF@zyVdJpil>oE~ zBXWdSfJ@%LESBxE5?t}N*5w8W0Bdtm?H3|71D)iA**IaLrK_rpd62yDf@WK<~OJd4)@XkKE22nF)bok z-F%yDtR*NXvxZKIP7g@2IuAx-DYb7Mgw^nn9`&fBOCS1o+sBK+x%=jMc34XnB3_M2WlmK+(dNO{NpY%DfXiknzrqM%*po*1ler@QQ1 zfF&et89BuMJALFbq%q-yBq2eB@Q=-}8y&e}c3Ides!6j>%G~9$OH?ECs#e85D1BL3 zNRBAXAQ{M^iT6;iA zW$tz7{NIapO6)1k<3KHhoR)b7ico=i8T)GX1ETVzwp7RY+vXpMyT0vwZxoXqp7R+F zholxk!QZPAMy5@K<1V*dBh#vR{-L}(^i3ZY1)A>a{QYF0Jp5X^29a5m!G{-5wKRSm z#foJ2eijb4UcR1FfT!S+KcwE-&RdU+SU-!fN}{hPS+mNka~x{Is>EE%hmt~XCv{aH zKaz|x5!Dsu6z4)(m?wg&1v=Z+#iSG*h1RH7s`($Y3f>6hb-7Epuk9Zj-*x}hm~%Ji zWNz5o_`brg8-;lgZ>IY|I5-+uXbL%PE_laHmUoDCAy=GOQt{JV#y&Sg*++Lox^B%Z zCh{?O^tfb8TzMRrLRoiCdU^;o^>+3LZ$M8N^>=feyKPTe|Z zV|$ux+m0H|N@kk|Um2Yv2fv17(?dG8@O`PJ;=k-KrId|EYG1&@h#vByI%~DmWQ&ck zHnEzo8Mipn{9NpQ{!T_P1FpO{LfAPG$qKl#Qp;X7Lwn4ty*Lqx zk=q~AbaP@{Rg*(wmPon`)hf8C4@pc`uMVo!n52@}Su$&Cyq|bITwCCrr?698wtrGi zMUuUq*Tnh1B%Mo_D$ifx5mf)y(s1hKL7t?Wryt|ioB+T<*LiIKh>Fd?u4vYa-ps`a zM~*<6UKH{p>r-~r=1@=S3v&}xO?t})`R(+!K!oA1Po49p9wd3|f6NX*eC9q}=yvmD zaFwVNtD)hp$!A-x1AqQ@6-drdT`l{#M$6%4g+i=qY@TO*l5BDDb3ZvNV4o7oDx zK7uzgcX{XD{ZV28S>gSzach_$Tz%k`qm&;R4udtWcoaDq3aq8CEAdn|mBgIB zb=B-YS+mcbD`feN#gAPjJ|jOb`q`ga$IAY)uMmV`18666dEq)RZOS$ALu=rl_(}lb zDfh{4*sbl!ol}*HyJYs0*Fpo`H5UTZ3NNxpYK7t6gns~n&7=AiqdLaRSx2C7uaNln zvId={>Ax8bp2kl_D%3m~s;AOsHo1)={YVevS?gX6*^1}lz*wKE!&Nu56Kwf1KQ*1E zor^)uU0C9aIEfzVuI_&qzRONN!;_-%Y(6yvwR3kLwQx(H8>>*!>cd!wJEyVI@7P$1aTF#fjqhb? z)QsOCo~WE$&V7OhKM;%-GdQjrdA9$_FjUcyl;F(6ThnyoLr~^4)9aoL zISGYk9)=4yzbKiWHm*+TgDdS}uNm$4?W|3f9=XPwNh1gt#>Ho2mzdDkWww4CzvAEj zq2Aqzc=zy467ERD}xH4vX6K@D7$j`T^xsF*S5HP2pxhuBGD5 z$yuw0(&`;0d?|T$oLIUFLJ&Ji15ovhB8SKFeHeK-soe-<-Bl_6+k$w12sci=z70~> z9HmR8_pXQvf9_r0!9{5dC+xr!i~jr!xwTu~&Zl_VFJMFJ)}F>VwhE&e&B?(~U<1kV z%a(E%tL19)UAgpie$i4|Uaku2p$!-g~bHUJx){OeP(*}0p`1%ww>+{MbM3A%!@5+V3^K*}+5_;XgB%}^Bi@v-1)|2p%U$kV}|BB9cJ%4@~p$o;lxa#=C-+gRe z*p8>$*%#8J#^&oMVzE|NKD=c|*Ab67F5@;6qsF%=omp}<;#t)-RcFG@jAOpOYu zpU)=Rc)#Sp7Nu384AZtbP`XSjwhfV0oFoQNy_I!Z+c5r=WwA&9@F|qPW3;UC7qa*t zbyOhJp@wN9A>^V$0}eQ|2rl&o{xHW_kju?c(-EMY1-d`XbTUBnrdtwD z69_ep3=r*GpeiQlAl%3Z@%f$S#1@yPP10G;kd?hs$Yi7700x190s@V-wL zyT6(Yv!#CZ2_a)7cc+!ed#XY?;>oHoU6uv32?dWR8l26pQAtQmHj3`&52d#whUzuN z2${16u6cO`EhWvFF{-Xb2kfBnTH)mWR)ubx!kLt_yeMsMH7Jx$t|nj`=uZ#$cU5_) zQ#ZGWC1wU^iy@kw#oGRLc1ayM6){O63;EViG8rT?w5bx72V7*KdXj|tZJmLy++y0M zMd-=OL=w=sgmR>o1PPjJ%7oH*X*Kx=Wn4D~Jb1bX0jo%%5Gb!m*$gN(Ff5%xw^cB~ zlm=&nD1?=Pu4xvZd`JykDWhBbQ8cIt#RlOwI38!K4o;yngG92YqJvGCH7aXhYkyy8 zRNcKcgKMZqzx$;rIT^IQ&wSF`bkA0$TPqK)9TDeDh1V)QxL@%2=%&Nq z_;pBCkNI&PH1>!WCYw_7VZGl5P&(?w4(jtG%iTYPJ*Dp zUJ{OH4dFq&aMzKusIKZ7C4ro_YnDxLVp7FnwN;77k^7OwN5@!m8F79tu0 z@mMq}Jn>N|m-KijBLllqM4UL#Ya~c#nw{*-x$vZH-OD>VI4}F9<-NF$v6o(=j`N{+ znn2xSoDGi3^JsZIrW$TN6@5d{-4mgH5biSV{i)Kc@` z)Lrezgf7(TSt>-vey~F2g%Vr@;Iw>P{);+`!{qOq4|15x)v^#MDXl~J`aqK8;<0q| zSe$S{QDyxuab9v?w-{+DfKkM=kkt**!B%RlOTV=_@bd4&xX|nF%ZVCb`2XXq49oqHb7;x z!&V+UcX5YW>{R;RUfe18=DBYK^^^PGCS;e_kBA+A>QgRJnXd9I4SDhRRGGUu+ZX*o z@MY-8D+v0tNLc#D!I+kEE}u_p;M-H zn|nY8ZJ_JCx+mpDL(YZiXhZHiS5zf~#L551&{;-B(S-qcHei?TP->ABq`PHOUi@;_m+er9up0Bgb*^)Y!1-aJ}54Z6+S^Fc;gwqgDX*vaw zQ68nDq-&17@>7Wk=NnlAs0vG-Z%e_#Zuaf(>@~jHYs2_mYM{b(A>K9oGK`^S1F~+; z-d3YxkM~LKRzkDEf>;+pmjYKUf`Eml*5moG(!WljhXN0Q({TJeGkHY;bRdgb(;EBojQV63qK4)$ zOXA$)Pq38dGEY+ZI-pDqwuXYaViFRF`Ip-G=9mW!#%e=nYv)+v5tf#{r1ww$k zTufGwH?gs_61Hk_Z&p#f%iQ32dAdv@k0j?n&}vgsx;$?hJXtH~Mx#vf?XLh~fR~$* zuj3t`Rgt|Ny@c?Py4WGF!B?ma9`bUT-;A3{12EGRCpqg9(AU(wAQMd34^0dbE5(s+ z%7|r2-p;)x_5qysem<qyE=zHge}K%LPUko%#jd*Rsi4@wk-*tES381+sW?fgrW;f* z3--+oW)3GG7pJMUZ&)$-wRYoqEMVvH%=Osap7a@ij){Iy3>7Gvmn_;{=s%gWchOJxcd`BW=HJc0^?salrm*7QJ*%f}9N?P7-ENg5y4<;1 z&WRS4x-RRKP`1~f13AImCkzQX>U1o-Ji5C)E#90jnyMt@y!yS9B#Jmxn{SYn*vVk* zGLwR7?C4~hf;5V5al6?&5NncGUOhs`LFEAl&t^#R7}I?X0m*9wKcZy%ImxBBVBKl{ z0tx(!JW0&8ETv0OLAy2*DcG|b7K#<}f;su&T$8H`QULhsmRytQlCm(z>u^P2j*YMEeSxGg6!7cg)ZWe`N-VWK14#%a6WONh~ET3H! zA2h`zb;;ZVdA}e&e2=~@>su^qmuxCJENcal#r& zT%%|2WI>oEA#{Ja`H;P%e&GHO@#-p}gZci%OI@Ze8?-qv@iE#H3ic*?}G zdgt)dUiAEOzR$QE@=;C@|EQ4hQ_IWG=9Xh6FKbckaw7e;2Nrf(O-ygt z`vaQXOlfxTP3-nG?fqbO{E*SskO|eWnaHrY(XgfOuvPl7P5H3h^bi$(*y-)CJ|5(v zGU6^W;$}4BGdyHKHNuV`@%ugGBQhFjG|FBu5>7Sj={sU*G!pf5^dZ$)O!?^J=#gf~ zShLhfV)|Ih@3H0sNaE#~KJ9p>(fI4zBbk?@VGbh!mm?<8<8OWri2%xBKVOwNO!y>B z_)-l!UJiYV9t}36XG@7&*nXFBp{8m2s{rBY0t;t_hQ|QY8GYeG8i@q~6<)mr_r0L~j z&(o*pMP|lC#-DP`Ecwn3awxwrx`tei|NA-n{P*nIYfrB0#Ewl%rd0X`q)Iaj zy;O^c&3pOO>xH80#m4LJ{MJj2*Qo$<_YA+kDSiuCe$~_)wW1rJjW@pfZG6kv_+GK` znUiV`nr>jK&t1Xk0r!t9tfV z0=HI1_URv(LiTOT3b%1dzSj!DMS-7SwXsk#7Q@x4@q=cQd=(=~KHI~%lp;Oc2Xu^74DNGTXyw?8X zto_}Y&0ey<&CTHJ(U@XioN)IqLcK5lNv!dUALg2iZ*^5@r-^UITRrIb)r0vjU%g-Z zqfB~Z0k^}cTJgyJ&wmb+$G%hFLU)#@Cr|td_s_xnee|}UxzyCPCUeIe4EZ<%^#8k( zYEIY~7NNLQw!oSf&1!`l`(=M8Q~q9~N;xxg`RH_S=})QC?A7ILOX`lvE1#;TTnz|p z8gooeJY)^gvmMt{)^be^y>%@dTGxDSSl8Prg(AsAZrqk83q!VXMBQxO(PT8Y2-IS> z3)$0RI$H4m6;u%WK7lzKs7iPp5Vt8nDGHbD>`Y|bN0ISeYamHq9exs^mRt0eej8B$ zki{+S${C<>c67&tr<{X06mYskdQF5 zFt-e~yk{5s{FBxVzP?{v@<|poaD~qnUG}%z@K}WKw2U#`O-2yRd0XMg(&KgLv5i;p zXR&)W#Gpgm>ynn|R`Ll&B)R@d>bMnMF&TF5TR(d=;Z+hn zbz)S5OQT&Vm06u!pwHzGvh&=n2gfGeJNrQB2L<|6if1z_m@ z$2X>&0D){!nGphvXa#6G3%|quGffbN+Cpz6NCUJx-gEI&B%pd=kHbG~ITg5$8|uuY zW=R@pFDW*b$bD3(gFZm=Pn$=7Q78I?mp?YsBu8l7@z}G`R%W0VIQ|Jkq9c1+`u02o zzfrnmC0b(gnWs;+<(X4buN{vx-r*ffOS|4TL-1#Zcp5~zSyntRZ_4tRpjf+U=*RDU z>tmkU2kxd%DOfeRMI!YK|E^@Uy&^1pV))4}JCJ;7Pz=!pJvIFA?(>hWzxltdv<*3z zrq%rDV-R7DW!t7Qco{VY>CI;(z0oxzWVd{=AsjK1eu|iws|fG-Lexe zvj!P20!(I&k^M|2Q#PITin^1)@?WHJ$bSqx!-o_SU(W!)Wl2yMdnvK8UpsW!JpZR# zsX>E4>yXSli12RKo6F;|Br;~1B$(B;T7eQmrneu=>n2b zU{-@4^^&YFKoJkQdE{l_ps1PEaOcU)177`EG9+xs6uOB1V-Wq%oV4A7?`^g-lvzQ; zZ(A(h;6mF6^UtEp)}&15wYNmmH{EBXyWa5u_bq<@vm7vD;%kAd%IS3d;`>(+fOdai zx4?g|swqhE;gAy*U4;7AWy?ytc;d$HrRGsOD(pFK2?I(e_?%k^^PI&3^Ob`UvBS5u2Za1{>Qh(d;ed&`Ffw{l| z|G&d!d4iih(dTv&P0!2VIi9eWr_wCEjP*V4emRDdJn-J&SJF{<@!Uran-AZAk+{eU z`TP$fb}N?s(eg`CVEIf7W{fm;geJ=SyM%d8rHl5&#Lj zErn%II$aY~WtUY%fLo@s5&!-)kpCBu5F2juKxLgDKq7GryK{btqs=`0)%I7Zw)6BX ztrM%h$qpAT_g%)sG^qk`L|^-aie~E$rS0yh2UE`1bv;(zg}^82QS&=m`>c9dD!j4;>z}p=y^7L zGiww9|Lu1(!Zp+o%d3Yqqu0k|Cm;pdp&t)ySE)2GA1nToabYW`(jB!Ob>utx5PrGw zrTM0S6I!M!eQSWB_||BLhpf)+X`Xc%y9rVETBx#VCep-i@>kRs=wH)J7k|4c{KXDC zpx_r$YChHv4{w-$OYB;Ch~U_Y3I9oUwkc4;GkLrm&Rnbvi`@J^3t^eBb=aeR$Y4K5 zG8=5*NJ`}+W9=HjMqw`~0cnV)MbttI?*uu=>)pO~cGb(*`e&KTJC8 zdmJiU|Psa*R{^|W0l&mit))RJ97c#o&5W#(wq3XN9e zADp9U4omb}Q)}cPu{35M$0bZ(Y8*b?(Wq7OGJ4A#`*3pQO0{4#dS|KUU;PzwFY6?F zZ!7N6f`FPD{^i5*=fsPde$Ib`zo_=#KaL*XafDaP9P}6EfI|;sdUT1Kfg*bh9MF-t{s_C zc%U^_JwWU%3+F6|6~cqo1pk9%0hYS*zQ_dW-B{=x5__N3HvkETV#tb9IS5GVYz((B zepLyd7ylE*jT4i{Fl{yghagu3{u>%6ZHnR=f}GSQIpAYqniwWGT;h8$*CFsdKpn0L zm>}ed<`U0+dSGI`uo$2u`Xlb4c&fPc^OVzOu|slmvX*AEmM>^{IRSSHdG<&U%GKKf z`xJNlfX1~RP@$}m-X)JZjYCpO3fi+qRjI?30qAPWH*_m(5h^l7%D)RT?A0`y(lm;S z3pm9^Az{J<&AW@OLe`0rys0s#i6}gXa#fs+HC9@jRLo7omleuiP{aCE%T>4S^D53q z7s8?o?48qxp_?^^G|0SAvj`YmSDSY;MOs%I(A7)`gsHU3G-R~`C9ScOxa%4?te_nx zjq&KjJp^#nfMk#|1`>b`rcD*UAQh3vK(jPCp%^;xgzyNQ?T@6GF`Pd-ju_~p3CLrj zqhONK8Zn)Tyl9<+bNV0v8FbB{A4`~Bg>e?e_HJX-`@hVI+1BuvK&ky773yS5T>}t zb@0bYSn{zh&P5a$04GRm=yw9|>Y5c7>2ntKRFp9{7O8v@I=MqhFCF87jvy%97N~iC*9yyTnMB7i{6%^w2n%6i(U?JpAy4aRiE0A((ceF(V4crd_E<7luSA#6aUc5b%xhl zefwQWn`B35zgYk6-`N2Ri6!|*-gwcDmN&kCs25>s>}S#ckrL3U@2kv#vDIHcpc8Iy z42X9;jKD?bz?ic7VApr+s%e=p9!SHgejMMa_`aKp?TyCk+Ad9J3o1$e3oi*}0+PHn z{cjY$mfh51w~0gk4>MhV6&k008Yd)(CEgd5jUxPkl>pTdrf+&l|Jwy5Ma(6Q{s#Gw zHc@uJ!va##gOcw6mx6%`WFk2*0BqtpPr)?(MgRiCzp4|1Odv-O02UY_!r(h)4B!P; zJR%Rk1MJaAvfW-5Jrgc=WF>2&=k;l~H~o>|UxfL`YSZ7s_J4sb)DU|r=@I$tqPEzB z;R?V!a}pP39k+!=uDf9ZcGUwAv4zSQi3p2y-R2ayhIAQ*Sp`G2Ivh2IL+N%izrzH| z!=jP#kq?pJ)!2a3Z!tMoU&&?&8WVVGoFV>PZxuu9KH`zoDFQNr-@#U)Nye3{#?de? zWz%Y1NR}Z6E5&&Gc`DJ8(UO#k!nUnGhL)5m%M=Lc4bX)-@%1Wm-1|a+h0BBbDDglR z#sf3vISsol*omOPfO5>E#X;Sa$b1W2co{r82|O>P<03wqF3u#~IfihxaACz&h0sM- z89bVXyV;{W>ZpQfErE!->KttX_5~(ARfI%OOlEAZSKfR8XJ!p#`RJ<_3_5Xiuk+rk z9fO6O0va4ZxzG49mL!zQEW!tde%{K$ic1~C=|%ugt~EIXozGiI;&{09iwwC3oRzI8LnEIG_`w|XdVg2BUeRC3V zlKfyHqO5ysl{-c3VKtFm^yg-mH>`{r zQ%QnYV}k{!_Cp#)*Kqt>sF#eX`CCo@7%9S8NsV>mg~mW!r(hLR5??4q7%QnOde(Ng zN!`oo>^G^awPlt#=|A_`b1aeu?R5Ox>G&e$Q9tQj-FPv?te9^6X`A$yRalTIiHba$ zs|-vsLlS0f{}}=E9V66jHaQc})O~jme@TgLPOflt+A55;(eaAJnYwQ#O@6Gh3TZ++ z%P|HzSc2N8PSGFW66-+Jc1{-fz~tHQosI#sFl!WtWNQoQWx!I`K&IiIhT%rsUXeahoEM4itt@5mrN&c z2v`99pV5oRULDTf4rydz9d-a%k{#_^kqAT)GUF)&JF*AO^JBiixBQ4*3?e_91rf9c}E0h4Hl1PM86R86O^!qfyi z7fOuRrR|xWZQ+J`HKz+^TjkFE3rH+rg27d+y464du6p>x=@lYEV>mScro`WIB|;H} zATfAhWK3|aJY9*NiM?LnyRv`N>ZhVdMpJX#uiuADe9<6r&TtYY906!JphyUiPJ4t) zpE*|vV2*T^ErGH1yJ&|(%c4g7;jwZvF4xA=A54Jds*br0jMiFzfoUcA748E5y6-8)zdI+$O#oCRPJtA1ugn*tHJ4f^P#C(A#@f$#CS5x{E6J!kmL2SWr zlIzrpP?b}y?na6xkldG)5`(Y4!o6SCi%g&U5bdR=qDf{t@kATOAn*MjBZg&nEX8XL z$%rWlGmaUHUnX%w%8n)n0qddGgd%`OlGMYzp*PWHEmIEHf1GEI zD9$&3N?!P;B|&fQ0(4{f%uE1z0TAl=M2Ob%?&s7;Wd;~(NizAr$Ju^Cn%j@-{Wh7s ze1SEMJDU{&FzU)q0WAtzwbsq!2V9gs)BHLNv#Tx3@VoW98Xg;{NgUF8=L!8hNWQ-N zg>?`+K)yP1^KD#Cc_)Oh6P*+XL-Y_qCzE&QV04|604pdpc$DSU9$6(t)kq+Kk*aA7 zpz#l6(XkAR*hrylo~hfV2v^_bq_70Mpt{m&W7`M{pD^a_MA^;$HUr5_ZZk*e!~z&+ z8K7zkW9o~m>>Xs0$0a!!Yg1t~GK|8f9IAG4{&=8MbZMF?$%n9(r`jsSwSpdt=O~NQ zqI$xK-(msrnVkRQ`f#pKVAej^C^{iQ6@w3hxt=Dz{&m24 z2kKiNnZNQYel7A1F_GhXN4$GhD3{2yg)ZijjO`cm4LCsr8>QFd7+(VS>R~xw;X$ki zOhfS=)Tv`x1|s8vE?gU>I`8aY0O=CBh>h%?Hi=L8SxxvK2i-jg`nHi$PV_G1$M8r_ z3@kK66EDz`*=c+sI*@#JTOj+Iwifi%N52r0O($1nmGSA;=*+p z#8PXb2bK#}DMF8Lv;CZf6rJJbrPIC~=Mn4Q`maUfpL_6c5SyQzrSA zn9`=udt0Gmb|^@b(7gJml0)J5&~gaQD2zUFp0E)nvCy8urIB$bQgW&L`N>x5Sw&u3 z^fw zwxLW;4Q^AT`;vv~EKy?3ti@?kf300DW-r1J-fyG706LJY_8Z3M()*aq{u}hKiIx+T zExbV!Qwt`l+DFH1Ixy(y9~HwGSIQs{x>FO?UWF4^&6?kfnQ9lCt{P#~Wa8=uGYM8J z;R~1jT8cZLyo%E=zm0mjf0x(N&yf+4FN{$_Eio5RUs??&D{+|S8_82XPc+1C%h_>j zM4HZ-22Nw0b#C?znc$SnXrCwXwqtKw%6IY1i^R<5eysSuZ|kbWbtj+%#a3pXnRO0* zh7TsC!{am$cAJw0-kA1~Nvs*_4X8#yH*#j;@U~@i?vxq$R5@zkgObg^oCLL3-E@*APgFzx`%<7>bq5%DuQJ%^QsmeTZ`Ze8I5tuAzRehdp*|)U?WWQK7in zT-sX)tL6A(uY>2$n5y-;%0%9M@@GxP7Ix((@CXPkz*@bv0sFxrf&Wd+zUVbK5dTzA z+5MR@R0{QtI{N3h>c1(%2?zx3u%ETMOPgU}%rY0joN9PAhoWAt@b5euk)|PE&chUenI%qM}f@cs1|NK6=Ji zK6r@=2o(l|6K@l=sKV?NiULn{J5(FzfL|m8fKt3w zRM|Nm2B!s};@XWqMHO#p3t-ey=(p7E^qnG4B$(e6xK{lo(y2s=iyL?SF;wq-LU&I* zBq=Bb8bAP9&11l#tg#e=fB}tLmRa>pa;VQ)x6{o2i)^XRem{93>M#AG*$d+|;mzMu z1J+%duDJuzYuy7|i=3~f_~pKz-FjRf5BG0)YF@(v=#;cbUvwry+Sjr)gGy4LmW>K_ zLoqEfJa1iUi<#!$zYX}&!gZL{1nXX7M5R=QNDsiMz9cn344*zF1ip!sUo#r4@)Te( zq*29^GKR^wCBB_xeQcq}kag2SB!+Iln6@f)=&%LCxu0r#|6$f^>Ot;Y$z@~R=Phm% zeH!0dy8gJ(|Bi3(K}gF8wu!C}m8u`{-zRT}St~LM67w|jFX}tkgwXwOp#-w!ffrm? zUhl&w7Uu4>f0(`WlS$oU+Um+f(Z9nm9y46`)HsSV6>?zJ%zNu?;OEZDz zlAX**ks-TJriPl%Tgy$zrt5A}DaW3-k+EmiYmxyC)uFdia-riram-a89DL=zGJ(Q5 zEwX;&b^a^|LVmuG%5wS$b9y1y4w6Rc5ox^`r#vl1InfaGLaJ&6dgL2DfL8xUrVW15 z4$;c4O~k77XgYU=n`H6!k0Drjt-rtJwOg zZ(q_PA0)w_SMHy9XMGyN6Jh1k9B)sv4ysEqBHA4gKt7cX5I^*jTmN*MnaR-Pb06Mw zfRrmxU`%{eqA%B~cpOvDH;|w7K0oU~2ODdR)z(OIQI6*BqV#?ASE#RG9@5{iwTI4P zO6DhTX!avldN(ke1=B%74Qg&@f+gL)m{^%iWPz`kO^dQ z@2-JANWjr>)o^tVMk$W~`BRqwjCfpNwlNofQZ9-TPvvT(Sr8F`9Is&XM1X7y53TDU zK2h%k=mE;zvX1As=V?sQ25mhb-gB$&QdZEtz5*w^F(w zfZlUp!3kc8)&G5GeZ1+)nO)yhX28L@z0KO>jh=Q9eQEKujrS${_!{{m4u+$f*q?H@ z=ZrLG5EgjlWyySn-)4p6zRe|Anc2wSHcxEZ7e_;S60b9gt%iTE-f3QArMV-v4|8hy zChz7qr2m`C@ZWS{X+hvxVr$-sKH>3@w9&Do3&23qKz<2L4I}B?VK>YLHd+Fde1#9_ z*Rv+(5d#t*q!f~PL=zj?-!~Is&Yg7gbBkrN3o@?eXB)Zjn3~fZ$HQa5)0h{PH6C@%hzrK{E2eqtUJrFxuQs<`!lSTuLa%Vni)l!K3Y;%9-e z_k4*}bTcfNI&ajxMB4;D-C=!v$g}fMEi_keF8jZSDgb9qkl|lE0;&rL<~|m9Vs@4N zR5g#EQ%Tm{x@pfb*^$5GYuB0?4aO5vUndzD*?sPJPK2Q4+SF0g&%mcN5A^ceoZk>{ z57dDG_pXE_N*lxaSyNg%W6eBN4y|EMemBXzXKmP{ce8F)wAMd3Dq8a~RBzXYolxu? zb!$$B5pOgY!4Ogc)jY9a@34i3wtyu)UiJMw@Qa(Xg*Iya8pe^B*e7kqIc;5$Lq<8X zSuq6xAyscgcJw@_N z%!%&1q#r_FOXqW`G9m7df*mJCvdxE>k_1AbU2Uyw_p^3x=V`bZ-+t@z$fnRRV%E0R zSS<==^n1e4kXVdb1sPi)07~!^ki&lnbDhN<3B~< zNse8RTE%dbhhm?>OjroXA{q(|KfSz)EEqN}KAWetAalKW&@py-@g8Szj!oRXzwAMZHrLOVaGZQtH7slyE6ns7C0=Ay-{Q7R z^63n43WDA>F4Vclt(#bq1m}VhkW3{g?--`r{aEEOC!+>}(0@%V1pGKv8wi1+)M}@% zc`kal_2Q?i^IfQFuj|0i%yl!Un{BH?%~P7FCKd~j5A`)1(DR|o>+5M|I+xcR<~DCHG~-qQ@5a5`;s zp)BJ23<6HxuOtSo-mhMPs4RVcq7mhIPvySxt1}E{edXa^DJhslRe9b$64)Go-p3FH zV#gQRg>2j;R&%KMwKjPT+4f08Yl@ksxzG9x(o`Jj$?yLi>ImA7Dp!$Nm#fl+|BTXd|eV`p&;6SW28 zVQ2i@bA~tfprNW|+~n_tm)~o#-!|;jNc%5aARxEk@BMN~s={NYNL||DLQ)01kV_}O zsr9sM9}~4Sw`rEUZ|;%{Azl_KU^fRu=P_3IJ%>^zWi+>{FoKPkt>g1jgyxCGZ%1Zb zx8G|##Cx~XrcbOl)NE7`gqlp(h6+iQ7~^Q({0F0qlQ1Ox>3ADJ;u)&iGRZvet@5Q( zCUDBn8nVW71_%MV$eXJhu2~w~ZyqS1FrSidMRm4_B38sjv{nrHqswjy(Z0ey71B!j z@QYK}_z==D^MISt=X>{N@4fc#6Ul{FTz+M70*rB-jOyG~aT2ak6{f1j=R0%F<;p|={@moz1b*J2Jd*8~Zu)X?WySd7DevY0xV0--< z`XFk!X3VJW!M?RFO7Bpicn`bWyuD4nv)h-n#p#x}DYPf#zgM?y0{Cx=`XB0xnX>Na zwQd}`h*cblnkxGrKioNK);!9E_Qm<1HR~J%?QE!5p4C)tr}*n(z0SM+-F*BlLUu0Z zD>oa(^z8kw{)w3uR9=4AA=2;8Zdbma^IK;YKOWiHDVl>6J5LGig3SY{IRh3Lx1m;5 z`=q;SUZT+W-DSUBxY`;CPLud_7c3{f`w)CP3w+&VPT3PcSxk%*=&us$_a)z`^2ptt z;oGJ57yoy^0xBRHi`iZjaiV)5PAjz+dnB&V>d&yUbF8{UZ*UDVon|N&XRh_%pst<@ z3SjD_^mwa7)mgT1i2Hk~@?8B3Api)g(m^g2Y;?g*U3jC=SG(Bt$$V zC3u1*S*k=+Yb2Epr2gCy=aP~(50=rXl#r{Hd2k?GEFcw3Jdlg8z522jwzMaWJ5VUD zEpQ1|tPNKBcp%^6Px}2pd9e1Oez5FluTfA)_QQLt<$a&e5ey&x2GAR`z%CnBSr3Yi2lcrJ=;Sv zu|xfq5JS6m-JTGm$qwot>BLo?wc{YQs)l|uDd zj?4`{YYQA%*d1xg9a%m&($G1&_vlE~>c}cJRMqpy`n8No_>s*=8F}21?ROcumq&Iz zpJhvr>?dU;zaBYk9Eo=vIi7zO8$EKOIKFc(&B$XK%rjn=#VO3|*%wCtFz@1H(#K);~nqwumE8(KZ@``8Zm#i@SyKIJ`6QMN+$tQa@yyT0&3E}yqm#1 z;X)_z%9U%EcL#XNEcq1nC`2`o=Tt9oKcdtx5j0)=A0Wpdy5<7K1pus72bWz)0!5S1(>G$Lns?5)}m ziUiP0Lk)kyB)*}G4`7Ti`FhCw@t#_lLB7msgCtRh=>`-sHaxoxQF((QiO2~sO3dAi zB>`S$LPk{YfV`kj5wxfHJ&4xSiRjfWHN#|aTdBxLgQ-&T4f67eZ;)Q>NQNo--+dnmrLky|4RPQ&*5DOyvfUq1;Ho!wj>LC< zQiI2nu_I})EqRr4DkVsgoJe;-Aqi&n`VoWt&nB=SMhL2C*sJjxg-<@2&n-Za(qd+? z!C`8ag%2XXyCgnSQvALgQDUO#Zt*b5^`RVUw$bpLI$3Vs6GgGyhoqEv?j(5!op8a@ zS07tKGImbOi4nPWiceha)S%~OzZy80iAn_cznbEpIE8cl%*a=d$11*SRn#g}l0E_` z&qc$|xfy%Do=c~G9I02kUKfh{h6?_CH?%)>Rqjw69z9C_M5Y$7Us;-*tE;D4)!Qid zV;D=-$o<3Q^m~LAw$enQoZ|=HD(aVcWRXOaoqd#{cvP#vcw>^@xAY&?;!)2|G@7hh zdtf~6Y!{6k7uiD)`FB8O{-Y1W{sE7i{yt7sm?b`v4~Ymc7E{rp92&E>u9 ze;w69bJ?>2A%!dDTL1n8QRy4KX#Uuht*qRv^JD0>cE8<^;lb9X7UfRiA^dqf%XMXv zJ?`i2Xc@amxw-R$XpNgw_=cZytue%grVS9MGD@bOS@9G^U4Vy|G|38DsAWO;#G4uv zHmP?(OQp$`^QfEH7PTsfpmi*i7XwX0atAr6}LvwFg7b4 zQfg~9N8Hp<#m8^=#LTg^%ni1xY&I{nh^)*us*`1NMKv+_#OL(3%B6Ykob=|VmzJKl zh@Zw%Ad%n*0M9(z3u|nMb)qQ)Hw3pWd8&eQ#(p_O)De~Yvf}d}#MFbZLZN3@Ow!i< z`M*?{NHLKo+k~c=6KpgpmVl3?Lw}%4i>PAH6YwVdJdmTzq@a;Mr93>9aQWpQA60f( z1xb^L5+|O0U+K`#yiYt;&bzqVrjLb^$tp+gySvrDRdzn+fpvG2Kmlq~UDr>XCXW{z z33?3MTuPtl>2+DnlGp~~E>{b?Q-EuDvDo{O-{b%iliqW+Cz3?{$Bcm*nilYnES7`%*UgX6XIl#e#4D2Kc7G#}s;xHcpkt10)N5u`{C? zU0}RD4#JB1#Mzp3as0MQ96!{EqQM5MAiSnf%jrUtYU1oofa==c>yE>%cnDP zzPK>t@`6MOgcc^0!`jO}vdGq2t9qp=Z=G@%fkD)$j)aRwwhEXZ=ZE|GXj5IFF-=^t z0JfMdoWvDERL{WxF8tWFS5tzlrONTg)$_41JRva|Hbdb9_4_;LnOEYs+1(mN`7!OA znPMkxBS1|i0ENND`4kQgn_9F_@x^$?P+Mie!UR&UTir{iAROt1dAyOkC0Lk)4+7feGgaW$=-m$bh-YT0W=5(Ji|lC64{U-Z8aCs z#1$fC@*;-hgAxMJyEE*W3}+v!oVozR0k{E$;vX=5>~)H2O8ox3m&)Z#QVv}hQU+3{}{Inm$6DW}wx3Jv?dD41?bDqax+$fi{ zd;9nu2%Ml{v2{pR7$?A%?zYYbqQKmZeV?my{|jihU}_NdGIc19OkUpkBT?%9>0FY4 zM~_RIdwN&C9(&dqFm^y8rt>oT?O4d08^4t%*UNu#o^R3w$xdwN`)+*>Umnc6@D1N6 zuRYL3e=77ys`)@?$0Clt;Yf7;8VC6RCtyH=tZNkVa2V#aDN{}!2;`6)Qd{MwWHQwO z-UQ!h64Jr2uxiLk#tuNK3xK-_48SIysQ7PyruCBu&r?&Jhy1dH0TV6Cp8?5`YsUIG zs#x1#91qAGXGX(a!N%(#QmW<*bPmFvG%G78Lb^!#Xcuvt9-nf@vJTeY10-hYtEG7f zLsbjO;o<<-7c-g$dD=J?dE9zybEb8`E?|?^qnQDJpNi^ozaZjAp@ic&ch;0t9m)(lyu{dLUNlI$_1}D2_917h7eYDzKG> z(q=`IM*ypw*IiY!^n@hYNG#X3Y4)n>5KVYhF$ec*32%K9wQDy-ibNB_1*rm=|M-KA zffu0@?|mnC6px=BL&MZqo9SNcVl9*~(03)sx@IkDiTw@BWa{nFFL+&ok-sV98L{SjGLZ zH#A99u=aX)RANV_tpyqkB20;RzoQYpgOn@0H9?dkC;h1YHb}`Tik4NL{7H`;NCN6!L+AK&p` zLkZXE>IWs)23<|r)|e|n9Od2IVp+N@uBLu(21x}L`L|>MT{8?rZuMNxjR1hzy-h9( zGvyGN+Y8o&OI4PJwKh#Iers|G{nx$DUIpO$4?D}qSt+69_!m;;w;%fnb-gKiQOfYo zI{~{s`mGLPPtia87!I~nyMq9EObX@q6SHDL?9DNh&v&BMQh#0_!F~TlSVR=)eT#x+*S3XJ?m|e{k`KGo~dA#EdS5<6aNbY|O z7~>?KyM+NiUruTEv`^?CE_K%hjGR!siszH~nsivp#!T3dH~p4D4aGxp4Bg4=hl`@K zo_9XJ>Ui?C)$+@>IG1TJPSvL>yY!pg)8EGUS}}&2;O&6Vbg$$S1`U?Kg~Z>dUzITY zlI}9ThgFtlu?zUWf2I841YfwFnPa=R z!R9EvS2KX~FUUxWC7!3=7o=qVYBOK3#A^vbji%Aqe>r+G}t&;1W5Qo+*7GkoMy zyt4Wd8JCIt^pEVv#3D>c`~3H*8~Hy`-u-dZ&Bx0@FJlaDA*fF3K1u3(?b>Uyx-8BE zyocTX3c7zZ$;;VIO{$5c%WTp}l^X3iH-8Xs)AzBSpXAMwS--n@re~krgn9HNLk+((zzVJQ)#iTF`H4xplSq_PLFL4Z zTUE(+^D#Huf6JuN>Xd2vadp02cQNE9t$yM?k?dsPdQ{IvEQ?}+>tEk1A&+%w9&RuS z64Jsd`Ux9A9g^n<6j#t^YSBDf9TM~+``toTSk-^*Ozv+=V??!J|35|N;ZODV$MMe{ z?!B(-4x4cAbtP%IMnc9lLxe&ix>i}~8i_LQwO3q3(z<45R%I05Yi5TKQrRKO4w0YV ze{dd;&*!Z7dA^^o2xLL?KiATFzT9>yQ}F)kJqsGg!4=ZTZkOO~(%Igd17lj8M4BDg z1B?Q|t2cr2S5PiTULVpwzC`>yqlzjwzP8k2g%i1n3-zLHzAE3u&RobQcgUE$r=oSu zv>**qfO6RTT-m}9*~va5*Eo#60HMeF7q?2US{M-|N=L7*61vY%D3z^yVWSe_pz%z6 z92LsFx_2#VQab0zwgLAK%pI#lh2cgk9s&?$V1d#j{*Laan5P~>XeuP)wr2gAsNh<2tM&1iSSe>X&ocA$Sa&}% zX)$unL~WyFTzqyX8>74Jz%zmHf`xlo|3ZbALC^Y}j)Q^018Ojyoh=aGuoUr>j{Flj zpxOC|`E8NN+jiSoZQ#o)Xzw``SlEZu&MdpKjSx0Dana(UlI&3-&q#Ye2r9~f0Q4+$ z`{`Ksv`xCd;|$mu;T;g?rI68Q|wRj4*B4I zSMsQTs`^|sz_RJH8RV66CM#@U^LS3pG?jtjrGgiAMPk>#2_1eF$eV09nU!N+P$gXI zD}5|U_BiC5y|EaiVn>-*{2;YRK+)LjBpmgxAUg=N?JpO%Yo3~rq!t@xbhw^$^$>6a zQsSQ0!?ZNPH8V z86|x-1Dbz9Qrt|Lnoh=CtD`ChDZocHZROY_9np0k6`|MCt-W^;gXh{WLvNRgO!8hF zN|hP?q!_iz@#(TgwbYTtb??{a_=^NT-MEuEhueEU9z1zva6=tY_#W0|c(FpyYw4iT2e`Aps5){Rz=;76x$oiFgaibKxqL#N(pShtgDQ zwf^d5G3YWqv%oXgDqNn@@fH^>jm)#@Cn7J84%sDjSiTMr9RpC@p^LMn_ozr&Ct^BaJ`B zhfW{8qjjW2t1xU6C8^D!@Hg?pmy|Vpd*f;BjpP6HH2giCci<&gO{!;du>&dG)};B!%m` zfl=)nqhlto`(i-{7NEaD(np$R-CB_R#34P3z=G~u>BvcG?n$hC`t7S){AO>C%dVO1 zr_t`?sE}dx*oy1i!}7n@>>AfX`n1g3yv-hTYLX-nH)A?ih?UBMc(u>Ik-1J^ERFds zWM}Wt?r$K^8F4kz#e&<#!r#gu3m6$xo!pX7;=H=Dw_UHFvHD8ek@r=&`p|{j(N>x@ zWZlbo#A?lx4Lf6Ly!O$g$8>H9z8;fA;)Q-tT%aYqR^oBADW+Q-AHuY2Yyze>hDjzr-We)TNQ#u|8axMhxIBQz<#|mJX6R_0hd(wWszHF zUJM6R4*>Yp^TEH|eb)^RCXcuR9~)9)+mvqCof&A@Bt^W|m9M%rb`=FC|LZxG#OHD~8naSQI68l@F9)yti zBc|^-2WCf9VcQ380eD2$u)pb|69qw?wMf&I5GqyU=?Hoh9qej#)hoc|k<1tfhJE?% zbx-ZV+uL#9Zyzd5lAqx?-HPwo<%<~*B)R+kKBw@!`y6v?`s~Op>x}uJt`TLYHTi4- z{i_#4Nd(pVJc-4Z6TA3AwM_ArOR)!W^pERC9f#r?khs-a(odE9;942pN7SlH#_@2C zL-x7GEDWM$pJBQtZk56%fZv3iN(>Jdav9K+ggw#$wapxOa)N=_CZG6Yp z`tDChIB0(`PT9Zs(T?(Xm@F6lnHKHBZ)KaYiXKRJ`Uo42dR^4>wl`Mx1u<{XOs}xn zTYnZCs5mX&4uU$or9>eNTCi~_n_A_)fxs&Qikz_J;~=xRtc&)$anCiu0x;cSN$aHp zajISLd`fCuww8Xxm38ra;7&XZALB^BWwI(wT3Bg%wKQ6GnM}=bVQ^Nz_%kCsa}kuS zvLA5*l(Bm>gOn1w(*KlVmcb*{rVTA(x#V^^bzGG;y_@QgojPmcJfGL|%?smcJZp3z zcmJlS6+&tl1m&RsnT&!AQn8$>&q&t%wJ&&wGwHQb0d8pl%{DcHbWkT*VvGo>Gu|9X zg3jl$9h2Y%Bx=HLrA<}zgSN}ds2J zIA`tmnyRmxRXu^P+%E7rKFG6+;FP8u+m;}Dau?n_+FY0YMk{@1!Xf`oHwve_Q z@b6hh+dlZE7K`$gknJqowgC{sm6o{cxtqJbi0kSx{oup#H(w;_CA$r(Y8gp%Yr{Qi z7pn1Ou}G%24<$gxldsT6i&!XNK()22v{Z1Z)I;`tTl3eqBrQJruNtWN?F5q)pP0{b zcaB^ejOTa}ZvKKZ&_I1U+Q1XK_=Ax0uw_fuUM}O6hup*Mi7zROM-CF{=@zbjvjV!} zVkv+AW}gUbOh?{CxSamwz$Znq=i%PZpBc>&2_a4XlzdGXBXaDPXsTu7JGFK)_DIJS zYHp6Ixj*h~PQrtUdC&=t8V8HHN$zbJd0SrBm@4-XVYK)|^ZZdo*IRXi z4Te|FMc94o-63o^@Z=*AZyB<4S;#rLu)01xbmlt2_@~6w84iM*PVgZBsAv?-0snH{ z+v$WP{Ti#`TK4nBuA{ZVYDE3X0GS)m0RXiJz@=c`ou5k&)UQ=uC=e5$kCOzBbq;Z~ zL={ckJ*=Y5#`;8%9A7&~*Xpxx)7U@%qnyA3UfK7mQ-Mw_8^WfZvLte!p89cOu#N(P zC>uE3BXAE8mUKAbJgkm8LWHcR`N4>ozaxbA$VfDB43>q=&?k?SA}=6BH}sU%COFv? zOb})13FjJz_+XDyIM@k3K*c_1Lu8~9^SjBS-B!X+m-(GG$ZM4kYO8I10-*8cI4 zPU!K2+tMsJ{Wap~cl-Jv9!-@o4W zs?`Aq0%{b15(bC$EY|=1^YO)h6k(KN*OjEKgVuN<1^4mxikuHg1f4ih!^+%_ROw)* zZAWEZ*CVo1O8DI3`A2@gceBPjJ~>yTp%_5O=yicPq($0hqgr+(oCBT>qfqz{tCGJ5 zTxP0&w?u>Tzn$8sDHBWL0MJk@lD-JyOdJ^My6gS@EEg||#{0w@Uxx{d9V(7VF1`ZJ z=Zi|%yrZjHDo`s>h@HU76u1{(vZP9T=tu8@&AH3B04*pdI9K@PY5dpry|AkY)i zI!z^)gy1{Z{|mMfr?~ofO>3x`Uf*b|!3;v+M|x|~9k;)wz%M~id1FpTVDK3J>)q9u zr}0qp9C!4JzjcOh-7VTC%Kj+4Wb2oBv^2@*_6bO;!gvR374Oqmq@%M0eIXxYXL5*sRY2V2n8V> z|H(YT7=axQp-blkhKJyjF7r<`ci(F{gyvgXUbk8qI%*7a&AS7D>fh^RXzm$1G{P47 zMn64v%`cqG^n6>JY$V@${KtikLESbd)!M?BhNI4IgD>>C%egh6N`s~QdZ@VX2M#=qd7DzRs z$N7Cxk&detIN+DZP$U`TeZTG0pK-s>+&oWx=fsYgD7mD){7PT1F*V%5BCBHdSPI>z zn=KSF9t)`)NKRc7@QBz}i!YW(Fed#}B*{gMjO>*9{LICRlTm-Wf4sj^ z>k(Uk|HJ;Ex$+0su?z`GAVoh~oWw?>U>YfquL}}q>$vSD!?QlM|K8S08mVv;8l3ui z9v$=Menisw(Eti`il;_oY$Zy05AkiIP3O_d@}aac3ma{n@*fU&RDx$1P)+3}JRw-z>cK`9)}(`CdX<+Tub4giURwWbXMduS1&cTBrJ}mgKuYFDuC$(%0osVMuXWRn+0f&MFrcq!F<)tLNk|_mjVMn z71(SRS@$fSeCckK<-S==UJI$ZZi^RG55O~+t$hwOI&5dE{s0k2p3&4V?8f#O*~98 zV2m;0Dk?umJL7mN?{yWsUAdp^&vJm9PME}ORYaknEch>n%TsaG6J$}J7&HjZi3J2- z&Q^*Y+^662B88*BA=%Zg&dW097y26>Sk#qp9D?u^U{oK*FOmTqk}-C2Qw|_BmJY;t zCuVtBiR)&t&4kK}25$I>@tVn=wQ9*(&%ay0-1^Jux6H8`WQ`XoX!6FBA8NP4rXgS^ zMS1&gQn2EbiW}og=2iuC z*joH-F3_oNlf+{@(wMj8!4raNf@{z+?mO&Ie-*VG@zN+ZP%Q_=WhWlaf zBvR@I<#FFJBM8wI_*=@A{-%4jA*c~->Ymv}>Y&H7aH>Qkbgnab;1PDx{oN~x~+}f3_n8#0b%jh}mf~5oZ z*H5;q{x+$cc7F3@>*-+;c`DONUniZb^r}1ZEC30RZ>f=&$ty7o-7}*J4E@0bjbx;~ zu);mpFEvE&9(i>)&K11t7m{^ z*O75IzcY%zgY1G{#ty&Ty80v}95%S3`s6?KR{hl@%K}Nc_zg7u?Y>x_*Y7Vw zuSiKq^NL>95u`CYD~|Z;-Ia4UmQsU!wQ*!E@riBg(mL&z!2WUF>f~ zU*poSx?GQZJT(U)%eqrI*6v>t9KE*Y?yIbO@KJbeBynOBC0GNCx34O>)1;0uV5S%5~p=G$B0w&)Wu zmm>k%AO~+Zi4<-_7Wr+K0EvS7?X8fCIOV3rrwf7J&yvKX$I`P+jhgr+2V$B6`2XY3 z;blhA2Lvqqaj7f(>NJyGGbrZ@@L5Rm`%3J+EQ}RhL?_F>h3a~8fR9Lzm+}F`u>#L? zFn3q*52X1jGq^eF5>CegT>C(mvn911LGC1!6eVso0H9)Hf3B$>BZKhSl4v;$gF-CJ z5WijFS128@PP3nH6!4k^CH9H@9B{s&>k#E|IJ1#sGzfAh4j_YX4hHe-V**wrgm(m@ z%enc1xR$=;mLHh)6_{?bfE4&Zu-^5Q*E~(635`=pR^#EsP#)yA3$W)NGNg6Gw|QW& z3y2MvDMMgQ8idpVj!d9?eqeGYfbety7(?7m?(m4j-8M+#;e=t$h&)sgsj&1Fs`0;a zE=e+o6blijrCWO|H<3Y6oCNQ{SU5%UY;(GoVS4i8M80xV+croyHNhcEawY@(WvAj3Ox9zj}GGWa(u03(8=cmNnv z=t?u%kQL2qoeq@)ko3dp?3{2O{^kZAI*JyUa4pd0Z}=PorQ2dUh~hk%_z1KT@a#4N z!bgrX*E#@X*%5i#XuS!54-8=Gnd9<+$qJhM$r-wmG+l*}W13QFAj?&O2L_Lx*5Y!6 zK~h@+;;f_K6=0w`}xGlj$JG2jeVF_CkHP=P3d3^z_OJRLx>NZnzN%;f;hA~cdO zLTn|&>Hh&tXn8C@ii$)D<-VJMLXrXR$$%z)eq#}I=IlvXnIyM1(MDD-Utew>IFB#P z(WxJ^!A8##U^^}FaV&a?jsDfAR=x_GZX$l`b=q(#Q8N(~sX}Q921U5e z9bqF=fVi5bqXmTZXJHjEI(-6Anqq`G`e9!l8~~*dSkSO+qWmkKtFIb}Max+5rWEIR zdBGCFM$t%DX^e-_YV;L&2C|VfILrA%AFysb`BKSMvEx8+X98UaJ!Xsm_#Xe-EWtS$=}Ob$@(}YvS8%pojK|1D?3hhRd(3Rw~4Nt$R|s_$04i zOw!|m*d%6&2^OH7zNsiidW|Nnm)Z%Sk{2;xRnwM3lHnWzKsTlhVQb1l)F2sjSgsTdlOf#@OpqnACE+qA>l>JY2%eTc4!7 z-fZ0z>VLqu241sz%|)>iG)=)$7Aw$PlqjFu9UY-^($e@ zEB?ObTcSWu)>d~_l*ufVjdvZyzhIyxnWkS1n00Rf1kPxu4=qA=UB4hOj|C@<3u7L0 z^HP~@^f(R)_OT1Ef^=_h<+Ia2u*u1R*$INckG8tza*RDMp#H>>x=8aGI z=bnJsE&Dc5UNS)GYyV4yyzV}KEg5Q{jndFD_-Ov((Ob-C0T6!es6$gqfLe(XU3_N9 zC)DGGKm|Iv8u;ldnnS=k6~CE#`y}av_M5<>9=Lbfg`QV7)e5TW8%*v-c5%Ivpm~(z zZai9yo#KXlpf%OuchVC$Ui#Ly^aT$$z9cS{X$qq>HonW2`HQ`tRS4cdyn)q-NT4uG zLH84s_XMVJP=_S@p#Ix^N#T2F*W7aO@f%O>xnI?9C0AhtYk}f%+#Z1ZUeSgrYZy*6zQt2bYY0bAs`{ZSp#WSyI11;x7)^ zFX!a(?Be#u^o$G7wxUls=;rcy73=D%h;8cNG@5|#W{`kq`87CFL{l4Y%2I_jn zky#f(F|+2QRfQbEv?I9Mu<@4S#lD7xn>G4M)en`;-FhP`O3n2v>Zh?|$KM^@9~wjo zjR%=*r@0)63P+SwhCc%_MD4=rcoe%xAuFQ&{kUZ;2*i@<4(q7mhon2pee#LyH z+CtbJB8-D(9^nyZhA0=%Dz=LHqSjdNP}y7Bg}FSuna*~5rsGl1gFa~#D+J;q_cg?f zF0s^3J>^z;Kh`!W%7xA^V>}Y6$CVS9iQd(iEReJ#YR$?T1sdXFb+>#Ff~)BMM$cM`9iuYWo@sF0?4!41%hhYSO`2B4I@|}8ct(#t zQb)QQ=f(ZNl(SRr?3LX0e0Q%TK>|7?m!INPD)~bU_XcoqXfc?{ro1izAcy}QrN*qspau)LjYfPNAn3y3P zbU%HF?*LUx^z*qdG20qH<(^y|S|Vwd;!bKb8Z~`f_pxoM@)zz$A6pUlRgcrU)%2&L z^oo~L5tKIKiF;CRXG(Y|qK%PfR{qtc!S43ORnN4UL+y;eXbhlkKGoEH$;&B;`9ndM zRgOOTikN=`QrJaZyEq_tDCxLb+ICIw{h8L|yW^B>i~^~NL}L&w<_*c%NPnIwG2wqm zfv9IVV$83T|0dg31s`$zmUmze2hBdRJZV7>j9*9J&rnct6#ydLv zjn(N#&t7_$u5oV*8Q|`naX= zos2MMW=aHl8DE&)w@lmW!F^q6v(tE&9z1^h35Kg4V?hw5i7za;z57lpR4xNNGG_kglCgEnUq>8Di8sAYJ^ZyT zDtk5~Wa7z1H!hX~DLKZp0tEID4PFCOe3~0}NJ_Pfkl#lRR=96^lZe7fvHd$gCo0>m zALugj$aW4aGZ2pT*Y3QJk+Ihc^Z!zg?|=HZdH&a!2xwU(tLVG+R#WH!kADT!=drkc zveI18=#Mu*$tX@!YkcAPA7IsVqQPH43QO4f^^6h){<~aNN!3dA<=&}1=iT?PDGL0< z(t82`g+T!Dl38A&)A?W-9yOXp#k6te0XrDWqCYWa>}|Cckg3z!nG*(3A#&o6|4i|S z4TJN3Qks5};z9%~Q}>?GT~{>&fU;y=>CAz0O;2?A?+zYpVBmqvX-o6id~5(PMlQVy z-v7rTYP~{jisZ)YKehIDz|V+kMu}csbMBl;som9*va1V;R}Xzv`@08>;N$w8vq5c) z^4?jC?0q}oUUPR77NX!vxBZ$}u8I)C-C1n#w2~lT?@t`we~?k0cdrS8wMHt3TG2vT z7nlDFZj`L_w;RE0DhfkIFa3F+^B)Dzw5>kPHq$7?^cxE*qVb;%@i5BQB4Qbv$GI?= z_Jnfw8;n;ff(a;7BaRL9g*Pb<7yuyfy{m3`HA!$-Sz_JJ10YXi?E_x%DLA}3xNm2I z;5fm_%nI&fwkt+$_aBQuB81#)ZtvAh)I-3BWd@DGKoiO%ftUqyPA~H2@fR0YWZSc8 zmsp)qyMIlUGwo5t#uE3ZZulb>;bnCIUrbll+i!7IFU3O#2Ts2Sk8mk!9zYM}XYivB zD>~7K@5QdE4Thzu4pcI_voF|Bk?W zLbh^l3aXI}sEh@0fMZqE7;zFnw2>qD9ior=k2oy4Rleg;GAZk5Y&&rq&=K%+P5rJ< z)=hJ)cG2VaSKI$^*hF7kh$n+kr3k3FbUE=dukPk+e^nacm`2m+$LzpPMK)h4tV!pM z;M?NDC&(1FJhjrr%E8v*joh+4xBm&hCLy$5b6BD#$92mX)3Oz;6d(~wj8C(R1()A>`UKnz)5)W4vi5Zoa*&lF0FL;u62K z-iyk@reOf=>bMYiFOu-;%Iekk-a*&a`MhdJVOPkmJvyfKiBd!@y3|Tww0Ds1v3<+- zXZ&Xwduz`MU*tFW-JuL|A5t+5wLGW7%pS!S`Gj=#XJl-^)}}!Sd!d(QH;rEJyokK& zS3!7i@7MfIakfZv=ee^DUvGyr9Cjq6fPpeY)=~Gnv%T;YpAW(1d~r_c@2(*Qc*>_U zUiixt04El`O~H)8OLhHcew~?cjJJJwBY9bU`R4shkx@xyEuga zi9kjvqYbdPs0HN}mcM)knw|vSn~-kK^}4gSim7wW#@wlh_rLqj&ScIZ4AT8dYH#GT zma;CNadP>Y3w#FOd z>&c6*arndSyto^NSCR4|It<^FJ$By0pPGE-Dwe z9L>V3B|m%?*_5`~Ej)*{2EHWf^MOAw+yfZ*Do*Q~1_m&1=q*>tXp%w?;gS$cifqG9=@*qP-5 z2FKAkjRZ4U0-|51GV8|m5m20i=QN&q4KMb1tKnov(goF{<|!5nuRJ55!~-r9lB9f8 z3Xc@yFg!geNU}XjjSLD3bCG>hXZdQkBfX}Zb-HzUs5PhzqISXZoFh%r(DMU+qnr_% z-+KNIk)Zhk>SVIkCX>xdzHTIXk>@1Pi{@AYIZ+2V#VRrP=x9CKCg$FD1_$&cJsC+d zg~4cu#5W`;CzCFDV)wu*#LVy1*`g)8uGuGm87uIeD#IGOd-{vYosj93+y@QGAUMG} z+PI6v4C$iq8Uqf(Z>II}QuRQ>#GBsf^CuH7&~JF=x%m-016n5dLWkP%`vJNF=VqRn z)R*7+hj4$CE?{_~u_Wb8t@FBCyasQ+TLjn2b)i}k%H$S7y>C2PV==1ELO(5yOJoWh z(=TGUnd9ReNsD;5Ygz8|AUtz2FM?}2RYEkEQ*@d`TjxaTs#=p;uZbnuHH|JYAn-(? zf9~5ou$sbS|MMG!Fpk_Ig_<5Fs3)LYN5mn_Eh`2u)t0Ck&jWh+m^ZTD9ehbR8*|Kg zzLNiFG@_{d0dSz+a_Fx!Hz{#oG`>lb`bUp6Sl(?tvUpeOtX8Mlt-%<$8pSdA>v^7p z;%1Rmk`OM#Yh7`Xe0R2@yLL1BoHLbiOMf$WbT(Q@o?@-I1K|-9qFneJhvwQC#wq#7 zXl~KU#V6hpFFRhpKlw*7s@wGCZaWy@DF@XZx56ti4MJq!lzlUr!uL57g__Lk!3wmZ z(iSeTX#b#(o0HHlvy!Mh^;?{mYMShw9_DBm+-h9W4&ox~sYZ<^MLRnylGOSWIT^Jeedw|W1>f&JAej3^t@W8hgJ*XrElo>(uNBU#MBbNxit6o?l=5$Rn; zo9;j{IBb{s*MuaBD*-rN@QZwW7%jj$g8F@WD-k_DYkOgaL*x6@Fvn>ZuSefD7?oRZ zPLPK0dj8!A?my3`??^wY{u2L3sI_*rYc|>>yK>=M)V*CID)4u&p6bh3QI{pPP_=0) z=m5}G#!91vgI+qj|BkY4uSP|FBJtqM8y@sT{hH^xE>si3PK3-Pz328i9I#aTpRD$( z6-J}_P8&{~JW%t+m5&`1SHg;oMr1(Qi7rfJC?X1LEr95#eJ_&mA{ODNbF%tz^weV@ zrA7f%cmh(uZs?Cf`>G~{sm}TcE*QS&E{H02il$I2p;)P&WEr)|2X~Y~vm=0GO`#oU zrpY8MuBp!705nSlLfukAsBpDD;9=I8BRXfE)ulYI%zfcrCQUvK3ixkZ2Y$kpSkd?9 zzxil?CWGWaH`NiFvQ5W#!6&=a&Z#K5Gh%MLgXNFat4;?&7;96&? zd*=F-gCbM`&UuCw5H3?g|A|HFrot5i8dD7*WHtmts{_#@hVLJl370cIapvbP7I!~P zXN1Et1}fgp1W|$0PvW#P=$u$CB#WsRME{vld;0zfMIgR-3`7=+kY(!vSODajoS9L! z4*@t===h()J|1xXf-0T8R-`v*RvBozbTX6x=V9v2Fo8n@nj_)x*bDccCs(+>Iy3{y zGJ#n(h|}PdQt_##Lyg!x9hrgV2nf@jfM~KA5DInVqVaQbm2ZhJ- zDQU)0NV_Uo4UCRe=2S0l{YeI(Pvd&35EkT^g?W(1!APXt3KZYo@}NLGWQ2oz+OnJ6A@ul)xO3JbDbgv350`8+y{Phsf5#+GOU=WshIt*$1eD#t+gj05 ze^yws8M-0>1F(Ryjnkoh@b4GsB=f`tAx;kJ8Nuc(k4dQ)LLA&?AAm#At#B+3ku5R` zH?E-P91)!n;;fhl6`zw0-ewjzwGBW4j*Jt--hvM8bPj_=&lzkFF^0up0@ATLIv37k zt8ZCQcnDmQ$q}X2b=D+KPqjM4aX9k88c-NGg$NSZkOBSIVmu)lt2h$n`-Kv@8tv&? z_l++e#R-txVbB28)e?imxMUC+rY2iOM)pJM2=6u3gGZX>(!xs(m*en0WeFRhZIDzj+`+`mCrZ>Bw54M@%@g#{4!eMn=)mM2R{Hh#)BLBzC=e2856^N(Cc;}dWt);fx+ zV-v;jJavV%q0x7iqu(p8`nV1^o)Szu7410^=|G0n@{h?)M*p{Lm1g&)ZzTFZ6aM$X zCw!REPvpONn=o(I^}ZL2vaR88qDGG)uKu?SFXK1O4j%7Pw|%t_|6ZEIw=*7XX|J9z zBG%f4IM_+3){0uWNSy7P7u zh;%Avlo04S_2c%daFM5S?WJ5>6Bwxk*jDq8XVexSC{?peb=k%r6 zpu)Jk=qoZ0Y+7DvT3YJ*KPJBO4=1mio!Gg+wjV*mKP+F})N^>a|Mdr5 zV4jgb9rBG3$K5jDYFm;6_oqdFsIaxs_!3fH!B?pKWZ=@JSGHZ7T-p3~VX%c#`T2JT z-AV}mkwfvdB8~Bvj|(#ox?wr1`z=~_g>mTV_Ns?ZBk1B3$*Te|sqI$n{rFSk3|Z;V zOnrB(h+Dhz&3ehP+pMshcRdwC_^4JLJ@FhL_Ynpn3JwC$&s~DTKdT4>{YHyb&sljP z33nU%nV*1U-~+D45m93T76M&yo_!~M?8X;(USvRYTt40(0ATIHKluT0W0c7gTa?Kc$tHH2pU1 zzr8M_KJK+xGafzVO=qJYV6Fo0op2y}YD?orMf&f-hTjUWe*dVWjW7H%5$2znlUdbw zP2F0VdW_)0$Cz&?`c634JBwa*TyYZjM7;PtyfY;f>fI#0_V3wRaiP!kqSfxxE2h7G z5BfX%ox6LsdAL``70 zEIGoDkSI$a6$gPW5o7xI5DqoEVWk}oE7gjeQ8H}Eq-5fSaZSt!NXH=QOY)cjHOw}F zsa(%0 z6@Uc~VGr70N$c8?DKiq!s;*#|z{au*B{-s$geNF=ADHg-|R7ZKpI2Caj{MFxRo?aw50st=q zl{b6sktI41)Qa?#-?6saR&CdeB^N+qOP{n@k7N(_O_T0@@9PUk&bNLk`R_rQc>ANE z^j{`FUaWn|sZy>tJ_`DmNQq|kU!D~b?KQ5t<>({$BF+IpSkX)Y$aEe0XcPr51%!Tv zCq9A2go5E~>+96UcyEZ{zx5Ag?NCtE+K|(TX+|uR3rkR*Sf$g&yVm4Rx((oK&vIG$ zYzPtPpv#*pr^avUk?4tVuqXgffJoop#?K{hwrYhzMS~ke`=IuEQF{$4G%EecJDHQb z2rR{Tk`g+Wp+;e{Uv>ecm`PFx?NS8ucU0#1m53acpYES6E&*+)3xFD@8mC~Iw7MF< zl=PkBY|r|$1U*%UjC zYVb}Ll3`KUJBTu_km^Jyh4F_ST*e%lSO1n1b_1Is$=}#M#H${h&G(4n-(x7}bghnI7Lj&ctGm{kq z=yL&*bg(#u$#))_v4-}8uJR^u2qFm#xX~#l8^nY4z36r3>M9$ezD<>Y0_73(=!L#F zSk1o^a*S9`sXPl29)wh^D%Z|5Mg)%n^dltNw4E>WO%Oof6CeWP_(IFJDbquDh`OWG!Bf7>2rX%0nHfTS?;*Z*VLaQOx`e&#hS-N z$2yl(eJ*A8rwhgp=x%|NDL^5Rl0QNKABj--UiST@KIM!?dCgPsWZ$NwvKV3IQ>@6P z#bm7Aj+5bPB38uXia4;4w_hCd-X=YP^Y|4G(e}RIcAM3!wmM#cQPQRnQXEIDdP) z`65}uxQC+P^lSP&lpk@(2lLNzL#b~b(BAip)fWk>IFt3EY7W8= zettMxQr;+~c$zAZ0f6o?A3`Q3IH?6qF9h3!Rfa(tLwLX|7r;a`Bm5BUb7Y^O*q7vyc~y3`{02=`?jN z;nlftjSmfB)It>}Js@u9k;+YgQwNR9f8of{{Ey8vs}r8GYcAFS|srNrLze> za1rL8*3Fe^oJc^d6?c4+HHzPInnL|>jib2rpAO!2J_VE^^KzBH5eyb;RKD>BBcrPe zN?(QRG&qE(NxJ920x8X(E(Cr0zObNFX?24OQFe`GV2xu zUip-yQvrBZTP>>gQszzkGMf%@=EO*V@9_M$YD3@e=f(y&L&itGs|8SU2BGU$;1^f8 z1cJ`$t0*7Ginm)<)eXH0u>>66SSg8@D@T64OI(j(99(+zBlor+#Yk`8T(hp9F(^0k z-WSY)XnOsGg^!WN7ExMaGyiP0-Ta{D$TaN1V%)v^H85sok$g zJjcPF-rvtHOMV7iy7W{tqyP!wds`Q>G+o7MT?ow?%)TKMba@$&@Ksg2{q*O!g!);o zJ`SEmbNs7u9sN@YUt@1{`#B}R$)dG8MC2dCy}r4gjCc|vH&_{zJh)2@+}fF`O`U#m z=g7yj^;dUU-ynPvK^af{R37b*24wTkV)VtzH`#R_dDzWpvi0kV-lG{9(D%Fl!D)!M zYmj$^=0JRgCX7|ZXbVFNDr+Oc7LcGlZE1Xp8d=|`=>Csj-7 zd~d{)MlI<wxTy%IF5(1Z>=WdIen^EK0_?NEF9MtgYsOD2l?FS3u$q1l7 zQV)cr&pKFXq6`61ZPCo=@&0G2qt7VI&xkg{IZHa!TDGSe3@;slj1zu56#4kn^U%W} zt^uSfGaU5~X;dK&?l%$}A=vgqa0cJ`R-=t#Y^x5*0wk;7g#Aib2kKydQ4G9iX?n8n zxg<^GSMY^%PXU3sA*J&0_xn1ZZ&Bg)pF}~%R5`J~r&?5*Kom^}ZqKKv{ZPthsz|N5 z*kJtksq1j-NS)GnE$S4!zXN50uja_u)BBRT0h!DavWm48aL=d_wk!_Jap~s(gQ@Uu zwvb(tDwA>mE&m2rX;EW^J9Il0e|3;d8#RJb5h1``JJR)SNRIN%Q@$f!!Q(_u;PkEt z+C&S6FlXP2+jMw(H*g?yCsVqAJg`IuX7+HvuvKF|IlA2@G$u90#DRWQ=M6X8WFXh% zpFMLv*SJrQjCQi?){zsR&Tq+>(j#0)K+nUbFD`w!=cx@xvGZC)EvDN3$I*HCQ~CaX z{65P$4$e9DvCcX6NII0gj=i_6sAFVBA$uNMc0yA2o*^rI>X-=$QIg6m5fPPDe&_r9 z5AMhPc-+^0UGMAldOr7c^aw}+bshWArH}lb!UEA+?1Tc{cKtpbK?E1hHpz0u_aii# z;-%Vu{k?EZsr97)npE+^^<4-X3+Y1T+9OBQ6TiG~t)(`Jx{5;-zt#`ck%Le>n3ZbD zXYIW0poL#+xK!cTUdD`JNlvYHEfW#anVo=nR6JRButS2MNFqy%ZL-(g1hxshl%~?0_)erh1)$DkcwaP=-w6;uBqJzx#UjO(#}V zi6k_B39EFD-Z4QmjS3;Pi9@=yzu0O^^`}R|4g)labH)`^oyPQ-3XR;%Yb+3}OEFlH zu_?ctWAN3st4X=} z^(?P{`kZ$J^m1pzHsW6@0b|j=HzhgM*a#c71H{~>$+m(0@0F>a5{+#(ZL1BHH$O4l zEzB*aap^z{0d&5`OhAJ7pa14|%{`qiS&(GN&p`Aixrut|lr_rvQYmsfl*G*#FR|o1 z$uW?su-q2FdA7cpuQsd6K1;EjP1*)i#%brH)|*cA-#d^VFH}4?$_g;~TUS-I;QFZ& z^XE5rz-UGZex2bMx#EA{b(E*JO3p)nN?h14-`Q8v;Ws#MY2NfzYH%)TJF0&9k><2K zBN$cMw5^s-PUi|dfT+HwKqO(%1FBRbzg~IrkZEIZ?Ru_rBWNq*u7if2P|iZ4z3$Xw z?P9K%ofd+2fWz7ZVit2_?ESBA=!t*vpNTIxx#nH^67&>q(&TDB2Wgp2;?qev(*jL~ z-bMdZuD$u>^^3G!KdVP}qJoJ!-sY4wH{Xg&;4j8Zg>JiYLNz!5}Hg`=>vW%aGDWn-TD3^f(|W4yJZj$>z;S1&-n_4LyYh}299Em_Wo zgQML%wJpA+>Jtk{f^-y2){w^b;6}LtGG1CwD6#k`6`^!4##|Fh&h#Pe&92?-Sh$?_ z^M$+{wO|FZ>yl)o>FIQMp8H{fe08GmyAi{UT=khNzgUKUrPdl$$;>pinYFih{q!Rq z5;2fr%&lFjsh>flma53G#B=SdhTl~BGz62zP_^KjY}Nn+F&HX-1=k{{PHzL=yeBro z_ApmFR&pgn@?`GCp>`b7Q+r#03aG@&?quZ`d*~F8a+)mhKk!>!`RO~9at`IIFf({Y z?{lLD`3Qn>WMYNg6w$e0nuik9JueATezAAP_?VOn5pLYiG-kpm_R-w;P(hLSf>SzCQ?@8spzjFc!5^QIvU7C>Fj8QElv>rzC*C zQ_VR$aEJZf<#le8FL!PRIGtvTu)gZjP2SxsOF%7e{e%3B9#VVUmL`s;xUBucRs9YI zoMV1D$4prp9i*DKOEX?b|FZb#_Y3{?G$eh;m73Vw?32sHG5JG{?!PU1LS|>=-?g&) zR>M0Ta=q(67~|#oYM_b>uNNBb=@R>s691aQgwt=B^(BBL$cV|qbH~E3)?jLZO_~p@&Naw#_dnk-#?CW1uV(ybg>%?A zyl-x(4#n!ikmQ!J>mWS;#?zqNPn~{hMLhpwJRTy(wErl29!$)2{%#+25P#JoX@HKq z=CB|2Edi;Ka^tz&BF0bdwcJP?#9!_lE*>1`6>OcpzdSd5mF1#EHbg9P0>Vq(?Isuw z-?;A}1e%ika`Yib2WGM~SpPU2HHjc4>oV?dSGzf+=W7>57lo?_22P;W5a!BWP_FxW ziaz1?Le!4qicnROTZfXZVni})ZuRY+n%i%MFrpYDcZ0feSA&;{kOowUx4HN}2(?pA z4vkV7EJBcmBO5&UNzjBt7mo{8pKS_^#I3tlnVhqU?e`#$=+4H%F8Z-=Ir{YWcOCn@ zy{NGA>e5ebx4GdqR~aYKr>^b|PUpYgbJfk=y0%BxSy%Q}F&ow18!qd7Cjst2u&ccuc>`f#UGi{fyz}ubvBaaq00ZkMW$*Yt zBI?R{b_G|ZFJB$T|B@3&f(%z)2&f0H>S+oJ#TX_BM>YYKERJ2e5jJ_pk=&X=FlJAjQ>ZZwTgWd>2 z2L4lTD2*}aYlr`&7CphzwXjzwy>0!4P~yb|cSR+ucuknKaLTjPu{Yo3+Y0kq!(uj~ zzJF9ACh16gXz9*u3zl-i-kZIKe1~czQ)tCm(XFr~<)&PczojGA>My z?d!A1BY|h%IVI~T?%zay4u)KInU4Mk_ChG4zN<$M5GCi&{7_pay}`;zq1qtl!DRch zpfmy*{-HN=PbIX4|KsKRr@vno5KCVu)CZq58A&W}nH8y+n9SAF0Nv2Ik!9uX*CP;k zoX>(2d<@&wqrh`M+o(%Yb5urxk+}Be{PWC+Ydfr8s4f>*LPTS8!;grXegyIKG^hV6 zpR01v89#secpCCF>JCop zj%}?CGgSb<1`A3IGHu3^cZ$VH;FYJCD1zQg;Rk0vGcQHUghaV)qX~jVfrkth%s88FE>G*F{qHbuz>PD1gS#vPpa} z89*}zIk0TpWgKXDT@|tBFD|n0&23hKv2>^t9`#xBvQTAG+Ulj%VTWGP*z<;#^pJUt zA_CeQo}^neUNgNvG?P;TGFl;VT#hW$yE7p&E0oOf@0g@V|Yl8moE zVUsSPKNsj@#wCjI655gZ(0H-S?-8j=^VW=BA{2vlRZjdw`~mB^IpC2K5HY$@qkpP- z&!$ujxYcczOsi5d*FHq>vET?4S`p#w37sX)1=2C|uz4`w4x!8fu~ZXc-^+jr6l|3o z{I-9rny$nlhS@DvkXKX>{6LYgQ^F8>tFJo1=J)zD)}+17Tw%iPuBB)U zMJplyrbA8*b863(cyivacQHQ0L34N7y!OoQ|9+XI2>H|*$j1=4)@mJ7;76i31GmRY z^u&!G^a@oNJNk>3m9?dXw0yVx`BMBvT|1n%9a?>IAU;5iLR;3Rz*y!cI$eOp3Ew646l)3=$XoHZ7HMWl@&(T{k|^S;)0vQNI5Huh)4R z1!C&8$z&Xy2`gq>W`zUS=MRH)p9EPxN+CMl)?qLmqGxp>+XssR8a`V*;-Tb^j5AN) z{znM8@Qn^?ejN#N@&-LHMEz>~S~uk-VoVBMP%EGs(HddO>&hh>jqKI2-q%^mCQPry zC7wUB-^5Muk|rGj@;#uwKv^rB>Xdmau5?#w?4_vm?>qOR)s{+F>65}3$*Gl_@$_FF zq;=Eqv}f|OW}u575egGefZGl8C)oOv_F{~j^nGzsmbsH1C5l^=xBO3Jk?giwp zU8{X6)lHYeeBZ4iO~i5D>~ynv*;qOlRhrN7M|(iwD92_SyM~=zHgTk*VrH~z)KBj< zoq~eEw*%kvy}$RO7gHO=gGh#*_-B!0yM%cgd@~VsNqRgFqvfT+MSU? zw?}#4KZSp7{uv}GA)tbl&J*Ci>7UhGxF*#lDb7SSJU=%B^j*^BGylH3Hl`C&WZgWl zalU?`ZeoLxa63senUPI*V$+WG;a}gG-1WpaQ7aM_r|)M)1eCS1wKI z;UyvIx@CGohIXbP%?mvd#}mH{^WGs;2!L7b^kq~>8$?Csve4yf1K|$LJL+Me`R^A( zue5+wZ*9E19}~=G#vtZE3xA8YDwlirN9pf^AP9b}^3M#O3F-RU-aG2r#xCfBZpl+p ztDWul+DQ-*EjR>(I9UDmSh12q<_Xkc z+$6u|Pv&&SMK9i0K-nyVq`rK5tNHaYy>Z`4;z;)hjOzbLXawYFvwvTZ`HQr2B2MNI_`@iDu5s!m z-jlGGm^g`#&K*Px!$}3tlCqaK-Jx*ni|Pyg@rp7_FCAAN$MiS9dZE)yy$%=s`j+&V zZCaj*j2$A>FM&Qz?7QR+YtyEQ1;8gHgM{hOfYGiu;a0gUE7$r5ki% z675Ic*+{WCNcin@>xV8Gc4bP%k3h#a`9x9&KSd?A6aO4g=#eciBWuJGj9>*52gPK# zBLT#{!tlxP1}@S$`08}W*yzM9l4}fur zUWmxV*vjt*T(-Pk?vo4=k4FbPbE@>i9bGd=pdV4ITh!*~L(LB-cDSA!5J<7z9OO); ziD5@cV+3%WFpj6eN_nZ=tro+mGY$3$NL-*1kB~mS>cko@TWzWO=T!`i9W! zF>)MUOyk$k-Zxy!(Xp9G`B#xcP(^k+C=3A3_JA>ZJ}Juek>sQez%pr6c!Phno|)%~ zg%*W8pjm^TiiHOb;#w_uitgCUxd`!;&oxUMGg6sPzY|Y2`0y0IAA5X7bqhHJUgh(m z*DcEFCd5vc>$uDLN~8c677l@>gwc9y?eiH5<-FlDLMEnK;Q${P4R(_XI(Fth7bkd5 zTE!ivHr7u+u*rQd09vYn5OJk55*Fm6O5o}7>N6{Zp^r(s z^xgY+bxSeCm7Hks)-H8^rxl(L!UxA{INrGXOp>P_fDGk;50@yrhPcuS} z`P1eTJ{gpF2};u}x%E<8_DIFo#$+sMM&8HcwZj`ooGHHXww}$9yFL}@_Q(6bLVHsL zK_t*jY4YirG5;YyPa~jik_krgFJ}8|lQgy@+4Nr`xXvU=@OBdV;M3cQU`MKEMl#x4 zJBuw&^Oh$slNg_FS#&rc-2uL@n{jzw61#R&!JmZr;gccc zDQp-YD^xQv%y@~ELr}=}q_~Wr?MRZsrSwTm>Fq)d2W8CKRE^~~4@wWl6Uva*rGx*p zG_~MX56GaQ8OR}-_qYsmppzFm{)sRy-;!y1-WpU)Rczdq_7R;i%tcQ+RZUW7j|` z4`JkF4W6Zb?Qo`xZyWLRH1J~?x5V{pqMA6tuh&BOojHSz{$0j$zs4?U2s^pFid>hf zOrmRu=WBCzZ79PX_h(AV1x~^68yYShv3%Zg`~tx)>ly}LZwaIPJl4w`NzOdp9Y&J_ zV&VBNtOAMQP54n~Ea|uBp0oQkP1lfq>>@wDr8A(<#v2k${>Z<6HOXxmLU!WtMaT0! zb0)t8;jL%Hp8a+g&gbjHFLKSN(pJi@dOL9$)chTJdQc!jEdWyj*rYunGA7>*|x2{*PL(m4z7L~{;;@PKf0*D-%&Wb1OC0U9R)`lt;f#k-{iB4 zx+S0=ECH|)cu!m2?efPj-;a8I+Y25V=l{oM%K0AtkXp`N^ic+O~MI!kv42i4Ugz4=&#+n@<)8gNI~On+{W371BCF)1G#x ziNfDW0tqT}Y4_$6A9NcO`m2wIW<39v^!_koSs`;hH1k_QTE>6_19VcXA#?mN{jqq` zt9x0nurJukRQORgjW@y`c6Upmv$+F&lO?Au>u%6|`d>SPpR(EF4>CT6-cvogr=ggu zqxk3xKZ73tCrt~t1}x_+I;+i4ngtg7l%GE?*WoIEAYUTgQ=xiXp`lcnXIJs#SE#2$AdFUU`WpZ3|r>8dKxRzb9c5w2J zELUC8ab1~Gz1~7qg?3HVaeb>&LkBl^-oo>w@P>Y+#^LZrd|`c=cKJ)Crn&H@vYv*A zp%07iH?1pGMXgC1zvCMz*S0$ue{nkLQ+^T%mgKy(!sN@6CnH&9}!!l=-L2f=FQ9rCfeeUIXgRIi*gcl+HvDuhVz+KjB@k zjtwwZntDM@;lTBR-c0^g)YKBp+pQq}p__LK^wXG57s#Eblh?dVw$t>ssRKWF59Bt9 zAB%++k5|M!>|#%Df8R5!^sD#VA>rtQ%f^0Rhc=;{G9*U2;xnYcv0{o?g3(2^x?Z8* ze~9nVfT5_5{Op=Rr&UkCb**!I(gA}^k(swO#ST;Z#YNq}oYCoZ47d}?P9J_%Z1aG2 zPc#A}nv7Ho+mxGJoz(`~hu6Dv6?FRZ97k*ijd`ho9E${-uT4EO6%mo3Hr_ENm(kaS zb;C#XCmO@{yt(MM@JEZ|y>9rzNzl~`ikAYe{p6^OIDJtSHi71vC>g4McRVVtWz4Q9 zI;%4BKGJBB*NVa}O7W1_?aGXmPwDC#-^Owuh2#1fZ(0h;9#nu>Se-8 zHSDWCD3Y*otiiKeiX@Jcx8A(b_&BItG%F8pxdB3(zlZqIh?)IzJ~Su9GQ%?}4EGXJ zyhNYQhp-0y7nz{i1b~&!_sUI_^6Ggkt@&1 zORIGBpN(xwR0m&KEA9f0FSh8DoP_{2o~uRZ8PJxY+SAJ)4X2+fAMj(t+05TiUi|Kd z1H|!OXQrNqwYyH(#a*ydX|Hcau@S}!a`qWQSAs_3xnKf2A+HCu=^43YM;kP;y95^B zsFiOg_b&2f4AVqa8fe0Mp%*OMA@_NOHcXq}AEfv5{uQdzeSQ%0^B|VkDbNp&ekv;q zWgO5D{>3j<-x^f?-7M{5?{O>+v2)C_)HJZBt|{evpAxuHb@ar&&v=>A;fAZHC>pEZ zkYO5T(qt1TohwuaS}d~e$^EjWLls>Uw*~t?u)oImQv9$CF}A+S`Y&6CjNWIeZZBQr4IIz;r4_$624Hc=XUBZbIBUWyscnb3m?2WY$ zBb}{EI0lNDil2Wz@jM=F>&^Q#;7j3+L_0F}0pSa(V8fi2Ps@N}?LoE`R8a zL90Kr#;63AU@P^xcalvfrwu zu!Vp~DS#16B(47kW=vrjy;f~h5=u=aX)CX?_NJ7GYQ|GK_XT+X_l$AwCEcJ)6Pi++IU ze`nz$Ieb?q92wg!26k02&sATdfjoH?Nz2>7~qhkXBl?QTB^hglVCTVclLsTr_|AgZFv z_RspEH;-&qGZ1Utu37Vcv6b4C^DTp@d;MPP&d>sv8uQa#S`ydU(A+(Ro|gcU{;JYr zMnou(G`J1u01%MGB?Qp;xg)PHvL2>-I!SI*AOL(m=>xpCh;e$LwXtyu_+JRO6VN9k z>lOE(+`el3m-mv97Uy3v^%G;3emALb%4~w5-=J??#nkUFX(Hz_l$TB+X~7FS(=V=l zxcT+|M2wqVO7lYS=cYGmHYylj^hioBT6JL7?=j%{Y|NCIl~9E>{nx@uPbc$vP9i9L zpO5mH!eFWpl6*_M!+O zOD^4@NBdE%x?>+i?rQNwSdC&A6FV7WS0Q1}2wh|)8rO1zH^|CDS(0$UWi9?{*%j)B zVMxzxlWEvL7lX&BrTF0k2!3N1@{*0jXj&!0!{=8FMKNctA8PTOQ7n*F3BS>TR*{Fp`IR*R+A8wgMRRR~O6bIfeR{kB(H4 z!U|+_K?=)6F6ZS0*IElJ+kG>%t4^g2p5G&uzGg>|E$_h#tRtyqpnNe3dPQ(bE!ZFO zhrZM^w4qw|tiQ9%>xu6_PfV zq-3)`O?~u*4N#Jg%L*DBFTyZ$v?2&8T?k>Gcm5PXr8;K2Kr*0;!Gt2c+2NzCqL;tJ zFCc%LvzrKjQ1hfqGGfIMef*F-#bl+0CoOt3A~ce8hE@2`&;7dnrsP#G9B5?}>sPLe z4;4!X3Gq`Ol?~EyV5q2qs&ai*YC+x#y!w*P!0*savnxh=A5UAY86w4aF~Z~Z4%eHd zqz44sS6B@E^6pEPS?df+aHy;y?(%A~3;aD~FBi^ zti!484Htf-zUxCe*d|C=i!wS9mp~>Y0c|w{3g^6By{gaG%$GT^_&%WBQst!rZoM+Bk|O?! zxO8jE-%KgPR$ytj@i*C+BPxN`>3t;;xnPk4L%4Kcf4*RODtIS^CA%J}RSN!Zu@2QO z6czH*63!-&qFk3M=b2%M(A#*+s>=XhCKkGnSqzqZB1(k+XRa>dd~r`H0B>4LZ+v>L zB=Pzno&LA?tf+6eZ>D$K!s2Z?E;pXlb3Dh|%NF`)T!v!dktsY~t&2i-E)@5PU-9rNnSp&)2f!>{``5OvMy2~nOBr07NNrP1}UW=N1wiX zGPDi9-TSy7FLn2pHL1d1#YZxH#y2DKo5HLyClj*b^`jQA74_je)>6?If4faQsr;{2 zJwduP6{%A`%3M|QUYgOmcBQ=f!wWH`+X9Ji#cGCHq_2&;-#46Yyn$gCyT z;1_CPqNAXo$0_)RE6EBJ*rQz#&*8)0$)O|70U?^LC?S%SV+C_I2aVcyKE~F%k;SD8 zM!^NzLF_0JqKwR=p=WyWs5OGtMR^M)j%%g^=)XV^OqfwMFvQ}Lj*~Qcjf%1wp#f=bl;CogrJ$2zS52^vmn(uTif;OEYlZ`s5!FN+)Vr$z5EaZ%V^_QFK5iC*jIu=|O^ zLY~`k+>{#6xObrO0MUMP5S>Ptct9BN7JVlHgd(%Bxgr#trH(OfF4f6->tTk!K;IC# zKbRd%|L}==T>LVEJI%JIf)m1Ag1t2Cxm;Oz{M@A8DL1{#uCvHq{c~?G$Yp*n>&!g$ zETmkjxI^|oi#Vmdd=%#XVFBSi`MOv@Sni0tM4eoVD4k1K`fIG|VNLq2Cw@#{)04bR z4mJSNQi5i{Ir^ovU$e@0-)8g!foQ~o97XHAum^R_5t8fxBNZOWjAzk_NK|D1LqPu_ zGOK=h@R{tpSf(idR758mz)U67wxZB-fLoP-LsFU_2ae$)tm$h?n4rI%bk+^`K*d#e zgYMvv;7HvR)SYT}{+Awk2u<7C5HT+-zbyN;`5c9V9HmPv&56LGJ93j0H`-0y$Ixq+ zvq7gIxWEV%zw-~jau&TyW)O@(#unB;6**hUyZxR?t^$Y%%9PE$@lnA}Q{Vf{xW@U~ zk;ESg-IEvav`+L%Fi|2nqR)p3hul#Ih%%^hE$%hJ1`Kz)h!H{y{l{;7&s|xU!D@}v&D4_ z?`^&nY9Ag?Dq{ ztu&zF5y(Wwzq0o&ECf|3n&eXCAf?(y2{A1LwEyN&DhPUt#WTc<8_F=&6YDNJAm*1{ z1@sbh?e4y9jAXkp!*`O7Wms=KC$b8$nc`Nz8AGom<7%MAka=fq4w zdI_;<5~hDi=(|=J0CT^8y(CQETVf#DVa0aaDEzKjy_`XPZ9@L$y+Meu}#S6m*KWV4<2I@`T%Nbq8;K(VN}P~6*wyg1KT&c^TG60MJDoB%#Z z3#7hO`LAt>O*Y%H;`LBOX_dSE!ZFYEd^>WlJ$8U18RGV?p4n)~P2wGDy9yKS()G+z zAb8JZe~jxFGXL18yBhc8;R z^={SVOhZj|1-1L{3GUa(rL{>vOh4aXl4cAQB8>o)H9USOns7updI^PF1iDa!1M+K=+e z(SI({fW?}Cd`@(JL##VX&Q#Z&$kX)B;)o9B%w>4O0*fI(Cu%tz-2N0gZ-a+U554DN|2%Lb`?f9?vM_>L0%k zZ-8}30S&(566`cCw-H(7+m<|YBXh3LOXOnB1D~LN0MusFenG{6^8x=h37WjZDplG4 z*atjP(DpNeAi4DnHd1M7I3A*vWm%6rYXm0xB_{@aD3#x;wv5=%jH;Owz|U1CUNcS% zr}Os>qCb=9GdIs6odJ1&i$=wcynwiKtDxNb%*UYybgdn$U)TpIaLjJaA_#hshCXNo z%*co-m5KUNmip?M~k>v6VdYt}x;5*{V^5BY{_?-Aq|8c3V9ZGsC{KI}&`1_&9 zZQVVE)T{>L-4m-2*{62tGMAU(^5z1D{k|j@`9DO)!BQrtg5gb;$36~CRcTE%M&${5 zuimD=dffUd+E!OHg}c20C@|!x<^Uq8$Yk@W{&Zp>XCH%79}Zcbo^G45z%_p2sEdf$ zryxsDCby>9o&L_*_42u#XFlT`l{Wr3OKn8@x04UDq3_~oUx-?zNSp%(G}<>l=QiHu zgTL^hAj+38opNsOa`WL7XKIvFnh77HTu@|@JjYh98#gzaGN0D;J|oIWf|q#>K;r)Z z@a!U4EsH{4=6z}!{cdmcT_&Nt$>shTRixU~uaK96MVes(@W;#>48Jzjq3 zRaISLyGtX-%TLrVmq~7n#ldx^MN+ym9CLiCrp1P)!|vIStmF)Eo^2t@@in%;m(l0i z*fqn+wNmyQ8X;jN?ULVm(8`F#z1Xs3M$J2pm1)0~_=yecdMqMkb71B1Q%X(4fbWiO z#}iYYj(=eRIMA8KL%EYun5tWn6Jj-|Y1PwemGWPVV)S=-xdd>$ zp!w%_&6Mj5B3u8aMklYZH3p#4ZEMy!8K9mw{~2Lg|3jYw%+8I>+u0z=y@$Cs=h1%J z6UQN!csF-JUc#$|?57;^j5hFjVFsj!9?&Nac-X?0xrB@Mvl zj+UI(Q+>4>DLphw1V~RKY%LL4$g}4Z_kP-?J?P4Z34iUYacQ~FzxK(r%@ zNHo8R(m4~p3ow}#T4PpUJ!_MDRte0c-^?O>_4M7I9mQy%+ZdSNPO(BrQZX-}?~7T3 zv)GyO>=9_qcrupUQc-yT1b@n`Wnylb3Rm?@f(ci&s-ihb(x(ryniBaaPjdvG9vp3; zVmuxRi>@*+|5*%9|4TsUm9M!XQ#R%o{e!>7aDGR(cy}23v!9(0MGd1%e=AyLWiblz`CQ(XDPKD>#n9Z48d4YIn%{<3Fc3{nf`StJb{?`jr$soaz|9IwGoEsStsC31zeq_mn zGr^gv+XcQF6u!-$_CE6{T?#NX!gPSJ6nYseVo}dKdg~es1JroV6|rB^7yUOf=aC0( z)N8=&{IkMiaDXO#3P)8r%xzw7w2#VOU6|XlZE+sX`Tsh6hUSyz>mP!B`z5(bs~;}3 zlspfU4)?jY>31~+#!y%}F5l+dAB4xyHa5-0q_}@8lTFIIH$VLsb+&!ufZES6ki@sc zz|rmRocup#slTbXK?+DLJz~41L`{^QHthX_3Ydm6r(8~`dyD`><5H}C*`h|QTsOVZ zlJiX3_xz3s?<()F)JgRCp3&tWpgM-528bKplHvMe5mm?9!UqR7JZY0h=SmBfade01B+!b0~_wKl8EXSKxjdK!2`!Gf+5ST zAXy;%T3?jYOGs-yEzMC2(n-8rbqh3lCk|WIHTM1I3k4`ksPofTySt23+}SidLx_nW zQc|q2&)B}Nd(JoZ4def`@4Of){GBncF!88!tL7nsmcHQ`ATRuXb`k!9oVh@LB;}#4 z)m*!Y6p4qh5QW>Jw*mkF5Q{rsu`3Djhyzr_?h3`c<>#k>QkH8=j4pnhEjLwX`qdFF z@{K^j$;Ew>lh93R*3UVRE;H7^>X;QEIVci_U8%C2^Jh&XmcjNdrP2)yh&iQT2k)ky zG<6Uiv1&AWLt~YOa5b-yiuy#h$|n7F)*Bk;j+l^%X_?Eva;u+R-pIMQ&$2z~x4%m) zynF4>19ThvT+K}z1}dA#b|Dn9#)$apBpwz@01>!vA|{~(?4(4D=XWwdx3Ol;Q-c61 zaM2IimLXsYwyP-$Y_J5PE2O_9!jr?R#piYO03J`zg3PY;0a)eK9i3OuGX*e}i6U_f z`_fX9Pii?B#714XfaAsd);*SUq%vo~4?J?>ARBYqqOTsA)Wyx4*2`6JroG^h5bAOQP?} zcBRS=g%e1u<3XV8=2gvcc1vcjv~X+^L6#*ilAx%0%0tqhJ8QA@guGdSbe5csN>+33 zkL5NOX+-zn@(|^LnEL0>I)hBJqZoItWDo#YX0u_5Fz{)K_tl41{ubwl&A+2h?_Cd$ zxnA_QjG;%LAqFz^ISaQ7e0m^?=RX-?66j=&K7#P^*HS?!fNo`dRqFi`C}3f|V3rFL z8;P}b#%_?HSRih;Oph6}9_w3_jQ>uw?d;Ua2}(H+Vk0Jj8C(m>=S@K$T(~q2_n6KB zWa%>vClm9#Aa+$}mqdEQaP90fir?iiiEU!6hgd1{b3rzKfEXJSkS`VUy&r5iw4~lX zC=-2DsVGflWBeS8X1b}16~J)73N7wOFRe1OXOANCHKb=8sqr*t&*ei`4SiV+zEIl6 zBcH+xzT_OhG4%=~9<0qNnd8H?Fa??F)M0{(07BNKarG^LJ`?#S$_q{hz6gFsm3G_S zAb<^RhGKTLY+vpR%ZrWh##`?KYzjkcOjg;qh@g8p#(XKMWYC&Qe*yP*8$p$Vf$`R< z#DLT?XLq~7u#6;QT1*Q-?HM?il0jt;uf9zvi$xxjxsZ%VRRRB8$)7LHD5(|9A-1*9 zSTF>oK;dUcl=j{HD zGBe>Yl;&RqCh~4P9F@YWg|YUfe?somr6Ko1ON}wLaj}c*)%90p8?J0`+A?F_?h`~{ z{|pdV>sAIE1^PgA;iPX)3k8~BDtAo2IKQ=a{kZRxzo>O5yJLK8N$k+9m_o|u9#wdF8cWLZpv(92%bjVzvKy5-iMweZoj zv3BK!M#OzWbl>tA2?xR+?82DmCn309GabBUT@S*S9z|)q25Lxlf>pyWoV~qRa(&gq z2H+lxe=BbFERp4{&s<-p(F{ZQ*X62-RXSTHQa7?cnawJEa#6P4+T;~SmCWV2fAKa- z&`@u?D=Jt2xIpNe9^?X@(H-DDFgUOCAhhC5?1Y0)w!?&rU(;6Hu@;X} zEpHnCI-amv^|1bn?OyxYLM zlUp1+0J|g*KAr#31W-#e%MRl4xl1y0(kM6GhqY#?!#B+^om#OBdNn~c`E0J;48D|C zlMsuH{ZwtVjQxj2vDT>v=i|Z-3VDD>_wC>I{-Q&g&8`*UAZl$p_aenUEa;*?qB^A? zSiW%hqh`=ie}8Nf*tvSB_8wjk;dK+qR<3IHoWZMcmvY;Rf@ZZ!^!Vg0uzJF0`SMzH zyJ}&E1ev-xz6QD08C6MMBHi6iXU=@)58qIC1e51=RnyO$dtJM%J@5KyH1StaaPu54 zb*WKP$r|QT6%Y!ud7^5VQnZ4A3PSjzW_NukDate99QSi(&*#1s_2i{kSb;o{t@cho zj*gl7*NzEENe)bbLWjCx#_+-?89$!HA&BxYeaKCPWCJm7!cr?^S?t5R3GK@rynB$n zUb*b-Zt@f*K_M@ipGhR;`E8z9EiwM+r)j~V5Oi&v`%+5WF)^zUZr)u9J;-7fO8_+F zuy2y}NuVAckQF7_mk`^=kp1N3*)EUzw~OjsC+W9a>e9lxaU1+U!l}W8d(ecu4e}sN zuut0Rp{i&0Vgo%5j(CBra#rx%Zz?qu`LX0!ieZdY0ru4J1KCeV#8HjU;WTe*S>3(PXf-()G&a z2pFZi+@0t=PxtN$15*GzI6FCp3a>wY_~B({T)FOzAzj}{Rc=OP@D!bIEuCLv2ihtv zx*P6)+7dBEhu}%_9)(A4;5ramAG+ZI6ukfpGJL3OM7Nn-=yjQo z24IsM%wcyJM?1*Lx3Eck{qXGe^wLpec11?%RFX5nAeb;}f0P^*Y2ZuB$erkQ@iKUr z0DrJ1yQ!e>OMs_;$JsT!jJ`w{W`3sBxC;-!zRbF0n9HUWlAsrsYp855I)zD%T1<4F zqAPJri(*T9E<+cpU{FFDKPgMTy9ldlPwTT9@2-T0&e8>srjp8yLi@%W5XhKAcqebu z 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%0A|!Gt6L87}{Yv2fh;dZ>Kn85btK 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%0AKevbhEk|daLF$pn75>4#V>kgX#bTmjh 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 NfkKO0p*R$ZyF(yYa0u=$#oaYnkW#!9*Fq`9 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 HasB@Tx7BJ) literal 0 HcmV?d00001 diff --git a/frontend/resources/styles/common/dependencies/colors.scss b/frontend/resources/styles/common/dependencies/colors.scss index bd995bc8c..5a9c19c4d 100644 --- a/frontend/resources/styles/common/dependencies/colors.scss +++ b/frontend/resources/styles/common/dependencies/colors.scss @@ -23,6 +23,7 @@ $color-info: #59b9e2; $color-ocean: #4285f4; $color-component: #76B0B8; $color-component-highlight: #00E0FF; +$color-pink: #feecfc; // Gray scale $color-gray-10: #E3E3E3; diff --git a/frontend/resources/styles/main/partials/modal.scss b/frontend/resources/styles/main/partials/modal.scss index d67985d15..bb0b12751 100644 --- a/frontend/resources/styles/main/partials/modal.scss +++ b/frontend/resources/styles/main/partials/modal.scss @@ -382,7 +382,7 @@ .modal-left { align-items: center; - background-color: $color-primary; + background-color: $color-pink; border-top-left-radius: 5px; border-bottom-left-radius: 5px; display: flex; @@ -391,6 +391,10 @@ overflow: hidden; padding: $x-big; width: 230px; + + &.welcome { + padding: 0; + } } .modal-right { @@ -498,6 +502,7 @@ color: $color-black; flex: 1; flex-direction: column; + overflow: visible; padding: $x-big 40px; text-align: center; diff --git a/frontend/src/app/main/ui.cljs b/frontend/src/app/main/ui.cljs index 422a3734a..63ca3458d 100644 --- a/frontend/src/app/main/ui.cljs +++ b/frontend/src/app/main/ui.cljs @@ -144,8 +144,8 @@ :dashboard-team-members :dashboard-team-settings) [:* - #_[:div.modal-wrapper - [:& app.main.ui.onboarding/release-notes-modal {:version "1.5"}]] + [:div.modal-wrapper + [:& app.main.ui.onboarding/release-notes-modal {:version "1.6"}]] [:& dashboard {:route route}]] :viewer diff --git a/frontend/src/app/main/ui/onboarding.cljs b/frontend/src/app/main/ui/onboarding.cljs index a14f22a9f..057fa9bd1 100644 --- a/frontend/src/app/main/ui/onboarding.cljs +++ b/frontend/src/app/main/ui/onboarding.cljs @@ -34,7 +34,7 @@ (mf/defc onboarding-start [{:keys [next] :as props}] [:div.modal-container.onboarding - [:div.modal-left + [:div.modal-left.welcome [:img {:src "images/login-on.jpg" :border "0" :alt "Penpot"}]] [:div.modal-right [:div.modal-title @@ -474,3 +474,82 @@ {:slide @slide :navigate navigate :total 3}]]]]]]))) + +(defmethod render-release-notes "1.6" + [{:keys [slide klass next finish navigate version]}] + (mf/html + (case @slide + :start + [:div.modal-overlay + [:div.animated {:class @klass} + [:div.modal-container.onboarding.feature + [:div.modal-left + [:img {:src "images/login-on.jpg" :border "0" :alt "What's new Alpha release 1.6.0"}]] + [:div.modal-right + [:div.modal-title + [:h2 "What's new?"]] + [:span.release "Alpha version " version] + [:div.modal-content + [:p "Penpot continues growing with new features that improve performance, user experience and visual design."] + [:p "We are happy to show you a sneak peak of the most important stuff that the Alpha 1.6.0 version brings."]] + [:div.modal-navigation + [:button.btn-secondary {:on-click next} "Continue"]]] + [:img.deco {:src "images/deco-left.png" :border "0"}] + [:img.deco.right {:src "images/deco-right.png" :border "0"}]]]] + + 0 + [:div.modal-overlay + [:div.animated {:class @klass} + [:div.modal-container.onboarding.feature + [:div.modal-left + [:img {:src "images/features/path-tool.gif" :border "0" :alt "New path tool"}]] + [:div.modal-right + [:div.modal-title + [:h2 "New features for paths"]] + [:div.modal-content + [:p "Now you can select snap points on edition, add/remove nodes, merge/join/split nodes."] + [:p "The usability and performance of the paths tool has been improved too."]] + [:div.modal-navigation + [:button.btn-secondary {:on-click next} "Continue"] + [:& navigation-bullets + {:slide @slide + :navigate navigate + :total 3}]]]]]] + + 1 + [:div.modal-overlay + [:div.animated {:class @klass} + [:div.modal-container.onboarding.feature + [:div.modal-left + [:img {:src "images/features/assets-organiz.gif" :border "0" :alt "Manage libraries"}]] + [:div.modal-right + [:div.modal-title + [:h2 "New libraries organization"]] + [:div.modal-content + [:p "Penpot now allows to group, multiselect and bulk edition of assets (components and graphics)."] + [:p "It is time to have all the libraries well organized and work more efficiently."]] + [:div.modal-navigation + [:button.btn-secondary {:on-click next} "Continue"] + [:& navigation-bullets + {:slide @slide + :navigate navigate + :total 3}]]]]]] + + 2 + [:div.modal-overlay + [:div.animated {:class @klass} + [:div.modal-container.onboarding.feature + [:div.modal-left + [:img {:src "images/features/smart-inputs.gif" :border "0" :alt "Smart inputs"}]] + [:div.modal-right + [:div.modal-title + [:h2 "Smart inputs"]] + [:div.modal-content + [:p "Now you can have more precision in your designs with basic math operations in inputs."] + [:p "It's easier to specify by how much you want to change a value and work with measures and distances."]] + [:div.modal-navigation + [:button.btn-secondary {:on-click finish} "Start!"] + [:& navigation-bullets + {:slide @slide + :navigate navigate + :total 3}]]]]]]))) From d722f3746889d77a7282c15e7f709905ccff8920 Mon Sep 17 00:00:00 2001 From: elhombretecla Date: Thu, 20 May 2021 09:58:36 +0200 Subject: [PATCH 127/135] :sparkles: Add new 1.6 onboarding info --- .../{basic-nodes.gif => shapes-to-path.gif} | Bin frontend/src/app/main/ui.cljs | 2 +- frontend/src/app/main/ui/onboarding.cljs | 48 ++++++++++++------ 3 files changed, 34 insertions(+), 16 deletions(-) rename frontend/resources/images/features/{basic-nodes.gif => shapes-to-path.gif} (100%) diff --git a/frontend/resources/images/features/basic-nodes.gif b/frontend/resources/images/features/shapes-to-path.gif similarity index 100% rename from frontend/resources/images/features/basic-nodes.gif rename to frontend/resources/images/features/shapes-to-path.gif diff --git a/frontend/src/app/main/ui.cljs b/frontend/src/app/main/ui.cljs index 63ca3458d..601b89ecc 100644 --- a/frontend/src/app/main/ui.cljs +++ b/frontend/src/app/main/ui.cljs @@ -144,7 +144,7 @@ :dashboard-team-members :dashboard-team-settings) [:* - [:div.modal-wrapper + #_[:div.modal-wrapper [:& app.main.ui.onboarding/release-notes-modal {:version "1.6"}]] [:& dashboard {:route route}]] diff --git a/frontend/src/app/main/ui/onboarding.cljs b/frontend/src/app/main/ui/onboarding.cljs index 057fa9bd1..b49eda9c8 100644 --- a/frontend/src/app/main/ui/onboarding.cljs +++ b/frontend/src/app/main/ui/onboarding.cljs @@ -502,54 +502,72 @@ [:div.animated {:class @klass} [:div.modal-container.onboarding.feature [:div.modal-left - [:img {:src "images/features/path-tool.gif" :border "0" :alt "New path tool"}]] + [:img {:src "images/features/custom-fonts.gif" :border "0" :alt "Upload/use custom fonts"}]] [:div.modal-right [:div.modal-title - [:h2 "New features for paths"]] + [:h2 "Upload/use custom fonts"]] [:div.modal-content - [:p "Now you can select snap points on edition, add/remove nodes, merge/join/split nodes."] - [:p "The usability and performance of the paths tool has been improved too."]] + [:p "With local font support you would have the advantage of open-source projects being able to use these fonts in their wireframes and mockups, share those with the community."]] [:div.modal-navigation [:button.btn-secondary {:on-click next} "Continue"] [:& navigation-bullets {:slide @slide :navigate navigate - :total 3}]]]]]] + :total 4}]]]]]] 1 [:div.modal-overlay [:div.animated {:class @klass} [:div.modal-container.onboarding.feature [:div.modal-left - [:img {:src "images/features/assets-organiz.gif" :border "0" :alt "Manage libraries"}]] + [:img {:src "images/features/scale-text.gif" :border "0" :alt "Interactively scale text"}]] [:div.modal-right [:div.modal-title - [:h2 "New libraries organization"]] + [:h2 "Interactively scale text"]] [:div.modal-content - [:p "Penpot now allows to group, multiselect and bulk edition of assets (components and graphics)."] - [:p "It is time to have all the libraries well organized and work more efficiently."]] + [:p "New main menu option “Scale text (K)” to set scale text mode."] + [:p "False by default, and resets to false again when changing draw tool."]] [:div.modal-navigation [:button.btn-secondary {:on-click next} "Continue"] [:& navigation-bullets {:slide @slide :navigate navigate - :total 3}]]]]]] + :total 4}]]]]]] 2 [:div.modal-overlay [:div.animated {:class @klass} [:div.modal-container.onboarding.feature [:div.modal-left - [:img {:src "images/features/smart-inputs.gif" :border "0" :alt "Smart inputs"}]] + [:img {:src "images/features/performance.gif" :border "0" :alt "Performance improvements"}]] [:div.modal-right [:div.modal-title - [:h2 "Smart inputs"]] + [:h2 "Performance improvements"]] [:div.modal-content - [:p "Now you can have more precision in your designs with basic math operations in inputs."] - [:p "It's easier to specify by how much you want to change a value and work with measures and distances."]] + [:p "Penpot brings important improvements handling large files."] + [:p "The performance in managing files in the dashboard has also been improved."]] + [:div.modal-navigation + [:button.btn-secondary {:on-click next} "Continue"] + [:& navigation-bullets + {:slide @slide + :navigate navigate + :total 4}]]]]]] + + 3 + [:div.modal-overlay + [:div.animated {:class @klass} + [:div.modal-container.onboarding.feature + [:div.modal-left + [:img {:src "images/features/shapes-to-path.gif" :border "0" :alt "Shapes to path"}]] + [:div.modal-right + [:div.modal-title + [:h2 "Shapes to path"]] + [:div.modal-content + [:p "Now you can edit basic shapes like rectangles, circles and image containers by double clicking."] + [:p "An easy way to increase speed by working with vectors!"]] [:div.modal-navigation [:button.btn-secondary {:on-click finish} "Start!"] [:& navigation-bullets {:slide @slide :navigate navigate - :total 3}]]]]]]))) + :total 4}]]]]]]))) From 77446a71e23474144a479a3d1cc237b258094088 Mon Sep 17 00:00:00 2001 From: elhombretecla Date: Thu, 20 May 2021 17:37:20 +0200 Subject: [PATCH 128/135] :lipstick: Changes at onboarding content --- frontend/src/app/main/ui/onboarding.cljs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/frontend/src/app/main/ui/onboarding.cljs b/frontend/src/app/main/ui/onboarding.cljs index b49eda9c8..3c5e940f7 100644 --- a/frontend/src/app/main/ui/onboarding.cljs +++ b/frontend/src/app/main/ui/onboarding.cljs @@ -507,7 +507,8 @@ [:div.modal-title [:h2 "Upload/use custom fonts"]] [:div.modal-content - [:p "With local font support you would have the advantage of open-source projects being able to use these fonts in their wireframes and mockups, share those with the community."]] + [:p "From now on you can upload fonts from your computer to a Penpot team and use them across its files. This is one of the most requested features since our first release (we listen!)"] + [:p "We hope you enjoy having more typography options and our brand new font selector."]] [:div.modal-navigation [:button.btn-secondary {:on-click next} "Continue"] [:& navigation-bullets @@ -523,10 +524,10 @@ [:img {:src "images/features/scale-text.gif" :border "0" :alt "Interactively scale text"}]] [:div.modal-right [:div.modal-title - [:h2 "Interactively scale text"]] + [:h2 "Scale text layers at resizing"]] [:div.modal-content - [:p "New main menu option “Scale text (K)” to set scale text mode."] - [:p "False by default, and resets to false again when changing draw tool."]] + [:p "New main menu option “Scale text (K)” to enable scale text mode."] + [:p "Disabled by default, this tool is disabled back after being used."]] [:div.modal-navigation [:button.btn-secondary {:on-click next} "Continue"] [:& navigation-bullets @@ -544,8 +545,8 @@ [:div.modal-title [:h2 "Performance improvements"]] [:div.modal-content - [:p "Penpot brings important improvements handling large files."] - [:p "The performance in managing files in the dashboard has also been improved."]] + [:p "Penpot brings important improvements handling large files. The performance in managing files in the dashboard has also been improved."] + [:p "You should have the feeling that files and layers show up a bit faster :)"]] [:div.modal-navigation [:button.btn-secondary {:on-click next} "Continue"] [:& navigation-bullets From 952bcd853e25349284c6149406042a1f67f8409d Mon Sep 17 00:00:00 2001 From: elhombretecla Date: Thu, 20 May 2021 17:41:21 +0200 Subject: [PATCH 129/135] :tada: Fix release notes version at profile --- frontend/src/app/main/ui/onboarding.cljs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/main/ui/onboarding.cljs b/frontend/src/app/main/ui/onboarding.cljs index 3c5e940f7..58877f7e9 100644 --- a/frontend/src/app/main/ui/onboarding.cljs +++ b/frontend/src/app/main/ui/onboarding.cljs @@ -296,7 +296,7 @@ (defmethod render-release-notes "0.0" [params] - (render-release-notes (assoc params :version "1.5"))) + (render-release-notes (assoc params :version "1.6"))) (defmethod render-release-notes "1.4" [{:keys [slide klass next finish navigate version]}] From 6b1e5b41693bfbbd85977989e4597eba21baa7d9 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 25 May 2021 14:03:53 +0200 Subject: [PATCH 130/135] :paperclip: Change default jvm options for backend and frontend repl. --- backend/scripts/repl | 2 +- frontend/shadow-cljs.edn | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/scripts/repl b/backend/scripts/repl index 3c8b1a6c6..1f434abcf 100755 --- a/backend/scripts/repl +++ b/backend/scripts/repl @@ -2,7 +2,7 @@ export PENPOT_ASSERTS_ENABLED=true -export OPTIONS="-A:jmx-remote:dev -J-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager -J-Xms512m -J-Xmx512m -J-Dlog4j2.configurationFile=log4j2-devenv.xml"; +export OPTIONS="-A:jmx-remote:dev -J-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager -J-Dlog4j2.configurationFile=log4j2-devenv.xml -J-XX:+UseZGC -J-XX:ConcGCThreads=1 -J-XX:-OmitStackTraceInFastThrow -J-Xms50m -J-Xmx512m"; # export OPTIONS="$OPTIONS -J-XX:+UnlockDiagnosticVMOptions"; # export OPTIONS="$OPTIONS -J-XX:-TieredCompilation -J-XX:CompileThreshold=10000"; diff --git a/frontend/shadow-cljs.edn b/frontend/shadow-cljs.edn index b668fa2d4..ffe3cf888 100644 --- a/frontend/shadow-cljs.edn +++ b/frontend/shadow-cljs.edn @@ -1,6 +1,8 @@ {:http {:port 3448} :nrepl {:port 3447} - :jvm-opts ["-Xmx600m" "-Xms50m" "-XX:+UseSerialGC"] + :jvm-opts ["-Xmx600m" "-Xms50m" + "-XX:+UseZGC" "-XX:ConcGCThreads=1" + "-XX:-OmitStackTraceInFastThrow"] :dev-http {8888 "classpath:public"} :source-paths ["src", "vendor", "resources", "../common", "tests", "dev"] From 43b34aa27902254d9996c81e85c24580275ec5f0 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 25 May 2021 14:06:47 +0200 Subject: [PATCH 131/135] :bug: Fix many corner cases on custom font management. --- .../sql/0053-add-team-font-variant-table.sql | 37 ++- backend/src/app/rpc/mutations/fonts.clj | 59 ++-- .../tests/app/tests/test_services_fonts.clj | 6 +- common/app/common/media.cljc | 22 +- .../styles/main/partials/dashboard-fonts.scss | 91 ++++++- .../src/app/main/data/dashboard/fonts.cljs | 94 ------- frontend/src/app/main/data/fonts.cljs | 241 +++++++++++++++-- frontend/src/app/main/fonts.cljs | 21 +- frontend/src/app/main/ui/dashboard/fonts.cljs | 252 ++++++++---------- .../sidebar/options/menus/typography.cljs | 11 +- frontend/translations/en.po | 24 +- frontend/translations/es.po | 28 +- 12 files changed, 562 insertions(+), 324 deletions(-) delete mode 100644 frontend/src/app/main/data/dashboard/fonts.cljs diff --git a/backend/src/app/migrations/sql/0053-add-team-font-variant-table.sql b/backend/src/app/migrations/sql/0053-add-team-font-variant-table.sql index 423ed2556..e03d1da99 100644 --- a/backend/src/app/migrations/sql/0053-add-team-font-variant-table.sql +++ b/backend/src/app/migrations/sql/0053-add-team-font-variant-table.sql @@ -1,20 +1,43 @@ CREATE TABLE team_font_variant ( id uuid PRIMARY KEY DEFAULT uuid_generate_v4(), - team_id uuid NOT NULL REFERENCES team(id) ON DELETE CASCADE, - profile_id uuid NULL REFERENCES profile(id) ON DELETE SET NULL, + team_id uuid NOT NULL REFERENCES team(id) ON DELETE CASCADE DEFERRABLE, + profile_id uuid NULL REFERENCES profile(id) ON DELETE SET NULL DEFERRABLE, created_at timestamptz NOT NULL DEFAULT now(), modified_at timestamptz NOT NULL DEFAULT now(), deleted_at timestamptz NULL DEFAULT NULL, - font_id text NOT NULL, + font_id uuid NOT NULL, font_family text NOT NULL, font_weight smallint NOT NULL, font_style text NOT NULL, - otf_file_id uuid NULL REFERENCES storage_object(id) ON DELETE SET NULL, - ttf_file_id uuid NULL REFERENCES storage_object(id) ON DELETE SET NULL, - woff1_file_id uuid NULL REFERENCES storage_object(id) ON DELETE SET NULL, - woff2_file_id uuid NULL REFERENCES storage_object(id) ON DELETE SET NULL + otf_file_id uuid NULL REFERENCES storage_object(id) ON DELETE SET NULL DEFERRABLE, + ttf_file_id uuid NULL REFERENCES storage_object(id) ON DELETE SET NULL DEFERRABLE, + woff1_file_id uuid NULL REFERENCES storage_object(id) ON DELETE SET NULL DEFERRABLE, + woff2_file_id uuid NULL REFERENCES storage_object(id) ON DELETE SET NULL DEFERRABLE ); + +CREATE INDEX team_font_variant_team_id_font_id_idx + ON team_font_variant (team_id, font_id); + +CREATE INDEX team_font_variant_profile_id_idx + ON team_font_variant (profile_id); + +CREATE INDEX team_font_variant_otf_file_id_idx + ON team_font_variant (otf_file_id); + +CREATE INDEX team_font_variant_ttf_file_id_idx + ON team_font_variant (ttf_file_id); + +CREATE INDEX team_font_variant_woff1_file_id_idx + ON team_font_variant (woff1_file_id); + +CREATE INDEX team_font_variant_woff2_file_id_idx + ON team_font_variant (woff2_file_id); + +ALTER TABLE team_font_variant + ALTER COLUMN font_family SET STORAGE external, + ALTER COLUMN font_style SET STORAGE external; + diff --git a/backend/src/app/rpc/mutations/fonts.clj b/backend/src/app/rpc/mutations/fonts.clj index e5194174f..ca1d2263e 100644 --- a/backend/src/app/rpc/mutations/fonts.clj +++ b/backend/src/app/rpc/mutations/fonts.clj @@ -16,20 +16,20 @@ [app.util.services :as sv] [app.util.time :as dt] [app.worker :as wrk] - [clojure.spec.alpha :as s] - [cuerdas.core :as str])) + [clojure.spec.alpha :as s])) (declare create-font-variant) (def valid-weight #{100 200 300 400 500 600 700 800 900 950}) (def valid-style #{"normal" "italic"}) +(s/def ::id ::us/uuid) (s/def ::profile-id ::us/uuid) (s/def ::team-id ::us/uuid) (s/def ::name ::us/not-empty-string) (s/def ::weight valid-weight) (s/def ::style valid-style) -(s/def ::font-id (s/and ::us/string #(str/starts-with? % "custom-"))) +(s/def ::font-id ::us/uuid) (s/def ::content-type ::media/font-content-type) (s/def ::data (s/map-of ::us/string any?)) @@ -76,29 +76,57 @@ :otf-file-id (:id otf) :ttf-file-id (:id ttf)}))) -;; --- UPDATE FONT VARIANT +;; --- UPDATE FONT FAMILY -(s/def ::update-font-variant - (s/keys :req-un [::profile-id ::team-id ::id ::font-family ::font-id])) +(s/def ::update-font + (s/keys :req-un [::profile-id ::team-id ::id ::name])) -(sv/defmethod ::update-font-variant - [{:keys [pool] :as cfg} {:keys [id team-id profile-id font-family font-id] :as params}] +(def sql:update-font + "update team_font_variant + set font_family = ? + where team_id = ? + and font_id = ?") + +(sv/defmethod ::update-font + [{:keys [pool] :as cfg} {:keys [team-id profile-id id name] :as params}] (db/with-atomic [conn pool] (teams/check-edition-permissions! conn profile-id team-id) - (db/update! conn :team-font-variant - {:font-family font-family - :font-id font-id} - {:id id - :team-id team-id}) + (db/exec-one! conn [sql:update-font name team-id id]) nil)) +;; --- DELETE FONT + +(s/def ::delete-font + (s/keys :req-un [::profile-id ::team-id ::id])) + +(sv/defmethod ::delete-font + [{:keys [pool] :as cfg} {:keys [id team-id profile-id] :as params}] + (db/with-atomic [conn pool] + (teams/check-edition-permissions! conn profile-id team-id) + + (let [items (db/query conn :team-font-variant + {:font-id id :team-id team-id} + {:for-update true})] + (doseq [item items] + ;; Schedule object deletion + (wrk/submit! {::wrk/task :delete-object + ::wrk/delay cf/deletion-delay + ::wrk/conn conn + :id (:id item) + :type :team-font-variant})) + + (db/update! conn :team-font-variant + {:deleted-at (dt/now)} + {:font-id id :team-id team-id}) + nil))) + ;; --- DELETE FONT VARIANT (s/def ::delete-font-variant (s/keys :req-un [::profile-id ::team-id ::id])) (sv/defmethod ::delete-font-variant - [{:keys [pool] :as cfg} {:keys [id team-id profile-id font-family font-id] :as params}] + [{:keys [pool] :as cfg} {:keys [id team-id profile-id] :as params}] (db/with-atomic [conn pool] (teams/check-edition-permissions! conn profile-id team-id) @@ -111,6 +139,5 @@ (db/update! conn :team-font-variant {:deleted-at (dt/now)} - {:id id - :team-id team-id}) + {:id id :team-id team-id}) nil)) diff --git a/backend/tests/app/tests/test_services_fonts.clj b/backend/tests/app/tests/test_services_fonts.clj index 50ee24abf..86836b71e 100644 --- a/backend/tests/app/tests/test_services_fonts.clj +++ b/backend/tests/app/tests/test_services_fonts.clj @@ -22,6 +22,7 @@ (let [prof (th/create-profile* 1 {:is-active true}) team-id (:default-team-id prof) proj-id (:default-project-id prof) + font-id (uuid/custom 10 1) ttfdata (-> (io/resource "app/tests/_files/font-1.ttf") (fs/slurp-bytes)) @@ -29,7 +30,7 @@ params {::th/type :create-font-variant :profile-id (:id prof) :team-id team-id - :font-id "custom-somefont" + :font-id font-id :font-family "somefont" :font-weight 400 :font-style "normal" @@ -56,6 +57,7 @@ (let [prof (th/create-profile* 1 {:is-active true}) team-id (:default-team-id prof) proj-id (:default-project-id prof) + font-id (uuid/custom 10 1) data (-> (io/resource "app/tests/_files/font-1.woff") (fs/slurp-bytes)) @@ -63,7 +65,7 @@ params {::th/type :create-font-variant :profile-id (:id prof) :team-id team-id - :font-id "custom-somefont" + :font-id font-id :font-family "somefont" :font-weight 400 :font-style "normal" diff --git a/common/app/common/media.cljc b/common/app/common/media.cljc index 108c21b10..cbf1fb826 100644 --- a/common/app/common/media.cljc +++ b/common/app/common/media.cljc @@ -69,17 +69,17 @@ (defn parse-font-weight [variant] (cond - (re-seq #"(?i)(?:hairline|thin)" variant) 100 - (re-seq #"(?i)(?:extra light|ultra light)" variant) 200 - (re-seq #"(?i)(?:light)" variant) 300 - (re-seq #"(?i)(?:normal|regular)" variant) 400 - (re-seq #"(?i)(?:medium)" variant) 500 - (re-seq #"(?i)(?:semi bold|demi bold)" variant) 600 - (re-seq #"(?i)(?:bold)" variant) 700 - (re-seq #"(?i)(?:extra bold|ultra bold)" variant) 800 - (re-seq #"(?i)(?:black|heavy)" variant) 900 - (re-seq #"(?i)(?:extra black|ultra black)" variant) 950 - :else 400)) + (re-seq #"(?i)(?:hairline|thin)" variant) 100 + (re-seq #"(?i)(?:extra\s*light|ultra\s*light)" variant) 200 + (re-seq #"(?i)(?:light)" variant) 300 + (re-seq #"(?i)(?:normal|regular)" variant) 400 + (re-seq #"(?i)(?:medium)" variant) 500 + (re-seq #"(?i)(?:semi\s*bold|demi\s*bold)" variant) 600 + (re-seq #"(?i)(?:extra\s*bold|ultra\s*bold)" variant) 800 + (re-seq #"(?i)(?:bold)" variant) 700 + (re-seq #"(?i)(?:extra\s*black|ultra\s*black)" variant) 950 + (re-seq #"(?i)(?:black|heavy)" variant) 900 + :else 400)) (defn parse-font-style [variant] diff --git a/frontend/resources/styles/main/partials/dashboard-fonts.scss b/frontend/resources/styles/main/partials/dashboard-fonts.scss index 864f17e87..0f61a12a3 100644 --- a/frontend/resources/styles/main/partials/dashboard-fonts.scss +++ b/frontend/resources/styles/main/partials/dashboard-fonts.scss @@ -30,8 +30,13 @@ align-items: center; padding: 0px $big; - > div { - width: 30%; + > .family { + min-width: 200px; + width: 200px; + } + + > .variants { + padding-left: 12px; } .search-input { @@ -50,20 +55,18 @@ } } - .fonts-group { - margin-top: $big; - } - .font-item { + margin-top: $big; color: $color-gray-40; font-size: $fs14; background-color: $color-white; display: flex; min-width: 1000px; width: 100%; - height: 97px; + min-height: 97px; align-items: center; padding: $big; + justify-content: space-between; &:not(:first-child) { border-top: 1px solid $color-gray-10; @@ -77,14 +80,52 @@ font-size: $fs12; } - > div { - width: 30%; + > .family { + min-width: 200px; + width: 200px; } - .variant { - font-size: $fs14; + > .filenames { + min-width: 200px; } + > .variants { + font-size: $fs14; + display: flex; + flex-wrap: wrap; + flex-grow: 1; + + .variant { + display: flex; + justify-content: space-between; + align-items: center; + padding: 8px 12px; + cursor: pointer; + + .icon { + display: flex; + height: 16px; + width: 16px; + margin-left: 6px; + align-items: center; + svg { + fill: transparent; + width: 12px; + height: 12px; + transform: rotate(45deg); + } + } + + &:hover { + .icon svg { + fill: $color-gray-30; + } + } + + } + } + + .filenames { display: flex; flex-direction: column; @@ -117,7 +158,6 @@ } } - .dashboard-fonts-upload { max-width: 1000px; width: 100%; @@ -164,4 +204,31 @@ color: $color-gray-40; } } + + .fonts-placeholder { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + max-width: 1000px; + width: 100%; + height: 161px; + + border: 1px dashed $color-gray-20; + margin-top: 16px; + + + .icon { + svg { + fill: $color-gray-40; + width: 32px; + height: 32px; + } + } + + .label { + color: $color-gray-40; + font-size: $fs14; + } + } } diff --git a/frontend/src/app/main/data/dashboard/fonts.cljs b/frontend/src/app/main/data/dashboard/fonts.cljs deleted file mode 100644 index c1b76c6ab..000000000 --- a/frontend/src/app/main/data/dashboard/fonts.cljs +++ /dev/null @@ -1,94 +0,0 @@ -;; 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) UXBOX Labs SL - -(ns app.main.data.dashboard.fonts - (:require - [app.common.exceptions :as ex] - [app.common.data :as d] - [app.common.media :as cm] - [app.common.spec :as us] - [app.common.uuid :as uuid] - [app.main.repo :as rp] - [app.util.time :as dt] - [app.util.timers :as ts] - [app.main.data.messages :as dm] - [app.util.webapi :as wa] - [app.util.object :as obj] - [app.util.transit :as t] - [beicon.core :as rx] - [cljs.spec.alpha :as s] - [cuerdas.core :as str] - [potok.core :as ptk])) - -(defn fetch-fonts - [{:keys [id] :as team}] - (ptk/reify ::fetch-fonts - ptk/WatchEvent - (watch [_ state stream] - (->> (rp/query! :team-font-variants {:team-id id}) - (rx/map (fn [items] - #(assoc % :dashboard-fonts (d/index-by :id items)))))))) - -(defn add-font - [font] - (ptk/reify ::add-font - ptk/UpdateEvent - (update [_ state] - (update state :dashboard-fonts assoc (:id font) font)))) - - -(defn update-font - [{:keys [id font-family] :as font}] - (ptk/reify ::update-font - ptk/UpdateEvent - (update [_ state] - (let [font (assoc font :font-id (str "custom-" (str/slug font-family)))] - (update state :dashboard-fonts assoc id font))) - - ptk/WatchEvent - (watch [_ state stream] - (let [font (get-in state [:dashboard-fonts id])] - (->> (rp/mutation! :update-font-variant font) - (rx/ignore)))))) - -(defn delete-font - [{:keys [id] :as font}] - (ptk/reify ::delete-font - ptk/UpdateEvent - (update [_ state] - (update state :dashboard-fonts dissoc id)) - - ptk/WatchEvent - (watch [_ state stream] - (let [params (select-keys font [:id :team-id])] - (->> (rp/mutation! :delete-font-variant params) - (rx/ignore)))))) - -;; (defn upload-font -;; [{:keys [id] :as font}] -;; (ptk/reify ::upload-font -;; ptk/WatchEvent -;; (watch [_ state stream] -;; (let [{:keys [on-success on-error] -;; :or {on-success identity -;; on-error rx/throw}} (meta params)] -;; (->> (rp/mutation! :create-font-variant font) -;; (rx/tap on-success) -;; (rx/catch on-error)))))) - -;; (defn add-font -;; "Add fonts to the state in a pending to upload state." -;; [font] -;; (ptk/reify ::add-font -;; ptk/UpdateEvent -;; (update [_ state] -;; (let [id (uuid/next) -;; font (-> font -;; (assoc :created-at (dt/now)) -;; (assoc :id id) -;; (assoc :status :draft))] -;; (js/console.log (clj->js font)) -;; (assoc-in state [:dashboard-fonts id] font))))) diff --git a/frontend/src/app/main/data/fonts.cljs b/frontend/src/app/main/data/fonts.cljs index 641f91044..899285654 100644 --- a/frontend/src/app/main/data/fonts.cljs +++ b/frontend/src/app/main/data/fonts.cljs @@ -6,42 +6,68 @@ (ns app.main.data.fonts (:require + ["opentype.js" :as ot] + [app.common.data :as d] + [app.common.spec :as us] [app.common.media :as cm] + [app.common.uuid :as uuid] [app.main.fonts :as fonts] [app.main.repo :as rp] [app.util.i18n :as i18n :refer [tr]] + [app.util.logging :as log] [beicon.core :as rx] [cljs.spec.alpha :as s] + [app.util.webapi :as wa] [cuerdas.core :as str] [potok.core :as ptk])) -(defn prepare-font-variant - [item] - {:id (str (:font-style item) "-" (:font-weight item)) - :name (str (cm/font-weight->name (:font-weight item)) " " - (str/capital (:font-style item))) - :style (:font-style item) - :weight (str (:font-weight item)) - ::fonts/woff1-file-id (:woff1-file-id item) - ::fonts/woff2-file-id (:woff2-file-id item) - ::fonts/ttf-file-id (:ttf-file-id item) - ::fonts/otf-file-id (:otf-file-id item)}) - -(defn prepare-font - [[id [item :as items]]] - {:id id - :name (:font-family item) - :family (:font-family item) - :variants (mapv prepare-font-variant items)}) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; General purpose events & IMPL +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defn team-fonts-loaded [fonts] - (ptk/reify ::team-fonts-loaded - ptk/EffectEvent - (effect [_ state stream] - (let [fonts (->> (group-by :font-id fonts) - (mapv prepare-font))] - (fonts/register! :custom fonts))))) + (letfn [;; Prepare font to the internal font database format. + (prepare-font [[id [item :as items]]] + {:id id + :name (:font-family item) + :family (:font-family item) + :variants (->> items + (map prepare-font-variant) + (sort-by variant-sort-fn) + (vec))}) + + (variant-sort-fn [item] + [(:weight item) + (if (= "normal" (:style item)) 1 2)]) + + (prepare-font-variant [item] + {:id (str (:font-style item) "-" (:font-weight item)) + :name (str (cm/font-weight->name (:font-weight item)) + (when (not= "normal" (:font-style item)) + (str " " (str/capital (:font-style item))))) + :style (:font-style item) + :weight (str (:font-weight item)) + ::fonts/woff1-file-id (:woff1-file-id item) + ::fonts/woff2-file-id (:woff2-file-id item) + ::fonts/ttf-file-id (:ttf-file-id item) + ::fonts/otf-file-id (:otf-file-id item)}) + + (adapt-font-id [variant] + (update variant :font-id #(str "custom-" %)))] + + (ptk/reify ::team-fonts-loaded + ptk/UpdateEvent + (update [_ state] + (assoc state :dashboard-fonts (d/index-by :id fonts))) + + ptk/EffectEvent + (effect [_ state stream] + (let [fonts (->> fonts + (map adapt-font-id) + (group-by :font-id) + (mapv prepare-font))] + (fonts/register! :custom fonts)))))) (defn load-team-fonts [team-id] @@ -51,7 +77,168 @@ (->> (rp/query :team-font-variants {:team-id team-id}) (rx/map team-fonts-loaded))))) +(defn process-upload + "Given a seq of blobs and the team id, creates a ready-to-use fonts + map with temporal ID's associated to each font entry." + [blobs team-id] + (letfn [(prepare [{:keys [font type name data] :as params}] + (let [family (or (.getEnglishName ^js font "preferredFamily") + (.getEnglishName ^js font "fontFamily")) + variant (or (.getEnglishName ^js font "preferredSubfamily") + (.getEnglishName ^js font "fontSubfamily"))] + {:content {:data (js/Uint8Array. data) + :name name + :type type} + :font-family family + :font-weight (cm/parse-font-weight variant) + :font-style (cm/parse-font-style variant)})) -(defn get-fonts - [backend] - (get @fonts/fonts backend [])) + (join [res {:keys [content] :as font}] + (let [key-fn (juxt :font-family :font-weight :font-style) + existing (d/seek #(= (key-fn font) (key-fn %)) (vals res))] + (if existing + (update res + (:id existing) + (fn [existing] + (-> existing + (update :data assoc (:type content) (:data content)) + (update :names conj (:name content))))) + (let [tmp-id (uuid/next)] + (assoc res tmp-id + (-> font + (assoc :id tmp-id) + (assoc :team-id team-id) + (assoc :names #{(:name content)}) + (assoc :data {(:type content) + (:data content)}) + (dissoc :content))))))) + + (parse-mtype [mtype] + (case mtype + "application/vnd.oasis.opendocument.formula-template" "font/otf" + mtype)) + + (parse-font [{:keys [data] :as params}] + (try + (assoc params :font (ot/parse data)) + (catch :default e + (log/warn :msg (str/fmt "skiping file %s, unsupported format" (:name params))) + nil))) + + (read-blob [blob] + (->> (wa/read-file-as-array-buffer blob) + (rx/map (fn [data] + {:data data + :name (.-name blob) + :type (parse-mtype (.-type blob))}))))] + + (->> (rx/from blobs) + (rx/mapcat read-blob) + (rx/map parse-font) + (rx/filter some?) + (rx/map prepare) + (rx/reduce join {})))) + +(defn- calculate-family-to-id-mapping + [existing] + (reduce #(assoc %1 (:font-family %2) (:font-id %2)) {} (vals existing))) + +(defn merge-and-group-fonts + "Function responsible to merge (and apropriatelly group) incoming + fonts (processed by `process-upload`) into existing fonts + in local state, preserving correct font-id references." + [current-fonts installed-fonts incoming-fonts] + (loop [famdb (-> (merge current-fonts installed-fonts) + (calculate-family-to-id-mapping)) + items (vals incoming-fonts) + result current-fonts] + (if-let [{:keys [id font-family] :as item} (first items)] + (let [font-id (or (get famdb font-family) + (uuid/next)) + font (assoc item :font-id font-id)] + (recur (assoc famdb font-family font-id) + (rest items) + (assoc result id font))) + result))) + +(defn rename-and-regroup + "Function responsible to rename a font in a local state and properly + regroup it to the apropriate `font-id` having in account current + fonts and installed fonts." + [current-fonts id name installed-fonts] + (let [famdb (-> (merge current-fonts installed-fonts) + (calculate-family-to-id-mapping)) + font-id (or (get famdb name) + (uuid/next))] + (update current-fonts id (fn [font] + (-> font + (assoc :name name) + (assoc :font-id font-id)))))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dashboard related events +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defn add-font + [font] + (ptk/reify ::add-font + ptk/UpdateEvent + (update [_ state] + (update state :dashboard-fonts assoc (:id font) font)))) + +(defn update-font + [{:keys [id name] :as params}] + (us/assert ::us/uuid id) + (us/assert ::us/not-empty-string name) + (ptk/reify ::update-font + ptk/UpdateEvent + (update [_ state] + ;; Update all variants that has the same font-id with the new + ;; name in the local state. + (update state :dashboard-fonts + (fn [fonts] + (d/mapm (fn [_ font] + (cond-> font + (= id (:font-id font)) + (assoc :font-family name))) + fonts)))) + + ptk/WatchEvent + (watch [_ state stream] + (let [team-id (:current-team-id state)] + (->> (rp/mutation! :update-font {:id id :name name :team-id team-id}) + (rx/ignore)))))) + +(defn delete-font + "Delete all variants related to the provided `font-id`." + [font-id] + (us/assert ::us/uuid font-id) + (ptk/reify ::delete-font + ptk/UpdateEvent + (update [_ state] + (update state :dashboard-fonts + (fn [variants] + (d/removem (fn [[id variant]] + (= (:font-id variant) font-id)) variants)))) + ptk/WatchEvent + (watch [_ state stream] + (let [team-id (:current-team-id state)] + (->> (rp/mutation! :delete-font {:id font-id :team-id team-id}) + (rx/ignore)))))) + +(defn delete-font-variant + [id] + (us/assert ::us/uuid id) + (ptk/reify ::delete-font-variants + ptk/UpdateEvent + (update [_ state] + (update state :dashboard-fonts + (fn [variants] + (d/removem (fn [[_ variant]] + (= (:id variant) id)) + variants)))) + ptk/WatchEvent + (watch [_ state stream] + (let [team-id (:current-team-id state)] + (->> (rp/mutation! :delete-font-variant {:id id :team-id team-id}) + (rx/ignore)))))) diff --git a/frontend/src/app/main/fonts.cljs b/frontend/src/app/main/fonts.cljs index 8ca0ef906..e9030abb3 100644 --- a/frontend/src/app/main/fonts.cljs +++ b/frontend/src/app/main/fonts.cljs @@ -54,10 +54,6 @@ (vec) (reset! fonts)))) -(defn- remove-fonts - [db backend] - (reduce-kv #(cond-> %1 (= backend (:backend %3)) (dissoc %2)) db db)) - (defn register! [backend fonts] (swap! fontsdb @@ -94,7 +90,6 @@ (unchecked-set node "type" "text/css") node)) - (defn- create-style-element [css] (let [node (.createElement js/document "style")] @@ -164,9 +159,9 @@ url(%(otf-uri)s) format('otf'); }") -(defn- font-id->uri - [font-id] - (str (u/join cf/public-uri "assets/by-id/" font-id))) +(defn- asset-id->uri + [asset-id] + (str (u/join cf/public-uri "assets/by-id/" asset-id))) (defn generate-custom-font-variant-css [family variant] @@ -174,10 +169,10 @@ {:family family :style (:style variant) :weight (:weight variant) - :woff2-uri (font-id->uri (::woff2-file-id variant)) - :woff1-uri (font-id->uri (::woff1-file-id variant)) - :ttf-uri (font-id->uri (::ttf-file-id variant)) - :otf-uri (font-id->uri (::otf-file-id variant))})) + :woff2-uri (asset-id->uri (::woff2-file-id variant)) + :woff1-uri (asset-id->uri (::woff1-file-id variant)) + :ttf-uri (asset-id->uri (::ttf-file-id variant)) + :otf-uri (asset-id->uri (::otf-file-id variant))})) (defn- generate-custom-font-css [{:keys [family variants] :as font}] @@ -188,7 +183,7 @@ (defmethod load-font :custom [{:keys [id family variants ::on-loaded] :as font}] (when (exists? js/window) - (js/console.log "[debug:fonts]: loading google font" id) + (js/console.log "[debug:fonts]: loading custom font" id) (let [css (generate-custom-font-css font)] (add-font-css! css)))) diff --git a/frontend/src/app/main/ui/dashboard/fonts.cljs b/frontend/src/app/main/ui/dashboard/fonts.cljs index 565d1ce51..241f7c2b2 100644 --- a/frontend/src/app/main/ui/dashboard/fonts.cljs +++ b/frontend/src/app/main/ui/dashboard/fonts.cljs @@ -6,11 +6,11 @@ (ns app.main.ui.dashboard.fonts (:require - ["opentype.js" :as ot] + [app.common.data :as d] [app.common.media :as cm] [app.common.uuid :as uuid] [app.main.data.dashboard :as dd] - [app.main.data.dashboard.fonts :as df] + [app.main.data.fonts :as df] [app.main.data.modal :as modal] [app.main.ui.components.file-uploader :refer [file-uploader]] [app.main.ui.components.context-menu :refer [context-menu]] @@ -64,56 +64,23 @@ [:h1 (tr "labels.fonts")]] [:nav #_[:ul - [:li {:class (when (= section :fonts) "active")} - [:a {:on-click go-fonts} (tr "labels.custom-fonts")]] - [:li {:class (when (= section :providers) "active")} - [:a {:on-click go-providers} (tr "labels.font-providers")]]]] + [:li {:class (when (= section :fonts) "active")} + [:a {:on-click go-fonts} (tr "labels.custom-fonts")]] + [:li {:class (when (= section :providers) "active")} + [:a {:on-click go-providers} (tr "labels.font-providers")]]]] [:div]])) -(defn- prepare-fonts - [blobs] - (letfn [(prepare [{:keys [font type name data] :as params}] - (let [family (or (.getEnglishName ^js font "preferredFamily") - (.getEnglishName ^js font "fontFamily")) - variant (or (.getEnglishName ^js font "preferredSubfamily") - (.getEnglishName ^js font "fontSubfamily"))] - {:content {:data (js/Uint8Array. data) - :name name - :type type} - :font-id (str "custom-" (str/slug family)) - :font-family family - :font-weight (cm/parse-font-weight variant) - :font-style (cm/parse-font-style variant)})) - - (parse-mtype [mtype] - (case mtype - "application/vnd.oasis.opendocument.formula-template" "font/otf" - mtype)) - - (parse-font [{:keys [data] :as params}] - (try - (assoc params :font (ot/parse data)) - (catch :default e - (log/warn :msg (str/fmt "skiping file %s, unsupported format" (:name params))) - nil))) - - (read-blob [blob] - (->> (wa/read-file-as-array-buffer blob) - (rx/map (fn [data] - {:data data - :name (.-name blob) - :type (parse-mtype (.-type blob))}))))] - - (->> (rx/from blobs) - (rx/mapcat read-blob) - (rx/map parse-font) - (rx/filter some?) - (rx/map prepare)))) +(mf/defc font-variant-display-name + [{:keys [variant]}] + [:* + [:span (cm/font-weight->name (:font-weight variant))] + (when (not= "normal" (:font-style variant)) + [:span " " (str/capital (:font-style variant))])]) (mf/defc fonts-upload - [{:keys [team] :as props}] - (let [fonts (mf/use-state {}) + [{:keys [team installed-fonts] :as props}] + (let [fonts (mf/use-state {}) input-ref (mf/use-ref) uploading (mf/use-state #{}) @@ -126,19 +93,11 @@ on-selected (mf/use-callback - (mf/deps team) + (mf/deps team installed-fonts) (fn [blobs] - (->> (prepare-fonts blobs) - (rx/subs (fn [{:keys [content] :as font}] - (let [key (font-key-fn font)] - (swap! fonts update key - (fn [val] - (-> (or val font) - (assoc :team-id (:id team)) - (update :id #(or % (uuid/next))) - (update :data assoc (:type content) (:data content)) - (update :names (fnil conj #{}) (:name content)) - (dissoc :content)))))) + (->> (df/process-upload blobs (:id team)) + (rx/subs (fn [result] + (swap! fonts df/merge-and-group-fonts installed-fonts result)) (fn [error] (js/console.error "error" error)))))) @@ -146,22 +105,26 @@ (mf/use-callback (mf/deps team) (fn [item] - (let [key (font-key-fn item)] - (swap! uploading conj (:id item)) - (->> (rp/mutation! :create-font-variant item) - (rx/delay-at-least 2000) - (rx/subs (fn [font] - (swap! fonts dissoc key) - (swap! uploading disj (:id item)) - (st/emit! (df/add-font font))) - (fn [error] - (js/console.log "error" error))))))) + (swap! uploading conj (:id item)) + (->> (rp/mutation! :create-font-variant item) + (rx/delay-at-least 2000) + (rx/subs (fn [font] + (swap! fonts dissoc (:id item)) + (swap! uploading disj (:id item)) + (st/emit! (df/add-font font))) + (fn [error] + (js/console.log "error" error)))))) + + on-blur-name + (fn [id event] + (let [name (dom/get-target-val event)] + (swap! fonts df/rename-and-regroup id name installed-fonts))) on-delete (mf/use-callback (mf/deps team) - (fn [item] - (swap! fonts dissoc (font-key-fn item))))] + (fn [{:keys [id] :as item}] + (swap! fonts dissoc id)))] [:div.dashboard-fonts-upload [:div.dashboard-fonts-hero @@ -177,7 +140,7 @@ [:div.btn-primary {:on-click on-click} - [:span "Add custom font"] + [:span (tr "labels.add-custom-font")] [:& file-uploader {:input-id "font-upload" :accept cm/str-font-types :multi true @@ -190,11 +153,11 @@ [:div.font-item.table-row {:key (:id item)} [:div.table-field.family [:input {:type "text" + :on-blur #(on-blur-name (:id item) %) :default-value (:font-family item)}]] - [:div.table-field.variant - [:span (cm/font-weight->name (:font-weight item))] - (when (not= "normal" (:font-style item)) - [:span " " (str/capital (:font-style item))])] + [:div.table-field.variants + [:span.label + [:& font-variant-display-name {:variant item}]]] [:div.table-field.filenames (for [item (:names item)] [:span item])] @@ -210,56 +173,67 @@ [:span.icon.close {:on-click #(on-delete item)} i/close]]]))]])) (mf/defc installed-font - [{:keys [font] :as props}] - (let [open-menu? (mf/use-state false) + [{:keys [font-id variants] :as props}] + (let [font (first variants) + + variants (sort-by (fn [item] + [(:font-weight item) + (if (= "normal" (:font-style item)) 1 2)]) + variants) + + open-menu? (mf/use-state false) edit? (mf/use-state false) state (mf/use-var (:font-family font)) on-change - (mf/use-callback - (mf/deps font) - (fn [event] - (reset! state (dom/get-target-val event)))) + (fn [event] + (reset! state (dom/get-target-val event))) on-save - (mf/use-callback - (mf/deps font) - (fn [event] - (let [font (assoc font :font-family @state)] - (st/emit! (df/update-font font)) - (reset! edit? false)))) + (fn [event] + (let [font-family @state] + (st/emit! (df/update-font + {:id font-id + :name font-family})) + (reset! edit? false))) on-key-down - (mf/use-callback - (mf/deps font) - (fn [event] - (when (kbd/enter? event) - (on-save event)))) + (fn [event] + (when (kbd/enter? event) + (on-save event))) on-cancel - (mf/use-callback - (mf/deps font) - (fn [event] - (reset! edit? false) - (reset! state (:font-family font)))) + (fn [event] + (reset! edit? false) + (reset! state (:font-family font))) - delete-fn - (mf/use-callback - (mf/deps font) - (st/emitf (df/delete-font font))) + delete-font-fn + (fn [] (st/emit! (df/delete-font font-id))) + + delete-variant-fn + (fn [id] (st/emit! (df/delete-font-variant id))) on-delete - (mf/use-callback - (mf/deps font) - (st/emitf (modal/show - {:type :confirm - :title (tr "modals.delete-font.title") - :message (tr "modals.delete-font.message") - :accept-label (tr "labels.delete") - :on-accept delete-fn})))] + (fn [] + (st/emit! (modal/show + {:type :confirm + :title (tr "modals.delete-font.title") + :message (tr "modals.delete-font.message") + :accept-label (tr "labels.delete") + :on-accept (fn [props] + (delete-font-fn))}))) + on-delete-variant + (fn [id] + (st/emit! (modal/show + {:type :confirm + :title (tr "modals.delete-font-variant.title") + :message (tr "modals.delete-font-variant.message") + :accept-label (tr "labels.delete") + :on-accept (fn [props] + (delete-variant-fn id))})))] - [:div.font-item.table-row {:key (:id font)} + [:div.font-item.table-row [:div.table-field.family (if @edit? [:input {:type "text" @@ -268,10 +242,14 @@ :on-change on-change}] [:span (:font-family font)])] - [:div.table-field.variant - [:span (cm/font-weight->name (:font-weight font))] - (when (not= "normal" (:font-style font)) - [:span " " (str/capital (:font-style font))])] + [:div.table-field.variants + (for [item variants] + [:div.variant + [:span.label + [:& font-variant-display-name {:variant item}]] + [:span.icon.close + {:on-click #(on-delete-variant (:id item))} + i/plus]])] [:div] @@ -281,7 +259,7 @@ {:disabled (str/blank? @state) :on-click on-save :class (dom/classnames :btn-disabled (str/blank? @state))} - "Save"] + (tr "labels.save")] [:span.icon.close {:on-click on-cancel} i/close]] [:div.table-field.options @@ -313,41 +291,45 @@ [:h3 (tr "labels.installed-fonts")] [:div.installed-fonts-header [:div.table-field.family (tr "labels.font-family")] - [:div.table-field.variant (tr "labels.font-variant")] + [:div.table-field.variants (tr "labels.font-variants")] [:div] [:div.table-field.search-input [:input {:placeholder (tr "labels.search-font") :default-value "" :on-change on-change }]]] - (for [[font-id fonts] (->> fonts - (filter matches?) - (group-by :font-id))] - [:div.fonts-group - (for [font (sort-by (juxt :font-weight :font-style) fonts)] - [:& installed-font {:key (:id font) :font font}])])])) + (cond + (seq fonts) + (for [[font-id variants] (->> (vals fonts) + (filter matches?) + (group-by :font-id))] + [:& installed-font {:key (str font-id) + :font-id font-id + :variants variants}]) + + (nil? fonts) + [:div.fonts-placeholder + [:div.icon i/loader] + [:div.label (tr "dashboard.loading-fonts")]] + + :else + [:div.fonts-placeholder + [:div.icon i/text] + [:div.label (tr "dashboard.fonts.empty-placeholder")]])])) (mf/defc fonts-page [{:keys [team] :as props}] - (let [fonts-map (mf/deref refs/dashboard-fonts) - fonts (vals fonts-map)] - - (mf/use-effect - (mf/deps team) - (st/emitf (df/fetch-fonts team))) - + (let [fonts (mf/deref refs/dashboard-fonts)] [:* [:& header {:team team :section :fonts}] [:section.dashboard-container.dashboard-fonts - [:& fonts-upload {:team team}] + [:& fonts-upload {:team team :installed-fonts fonts}] + [:& installed-fonts {:team team :fonts fonts}]]])) - (when fonts - [:& installed-fonts {:team team - :fonts fonts}])]])) (mf/defc font-providers-page [{:keys [team] :as props}] [:* [:& header {:team team :section :providers}] [:section.dashboard-container - [:span "hello world font providers"]]]) + [:span "font providers"]]]) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs index 5329aa494..e0649d7b6 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs @@ -310,7 +310,16 @@ [:div.row-flex [:div.input-select.font-option {:on-click #(reset! open-selector? true)} - (:name font)]] + (cond + (= :multiple font-id) + "--" + + (some? font) + (:name font) + + :else + (tr "dashboard.fonts.deleted-placeholder"))]] + [:div.row-flex (let [size-options [8 9 10 11 12 14 18 24 36 48 72] diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 9d50b7b8d..a0cd82b37 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -206,6 +206,12 @@ msgstr "Duplicate %s files" msgid "dashboard.empty-files" msgstr "You still have no files here" +msgid "dashboard.fonts.deleted-placeholder" +msgstr "Font deleted" + +msgid "dashboard.fonts.empty-placeholder" +msgstr "You still have no custom fonts installed." + #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -239,6 +245,9 @@ msgstr "Shared Libraries" msgid "dashboard.loading-files" msgstr "loading your files …" +msgid "dashboard.loading-fonts" +msgstr "loading your fonts …" + #: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Move to" @@ -790,6 +799,9 @@ msgstr "You are seeing version %s" msgid "labels.accept" msgstr "Accept" +msgid "labels.add-custom-font" +msgstr "Add custom font" + #: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Admin" @@ -891,8 +903,8 @@ msgstr "Font Family" msgid "labels.font-providers" msgstr "Font providers" -msgid "labels.font-variant" -msgstr "Style" +msgid "labels.font-variants" +msgstr "Styles" msgid "labels.fonts" msgstr "Fonts" @@ -1189,6 +1201,14 @@ msgstr "Are you sure you want to delete %s files?" msgid "modals.delete-file-multi-confirm.title" msgstr "Deleting %s files" +msgid "modals.delete-font-variant.message" +msgstr "" +"Are you sure you want to delete this font style? It will not load if is " +"used in a file." + +msgid "modals.delete-font-variant.title" +msgstr "Deleting font style" + msgid "modals.delete-font.message" msgstr "" "Are you sure you want to delete this font? It will not load if is used in a " diff --git a/frontend/translations/es.po b/frontend/translations/es.po index eb9ae497c..7063b5649 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -210,6 +210,12 @@ msgstr "Duplicar %s archivos" msgid "dashboard.empty-files" msgstr "Todavía no hay ningún archivo aquí" +msgid "dashboard.fonts.deleted-placeholder" +msgstr "Fuente eliminada." + +msgid "dashboard.fonts.empty-placeholder" +msgstr "Aun no tienes fuentes personalizadas." + #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -243,6 +249,9 @@ msgstr "Bibliotecas Compartidas" msgid "dashboard.loading-files" msgstr "cargando tus ficheros …" +msgid "dashboard.loading-fonts" +msgstr "cargando tus fuentes …" + #: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Mover a" @@ -796,6 +805,9 @@ msgstr "Estás viendo la versión %s" msgid "labels.accept" msgstr "Aceptar" +msgid "labels.add-custom-font" +msgstr "Añadir fuentes personalizada" + #: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Administración" @@ -893,8 +905,8 @@ msgstr "Familia de fuente" msgid "labels.font-providers" msgstr "Proveedores de fuentes" -msgid "labels.font-variant" -msgstr "Estilo" +msgid "labels.font-variants" +msgstr "Estilos" msgid "labels.fonts" msgstr "Fuentes" @@ -1191,10 +1203,18 @@ msgstr "¿Seguro que quieres eliminar %s archivos?" msgid "modals.delete-file-multi-confirm.title" msgstr "Eliminando %s archivos" +msgid "modals.delete-font-variant.message" +msgstr "" +"Estas seguro de querer eliminar esta estilo de fuente? Dejara de cargar si " +"es usada en algun fichero." + +msgid "modals.delete-font-variant.title" +msgstr "Eliminando estilo de fuente" + msgid "modals.delete-font.message" msgstr "" -"Are you sure you want to delete this font? It will not load if is used in a " -"file." +"Estas seguro de querer eliminar esta fuente? Dejara de cargar si es usada " +"en algun fichero." msgid "modals.delete-font.title" msgstr "Eliminando fuente" From c44befb957225d87c7031995631a85aaafdbd22f Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 25 May 2021 16:30:49 +0200 Subject: [PATCH 132/135] :paperclip: Minor cosmetic fixes on onboarding ns. --- frontend/src/app/main/ui/onboarding.cljs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/main/ui/onboarding.cljs b/frontend/src/app/main/ui/onboarding.cljs index 58877f7e9..307915145 100644 --- a/frontend/src/app/main/ui/onboarding.cljs +++ b/frontend/src/app/main/ui/onboarding.cljs @@ -507,7 +507,7 @@ [:div.modal-title [:h2 "Upload/use custom fonts"]] [:div.modal-content - [:p "From now on you can upload fonts from your computer to a Penpot team and use them across its files. This is one of the most requested features since our first release (we listen!)"] + [:p "From now on you can upload fonts to a Penpot team and use them across its files. This is one of the most requested features since our first release (we listen!)"] [:p "We hope you enjoy having more typography options and our brand new font selector."]] [:div.modal-navigation [:button.btn-secondary {:on-click next} "Continue"] From e5d47556195d45ad6749f9408ab0da1c85b5abfe Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 25 May 2021 16:45:04 +0200 Subject: [PATCH 133/135] :paperclip: Revert some changes related to build resource usage. --- frontend/shadow-cljs.edn | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/frontend/shadow-cljs.edn b/frontend/shadow-cljs.edn index ffe3cf888..d4b2b0a2e 100644 --- a/frontend/shadow-cljs.edn +++ b/frontend/shadow-cljs.edn @@ -1,8 +1,6 @@ {:http {:port 3448} :nrepl {:port 3447} - :jvm-opts ["-Xmx600m" "-Xms50m" - "-XX:+UseZGC" "-XX:ConcGCThreads=1" - "-XX:-OmitStackTraceInFastThrow"] + :jvm-opts ["-Xmx700m" "-Xms100m" "-XX:+UseSerialGC" "-XX:-OmitStackTraceInFastThrow"] :dev-http {8888 "classpath:public"} :source-paths ["src", "vendor", "resources", "../common", "tests", "dev"] From 08dce3bcdcb8570169c876c30746057d1e1ce462 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 25 May 2021 21:19:13 +0200 Subject: [PATCH 134/135] :bug: Fix possible bug in domain whitelisting checking. --- backend/src/app/config.clj | 3 +- backend/src/app/rpc/mutations/profile.clj | 22 +++++----- .../tests/app/tests/test_services_profile.clj | 4 +- common/app/common/spec.cljc | 43 +++++++++++-------- 4 files changed, 39 insertions(+), 33 deletions(-) diff --git a/backend/src/app/config.clj b/backend/src/app/config.clj index 819b3da75..30ca83d38 100644 --- a/backend/src/app/config.clj +++ b/backend/src/app/config.clj @@ -84,7 +84,6 @@ :allow-demo-users true :registration-enabled true - :registration-domain-whitelist "" :telemetry-enabled false :telemetry-uri "https://telemetry.penpot.app/" @@ -161,7 +160,7 @@ (s/def ::profile-complaint-threshold ::us/integer) (s/def ::public-uri ::us/string) (s/def ::redis-uri ::us/string) -(s/def ::registration-domain-whitelist ::us/string) +(s/def ::registration-domain-whitelist ::us/set-of-str) (s/def ::registration-enabled ::us/boolean) (s/def ::rlimits-image ::us/integer) (s/def ::rlimits-password ::us/integer) diff --git a/backend/src/app/rpc/mutations/profile.clj b/backend/src/app/rpc/mutations/profile.clj index 738c3f550..71c2a0d90 100644 --- a/backend/src/app/rpc/mutations/profile.clj +++ b/backend/src/app/rpc/mutations/profile.clj @@ -60,9 +60,10 @@ (ex/raise :type :restriction :code :registration-disabled)) - (when-not (email-domain-in-whitelist? (cfg/get :registration-domain-whitelist) (:email params)) - (ex/raise :type :validation - :code :email-domain-is-not-allowed)) + (when-let [domains (cfg/get :registration-domain-whitelist)] + (when-not (email-domain-in-whitelist? domains (:email params)) + (ex/raise :type :validation + :code :email-domain-is-not-allowed))) (when-not (:terms-privacy params) (ex/raise :type :validation @@ -137,14 +138,15 @@ ::audit/profile-id (:id profile)}))))) (defn email-domain-in-whitelist? - "Returns true if email's domain is in the given whitelist or if given - whitelist is an empty string." - [whitelist email] - (if (str/empty-or-nil? whitelist) + "Returns true if email's domain is in the given whitelist or if + given whitelist is an empty string." + [domains email] + (if (or (empty? domains) + (nil? domains)) true - (let [domains (str/split whitelist #",\s*") - domain (second (str/split email #"@" 2))] - (contains? (set domains) domain)))) + (let [[_ candidate] (-> (str/lower email) + (str/split #"@" 2))] + (contains? domains candidate)))) (def ^:private sql:profile-existence "select exists (select * from profile diff --git a/backend/tests/app/tests/test_services_profile.clj b/backend/tests/app/tests/test_services_profile.clj index 7ac20c849..c3daf5c14 100644 --- a/backend/tests/app/tests/test_services_profile.clj +++ b/backend/tests/app/tests/test_services_profile.clj @@ -179,10 +179,10 @@ )) (t/deftest registration-domain-whitelist - (let [whitelist "gmail.com, hey.com, ya.ru"] + (let [whitelist #{"gmail.com" "hey.com" "ya.ru"}] (t/testing "allowed email domain" (t/is (true? (profile/email-domain-in-whitelist? whitelist "username@ya.ru"))) - (t/is (true? (profile/email-domain-in-whitelist? "" "username@somedomain.com")))) + (t/is (true? (profile/email-domain-in-whitelist? #{} "username@somedomain.com")))) (t/testing "not allowed email domain" (t/is (false? (profile/email-domain-in-whitelist? whitelist "username@somedomain.com")))))) diff --git a/common/app/common/spec.cljc b/common/app/common/spec.cljc index 00aebc82a..61c651136 100644 --- a/common/app/common/spec.cljc +++ b/common/app/common/spec.cljc @@ -137,29 +137,34 @@ ;; --- SPEC: email +(def email-re #"[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+") -(let [re #"[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+" - cfn (fn [v] - (if (string? v) - (if-let [matches (re-seq re v)] - (first matches) - (do ::s/invalid)) - ::s/invalid))] - (s/def ::email (s/conformer cfn str))) - +(s/def ::email + (s/conformer + (fn [v] + (if (string? v) + (if-let [matches (re-seq email-re v)] + (first matches) + (do ::s/invalid)) + ::s/invalid)) + str)) ;; --- SPEC: set-of-str -(letfn [(conformer [s] - (cond - (string? s) (into #{} (str/split s #"\s*,\s*")) - (set? s) (if (every? string? s) - s - ::s/invalid) - :else ::s/invalid)) - (unformer [s] - (str/join "," s))] - (s/def ::set-of-str (s/conformer conformer unformer))) +(s/def ::set-of-str + (s/conformer + (fn [s] + (let [xform (comp + (filter string?) + (remove str/empty?) + (remove str/blank?))] + (cond + (string? s) (->> (str/split s #"\s*,\s*") + (into #{} xform)) + (set? s) (into #{} xform s) + :else ::s/invalid))) + (fn [s] + (str/join "," s)))) ;; --- Macros From 2ac790693acdad54842d559c2c858a11c728e43a Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 25 May 2021 23:24:19 +0200 Subject: [PATCH 135/135] :bug: Fix CSRNG usage on webworker context. --- common/app/common/uuid_impl.js | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/common/app/common/uuid_impl.js b/common/app/common/uuid_impl.js index d276ce516..791dd58ea 100644 --- a/common/app/common/uuid_impl.js +++ b/common/app/common/uuid_impl.js @@ -12,17 +12,13 @@ goog.provide("app.common.uuid_impl"); goog.scope(function() { const core = cljs.core; + const global = goog.global; const self = app.common.uuid_impl; const fill = (() => { - if (typeof window === "object" && typeof window.crypto !== "undefined") { + if (typeof global.crypto !== "undefined") { return (buf) => { - window.crypto.getRandomValues(buf); - return buf; - }; - } else if (typeof self === "object" && typeof self.crypto !== "undefined") { - return (buf) => { - self.crypto.getRandomValues(buf); + global.crypto.getRandomValues(buf); return buf; }; } else if (typeof require === "function") { @@ -34,7 +30,7 @@ goog.scope(function() { }; } else { // FALLBACK - console.warn("No high quality RNG available, switching back to Math.random."); + console.warn("No SRNG available, switching back to Math.random."); return (buf) => { for (let i = 0, r; i < buf.length; i++) {