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



(byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305\306\307!\"\210\304\310\311\307!\"\210\304\312\310\"\210\313\312\314\315#\210\316\307\317\310#\320\307\321\322\323$\207" [require forge forge-post forge-topic defalias forge-issue-p eieio-make-class-predicate forge-issue forge-issue--eieio-childp eieio-make-child-predicate forge-issue-child-p make-obsolete "use (cl-typep ... 'forge-issue) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (forge-topic) ((closql-table :initform 'issue) (closql-primary-key :initform 'id) (closql-order-by :initform [(desc number)]) (closql-foreign-key :initform 'repository) (closql-class-prefix :initform "forge-") (id :initarg :id) (repository :initarg :repository) (number :initarg :number) (state :initarg :state) (author :initarg :author) (title :initarg :title) (created :initarg :created) (updated :initarg :updated :initform nil) (closed :initarg :closed) (status :initarg :status :initform nil) (locked-p :initarg :locked-p) (milestone :initarg :milestone) (body :initarg :body) (assignees :closql-tables (issue-assignee assignee)) (project-cards) (edits) (labels :closql-tables (issue-label label)) (participants) (posts :closql-class forge-issue-post) (reactions) (timeline) (marks :closql-tables (issue-mark mark)) (note :initarg :note :initform nil) (their-id :initarg :their-id) (slug :initarg :slug) (saved-p :initarg :saved-p :initform nil)) nil] 6)#@68 Create a new object of class type `forge-issue'.

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

(fn WHOLE &rest SLOTS)
(defalias 'forge-issue--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 (#$ . 1804)])
(byte-code "\300\301\302\303\302\304%\210\300\301\302\305\302\306%\210\300\301\302\307\302\310%\210\311\312\313\314!\"\210\311\315\316\314!\"\210\311\317\315\"\210\320\317\321\322#\210\323\314\324\315#\325\314\326\327\302$\207" [cl-generic-define-method closql-dref nil ((obj forge-issue) (_ (eql assignees))) #[514 "\300\301\302\303\"\"\207" [forge-sql-cdr [:select assignee:* :from assignee :join issue-assignee :on (= issue-assignee:id assignee:id) :where (= issue-assignee:issue $s1) :order-by [(asc login)]] closql--oref id] 7 "\n\n(fn OBJ _)"] ((obj forge-issue) (_ (eql labels))) #[514 "\300\301\302\303\"\"\207" [forge-sql-cdr [:select label:* :from label :join issue-label :on (= issue-label:id label:id) :where (= issue-label:issue $s1) :order-by [(asc name)]] closql--oref id] 7 "\n\n(fn OBJ _)"] ((obj forge-issue) (_ (eql marks))) #[514 "\300\301\302\303\"\"\207" [forge-sql-cdr [:select mark:* :from mark :join issue-mark :on (= issue-mark:id mark:id) :where (= issue-mark:issue $s1) :order-by [(asc name)]] closql--oref id] 7 "\n\n(fn OBJ _)"] defalias forge-issue-post-p eieio-make-class-predicate forge-issue-post forge-issue-post--eieio-childp eieio-make-child-predicate forge-issue-post-child-p make-obsolete "use (cl-typep ... 'forge-issue-post) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (forge-post) ((closql-table :initform 'issue-post) (closql-primary-key :initform 'id) (closql-order-by :initform [(asc number)]) (closql-foreign-key :initform 'issue) (closql-class-prefix :initform "forge-issue-") (id :initarg :id) (issue :initarg :issue) (number :initarg :number) (author :initarg :author) (created :initarg :created) (updated :initarg :updated) (body :initarg :body) (edits) (reactions))] 6)#@73 Create a new object of class type `forge-issue-post'.

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

(fn WHOLE &rest SLOTS)
(defalias 'forge-issue-post--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 (#$ . 4111)])
(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%\210\300\310\302\315\302\316%\210\300\310\302\317\302\320%\210\300\310\302\321\302\322%\207" [cl-generic-define-method forge-get-repository nil ((post forge-issue-post)) #[257 "\300\301!!\207" [forge-get-repository forge-get-issue] 4 "\n\n(fn POST)"] forge-get-topic ((post forge-issue-post)) #[257 "\300!\207" [forge-get-issue] 3 "\n\n(fn POST)"] forge-get-issue ((issue forge-issue)) #[257 "\207" [] 2 "\n\n(fn ISSUE)"] ((repo forge-repository) number) #[514 "\211\247\204 \300\301\302C\302$\210\303\304 \305\306#\306#\207" [cl--assertion-failed (numberp number) nil closql-get forge-db forge--object-id forge-issue] 8 "\n\n(fn REPO NUMBER)"] ((number integer)) #[257 "\300\301\302\303#\211\205 \304\"\207" [forge-get-repository :tracked nil notatpt forge-get-issue] 5 "\n\n(fn NUMBER)"] ((id string)) #[257 "\300\301 \302#\207" [closql-get forge-db forge-issue] 5 "\n\n(fn ID)"] ((post forge-issue-post)) #[257 "\300\301 \302\303\"\304#\207" [closql-get forge-db eieio-oref issue forge-issue] 6 "\n\n(fn POST)"]] 6)#@139 Return the issue at point or being visited.
If there is no such issue and DEMAND is non-nil, then signal
an error.

(fn &optional DEMAND)
(defalias 'forge-current-issue #[256 "\301 \206 \302!\203 \206 \211\205 \303\304!\207" [forge-buffer-topic forge-issue-at-point forge-issue-p user-error "No current issue"] 3 (#$ . 5512)])#@122 Return the issue at point.
If there is no such issue and DEMAND is non-nil, then signal
an error.

(fn &optional DEMAND)
(defalias 'forge-issue-at-point #[256 "\300\301!\206 \302\303!\206 \211\205 \304\305!\207" [thing-at-point forge-issue magit-section-value-if issue user-error "No issue at point"] 3 (#$ . 5851)])
(put 'forge-issue 'thing-at-point 'forge-thingatpt--issue)
(defalias 'forge-thingatpt--issue #[0 "\300\211\301\302!\205 \303\304\305!!\262\306 \211\262\205 \307\"\207" [nil thing-at-point-looking-at "#\\([0-9]+\\)\\_>" string-to-number match-string 1 forge--repo-for-thingatpt forge-get-issue] 5])#@443 Read an active issue with completion using PROMPT.

Open, unread and pending issues are considered active.
Default to the current issue, even if it isn't active.

\<forge-read-topic-minibuffer-map>While completion is in progress, \[forge-read-topic-lift-limit] lifts the limit, extending
the completion candidates to include all issues.

If `forge-limit-topic-choices' is nil, then all candidates
can be selected from the start.

(fn PROMPT)
(defalias 'forge-read-issue #[257 "\300\301\302\303\304\305\306$\302\303\304\305\307\310\307\311\307&$\207" [forge--read-topic forge-current-issue forge--topics-spec :type issue :active t nil :state :limit] 14 (#$ . 6481)])#@63 Read an open issue with completion using PROMPT.

(fn PROMPT)
(defalias 'forge-read-open-issue #[257 "\300 \301\206 \302!\205 \303!\304\305\306\307\310\311\312$\"!\313\314\"\315\316\317\316\211	&\320\"A\207" [forge-current-issue forge-get-repository :tracked forge--format-topic-line forge--topic-collection forge--list-topics forge--topics-spec :type issue :state open mapcar car magit-completing-read nil t assoc] 14 (#$ . 7154)])
(defvar forge-issues-section-map (define-keymap :parent forge-common-map "<remap> <magit-browse-thing>" 'forge-browse-issues "<remap> <magit-visit-thing>" 'forge-list-issues "<remap> <forge--list-menu>" 'forge-topics-menu "<remap> <forge--item-menu>" 'forge-topic-menu "C-c C-n" 'forge-create-issue))
(defvar forge-issue-section-map (define-keymap :parent forge-common-map "<remap> <magit-visit-thing>" 'forge-visit-this-topic "<remap> <forge--list-menu>" 'forge-topics-menu "<remap> <forge--item-menu>" 'forge-topic-menu))#@229 Insert a list of issues, according to `forge--buffer-topics-spec'.
Optional SPEC can be used to override that filtering specification,
and optional HEADING to change the section heading.

(fn &optional (SPEC nil SSPEC) HEADING)
(defalias 'forge-insert-issues #[128 "\211\205 \300\211A\262\242\211A\262\242\203  \301\302\303\304G\\D\"\210\305\300!\211\205* \306\307!\211\2052 \310\311\"\211\205@ \203> \202@ \312 \211\205J \310\313\"\314>\211\205b \315\313\316#\210\317\320\206\\ \321\322\"#\207" [t signal wrong-number-of-arguments forge-insert-issues 2 forge-db forge-get-repository :tracked? eieio-oref issues-p forge--clone-buffer-topics-spec type (topic issue) eieio-oset issue forge--insert-topics issues "Issues" forge--list-topics] 15 (#$ . 8131)])
(provide 'forge-issue)
