;ELC���
;;; Compiled
;;; in Emacs version 28.0.50
;;; with all optimizations.



#@32 Version number of `svg-clock'.
(defconst svg-clock-version "1.1" (#$ . 87))
(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\207" [require dom svg cl-macs time-date] 2)
#@75 compiler-macro for inlining `svg-clock-handle-p'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'svg-clock-handle-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block svg-clock-handle-p (and (memq (type-of cl-x) cl-struct-svg-clock-handle-tags) t)) nil] 9 (#$ . 274)])
(put 'svg-clock-handle-p 'compiler-macro 'svg-clock-handle-p--cmacro)
#@13 

(fn CL-X)
(defalias 'svg-clock-handle-p #[257 "\301!>\205	�\302\207" [cl-struct-svg-clock-handle-tags type-of t] 3 (#$ . 643)])
(byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put svg-clock-handle-p side-effect-free error-free put svg-clock-handle cl-deftype-satisfies] 5)
#@80 compiler-macro for inlining `svg-clock-handle-marker'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'svg-clock-handle-marker--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block svg-clock-handle-marker (progn (or (svg-clock-handle-p cl-x) (signal 'wrong-type-argument (list 'svg-clock-handle cl-x))) (aref cl-x 1))) nil] 9 (#$ . 940)])
(put 'svg-clock-handle-marker 'compiler-macro 'svg-clock-handle-marker--cmacro)
#@68 Access slot "marker" of `svg-clock-handle' struct CL-X.

(fn CL-X)
(defalias 'svg-clock-handle-marker #[257 "\301!>\204�\302\303\304D\"\210\211\305H\207" [cl-struct-svg-clock-handle-tags type-of signal wrong-type-argument svg-clock-handle 1] 5 (#$ . 1385)])
(byte-code "\300\301\302\303#\300\207" [function-put svg-clock-handle-marker side-effect-free t] 4)
#@81 compiler-macro for inlining `svg-clock-handle-overlay'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'svg-clock-handle-overlay--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block svg-clock-handle-overlay (progn (or (svg-clock-handle-p cl-x) (signal 'wrong-type-argument (list 'svg-clock-handle cl-x))) (aref cl-x 2))) nil] 9 (#$ . 1753)])
(put 'svg-clock-handle-overlay 'compiler-macro 'svg-clock-handle-overlay--cmacro)
#@69 Access slot "overlay" of `svg-clock-handle' struct CL-X.

(fn CL-X)
(defalias 'svg-clock-handle-overlay #[257 "\301!>\204�\302\303\304D\"\210\211\305H\207" [cl-struct-svg-clock-handle-tags type-of signal wrong-type-argument svg-clock-handle 2] 5 (#$ . 2204)])
(byte-code "\300\301\302\303#\300\207" [function-put svg-clock-handle-overlay side-effect-free t] 4)
#@79 compiler-macro for inlining `svg-clock-handle-timer'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'svg-clock-handle-timer--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block svg-clock-handle-timer (progn (or (svg-clock-handle-p cl-x) (signal 'wrong-type-argument (list 'svg-clock-handle cl-x))) (aref cl-x 3))) nil] 9 (#$ . 2575)])
(put 'svg-clock-handle-timer 'compiler-macro 'svg-clock-handle-timer--cmacro)
#@67 Access slot "timer" of `svg-clock-handle' struct CL-X.

(fn CL-X)
(defalias 'svg-clock-handle-timer #[257 "\301!>\204�\302\303\304D\"\210\211\305H\207" [cl-struct-svg-clock-handle-tags type-of signal wrong-type-argument svg-clock-handle 3] 5 (#$ . 3016)])
(byte-code "\300\301\302\303#\304\305\306\"\207" [function-put svg-clock-handle-timer side-effect-free t defalias copy-svg-clock-handle copy-sequence] 4)
#@105 compiler-macro for inlining `make-svg-clock-handle'.

(fn CL-WHOLE &cl-quote &key MARKER OVERLAY TIMER)
(defalias 'make-svg-clock-handle--cmacro #[385 "\300\301\"A@\300\302\"A@\300\303\"A@\211\203=�\211@\304>\203&�\211AA\262\202�\305>A@\2034�\306\262\202�\307\310@\"\210\202�\210\311\312\313\306\306&\207" [plist-member :marker :overlay :timer (:marker :overlay :timer :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:marker :overlay :timer)" cl--defsubst-expand (marker overlay timer) (cl-block make-svg-clock-handle (record 'svg-clock-handle marker overlay timer))] 14 (#$ . 3437)])
(put 'make-svg-clock-handle 'compiler-macro 'make-svg-clock-handle--cmacro)
#@85 Constructor for objects of type `svg-clock-handle'.

(fn &key MARKER OVERLAY TIMER)
(defalias 'make-svg-clock-handle #[128 "\300\301\"A@\300\302\"A@\300\303\"A@\211\203=�\211@\304>\203&�\211AA\262\202�\305>A@\2034�\306\262\202�\307\310@\"\210\202�\210\311\312$\207" [plist-member :marker :overlay :timer (:marker :overlay :timer :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:marker :overlay :timer)" record svg-clock-handle] 9 (#$ . 4156)])
(byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303&	\207" [function-put make-svg-clock-handle side-effect-free t cl-struct-define svg-clock-handle nil cl-structure-object record ((cl-tag-slot) (marker) (overlay) (timer)) cl-struct-svg-clock-handle-tags] 11)
#@296 Return a list of SVG elements using the colors FOREGROUND and BACKGROUND.
The elements are supposed to be added to an SVG object as `defs'.
The SVG may then `use': `clock-face', `second-hand', `minute-hand'
and `hour-hand'.  The clock-face has a size of 1x1.

(fn FOREGROUND BACKGROUND NO-FACE)
(defalias 'svg-clock--create-def-elements #[771 "\300\301\302\303\304\303\305\306\nB\307&\"\300\310\302\303\304\303\311\306B\312&\"\300\313\302\303\314\303\315\306\fB\316&\"\300\317\302\303\320\303\321\306
B\322&\"\300\323\302\303\324\303\325\306B\326&\"\300\327\330\303\211\331\332\333B%\"\300\334\330\303\211\335\336\333B%\"\337\340\341\342\334!\342\327!D?\205}�\343\344\345\346\347\350#\"\244#\257\207" [svg-clock-symbol tickshort svg-clock-line 0.5 0.02 0.04 stroke (stroke-width . 0.01) ticklong 0.09 (stroke-width . 0.02) hour-hand 0.22 0.54 (stroke-width . 0.04) minute-hand 0.12 0.55 (stroke-width . 0.03) second-hand 0.1 0.56 (stroke-width . 0.005) hand-cap svg-clock-circle 0.03 (stroke . "none") fill background 0.49 (stroke . "none") apply svg-clock-group clock-face svg-clock-use mapcar #[257 "\300\301\246\302U\203
�\303\202�\304\305\306\307\211$\"\207" [svg-clock-use 30 0 ticklong tickshort svg-clock-transform rotate 0.5] 8 "\n\n(fn ANGLE)"] number-sequence 0 354 6] 20 (#$ . 4930)])
#@213 Return an SVG element displaying an analog clock.
The clock shows the given TIME, it has a diameter of SIZE, and
its colors are FOREGROUND and BACKGROUND.

(fn TIME SIZE FOREGROUND BACKGROUND NO-SECONDS NO-FACE)
(defalias 'svg-clock--create-svg #[1542 "\300#\301\211\"@A@\302\n8\303\304\305\306\307!\310?\205/�\306\311\312\313\314_\315\211$\"C\306\316\312\313\314_
\317\245\\\315\211$\"\306\320\312\313\321_
\322\245\\\315\211$\"D\"B#\211\203i�\211@\323\"\210A\266\202\202V�\210\323\"\210\324\306\305\312\325\211#\"\"\210\207" [svg-clock--create-def-elements svg-create 2 apply svg-clock-group clock svg-clock-use clock-face append second-hand svg-clock-transform rotate 6 0.5 minute-hand 10.0 hour-hand 30 2.0 svg-clock-def dom-append-child scale] 25 (#$ . 6255) nil])
#@51 Return maximal size for displaying the svg clock.
(defalias 'svg-clock--window-size #[0 "\212\300\301!\211\203 �\302!\3038@Z\3048A@Z^\266\203\202!�\305\262)\207" [get-buffer-window "*clock*" window-inside-pixel-edges 2 3 100] 6 (#$ . 7062)])
(defvar svg-clock--prev-update (make-decoded-time))
#@182 Create an SVG element.
See `svg-clock-insert' for meaning of arguments SIZE, FOREGROUND, BACKGROUND
and OFFSET.

(fn SIZE FOREGROUND BACKGROUND &optional OFFSET NO-SECONDS NO-FACE)
(defalias 'svg-clock--do-create #[1539 "\301\203�\302\303 \304!\"\202�\303 !\203\"�A@A@\232?\205:�\211\206+�\305 \306		&\262\207" [svg-clock--prev-update decode-time time-add current-time seconds-to-time svg-clock--window-size svg-clock--create-svg] 15 (#$ . 7371)])
#@226 Update the clock referenced as CLOCK-HANDLE.
See `svg-clock-insert' for meaning of optional arguments SIZE, FOREGROUND,
BACKGROUND and OFFSET.

(fn CLOCK-HANDLE &optional SIZE FOREGROUND BACKGROUND OFFSET NO-SECONDS NO-FACE)
(defalias 'svg-clock--update #[1793 "\205\255�\301!>\204�\302\303\304	D\"\210\305H\306!\307!\301\n!>\2041�\302\303\304\fD\"\210	\310H\311!\203\214�\312!\313!=\204\214�\314\315#\205\253�rq\210\316\n\n\n\n\n\n&\211\205\210�\317\320\321\322\323\315\"r\211q\210\324\325\"\216\326!\210\327 *\262\330\315\331\332\333\305&#\262)\207\334\335!\210\336\301\f!>\204\242�\302\303\304D\"\210\337H!\210\340!\266\204\207" [cl-struct-svg-clock-handle-tags type-of signal wrong-type-argument svg-clock-handle 1 marker-buffer get-buffer-window 2 buffer-live-p overlay-start overlay-end pos-visible-in-window-p t svg-clock--do-create overlay-put display create-image generate-new-buffer " *temp*" make-closure #[0 "\301\300!\205	�\302\300!\207" [V0 buffer-name kill-buffer] 2] svg-print buffer-string svg :ascent center :scale message "Cancelling clock timer" cancel-timer 3 delete-overlay] 23 (#$ . 7847)])
#@502 Insert a self-updating image displaying an analog clock at point.
Optional argument SIZE the size of the clock in pixels.
Optional argument FOREGROUND the foreground color.
Optional argument BACKGROUND the background color.
Optional argument OFFSET the offset in seconds between current and displayed
time.
Optional argument NO-SECONDS says whether to do a seconds hand.
Optional argument NO-FACE says whether to decorate the face.

(fn &optional SIZE FOREGROUND BACKGROUND OFFSET NO-SECONDS NO-FACE)
(defalias 'svg-clock-insert #[1536 "\206�\302\303!\206�\304\303!\305 \306\307\310\211$\310\211\311 \312c\210\313\314!\314!T\310\315$\262\316!	>\204;�\317\320\307D\"\210\211\321I\266\322\323\324\325\326
&#\262\316!	>\204i�\317\320\307D\"\210\211\327I\207" [svg-clock--prev-update cl-struct-svg-clock-handle-tags face-foreground default face-background point-marker record svg-clock-handle nil make-decoded-time "*" make-overlay marker-position t type-of signal wrong-type-argument 2 run-at-time 0 1 make-closure #[0 "\307\306\300\304\305\301\302\303&\207" [V0 V1 V2 V3 V4 V5 V6 svg-clock--update] 8] 3] 24 (#$ . 9010)])
(defvar svg-clock-mode-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\207" [make-sparse-keymap define-key [43] svg-clock-grow [45] svg-clock-shrink] 5))
#@84 Start/stop the svg clock.

(fn &key SIZE FOREGROUND BACKGROUND NO-SECONDS NO-FACE)
(defalias 'svg-clock #[128 "\301\302\"A@\301\303\"A@\301\304\"A@\301\305\"A@\301\306\"A@\211\203J�\211@\307>\2032�\211AA\262\202�\310>A@\203A�\311\262\202�\312\313@\"\210\202�\210\314\315\316!!\210\317\320 \210\321 \210\322\311&\210\323 )\207" [inhibit-read-only plist-member :size :foreground :background :no-seconds :no-face (:size :foreground :background :no-seconds :no-face :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:size :foreground :background :no-seconds :no-face)" switch-to-buffer get-buffer-create "*clock*" t buffer-disable-undo erase-buffer svg-clock-insert view-mode] 13 (#$ . 10335) nil])
#@70 Create an SVG symbol element with given ID and VALUE.

(fn ID VALUE)
(defalias 'svg-clock-symbol #[514 "\300\301\302BC#\207" [dom-node symbol id] 6 (#$ . 11089)])
#@164 Create an SVG circle element at position X Y with given RADIUS.
Optional argument ATTRIBUTES contain conses with SVG attributes.

(fn X Y RADIUS &rest ATTRIBUTES)
(defalias 'svg-clock-circle #[899 "\300\301\302B\303B\304BBBB\"\207" [dom-node circle cx cy r] 10 (#$ . 11261)])
#@16 

(fn SVG DEF)
(defalias 'svg-clock-def #[514 "\300\301\302\"\206�\303\302!\304\"\210\211\262\"\210\207" [dom-append-child dom-by-tag defs dom-node dom-add-child-before] 7 (#$ . 11550)])
#@170 Create an SVG line element starting at (X1, Y1), ending at (X2, Y2).
Optional argument ATTRIBUTES contain conses with SVG attributes.

(fn X1 Y1 X2 Y2 &rest ATTRIBUTES)
(defalias 'svg-clock-line #[1156 "\300\301\302B\303B\304B\305BBBBB\"\207" [dom-node line x1 y1 x2 y2] 12 (#$ . 11751)])
#@81 Create an SVG group element with given ID and CHILDREN.

(fn ID &rest CHILDREN)
(defalias 'svg-clock-group #[385 "\300\301\302\303BC$\207" [apply dom-node g id] 7 (#$ . 12056)])
#@133 Create an SVG use element with given ID.
Optional argument ATTRIBUTES contain conses with SVG attributes.

(fn ID &rest ATTRIBUTES)
(defalias 'svg-clock-use #[385 "\300\301\302\303\304\"BB\"\207" [dom-node use xlink:href format "#%s"] 8 (#$ . 12243)])
#@131 Create an SVG transform attribute element for given ACTION.
Argument ARGS contain the action's arguments.

(fn ACTION &rest ARGS)
(defalias 'svg-clock-transform #[385 "\300\301\302\303\304\305##B\207" [transform format "%s(%s)" mapconcat number-to-string ", "] 10 (#$ . 12505)])
#@49 Return hex representation of COLOR.

(fn COLOR)
(defalias 'svg-clock-color-to-hex #[257 "\300!\301\302@A@\3038$\207" [color-values format "#%02x%02x%02x" 2] 8 (#$ . 12793)])
(provide 'svg-clock)