;ELC   
;;; Compiled
;;; in Emacs version 29.3
;;; with all optimizations.



(byte-code "\300\301!\210\300\302!\210\303\304\305\306!\"\210\303\307\310\306!\"\210\303\311\307\"\210\312\311\313\314#\210\315\306\316\307#\317\306\320\321\322$\207" [require forge forge-topic defalias forge-notification-p eieio-make-class-predicate forge-notification forge-notification--eieio-childp eieio-make-child-predicate forge-notification-child-p make-obsolete "use (cl-typep ... 'forge-notification) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (forge-object) ((closql-class-prefix :initform "forge-") (closql-table :initform 'notification) (closql-primary-key :initform 'id) (closql-order-by :initform [(desc id)]) (id :initarg :id) (thread-id :initarg :thread-id) (repository :initarg :repository) (type :initarg :type) (topic :initarg :topic) (url :initarg :url) (title :initarg :title) (reason :initarg :reason) (last-read :initarg :last-read) (updated :initarg :updated)) nil] 6)#@75 Create a new object of class type `forge-notification'.

(fn &rest SLOTS)
(defalias 'forge-notification #[128 "\300\301\302#\207" [apply make-instance forge-notification] 5 (#$ . 1014)])
(byte-code "\300\301\302\303#\300\207" [function-put forge-notification compiler-macro forge-notification--anon-cmacro] 4)#@26 

(fn WHOLE &rest SLOTS)
(defalias 'forge-notification--anon-cmacro #[385 "\211@;\204 \207\300\301\302@@#@\303@DABB\304\211@%\207" [macroexp-warn-and-return format "Obsolete name arg %S to constructor %S" identity nil] 8 (#$ . 1330)])
(byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\300\310\302\311\302\312%\210\300\310\302\313\302\314%\207" [cl-generic-define-method forge-get-repository nil ((notify forge-notification)) #[257 "\300\301\"\211\205 \302\303 \304#\207" [eieio-oref repository closql-get forge-db forge-repository] 6 "Return the object for the repository that NOTIFY belongs to.\n\n(fn NOTIFY)"] forge-get-topic ((notify forge-notification)) #[257 "\300!\211\205 \301\302\303\"\"\207" [forge-get-repository forge-get-topic eieio-oref topic] 7 "\n\n(fn NOTIFY)"] forge-get-notification ((id string)) #[257 "\300\301 \302#\207" [closql-get forge-db forge-notification] 5 "\n\n(fn ID)"] ((topic forge-topic)) #[257 "\300\301\302\303\"\302\304\"#@\211\205 \305\306\307 #\207" [forge-sql [:select * :from notification :where (and (= repository $s1) (= topic $s2))] eieio-oref repository number closql--remake-instance forge-notification forge-db] 7 "\n\n(fn TOPIC)"]] 6)#@165 Return the current notification, casting a topic if necessary.
If there is no such notification and DEMAND is non-nil, then
signal an error.

(fn &optional DEMAND)
(defalias 'forge-current-notification #[256 "\300\301!\206 \302 \211\205 \303!\262\206 \211\205 \304\305!\207" [magit-section-value-if notification forge-current-topic forge-get-notification user-error "No current notification"] 4 (#$ . 2560)])#@166 Return the notification at point, casting a topic if necessary.
If there is no such notification and DEMAND is non-nil, then
signal an error.

(fn &optional DEMAND)
(defalias 'forge-notification-at-point #[256 "\300\301!\206 \302 \211\205 \303!\262\206 \211\205 \304\305!\207" [magit-section-value-if notification forge-topic-at-point forge-get-notification user-error "No notification at point"] 4 (#$ . 2981)])#@15 

(fn STATUS)
(defalias 'forge--ls-notifications #[257 "\300!\301>\302\301\"\303\304\305\306\307 #\310\311\312#\203 \313\314!\202h \313\315\316\317\320\321\322\323\324\325\326\327\2051 \330\2057 \331\"BB\332\317\320\321\322\333\324\325\334\327\205J \335\205P \336\"BB\337BBBBBBBBBBBBBBB\"\340!\"\"\207" [ensure-list saved remq mapcar llama--left-apply-partially closql--remake-instance forge-notification forge-db seq-set-equal-p (unread pending done) eq forge-sql [:select * :from notification :order-by [(desc updated)]] apply vector :select :distinct notification:* :from [notification (as issue topic)] :where and (= notification:topic topic:id) append ((in topic:status $v1)) ((= topic:saved-p 't)) :union [notification (as pullreq topic)] (= notification:topic topic:id) ((in topic:status $v1)) ((= topic:saved-p 't)) (:order-by [(desc notification:updated)]) vconcat] 28 (#$ . 3405)])#@40 Keymap for `forge-notifications-mode'.
(defvar forge-notifications-mode-map (byte-code "\302\303\304	\"\305\306\307\310&\207" [forge-common-map magit-mode-map define-keymap :parent make-composed-keymap "<remap> <magit-refresh>" magit-refresh-buffer "<remap> <forge--list-menu>" forge-notifications-menu] 7) (#$ . 4316))
(defvar forge-notifications-mode-hook nil)
(byte-code "\300\301N\204\f \302\300\301\303#\210\304\305!\204 \302\305\306\307#\210\300\207" [forge-notifications-mode-hook variable-documentation put "Hook run after entering Forge Notifications mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp forge-notifications-mode-map definition-name forge-notifications-mode] 4)
(defvar forge-notifications-mode-map (make-sparse-keymap))
(byte-code "\301\302N\204 \303\301\302\304\305!#\210\306\307!\204* \303\307\310\311#\210\312\307\306\307!\203& \313\202( \314 \"\210\307\302N\2048 \303\307\302\304\315!#\210\306\300!\204X \303\300\310\311#\210\312\300\306\300!\203P \313\202V \316\300\313\"\210\"\210\300\302N\204f \303\300\302\304\317!#\210\303\311\320\321#\207" [forge-notifications-mode-abbrev-table forge-notifications-mode-map variable-documentation put purecopy "Keymap for `forge-notifications-mode'." boundp forge-notifications-mode-syntax-table definition-name forge-notifications-mode defvar-1 nil make-syntax-table "Syntax table for `forge-notifications-mode'." define-abbrev-table "Abbrev table for `forge-notifications-mode'." derived-mode-parent magit-mode] 5)#@265 Major mode for looking at forge notifications.

In addition to any hooks its parent mode `magit-mode' might have run,
this mode runs the hook `forge-notifications-mode-hook', as the final
or penultimate step during initialization.

\{forge-notifications-mode-map}
(defalias 'forge-notifications-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203 \314\311\313\310\313N#\210\315!\204' \316\317 \"\210\320\f!\211\2035 \211\321 =\203; \322\f\323 \"\210\210\324\325\"\204R =\204R \326\325C#\210\327!\210\330\f!\210\331 )\210\332\333!\207" [delay-mode-hooks major-mode mode-name forge-notifications-mode-map forge-notifications-mode-syntax-table forge-notifications-mode-abbrev-table make-local-variable t magit-mode forge-notifications-mode "Forge Notifications" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table magit-hack-dir-local-variables run-mode-hooks forge-notifications-mode-hook local-abbrev-table] 5 (#$ . 5902)])
(defalias 'forge-notifications-setup-buffer #[0 "\300\301\302\303\304D\305\306DD\307\310\311!%\207" [magit-setup-buffer-internal forge-notifications-mode nil default-directory "/" forge-buffer-unassociated-p t :buffer get-buffer-create "*forge-notifications*"] 7])
(defalias 'forge-notifications-refresh-buffer #[0 "\300\301 !\210\302 \207" [magit-set-header-line-format forge-notifications-buffer-desc forge-insert-notifications] 2])
(defalias 'forge-notifications-buffer-desc #[0 "\211<\204 \301\302\303\304!!\"\207\305\306\"\203 \307\207\305\310\"\203! \311\207\301\312\"\207" [forge-notifications-selection format "%s notifications" capitalize symbol-name seq-set-equal-p (unread pending) "Inbox" (unread pending done) "All notifications" "Notifications %s"] 6])
(defvar forge-notifications-display-style 'flat)
(defvar forge-notifications-selection '(unread pending))
(defalias 'forge-notifications-menu #[0 "\300\301!\204	 \302 \210\303\304!\207" [derived-mode-p forge-notifications-mode forge-list-notifications transient-setup forge-notifications-menu] 2 nil nil])
(byte-code "\301\302\303\304#\210\301\302\305\306#\210\301\302\307\310\311\302\312\304\313\314\315\316\317\304\320\321\322&#\210\323\302\324\325\326\327D\330\331\332\311\333\257C#\324\334\316\335\324\325\336\337D\330\331\340\311\341\257\330\331\342\311\343\257\330\331\344\311\345\257\330\331\346\311\347\257F#D#\324\334\316\350\324\325\336\351D\330\331\352\311\353\257\330\331\354\311\355\257\330\331\356\311\357\257E#D#\324\334\316\360C#F\"\210\301\302\361\330\311\302\362\363\364\365\366\367\370\371&\n#\207" [forge--topic-menus-column-widths put forge-notifications-menu interactive-only t function-documentation "Control list of notifications and notification at point." transient--prefix transient-prefix :command :transient-suffix :transient-non-suffix transient--do-call :transient-switch-frame nil :refresh-suffixes :environment forge--menu-environment :column-widths transient--set-layout vector transient-column :hide always transient-suffix :key "q" forge-menu-quit-list transient-columns forge--topic-menus-group :description "Selection" "I" forge-notifications-display-inbox "S" forge-notifications-display-saved "D" forge-notifications-display-done "A" forge-notifications-display-all forge--lists-group "Display" "-F" forge-notifications-style-flat "-G" forge-notifications-style-nested "-H" forge-toggle-topic-legend forge--topic-legend-group transient--suffix :transient transient--do-replace :if-mode forge-notifications-mode :inapt-if #[0 "\301\302\"\303=\207" [transient--prefix eieio-oref command forge-notifications-menu] 3] :inapt-face forge-suffix-active] 18)
(defalias 'forge-list-notifications #[0 "\300 \210\301\302!\207" [forge-notifications-setup-buffer transient-setup forge-notifications-menu] 2 nil nil])
(byte-code "\300\301\302\303#\210\300\301\304\305#\210\300\301\306\307\310\301\311\312\313\314&#\207" [put forge-list-notifications interactive-only nil function-documentation "List notifications." transient--suffix transient-suffix :command :inapt-if-mode forge-notifications-mode :inapt-face forge-suffix-active] 10)
(defalias 'forge-notifications-display-inbox #[0 "\301\302!\204\n \303\304!\210\305\306 \207" [forge-notifications-selection derived-mode-p forge-notifications-mode user-error "Not in notification buffer" (unread pending) forge-refresh-buffer] 2 nil nil])
(byte-code "\300\301\302\303#\210\300\301\304\305#\210\300\301\306\307\310\301\311\312\313\314\315\316&#\207" [put forge-notifications-display-inbox interactive-only t function-documentation "List unread and pending notifications." transient--suffix transient-suffix :command :description "inbox" :inapt-if #[0 "\301\232\207" [forge-notifications-selection (unread pending)] 2] :inapt-face forge-suffix-active] 12)
(defalias 'forge-notifications-display-saved #[0 "\301\302!\204\n \303\304!\210\305\306 \207" [forge-notifications-selection derived-mode-p forge-notifications-mode user-error "Not in notification buffer" saved forge-refresh-buffer] 2 nil nil])
(byte-code "\300\301\302\303#\210\300\301\304\305#\210\300\301\306\307\310\301\311\312\313\314\315\316&#\207" [put forge-notifications-display-saved interactive-only t function-documentation "List saved notifications." transient--suffix transient-suffix :command :description "saved" :inapt-if #[0 "\301=\207" [forge-notifications-selection saved] 2] :inapt-face forge-suffix-active] 12)
(defalias 'forge-notifications-display-done #[0 "\301\302!\204\n \303\304!\210\305\306 \207" [forge-notifications-selection derived-mode-p forge-notifications-mode user-error "Not in notification buffer" done forge-refresh-buffer] 2 nil nil])
(byte-code "\300\301\302\303#\210\300\301\304\305#\210\300\301\306\307\310\301\311\312\313\314\315\316&#\207" [put forge-notifications-display-done interactive-only t function-documentation "List done notifications." transient--suffix transient-suffix :command :description "done" :inapt-if #[0 "\301=\207" [forge-notifications-selection done] 2] :inapt-face forge-suffix-active] 12)
(defalias 'forge-notifications-display-all #[0 "\301\302!\204\n \303\304!\210\305\306 \207" [forge-notifications-selection derived-mode-p forge-notifications-mode user-error "Not in notification buffer" (unread pending done) forge-refresh-buffer] 2 nil nil])
(byte-code "\300\301\302\303#\210\300\301\304\305#\210\300\301\306\307\310\301\311\312\313\314\315\316&#\207" [put forge-notifications-display-all interactive-only t function-documentation "List all notifications." transient--suffix transient-suffix :command :description "all" :inapt-if #[0 "\301\232\207" [forge-notifications-selection (unread pending done)] 2] :inapt-face forge-suffix-active] 12)
(defalias 'forge-notifications-style-flat #[0 "\301\302!\204\n \303\304!\210\305\306 \207" [forge-notifications-display-style derived-mode-p forge-notifications-mode user-error "Not in notification buffer" flat forge-refresh-buffer] 2 nil nil])
(byte-code "\300\301\302\303#\210\300\301\304\305#\210\300\301\306\307\310\301\311\312\313\314\315\316&#\207" [put forge-notifications-style-flat interactive-only t function-documentation "Show a flat notification list." transient--suffix transient-suffix :command :description "single list" :inapt-if #[0 "\301=\207" [forge-notifications-display-style flat] 2] :inapt-face forge-suffix-active] 12)
(defalias 'forge-notifications-style-nested #[0 "\301\302!\204\n \303\304!\210\305\306 \207" [forge-notifications-display-style derived-mode-p forge-notifications-mode user-error "Not in notification buffer" nested forge-refresh-buffer] 2 nil nil])
(byte-code "\300\301\302\303#\210\300\301\304\305#\210\300\301\306\307\310\301\311\312\313\314\315\316&#\210\317\320\321\322!\"\210\317\323\324\322!\"\210\317\325\323\"\210\326\325\327\330#\210\331\322\332\323#\333\322\334\335\336$\207" [put forge-notifications-style-nested interactive-only t function-documentation "Group notifications by repository." transient--suffix transient-suffix :command :description "group by repo" :inapt-if #[0 "\301=\207" [forge-notifications-display-style nested] 2] :inapt-face forge-suffix-active defalias forge-repository-section-p eieio-make-class-predicate forge-repository-section forge-repository-section--eieio-childp eieio-make-child-predicate forge-repository-section-child-p make-obsolete "use (cl-typep ... 'forge-repository-section) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (magit-section) ((type :initform 'forge-repo) (keymap :initform 'forge-repository-section-map)) nil] 12)#@81 Create a new object of class type `forge-repository-section'.

(fn &rest SLOTS)
(defalias 'forge-repository-section #[128 "\300\301\302#\207" [apply make-instance forge-repository-section] 5 (#$ . 14629)])
(byte-code "\300\301\302\303#\300\207" [function-put forge-repository-section compiler-macro forge-repository-section--anon-cmacro] 4)#@26 

(fn WHOLE &rest SLOTS)
(defalias 'forge-repository-section--anon-cmacro #[385 "\211@;\204 \207\300\301\302@@#@\303@DABB\304\211@%\207" [macroexp-warn-and-return format "Obsolete name arg %S to constructor %S" identity nil] 8 (#$ . 14976)])
(byte-code "\300\301\302\303#\210\304\211\203( \211@\301N\203! \302N\204! \305\302\301N#\210A\266\202\202 \210\306\301\302\307#\207" [defvaralias forge-forge-repo-section-map forge-repository-section-map nil (saved-value saved-variable-comment) put make-obsolete-variable "Forge 0.4.0"] 7)
(defvar forge-repository-section-map (define-keymap "<remap> <magit-browse-thing>" 'forge-browse-this-repository "<remap> <magit-visit-thing>" 'forge-visit-this-repository))
(defalias 'forge-insert-notifications #[0 "\306!\307\310\311\211#\211\n\206 ?\205 \f\211\3122\302 \204' \313c\210\202\276 \314=\203Q \315\316\"\317	\320\"\203J \321	\322	\315\323#\262#\266\202\276 \211 \266\202\276 \324\325\"\211\203\275 \211@\211\243\211\326@!\307\327\311#\211\n\206u ?\205u \f\211\3122\263 \330\331\317\332\"\333\334#\335\336G\"P!\210\315\337\"\317	\320\"\203\253 \321	\322	\315\340#\262#\266\202\257 \211 \266\341!0+\266A\266\202\202U \210\341!0+\210\207" [forge-notifications-selection magit-insert-section--current magit-insert-section--oldroot magit-insert-section--parent magit-root-section forge-notifications-display-style forge--ls-notifications magit-insert-section--create notifications nil cancel-section "(empty)\n" flat make-closure #[0 "\300\211\203 \211@\301!\210A\266\202\202 \210\302c\207" [V0 forge-insert-notification 10] 4] eieio-oref hidden eieio-oset washer #[0 "\302\300\303\"\211\211\203 \211@\304\305\306\"\303\"\210A\266\202\202 \210\301 \210\211\211\2034 \211@\304\305\306\"\307\"\210A\266\202\202 \210\310\300!\210\311\300!\210\312\300!\207" [V0 V1 magit-section-lineage t set-marker-insertion-type eieio-oref end nil magit-section--set-section-properties magit-section-maybe-remove-heading-map magit-section-maybe-remove-visibility-indicator] 7] seq-group-by #[257 "\300\301\"\207" [eieio-oref repository] 4 "\n\n(fn %)"] forge-get-repository forge-repo magit-insert-heading propertize slug font-lock-face bold format " (%s)" #[0 "\300\211\203 \211@\301!\210A\266\202\202 \210\302c\207" [V0 forge-insert-notification 10] 4] #[0 "\302\300\303\"\211\211\203 \211@\304\305\306\"\303\"\210A\266\202\202 \210\301 \210\211\211\2034 \211@\304\305\306\"\307\"\210A\266\202\202 \210\310\300!\210\311\300!\210\312\300!\207" [V0 V1 magit-section-lineage t set-marker-insertion-type eieio-oref end nil magit-section--set-section-properties magit-section-maybe-remove-heading-map magit-section-maybe-remove-visibility-indicator] 7] magit-insert-section--finish] 17])#@14 

(fn NOTIF)
(defalias 'forge-insert-notification #[257 "\304\305\"\306>\203 \307\310!!\207\304\305\"\311=\203\200 \312\313\314\211#\211	\206+ \n?\205+ \211\3152} \316\317\304\320\"\"\210\321\322\323\324\325\304\320\"\"\325\326 O\327\330#\331\323\304\332\"\327\3332t \334	\335\"\211\205g \334\336\"\337=\211\203p \340\333\341\"\210\266\3420#!#c\210\343!0+\210\207\312\344\314#\211	\206\223 \n?\205\223 \211\3152\260 \323\321\345\304\305\"\304\332\"#\327\346#c\210\343!0+\210\207" [magit-insert-section--current magit-insert-section--oldroot magit-insert-section--parent magit-root-section slot-value type (pullreq issue discussion) forge--insert-topic forge-get-topic commit magit-insert-section--create ncommit nil cancel-section string-match "[^/]*\\'" url format "%s %s\n" propertize match-string 0 magit-abbrev-length font-lock-face magit-hash magit-log--wash-summary title #1=#::if-let*826 eieio-oref topic status unread throw forge-topic-unread forge-topic-open magit-insert-section--finish notification "(%s) %s\n" error] 14 (#$ . 17767)])
(provide 'forge-notify)
