"use strict"; class Comment_Thread extends Component { async on_load() { if (this.args.data_source) { const response = await fetch(this.args.data_source); this.data.comments = await response.json(); } else if (this.args.comments) { this.data.comments = this.args.comments; } } on_ready() { // Submit new comment this.$sid('submit_btn').on('click', () => { this.submit_comment(); }); // Reply buttons this.$.find('.reply-btn').on('click', e => { const $comment = $(e.target).closest('[data-comment-id]'); const comment_id = $comment.attr('data-comment-id'); this.show_reply_form(comment_id); }); // Edit buttons this.$.find('.edit-btn').on('click', e => { const $comment = $(e.target).closest('[data-comment-id]'); const comment_id = $comment.attr('data-comment-id'); this.edit_comment(comment_id); }); // Delete buttons this.$.find('.delete-btn').on('click', e => { const $comment = $(e.target).closest('[data-comment-id]'); const comment_id = $comment.attr('data-comment-id'); this.delete_comment(comment_id); }); } async submit_comment() { const text = this.$sid('comment_input').val().trim(); if (!text) return; if (this.args.on_submit) { const result = await this.args.on_submit(text); if (result) { this.$sid('comment_input').val(''); await this.reload_data(); } } } show_reply_form(comment_id) { // TODO: Implement reply form UI console.log('Reply to comment:', comment_id); } edit_comment(comment_id) { if (this.args.on_edit) { this.args.on_edit(comment_id); } } async delete_comment(comment_id) { if (!confirm('Delete this comment?')) return; if (this.args.on_delete) { const result = await this.args.on_delete(comment_id); if (result) { await this.reload_data(); } } } async reload_data() { if (this.args.data_source) { const response = await fetch(this.args.data_source); this.data.comments = await response.json(); this.render(); } } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb21tZW50X1RocmVhZCIsIkpxaHRtbF9Db21wb25lbnQiLCJvbl9sb2FkIiwiYXJncyIsImRhdGFfc291cmNlIiwicmVzcG9uc2UiLCJmZXRjaCIsImRhdGEiLCJjb21tZW50cyIsImpzb24iLCJvbl9yZWFkeSIsIiRpZCIsIm9uIiwic3VibWl0X2NvbW1lbnQiLCIkIiwiZmluZCIsImUiLCIkY29tbWVudCIsInRhcmdldCIsImNsb3Nlc3QiLCJjb21tZW50X2lkIiwiYXR0ciIsInNob3dfcmVwbHlfZm9ybSIsImVkaXRfY29tbWVudCIsImRlbGV0ZV9jb21tZW50IiwidGV4dCIsInZhbCIsInRyaW0iLCJvbl9zdWJtaXQiLCJyZXN1bHQiLCJyZWxvYWRfZGF0YSIsImNvbnNvbGUiLCJsb2ciLCJvbl9lZGl0IiwiY29uZmlybSIsIm9uX2RlbGV0ZSIsInJlbmRlciJdLCJzb3VyY2VzIjpbInJzeC90aGVtZS9jb21wb25lbnRzL19hcmNoaXZlZC91bmZpbmlzaGVkL0NvbW1lbnRfVGhyZWFkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIENvbW1lbnRfVGhyZWFkIGV4dGVuZHMgSnFodG1sX0NvbXBvbmVudCB7XG4gICAgYXN5bmMgb25fbG9hZCgpIHtcbiAgICAgICAgaWYgKHRoaXMuYXJncy5kYXRhX3NvdXJjZSkge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh0aGlzLmFyZ3MuZGF0YV9zb3VyY2UpO1xuICAgICAgICAgICAgdGhpcy5kYXRhLmNvbW1lbnRzID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYXJncy5jb21tZW50cykge1xuICAgICAgICAgICAgdGhpcy5kYXRhLmNvbW1lbnRzID0gdGhpcy5hcmdzLmNvbW1lbnRzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25fcmVhZHkoKSB7XG4gICAgICAgIC8vIFN1Ym1pdCBuZXcgY29tbWVudFxuICAgICAgICB0aGlzLiRpZCgnc3VibWl0X2J0bicpLm9uKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3VibWl0X2NvbW1lbnQoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gUmVwbHkgYnV0dG9uc1xuICAgICAgICB0aGlzLiQuZmluZCgnLnJlcGx5LWJ0bicpLm9uKCdjbGljaycsIChlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCAkY29tbWVudCA9ICQoZS50YXJnZXQpLmNsb3Nlc3QoJ1tkYXRhLWNvbW1lbnQtaWRdJyk7XG4gICAgICAgICAgICBjb25zdCBjb21tZW50X2lkID0gJGNvbW1lbnQuYXR0cignZGF0YS1jb21tZW50LWlkJyk7XG4gICAgICAgICAgICB0aGlzLnNob3dfcmVwbHlfZm9ybShjb21tZW50X2lkKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRWRpdCBidXR0b25zXG4gICAgICAgIHRoaXMuJC5maW5kKCcuZWRpdC1idG4nKS5vbignY2xpY2snLCAoZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgJGNvbW1lbnQgPSAkKGUudGFyZ2V0KS5jbG9zZXN0KCdbZGF0YS1jb21tZW50LWlkXScpO1xuICAgICAgICAgICAgY29uc3QgY29tbWVudF9pZCA9ICRjb21tZW50LmF0dHIoJ2RhdGEtY29tbWVudC1pZCcpO1xuICAgICAgICAgICAgdGhpcy5lZGl0X2NvbW1lbnQoY29tbWVudF9pZCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIERlbGV0ZSBidXR0b25zXG4gICAgICAgIHRoaXMuJC5maW5kKCcuZGVsZXRlLWJ0bicpLm9uKCdjbGljaycsIChlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCAkY29tbWVudCA9ICQoZS50YXJnZXQpLmNsb3Nlc3QoJ1tkYXRhLWNvbW1lbnQtaWRdJyk7XG4gICAgICAgICAgICBjb25zdCBjb21tZW50X2lkID0gJGNvbW1lbnQuYXR0cignZGF0YS1jb21tZW50LWlkJyk7XG4gICAgICAgICAgICB0aGlzLmRlbGV0ZV9jb21tZW50KGNvbW1lbnRfaWQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhc3luYyBzdWJtaXRfY29tbWVudCgpIHtcbiAgICAgICAgY29uc3QgdGV4dCA9IHRoaXMuJGlkKCdjb21tZW50X2lucHV0JykudmFsKCkudHJpbSgpO1xuICAgICAgICBpZiAoIXRleHQpIHJldHVybjtcblxuICAgICAgICBpZiAodGhpcy5hcmdzLm9uX3N1Ym1pdCkge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5hcmdzLm9uX3N1Ym1pdCh0ZXh0KTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiRpZCgnY29tbWVudF9pbnB1dCcpLnZhbCgnJyk7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5yZWxvYWRfZGF0YSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2hvd19yZXBseV9mb3JtKGNvbW1lbnRfaWQpIHtcbiAgICAgICAgLy8gVE9ETzogSW1wbGVtZW50IHJlcGx5IGZvcm0gVUlcbiAgICAgICAgY29uc29sZS5sb2coJ1JlcGx5IHRvIGNvbW1lbnQ6JywgY29tbWVudF9pZCk7XG4gICAgfVxuXG4gICAgZWRpdF9jb21tZW50KGNvbW1lbnRfaWQpIHtcbiAgICAgICAgaWYgKHRoaXMuYXJncy5vbl9lZGl0KSB7XG4gICAgICAgICAgICB0aGlzLmFyZ3Mub25fZWRpdChjb21tZW50X2lkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIGRlbGV0ZV9jb21tZW50KGNvbW1lbnRfaWQpIHtcbiAgICAgICAgaWYgKCFjb25maXJtKCdEZWxldGUgdGhpcyBjb21tZW50PycpKSByZXR1cm47XG5cbiAgICAgICAgaWYgKHRoaXMuYXJncy5vbl9kZWxldGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYXJncy5vbl9kZWxldGUoY29tbWVudF9pZCk7XG4gICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5yZWxvYWRfZGF0YSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgcmVsb2FkX2RhdGEoKSB7XG4gICAgICAgIGlmICh0aGlzLmFyZ3MuZGF0YV9zb3VyY2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godGhpcy5hcmdzLmRhdGFfc291cmNlKTtcbiAgICAgICAgICAgIHRoaXMuZGF0YS5jb21tZW50cyA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTUEsY0FBYyxTQUFTQyxnQkFBZ0IsQ0FBQztFQUMxQyxNQUFNQyxPQUFPQSxDQUFBLEVBQUc7SUFDWixJQUFJLElBQUksQ0FBQ0MsSUFBSSxDQUFDQyxXQUFXLEVBQUU7TUFDdkIsTUFBTUMsUUFBUSxHQUFHLE1BQU1DLEtBQUssQ0FBQyxJQUFJLENBQUNILElBQUksQ0FBQ0MsV0FBVyxDQUFDO01BQ25ELElBQUksQ0FBQ0csSUFBSSxDQUFDQyxRQUFRLEdBQUcsTUFBTUgsUUFBUSxDQUFDSSxJQUFJLENBQUMsQ0FBQztJQUM5QyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUNOLElBQUksQ0FBQ0ssUUFBUSxFQUFFO01BQzNCLElBQUksQ0FBQ0QsSUFBSSxDQUFDQyxRQUFRLEdBQUcsSUFBSSxDQUFDTCxJQUFJLENBQUNLLFFBQVE7SUFDM0M7RUFDSjtFQUVBRSxRQUFRQSxDQUFBLEVBQUc7SUFDUDtJQUNBLElBQUksQ0FBQ0MsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDQyxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU07TUFDckMsSUFBSSxDQUFDQyxjQUFjLENBQUMsQ0FBQztJQUN6QixDQUFDLENBQUM7O0lBRUY7SUFDQSxJQUFJLENBQUNDLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDSCxFQUFFLENBQUMsT0FBTyxFQUFHSSxDQUFDLElBQUs7TUFDekMsTUFBTUMsUUFBUSxHQUFHSCxDQUFDLENBQUNFLENBQUMsQ0FBQ0UsTUFBTSxDQUFDLENBQUNDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztNQUN6RCxNQUFNQyxVQUFVLEdBQUdILFFBQVEsQ0FBQ0ksSUFBSSxDQUFDLGlCQUFpQixDQUFDO01BQ25ELElBQUksQ0FBQ0MsZUFBZSxDQUFDRixVQUFVLENBQUM7SUFDcEMsQ0FBQyxDQUFDOztJQUVGO0lBQ0EsSUFBSSxDQUFDTixDQUFDLENBQUNDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQ0gsRUFBRSxDQUFDLE9BQU8sRUFBR0ksQ0FBQyxJQUFLO01BQ3hDLE1BQU1DLFFBQVEsR0FBR0gsQ0FBQyxDQUFDRSxDQUFDLENBQUNFLE1BQU0sQ0FBQyxDQUFDQyxPQUFPLENBQUMsbUJBQW1CLENBQUM7TUFDekQsTUFBTUMsVUFBVSxHQUFHSCxRQUFRLENBQUNJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztNQUNuRCxJQUFJLENBQUNFLFlBQVksQ0FBQ0gsVUFBVSxDQUFDO0lBQ2pDLENBQUMsQ0FBQzs7SUFFRjtJQUNBLElBQUksQ0FBQ04sQ0FBQyxDQUFDQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUNILEVBQUUsQ0FBQyxPQUFPLEVBQUdJLENBQUMsSUFBSztNQUMxQyxNQUFNQyxRQUFRLEdBQUdILENBQUMsQ0FBQ0UsQ0FBQyxDQUFDRSxNQUFNLENBQUMsQ0FBQ0MsT0FBTyxDQUFDLG1CQUFtQixDQUFDO01BQ3pELE1BQU1DLFVBQVUsR0FBR0gsUUFBUSxDQUFDSSxJQUFJLENBQUMsaUJBQWlCLENBQUM7TUFDbkQsSUFBSSxDQUFDRyxjQUFjLENBQUNKLFVBQVUsQ0FBQztJQUNuQyxDQUFDLENBQUM7RUFDTjtFQUVBLE1BQU1QLGNBQWNBLENBQUEsRUFBRztJQUNuQixNQUFNWSxJQUFJLEdBQUcsSUFBSSxDQUFDZCxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUNlLEdBQUcsQ0FBQyxDQUFDLENBQUNDLElBQUksQ0FBQyxDQUFDO0lBQ25ELElBQUksQ0FBQ0YsSUFBSSxFQUFFO0lBRVgsSUFBSSxJQUFJLENBQUN0QixJQUFJLENBQUN5QixTQUFTLEVBQUU7TUFDckIsTUFBTUMsTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDMUIsSUFBSSxDQUFDeUIsU0FBUyxDQUFDSCxJQUFJLENBQUM7TUFDOUMsSUFBSUksTUFBTSxFQUFFO1FBQ1IsSUFBSSxDQUFDbEIsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDZSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sSUFBSSxDQUFDSSxXQUFXLENBQUMsQ0FBQztNQUM1QjtJQUNKO0VBQ0o7RUFFQVIsZUFBZUEsQ0FBQ0YsVUFBVSxFQUFFO0lBQ3hCO0lBQ0FXLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLG1CQUFtQixFQUFFWixVQUFVLENBQUM7RUFDaEQ7RUFFQUcsWUFBWUEsQ0FBQ0gsVUFBVSxFQUFFO0lBQ3JCLElBQUksSUFBSSxDQUFDakIsSUFBSSxDQUFDOEIsT0FBTyxFQUFFO01BQ25CLElBQUksQ0FBQzlCLElBQUksQ0FBQzhCLE9BQU8sQ0FBQ2IsVUFBVSxDQUFDO0lBQ2pDO0VBQ0o7RUFFQSxNQUFNSSxjQUFjQSxDQUFDSixVQUFVLEVBQUU7SUFDN0IsSUFBSSxDQUFDYyxPQUFPLENBQUMsc0JBQXNCLENBQUMsRUFBRTtJQUV0QyxJQUFJLElBQUksQ0FBQy9CLElBQUksQ0FBQ2dDLFNBQVMsRUFBRTtNQUNyQixNQUFNTixNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMxQixJQUFJLENBQUNnQyxTQUFTLENBQUNmLFVBQVUsQ0FBQztNQUNwRCxJQUFJUyxNQUFNLEVBQUU7UUFDUixNQUFNLElBQUksQ0FBQ0MsV0FBVyxDQUFDLENBQUM7TUFDNUI7SUFDSjtFQUNKO0VBRUEsTUFBTUEsV0FBV0EsQ0FBQSxFQUFHO0lBQ2hCLElBQUksSUFBSSxDQUFDM0IsSUFBSSxDQUFDQyxXQUFXLEVBQUU7TUFDdkIsTUFBTUMsUUFBUSxHQUFHLE1BQU1DLEtBQUssQ0FBQyxJQUFJLENBQUNILElBQUksQ0FBQ0MsV0FBVyxDQUFDO01BQ25ELElBQUksQ0FBQ0csSUFBSSxDQUFDQyxRQUFRLEdBQUcsTUFBTUgsUUFBUSxDQUFDSSxJQUFJLENBQUMsQ0FBQztNQUMxQyxJQUFJLENBQUMyQixNQUFNLENBQUMsQ0FBQztJQUNqQjtFQUNKO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=